AwesomeTTS for Anki

Easily add text-to-speech to your Anki cards

Enabling On-the-Fly Playback via Card Templates

The easiest way to add TTS to your cards is to edit the template(s) they use to wrap a <tts> HTML tag around the text you want spoken. You can use the normal Anki template placeholders within these tags. Additionally, you may opt to hide all or individual <tts> tags if you want to display something else or nothing at all (e.g. for listening comprehension cards).

This and the are best for users who only need TTS playback while using the desktop version of Anki with AwesomeTTS installed. Users who use Anki on mobile devices (e.g. with AnkiDroid) or on AnkiWeb may want to instead store [sound] tags via the note editor or methods.

Instructions

  1. From the note editor (or the card browser with a card selected), click the “Cards” button.
  2. Review your existing card template, and then click the “Add TTS” button.
  3. Select your desired service and configure any options.
  4. Type a sample phrase and then click “Preview” to confirm that your audio is as you would like it to sound.
  5. If you have a specific note field you would like AwesomeTTS to read from, select it from the field dropdown.
  6. If you would like to hide the inside of the TTS tag (e.g. because you have a listening comprehension card and you do not want to see the text displayed), change the visibility dropdown to either:
    • Hide just this tag with inline CSS to insert the tag with additional styling that creates a local rule on just the new tag to not be shown
    • Add rule to hide any TTS tag for this note type to add a styling rule to all of the cards for this note so that no <tts> tag used anywhere in any card will be visible
  7. Select on which side of the template you want AwesomeTTS to play the audio.
  8. Click the “Insert” button.
  9. Clean up any duplicate or unwanted text in your template.

Can I selectively disable or modify the TTS output for certain cards?

If the TTS quality for a particular note phrase is poor, you might want to disable it or replace it with a manually-generated sound.

To disable it, add a “No TTS” field to the note type, add a “1” in that field for the affected notes, and then modify your template to look like this:

{{^No TTS}}<tts service="espeak" voice="en">{{/No TTS}}
    {{Front}}
{{^No TTS}}</tts>{{/No TTS}}

To use a manually-generated sound, add a “Sound” field to the note type, generate an audio file and insert it into the field as a [sound:xxx] tag, and then modify your template to look like this:

{{Sound}}

{{^Sound}}<tts service="espeak" voice="en">{{/Sound}}
    {{Front}}
{{^Sound}}</tts>{{/Sound}}

If you would prefer to avoid complicating your templates, you may also opt to create a new note type that doesn’t use on-the-fly TTS, and move the affected notes to that new note type.

Other Hints