wandoubaba / 2023-01-18
本文脚本需要以下先决条件,请参考:
在FreeSWITCH安装目录的
scripts
目录下创建脚本文件,假设文件名为
alitts.lua
,脚本内容:
session:answer()
session:sleep(100)
-- 可以根据个人喜好多填几个
speakers = {
{"zhiyan_emo", "知燕"},
{"zhibei_emo", "知贝"},
{"zhitian_emo", "知甜"},
{"xiaoyun", "小云"},
{"ruoxi", "若兮"},
{"siqi", "思琪"},
{"sijia", "思佳"},
{"aiqi", "艾琪"},
{"aixia", "艾夏"},
{"aiyu", "艾雨"},
}
for i,v in ipairs(speakers) do
session:set_tts_params('unimrcp:aliyun-mrcpserver', v[1])
text = '你好,我是机器人' .. v[2] .. ',很高兴认识你,再见。'
session:speak(text)
session:sleep(100)
end
session:hangup()
我们这里只是在internal中做一个演示,所以就把拨号计划做到
conf/dialplan/default.xml
中,你可以根据自己的情况酌情配置。
<!-- 一个简单通过mrcp实现speak的脚本,用于证明mrcp模块与服务都正常 -->
extension name="alitts">
<condition field="destination_number" expression="^(002)$">
<action application="lua" data="alitts.lua"/>
<condition>
</extension> </
好了,在这台FreeSWITCH上注册一个分机,比如
1001
,然后用这个分机直接拨号
002
,应该可以听到声音了。
如果不想做拨号计划,可以让FreeSWITCH向分机发起外呼,分机接听后同样会听到声音。
在fs_cli控制台执行命令:
freeswitch@debian> bgapi originate {ignore_early_media=true}user/1001 &lua(alitts.lua)
至此,你的FreeSWITCH可以“说“了,你可以根据实际业务场景和结合自己的创意,玩出更多花样。