VoiceGuide IVR Software Main Page
Jump to content

TTS Engines / log file binary or text?

Recommended Posts

I am trying to figure out what TTS engines are installed.  The doc says to look in the ktTts trace log file.  That file seems to be binary.  Should it be readable as text?

 

The list of TTS engine names that are installed on the system can be obtained from the VoiceGuide ktTts trace log file. At the beginning of the trace file there will be a section that lists all SAPI engines installed on the system. That section looks something like this:

124244.953 2812 tts voice 0 : Microsoft Mary
124244.953 2812 tts voice 1 : Microsoft Mike
124244.953 2812 tts voice 2 : Microsoft Sam
124244.953 2812 tts voice 3 : Cepstral Allison-8kHz
124244.953 2812 tts voice 4 : Sample TTS Voice

The name of the engine is listed after the "tts voice X : " tag.
The example listing above shows that the following TTS engines are installed on the system:

Microsoft Mary
Microsoft Mike
Microsoft Sam
Cepstral Allison-8kHz
Sample TTS Voice
Read more at: https://www.voiceguide.com/vghelp/source/html/config_tts.htm

Share this post


Link to post

Can you please post the latest ktTts trace file from your system.

The file should be in readable text format, like other VoiceGuide traces. Attaching a sample.

1022_ktTts.txt

Share this post


Link to post

VoiceGuide log files are not ASCII format files.

They are in "UTF8" encoding by default.

We can read the ktTts trace that you posted. Posting beginning of it below.

You can change log file encoding in VG.INI and restart VoiceGuide service.

see this entry in VG.INI file:
 

[Log]

;trace file encoding options are: BigEndianUnicode, Default, Unicode, UTF32, UTF7, UTF8, ASCII
TraceLogFiles_Encoding=UTF8

 

below is extract from ktTts from your system. Used Notepad++ on Windows to view. Windows' Notepad should also work.

071329.390  6516        ------------------------------------------------------------------------------
071329.390  6516        ktTtsSapi v7.6.13
071329.390  6516        log [C:\Program Files (x86)\VoiceGuide\log\] level=10 options []
071329.390  6516        ------------------------------------------------------------------------------
071329.390  6516        SpEnumTokens call
071329.452  6516        GetCount call
071329.452  6516        GetCount returned ulNumTokens=2
071329.452  6516        tts voice 0 : Microsoft Anna - English (United States)
071329.452  6516                      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK
071329.452  6516        tts voice 1 : Cepstral Callie
071329.452  6516                      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\Cepstral_Callie
071329.452  6516        default tts voice set to [Cepstral Callie] => 0
071329.452  6516        cepstral tts - only SAPI mode supported in this version.
071329.452  6516        Create tts thread. threadnumber= 1, handle= 2236 threadid= 1312
071329.452  6516        ThreadPriority -1
071329.452  1312          1   ProcessTTSJob thread created
071329.655  1312          1   cpSpStream=0CDC7238
072322.276  2180  fn    TtsToWavFile (iLineId=2, zsTextXml=Welcome to the City of Columbia.  Please enter your customer number followed by the pound sign.
 (bytes=196), zsFname=C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav, wcsOptionsXML=<tts_save_filename>C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav</tts_save_filename><TTS_SpStreamFormat>ulaw_8</TTS_SpStreamFormat><TTS_SAPI_Engine></TTS_SAPI_Engine>)
072322.276  2180        TtsToWavFile wrote all data to task idx 1
072322.276  2180        TtsToWavFile lPreviousSemaphoreValue 0 (max 0 owr 0)
072322.276  1312          1   WaitForNewTask returned. dwWfsoRetVal=0
072322.276  1312          1   task to process : 1
072322.276  1312  tts     1   task 1 setup output file
072322.276  1312          1   task 1 file exists C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav
072322.276  1312          1   task 1 deleted existing file.
072322.276  1312          1   task 1 start calling SAPI functions
072322.276  1312          1   task 1 xml_options: TTS_SpStreamFormat=[ulaw_8] TTS_SAPI_Engine=[]
072322.276  1312          1   task 1 AssignFormat(ulaw_8->49) => 0
072322.277  1312          1   task 1 BindToFile C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav => 0
072322.277  1312          1   task 1 (defaultSetAtInit) SetVoice 0CDC145C => 0
072322.277  1312          1   task 1 cpTTSVoice=0CDC2CB0, cpSpStream=0CDC7238
072322.732  1312          1   task 1 SetOutput 0CDC7238 => 0
072322.732  1312          1   task 1 speak returned. now waiting
072322.999  1312          1   task 1 generation completed
072323.003  1312  r       1   task 1 speak to file closed
072334.456  2180  fn    TtsToWavFile (iLineId=2, zsTextXml=Enter your premise number followed by the pound sign.
 (bytes=112), zsFname=C:\Program Files (x86)\VoiceGuide\temp\tts_2_2.wav, wcsOptionsXML=<tts_save_filename>C:\Program Files (x86)\VoiceGuide\temp\tts_2_2.wav</tts_save_filename><TTS_SpStreamFormat>ulaw_8</TTS_SpStreamFormat><TTS_SAPI_Engine></TTS_SAPI_Engine>)
