TTS switched to wrong voice - macOS/iOS update

After updating to the latest AnkiHub note types, my TTTS no longer uses the original voice. Instead, it switched to a completely different voice, which I didn’t configure. The voice is not stuck—it’s just wrong, and I can’t find any way to revert or tune it on Mac.

Questions:

  1. Is this a bug introduced after the update?

  2. On Mac, is there any way to manually select or change the TTTS voice Anki uses?

TTS is set in your card templates, so if your note type updated, that probably overwrote the TTS tags you had set up. Field Replacements - Anki Manual

{{tts en_US voices=Apple_Samantha,Microsoft_Zira speed=1.4:cloze:Text }}

I have this default voice encoding in anking note type. Now it sounds weird in my MacBook whereas it sounds perfectly normal like before in the iPad.

There have been a couple mentions of TTS voices sounding different after recent updates to iOS/macOS – e.g. Reddit - The heart of the internet . Did you also update your OS recently?

  • Is it a different voice, or is there something wrong with the voice?
  • Have you checked {{tts-voices:}} to make sure the voice you have selected is still available and the command to get it hasn’t changed?

In the VoiceOver Utility app, under Speech → Voices → Primary Voice → Samantha → Samantha, you can bring up a list of all available voices. Below the default “Samantha” voice, I see that there is an additional, better-sounding “Samantha (Enhanced)” voice that needs to be downloaded (by clicking on the “Samantha (Enhanced)” text).

I also found a Reddit post that suggests that Enhanced and Premium voices used to be installed by default but are no longer installed by default in macOS 26 Tahoe:
https://www.reddit.com/r/applehelp/comments/1nj9ffc/did_apple_remove_spoken_content_voices_from_macos/

did apple remove spoken content voices from Macos 26 now the selection is too small and only default voices are left premium and enhanced voices are no where to be found . any solution?

just updated to tahoe and now tts sucks because the pervious voices are gone and its making me really annoyed to go back to those robotic voices

Could it be that macOS 26 Tahoe users would need to download the “Samantha (Enhanced)” voice to get the Samantha voice to sound how it did in previous OS versions?

Yeah, My issue is exactly same as mentioned in the post. It sounds like zombie

I downloaded and changed it to Samantha Enhanced, but it still sounds like the same zombie.

Make sure you have the tag written exactly how it needs to be.

If I put in {{tts-voices:}} I only have HyperTTS and Microsoft_Zara as options for en_US.

Does it maybe have something to do with having HyperTTS downloaded? It worked fine before the update.

Have you already looked into the app itself and checked this problem for urself? Maybe you can fix it easily. Before I just had: {{tts en_US:Meaning}} and it worked completely fine on the app and the laptop alike. The voices were different though on the app and the Laptop.

I’m sorry for being dumb, so should I have to replace just this code instead of the old code of TtS?

If I just replace this, I am getting the same old robotic voice.

I don’t know what was used to be available before also.

You do need to choose from among the available voices, and use the exact syntax. See the first link I posted above.

If your list of available voices has changed – yes, you need to update your templates to match the available voices. Anki relies on 3rd party TTS functionality, so that command lists for you what is available on your device.

u found any solution?

I use PC Anki (25.07.5) to make cards and IOS mobile Anki (25.09) to review. But recently the audio on my phone can’t play normally. The audio is heavily distorted. (PC is fine) At the same time, my IOS version is 26.0.1.

It’s my frontside card’s code:

<h1>{{正面}}</h1>

It’s my back card’s code:

{{FrontSide}}

<center>
<a href="https://youglish.com/pronounce/%7B%7B正面%7D%7D/english"> 多人发音 </a> | {{tts en_US voice=Apple_Alex:正面}} | <a href="https://www.ldoceonline.com/dictionary/%7B%7B正面%7D%7D"> 释义 </a>
</center>

<hr id=answer>

{{背面}}

<p id+"tags" style= "color: rgb(153, 153, 153);">

{{Tags}}

</p>

I prepared a screen recording video, but I couldn’t send it in my post according to the rules which doesn’t allow new users to add links.

Thanks so much.

Yes, I updated my iphone and ipad to the lastest version 26.0.1. The sound is like a zombie’s voice, like the video on the reddit showing. I’ve tried {{tts-voices:}} already. But it failed.

I enabled the text-to-speech accessibility feature in iOS settings and tested it by using it to read text on a web page in Safari, and the audio sounded normal. This seems to suggest that the iOS tts engine itself is working fine. Could it be that a recent iOS update changed the API or something, and Anki needs to update accordingly?

What does that mean? Did the command not give you any results? Or did it give you results that didn’t help?

Anything is possible, but we haven’t seen anything to suggest that yet – and we’d hope that iOS isn’t making secret changes to its TTS functionality without publishing specs for developers to follow. Based on how few people have reported issues, this appears somewhat unique. Unfortunately that also make it hard to reproduce and fix.

I was able to reproduce the reported behavior in Anki (25.09.2) on macOS Tahoe 26.0.1. It occurs when you try to use a voice that is not listed in {{tts-voices:}}.

