<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 &lt;<a href="mailto:alex73mail@gmail.com">alex73mail@gmail.com</a>&gt; 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&#39;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&#39;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 &lt;username&gt; /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 . &lt; ../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 &quot;Reading external binaries config file /voice/sources/marytts/lib/external/externalBinaries.config&quot;<br><br>7. Run &quot;PraatPitchmarker&quot;. Result : voice/pm/* files<br><br>8. Run &quot;MCEPMaker&quot;. Result : voice/mcep/*.mcep files<br><br>9. Run &quot;Festvox2MaryTranscripts&quot;. Result : voice/text/*.txt files (converted from voice/txt.done.data)<br><br>Voice compiling: autolabeling<br>-----------------------------<br><br>10. Run &quot;AllophonesExtractor&quot;. Result: voice/prompt_allophones/*.xml<br><br>11. Run &quot;EHMMLabeler&quot;. 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 &quot;LabelPauseDeleter&quot; (set threshold=10 in settings). Result: voice/lab/*.lab<br><br>13. Run &quot;PhoneUnitLabelComputer&quot;. Result: voice/phonelab/*.lab<br><br>14. Run &quot;TranscriptionAligner&quot;. Result: voice/allphones/*.xml<br><br>15. Run &quot;FeatureSelection&quot;. Result: voice/mary/features.txt<br><br>16. Run &quot;PhoneUnitFeatureComputer&quot;: Result: voice/phonefeatures/*.pfeats<br><br>17. Run &quot;PhoneLabelFeatureAligner&quot;. See console output - it should display &quot;0 problems&quot;<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 &quot;HMMVoiceDataPreparation&quot;<br><br>19. Run &quot;HMMVoiceConfigure&quot;<br><br>20. Run &quot;HMMVoiceFeatureSelection&quot;. Result: mary/hmmFeatures.txt <br><br>21. Run &quot;HMMVoiceMakeData&quot;<br><br>22. Run &quot;HMMVoiceMakeVoice&quot;. This step will process several hours.<br><br>23. Run &quot;HMMVoiceCompiler&quot;. 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 &quot;cd /voice/data/mary/voice-my_voice-hsmm; JAVA_HOME=/voice/soft/java /voice/soft/maven/bin/mvn install&quot;<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>