ref: a7ec22a8ea9f6480ae3e7e15710c991f80f79dcd
parent: f15235c1d015f08c9278ac5f5fa6096da716a651
author: Alan W Black <[email protected]>
date: Thu Nov 16 03:19:03 EST 2017
better support for voice feats
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -49,7 +49,7 @@
make_voice_list wfst2c build_lex clunit_prune \
a2byte.pl a2short.pl a2int.pl flite_rename_voice \
make_lang_list make_new_lang_lex flitechecks \
- add_flite_feats run_flitecheck quantize_params
+ add_flite_feats make_flite_feats run_flitecheck quantize_params
SCM=make_lex.scm make_lts.scm make_cart.scm play_sync.scm \
make_phoneset.scm make_vallist.scm make_clunits.scm \
make_didb.scm make_didb2.scm make_f0lr.scm make_lts_wfst.scm \
--- a/tools/VOICE_cg.c
+++ b/tools/VOICE_cg.c
@@ -65,6 +65,9 @@
/* Things that weren't filled in already. */
flite_feat_set_string(vox->features,"name","__VOICENAME__");
+ /* Voice specific features from ../etc/voice.feats */
+#include "__VOICENAME___voice_feats.c"
+
/* Lexicon */
lex = __FLITELEX___init();
flite_feat_set(vox->features,"lexicon",lexicon_val(lex));
--- a/tools/build_flite
+++ b/tools/build_flite
@@ -382,6 +382,12 @@
"."
"flite/")'
+ touch flite/${FV_VOICENAME}_voice_feats.c
+ if [ -f etc/voice.feats ]
+ then
+ ${FLITEDIR}/tools/make_flite_feats etc/voice.feats >flite/${FV_VOICENAME}_voice_feats.c
+ fi
+
if [ "$FV_LANG_TYPE" = "grapheme" ]
then
echo cg_convert: converting phoneset table
--- /dev/null
+++ b/tools/make_flite_feats
@@ -1,0 +1,66 @@
+#!/bin/sh
+###########################################################################
+## ##
+## Language Technologies Institute ##
+## Carnegie Mellon University ##
+## Copyright (c) 2017 ##
+## 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. ##
+## ##
+###########################################################################
+## ##
+## Make feats for a voice so that they are in the linked in version ##
+## ##
+## $FLITEDIR/tools/make_flite_feats ../etc/voice.feats >VOICENAME_voice_feats.c ##
+## ##
+## ../etc/voice.feats should look something like ##
+## ##
+## age 42 ##
+## gender male ##
+## variant Scots ##
+## ##
+## If ./COPYING exists, the content is added as the feature copyright ##
+## ##
+###########################################################################
+
+export LANG=C
+
+awk '{if (NF > 1) print $0}' $1 | sed 's/"/\\"/g' |
+awk '{printf("flite_feat_set_string(vox->features,\"%s\",\"",$1);
+ for (i=2; i<NF; i++)
+ printf("%s ",$i);
+ printf("%s\");\n",$NF);}'
+
+if [ -f COPYING ]
+then
+ cat COPYING | sed 's/"/\\"/g' |
+ awk 'BEGIN {printf("flite_feat_set_string(vox->features,\"copyright\",\" \\n\"\n");}
+ { printf("\"%s\\n\"\n",$0); }
+ END {printf(");\n");}'
+fi
+
+exit
+