Alan W Blackfirst commite7e48689 years agoHistory
204 lines · 7.9 KB · Text
RawDownload
#!/bin/sh#####################################################-*-mode:shell-script-*-##                                                                       ####                                                                       ####                  Language Technologies Institute                      ####                     Carnegie Mellon University                        ####                      Copyright (c) 2001-2015                          ####                        All Rights Reserved.                           ####                                                                       ####  Permission is hereby granted, free of charge, to use and distribute  ####  this software and its documentation without restriction, including   ####  without limitation the rights to use, copy, modify, merge, publish,  ####  distribute, sublicense, and/or sell copies of this work, and to      ####  permit persons to whom this work is furnished to do so, subject to   ####  the following conditions:                                            ####   1. The code must retain the above copyright notice, this list of    ####      conditions and the following disclaimer.                         ####   2. Any modifications must be clearly marked as such.                ####   3. Original authors' names are not deleted.                         ####   4. The authors' names are not used to endorse or promote products   ####      derived from this software without specific prior written        ####      permission.                                                      ####                                                                       ####  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         ####  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ####  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ####  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      ####  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ####  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ####  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ####  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ####  THIS SOFTWARE.                                                       ####                                                                       ###############################################################################                                                                       ####  Setup the current directory for building a FLITE voice from a        ####  a festvox voice                                                      ####                                                                       ############################################################################# if [ ! "$ESTDIR" ]then   echo "environment variable ESTDIR is unset"   echo "set it to your local speech tools directory e.g."   echo '   bash$ export ESTDIR=/home/awb/projects/speech_tools/'   echo or   echo '   csh% setenv ESTDIR /home/awb/projects/speech_tools/'   exit 1fi if [ ! "$FLITEDIR" ]then   echo "environment variable FLITEDIR is unset"   echo "set it to your local festvox directory e.g."   echo '   bash$ export FLITEDIR=/home/awb/projects/flite/'   echo or   echo '   csh% setenv FLITEDIR /home/awb/projects/flite/'   exit 1fi if [ ! -d wav ]then   echo "I'm expecting this directory to contain a festvox voice which"   echo "should at least contain a wav/ directory, but haven't found one "   echo "Are you sure this is the right directory to build in?"   echo -n "Answer y/n? "   read answer   if [ "$answer" != "y" ]   then       echo "setup aborted"       exit -1   fifi if [ ! -f etc/voice.defs ]then   echo "Can't find etc/voice.defs file"   echo "don't know what voice to convert"   echo "Setup for conversion of $1 to flite FAILED"   exit 1fi mkdir -p flite . ./etc/voice.defs if [ "$FV_LANG" = "us" ]then   # I should have been more consistent   FV_FLITE_LANG=usenglish   FV_FLITE_LEX=cmu_lex   FV_FLITE_LEX_DIR=cmulexelse   if [ "$FV_LANG_TYPE" = "grapheme" ]   then      ## Override the language type to be generic grapheme      FV_FLITE_LANG=cmu_${FV_LANG_TYPE}_lang      FV_FLITE_LEX=cmu_${FV_LANG_TYPE}_lex   else      FV_FLITE_LANG=cmu_${FV_LANG}_lang      FV_FLITE_LEX=cmu_${FV_LANG}_lex   fi   FV_FLITE_LEX_DIR=${FV_FLITE_LEX}fi if [ $# = 1 ]then   FV_TYPE=$1fi cat $FLITEDIR/tools/Makefile.flite |  sed 's%__FLITEDIR__%'$FLITEDIR'%' $i |  sed 's%__VOICETYPE__%'$FV_TYPE'%' |  sed 's%__FLITELANG__%'$FV_FLITE_LANG'%' |  sed 's%__FLITELEX__%'$FV_FLITE_LEX_DIR'%' |  sed 's%__VOICETYPE__%'$FV_TYPE'%' |  sed 's%__VOICENAME__%'$FV_VOICENAME'%' >flite/Makefile cat $FLITEDIR/tools/build_flite |  sed 's%__FLITEDIR__%'$FLITEDIR'%' >bin/build_flitechmod +x bin/build_flite if [ -f flite/$FV_VOICENAME.c ]then   echo flite/$FV_VOICENAME.c already exists   echo not overwriting it with a new copyelse   if [ "$FV_TYPE" = "diphone" ]   then      cat $FLITEDIR/tools/VOICE_diphone.c |        sed 's%__NICKNAME__%'$FV_NAME'%' |        sed 's%__FLITELANG__%'$FV_FLITE_LANG'%' |        sed 's%__FLITELEX__%'$FV_FLITE_LEX'%' |        sed 's%__VOICENAME__%'$FV_VOICENAME'%g' >flite/$FV_VOICENAME.c   elif [ "$FV_TYPE" = "ldom" ]   then      cat $FLITEDIR/tools/VOICE_ldom.c |        sed 's%__NICKNAME__%'$FV_NAME'%' |        sed 's%__FLITELANG__%'$FV_FLITE_LANG'%' |        sed 's%__FLITELEX__%'$FV_FLITE_LEX'%' |        sed 's%__VOICENAME__%'$FV_VOICENAME'%g' >flite/$FV_VOICENAME.c   elif [ "$FV_TYPE" = "cg" ]   then      cat $FLITEDIR/tools/VOICE_cg.c |        sed 's%__NICKNAME__%'$FV_NAME'%' |        sed 's%__FLITELANG__%'$FV_FLITE_LANG'%' |        sed 's%__FLITELEX__%'$FV_FLITE_LEX'%' |        sed 's%__VOICENAME__%'$FV_VOICENAME'%g' >flite/$FV_VOICENAME.c   else      cat $FLITEDIR/tools/VOICE_clunits.c |        sed 's%__NICKNAME__%'$FV_NAME'%' |        sed 's%__FLITELANG__%'$FV_FLITE_LANG'%' |        sed 's%__FLITELEX__%'$FV_FLITE_LEX'%' |        sed 's%__VOICENAME__%'$FV_VOICENAME'%g' >flite/$FV_VOICENAME.c   fifi cp -p $FLITEDIR/main/flite_main.c flite/flite_main.c echo "#define VOXNAME" $FV_VOICENAME >flite/voxdefs.hecho "#define REGISTER_VOX register_"$FV_VOICENAME >>flite/voxdefs.hecho "#define UNREGISTER_VOX unregister_"$FV_VOICENAME >>flite/voxdefs.hecho "#define VOXHUMAN \"$FV_NAME\"" >>flite/voxdefs.hecho "#define VOXGENDER \"unknown\"" >>flite/voxdefs.hecho "#define VOXVERSION 1.0" >>flite/voxdefs.h if [ "$FV_LANG" = "indic" ]then   # Add extras for indic voices   # add secondary lang init to flite/$FV_VOICENAME.c   sed '/ Sets up language /,$d' flite/$FV_VOICENAME.c >$$_top.c   sed '1,/ Sets up language /d' flite/$FV_VOICENAME.c >$$_bottom.c    if [ ! "$FV_INDIC_VARIANT" ]   then      # If not set, set it to hindi      export FV_INDIC_VARIANT=hin   fi      cat $$_top.c >flite/$FV_VOICENAME.c   echo "    flite_feat_set_string(vox->features,\"variant\",\""$FV_INDIC_VARIANT"\");" >>flite/$FV_VOICENAME.c   cat >>flite/$FV_VOICENAME.c <<EOF     /* To get English front end you need it initialized (now *and* at */    /* dynamic load time). Do this before primary language init */    flite_feat_set_string(vox->features,"secondary_langs","eng");    cmu_lex_init(); /* English lexicon for pronunciations of English words */    usenglish_init(vox);    flite_feat_set_string(vox->features,"secondary_languages","eng");    flite_feat_set_string(vox->features,"country","India"); EOF   cat $$_bottom.c >>flite/$FV_VOICENAME.c   rm -f $$_top.c $$_bottom.c    cp -pr flite/Makefile $$_Makefile   sed 's/^LOCAL_LANGLEX_LIBS.*$/LOCAL_LANGLEX_LIBS = -lflite_$(FLITE_LANG) -lflite_$(FLITE_LEX) -lflite_usenglish -lflite_cmulex/' $$_Makefile >flite/Makefile   rm -f $$_Makefile fi echo "Setup flite build for "$FV_VOICENAME" "$FV_TYPE" complete" exit 0

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t