Steps to Reproduce:

  1. In Anki, Browse and select a Note to use for testing, one with a field named “English”.
  2. Press the Cards… button to edit the card templates.
  3. Add “{{tts-voices:}}” to the top of the template.
  4. In the card Preview, observe that in the list of TTS voices, one of the voices is “{{tts en_US voices=Apple_Samantha_(English_(US))}}”
  5. In the template, replace “{{tts-voices:}}” with “{{tts en_US voices=Apple_Samantha_(English_(US)):English}}”.
  6. In the Preview, press the Play button and observe that the voice sounds okay.
  7. In the template, change “{{tts en_US voices=Apple_Samantha_(English_(US)):English}}” to “{{tts en_US voices=Apple_Samanthaa_(English_(US)):English}}”. (Note the typo, “Samanthaa” instead of “Samantha”.)
  8. In the Preview, press the Play button and observe that the voice is different, sounding robotic.

So, it seems as if the default macOS 26 TTS voice (when the specified voice is not in the {{tts-voices:}} list) is that robotic-sounding voice.


Regarding the video in that Reddit post…

… I think that the voice is Apple TTS “Albert”, listed under the “Novelty” section (towards the bottom of the list of voices). So, it seems that the default iOS 26 TTS voice might be “Albert”.


You may be trying to use a non-existent TTS voice. There is no “en_US Apple_Alex” voice in the default {{tts-voices:}} list. There is an en_US Alex voice that exists, but it needs to be downloaded first (via VoiceOver Utility app on macOS or Settings → Accessibility on iOS) before it can be used.


Edit: Added:
The first time I used {{tts-voices:}}, I saw “{{tts en_US voices=Apple_Samantha}}” and that voice worked and sounded normal.
But, when I tested again, {{tts-voices:}} showed “{{tts en_US voices=Apple_Samantha_(English_(US))}}” instead, and the original “{{tts en_US voices=Apple_Samantha}}” was missing and trying to use that no-longer-listed voice sounded robotic.

Is the list of {{tts-voices:}} somehow intermittently changing?

I’m also seeing other strangeness in {{tts-voices:}} output, like some voices listed twice (duplicate lines).

1 Like

The {{tts-voices:}} output and voice names are different in Mac desktop Anki app and the iOS AnkiMobile app.

Here are the first and last 5 voices in {{tts-voices}} output on:
Mac:

TTS voices available:
{{tts ar_001 voices=Apple_Majed_(Arabic_(World))}}
{{tts ar_001 voices=Apple_Majed_(Arabic_(World))}}
{{tts bg_BG voices=Apple_Daria}}
{{tts bn_IN voices=Apple_Piya}}
{{tts ca_ES voices=Apple_Montse}}
...
{{tts zh_TW voices=Apple_Meijia}}
{{tts zh_TW voices=Apple_Reed_(Chinese_(Taiwan))}}
{{tts zh_TW voices=Apple_Rocko_(Chinese_(Taiwan))}}
{{tts zh_TW voices=Apple_Sandy_(Chinese_(Taiwan))}}
{{tts zh_TW voices=Apple_Shelley_(Chinese_(Taiwan))}}

iOS:

Available TTS voices:
{{tts ar-001 voices=Apple_Majed:Front}}
{{tts bg-BG voices=Apple_Daria:Front}}
{{tts bn-IN voices=Apple_Piya:Front}}
{{tts ca-ES voices=Apple_Montse:Front}}
{{tts cs-CZ voices=Apple_Zuzana:Front}}
...
{{tts zh-TW voices=Apple_Meijia:Front}}
{{tts zh-TW voices=Apple_Reed:Front}}
{{tts zh-TW voices=Apple_Rocko:Front}}
{{tts zh-TW voices=Apple_Sandy:Front}}
{{tts zh-TW voices=Apple_Shelley:Front}}
  • Note the duplicate “Apple_Majed” voices on Mac.
  • The Mac output has some duplicate voices because the app gets the list of voices from the output of the say -v "?" command (per anki/qt/aqt/tts.py line 198.) The duplicates are in the say command output itself. (I think that the duplicates might be occuring because some voices are on 2 different lists, as both TTS voices and Siri voices.)
  • The iOS output has the language-country codes (incorrectly?) formatted with hyphens, while they are formatted with underscores on Mac: “en-US” vs. “en_US”
  • The iOS output has the text “:Front” incorrectly appended to the end of every voice name. I tested it, and the voice names work only when the extra “:Front” text is omitted.
  • Finally, note the different names on Mac vs. iOS for Majed, Reed, Rocko, Sandy, and Shelley.

For the “Samantha” voice, here is the output on:
Mac:

{{tts en_US voices=Apple_Samantha_(English_(US))}}
{{tts en_US voices=Apple_Samantha_(English_(US))}}

iOS:

{{tts en-US voices=Apple_Samantha:Front}}
  • Note the duplicate lines on Mac.
  • Note that the name for the Samantha voice is different on Mac and iOS.
  • I was able to work around the issue by including both names in my card template: {{tts en_US voices="Apple_Samantha_(English_(US)),Apple_Samantha":English}}. Doing so resulted in the correct Samantha voice being used on both Mac and iOS.

When the specified voice is not available, Anki seems to use the first voice listed in alphabetical order for the specified language. For en_US, that is the Apple_Albert voice by default. (Unless you have the optional Apple_Agnes voice installed. Apple_Agnes gets used instead since “Agnes” comes before “Albert” alphabetically.)

1 Like

Finally, I fixed it. I used {{tts-voices:}} to test. Then the command showed available TTS voices, I chose one of them. It worked. Like the other said, {{tts en_US voice=Apple_Alex}} doesn’t exist in the lastest iOS version. I guess it only existed in the old versions. That’s why TTS switched to the wrong voices. Thank you so much.