VAD打断方案
admin
2024-02-04 21:28:28

什么是打断

打断,就是机器人说话的时候,用户没等机器人说完,就开始说话。一般做法是检测到用户声音持续100-200ms就停止机器人说话,这样存在一个弊端,就是如果噪音很大的环境(本公司2022年开发的噪音人声识别算法直接集成VAD已经彻底解决噪音打断问题),或者用户身边有人说话,会导致错误的打断,本文主要介绍几个方法,来避免这个问题。

防干扰等级(只start_vad支持)

start_vad函数有一个参数 filter_level 防止干扰等级。0-1.0之间,建议 0.3。 这个参数的原理是可以通过计算用户历史说话音量,如果当前音量大于历史说话音量*filter_level,才认为是有效声音。因为周围的人说话传入话筒的音量比较小,这个方法可以有效解决身边人说话导致打断。
使用噪音人声识别算法可以很好的解决噪音打断 0.6:一句话结束判断声音是否是噪音,通过asrprogress事件的noise标识。 0.7: 噪音的时候不掉用ASR。 0.8:VAD算法集成噪音和人声识别。

动态最小声音时间(只vad支持)

vad函数有这样一个参数 min_speak_ms [数字] 可选参数 默认100ms 最小的声音时间 单位毫秒,默认值 100ms。

这个参数的含义是,设置一个最小的声音时间,只有声音持续时间超过这个值才认为是有效声音,触发打断和提交到ASR服务器识别。

为什么我选择了这个100ms作为这个默认值呢,因为电话接通后,很多人习惯说一声”喂”,或者”您好”, “喂”的持续时间一般是100-200s,”您好”的持续时间是 200-300ms.

开发业务流程的时候,可以动态设置这个值,来避免无效声音打断,比如电话接通后的第一个声音,设置100ms,后续声音设置,200-300ms。就可以非常有效避免错误打断。

关键词打断

2.1版本已经实现,用户停顿一下就提交ASR识别,把识别结果发送给业务程序,就是让业务程序控制是否需要打断。

自动打断

VAD模块检测到用户声音后,暂停播放机器人说话声,同时开始提交声音流到ASR服务器识别,如果ASR服务器返回的不是有效语句, 恢复机器人说话。

相关内容

热门资讯

从哈尔滨到长白山闺蜜5天4晚天... 从哈尔滨到长白山闺蜜5天4晚天池+延吉边境:拍照打卡真实体验 一、出发前的纠结:比老板还难搞的攻略,...
搭上低空经济、AI文旅?两连板... 来源:e公司 桂林旅游(000978)回应市场热点。 9月8日,桂林旅游再度涨停,斩获2连板。当天晚...
八达岭长城国庆怎么去最省心?坐... 八达岭长城是来北京必去的景点之一,尤其是第一次来北京的游客。但国庆期间去八达岭,最大的挑战不是爬长城...
秋日睦邻游园会热闹开锣!居民重... (来源:上观新闻) 近日,殷行街道包头路社区睦邻活动室里,举办了一场秋日睦邻趣味游园会,辖区居民、户...
带父母去长白山怎么玩?3天2晚... 带父母去长白山怎么玩?3天2晚天池攻略,有些坑帮你们踩过了 一句话总结:这次带父母去长白山,我选了黑...