我尝试在 Android 上创建扬声器识别系统。目前我正在使用 libxtract 从帧和 libsvm 计算 MFCC 向量进行分类。
您知道如何使用我可以在 NDK 下编译的 libxtract 或其他小型 C、C++ 库来检测帧中的语音(VAD 语音活动检测)吗?
您采用的方法取决于以下因素:
一种简单的方法可能涉及对每个音频帧进行“特征包”(例如 f0、噪声、前 10 个部分的幅度)后降噪,并使用多种语音训练机器学习算法( SVM就足够了)和非语音示例。
然而,最好不要将 VAD 视为一个简单的逐帧音频分类问题,而是将音频的时间变化方面考虑在内。这将使您更好地估计语音片段的开始和结束位置。为此,您可以使用包络跟随器或光谱通量。您可以在这些包络值上设置高阈值和低阈值,并使用它们(例如)控制音频流上的门限。
LibVAD 怎么样?www.libvad.com
似乎这正是您所描述的。
披露:我是 LibVAD 背后的开发者