[Freeswitch-users] Error playing TTS using flite

Jason Moran jmoran at secureachsystems.com
Tue May 24 18:55:31 MSD 2011


Yungwei, I *think* sayPhrase is not supported by flite - only by other
TTS engines. 
Try calling it in this javascript format:
session.speak(ttsLib,ttsVoice,text);

Jason Moran

-----Original Message-----
From: Yungwei Chen [mailto:yungwei at resolvity.com] 
Sent: Monday, May 23, 2011 7:46 PM
To: freeswitch-users at lists.freeswitch.org
Subject: [Freeswitch-users] Error playing TTS using flite

Hi,

I am testing tts using flite against freeswitch (snapshot downloaded
last week) on CentOS 5.
I'm getting "Invalid speech module [cepstral]!" and "Invalid TTS module"
errors when dialing 9911 from my SIP client.
What am I missing here? Thanks.

...
Dialplan: sofia/internal/1000 at 192.168.216.18 parsing [default->test1]
continue=false
Dialplan: sofia/internal/1000 at 192.168.216.18 Regex (PASS) [test1]
destination_number(9911) =~ /^9911$/ break=on-false
Dialplan: sofia/internal/1000 at 192.168.216.18 Action
javascript(dtmf_test.js)  --> Freeswitch figured out dtmf_test.js is the
action to perform
2011-05-23 18:13:09.859007 [DEBUG] switch_core_state_machine.c:119
(sofia/internal/1000 at 192.168.216.18) State Change CS_ROUTING ->
CS_EXECUTE
2011-05-23 18:13:09.859007 [DEBUG] switch_core_session.c:1114 Send
signal sofia/internal/1000 at 192.168.216.18 [BREAK]
2011-05-23 18:13:09.859007 [DEBUG] switch_core_state_machine.c:364
(sofia/internal/1000 at 192.168.216.18) State ROUTING going to sleep
2011-05-23 18:13:09.859007 [DEBUG] switch_core_state_machine.c:325
(sofia/internal/1000 at 192.168.216.18) Running State Change CS_EXECUTE
2011-05-23 18:13:09.859007 [DEBUG] switch_core_state_machine.c:371
(sofia/internal/1000 at 192.168.216.18) State EXECUTE
2011-05-23 18:13:09.859007 [DEBUG] mod_sofia.c:240
sofia/internal/1000 at 192.168.216.18 SOFIA EXECUTE
2011-05-23 18:13:09.859007 [DEBUG] switch_core_state_machine.c:157
sofia/internal/1000 at 192.168.216.18 Standard EXECUTE
EXECUTE sofia/internal/1000 at 192.168.216.18 set(open=true)
2011-05-23 18:13:09.859007 [DEBUG] mod_dptools.c:1060
sofia/internal/1000 at 192.168.216.18 SET [open]=[true]
EXECUTE sofia/internal/1000 at 192.168.216.18
hash(insert/192.168.216.18-spymap/1000/399178b8-8592-11e0-ae8d-e9a6940f4
ae1)
EXECUTE sofia/internal/1000 at 192.168.216.18
hash(insert/192.168.216.18-last_dial/1000/9911)
EXECUTE sofia/internal/1000 at 192.168.216.18
hash(insert/192.168.216.18-last_dial/global/399178b8-8592-11e0-ae8d-e9a6
940f4ae1)
EXECUTE sofia/internal/1000 at 192.168.216.18 set(RFC2822_DATE=Mon, 23 May
2011 18:13:09 -0500)
2011-05-23 18:13:09.859007 [DEBUG] mod_dptools.c:1060
sofia/internal/1000 at 192.168.216.18 SET [RFC2822_DATE]=[Mon, 23 May 2011
18:13:09 -0500]
EXECUTE sofia/internal/1000 at 192.168.216.18 javascript(dtmf_test.js)
2011-05-23 18:13:09.879013 [DEBUG] sofia_glue.c:3034 AUDIO RTP
[sofia/internal/1000 at 192.168.216.18] 192.168.216.18 port 31886 ->
192.168.216.9 port 5062 codec: 8 ms: 20
2011-05-23 18:13:09.879013 [DEBUG] switch_rtp.c:1636 Starting timer
[soft] 160 bytes per 20ms
2011-05-23 18:13:09.879013 [DEBUG] sofia_glue.c:3296 Set 2833 dtmf send
payload to 101
2011-05-23 18:13:09.879013 [DEBUG] sofia_glue.c:3301 Set 2833 dtmf
receive payload to 101
2011-05-23 18:13:09.879013 [DEBUG] mod_sofia.c:681 Local SDP
sofia/internal/1000 at 192.168.216.18:
v=0
o=FreeSWITCH 1306160503 1306160504 IN IP4 192.168.216.18
s=FreeSWITCH
c=IN IP4 192.168.216.18
t=0 0
m=audio 31886 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv

