It’s a shame that iOS limits the use of Siri voices. Considering all other voices, be it premium or enhanced, kinda suck, the best option for TTS would be Apple’s Personal Voice.
It seems that now we are allowed to use Personal Voice in third-party apps, as long as the app requests it, e.g. Speech Central, an app for general TTS purposes.
It would be hugely appreciated if this were possible with AnkiMobile as well!
I did not see Personal Voices in the available TTS voices list, but it could be because I am on beta. I will test it out when the official iOS 26 is released.
I would like to submit a suggestion for AnkiMobile (iPhone/iPad) to be able to use the iOS “Personal Voice” as a voice option for TTS.
I’ve created a Personal Voice and allowed apps to request to use it. It does not show in the {{tts-voices:}} list in the card template. I’m not sure how to ask Anki to request to use the Personal Voice.
I’ll try to create a Personal Voice to see if I can reproduce the behavior.
Do you happen to have a Mac computer, with the Anki app on it, and the “Share Across Devices” and “Allow applications to use your Personal Voice” settings enabled? If so:
Does your Personal Voice appear in {tts-voices:}} in the desktop Anki app?
Could you please run say -v "?" in the Terminal app and paste the output line that contains your Personal Voice? (I am interested in seeing whether your Personal Voice is listed and if it is, how it appears in the say output.)
On the Mac, my Personal Voice on the Mac does not show in {{tts-voices:}} in the desktop Anki app. Also, the Personal Voice does not show in the say output in Terminal.
Thank you for doing that work. It’s what I suspected would happen.
The prescribed process is for the app to request access to the Personal Voices via AVSpeechSynthesizer.requestPersonalVoiceAuthorization() in the AVFAudio framework. The user gets a popup asking whether the app should be granted permission to access Personal Voices. After permission has been granted, the Personal Voices will appear in the list of available voices via AVSpeechSynthesisVoice.speechVoices(). Otherwise Personal Voices won’t appear in the list and won’t be available. It is not possible to simply grant random apps (like Terminal) permission to access Personal Voices.
It seems that the Terminal app doesn’t make that request, so it and the say command don’t have access to Personal Voices. The desktop Anki app on Mac uses the output of say -v "?" to get its list of available voices, and it also actually uses say for all its TTS functionality. It does not use AVFAudio at all. So, that part of the app might need to be rewritten to get access to Personal Voices.
I assume that the AnkiMobile app does actually use AVFAudio and adding the enhancement might be as simple as adding a requestPersonalVoiceAuthorization() call in the code.
Thank you so much! It is great to have all the detail you wrote.
That would be great if the Anki desktop and Anki mobile could both access the Personal Voice, but the mobile would get my vote as the higher priority one. I’ll pass on the dangerous Terminal workaround, though, for now for the Mac.
Should I put in a suggestion for AnkiMobile to use AVFAudio or do you recommend a next step for me? I’m glad to be patient for the feature to get in the pipeline.