Stephan Talking

is a lightweight javascript speech generator - there also is a jQuery version alkemis

- this is based on Tiny Speech Synth in JavaScript

- - that was based on Tiny Speech Synth (C++)

- - - there is no attempt to apply any complex text-to-speech rules, just see the letters, say the letters

- - - in fact, only phonemes are stored and they are very basic, great simple design using formants by 'stan 1901'

this code is free to use for whatever - tested and works on web FF, Webkit - wont work on IE 9, maybe IE 10 will


overall: pitch | cadence | volume ... all ranges 0 to 100

translate: numbers | | 'convert to data' expands controls to each individual character
valid characters: | all vowels have 2 forms (uppercase=hard, lowercase=soft)
not available: q use 'kw' | x use 'ks' | no vowel form of y use 'I' | c is tricky, use 'c' when 'ch', otherwise use 's' or 'k'
to insert short pause use '_' | even shorter pause use '-'
do CRUDE FIX on raw text



| p(itch) range is -50 .. 0 .. 50 | v(ol) range is 0.1 .. 1 .. 2.0 | d(ur) range is -5 .. 0 .. 100 (d does +- to the default duration, which is 1 to 4, but wont fall below 1)

text input should be in the form of 'stephantalk' - using normal (raw) text as input will give poor results (latin character languages are only phonetic-ish).
stephantalk is 100% phonetic with a small, plain ascii char set. pretty simple to master.
to 'fix' raw text: 1-lowercase everything, 2-replace q and x, 3-replace all c with k or s except when ch, 4-uppercase the hard vowels, 5-tweak
'CRUDE FIX' does steps 1 and 2, then halfasses step 3 (makes all non-ch c into k)

more examples of stephantalk:
A bE sE dE E ef jE Ach I jA kA el em en O pE kwU ar es tE yU vE dublyU eks wI zE
-
adams boston chikagO denvr EsE frank jorg henrE Ida jon_ king linkin mir-E nU_york O-shen pEtr kwEEn rogr shU-gr tomas Union viktor wil-yam eks-rA yung_ zerO
-
jan_U_er_E feb_bU_er_E march April mAA_ jUn jUlI orgust septembr oct_tO_br nOvembr dEsembr
-
mon_dA tUs_dA wens_dA thurs_dA frI_dA satur_dA sun_dA
-
- span-ish - serO UnO dOs tres kwatrO sinkO sE-As sE_et_A O_chO nE_ev_es dE_es
- ja-pan_Es - zerO EchE nE_ san_ yOn_ gO_ lUkU nana hachE kwU_ jU_
- can-ton_Es - ling_ yut yE sam sE_ Ung lUk chut baht gawl sup

v3
for developers:
download lib, compressed (under 5k): st.min.js source: st.js readme: st_readme.txt

extend Stephan Talking with translators:
readme: st_translator_readme.txt
source: st_t-numbers.js st_t-fancyNumbers.js st_t-nato.js

all files: st.zip

code also on github
more demos:

timer
multiple calls triggered by a timer

event
multiple calls triggered by the audio 'ended' event

clock
multiple calls triggered by a 15 sec timer saying the time (4 times)

pitched keyboard
turns keys on bottom row of keyboard (z,x,c,v,b,n,m) into triggers (toggle on/off)

nato
takes text from 1st textbox and says it in the nato phonetic alphabet (alpha, bravo, charlie, etc)

nato keyboard
turn letter keys into triggers to their corresponding nato word (toggle on/off)