DECtalk
powered by Coffee

DECTalk Guide

Examples

WIP, may not work as expected.

Songs with Words!

Some amazing songs!

  • Amazing Spider Man:
    [:phoneme on] [spay<200,13> drr<100,16> mae<300,20> n<200> spay<200,19> drr<100,16> mae<300,13> n] [dah<200,13> zwah<100,16> teh<300,20> vrr<100,21> ah<200,20> spay<200,19> drr<100,16> kae<300,13>n] [spih<200,18> nzah<100,21> weh<300,25> b<200> eh<200,23> niy<100,21> say<300,18>z] [kae<200,13> chih<100,16> zthiy<300,20> vz_<200> jhah<200,19> stlxay<100,16> kflxay<300,13> z] [lxuh<100,21> kaa<400,20> aw<4000> t_hxiy<200,18> rkah<200,16> mzah<100> sp<40> ay<300,18> drr<200> mae<300,18> n<300,01> ]
  • Mama Didn't Mean to Make You Cry:
    [:phoneme on] [maa<150,32>maa<2750>uw<300>uw<300,30>uw<200,32>uw<150,33>uw<3800,32>] [dih<150,32>deh<150>t] [miy<500,33>n] [tuw<150,32>mey<300>kyu<300,30>kray<4000>] [ih<150,30>fay<450,23>m] [nao<200,30>t] [bbae<300>kax<150,32>geh<500>n] [dhih<200,33>s] [tay<500>m] [tuw<150,35>mar<300,33>ow<4000,32>] [keh<200,30>riy<200,32>ao<1000,35>n] [key<200,30>riy<200,32>ao<1000,28>n] [ae<150,23>zih<100>f] [nah<300,23>thih<200,26>nx] [rih<300,24>lliy<300,26>mae<300,26>DXRR<300,25>Z<300,25>_<300,25>]
  • Star Wars Death March:
    [:phoneme on] [dah<600,20>] [dah<600,20>] [dah<600,20>] [dah<500,16>] [dah<130,23>] [dah<600,20>] [dah<500,16>] [dah<130,23>] [dah<600,20>] [dah<600,27>] [dah<600,27>] [dah<600,27>] [dah<500,28>] [dah<130,23>] [dah<600,19>] [dah<500,16>] [dah<130,23>] [dah<600,20>] [dah<600,32>] [dah<600,20>] [dah<600,32>] [dah<600,31>] [dah<100,30>] [dah<100,29>] [dah<100,28>] [dah<300,29>] [dah<150,18>] [dah<600,28>] [dah<600,27>] [dah<100,26>] [dah<100,25>] [dah<100,24>] [dah<100,26>] [dah<150,15>] [dah<600,20>] [dah<600,16>] [dah<150,23>] [dah<600,20>] [dah<600,20>] [dah<150,23>] [dah<600,27>] [dah<600,32>] [dah<600,20>] [dah<600,32>] [dah<600,31>] [dah<100,30>] [dah<100,29>] [dah<100,28>] [dah<300,29>] [dah<150,18>] [dah<600,28>] [dah<600,27>] [dah<100,26>] [dah<100,25>] [dah<100,24>] [dah<100,26>] [dah<150,15>] [dah<600,20>] [dah<600,16>] [dah<150,23>] [dah<600,20>] [dah<600,16>] [dah<150,23>] [dah<600,20>]
  • Take Me Out to the Ballgame:
    [:phoneme on] [tey<500,13> k,<500,20> miy<500,25> aw<500,22> txtuw<500,20> dhax<500,17> baw<1500,20> ] [gey<1500,15> m] [tey<500,13> k,<500,20> miy<500,25> aw<500,22> txtuw<500,20> dhax<500,17> kraw<1500,20> d<100,20> ] [bay<500,22> miy<500,18> sax<500,22> m<100,19> piy<500,17> nax<500,18> txsae<500,20> ndkrae<1000,22> krx<500,18> jhae<1500,15> ks] [ay<500,22> ,<500,20> dow<500,22> k ae<500,22> r rixih<500,24> fay<500,25> eh<500,27> vrx<500,24> gih<500,22> tbae<500,20> k] [fow<500,17> ih<500,15> tsruw<500,13> lx,<500,20> ruw<500,25> txruw<500,20> txfow<500,20> txdhax<500,17> hxow<1500,20> m<100,20> ] [ih<500,13> fdhey<500,13> dow<500,15> ntxwih<500,17> nih<500,18> txsax<500,20> shey<2000,22> m<100,22> ] [ae<500,19> tx dhax<500,20> ow<1500,22> lxd baa<1500,24> lx gey<2000,25> m<100,25> _<500,20>]
  • Trololo:
    [:phoneme on] [llao<1600,25>] [llao<350,20>] [llao<300,18>] [llao<1600,20>] [llao<350,13>] [llao<300,15>] [llao<1200,17>] [llao<1200,20>] [llao<600,17>] [llao<1400,15>] [llao<130,20>] [llao<130,22>] [llao<130,23>] [llao<130,24>] [llao<1600,25>] [llao<350,20>] [llao<300,18>] [llao<1600,20>] [llao<350,13>] [llao<300,15>] [llao<1200,17>] [llao<1200,17>] [llao<600,15>] [llao<1000,13>] [llao<130,13>] [llao<130,17>] [llao<130,20>] [llao<130,25>] [llao<350,24>] [llao<130,24>] [llao<130,20>] [llao<350,22>] [llao<130,22>] [llao<130,18>] [llao<620,20>] [llao<130,8>] [llao<130,12>] [llao<130,15>] [llao<130,18>] [llao<1600,17>] [llao<130,13>] [llao<130,17>] [llao<130,20>] [llao<130,25>] [llao<350,24>] [llao<130,24>] [llao<130,20>] [llao<350,22>] [llao<130,22>] [llao<130,18>] [llao<620,20>] [llao<130,20>] [llao<130,22>] [llao<130,23>] [llao<130,24>] [llao<1600,25>] [llao<200,29>] [llao<200,27>] [llao<200,25>] [llao<200,24>] [llao<200,22>] [llao<300,20>] [llao<130,17>] [llao<130,18>] [llao<1200,20>] [llao<350,13>] [llao<300,15>] [llao<1200,17>] [llao<1200,17>] [llao<600,15>] [llao<1000,13>]

