FreeSWITCH 语音识别 阿里云ASR 2.0接口 接口实现

FreeSWITCH 语音识别 阿里云ASR2.0

随着阿里云语音识别接口升级到智能语音交互2.0版接口,特开发了一个freeswitch模块,通过在freeswitch中加载语音识别模块,将通话的话音实时对接到阿里云ASR服务器,并接收语音识别接口,最后把识别结果通过ESL输出。有问题欢迎交流。

编译:

请先下载阿里云ASR2.0版 sdk。然后再NlsSdkCpp2.0/demo目录下进行编译,否则会出现找不到库的情况。

安装

  mod_asr.so 复制到到 FreeSWITCH mod 目录。 cp mod_asr.so /usr/local/freeswitch/mod/。
  librealTimeUnity.so FreeSWITCH lib 目录,或者系统lib目录。cp librealTimeUnity.so /usr/local/freeswitch/lib/
  libopus.so FreeSWITCH lib 目录,或者系统lib目录。cp libopus.so.0 /usr/local/freeswitch/lib/
  /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml 加入 <load module="mod_asr"/>

重启FreeSWITCH,或者fs_cli 里面执行 reload mod_asr

使用

申请阿里云的Access Key ID 和 Secret ,并根据您的需求如普通话识别或者粤语方言识别等来创建一个项目,然后获得项目AppKey,设置单声道或者双声道,配置静音间隔,识别服务器路径 等参数,将参数都申请并配置好即可通过这些参数加载mod_asr模块。

fs_cli 执行 originate user/1001 ‘start_asr:o7wh40soDVt146Bp IctccQ0wlpdVHjNLfwqFX4uQqqR1t LTAI4FhfQehv8tsiBRHUwoZ aleg 800 wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1,park’ inline,分机接起来开始说话,就可以看到识别结果输出了。 输出结果的日志等级是 notify console loglevel 5
dialplan中使用 测试的时候如果不执行其他APP,park超时会自动挂断,可以加入修改park超时时间。

开发

fs_cli 测试方式 ,执行 /event custom asr 订阅事件。
识别结果会通过esl输出(需要订阅 custom asr 事件)(阿里云返回的原始json数据)例子如下:

Event-Subclass: asr
Event-Name: CUSTOM
Core-UUID: b3d2bbb5-3b51-404e-b3f1-f1756d16f611
FreeSWITCH-Hostname: izm5e4vks3kjsyngl2iz9iz
FreeSWITCH-Switchname: izm5e4vks3kjsyngl2iz9iz
FreeSWITCH-IPv4: 172.31.64.60
FreeSWITCH-IPv6: %3A%3A1
Event-Date-Local: 2020-02-03%2014%3A52%3A56
Event-Date-GMT: Mon,%2003%20Feb%202020%2006%3A52%3A56%20GMT
Event-Date-Timestamp: 1580712776404160
Event-Calling-File: mod_asr.cpp
Event-Calling-Function: onSentenceEnd
Event-Calling-Line-Number: 268
Event-Sequence: 1182
Result: %
ASR-Response: %7B%22header%22%3A%7B%22namespace%22%3A%22SpeechTranscriber%22,%22name%22%3A%22SentenceEnd%22,%22status%22%3A20000000,%22message_id%22%3A%222ab7f171487845e79dd126e63402bc27%22,%22task_id%22%3A%2275948cecf49c42ee851d8ac8a7098e96%22,%22status_text%22%3A%22Gateway%3ASUCCESS%3ASuccess.%22%7D,%22payload%22%3A%7B%22index%22%3A2,%22time%22%3A8000,%22begin_time%22%3A6370,%22result%22%3A%22%
Channel: sofia/internal/1001%40223.104.236.17%3A9762
UUID: a78d4423-f937-497c-a0f4-bef1295aaecd
Answered: true
ASRLeg: aleg

ASR-Response:asr返回结果。
Channel:当前通道。主要使用这2个通道变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值