wiki:VoiceImportToolsTutorial

Version 25 (modified by masc01, 15 years ago) (diff)

--

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 Tools GUI Screenshot

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
  1. Feature Vector Extraction from Text Data
  1. Automatic Labeling
  1. Unit Selection
  1. Voice Installation to MARY

Requirements

(You may be able to use other operating systems such as Mac OS X or Windows if you can get the dependencies to work, which are described below)

Dependendent Tools:

  • Praat Pitch Marker or Snack - For pitch marks

Download Link for praat : http://www.fon.hum.uva.nl/praat

Installing Snack : Require tcl and snack. Installation instructions available at http://www.speech.kth.se/snack/

  • 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
  • LabelledFilesInspector
  • PhoneUnitLabelComputer
  • PhoneLabelFeatureAligner
  • HalfPhoneUnitLabelComputer
  • HalfPhoneLabelFeatureAligner
  • QualityControl
  • HalfPhoneUnitfileWriter
  • HalfPhoneFeatureFileWriter
  • JoinCostFileMaker
  • AcousticFeatureFileWriter
  • CARTBuilder
  • CARTPruner
  • VoiceInstaller

Step-by-Step Procedure:

First you need to have following 2 basic requirements for Voice Building

  1. Wave files
  2. Corresponding Transcription (in MARY or Festvox Format)

MARY Format : Each transcription represented by a single file. All these files placed in a single directory. By default, all these files placed in 'text' directory of voice-building directory.

Festvox (Festival) Format : A single file contains all transcriptions. For examples see below example.

( arctic_a0001 "AUTHOR OF THE DANGER TRAIL, PHILIP STEELS, ETC" )
( arctic_a0002 "Not at this particular case, Tom, apologized Whittemore." )
( arctic_a0003 "For the twentieth time that evening the two men shook hands." )
( arctic_a0004 "Lord, but I'm glad to see you again, Phil." )
( arctic_a0005 "Will we ever forget it." )

1. Create a new Voice Building Directory

Create a voice building directory somewhere on your file system, say /home/me/myvoice.

  • Put all Wave files into the wav sub-directory of the voice building directory, i.e. /home/me/myvoice/wav. You may want to use the Audio converter GUI to make sure that this data is mono, at the right sampling rate, doesn't include overly long initial and final pauses, etc.
  • Either put the individual text files into the myvoice/text subdirectory (if using text files in MARY format), or the single text file in Festvox format into myvoice/txt.done.data.

If you want to test this but haven't recorded your own voice files yet, one way of getting data to test this is to use the ARCTIC data from CMU. Download and upack http://www.speech.cs.cmu.edu/cmu_arctic/packed/cmu_us_slt_arctic-0.95-release.tar.bz2, and then:

  • copy or move cmu_us_slt_arctic/wav to myvoice/wav, including all wav files;
  • copy or move cmu_us_slt_arctic/etc/txt.done.data to myvoice/txt.done.data.

2. Run the voice building tools

Create a simple shell script, myvoice/import.sh, with the following content:

export MARY_BASE="/path/to/mary"
java -Xmx1024m -jar $MARY_BASE/java/voiceimport.jar

Adapt the /path/to/mary to match the location of your MARY TTS installation.

Run the shell script from the command line (sh import.sh) to start the voice building process.

When you are running the voice building tools for the first time, tt asks you for some basic configuration settings by presenting a GUI window where you have to enter a few basic settings. Almost all other settings are based on these first settings and set automatically.

The global configuration settings window looks roughly like this:

Global Configuration Settings:

Domain - general or limited
Gender - male or female
Locale - which specifies language of domain (de - Deutsch or en - English)
(Currently, MARY supporting 2 language only: 1. Deutsch 2. English)
Marybase - MARY Installation Directory (Global Path)
Rootdir - Voice Building Directory (Global Path)
Wavdir - Where we can store Wave files
Textdir - Where we can store corresponding Transcriptions

After clicking the "Save"-button, you will get to the main window of Voice Import Tools as shown in Screen shot. There you can see a list of modules. A component is executed by ticking the associated checkbox and clicking on "Run".

  1. User also can change the settings for each individual component by clicking on the wrench symbol next to the component. Clicking on "Settings" takes you to the window where you can change the basic settings. In a settings window, you can change the view to the settings of another module or the basic settings via the drop-down menu. Basically, all modules need to be run to import the voice into MARY. For more detailed information, check the general help file - just click on "Help" in the main window. Clicking on help in the settings window opens a help window with details about the displayed settings. We recommended to give Absolute Paths for individual Configuration Settings. These config. settings are arguments to components to perform corresponding task.

The import tool creates two files in the directory where you started it - database.config and importMain.config. database.config contains the values of the settings - you can change the settings also in this file, but be aware that this may cause problems.

  1. Simplest way of Using Voice Import Components:
  • Give Config. Settings for Each and Every Component.
  • Tick mark all components
  • Click RUN button

It will complete all tasks in sequential manner.

  1. But user need to make few decisions before doing Step 5.

Because there is no need to use all components for Building a New Voice.
For Example: For Pitch marks we can choose Praat or Snack.

  • Choose Praat or Snack (only one) for Pitch marks Extraction.
  • If your transcriptions are in Festvox Format, It is necessary to choose "Festvox2MaryTranscripts" Component. Because It will convert Festvox format transcriptions to MARY format transcriptions. Voice Import Tools uses MARY format transcription for building Voice. No need to choose "Mary2FestvoxTranscripts" component while Building a new Voice. Just we are providing that component for facilitating user to convert any format depending on requirements.
  • PhoneUnitFeatureComputer and HalfPhoneUnitFeatureComputer needs a running MARY Server. It is very important point. User need to make sure a Mary Server running while executing above two Components. And one more important issue is MARY Server need to contain at least one Voice of language (German or English), which user wanted build a new voice.
    Before running Mary Server, please make sure "english-targetfeatures.config" and "english-halfphone-targetfeatures.config" in "$MARY_BASE/conf/" directory for building an English voice. Similarly, "german-targetfeatures.config" and "german-halfphone-targetfeatures.config" required for German voice building.
  • LabelledFilesInspector gives a GUI interface to check how good Automatic labeling. It will also support user to listen phone segments according to given timestamps from Automatic labeling. If user don't want to inspect labeling, better no need to choose this component. Because it will pause Voice building in between.
  1. While executing each component, a Progress bar shows the percentage of work completed for that component. Each Component converted to GREEN, if that component is executed successfully. And it converts to RED and it throws an exception, if that component unsuccessfully executed. If a component unsuccessfully executed, check configuration settings once again.

We hope this tutorial helps to build a new unit selection voice using the Voice Import Tools under the MARY platform. The Individual Voice Import Components are explained here.

An explanation about how to create a new HMM-based voice using the HMM Voice Import Tools under the MARY platform, can be found here:

  • Sathish Chandra Pammi (Sathish.Chandra@…)

Attachments (2)

Download all attachments as: .zip