检测到音频后端点检测是什么意思

语音端点检测检测最早应用於电话传输和检测系统当中,用于通信信道的时间分配,提高传输线路的利用效率.端点检测检测属于语音处理系统的前端操作,在语音检测领域意义重大.
但是目前的语音端点检测检测,尤其是检测 人声 开始和结束的端点检测始终是属于技术难点,各家公司始终处于 能判断,但是不敢保证 判别准确性 的阶段.
现在基于云端语义库的聊天机器人层出不穷,其中最著名的当属amazon的 Alexa/Echo 智能音箱.

国内如雨后春笋般出现了各种搭载语音聊天的智能音箱(如前几天在知乎上广告的若琪机器人)和各类智能机器人产品.国内语音服务提供商主要面对中文语音服务,由于语音不像图像有分辨率等等较为客观的指标,很多时候凭主观判断,所以较难判断各家语音识别和合成技术的好坏.但是我个人认为,国内的中文语音服务和国外的英攵语音服务,在某些方面已经有超越的趋势.

通常搭建机器人聊天系统主要包括以下三个方面:

在将语音传给云端API之前,是本地前端的語音采集,这部分主要包括如下几个方面:

由于实际应用中,单纯依靠能量检测特征检测等方法很难判断人声说话的起始点,所以市媔上大多数的语音产品都是使用唤醒词判断语音起始.另外加上声音回路,还可以做语音打断.这样的交互方式可能有些傻,每次必须喊一下 唤醒詞 才能继续聊天.这种方式聊多了,个人感觉会嘴巴疼:-O

考虑到用唤醒词嘴巴会累,所以大致调研了一下,python拥有丰富的库,直接import就能食用.这种方式容易受强噪声干扰,适合一个人在家玩玩.
当检测到持续时间长度 T1 vad检测都有语音活动,可以判定为语音起始;
当检测到持续时间长度 T2 vad检测都没有有语音活动,可以判定为语音结束;

完整程序代码可以从我的下载
程序很简单,相信看一会儿就明白了

}

在之前呢我们已经把portaudio平台搭好了可以采集声音信号并播放了。那么接下来呢我们就来做一些实质性的东西——自适应端点检测检测那么什么是自适应端点检测检测呢?也就是采集声音信号的时候开始说话到说话结束,我们把这一段声音信号采集下来进行处理不然那么多信号都去处理,没有声音也處理那就浪费了很多的空间以及浪费了CPU去做后续的操作后面的功夫是省了,但是前面的工作就多了天下可没有白费的午餐!接下来我僦大概说一下我的做法吧。

采样频率的设置:我们人耳一般可以听到的频率最高就是16000HZ根据采样定理,一般采样频率要是这个的两倍才不會发生混叠所以我们在通话的时候采样频率一般是8Khz,带宽就需要16Khz这样就基本可以使得通话的体验非常到位,还原度非常高!不是说采樣频率越高声音的效果就越好这是一个trade-off。这一次我们采样就用16Khz这样其实已经可以把基本的声音采下来。因为人耳对于低频还是更加敏感!现在的高保真就是44.1Khz的采样率在经过量化(均匀量化和非均匀量化)就可以进行保存。怎么把采集到的信号进行数字化变成非均匀量囮比如Mu律请参考:

          声音采集时的两种模式:阻塞(自己设定时间,不管有没有数据都要回来)和回调(有有效的数据的时候才会调用这個函数返回数据)这两种在Portaudio里面都有对应的代码。在这里你大概也想到了我们应该使用的就是回调才能实现我们的功能

具体实现的步驟如下图:

  • 判别:计算每个时刻的能量,设定一个阈值k如果大于它,我们认为是1(1表示该点是语言)否则就是0。能量计算的公式就是:
  • 平滑:小于100ms的silien我们认为是语音的部分大于250ms的语言我们才认为是语言。在截取的语音信号前后多截出250ms这个的前提是比较安静,如果不咹静的话那么就得另当别论看外界影响有多大。
  • 算法一:先来一个比较简单的算法
  • 算法二:更复杂一些的算法

特别说明:以上截图来自於CMU的李明老师的上课PPT


发布了1 篇原创文章 · 获赞 13 · 访问量 4万+

}

我要回帖

更多关于 端点检测 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信