Tone Songs!

Tone songs!

  • Keyboard Cat:
    [:t327,330] [:t412,330] [:t490,330] [:t412,330] [:t327,330] [:t412,150] [:t490,460] [:t412,330] [:t275,330] [:t327,330] [:t412,330] [:t327,330] [:t275,330] [:t327,150] [:t412,460] [:t327,330] [:t245,330] [:t309,330] [:t367,330] [:t309,330] [:t245,330] [:t309,150] [:t367,460] [:t309,330] [:t245,330]
  • Tetris Theme:
    [:t329,500] [:t246,250] [:t261,250] [:t293,500] [:t261,250] [:t246,250] [:t220,500] [:t220,250] [:t261,250] [:t329,500] [:t293,250] [:t261,250] [:t246,500] [:t246,250] [:t261,250] [:t293,500] [:t329,500] [:t261,500] [:t220,500] [:t220,500] [:t293,500] [:t349,250] [:t440,500] [:t392,250] [:t349,250] [:t329,750] [:t261,250] [:t329,500] [:t293,250] [:t261,250] [:t246,500] [:t246,250] [:t261,250] [:t293,500] [:t329,500] [:t261,500] [:t220,500] [:t220,500] [:t329,875] [:t261,875] [:t293,875] [:t246,875] [:t261,875] [:t220,875] [:t207,875] [:t246,875] [:t329,875] [:t261,875] [:t293,875] [:t246,875] [:t261,438] [:t329,438] [:t440,875] [:t415,1000]
  • Pokemon Theme:
    [:t293,200] [:t293,200] [:t293,200] [:t293,600] [:t293,200] [:t261,400] [:t220,200] [:t174,800] [:t196,200] [:t293,400] [:t293,400] [:t261,200] [:t233,200] [:t261,1600] [:t311,200] [:t311,400] [:t311,400] [:t311,200] [:t293,400] [:t261,400] [:t233,600] [:t233,200] [:t293,400] [:t293,200] [:t261,400] [:t233,200] [:t293,1600]

Stream Alerts & Notifications

Subscriber and donation alerts with musical tones:

  • New Subscriber Alert:
    [:tone 523 200] [:tone 659 200] [:tone 784 400] [:nw] [:dv br 20 pr 150]Thanks for the sub, CoolViewer123! [:np] [:dv ap 140 pr 120]Welcome to the coffee crew!
  • Bit Donation Alert:
    [:tone 440 200] [:tone 554 200] [:tone 659 400] [:dv ap 180 hs 110]Wow! [:dv pr 200]20,000 bits from SuperFan99! [:tone 880 300] [:tone 988 500]

Character Voices & Personas

Fun character voices for stream interaction:

  • Robot Voice:
    [:dv ap 80 pr 0 br 0 sm 0]Initiating stream protocol.[:sync]System online. [:tone 440 200] Beep boop.
  • Tiny Excited Voice:
    [:nw] [:dv hs 70 ap 200 pr 150 br 30]Oh my gosh oh my gosh oh my gosh! [:tone 880 100] [:tone 988 100] [:tone 1176 200]
  • Evil Overlord:
    [:np] [:dv hs 120 ap 80 pr 90 la 40]Foolish mortals! Your channel points are mine![:tone 200 500] [:tone 150 800] Muh ha ha ha ha!

