TTS

General TTS

TASagentBot features a simple TTS system. Users with elevated permissions can trigger TTS with the command: !tts This is how I can use TTS in chat.

Integrated Sound Effects

TTS supports the inline insertion of sound effects, used like this: !tts Hey, TASagent! Lookout! Try not to /bao too hard.

Go here to see the full selection of available sound effect. Note: The sound effect samples will only function while the bot is live.

TTS Effect Markup

A few features have been added to allow greater control over the voicing of TTS text.

Emphasizing

To emphasize a word or phrase in the sentence, surround it with underscores (_) or asterisks (*). Example: !tts What on _earth_ are you talking about?.

Whispering

The Amazon Polly voices support a whisper mode. To whisper text, simply surround it with parentheses ((text)). Example: !tts Oh my! (That was intense!).

Censoring

All TTS voices support censoring. To censor text, simply surround it with tildes (~text~). Example: !tts Holy ~crap~!.

Pausing

To insert a pause in the TTS output, use !pause(duration), where the duration is specified in milliseconds. Example: !tts Wait for it! !pause(3000) There it is.

Voice Personalization

A number of features exist that allow you to personalize your TTS voice

Setting TTS Voice

Users can set a custom voice that is used just for their TTS commands with !set tts voice <ttsVoice>. For example, to set your TTS voice to Joanna, you would type !set tts voice Joanna. To hear a sample of any voice saying !tts Hello, my name is <name>. *This sentence has emphasis*. (This one is whispered). rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr. ~censored~., simply click play next to the corresponding name below.

Region Service Name Example
US Amazon Polly Ivy
Joanna
Kendra
Kimberly
Salli
Joey
Justin
Matthew
Microsoft Azure Benjamin
Guy
Aria
Zira
Google Cloud en-US-Standard-A
en-US-Standard-B
en-US-Standard-C
en-US-Standard-D
en-US-Standard-E
en-US-Standard-F
en-US-Standard-G
en-US-Standard-H
en-US-Standard-I
en-US-Standard-J
CA Microsoft Azure Heather
Linda
GB Amazon Polly Amy
Emma
Brian
Geraint
Microsoft Azure George
Hazel
Susan
Google Cloud en-GB-Standard-A
en-GB-Standard-B
en-GB-Standard-C
en-GB-Standard-D
en-GB-Standard-F
AU Amazon Polly Nicole
Russell
Microsoft Azure Catherine
Hayley
Google Cloud en-AU-Standard-A
en-AU-Standard-B
en-AU-Standard-C
en-AU-Standard-D
IN Amazon Polly Aditi
Raveena
Microsoft Azure Heera
Priya
Ravi
Google Cloud en-IN-Standard-A
en-IN-Standard-B
en-IN-Standard-C
en-IN-Standard-D
IE Microsoft Azure Sean
FR Amazon Polly Celine
Lea
Mathieu
FR-CA Amazon Polly Chantal
DE Amazon Polly Marlene
Vicki
Hans
IT Amazon Polly Bianca
Carla
Giorgio
PL Amazon Polly Ewa
Maja
Jacek
Jan
BR Amazon Polly Vitoria
Camila
Ricardo
RU Amazon Polly Tatyana
Maxim
ES-ES Amazon Polly Lucia
Conchita
Enrique
ES-MX Amazon Polly Mia
ES-US Amazon Polly Penelope
Lupe
Miguel
TR Amazon Polly Filiz
CY Amazon Polly Gwyneth
Neural Voices

Now you can also make use of the pricier Neural voices!

Region Service Name Example
US Amazon Polly IvyNeural
JoannaNeural
JoeyNeural
JustinNeural
KendraNeural
KevinNeural
KimberlyNeural
MatthewNeural
SalliNeural
Microsoft Azure AriaNeural
GuyNeural
JennyNeural
Google Cloud en-US-Wavenet-A
en-US-Wavenet-B
en-US-Wavenet-C
en-US-Wavenet-D
en-US-Wavenet-E
en-US-Wavenet-F
en-US-Wavenet-G
en-US-Wavenet-H
en-US-Wavenet-I
en-US-Wavenet-J
CA Microsoft Azure ClaraNeural
LiamNeural
GB Amazon Polly AmyNeural
BrianNeural
EmmaNeural
Microsoft Azure LibbyNeural
MiaNeural
RyanNeural
Google Cloud en-GB-Wavenet-A
en-GB-Wavenet-B
en-GB-Wavenet-C
en-GB-Wavenet-D
en-GB-Wavenet-F
AU Amazon Polly OliviaNeural
Microsoft Azure NatashaNeural
WilliamNeural
Google Cloud en-AU-Wavenet-A
en-AU-Wavenet-B
en-AU-Wavenet-C
en-AU-Wavenet-D
NZ Microsoft Azure MitchellNeural
MollyNeural
IN Microsoft Azure NeerjaNeural
PrabhatNeural
Google Cloud en-IN-Wavenet-A
en-IN-Wavenet-B
en-IN-Wavenet-C
en-IN-Wavenet-D
IE Microsoft Azure EmilyNeural
ConnorNeural
HK Microsoft Azure SamNeural
YanNeural
PH Microsoft Azure RosaNeural
JamesNeural
SG Microsoft Azure LunaNeural
WayneNeural
ZA Microsoft Azure LeahNeural
LukeNeural

