语音活动检测库(不是语音识别)

信息处理 声音的 演讲
2022-01-06 00:43:11

作为我之前问题的后续,我想知道是否存在任何语音检测库。通过语音检测,我的意思是传入音频缓冲区并获取语音开始和停止位置的索引。因此,如果我在 44kHz 处进行 10 秒的音频采样,我会期望一个数字数组,例如:

44000
88000
123000
190334
...

例如,这将表明语音从一秒开始,然后在两秒结束,等等。

寻找的是从口语中写出文本的语音识别。不幸的是,这是我在谷歌“语音检测”时看到的很多内容。

当我正在为 iPhone 编写应用程序时,如果库是 C、C++ 甚至是 Objective-C 语言,那就太好了。

谢谢!

4个回答

回答您的那个问题时,我曾提到语音活动检测是 G.729 等编解码器的标准功能。

您应该寻找适用于此的算法的参考编码器和解码器。

一个这样的例子是 - http://www.voiceage.com/openinit_g729.php

另一个可能的来源是 Speex 编解码器。哪个实现了 VAD

顺便说一句:你应该用谷歌搜索“语音活动检测”或“话音检测”而不是“语音检测”。

Sphinx 和 Freeswitch 项目中有开源实现。我认为它们都是基于能量的探测器,不需要任何类型的模型。

Sphinx 4(Java,但应该很容易移植到 C/C++)

袖珍狮身人面像

自由开关

答案取自Stackoverflow 问题

使用自适应阈值的语音活动检测非常容易在任何平台上实现

在这里你可以有一个基于自适应能量的算法

当您第一次计算时,对上述算法的小补充去取平均能量并标记为 Emin

在这种情况下,您传递的框架分为子框架,您可以进一步检查每个子框架的活动

您可以克服重叠帧的更多问题

LibVAD 怎么样?

似乎这正是您所描述的。

披露:我是 LibVAD 背后的开发者