[mary-users] New voice creation

Clifton Craig clifton.craig at gmail.com
Mon Nov 9 21:01:31 CET 2015


Hi Ales,

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!

On Sun, Nov 8, 2015 at 5:16 AM Aleś Bułojčyk <alex73mail at gmail.com> wrote:

> Hi Clifton.
>
> 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.
>
> 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.
>
> WBR, Alex.
>
> Voice creation
> ==============
>
> This is my notes about HTS voice creation.
> It's not so simple process, because it requires many software, and most
> software should be compiled from sources.
> Voice creation depends on voice recognition. That's why we need to use
> voice recognition software too.
>
> Useful links
> ------------
>
> Some demos, that can show possible quality of voice synthesis:
>   http://www.cstr.ed.ac.uk/projects/festival/onlinedemo.html
>   http://festvox.org/voicedemos.html
>
> Some docs:
>   http://htk.eng.cam.ac.uk/docs/docs.shtml
>
> http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial
>
> Docs from MaryTTS:
>   https://github.com/marytts/marytts/wiki/HMMVoiceCreation
>
> https://github.com/marytts/marytts/wiki/VoiceImportToolsTutorial#step-by-step-procedure
>
> Software
> --------
>
> I used Ubuntu 15.04 32-bit desktop for voice compiling.
>
> 1. Prepare system
>
>     sudo mkdir /voice
>     sudo chown <username> /voice
>     sudo apt-get install mc libc6-dev-i386 libx11-dev libncurses5-dev git
> sox tcl-snack g++
>
> 2. Compile HTS
>
> * Download
> http://hts.sp.nitech.ac.jp/archives/2.2/HTS-2.2_for_HTK-3.4.1.tar.bz2
> from http://hts.sp.nitech.ac.jp/?Download to /voice/sources/
> * Download
> http://htk.eng.cam.ac.uk/ftp/software/hdecode/HDecode-3.4.1.tar.gz from
> http://htk.eng.cam.ac.uk/prot-docs/hdecode.shtml to /voice/sources/
> * Download http://htk.eng.cam.ac.uk/ftp/software/HTK-3.4.1.tar.gz from
> http://htk.eng.cam.ac.uk/download.shtml to /voice/sources/
>
>     cd /voice/sources/
>     tar xf HTK-3.4.1.tar.gz
>     tar xf HDecode-3.4.1.tar.gz
>     mkdir hts
>     tar xf HTS-2.2_for_HTK-3.4.1.tar.bz2 -C hts
>     cd htk
>     patch -p1 -d . < ../hts/HTS-2.2_for_HTK-3.4.1.patch
>     ./configure --prefix=/voice/soft/hts
>     make all hdecode
>     make install install-hdecode
>
> Result: files /voice/soft/hts/bin/H*
>
> 3. Compile hts_engine 1.05
>
> * Download
> http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.05/hts_engine_API-1.05.tar.gz/download
> from
> http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.05/
> to /voice/sources/
>
>     cd /voice/sources/
>     tar xf hts_engine_API-1.05.tar.gz
>     cd hts_engine_API-1.05
>     ./configure --prefix=/voice/soft/hts_engine
>     make
>     make install
>
> Result: /voice/soft/hts_engine/bin/hts_engine
>
> 4. Install speech tools
>
> * Download
> http://festvox.org/packed/festival/2.4/speech_tools-2.4-release.tar.gz
> from http://festvox.org/festival/ to /voice/sources/
>
>     cd /voice/sources/
>     tar xf speech_tools-2.4-release.tar.gz
>     ./configure
>     make
>     make test
>
> Result: latest command should show “Test OK”
>
> 5. Install Festvox
>
> * Download http://festvox.org/festvox-2.7/festvox-2.7.0-release.tar.gz
> from http://festvox.org/download.html
>
>     cd /voice/sources/
>     tar xf festvox-2.7.0-release.tar.gz
>     cd festvox/
>     ./configure
>     make
>
>
> 6. Install Festival
> * Download
> http://festvox.org/packed/festival/2.4/festival-2.4-release.tar.gz from
> http://festvox.org/festival/ to /voice/sources/
>
>     cd /voice/sources/
>     tar xf festival-2.4-release.tar.gz
>     cd festival/
>     ./configure
>     make
>
> 7. Install SPTK
> * Download http://downloads.sourceforge.net/sp-tk/SPTK-3.4.1.tar.gz
>
>     cd /voice/sources/
>     tar xf SPTK-3.4.1.tar.gz
>     cd SPTK-3.4.1/
>     ./configure --prefix=/voice/soft/SPTK
>     make
>     make install
>
> Result: files /voice/soft/SPTK/bin/*
>
> 8. Install Praat
> * Download http://www.fon.hum.uva.nl/praat/praat5417_linux64.tar.gz from
> http://www.fon.hum.uva.nl/praat/download_linux.html to /voice/sources/
>
>     cd /voice/sources/
>     mkdir /voice/soft/praat
>     tar xf praat5417_linux64.tar.gz -C /voice/soft/praat/
>
> 9. Install JDK to /voice/soft/java
>
>     cd /voice/soft
>     tar xf /voice/sources/jdk-8u60-linux-x64.tar.gz
>     mv jdk1.8.0_60/ java/
>
> Note: you may have other JDK version.
>
> 10. Install maven
>
> * Download
> http://ftp.byfly.by/pub/apache.org/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
> from https://maven.apache.org/download.cgi to /voice/sources/
>
>     cd /voice/soft/
>     tar xf /voice/sources/apache-maven-3.3.3-bin.tar.gz
>     mv apache-maven-3.3.3 maven
>
> 11. MaryTTS
>
>     cd /voice/sources/
>     git clone https://github.com/marytts/marytts.git (I used
> 65ee75ee8473e0d65853b0f8ccac1582ea0cb783 snapshot)
>     cd marytts/lib/external/ehmm
>     make
>     cd ..
>
> 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
>
> Result: externalBinaries.config. Check should display all OK.
>
>     cd /voice/sources/marytts
>     JAVA_HOME=/voice/soft/java /voice/soft/maven/bin/mvn install
>
> Result:
> /voice/sources/marytts/target/marytts-builder-5.2-SNAPSHOT/bin/voiceimport.sh
>
> Voice compiling: prepare
> ------------------------
>
> 1. Put audio files into /voice/data/wav, text into
> /voice/data/txt.done.data
>
> 2. Run MaryTTS server in the separate window:
>
>     cd /voice/sources/marytts/target/marytts-5.2-SNAPSHOT/bin
>     PATH=/voice/soft/java/bin:$PATH ./marytts-server
>
> 3. Run voice conversion:
>
>     cd /voice/sources/marytts/target/marytts-builder-5.2-SNAPSHOT/bin;
>
> 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
>
> 4. Choose directory /voice/data
>
> 5. Set parameters (I tried russian voice elena compilation):
>
>     db.marybase: /voice/sources/marytts
>     db.estDir: /voice/sources/speech_tools/
>     db.samplingrate: as in source files
>     db.locale: ru
>     HMMVoiceConfigure.dataSet      =  rusian_set_name
>     HMMVoiceConfigure.speaker      =  elena
>     HMMVoiceConfigure.lowerF0      =  80 (male=40,  female=80)
>     HMMVoiceConfigure.upperF0     = 350 (male=280, female=350)
>     HMMVoiceConfigure.freqWarp = 0.53
>     HMMVoiceConfigure.sampfreq = 44100
>     HMMVoiceConfigure.frameLen, frameShift (see
> http://www.dfki.de/pipermail/mary-users/2012-April/001189.html)
>     HMMVoiceCompiler.mavenBin    /voice/soft/maven/bin/mvn
>     EHMMLabeler.ehmmDir    /voice/sources/marytts/lib/external/ehmm
>
> 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"
>
> 7. Run "PraatPitchmarker". Result : voice/pm/* files
>
> 8. Run "MCEPMaker". Result : voice/mcep/*.mcep files
>
> 9. Run "Festvox2MaryTranscripts". Result : voice/text/*.txt files
> (converted from voice/txt.done.data)
>
> Voice compiling: autolabeling
> -----------------------------
>
> 10. Run "AllophonesExtractor". Result: voice/prompt_allophones/*.xml
>
> 11. Run "EHMMLabeler". Result: voice/ehmm/* files. See
> https://github.com/marytts/marytts/wiki/HMMVoiceCreation for some
> details. This step will process several hours.
>
> 12. Run "LabelPauseDeleter" (set threshold=10 in settings). Result:
> voice/lab/*.lab
>
> 13. Run "PhoneUnitLabelComputer". Result: voice/phonelab/*.lab
>
> 14. Run "TranscriptionAligner". Result: voice/allphones/*.xml
>
> 15. Run "FeatureSelection". Result: voice/mary/features.txt
>
> 16. Run "PhoneUnitFeatureComputer": Result: voice/phonefeatures/*.pfeats
>
> 17. Run "PhoneLabelFeatureAligner". See console output - it should display
> "0 problems"
>
> As results of previous steps, you should have in your voice building
> directory:
>
>     phonefeatures directory
>     phonelab directory
>     mary/features.txt file
>     $MARY_BASE/lib/external/externalBinaries.config
>
>
> Voice compiling: voice training
> -------------------------------
>
> 18. Run "HMMVoiceDataPreparation"
>
> 19. Run "HMMVoiceConfigure"
>
> 20. Run "HMMVoiceFeatureSelection". Result: mary/hmmFeatures.txt
>
> 21. Run "HMMVoiceMakeData"
>
> 22. Run "HMMVoiceMakeVoice". This step will process several hours.
>
> 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"
>
>
> Once the voice is compiled, follow the instructions in
> Publishing-a-MARY-TTS-Voice to install the voice
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.dfki.de/pipermail/mary-users/attachments/20151109/efd9d42f/attachment-0001.htm 


More information about the Mary-users mailing list