Background
Supported voices
As of April 28, 2017, print(AVSpeechSynthesisVoice.speechVoices()) reports the following supported voices:
[AVSpeechSynthesisVoice 0x6080000097d0] Language: ar-SA, Name: Maged, Quality: Default [com.apple.ttsbundle.Maged-compact] [AVSpeechSynthesisVoice 0x608000009780] Language: cs-CZ, Name: Zuzana, Quality: Default [com.apple.ttsbundle.Zuzana-compact] [AVSpeechSynthesisVoice 0x608000009440] Language: da-DK, Name: Sara, Quality: Default [com.apple.ttsbundle.Sara-compact] [AVSpeechSynthesisVoice 0x608000009670] Language: de-DE, Name: Anna, Quality: Default [com.apple.ttsbundle.Anna-compact] [AVSpeechSynthesisVoice 0x6080000092e0] Language: el-GR, Name: Melina, Quality: Default [com.apple.ttsbundle.Melina-compact] [AVSpeechSynthesisVoice 0x608000009310] Language: en-AU, Name: Karen, Quality: Default [com.apple.ttsbundle.Karen-compact] [AVSpeechSynthesisVoice 0x6080000098d0] Language: en-GB, Name: Daniel, Quality: Default [com.apple.ttsbundle.Daniel-compact] [AVSpeechSynthesisVoice 0x6080000094e0] Language: en-IE, Name: Moira, Quality: Default [com.apple.ttsbundle.Moira-compact] [AVSpeechSynthesisVoice 0x6080000096b0] Language: en-US, Name: Samantha, Quality: Default [com.apple.ttsbundle.Samantha-compact] [AVSpeechSynthesisVoice 0x608000009480] Language: en-ZA, Name: Tessa, Quality: Default [com.apple.ttsbundle.Tessa-compact] [AVSpeechSynthesisVoice 0x6080000093d0] Language: es-ES, Name: Monica, Quality: Default [com.apple.ttsbundle.Monica-compact] [AVSpeechSynthesisVoice 0x6080000096c0] Language: es-MX, Name: Paulina, Quality: Default [com.apple.ttsbundle.Paulina-compact] [AVSpeechSynthesisVoice 0x608000009550] Language: fi-FI, Name: Satu, Quality: Default [com.apple.ttsbundle.Satu-compact] [AVSpeechSynthesisVoice 0x6080000094f0] Language: fr-CA, Name: Amelie, Quality: Default [com.apple.ttsbundle.Amelie-compact] [AVSpeechSynthesisVoice 0x608000009880] Language: fr-FR, Name: Thomas, Quality: Default [com.apple.ttsbundle.Thomas-compact] [AVSpeechSynthesisVoice 0x608000009290] Language: he-IL, Name: Carmit, Quality: Default [com.apple.ttsbundle.Carmit-compact] [AVSpeechSynthesisVoice 0x608000009570] Language: hi-IN, Name: Lekha, Quality: Default [com.apple.ttsbundle.Lekha-compact] [AVSpeechSynthesisVoice 0x608000009510] Language: hu-HU, Name: Mariska, Quality: Default [com.apple.ttsbundle.Mariska-compact] [AVSpeechSynthesisVoice 0x608000009040] Language: id-ID, Name: Damayanti, Quality: Default [com.apple.ttsbundle.Damayanti-compact] [AVSpeechSynthesisVoice 0x6080000096a0] Language: it-IT, Name: Alice, Quality: Default [com.apple.ttsbundle.Alice-compact] [AVSpeechSynthesisVoice 0x6080000092b0] Language: ja-JP, Name: Kyoko, Quality: Default [com.apple.ttsbundle.Kyoko-compact] [AVSpeechSynthesisVoice 0x608000009540] Language: ko-KR, Name: Yuna, Quality: Default [com.apple.ttsbundle.Yuna-compact] [AVSpeechSynthesisVoice 0x6080000090e0] Language: nl-BE, Name: Ellen, Quality: Default [com.apple.ttsbundle.Ellen-compact] [AVSpeechSynthesisVoice 0x608000009380] Language: nl-NL, Name: Xander, Quality: Default [com.apple.ttsbundle.Xander-compact] [AVSpeechSynthesisVoice 0x608000009240] Language: no-NO, Name: Nora, Quality: Default [com.apple.ttsbundle.Nora-compact] [AVSpeechSynthesisVoice 0x6080000090f0] Language: pl-PL, Name: Zosia, Quality: Default [com.apple.ttsbundle.Zosia-compact] [AVSpeechSynthesisVoice 0x608000009250] Language: pt-BR, Name: Luciana, Quality: Default [com.apple.ttsbundle.Luciana-compact] [AVSpeechSynthesisVoice 0x6080000094d0] Language: pt-PT, Name: Joana, Quality: Default [com.apple.ttsbundle.Joana-compact] [AVSpeechSynthesisVoice 0x608000009210] Language: ro-RO, Name: Ioana, Quality: Default [com.apple.ttsbundle.Ioana-compact] [AVSpeechSynthesisVoice 0x608000009130] Language: ru-RU, Name: Milena, Quality: Default [com.apple.ttsbundle.Milena-compact] [AVSpeechSynthesisVoice 0x608000009620] Language: sk-SK, Name: Laura, Quality: Default [com.apple.ttsbundle.Laura-compact] [AVSpeechSynthesisVoice 0x608000009730] Language: sv-SE, Name: Alva, Quality: Default [com.apple.ttsbundle.Alva-compact] [AVSpeechSynthesisVoice 0x608000009740] Language: th-TH, Name: Kanya, Quality: Default [com.apple.ttsbundle.Kanya-compact] [AVSpeechSynthesisVoice 0x6080000095e0] Language: tr-TR, Name: Yelda, Quality: Default [com.apple.ttsbundle.Yelda-compact] [AVSpeechSynthesisVoice 0x608000009010] Language: zh-CN, Name: Ting-Ting, Quality: Default [com.apple.ttsbundle.Ting-Ting-compact] [AVSpeechSynthesisVoice 0x608000009660] Language: zh-HK, Name: Sin-Ji, Quality: Default [com.apple.ttsbundle.Sin-Ji-compact] [AVSpeechSynthesisVoice 0x608000009860] Language: zh-TW, Name: Mei-Jia, Quality: Default [com.apple.ttsbundle.Mei-Jia-compact]
As Axello's comments below, this obviously does not include the en-AU male voice, which is available in the iPhoneโs โLeeโ settings. It would seem that at present it is not available through this API. Perhaps it will be added on time, but given that the available voices are not like what they changed since December 30, 2015 , I would not hold your breath.
Customization
import AVFoundation let utterance : AVSpeechUtterance = AVSpeechUtterance(string: "String to be read out.") let voiceToUse: AVSpeechSynthesisVoice? = AVSpeechSynthesisVoice(language: "en-US") utterance.voice = voiceToUse!
Answer
We can directly select Alexโs voice using AVSpeechSynthesisVoice(identifier: AVSpeechSynthesisVoiceIdentifierAlex) , but, oddly enough, the only identifier Apple has provided to date is Alex. ๐คท
For any other voices (see above list again for voice names) use the following code:
// From https://www.ikiapps.com/tips/2015/12/30/setting-voice-for-tts-in-ios var voiceToUse: AVSpeechSynthesisVoice? for voice in AVSpeechSynthesisVoice.speechVoices() { if
(This can be done more elegantly using filter() than a loop, but I'm not familiar with the syntax in Swift, so see here if interested, or leave a comment if you know how to write it).
As for the voices designated "Siri", I have no idea. Maybe they are not related to AVSpeechSynthesisVoice ? Comments are welcome if you know the deal behind them.