Stream Events & Mini-Stories

Special event announcements and interactions:

  • Channel Point Redemption:
    [:tone 659 200] [:tone 784 200] [:nw] [:dv ap 170 pr 120]CoffeeKid redeemed 'Make Bot Sing'![:np] [:dv ap 140]🎵 Never gonna give you up... [:dv pr 150]Never gonna let you down... 🎵
  • Raid Announcement:
    [:tone 523 200] [:tone 659 200] [:tone 784 200] [:tone 1046 400] [:dv ap 160 pr 180]INCOMING RAID ALERT! [:tone 1046 200] [:tone 784 200] [:nw]MegaStreamer is raiding with 100 viewers![:np] [:dv hs 110]Welcome raiders! Grab some coffee!

Meme & Pop Culture References

Fun meme-inspired announcements:

  • Epic Announcer:
    [:np] [:dv hs 120 ap 90]In a world... [:tone 0 500] [:dv pr 150]where coffee meets code...[:tone 300 500] [:dv ap 70]One streamer will change everything...
  • MLG Style:
    [:nw] [:dv ap 200 pr 200]OH BABY A TRIPLE! [:tone 880 100] [:tone 988 100] [:tone 1176 100] [:np]MOM GET THE CAMERA! [:tone 1760 200]Wow! [:tone 1760 200]

Interactive Stream Games

Voice lines for stream games and interactions:

  • Chat Battle System:
    [:np] [:dv ap 140]ChatWarrior draws their sword! [:tone 660 200] [:tone 880 300] [:nw] [:dv ap 170 pr 140]StreamBoss takes 25 damage! [:tone 440 200] [:tone 392 400]
  • Channel Point Gambling:
    [:tone 523 200] [:tone 659 200] [:np]The wheel is spinning! [:tone 784 200] [:tone 880 200] [:dv pr 180]And the winner is... [:tone 0 1000] [:tone 1046 500]JACKPOT!

Musical Memes

Classic sound effects and musical moments:

  • Sad Trombone:
    [:tone 392 300] [:tone 349 300] [:tone 330 300] [:tone 294 600] [:np] [:dv ap 90 pr 50]Wah wah wahhhhh...
  • Victory Fanfare:
    [:tone 523 200] [:tone 523 200] [:tone 523 200] [:tone 523 400] [:tone 415 400] [:tone 466 400] [:tone 523 600] [:np] [:dv pr 150]Winner winner!

Combo Systems

Escalating announcements for combos and streaks:

  • Multi-Kill Announcer:
    [:np] [:dv ap 140 pr 120]Double kill! [:tone 660 200] [:dv ap 150 pr 140]Triple kill! [:tone 880 200] [:dv ap 160 pr 160]MONSTER KILL! [:tone 1100 400] [:dv ap 180 pr 200]GODLIKE! [:tone 1320 600]

Getting Started

Basic Tone Syntax

[:tone freq duration]

Where:

  • freq is the frequency in Hz (20-20000)
  • duration is the length in milliseconds

Example: [:tone 440 1000] plays a 440Hz tone (A4 note) for 1 second

Musical Notes Reference

Common musical frequencies:

NoteFrequencyCommand
C4 (Middle C)262 Hz[:tone 262 1000]
D4294 Hz[:tone 294 1000]
E4330 Hz[:tone 330 1000]
F4349 Hz[:tone 349 1000]
G4392 Hz[:tone 392 1000]
A4 (Concert A)440 Hz[:tone 440 1000]
B4494 Hz[:tone 494 1000]
C5523 Hz[:tone 523 1000]

Volume Control

You can control the volume of tones using the [:vol] command:

  • [:vol set 100] - Set volume to 100% (maximum)
  • [:vol set 50] - Set volume to 50%
  • Example: [:vol set 75][:tone 440 1000][:vol set 100]

Musical Patterns

Create simple melodies by chaining tones:

  • C Major Scale:
    [:tone 262 250][:tone 294 250][:tone 330 250][:tone 349 250][:tone 392 250][:tone 440 250][:tone 494 250][:tone 523 250]
  • Simple Arpeggio (C Major):
    [:tone 262 300][:tone 330 300][:tone 392 300][:tone 523 500]

