通过顶顶通呼叫中心中间件玩转FreeSWITCH媒体流

怎么获取FreeSWITCH的媒体流是一个老生常谈的问题了,最常见的方法media_bug,我在2019年就做的FreeSWITCH对接ASR开源的例子https://gitcode.net/iyaosan/FreeSWITCH-ASR用的就是media_bug,对接ASR常见的方法还有通过mod_mrcp模块对接mrcp的asrserver。

很多人需要直接获取原始的声音流,然后自己处理,其实FreeSWITCH也是支持的,只是知道的极少,FreeSWITCH原生支持 unicast 通过udp 把声音流推送到一个UDP端口,和播放网络的声音流。 fs实现的unicast,有一个缺陷如果启动了unicast 就没办法调用playback等放音函数了。

通过顶顶通呼叫中心中间件提供的 cti_unicast 则没这个缺点。可以不影响fs本身所有的功能情况下把媒体流推送到 远端udp端口,和播放网络声音。

cti_unicast 通过media_bug挂了2个回调SMBF_READ_STREAM和SMBF_WRITE_REPLACE,其中 SMBF_READ_STREAM,用来把媒体流推送到远端UDP端口,SMBF_READ_STREAM用来把远端发送来的声音混音到fs的放音。从而实现了完全不影响fs自身功能的前提下,实现推流和播放流。

顶顶通呼叫中心中间件还提供了tcp的推流和播放流函数 cti_audiao_stream。

这2个函数可以通过拨号方案启动,也可以通过 freeswitch esl 接口调用。

还有websocekt协议的播放流函数 wss://ip/tts?text=文字 可用于对接实时TTS。

顶顶通呼叫中心中间件ASR接口更高级的2个函数是

uuid_cti_start_detect_speech

用于质检 ,检测到说话实时推流给ASR,支持weboscket,mrcp等多种协议。用户说话停止自动停止推流。

cti_play_and_detect_speech

用于电话机器人,放音的时候检测用户说话,检测到说话实时推流给ASR,支持weboscket,mrcp等多种协议。支持多种打断模式,比如检测到人声打断,识别到多少文字打断。

详细可以看 http://www.ddrj.com/callcenter/asr.html

相关推荐
熊猫钓鱼>_>17 小时前
基于知识图谱的智能会议纪要系统:从语音识别到深度理解
人工智能·语音识别·知识图谱
Cool-浩17 小时前
【征文计划】Rokid 语音指令开发教程 【包含工程源码 和体验包APK】
unity·ar·语音识别·rokid·语音指令
若尘拂风20 小时前
centos 7.9 编译安装 freeswitch 1.10.12
服务器·udp·freeswitch·sip
渡我白衣1 天前
《未来的 AI 操作系统(四)——AgentOS 的内核设计:调度、记忆与自我反思机制》
人工智能·深度学习·机器学习·语言模型·数据挖掘·人机交互·语音识别
从孑开始2 天前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
涛涛讲AI2 天前
一段音频多段字幕,让音频能够流畅自然对应字幕 AI生成视频,扣子生成剪映视频草稿
人工智能·音视频·语音识别
WWZZ20252 天前
快速上手大模型:机器学习2(一元线性回归、代价函数、梯度下降法)
人工智能·算法·机器学习·计算机视觉·机器人·大模型·slam
beckyye2 天前
阿里云智能语音简单使用:语音识别
前端·语音识别·录音
资讯全球2 天前
2025机器人自动化打磨抛光设备及汽车零件打磨新技术10月应用解析
人工智能·机器人·自动化
文火冰糖的硅基工坊2 天前
[嵌入式系统-155]:新能源汽车内部的通信总线有哪些?
机器人·汽车·硬件架构