= Voice Import Tools Tutorial : How to build a new Voice with Voice Import Tools = This Tutorial explains the procedure to build a new voice with Voice Import Tools (VIT) under MARY Environment. Voice Import Tool is a Graphical User Interface(GUI), which contains a set of Voice Import Components and helps the user to build new voices under MARY(Modular Architecture for Research in speech sYnthesis) Environment. This GUI Tool designing is primarily aims to build new voices very easily by any user with out knowing much technical details of Speech Synthesis. Currently, Voice Import Tool supports following categories mainly: 1. Feature Extraction from Acoustic Data 2. Feature Vector Extraction from Text Data 3. Automatic Labeling 4. Unit Selection 5. Voice Installation to MARY == Requirements Needed: == * Operating System - Linux (Recommended) * MARY TTS Recent Version - Download Link: http://mary.dfki.de/Download * Openmary - SVN from http://mary.opendfki.de (we also able to use Windows also, if we can able to compile properly the following dependent tools.) == Dependendent Tools: == - Praat Pitch Marker or Snack - For pitch marks Download Link for praat : http://www.fon.hum.uva.nl/praat - Edinburgh Speech Tools Library – For MFCCs and Wagon (CART) Download Link for Speech Tools: http://www.cstr.ed.ac.uk/projects/speech_tools/ - EHMM or Sphinx – For Automatic Labeling EHMM is available with festvox-2.1 (Recent Version) - http://festvox.org/download.html Sphinx - http://cmusphinx.sourceforge.net/webpage/html/download.php == Voice Import Components: == Following Components are available with Voice Import Components: - !PraatPitchmarker - !SnackPitchmarker - MCEPMaker - Festvox2MaryTranscripts - Mary2FestvoxTranscripts - !PhoneUnitFeatureComputer - !HalfPhoneUnitFeatureComputer - EHMMLabeler - !SphinxLabelingPreparator - !SphinxTrainer - !SphinxLabeler - MRPALabelConverter - !HalfPhoneUnitfileWriter - !HalfPhoneFeatureFileWriter - !JoinCostFileMaker - !AcousticFeatureFileWriter - CARTBuilder - CARTPruner - !VoiceInstaller == How to run? == 1. First you need to have following 2 basic requirements for Voice Building a. Wave files b. Corresponding Transcription (in MARY or Festival Format) 2. Create a new Voice Building Directory - Put all Wave files in "wav" directory 3. Run below commands through Shell script from Voice Building Directory. {{{ export MARY_BASE="/path/to/mary" java -Xmx1024m -classpath $MARY_BASE/java:$MARY_BASE/java/mary-common.jar: \ $MARY_BASE/java/signalproc.jar:$MARY_BASE/java/freetts.jar:$MARY_BASE/java/jsresources.jar: \ $MARY_BASE/java/log4j-1.2.8.jar -Djava.endorsed.dirs=$MARYBASE/lib/endorsed \ de.dfki.lt.mary.unitselection.voiceimport.DatabaseImportMain }}} GUI is looking like below (Which supports voice building): {{{ #!html
}}} When you are running first time above shell script, It asks you some basic configuration settings. Global Configuration Settings window looks like below: {{{ #!html
}}} '''Global Configuration Settings:''' Domain - general or limited[[BR]] Gender - male or female[[BR]] Locale - which specifies language of domain (de - Deutsch or en - English) [[BR]] (Currently, MARY supporting 2 language only: 1. Deutsch 2. English)[[BR]] Marybase - MARY Installation Directory (Global Path)[[BR]] Rootdir - Voice Building Directory (Global Path)[[BR]] Wavdir - Where we can store Wave files [[BR]] Textdir - Where we can store corresponding Transcriptions [[BR]] Each and Every Component also contains Configuration Settings. We recommended to give Absolute Paths for Configuration Settings. These config. settings are arguments to components to perform corresponding task. Simplest way of Using Voice Import Components: - Give Config. Settings for Each and Every Component. - Tick mark all components - Click RUN button [[BR]] It can complete all tasks in sequential manner. [[BR]] But No need to use all components for Building a New Voice. For Example: For Automatic Labeling we can choose EHMM or Sphinx. [[BR]] == Explanation on Individual Voice Import Components == '''Feature Extraction from Acoustic Data''' '''!PraatPitchmarker'''[[BR]] It computes pitch markers with help of Praat. You need to compile or install Praat in your machine.[[BR]] It also do corrections for Pitch Marks to align near by Zero Crossing. Configuration Settings: * command - Give Absolute path of Praat Executable * pmDir - Output Dir Path for Praat Pitch marks * corrPmDir - Output Dir Path for corrected pitch marks (Pitch marks tuned towards Zero Crossing) * maxPitch, minPitch - For choosing Pitch Range (Ex: Male: 50-200 | Female: 150-300) '''MCEPMaker'''[[BR]] It calculate MFCCs from Speech Wave files, using Edinburgh Speech Tools. Configuration Settings: * estDir - Edinburgh Speech Tools Compiled Directory * pmDir - Praat Pitch marks Directory * corrPmDir - Corrected Pitch marks Directory * mcepDir - Output Dir for MFCCs '''Support for Transcription Conversion''' '''Festvox2MaryTranscripts''' [[BR]] This Component supports user to convert Festvox Transcription format (ex: txt.done.data) to MARY Supportable format. MARY contains individual text files for each wave file. All Voice Import Components use Transcription from MARY Format. So This component is very useful, if user have Transcription in Festvox format. Configuration Settings: * transcriptFile - Festvox format transcription file (Absolute path) '''Mary2FestvoxTranscripts'''[[BR]] It supports user to convert MARY Supportable format to Festvox format Transcription. It does reciprocal process to above component. Configuration Settings: * transcriptFile - Output Festvox format transcription file (Absolute path) '''Feature Vector Extraction from Text Data''' '''!PhoneUnitFeatureComputer'''[[BR]] !PhoneUnitFeatureComputer computes Phone feature vectors for Unit Selection Voice building process. [[BR]] * Note: This module requires a running Maryserver from MARY Installation. [[BR]] You can connect to a different server by altering the settings. See the settings help for more information on this. What type of features computed is depends on configuration file called "targetfeatures.config". This configuration file is in Marybase/conf/ directory and directs Server to compute feature vectors. Configuration Settings: * featureDir - Output Directory to place computed Phone feature vectors (Absolute path) * maryServerHost - Server Name * maryServerPort - Socket Port number (Default 59125) '''!HalfPhoneUnitFeatureComputer''' This component also same as above component. But It computes Half phone level feature vectors. Here "halfphone-targetfeatures.config" file, which is in Marybase/conf/ directory directs Server to compute Half-Phone level feature vectors. Configuration Settings: * featureDir - Output Directory to place computed Half-Phone feature vectors (Absolute path) * maryServerHost - Server Name * maryServerPort - Socket Port number (Default 59125) ( '''Under Construction''' - to continued)