吴伟贤のBlog

Feed Rss

FreeSWITCH 第五章(九) 轻量级的TTS–mod_flite

07.20.2013, freeswitch, by .

转自:http://www.8000hz.com/archives/mod_flite.html

轻量级的TTS–mod_flite

有些时候你需要一个快速, 简单和免费的TTS, 用于快速的测试.  在FreeSWITCH中你可以使用mod_flite来进行简单的TTS测试.
但在专业的, 生产环境中, 它就不适合了, 它满足快速,简单免费的标准.

Getting ready

有一个电话和一个文本编辑器, 就可开始mod_flite的测试了.  记住, 在Windows上默认mod_flite就已经编译了,但没有自动加载.
在Linux/Unix系统上, 你需要执行以下步骤.

How to do it…

如果你在windows上使用,就直接跳到第3步. 如果你在Linux/Unix平台, 那就需要以下步骤来开启mod_flite:

1. 打开源码目录下的 modules.conf , 取消#asr_tts/mod_flite 行的注释.
2. 保存退出. 安装:
make mod_flite-install
3. 如果你希望启动FreeSWITCH的时候就加载mod_flite, 在文件conf/autoload_configs/modules.conf.xml 中取消这一行注释.
<!– <load module=”mod_flite”/> –>
4. 保存退出. 进入到fs_cli中, 执行命令 load mod_flite.

此时mod_flite已经激活并且可以使用了. 现在我们添加一个用于测试的简单拨号方案:

1. 打开文件 conf/diaplan/default/01_Custom.xml 文件, 添加以下行:

<extension name="mod_flite example"> 
  <condition field="destination_number" expression="^(5008)"> 
    <action application="answer"/> 
    <action application="sleep" data="500"/>
    <action application="speak"
        data="flite|kal|Hello world. This is a FreeSWITCH test."/> 
  </condition> 
</extension>

2. 保存退出. 通过fs_cli执行reloadxml命令.

现在已经可以测试TTS了, 拨打号码5008, 听到了什么!

How it works…

FreeSWITCH有一个叫speak的拨号方案应用, 它可以用于访问任何安装的TTS引擎. 它接受管道分割的参数.注意拨号方案中的这一行:

<action application="speak"
        data="flite|kal|Hello world. This is a FreeSWITCH test."/>

第一个参数是TTS引擎, 第二个参数是指定声音.最后一个参数就是要读出的文字了.  sleep应用是可选的, 但在很多情况下接通后等待一下让媒体流连接也是很必要的. (如果总是会漏掉前几个字, 就是需要sleep一下).

|||||请不要把speak和say搞混了. say应用是方便”说” 日期, 时间, 数量, 金额等, 它是使用预先录好的声音.|||||||||

Flite 中有四种不同你声音你可以尝试: awb,kal,rms,slt.

其实我觉得都不好听.

参见
使用mod_tts_commandline的高级TTS

评论已关闭。