home

Devin's DEC​talk TTS Tutorial

Using TuneBaseAlpha

Shoutouts to slegghetti on steam for their awesome tutorial.

Normal Speech

For normal speech, simply enter the text you would like to be spoken, same as normal TTS.
If you want to test how something sounds, you can download the DEC​talk client.

Voice Selection

DEC​talk offers 9 voices to choose from, you can specify which voice you'd like by including an escape sequence before your message. For example:
[:np] Hello world!
would say "Hello world!" in the "Paul" voice. The available voices are:
You can even change voices mid-message! [:np]Hello, Betty. [:nb]Hello, Paul.

Singing


Basics

To make a song, your message needs to start with [:phone on], and each note needs to be written out in the form (phoneme)<(duration),(pitch)>.
For instance, if I wanted the TTS to sing "bee" on the note A4 for half a second, I would input [:phone on][biy<500,22>]. "B" is a consonant sound, "iy" is the phoneme for "ee" as in "bee", 22 is the code for A4, and "500" means "500ms"

Phonemes & Consonants

DEC​talk will usually read text normally, but, while singing, uses a list of pre-set phonemes. This is why we had to spell "bee" as "biy" in the above example.
Most of the phonemes are vowel sounds, and all vowel sounds are phonemes. DEC​talk will interpret the last thing it sees before the <> as what it should "sing", so this should always be a phoneme.
For instance, if I want it to sing "beans" I should enter biy<400,22>ns as opposed to biyns<400,22>, as the latter will try to sustain the "s", which it is not programmed to do, so there will just be silence for the rest of the notes duration.

Incorrect phonemes will cause the program to say "command error in phoneme" instead of trying to pronounce what you said, so it is imperative you use them correctly.
Here is a list of known phonemes:
Some additional tips regarding consonants:

TuneBaseAlpha

TuneBaseAlpha is a java applet I made to make DEC​talk music composition easier. In it, you can select pitch by note name instead of memorizing what numbers correspond to which notes. You just select the note, and then input the desired duration and phoneme, and the program takes care of the syntax. You can download TuneBaseAlpha from my GitHub repository (direct download link).

Example

Lets take a basic example, suppose I want to make the TTS sing "I am singing a scale" in a scale. I first need to convert the syllables into phonemes (I'd normally do this one note at a time, but for the sake of this example, I'll do the whole sentence at once).
I am singing a scale
ay aem siyngiyng ey skeyll
Then, I need to break it up in such a way that each vowel sound leads in to the note, so for this sentence, the phonemes I'd end up putting into TuneBaseAlpha would be:
ay ae msiy ngiy ngey skey
Plugged into TuneBaseAlpha with C3 as the starting note, the output is [:phone on][ay<400,13>ae<400,15>msiy<400,17>ngiy<400,18>ngey<400,20>scey<400,22>], to which I will add "ll" between the last ">" and the last "]". Making my final TTS message:
[:phone on][ay<400,13>ae<400,15>msiy<400,17>ngiy<400,18>ngey<400,20>scey<400,22>ll].
The output:
home