FreeSWITCH ASR 电话机器人 VAD 打断 ASR集成 全功能开源代码

简介: 最近很多人都对FreeSWITCH和ASR对接比较感谢兴趣,我之前已经做了一个商业模块(商业模块请点击这里http://www.ddrj.com/callcenter/asr.html),考虑到大部分人,只是研究一下,并不准确购买商业模块,特意做一个开源项目给大家提供一个参考。

FreeSWITCH 语音识别 电话机器人 VAD 打断 ASR集成 全功能开源代码

gitcode地址: https://gitcode.net/iyaosan/FreeSWITCH-ASR
github地址: https://github.com/cdevelop/FreeSWITCH-ASR

最近很多人都对FreeSWITCH和ASR对接比较感谢兴趣,我之前已经做了一个商业模块(商业模块请点击这里http://www.ddrj.com/callcenter/asr.html),考虑到大部分人,只是研究一下,并不准确购买商业模块,特意做一个开源项目给大家提供一个参考。

mod_asr.cpp 第二个版本,使用了顶顶通VAD(支持噪音人声识别)本程序包的授权文件是10并发1个月的体验授权,仅用于体验和测试使用。

顶顶通VAD介绍

语音活动检测(Voice Activity Detection,VAD),就是检测是否有声音,常规的算法是通过声音音量和频谱特诊来判断是否有声音的,但是无法区分是噪音还是人声,在电话机器人中噪音打断噪音识别错误的关键词始终是一个痛点,机器学习算法可以通过大量噪音和人声数据训练出判别人声还是噪音的神经网络模型,VAD算法结合深度神经网络就可以彻底解决这个痛点了。 顶顶通的最新VAD算法已经集成了人声噪音判别引擎。

噪音识别的用处

  • 防止错误的意向判断

    噪音识别成关键词(是,恩,哦),导致把无意向客户判断成有意向客户,通过噪音识别模块,过滤掉噪音,可以大大提高机器人的意向判断准确度。

  • 防止噪音打断机器人说话
    大部分机器人只要开了打断功能,有一点噪音就给错误打断了,根本没法在生产环境开打断功能,有了噪音识别模块,就可以避免噪音打断了。
  • 机器人反应更灵敏

    噪音环境VAD无法判断用户说话结束,会导致用户说话完成了,机器人还一直傻等,有了噪音识别模块,可以让机器人反应更加灵敏。

  • 节约ASR费用

    在电话机器人业务中,大量的无效声音(各种噪音)调用ASR,浪费ASR调用费用,有了噪音人声判别功能,就可以噪音不再调用ASR接口,节约大量ASR费用。

噪音人声识别算法原理

基于20G的噪音声音文件和100G的正常人声的声音文件,使用tdnn(时延神经网络)和 lstm(长短期记忆网络)训练出噪音人声音判别模型。

噪音人声识别的准确率

准确率取决训练数据的准确性,目前的模型大于1秒声音准确率大于99.9%, 300毫秒以内短时人声和质量很差的人声,有少量识别成噪音的错误率,因为噪音库包含了大量的背景人声。

2023-2-28 第二版本代码提交

请在FreeSWITCH 1.8以上版本测试,低于1.8版本需要修改代码:switch_buffer.c没有switch_buffer_get_head_pointer这个函数。

  • 安装 libsad

    • 目录 copy到 /var目录,最后的路径是

      • 授权文件 /var/libsad/license.jon
      • 模型目录 /var/libsad/model/
      • lib文件 /var/libsad/libsad.so
    • mod_asr.so copy到 fs的mod目录
    • fs_cli 执行 load mod_asr 加载模块。
  • 申请ASR 本例子使用多方asr接口,注册地址 http://ai.hiszy.com/#/user/register?code=RK9RD7W 注册后可以联系ASR服务商微信 aohu6789 获取免费次数

    在fs安装目录/etc/vars.xml 配置asr key

      <X-PRE-PROCESS cmd="set" data="appKey=asr后台的appkey"></X-PRE-PROCESS>
      <X-PRE-PROCESS cmd="set" data="appSecret=asr后台的appSecret"></X-PRE-PROCESS>
      
  • 测试

    执行动作 play_and_asr 参数 playfilename waittime maxspeaktime allowbreak recordfilename
    语音识别结果存入通道变量asr_result,如果没有检测到声音设置为silence

    • playfilename 放音文件
    • waittime 等待说话时间,放音完成开始计算
    • maxspeaktime 最大说话时间
    • allowbreak 是否允许打断,检测到说话就停止放音
    • recordfilename 本次说话录音文件

      例子

       <action application="play_and_asr" data="welcome.wav  5000 10000 true /tmp/speak.wav"/>
       <action application="log" data="open=${asr_result}"/>
  • 编译

如果修改了代码编译方法是
g++ -shared -fPIC -o mod_asr.so mod_asr.cpp -I /usr/local/freeswitch/include/freeswitch -L /usr/local/freeswitch/lib -lfreeswitch -L /var/libsad/ -lsad -Wl,-rpath=/var/libsad

相关文章
|
2月前
|
人工智能 自然语言处理 安全
代码静态扫描工具集成与实践
代码静态扫描工具(Static Application Security Testing, SAST)是在不运行代码的情况下,通过分析源代码或二进制代码来发现潜在安全漏洞、代码缺陷和质量问题的工具
401 4
|
2月前
|
机器学习/深度学习 编解码 计算机视觉
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
114 2
|
2月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
1314 123
|
2月前
|
编解码 算法 自动驾驶
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
366 125
|
3月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
149 0
|
4月前
|
安全 API 数据安全/隐私保护
低代码革命:API无代码集成如何让企业“3天上线一个生态”?
在数字化转型浪潮中,API成为释放数据价值、提升企业效率的核心。本文详解API架构设计、安全实践与跨平台集成,为CTO提供效率提升指南,涵盖微服务、安全认证、协议选择、低代码集成及未来趋势,助力企业构建敏捷、安全、高效的数字生态。
|
6月前
|
测试技术 数据处理 调度
Dataphin功能Tips系列(57)「预览」vs「运行」:离线集成的神奇按钮
在数据开发过程中,使用Dataphin处理离线集成任务时,可能遇到数据过滤和字段计算组件配置正确性的验证问题。通过「预览」功能,可快速验证处理逻辑而不影响目标表;对于需要调度的任务,担心资源占用和耗时超出预期时,可使用「运行」功能进行全流程测试,评估实际耗时与资源消耗。「预览」适合逻辑验证,「运行」用于真实环境模拟,两者结合助力高效开发与调试。
177 5
|
2月前
|
机器学习/深度学习 数据采集 传感器
基于多尺度集成极限学习机回归(Matlab代码实现)
基于多尺度集成极限学习机回归(Matlab代码实现)
131 1
|
2月前
|
SQL 运维 关系型数据库
【产品升级】Dataphin V5.0版本发布:助力出海业务、增全量一体集成、异步调用API等更多功能等你发现
Dataphin是瓴羊推出的智能数据建设与治理平台,基于阿里巴巴内部实践,提供一站式数据建设与治理能力。V5.0版本研发新增支持Databricks作为离线计算引擎、支持MySQL数据库一键增全量同步、支持管理Hudi、Delta Lake表等;资产运营与消费持续提效,支持批量编辑目录名称及描述、Quick BI仪表板的上架管理等功能,增加资产可用性与盘点效率。
223 8
|
2月前
|
机器学习/深度学习 运维 算法
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)

热门文章

最新文章