Tips & Best Practices

  • Keep frequencies between 20Hz and 20000Hz for best results
  • Use durations of at least 50ms for clear tones
  • Add small pauses between tones for clarity
  • Consider human hearing range (20Hz - 20kHz) when designing sounds
  • Test your tones at different volume levels
  • Chain multiple tones: [:tone 440 500][:tone 523 500]
  • Mix with speech: Hello [:tone 440 500] World
  • Create pauses: [:tone 440 500][:tone 0 250][:tone 440 500]
  • Quick beep: [:tone 1000 100]

Voice and Speech Control

Voice Control

Change voices using the [:name] command:

  • [:name paul] or [:np] - Default male voice
  • [:name wendy] or [:nw] - Whispering female voice

Customize voice parameters with [:dv]:

  • [:dv ap 100] - Set average pitch to 100Hz
  • [:dv hs 110] - Set head size to 110%
  • [:dv br 0] - Set breathiness to 0
  • [:dv r 100] - Set speech rate to 100
  • [:dv sm 100] - Set smoothness to 100%

Speech Modes

Control how text is interpreted using [:mode]:

  • [:mode spell on] - Spell out all words
  • [:mode math on] - Mathematical symbol interpretation
  • [:mode name on] - Pronounce uppercase words as names
  • [:mode citation on] - Clear pronunciation without vowel reduction

Use [:mode off] to disable any mode.

Speaking Control [:say]

Control when speaking begins using the [:say] command:

  • Syntax: [:say XX] where XX is one of:
    • [:say clause] - Speak on end of clause (default)
    • [:say word] - Speak on end of word
    • [:say letter] - Speak on end of letter
    • [:say line] - Speak on end of line
    • [:say filtered letter] - Speak on end of letter, ignoring control characters (e.g., vertical tab and line feed)
  • Note for Letter Mode: In letter mode, the left bracket is spoken only after the next character is entered because DECtalk needs to know if this is the beginning of a new command.
  • Example: [:say word]This will speak word by word.

Note: This command is synchronous and affects all subsequent text until another [:say] command is encountered.

Punctuation Control

Control how DECtalk treats punctuation marks using the [:punct] command:

  • Syntax: [:punct XX]
  • Options:
    • [:punct none] - Punctuation and some other symbols are not pronounced. Exceptions: dollar and percentage signs. Punctuation symbols are treated as text breaks.
    • [:punct some] - Text is read normally; clause boundary punctuation is not spoken, but all symbols such as $ are spoken as words. (Default)
    • [:punct all] - All punctuation symbols and other symbols are spoken as words.
    • [:punct pass] - All special punctuation processing is turned off. Useful in proofreading and applications where special characters are encountered, such as in computer programs.
  • Default: some
  • Note: This command is synchronous

Speech Rate Control

Control the speaking rate using the [:rate] command:

  • Syntax: [:rate DD] where DD is words per minute
  • Range: 75 to 600 words per minute
  • Default: 200 words per minute
  • Examples:
    • [:rate 400] - Set speech to 400 words per minute
    • [:rate 75] - Set to minimum rate
    • [:rate 600] - Set to maximum rate

Important Notes:

  • This command is asynchronous
  • Values outside the range 75 to 600 default to the nearest legal value
  • For example, [:rate 880] defaults to 600 words per minute
  • See Speaking Rate documentation for more details

Pause Control

Fine-tune pauses in speech:

  • [:period] - Controls pause after periods (default: 640ms)
    • [:period 250] - Set period pause to 250ms
    • [:pp 0] - Reset to default
    • Range: -420ms to +30000ms
  • [:comma] - Controls pause after commas (default: 280ms)
    • [:comma 150] - Set comma pause to 150ms
    • [:cp 0] - Reset to default
    • Range: -280ms to +30000ms

Expression Control

DECtalk supports various expression controls to modify how text is spoken:

  • [:express name] - Sets the expression mode
  • [:n] - Returns to normal expression

Available expressions:

  • [:eh] - Eh (questioning)
  • [:wb] - Whimper
  • [:lf] - Laugh
  • [:cr] - Cry
  • [:an] - Angry
  • [:sh] - Shouty
  • [:wh] - Whisper

Example: [:eh]Are you sure about that?[:n]

Language and Dictionary

Control language settings and pronunciation:

  • [:language english] - Set language to English
  • [:dictionary on] - Enable dictionary lookup
  • [:dictionary off] - Disable dictionary lookup
  • [:say-as date] - Interpret text as date
  • [:say-as time] - Interpret text as time
  • [:say-as number] - Interpret text as number

Voice Customization

Voice Customization

DECtalk provides 28 different options for customizing voices, with some having more dramatic effects than others:

NOTE: Of the 28 options, the following parameters have the most dramatic effects on voice characteristics:

  • hs (head size)
  • ap (average pitch)
  • pr (pitch range)
  • sx (male/female options)
  • la (laryngealization)
  • br (breathiness)

