广告 《大道至简,给所有人看的编程课》 🔥

《FreeSWITCH案例大全》

5.1 让阿里云的TTS们挨个做自我介绍

wandoubaba / 2023-01-18

本文脚本需要以下先决条件,请参考:

5.1.1 编写脚本

在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()

5.1.2 呼入测试

我们这里只是在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,应该可以听到声音了。

5.1.3 呼出测试

如果不想做拨号计划,可以让FreeSWITCH向分机发起外呼,分机接听后同样会听到声音。

在fs_cli控制台执行命令:

freeswitch@debian> bgapi originate {ignore_early_media=true}user/1001 &lua(alitts.lua)

至此,你的FreeSWITCH可以“说“了,你可以根据实际业务场景和结合自己的创意,玩出更多花样。



本书版权所有 © 杜金房及各位贡献者 2016-2023,仅供在线阅读,谢绝一切形式转载。 本书还在写作中,持续更新。 如果你也想写上几句,欢迎加入我们。 | 返回首页 |