Setting TTS Pitch

Users can set a custom pitch that is used just for their TTS commands with !set tts pitch <value>. For example, to set the TTS Pitch to x-high, you would type !set tts pitch x-high.

  • x-low
  • low
  • medium
  • high
  • x-high
Voice X-Low Low Medium High X-High
Brian
Joanna
Justin
en-US-Standard-B
en-US-Standard-C
en-AU-Standard-A

Setting TTS Speed

Users can set a custom speed that is used just for their TTS commands with !set tts speed <value>. For example, to set the TTS Speed to slow, you would type !set tts speed slow.

  • x-slow
  • slow
  • medium
  • fast
  • x-fast

TTS Modifier Support

Each TTS service and voice-type supports a different subset of the TTS Features and markup mentioned above.

Service Type Emphasis Whisper Censor Pitch Speed
AWS Polly Standard
Neural
Google Cloud Standard
Neural
Microsoft Azure Standard
Neural

Effects

Users can set custom effects and effect chains that are used just for their TTS commands with !set tts effect <Effects>.

Pitch Shift

A pitch shift can adjust the pitch of a TTS Voice higher or lower. Pitch shifts take the form PitchShift <shift>. For example, to set your effect to be a pitch shift of 0.75, you would type !set tts effect PitchShift 0.75.

Command Example
PitchShift 0.5
PitchShift 0.75
Non-PitchShifted Reference
PitchShift 1.5
PitchShift 2
Chorus Effect

A chorus effect can make the TTS voice sound like a chorus of several. A hivemind, of sorts. For example, to set your effect to be the chorus effect, you would type !set tts effect Chorus.

Command Example
Chorus
Non-Chorus Reference
Noise Vocoding

Noise Vocoding can make the TTS voice sound like a creepy serial-killer. Noise vocoding takes the form Vocode <band>. The more bands that are used, the more clear the voice will be. For example, to set your effect to be the Noise Vocoding with 40 bands, you would type !set tts effect Vocode 40.

Command Example
Vocode 5
Vocode 10
Vocode 20
Vocode 30
Vocode 40
Non-Vocoded Reference
Frequency Modulation

Frequency modulation can make the TTS voice sound like its pitch is wavering back and forth. Frequency modulation takes the form Modulation <rate> <depth>, where the rate determines the speed of the modulation, and the depth determines the degree of the modulation. For example, to set your effect to be the Frequency Modulation effect with a rate of 4 Hz and a depth of 100 Hz, you would type !set tts effect Modulation 4 100.

Command Example
Modulation 2 10
Modulation 2 50
Modulation 2 200
Modulation 8 10
Modulation 8 50
Modulation 8 200
Modulation 32 10
Modulation 32 50
Modulation 32 200
Non-Modulated Reference
Reverb

Reverb can make the TTS voice sound like it’s emanating from a different environment. Reverb is somewhat nuanced, so a number of pre-defined options are available. Reverb takes the form Reverb <effect>, where effect is one of the options below. If chaining effects, Reverb should generally be last. For example, to set your effect to be the Crappy Speaker Reverb, you would type !set tts effect Reverb CrappySpeaker.

Command Example
Reverb Mild
Reverb Medium
Reverb Strong
Reverb Echo
Reverb StrongEcho
Reverb CrappySpeaker
Reverb SmallSpeaker
Reverb InsideEar
Reverb InsideBox
Reverb VeryWarm
No-Reverb Reference
Frequency Shift

Frequency shift effects apply a linear shift to the frequencies making up the TTS voice, which can create unusual patterns of interference. Frequency shifts take the form FrequencyShift <shift>. For example, to set your effect to be a 50Hz Frequency Shift, you would type !set tts effect FrequencyShift 50.

Command Example
FrequencyShift -200
FrequencyShift -100
FrequencyShift -50
FrequencyShift -20
FrequencyShift -10
Non-Shifted Reference
FrequencyShift 10
FrequencyShift 20
FrequencyShift 50
FrequencyShift 100
FrequencyShift 200
Chaining Effects

You can chain together multiple effects by just adding a comma between them. Effects are execute left to right.

Command Example
NoiseVocodeEffect 30, Chorus, PitchShift 1.4
PitchShift 0.8, Reverb InsideBox
Removing Effects

To remove all effects from your TTS voice and restore it to default behavior, use !set tts effect none.