voice - 使用 libxtract 或其他小型 C、C++ 库实现 VAD 功能

标签 voice mfcc

我尝试在 Android 上创建说话人识别系统。目前我正在使用 libxtract 从帧和 libsvm 计算 MFCC 向量进行分类。

您是否知道如何使用我可以在 NDK 下编译的 libxtract 或其他小型 C、C++ 库来检测帧中的语音(VAD 语音事件检测)?

最佳答案

稳健 VAD是一个不平凡的问题,并且有many approaches .

您采用的方法取决于以下因素:

  • 您的应用程序上下文的细节以及您的应用程序将如何使用
  • 您可以对要处理的音频做出什么样的假设(您可以预期哪些类型的背景噪音或非语音音频)
  • 您的系统是否需要实时运行

一种简单的方法可能涉及为每个音频帧采用“特征包”(例如 f0、噪音、前 10 个部分的幅度)后降噪,并训练机器学习算法(SVM 就足够了)多种语音和非语音示例。

但是,最好不要将 VAD 视为一个简单的帧级音频分类问题,而是考虑音频随时间变化的方面。这将使您更好地估计语音段的开始和结束位置。为此,您可以使用 envelope followerspectral flux .您可以在这些包络值上设置高阈值和低阈值,并使用它们(例如)来控制音频流上的门限。

关于voice - 使用 libxtract 或其他小型 C、C++ 库实现 VAD 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18737332/

相关文章:

macos - 如何在OS X终端中录制声音?

android - Android 上的高效 AAC 是什么版本?

java - 如何合并 MFCC

c++ - Mel-filterbank系数的计算公式

spectrogram - 梅尔谱图和 MFCC 之间的区别

android - 我们可以直接将音频文件发送到电话运营商的上行链路吗?

java - 将您的应用程序与谷歌语音集成

c# - Windows Phone 8 上的语音命令

speech-recognition - C/C++ 中的梅尔频率倒谱系数 (MFCC)

signal-processing - Linux机器上最快的MFCC提取方法