<div dir="ltr">Hi Ales,<div><br></div><div>Thank you for your detailed response. I have saved your notes for future reference and I hope to get started on custom voice creation once more. Thanks again!<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Nov 8, 2015 at 5:16 AM Aleś Bułojčyk <<a href="mailto:alex73mail@gmail.com">alex73mail@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Clifton.<br><br></div><div>Yes, existing voice creation software is not user friendly at all. Below is my notes about creating voice, step-by-step with exact commands. I hope it will help somebody for create new voice.<br><br></div><div>But keep in mind, I created voice, but quality is far away from normal yet. Looks like I made mistake in some parameters, or even skipped some required step.<br></div><div><br></div>WBR, Alex.<br><div class="gmail_extra"><br><span style="font-family:monospace,monospace">Voice creation<br>==============<br><br>This is my notes about HTS voice creation.<br>It's not so simple process, because it requires many software, and most software should be compiled from sources.<br>Voice creation depends on voice recognition. That's why we need to use voice recognition software too.<br><br>Useful links<br>------------<br><br>Some demos, that can show possible quality of voice synthesis: <br> <a href="http://www.cstr.ed.ac.uk/projects/festival/onlinedemo.html" target="_blank">http://www.cstr.ed.ac.uk/projects/festival/onlinedemo.html</a><br> <a href="http://festvox.org/voicedemos.html" target="_blank">http://festvox.org/voicedemos.html</a><br><br>Some docs:<br> <a href="http://htk.eng.cam.ac.uk/docs/docs.shtml" target="_blank">http://htk.eng.cam.ac.uk/docs/docs.shtml</a> <br> <a href="http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial" target="_blank">http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial</a><br><br>Docs from MaryTTS:<br> <a href="https://github.com/marytts/marytts/wiki/HMMVoiceCreation" target="_blank">https://github.com/marytts/marytts/wiki/HMMVoiceCreation</a><br> <a href="https://github.com/marytts/marytts/wiki/VoiceImportToolsTutorial#step-by-step-procedure" target="_blank">https://github.com/marytts/marytts/wiki/VoiceImportToolsTutorial#step-by-step-procedure</a><br><br>Software<br>--------<br><br>I used Ubuntu 15.04 32-bit desktop for voice compiling.<br><br>1. Prepare system<br><br> sudo mkdir /voice<br> sudo chown <username> /voice<br> sudo apt-get install mc libc6-dev-i386 libx11-dev libncurses5-dev git sox tcl-snack g++<br><br>2. Compile HTS<br><br>* Download <a href="http://hts.sp.nitech.ac.jp/archives/2.2/HTS-2.2_for_HTK-3.4.1.tar.bz2" target="_blank">http://hts.sp.nitech.ac.jp/archives/2.2/HTS-2.2_for_HTK-3.4.1.tar.bz2</a> from <a href="http://hts.sp.nitech.ac.jp/?Download" target="_blank">http://hts.sp.nitech.ac.jp/?Download</a> to /voice/sources/<br>* Download <a href="http://htk.eng.cam.ac.uk/ftp/software/hdecode/HDecode-3.4.1.tar.gz" target="_blank">http://htk.eng.cam.ac.uk/ftp/software/hdecode/HDecode-3.4.1.tar.gz</a> from <a href="http://htk.eng.cam.ac.uk/prot-docs/hdecode.shtml" target="_blank">http://htk.eng.cam.ac.uk/prot-docs/hdecode.shtml</a> to /voice/sources/<br>* Download <a href="http://htk.eng.cam.ac.uk/ftp/software/HTK-3.4.1.tar.gz" target="_blank">http://htk.eng.cam.ac.uk/ftp/software/HTK-3.4.1.tar.gz</a> from <a href="http://htk.eng.cam.ac.uk/download.shtml" target="_blank">http://htk.eng.cam.ac.uk/download.shtml</a> to /voice/sources/<br><br> cd /voice/sources/<br> tar xf HTK-3.4.1.tar.gz<br> tar xf HDecode-3.4.1.tar.gz<br> mkdir hts<br> tar xf HTS-2.2_for_HTK-3.4.1.tar.bz2 -C hts<br> cd htk<br> patch -p1 -d . < ../hts/HTS-2.2_for_HTK-3.4.1.patch<br> ./configure --prefix=/voice/soft/hts<br> make all hdecode<br> make install install-hdecode<br><br>Result: files /voice/soft/hts/bin/H*<br><br>3. Compile hts_engine 1.05<br><br>* Download <a href="http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.05/hts_engine_API-1.05.tar.gz/download" target="_blank">http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.05/hts_engine_API-1.05.tar.gz/download</a> from <a href="http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.05/" target="_blank">http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.05/</a> to /voice/sources/<br><br> cd /voice/sources/<br> tar xf hts_engine_API-1.05.tar.gz<br> cd hts_engine_API-1.05<br> ./configure --prefix=/voice/soft/hts_engine<br> make<br> make install<br> <br>Result: /voice/soft/hts_engine/bin/hts_engine<br><br>4. Install speech tools<br><br>* Download <a href="http://festvox.org/packed/festival/2.4/speech_tools-2.4-release.tar.gz" target="_blank">http://festvox.org/packed/festival/2.4/speech_tools-2.4-release.tar.gz</a> from <a href="http://festvox.org/festival/" target="_blank">http://festvox.org/festival/</a> to /voice/sources/<br><br> cd /voice/sources/<br> tar xf speech_tools-2.4-release.tar.gz<br> ./configure<br> make<br> make test<br><br>Result: latest command should show “Test OK”<br><br>5. Install Festvox<br><br>* Download <a href="http://festvox.org/festvox-2.7/festvox-2.7.0-release.tar.gz" target="_blank">http://festvox.org/festvox-2.7/festvox-2.7.0-release.tar.gz</a> from <a href="http://festvox.org/download.html" target="_blank">http://festvox.org/download.html</a><br><br> cd /voice/sources/<br> tar xf festvox-2.7.0-release.tar.gz<br> cd festvox/<br> ./configure<br> make<br><br><br>6. Install Festival<br>* Download <a href="http://festvox.org/packed/festival/2.4/festival-2.4-release.tar.gz" target="_blank">http://festvox.org/packed/festival/2.4/festival-2.4-release.tar.gz</a> from <a href="http://festvox.org/festival/" target="_blank">http://festvox.org/festival/</a> to /voice/sources/<br><br> cd /voice/sources/<br> tar xf festival-2.4-release.tar.gz<br> cd festival/<br> ./configure<br> make<br><br>7. Install SPTK<br>* Download <a href="http://downloads.sourceforge.net/sp-tk/SPTK-3.4.1.tar.gz" target="_blank">http://downloads.sourceforge.net/sp-tk/SPTK-3.4.1.tar.gz</a><br><br> cd /voice/sources/<br> tar xf SPTK-3.4.1.tar.gz<br> cd SPTK-3.4.1/<br> ./configure --prefix=/voice/soft/SPTK<br> make<br> make install<br><br>Result: files /voice/soft/SPTK/bin/*<br><br>8. Install Praat<br>* Download <a href="http://www.fon.hum.uva.nl/praat/praat5417_linux64.tar.gz" target="_blank">http://www.fon.hum.uva.nl/praat/praat5417_linux64.tar.gz</a> from <a href="http://www.fon.hum.uva.nl/praat/download_linux.html" target="_blank">http://www.fon.hum.uva.nl/praat/download_linux.html</a> to /voice/sources/<br><br> cd /voice/sources/<br> mkdir /voice/soft/praat<br> tar xf praat5417_linux64.tar.gz -C /voice/soft/praat/<br><br>9. Install JDK to /voice/soft/java<br><br> cd /voice/soft<br> tar xf /voice/sources/jdk-8u60-linux-x64.tar.gz<br> mv jdk1.8.0_60/ java/<br><br>Note: you may have other JDK version.<br><br>10. Install maven<br><br>* Download <a href="http://ftp.byfly.by/pub/apache.org/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz" target="_blank">http://ftp.byfly.by/pub/apache.org/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz</a> from <a href="https://maven.apache.org/download.cgi" target="_blank">https://maven.apache.org/download.cgi</a> to /voice/sources/<br><br> cd /voice/soft/<br> tar xf /voice/sources/apache-maven-3.3.3-bin.tar.gz<br> mv apache-maven-3.3.3 maven<br><br>11. MaryTTS<br><br> cd /voice/sources/<br> git clone <a href="https://github.com/marytts/marytts.git" target="_blank">https://github.com/marytts/marytts.git</a> (I used 65ee75ee8473e0d65853b0f8ccac1582ea0cb783 snapshot) <br> cd marytts/lib/external/ehmm<br> make<br> cd ..<br> PATH=$PATH:/voice/soft/hts/bin:/voice/soft/hts_engine/bin:/voice/soft/SPTK/bin:/voice/sources/marytts/lib/external/ehmm/bin ./check_install_external_programs.sh -check<br><br>Result: externalBinaries.config. Check should display all OK.<br><br> cd /voice/sources/marytts<br> JAVA_HOME=/voice/soft/java /voice/soft/maven/bin/mvn install<br><br>Result: /voice/sources/marytts/target/marytts-builder-5.2-SNAPSHOT/bin/voiceimport.sh<br><br>Voice compiling: prepare<br>------------------------<br><br>1. Put audio files into /voice/data/wav, text into /voice/data/txt.done.data<br><br>2. Run MaryTTS server in the separate window:<br><br> cd /voice/sources/marytts/target/marytts-5.2-SNAPSHOT/bin<br> PATH=/voice/soft/java/bin:$PATH ./marytts-server<br><br>3. Run voice conversion:<br><br> cd /voice/sources/marytts/target/marytts-builder-5.2-SNAPSHOT/bin; <br> PATH=$PATH:/voice/soft/java/bin/:/voice/soft/praat:/voice/sources/speech_tools/main/:/voice/soft/hts/bin:/voice/soft/hts_engine/bin:/voice/soft/SPTK/bin:/voice/sources/marytts/lib/external/ehmm/bin ./voiceimport.sh<br><br>4. Choose directory /voice/data<br><br>5. Set parameters (I tried russian voice elena compilation):<br><br> db.marybase: /voice/sources/marytts<br> db.estDir: /voice/sources/speech_tools/<br> db.samplingrate: as in source files<br> db.locale: ru<br> HMMVoiceConfigure.dataSet = rusian_set_name<br> HMMVoiceConfigure.speaker = elena<br> HMMVoiceConfigure.lowerF0 = 80 (male=40, female=80) <br> HMMVoiceConfigure.upperF0 = 350 (male=280, female=350)<br> HMMVoiceConfigure.freqWarp = 0.53<br> HMMVoiceConfigure.sampfreq = 44100<br> HMMVoiceConfigure.frameLen, frameShift (see <a href="http://www.dfki.de/pipermail/mary-users/2012-April/001189.html" target="_blank">http://www.dfki.de/pipermail/mary-users/2012-April/001189.html</a>)<br> HMMVoiceCompiler.mavenBin /voice/soft/maven/bin/mvn<br> EHMMLabeler.ehmmDir /voice/sources/marytts/lib/external/ehmm<br><br>6. Close UI, then start voiceimport.sh as in previous step. Check if console contains "Reading external binaries config file /voice/sources/marytts/lib/external/externalBinaries.config"<br><br>7. Run "PraatPitchmarker". Result : voice/pm/* files<br><br>8. Run "MCEPMaker". Result : voice/mcep/*.mcep files<br><br>9. Run "Festvox2MaryTranscripts". Result : voice/text/*.txt files (converted from voice/txt.done.data)<br><br>Voice compiling: autolabeling<br>-----------------------------<br><br>10. Run "AllophonesExtractor". Result: voice/prompt_allophones/*.xml<br><br>11. Run "EHMMLabeler". Result: voice/ehmm/* files. See <a href="https://github.com/marytts/marytts/wiki/HMMVoiceCreation" target="_blank">https://github.com/marytts/marytts/wiki/HMMVoiceCreation</a> for some details. This step will process several hours.<br><br>12. Run "LabelPauseDeleter" (set threshold=10 in settings). Result: voice/lab/*.lab<br><br>13. Run "PhoneUnitLabelComputer". Result: voice/phonelab/*.lab<br><br>14. Run "TranscriptionAligner". Result: voice/allphones/*.xml<br><br>15. Run "FeatureSelection". Result: voice/mary/features.txt<br><br>16. Run "PhoneUnitFeatureComputer": Result: voice/phonefeatures/*.pfeats<br><br>17. Run "PhoneLabelFeatureAligner". See console output - it should display "0 problems"<br><br>As results of previous steps, you should have in your voice building directory:<br><br> phonefeatures directory<br> phonelab directory<br> mary/features.txt file<br> $MARY_BASE/lib/external/externalBinaries.config <br><br><br>Voice compiling: voice training<br>-------------------------------<br><br>18. Run "HMMVoiceDataPreparation"<br><br>19. Run "HMMVoiceConfigure"<br><br>20. Run "HMMVoiceFeatureSelection". Result: mary/hmmFeatures.txt <br><br>21. Run "HMMVoiceMakeData"<br><br>22. Run "HMMVoiceMakeVoice". This step will process several hours.<br><br>23. Run "HMMVoiceCompiler". If this step finished with error, you need to go to /voice/data/mary/voice-my_voice-hsmm, then edit pom.xml from 5.1.2 to 5.2-SNAPSHOT version, then compile manually by command "cd /voice/data/mary/voice-my_voice-hsmm; JAVA_HOME=/voice/soft/java /voice/soft/maven/bin/mvn install"<br><br><br>Once the voice is compiled, follow the instructions in Publishing-a-MARY-TTS-Voice to install the voice<br></span><br></div></div>
</blockquote></div></div></div>