Default Voice Values

Key voice parameters for the main voices:

ParameterPaulWendy
ap (average pitch)112 Hz195 Hz
as (assertiveness)10055
b4280300
b53302048
bf1810
br (breathiness)045
f433004600
f536502500
hr1818
hs (head size)100100
la (laryngealization)00
lx080
nf1015
pr (pitch range)100100
qu4020
ri7070
sm3020
sr2522

Important Note: With DECtalk 4.6.4, options g1 through gv were removed from Design voice [:dv]. In previous versions, these options were tuned manually (constant values), but now they are auto-tuned mathematically (they change and don't have default values).

Using Voice Parameters

To modify voice parameters, use the [:dv] command:

  • Basic syntax: [:dv parameter value]
  • Example: [:dv ap 150 hs 120] - Sets average pitch to 150Hz and head size to 120%
  • Multiple parameters can be set in one command

Common Voice Customizations

  • Higher pitched voice: [:dv ap 180]
  • Larger head size: [:dv hs 120]
  • More breathy voice: [:dv br 50]
  • Complex voice change: [:dv ap 160 hs 110 br 30 la 10]

Gender and Head Size Control

Six speaker-definition options control the size and shape of the head:

ParameterDescription
sxSex (1 for male, 0 for female)
hsHead size, in %
f4Fourth formant resonance frequency, in Hz
f5Fifth formant resonance frequency, in Hz
b4Fourth formant bandwidth, in Hz
b5Fifth formant bandwidth, in Hz

Gender Control (sx)

Male and female voices differ in many ways, including head size, pharynx length, larynx mass, and speaking habits. The sx parameter controls these characteristics:

  • Paul is male (sx = 1)
  • Wendy is female (sx = 0)
  • Example: [:np][:dv sx 0] Am I a man or woman?

NOTE: Changing sex may cause filters to overload, producing a squawk-like sound. Adjust f4, f5, and g1 parameters to correct this.

Head Size Control (hs)

Head size has a strong influence on voice characteristics:

  • 100% represents average adult size
  • Larger heads tend to have lower, more resonant voices
  • Examples:
    • [:np][:dv hs 115] Do I sound bigger this way?
    • [:nk][:dv hs 65] Do I sound like a six year old?

NOTE: Extreme head size changes can cause overloads and speech clarity issues. Adjust f4, f5, and g1 parameters if needed.

Formant Control (f4, f5, b4, b5)

These parameters control resonant peaks in the voice spectrum:

  • Male voices typically have five prominent peaks (0-5 kHz)
  • Female voices typically have four peaks
  • Child voices typically have three peaks
  • Important restrictions:
    • f5 must be at least 300 Hz higher than f4
    • Male voices (sx=1): f4 must be at least 3250 Hz
    • Female voices (sx=0): f4 must be at least 3700 Hz
    • For non-standard head sizes, multiply values by (hs/100)

Voice Quality Control

Six speaker-definition options control larynx output (voice quality):

ParameterDescription
brBreathiness, in decibels (dB)
lxLax breathiness, in %
smSmoothness, in %
riRichness, in %
nfNumber of fixed samples of open glottis
laLaryngealization, in %

Breathiness Control (br)

Controls the amount of breath in the voice:

  • Range: 0 dB (no breathiness) to 70 dB (strong breathiness)
  • Common in female voices but also used in male voices
  • Example: [:np][:dv br 55 gv 56] Do I sound more like Dennis now?
  • Note: Breathy voices are typically quieter due to gain reduction

Lax Breathiness (lx)

Controls breathiness at sentence endings and transitions:

  • Range: 0 (tense voice) to 100 (maximally breathy)
  • Affects transitions between voiced and voiceless sounds
  • Different from continuous breathiness (br parameter)

Smoothness (sm)

Controls vocal fold vibrations:

  • Range: 0 (least smooth, most brilliant) to 100 (most smooth, least brilliant)
  • Affects high-frequency energy attenuation
  • Professional singing voices are often brilliant (low smoothness)
  • Soft speaking voices are often smooth and breathy
  • Example: [:dv sm 50] for a moderately smooth voice

Richness (ri)

Controls voice spectral characteristics:

  • Similar to smoothness but affects lower frequencies
  • Examples:
    • Soft voice: [:np][:dv ri 0 sm 70] Do I sound more mellow?
    • Rich voice: [:np][:dv ri 90 sm 0] Do I sound more forceful?
  • Note: Smoothness and richness are often negatively correlated

Glottal Control (nf)

Controls the open phase of the glottal cycle:

  • Works with the ri parameter to determine glottal timing
  • Range: 10 (1ms) to about 70 for male voices
  • Affects voice quality and character

Laryngealization (la)

Controls voice irregularity:

  • Range: 0 (no irregularity) to 100 (maximum irregularity)
  • Creates a creaky voice quality
  • Example: [:nb][:dv la 20] for moderate laryngealization
  • Note: The effect is noticeable but not always pleasant

Pitch Control

Control pitch of uppercase letters using the [:pitch] command:

  • Syntax: [:pitch DD] where DD is frequency in Hertz
  • Default: 35 Hz difference between upper and lowercase letters
  • Examples:
    • [:pitch 60] bBcCdD - Higher pitch for uppercase letters
    • [:pitch 35] eFfGgH - Default pitch difference

Notes:

  • This command is asynchronous
  • Place a [:sync] command after pitch command to ensure proper processing
  • Affects uppercase letters in the next phoneme string

Pitch and Intonation Control

Seven speaker-definition options control aspects of the fundamental frequency (f0) voice contour:

ParameterDescription
bfBaseline fall, in Hz
hrNominal hat rise, in Hz
srNominal stress rise, in Hz
asAssertiveness, in %
quQuickness, in %
apAverage pitch, in Hz
prPitch range, in %

Baseline Fall (bf)

Controls the gradual pitch decline in sentences:

  • When bf = 0, baseline starts and ends at 115 Hz
  • Setting bf > 0 creates a gradual fall in pitch
  • Example: With bf = 20 Hz:
    • Starting pitch: 125 Hz (115 + bf/2)
    • Ending pitch: 105 Hz (115 - bf/2)
    • Falls at 16 Hz per second
  • Note: The [+] symbol at paragraph start automatically sets a slightly higher baseline

Hat Rise (hr) and Stress Rise (sr)

Controls sentence intonation patterns:

  • Hat Rise (hr):
    • Controls pitch rise at clause beginnings
    • Default for Paul: 18 Hz
    • Example: [:dv hr 0] - Removes pitch rise pattern
    • Affects comprehension and natural sound
  • Stress Rise (sr):
    • Controls local pitch variations on stressed syllables
    • Paul's default: 25 Hz rise over 150ms
    • Adds to existing hat patterns
    • Too low values can make speech monotone

Assertiveness (as)

Controls sentence-final pitch patterns:

  • Range: 0 (no assertion) to 100 (very assertive)
  • Higher values create dramatic pitch falls at sentence ends
  • Lower values may end with slight pitch rise
  • Example: [:dv as 100] for very assertive endings

Quickness (qu)

Controls how rapidly pitch changes occur:

  • Range: 10 (slow changes) to 90 (quick changes)
  • Technical details:
    • qu = 10: ~100ms response time (70% of target)
    • qu = 90: ~50ms response time
  • Lower values may not reach targets before next change
  • Example: [:dv qu 50] for moderate response time

Average Pitch (ap) and Pitch Range (pr)

Controls overall pitch characteristics:

  • Average Pitch (ap):
    • Base frequency in Hz
    • Paul default: 112 Hz
    • Wendy default: 195 Hz
  • Pitch Range (pr):
    • Percentage of normal range
    • Formula: f0' = ap + ((f0 - 120) * pr) / 100
    • Example: [:nh][:dv ap 90 pr 0] I am a robot. - Monotone voice
  • Important Notes:
    • Values are constrained between 50 Hz and 500 Hz
    • Reducing pitch range can create sad or monotone voices
    • Increasing range while maintaining average pitch suggests excitement
    • The Design Voice command automatically adjusts pitch within safe limits

Design Voice [:dv] Command

The [:dv] command allows fine-tuned control over voice characteristics:

[:dv parameter value]

Common parameters:

  • ap - Average Pitch (50-350)
  • hr - Head Size (70-135)
  • qu - Voice Quality (0-100)
  • ri - Richness (0-100)
  • r - Speech Rate (50-600)
  • sm - Smoothness (0-100)

Example: [:dv ap 200 hr 100 qu 80]This is a custom voice

Advanced Features

Stress and Syntactic Symbols

The following symbols control stress and syntax in phoneme mode. Note: Phoneme interpretation must be turned on for these symbols to work.

Stress Symbols

SymbolNameIndicatesUnicode
'ApostrophePrimary stressU+27
`Grave accentSecondary stressU+60
"Quotation markEmphatic stressU+22
/SlashPitch riseU+2F
&bsol;BackslashPitch fallU+5C

Syntactic Symbols

SymbolNameIndicatesUnicode
-HyphenSyllable boundaryU+2D
*AsteriskMorpheme boundaryU+2A
#Number signCompound nounsU+23
(Open parenthesisBeginning of prepositional phraseU+28
)Close parenthesisBeginning of verb phraseU+29
,CommaClause boundariesU+2C
.PeriodPeriodU+2E
?Question markQuestion markU+2F
!Exclamation pointExclamation pointU+21
+Plus signNew paragraphU+2B
SpaceSpaceWord boundaryU+20

Homographs

Homographs are words that share the same spelling but have different pronunciations. DECtalk handles these cases specially:

  • The default pronunciation is always the more frequent form
  • Use [:pronounce alternate] for alternate pronunciations
  • Example:
    • "bass" (instrument) → b'eys
    • "bass" (fish) → [:pronounce alternate] b'aes
    • Full example: I caught a [:pronounce alternate] bass when I went fishing.

Phoneme Control

Fine-tune pronunciation using phoneme commands:

  • [:phoneme on] - Enable phoneme mode
  • [:phoneme off] - Disable phoneme mode
  • Common phonemes:
    • [aa] - "father"
    • [ih] - "sit"
    • [uw] - "boot"
    • [eh] - "bet"
    • [ao] - "bought"

Pronunciation Control

Control word pronunciation using the [:pronounce] command:

  • Options:
    • [:pronounce alternate] - Use less common pronunciation (e.g., "wind up the clock")
    • [:pronounce primary] - Use most common pronunciation (e.g., "the wind is blowing")
    • [:pronounce name] - Pronounce as a proper name
    • [:pronounce noun] - Use noun pronunciation
    • [:pronounce adjective] - Use adjective pronunciation
    • [:pronounce verb] - Use verb pronunciation
  • Example: Terry [:pronounce name] Doucette played [:pronounce primary] bass in the band.

Note: This command is synchronous and affects only the word immediately following it.

Advanced Parsing Rules

DECtalk includes sophisticated parsing rules for handling various text formats and special cases.

Punctuation Parsing

Unless an in-line command is used, the preprocessor uses punctuation to speak text correctly. The following rules apply:

Recognized Punctuation
  • . (period)
  • , (comma)
  • ; (semi-colon)
  • : (colon)
  • ? (question mark)
  • ! (exclamation mark)

Note: All other punctuation marks are ignored by default.

Punctuation Interpretation Modes
  • [:punct all] - Interpret all punctuation marks as words to be spoken
  • [:punct none] - Treat punctuation only as text breaks
  • [:punct pass] - Turn off special punctuation processing
  • [:punct some] - Default mode: normal reading with selective symbol pronunciation

General Parsing Rules

The following rules apply to English (US) text:

Numbers and Measurements
  • Street addresses: 29 42 Street → "twenty-nine forty-second street"
  • Phone numbers: Spoken as digits with appropriate pauses
  • Credit cards: 6011 4134 3621 4172 → "six zero one one, four one three four, three six two one, four one seven two"
  • Currency: $43.65 → "forty-three dollars and sixty-five cents"
  • Negative numbers: -3.52 → "minus three point five two"
Text and Abbreviations
  • Uppercase letters in mixed case: Begin new word (e.g., TextToSpeech → "text to speech")
  • Abbreviations:
    • Dr. → "doctor"
    • St. → "saint"
    • U.S.A. → "U S A"
    • P.M. and p.m. → "P M"
  • State codes: Pronounced in full (e.g., MA 01749 → "Massachusetts zero one seven four nine")
Special Formats
  • URLs: Spoken one character at a time
  • Filenames: Spoken one character at a time
  • Compound words: Prefixes may be separated from second word
  • Roman numerals after names: Spoken as ordinal numbers (e.g., John Doe III → "John Doe the third")
Special Cases
  • Multiple identical punctuation: Reduced to single symbol (e.g., ----- becomes -)
  • Double encapsulations: Treated as single (e.g., "(intelligent)" and "((intelligent))" treated as "(intelligent)")
  • Commas/hyphens without spaces: Spoken with spaces (e.g., look,look → "look, look")

Advanced Usage Notes:

  • These rules can be modified using the [:punct] and other control commands
  • For special cases, use explicit phonetic input or the [:pronounce] command
  • Some rules may interact with each other; test complex cases carefully

Pause Control

Use [:tone 0 duration] for precise timing control:

  • Syntax: [:tone 0 milliseconds]
  • Example: Hello[:tone 0 1000]World - One second pause between words
  • Tip: Combine with other tones for timing control: [:tone 440 200][:tone 0 500][:tone 440 200]

Synchronization Commands

Control timing and synchronization in your speech output:

  • [:sync] - Synchronization command
    • Forces DECtalk to process all text up to this point before continuing
    • Useful when changing voice parameters or ensuring command processing order
    • Example: [:np][:sync]Hello - Ensures voice change is processed before speaking
  • [:timeout XX] - Pause command
    • Pauses speech for XX milliseconds
    • Range: 0 to 5000 milliseconds
    • Example: Hello[:timeout 1000]World - One second pause between words
    • Values over 5000ms are reduced to 5000ms
  • [:index mark] - Set an index marker for synchronization
  • [:rate wpm 200] - Set words per minute

Important Notes:

  • The [:sync] command is useful when changing multiple voice parameters
  • Use [:timeout] for precise timing control in speech output
  • Combine commands for complex timing patterns: [:np][:sync]Hello[:timeout 500]World

Rules and Syntax

Follow these rules when writing DECtalk commands:

  • Brackets Required - Enclose every command within brackets. Example:
    [:rate 150][:name Betty] Hello. How are you?
  • Command Persistence - The placement of an in-line command affects all subsequent text until overridden by another command. Example:
    [:rate 75]I can speak slower. [:rate 350]I can speak faster.[:rate 200]
    The final [:rate 200] command sets the speaking rate to normal for all subsequent text.
  • Alternate Forms - Some commands have shorter alternate forms:
    • [:name Betty] → [:nb]
    • [:name Paul] → [:np]
    • [:name Harry] → [:nh]
  • Colon Required - Begin every command with a colon. Examples:
    [:dv ap 160 pr 50 save][:nv]
  • Multiple Commands - You can place multiple commands in a row. Each must be in its own brackets:
    [:name Paul][:rate 100] This is Paul speaking slowly.
  • Spacing Rules - Separate command names, options, and parameters with spaces or tabs:
    [:dv ap 160 pr 50 save]
  • Multiple Parameters - Include multiple options/parameters within the same command brackets:
    [:dv ap 160 pr 50 save]
  • Command Conflicts - When conflicting commands are used without intervening text, the last command takes effect:
    [:name Betty][:name Paul] Hello. (Paul's voice will be used)
  • Phoneme Mode - Enable phoneme interpretation for phonetic spelling:
    [:phoneme arpabet speak on] Now I'm [r ' iyl iy] thrilled.

Note: Commands are case-insensitive, but using lowercase is recommended for consistency.

Musical Features

Musical Tones and Pitch Control

DECtalk can generate musical tones and sequences:

Basic Tone Syntax

[phoneme <duration, pitch number>]

Parameters:

  • duration: Tone duration in milliseconds
  • pitch number: Pitch number from the tone table

Musical Note Reference

Pitch NumberNoteFrequency (Hz)
1C265
2C#69
3D73
4D#77
5E82
6F87
7F#92
8G98
9G#103
10A110
11A#116
12B123
13C3130
14C#138
15D146
16D#155
17E164
18F174
19F#185
20G196
21G#207
22A220
23A#233
24B247
25C4261
26C#277
27D293
28D#311
29E329
30F348
31F#370
32G392
33G#415
34A440
35A#466
36B494
37C5523

NOTE: The table shows the complete range of musical pitches available in DECtalk, from C2 (65 Hz) to C5 (523 Hz). Each pitch number corresponds to a specific musical note and frequency.

Musical Examples

Here are some example musical sequences you can use with DECtalk:

Happy Birthday
[:phoneme arpabet speak on][hxae<300,10>piy<300,10> brr<600,12>th<100>dey<600,10>tuw<600,15> yu<1200,14>_<120>]

This example demonstrates:

  • Using different note durations (300ms, 600ms, 1200ms)
  • Combining speech phonemes with musical tones
  • Using pitch numbers for musical notes (10=A, 12=B, 14=C#, 15=D)

TIP: When creating musical sequences, remember to:

  • Enable phoneme mode with [:phoneme arpabet speak on]
  • Use appropriate durations for clear note separation
  • Consider adding small pauses between notes for clarity

Expression Control

DECtalk supports various expression controls to modify how text is spoken:

  • [:express name] - Sets the expression mode
  • [:n] - Returns to normal expression

Available expressions:

  • [:eh] - Eh (questioning)
  • [:wb] - Whimper
  • [:lf] - Laugh
  • [:cr] - Cry
  • [:an] - Angry
  • [:sh] - Shouty
  • [:wh] - Whisper

Example: [:eh]Are you sure about that?[:n]

Complex Examples

  • Voice change with custom parameters:
    [:name paul][:dv ap 80][:dv hs 110] Hello, I am a customized voice!
  • Spelling mode with pauses:
    [:mode spell on][:period 400][:comma 200] D.E.C. Talk
  • Mixed speech and tones:
    [:name wendy] Alert! [:tone 440 500] Message received [:tone 880 300]