072334.456  2180        TtsToWavFile wrote all data to task idx 2
072334.456  2180        TtsToWavFile lPreviousSemaphoreValue 0 (max 0 owr 0)
072334.456  1312          1   WaitForNewTask returned. dwWfsoRetVal=0
072334.456  1312          1   task to process : 2
072334.456  1312  tts     1   task 2 setup output file
072334.456  1312          1   task 2 file exists C:\Program Files (x86)\VoiceGuide\temp\tts_2_2.wav
072334.456  1312          1   task 2 deleted existing file.
072334.456  1312          1   task 2 start calling SAPI functions
072334.456  1312          1   task 2 xml_options: TTS_SpStreamFormat=[ulaw_8] TTS_SAPI_Engine=[]
072334.456  1312          1   task 2 AssignFormat(ulaw_8->49) => 0
072334.456  1312          1   task 2 BindToFile C:\Program Files (x86)\VoiceGuide\temp\tts_2_2.wav => 0
072334.456  1312          1   task 2 (defaultSetAtInit) SetVoice 0CDC145C => 0
072334.456  1312          1   task 2 cpTTSVoice=0CDC2CB0, cpSpStream=0CDC7238
072334.457  1312          1   task 2 SetOutput 0CDC7238 => 0
072334.457  1312          1   task 2 speak returned. now waiting
072334.589  1312          1   task 2 generation completed
072334.593  1312  r       1   task 2 speak to file closed
072338.751  2180  fn    TtsToWavFile (iLineId=2, zsTextXml=Please enter your pin number.
 (bytes=64), zsFname=C:\Program Files (x86)\VoiceGuide\temp\tts_2_3.wav, wcsOptionsXML=<tts_save_filename>C:\Program Files (x86)\VoiceGuide\temp\tts_2_3.wav</tts_save_filename><TTS_SpStreamFormat>ulaw_8</TTS_SpStreamFormat><TTS_SAPI_Engine></TTS_SAPI_Engine>)
072338.751  2180        TtsToWavFile wrote all data to task idx 3
072338.751  2180        TtsToWavFile lPreviousSemaphoreValue 0 (max 0 owr 0)
072338.751  1312          1   WaitForNewTask returned. dwWfsoRetVal=0
072338.751  1312          1   task to process : 3
072338.751  1312  tts     1   task 3 setup output file
072338.752  1312          1   task 3 file exists C:\Program Files (x86)\VoiceGuide\temp\tts_2_3.wav
072338.752  1312          1   task 3 deleted existing file.
072338.752  1312          1   task 3 start calling SAPI functions
072338.752  1312          1   task 3 xml_options: TTS_SpStreamFormat=[ulaw_8] TTS_SAPI_Engine=[]
072338.752  1312          1   task 3 AssignFormat(ulaw_8->49) => 0
072338.752  1312          1   task 3 BindToFile C:\Program Files (x86)\VoiceGuide\temp\tts_2_3.wav => 0
072338.752  1312          1   task 3 (defaultSetAtInit) SetVoice 0CDC145C => 0
072338.752  1312          1   task 3 cpTTSVoice=0CDC2CB0, cpSpStream=0CDC7238
072338.752  1312          1   task 3 SetOutput 0CDC7238 => 0
072338.753  1312          1   task 3 speak returned. now waiting
072338.835  1312          1   task 3 generation completed
072338.838  1312  r       1   task 3 speak to file closed

...

072453.290  2180  fn    TtsToWavFile (iLineId=2, zsTextXml=Welcome to the City of Columbia.  Please enter your customer number followed by the pound sign.
 (bytes=196), zsFname=C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav, wcsOptionsXML=<tts_save_filename>C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav</tts_save_filename><TTS_SpStreamFormat>ulaw_8</TTS_SpStreamFormat><TTS_SAPI_Engine></TTS_SAPI_Engine>)
072453.290  2180        TtsToWavFile wrote all data to task idx 8
072453.290  2180        TtsToWavFile lPreviousSemaphoreValue 0 (max 0 owr 0)
072453.290  1312          1   WaitForNewTask returned. dwWfsoRetVal=0
072453.290  1312          1   task to process : 8
072453.290  1312  tts     1   task 8 setup output file
072453.290  1312          1   task 8 file exists C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav
072453.290  1312          1   task 8 deleted existing file.
072453.290  1312          1   task 8 start calling SAPI functions
072453.290  1312          1   task 8 xml_options: TTS_SpStreamFormat=[ulaw_8] TTS_SAPI_Engine=[]
072453.290  1312          1   task 8 AssignFormat(ulaw_8->49) => 0
072453.291  1312          1   task 8 BindToFile C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav => 0
072453.291  1312          1   task 8 (defaultSetAtInit) SetVoice 0CDC145C => 0
072453.291  1312          1   task 8 cpTTSVoice=0CDC2CB0, cpSpStream=0CDC7238
072453.291  1312          1   task 8 SetOutput 0CDC7238 => 0
072453.293  1312          1   task 8 speak returned. now waiting
072453.513  1312          1   task 8 generation completed
072453.517  1312  r       1   task 8 speak to file closed

 

Share this post


Link to post

Looks like you have configured TTS system to use

Cepstral Callie

and looks like its working.

The text seems to be static, so you could just copy this .WAV file from VoiceGuide's \temp\ subdirectory:

C:\Program Files (x86)\VoiceGuide\temp\tts_2_1.wav

copy above to a new place and the set the module to just play that .WAV directly.

Looks like there are other modules playing static TTS as well, so those modules can be converted over to just using .WAV also.

 

Traces show that the TTS generation only introduces a delay of between 0.1 - 0.2 second on average (for the TTS that is done here) but playing .WAV directly will reduce CPU load, especially if many channels are trying to do TTS at same time, so you will get overall lower CPU load if any static sound files are played from a from WAV instead of TTS generated each time.

Share this post


Link to post

OK thanks.  That seemed to work.  I always use VIM to edit text files and didn't realize that it wasn't reading the encoding properly.  Notepad and Wordpad work fine.  I also changed the encoding in the vg.ini and see if that makes it even easier.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×