|
Talk-to-me - Source CodeChoose a voice, type your text and listen ! |
|
REBOL [
title: "Speach generator"
author: "Didier Cadieu"
version: 1.0.0
date: 27-march-2004
]
voix: [
"Crystal (US English)"
"Mike (US English)"
"Rich (US English)"
"Lauren (US English)"
"Claire (US English)"
"Rosa (Latin Am. Spanish)"
"Klara (German)"
"Reiner (German)"
"Alain (French)"
"Juliette (French)"
"Charles (UK English)"
"Audrey (UK English)"
]
wave: none
check: 0
old-voice: none
speak: func [str [string!] voice /local p][
if any [check <> check: checksum str old-voice <> old-voice: voice] [
wave: read/binary/custom http://hegel.research.att.com/tts/cgi-bin/nph-talk reduce [
'POST
rejoin ["txt=" str "&voice=" voice]
]
]
p: open sound://
insert p load copy wave
wait p
close p
]
view layout [
style vt vtext 100 right
backdrop effect [gradient 1x1 20.180.20 20.20.120]
vh1 "Speach generator"
across
vt "Voice to use :"
f-voice: choice 200 data voix return
vt "Text to say :"
f-text: area wrap return
tabs [128]
tab
button "Speak" [
if not empty? f-text/text [
speak f-text/text first parse f-voice/text none
]
]
button "Save wave" [
if all [
wave
f: request-file/save/keep/only/title/filter "Save voice in wave file" "save" "*.wav"
] [
if not find f ".wav" [append f ".wav"]
write/binary f wave
]
] return
tab vtext "Click here to know how it works ?" [browse http://www.research.att.com/projects/tts/index.html]
] |