FreeSWITCH给Say模块增加中文语音
本文更新于2022-04-04,使用FreeSWITCH 1.10.7。
以下示例,假定源代码目录为/usr/src/freeswitch,安装目录为/usr/local/freeswitch。
-
安装中文Say模块(包括zh和zh_CN的Say接口):
-
进入源代码目录:
cd /usr/src/freeswitch
-
修改modules.conf,将模块所在行的注释符去掉,即将
#say/mod_say_zh
修改为:say/mod_say_zh
-
编译安装:
./bootstrap.sh -j ./configure make mod_say_zh make mod_say_zh-install
-
查看模块是否已安装,即安装目录下模块文件是否存在:
ls -l /usr/local/freeswitch/mod/ | grep mod_say_zh
-
将模块设置为服务器启动时自动加载:
修改/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml,将模块所在行的
<!--
和-->
注释符去掉,即将<!-- <load module="mod_say_zh"/> -->
修改为:<load module="mod_say_zh"/>
-
重启FreeSWITCH或如下手动加载模块:
/usr/local/freeswitch/bin/fs_cli
执行:
load mod_say_zh
-
-
安装中文语音提示音文件:
cd /usr/src/freeswitch make sounds-zh-cn-sinmei-8000 make sounds-zh-cn-sinmei-8000-install
可以使用查看提示音文件是否存在:
ls -l /usr/local/freeswitch/sounds/zh/cn/sinmei
-
创建中文语言配置:
cd /usr/local/freeswitch/conf/lang mkdir zh cd zh touch zh.xml
修改zh.xml的内容为:
<include> <language name="zh" say-module="zh" sound-prefix="$${sounds_dir}/zh/cn/sinmei" tts-engine="" tts-voice=""> <phrases> <macros> </macros> </phrases> </language> </include>
-
设置FreeSWITCH加载中文语言配置:
在/usr/local/freeswitch/conf/freeswitch.xml中
<section name="languages" description="Language Management">
这一节点内增加:<X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>
-
重新加载配置文件:
/usr/local/freeswitch/bin/fs_cli
执行:
reloadxml
可以使用以下方式验证:
-
修改Dialplan:
在/usr/local/freeswitch/conf/dialplan/default.xml的
<context name="default">
这一节点内增加:<extension name="testing"> <condition field="destination_number" expression="^1234$"> <action application="answer"/> <action application="say" data="zh NUMBER ITERATED 1234567"/> </condition> </extension>
-
重新加载配置文件:
/usr/local/freeswitch/bin/fs_cli
执行:
reloadxml
-
拨打1234,试验是否能听到“一二三四五六七”。