Freeswitch 对接 unimrcpserver ASR调用

本文详细介绍了如何在Centos6.9和RedHat6.4环境下,将freeswitch与unimrcp进行对接。包括配置unimrcp服务器、配置freeswitch、创建语法文件及路由配置等步骤,确保语音识别和处理功能的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

freeswitch 部署的系统版本:Centos6.9 x64
unimrcp 部署版本:Red Hat6.4 x86(32)

**

对接前提: freeswitch 已经编译并且安装了mod_unimrcp 模块 unimrcp 已经部署好

**

如果以上的两个都没问题我们就可以对接了

一 :进行配置文件
先配置unimrcp服务器
在这里插入图片描述
如果顺利安装好平台,会在该路径下可以找到配置文件
vim unimrcpserver.xml
配置ip,如果不配置会默认使用本地127

在这里插入图片描述
配置sip协议的ip和port

在这里插入图片描述
配置mrcp v2 协议
改ip 端口默认就可以,你想改也可以 但是注意不要冲突

在这里插入图片描述
配置rtp
在这里插入图片描述

启动unimrcpserver
/usr/local/unimrcp/bin/unimrcpserver 启动后即可按到加载的配置文件信息,注意这里是控制台启动,后台也可以,图个方便
在这里插入图片描述
二:配置freeswitch
先用fs_cli 连接fs 输入show module

在这里插入图片描述
查看模块是否已经被加载,(因为fs支持热更新)我们先看模块能不能被成功加载如果能再进行配置
如果不能成功被加载,请看fs的日志
/usr/local/freeswitch-1.6.20/log ,为何不能被加载,或者在控制台看启动日志 上面会写
不想看太长的日志?你也可以直接在控制台输入load mod_unimrcp 就会出现模块的信息
顺利加载完是这样的,有个警告不用管
在这里插入图片描述
接下来就是配置 mod_nuimrcp 模块
进入fs 安装的目录下的etc文件夹
默认是/usr/local/freeswitch/etc 下
进入mrcp_profiles 目录

