5,710
edits
Changes
→Building a Unit Selection Cluster Voice from TIMIT data
*short tutorial - http://festvox.org/festtut-2.0/
*exercises and hints - http://festvox.org/festtut-2.0/exercises/
==Slides on HTS Synthesis==
*http://www.sp.nitech.ac.jp/~tokuda/tokuda_iscslp2006.pdf
=Training a Voice ModelModels=
*howto http://festvox.org/festvox/c3170.html#AEN3172
*training text input - http://www.festvox.org/cmu_arctic/cmuarctic.data
==Building a Unit Selection Cluster Voice==
(from here http://festvox.org/festvox/x3082x3086.html)#<pre>mkdir uw_uw_rdtcd uw_uw_rdt</pre>
#uniphone setup: <pre> $FESTVOXDIR/src/unitsel/setup_clunits uw us rdt uniphone</pre>
#generate prompts and prompt files: <pre>festival -b festvox/build_clunits.scm '(build_prompts_waves "etc/uniphone.data")'</pre>
#make labels: <pre>./bin/make_labs prompt-wav/*.wav</pre>
#build utterance structure: <pre>festival -b festvox/build_clunits.scm '(build_utts "etc/uniphone.data")'</pre>
#do pitch marking: <pre>./bin/make_pm_wave wavetc/*uniphone.wavdata</pre>#find Mel Frequency Cepstral Coefficients: <pre>./bin/make_mcep wavetc/*uniphone.wavdata</pre>
#build cluster unit selection synth: <pre>festival -b festvox/build_clunits.scm '(build_clunits "etc/uniphone.data")'</pre>
==Using a Unit Selection Cluster Voice Synth==
</pre>
*in Scheme:this will add a new word, "<prebreak>(voice_uw_us_rdt_clunits) </pre>*<pre>(SayText "this that is synthesized as a little testbrief pause in speech.")</pre>
=changesUsing Voice on Raspberry Pi=*instead ofinstall with apt-get. alternatively, follow these instructions: http://elinux.org/RPi_Text_to_Speech_(Speech_Synthesis)*With festival 2.1*copy the voice data into <code>/usr/share/festival/voices/english<pre/code>*edit '''/usr/share/festival -b festvox/build_clunitsvoices.scm '(build_prompts "etc/uniphone.data")'' and add the new voice <code>uw_us_rdt_clunits</precode>at the beginning of the default-voice-priority-list. (end of the file)*now your new voice should be the default for festival.==rpi with external i2s dac==do*change aplay command within festival/scheme:<presyntaxhighlight lang="bash">festival -b festvox/build_clunits(Parameter.scm set '(build_prompts_waves Audio_Command "etc/uniphone.dataaplay -q -c 2 -t raw -f s16 -r 8000 $FILE")'"</presyntaxhighlight>*or add to startup: https://wiki.archlinux.org/index.php/Festival#Usage_with_a_Sound_Server
=Tuning phrasing, prosody, etc with SABLE=*http://www.cstr.ed.ac.uk/projects/festival/manual/festival_10.html#SEC31=Using Festival===Run the Server==*instead from anywhere: <code>festival_server</code>==Run the Client==*run the client: <code>echo "Do you really want to see all ofit?" | festival_client --ttw --output test.wav </code>*generates a wave file==Synthesize Speech to Audio Out==*run festival: <precode>echo "test this" | festival --tts</code>*plays through speakers.==Render a Text File In Speech==*run the server*run the client: <code>cat ~/binDocuments/make_pm_wave wavspeech\ performance/*speech\ performance\ structure.txt | festival_client --ttw --output structure.wav</precode>==Phoneme tests==Switch voices:<syntaxhighlight lang="scheme">(voice_kal_diphone)</syntaxhighlight>Switch back:<syntaxhighlight lang="scheme">(voice_uw_us_rdt_clunits)</syntaxhighlight>do Pronounce phonemes:<presyntaxhighlight lang="scheme">.(SayPhones '(pau ch pau m ay n ey m ih z r ah b er t pau)) </binsyntaxhighlight><syntaxhighlight lang="scheme">(SayPhones '(pau ch pau m ay n ey m ih z r ow b er t pau)) </make_pm_wave etcsyntaxhighlight><syntaxhighlight lang="scheme">(SayPhones '(pau ch pau m ay n ey m ih z r ow b ah t pau)) </uniphone.data syntaxhighlight><syntaxhighlight lang="scheme">(SayPhones '(pau ch pau m ay n ey m ih z r ah b ah t pau)) </presyntaxhighlight>