TTS Says "exclamation point"

Normally an ! at the end or anywhere in the middle of a field is not spoken by TTS. However if it is at the beginning of the field TTS says “exclamation point”. Interestingly if there is a space after the ! then the ! stays silent on the desktop. However that doesn’t work on the iPad. Even followed by a space TTS says “exclamation point”. I would like it not spoken on the iPad as well.

Anki doesn’t have a built-in feature to change the way text is pronounced by the speech engine. One way you could possibly work around it is to use the find&replace feature to remove leading exclamation marks from your fields, using a regular expression like ^!.

I extensively use the very useful add-on “Close Hide All”. It hides all non-current clozes on the front. Any clozes you want to behave like a normal cloze (not hidden on the front) you add an exclamation point at the beginning. The exclamation point itself remains hidden on both front and back. Plus there are no brackets around the non-current clozes so a sentence is not broken up and can be read easily. So this add-on is great but has one drawback. For typing the answer the error checking expects you to type the exclamation. I have worked around that by not using the error checking. I just type a field with only a space entered: {{type:enter_space}}.
TTS, as I said, is no problem on the desktop. An ! followed by a space is not spoken. If I understand you correctly, the speech engine is not part of Anki. The iPad speech engine works differently from the desktop’s?
Both my iPhone and iMac desktop are up to date latest OS. iPhone still has the problem.

I looked for alternative add-ons that can hide or show clozes. “Flexible Cloze” uses the same ! so I expect it to have the same problems. Actually, it doesn’t even hide the ! on the back. “Enhanced Cloze for Anki 21” doesn’t behave the same, showing only hints instead of answers.
Do you have any suggestions?

If the convention used by the add-on is interfering with another Anki function it’s probably worth raising the issue with the add-on developer. They might be unaware of the issue and able to add an alternative syntax that stays silent when used with TTS.

An alternative might be to duplicate the cloze field, remove the exclamation points using dae’s suggestion, add that field to the back of the cards, and have the TTS read out that instead.

1 Like

Fantastic! your solution works! The manual says you can only have clozes in one field normally called Text so I didn’t think Anki would recognize clozes in another field. But it does! Just duplicate the cloze deletes into another field (TextCopy). Extra text outside clozes doesn’t have to be duplicated. Then delete the exclamations. It also works for {{type:cloze:TextCopy}}. I have eliminated the extra field for typing {{type:enter_space}} and now the typing error correction works without requiring typing the !
Thank you very much!
Long ago I posted the problem to the add-on author but nothing has been done. I will post again to him to tell him this solution.

1 Like