在这里插入图片描述
该目录有很多xml文件是各种服务器的配置文件具体请参考官方文档,但是我们现在只是测试mrcpv2协议,所以我们可以把所有的xml文件 放到另个文件夹里,避免fs 加载进去,只加载我们想要的那个配置文件,当然,也可以不用管,但这里测试,我还是喜欢按我自己的方式来
mkdir back //新创建一个文件夹
mv ./*.xml back
然后创建一个mrcp2的配置文件
vi unimrcpserver-mrcp-v2.xml
打开编辑
主要修改上面的几个地方

cd 到fs的安装目录 进入 grammar 文件夹,如果没有请自行创建
cd /usr/local/freeswitch/grammar

vi hello.gram 创建一个新的语法,给语音识别时用 必须以.gram 结尾!!!
写入
在这里插入图片描述
可以直接下载我提供的语法文件,拷贝到该目录下即可,如果对接unimrcp的话
这个语法文件其实是可以为空的

然后
cd 到路由文件夹,配置路由
在这里插入图片描述
vi default.xml
添加
在这里插入图片描述
或者:delect_speech data=“unimrcp:unimrcpserver-mrcp2-203 hello hello”
这个调用更方便,可以随意指定配置文件
或者:detect_speech data=“unimrcp {Speed-Vs-Accuracy=0.80,start-input-timers=false,Sensitivity-Level=0.85}hello”
这个不能指定配置文件,但可以指定参数

这里特别注意:detect_speech ,
如果这里不搞好,会出现无法互通的情况,一定要注意,另外也有可能是端口ip或
防火墙的原因,导致无法互通

在这里插入图片描述
因为是在本地fs 默认的目录下加载语法文件,所以不能在填写语法文件名和路径时加上
.gram,这是官方文档给的说明,或者更简单也可以直接填语法文件的名字,不要带后缀,
前提是语法文件在fs的目录下
在这里插入图片描述
,否则会提示语法加载失败
在这里插入图片描述
配置完成开始测试!!!
先在fs注册一个用户
在这里插入图片描述
点击拨打 0001
然后看在控制台看freeswitch 的日志,就可以很清楚地看到过程
在这里插入图片描述
语法加载
在这里插入图片描述
接收成功
在这里插入图片描述
识别中在这里插入图片描述
识别完成
在这里插入图片描述

最后附上官方文档

mod_unimrcp:

detect_speeh:

笔记有什么不对的地方 请联系我
我邮箱:c_wujinbiao@163.com

<think>好的,我需要帮助用户解决如何将FreeSWITCH与腾讯云语音识别API集成的问题。用户提到了参考站内引用,但提供的链接是关于百度Mrcp Server和FreeSWITCH的mod_unimrcp对接的内容。这可能涉及到MRCP协议的使用,但用户现在想转向腾讯云的服务,可能需要不同的方法。 首先,我应该考虑FreeSWITCH集成外部语音识别服务的常见方式。通常,可以通过mod_unimrcp模块与MRCP服务器通信,但腾讯云可能不直接支持MRCP。另一种方法是使用HTTPS API,通过编写自定义脚本来处理语音流并调用腾讯云的API。 接下来,我需要确认腾讯云语音识别API的支持情况。腾讯云提供了实时语音识别和一句话识别等服务,支持WebSocket和HTTP协议。因此,可能需要使用FreeSWITCH的mod_curl或mod_event_socket等模块,将语音流发送到腾讯云的API端点。 用户需要示例和文档,因此我应该提供一个基本的步骤指南,包括如何配置FreeSWITCH、如何编写Lua或ESL脚本处理媒体流,以及如何调用腾讯云的API。同时,需要提醒用户注意鉴权信息的处理,如SecretId和SecretKey,以及如何生成签名。 可能遇到的问题包括语音流的格式转换(例如从音频/x-L16到腾讯云支持的格式),以及实时流式传输的处理。需要建议用户使用合适的编解码器,并可能使用中间转码工具,或者利用腾讯云API的参数来指定音频格式。 最后,生成相关问题,帮助用户进一步了解集成的其他方面,比如鉴权、错误处理、性能优化等。</think>以下是FreeSWITCH集成腾讯云语音识别服务的实现步骤: ### 一、准备工作 1. 在腾讯云控制台开通「语音识别」服务 2. 创建API密钥:获取$SecretId和$SecretKey[^1] 3. 确认语音识别接口地址,例如实时语音识别接口: $$https://asr.tencentcloudapi.com$$ ### 二、FreeSWITCH配置 ```xml <!-- 在conf/autoload_configs/modules.conf.xml中加载模块 --> <load module="mod_lua"/> <load module="mod_curl"/> <load module="mod_av"/> <!-- 创建自定义脚本目录 --> <directory name="/usr/local/freeswitch/scripts/tencent_asr"> ``` ### 三、语音识别脚本示例(Lua) ```lua -- tencent_asr.lua local function send_to_tencent(payload) local url = "https://asr.tencentcloudapi.com" local headers = { ["Content-Type"] = "application/json", ["Authorization"] = "TC3-HMAC-SHA256 "..generate_signature() } local response = curl.post(url, payload, {headers=headers}) return response end local function generate_signature() -- 实现腾讯云签名算法(需补充完整) return "SignatureString" end api = freeswitch.API() api:execute("record_session", "start /tmp/recording.wav") ``` ### 四、呼叫流程集成 ```xml <!-- 在dialplan中添加处理逻辑 --> <extension name="tencent_asr"> <condition field="destination_number" expression="^1234$"> <action application="lua" data="tencent_asr.lua"/> </condition> </extension> ``` ### 关键参数说明 | 参数 | 说明 | |---------------|-----------------------------| | EngineModelType | 引擎模型(16k_zh_video) | | VoiceFormat | 音频格式(wav/pcm) | | FilterDirty | 脏词过滤开关 | ### 注意事项 1. 音频格式需转换为腾讯云支持的格式,建议使用: $$audio/x-L16;rate=16000$$ 2. 实时语音识别需处理分片传输,建议每200ms发送一次数据 3. 鉴权签名需使用TC3-HMAC-SHA256算法[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值