DECtalk
powered by Coffee
INDEX

DECTalk Guide

Basic
Intermediate
Advanced

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:

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

Add expression to speech:

  • [:express sad] - Sad expression
  • [:express happy] - Happy expression
  • [:express angry] - Angry expression
  • Emphasis:
    • [:emph +] - Increase emphasis
    • [:emph -] - Decrease emphasis
    • [:emph =] - Normal emphasis

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:

Parameter Paul Wendy
ap (average pitch) 112 Hz 195 Hz
as (assertiveness) 100 55
b4 280 300
b5 330 2048
bf 18 10
br (breathiness) 0 45
f4 3300 4600
f5 3650 2500
hr 18 18
hs (head size) 100 100
la (laryngealization) 0 0
lx 0 80
nf 10 15
pr (pitch range) 100 100
qu 40 20
ri 70 70
sm 30 20
sr 25 22

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:

Parameter Description
sx Sex (1 for male, 0 for female)
hs Head size, in %
f4 Fourth formant resonance frequency, in Hz
f5 Fifth formant resonance frequency, in Hz
b4 Fourth formant bandwidth, in Hz
b5 Fifth 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):

Parameter Description
br Breathiness, in decibels (dB)
lx Lax breathiness, in %
sm Smoothness, in %
ri Richness, in %
nf Number of fixed samples of open glottis
la Laryngealization, 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

Design Voice [:dv] Command

Customizes DECtalk voices by introducing voice options and parameters that can be entered as a string or one at a time.

Command Syntax

[:dv XX YY]

Where XX and YY are parameter-value pairs from the options table below.

Available Options

Option Description
ap Average pitch, in Hz
as Assertiveness, in %
b4 Fourth formant bandwidth, in Hz
b5 Fifth formant bandwidth, in Hz
bf Baseline fall, in Hz
br Breathiness, in decibels (dB)
f4 Fourth formant resonance frequency, in Hz
f5 Fifth formant resonance frequency, in Hz
hr Hat rise, in Hz
hs Head size, in %
la Laryngealization, in %
lx Lax breathiness, in %
nf Number of fixed samples of open glottis
pr Pitch range, in %
qu Quickness, in %
ri Richness, in %
sm Smoothness, in %
sr Stress rise, in Hz
sx Sex (1 for male or 0 for female)

Usage Examples

  • Change Paul's average pitch: [:np][:dv ap 100]
  • Multiple parameters at once: [:dv ap 160 hs 110 br 30]
  • Save custom voice: [:dv ap 180 hs 120 save]

NOTE: See the Voice Definitions section for default parameter values and valid ranges for each option.

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

Symbol Name Indicates Unicode
' Apostrophe Primary stress U+27
` Grave accent Secondary stress U+60
" Quotation mark Emphatic stress U+22
/ Slash Pitch rise U+2F
\ Backslash Pitch fall U+5C

Syntactic Symbols

Symbol Name Indicates Unicode
- Hyphen Syllable boundary U+2D
* Asterisk Morpheme boundary U+2A
# Number sign Compound nouns U+23
( Open parenthesis Beginning of prepositional phrase U+28
) Close parenthesis Beginning of verb phrase U+29
, Comma Clause boundaries U+2C
. Period Period U+2E
? Question mark Question mark U+2F
! Exclamation point Exclamation point U+21
+ Plus sign New paragraph U+2B
Space Space Word boundary U+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.

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 Number Note Frequency (Hz)
1 C2 65
2 C# 69
3 D 73
4 D# 77
5 E 82
6 F 87
7 F# 92
8 G 98
9 G# 103
10 A 110
11 A# 116
12 B 123
13 C3 130
14 C# 138
15 D 146
16 D# 155
17 E 164
18 F 174
19 F# 185
20 G 196
21 G# 207
22 A 220
23 A# 233
24 B 247
25 C4 261
26 C# 277
27 D 293
28 D# 311
29 E 329
30 F 348
31 F# 370
32 G 392
33 G# 415
34 A 440
35 A# 466
36 B 494
37 C5 523

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

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]