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
.