Index: tools/voicecommon.sh =================================================================== --- tools/voicecommon.sh (revision 14238) +++ tools/voicecommon.sh (working copy) @@ -46,9 +46,15 @@ # The oggenc executable VORBIS_BIN=oggenc +# Tools directory +TOOLSDIR=`dirname $0` + # The wavtrim executable -WAVTRIM=`dirname $0`/wavtrim +WAVTRIM=$TOOLSDIR/wavtrim +# The SAPI5 script directory +SAPI5DIR=`cygpath $TOOLSDIR -a -w` + ##################### # Festival settings # ##################### @@ -158,12 +164,20 @@ fi ;; espeak) - # Check for flite + # Check for espeak if [ ! `which $ESPEAK_BIN` ]; then echo "Error: $ESPEAK_BIN not found" exit 5 fi ;; + sapi5) + # Check for SAPI5 + cscript /B $SAPI5DIR/sapi5_init_tts.vbs + if [ $? -ne 0 ]; then + echo "Error: SAPI 5 not available" + exit 5 + fi + ;; *) echo "Error: no valid TTS engine selected: $TTS_ENGINE" exit 2 @@ -268,6 +282,9 @@ echo "Action: Generate $WAV_FILE with flite" echo -E "$TO_SPEAK" | $FLITE_BIN $FLITE_OPTS -o "$WAV_FILE" ;; + sapi5) + cscript /B "$SAPI5DIR\sapi5_voice.vbs" ""$TO_SPEAK"" "$WAV_FILE" + ;; esac fi fi Index: tools/sapi5_init_tts.vbs =================================================================== --- tools/sapi5_init_tts.vbs (revision 0) +++ tools/sapi5_init_tts.vbs (revision 0) @@ -0,0 +1,29 @@ +'*************************************************************************** +' __________ __ ___. +' Open \______ \ ____ ____ | | _\_ |__ _______ ___ +' Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +' Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +' Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +' \/ \/ \/ \/ \/ +' $Id: sapi5_init_tts.vbs$ +' +' Copyright (C) 2007 Steve Bavin, Jens Arnold, Mesar Hameed +' +' All files in this archive are subject to the GNU General Public License. +' See the file COPYING in the source tree root for full license agreement. +' +' This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +' KIND, either express or implied. +' +'*************************************************************************** +Dim oSpVoice, sVoice + +Set oSpVoice = CreateObject("SAPI.SpVoice") +If Err.Number <> 0 Then + WScript.Echo "Error - could not get SpVoice object. " & _ + "SAPI 5 not installed?" + Err.Clear + WScript.Quit 1 +End If + +WScript.Quit 0 Property changes on: tools/sapi5_init_tts.vbs ___________________________________________________________________ Name: svn:executable + * Index: tools/genvoice.sh =================================================================== --- tools/genvoice.sh (revision 14238) +++ tools/genvoice.sh (working copy) @@ -27,13 +27,18 @@ # These settings can be overridden by passing a file with definitions as # the fourth parameter to this script -# which TTS engine to use. Available: festival, flite, espeak +# which TTS engine to use. Available: festival, flite, espeak, sapi5 TTS_ENGINE=festival +# Windows users will need TTS_ENGINE=sapi5 + # which encoder to use, available: lame, speex, vorbis (only lame will produce # functional voice clips at this point) ENCODER=lame + # Where to save temporary files TEMPDIR=/tmp +# Windows users will need TEMPDIR=C:\\Cygwin\\tmp (or similar) + # List of IDs to send to voicefont VOICEFONTIDS=voicefontids Index: tools/sapi5_stop_tts.vbs =================================================================== --- tools/sapi5_stop_tts.vbs (revision 0) +++ tools/sapi5_stop_tts.vbs (revision 0) @@ -0,0 +1,19 @@ +'*************************************************************************** +' __________ __ ___. +' Open \______ \ ____ ____ | | _\_ |__ _______ ___ +' Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +' Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +' Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +' \/ \/ \/ \/ \/ +' $Id: sapi5_stop_tts.vbs$ +' +' Copyright (C) 2007 Steve Bavin, Jens Arnold, Mesar Hameed +' +' All files in this archive are subject to the GNU General Public License. +' See the file COPYING in the source tree root for full license agreement. +' +' This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +' KIND, either express or implied. +' +'*************************************************************************** + Property changes on: tools/sapi5_stop_tts.vbs ___________________________________________________________________ Name: svn:executable + * Index: tools/sapi5_voice.vbs =================================================================== --- tools/sapi5_voice.vbs (revision 0) +++ tools/sapi5_voice.vbs (revision 0) @@ -0,0 +1,68 @@ +'*************************************************************************** +' __________ __ ___. +' Open \______ \ ____ ____ | | _\_ |__ _______ ___ +' Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +' Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +' Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +' \/ \/ \/ \/ \/ +' $Id: sapi5_voice.vbs$ +' +' Copyright (C) 2007 Steve Bavin, Jens Arnold, Mesar Hameed +' +' All files in this archive are subject to the GNU General Public License. +' See the file COPYING in the source tree root for full license agreement. +' +' This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +' KIND, either express or implied. +' +'*************************************************************************** +' Purpose: Make a voice clip file for the given text +' Parameters: $0 - text to convert +' $1 - file to write spoken text into (WAV format) + + + +'To be done: +' - Somehow, persist oSpVoice across multiple clips to increase speed +' - Allow user to override voice, speed and/or format (currently uses Control Panel defaults for voice/speed) +' - Voice specific replacements/corrections for pronounciation (this should be at a higher level really) + +Const SSFMCreateForWrite = 3 + +Const SPSF_8kHz16BitMono = 6 +Const SPSF_11kHz16BitMono = 10 +Const SPSF_12kHz16BitMono = 14 +Const SPSF_16kHz16BitMono = 18 +Const SPSF_22kHz16BitMono = 22 +Const SPSF_24kHz16BitMono = 26 +Const SPSF_32kHz16BitMono = 30 +Const SPSF_44kHz16BitMono = 34 +Const SPSF_48kHz16BitMono = 38 + +Dim oSpVoice, oSpFS, nAudioFormat, sText, sOutputFile + +sText = Replace(WScript.Arguments(0), "\", "") +sOutputFile = WScript.Arguments(1) +nAudioFormat = SPSF_22kHz16BitMono 'Audio format to use, recommended settings: + '- for AT&T natural voices, use SPSF_32kHz16BitMono + '- for MS voices, use SPSF_22kHz16BitMono + +Set oSpVoice = CreateObject("SAPI.SpVoice") +If Err.Number <> 0 Then + WScript.Echo "Error - could not get SpVoice object. " & _ + "SAPI 5 not installed?" + Err.Clear + WScript.Quit 1 +End If + +Set oSpFS = CreateObject("SAPI.SpFileStream") +oSpFS.Format.Type = nAudioFormat +oSpFS.Open sOutputFile, SSFMCreateForWrite, False +Set oSpVoice.AudioOutputStream = oSpFS +oSpVoice.Speak sText +oSpFS.Close + +Set oSpFS = Nothing +Set oSpVoice = Nothing +Set oArgs = Nothing +WScript.Quit 0 Property changes on: tools/sapi5_voice.vbs ___________________________________________________________________ Name: svn:executable + *