2011-05-23 18:13:09.879013 [DEBUG] switch_core_session.c:707 Send signal
sofia/internal/1000 at 192.168.216.18 [BREAK]
2011-05-23 18:13:09.879013 [DEBUG] switch_channel.c:2859
(sofia/internal/1000 at 192.168.216.18) Callstate Change RINGING -> ACTIVE
2011-05-23 18:13:09.879013 [NOTICE] mod_spidermonkey.c:2068 Channel
[sofia/internal/1000 at 192.168.216.18] has been answered
2011-05-23 18:13:09.879013 [DEBUG] dtmf_test.js:34 sayivrmenu:
menu=[mainmenu] validdigits=[0123#]
2011-05-23 18:13:09.879013 [DEBUG] sofia.c:4770 Channel
sofia/internal/1000 at 192.168.216.18 entering state [completed][200]
2011-05-23 18:13:09.879013 [DEBUG] switch_ivr_play_say.c:244 Handle
speak-text:[Press 0 for the Operator.] (en:en)
2011-05-23 18:13:09.879013 [ERR] switch_core_speech.c:61 Invalid speech
module [cepstral]! -->cepstral is never installed. Why did Freeswitch
try to use cepstral?
2011-05-23 18:13:09.879013 [ERR] switch_ivr_play_say.c:2361 Invalid TTS
module!
2011-05-23 18:13:09.879013 [DEBUG] sofia.c:4770 Channel
sofia/internal/1000 at 192.168.216.18 entering state [ready][200]
2011-05-23 18:13:09.939014 [DEBUG] switch_rtp.c:3104 Correct ip/port
confirmed.
2011-05-23 18:13:15.979391 [DEBUG] switch_ivr_play_say.c:244 Handle
speak-text:[Press 0 for the Operator.] (en:en)
2011-05-23 18:13:15.979391 [ERR] switch_core_speech.c:61 Invalid speech
module [cepstral]!
2011-05-23 18:13:15.979391 [ERR] switch_ivr_play_say.c:2361 Invalid TTS
module!
2011-05-23 18:13:22.079772 [DEBUG] switch_ivr_play_say.c:244 Handle
speak-text:[Press 0 for the Operator.] (en:en)
2011-05-23 18:13:22.079772 [ERR] switch_core_speech.c:61 Invalid speech
module [cepstral]!
2011-05-23 18:13:22.079772 [ERR] switch_ivr_play_say.c:2361 Invalid TTS
module!

During installatio, I uncommented the following in modules.conf so
mod_flite is installed. mod_cepstral remains commented.
asr_tts/mod_unimrcp
asr_tts/mod_flite
asr_tts/mod_pocketsphinx

After installation, I uncommented mod_flite in
/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
    <!-- ASR /TTS -->
    <load module="mod_flite"/>
    <!-- <load module="mod_pocketsphinx"/> -->
    <!-- <load module="mod_cepstral"/> -->
    <!-- <load module="mod_tts_commandline"/> -->
    <!-- <load module="mod_rss"/> -->

Here's my dial-plan
  <extension name="test1">
        <condition field="destination_number" expression="^9911$">
                <action application="set" data="tts_engine=flite"/>
                <action application="set" data="tts_voice=kal"/>
                <action application="javascript" data="dtmf_test.js" />
        </condition>
  </extension>

dtmf_test.js is copied from
http://wiki.freeswitch.org/wiki/Examples_ivrmenu_js to
/usr/local/freeswitch/scripts folder.
The phrase macro is also copied from that link to
/usr/local/freeswitch/conf/lang/en/demo folder.







More information about the FreeSWITCH-users mailing list