我尝试在Android上创建说话人识别系统。目前,我使用libxtract从帧计算MFCC向量,使用libsvm进行分类。
你知道如何使用libxtract或其他我可以在NDK下编译的小型C,C++库来检测帧中的语音(语音活动检测)吗?
发布于 2014-08-06 17:18:06
健壮的VAD是一个很重要的问题,并且存在many approaches。
您采取的方法取决于以下因素:
中实时运行
一种简单的方法可能涉及对每个音频帧进行降噪后的“特征包”(例如f0、噪声、前10个分音的大小),并使用广泛的语音和非语音样本训练机器学习算法(SVM就足够了)。
然而,最好不要将VAD视为简单的帧音频分类问题,而是将音频的时变方面考虑在内。这将使您更好地估计语音段的开始和结束位置。为此,您可以使用envelope follower或spectral flux。您可以设置这些包络值的高阈值和低阈值,并使用这些(例如)来控制音频流上的门。
发布于 2014-10-11 13:25:09
Voicebox工具包有一个很好的VAD实现,它使用了Jamie描述的一些技术。你可以在实现“基于统计模型的语音活动检测”(A Statistical -Based Voice Activity Detection) (1999)的vadsohn.m中找到它。
您还可以在github上找到一些实现,比如G729编解码器VAD (用于VOIP应用程序)。例如这个masters thesis。
这些实现是在MATLAB/Octave中实现的,但只需做一些工作就可以移植到C/C++。祝好运!
发布于 2017-10-25 05:18:31
那LibVAD呢?www.libvad.com
看起来这就是你所描述的。
披露:我是LibVAD背后的开发人员
https://stackoverflow.com/questions/18737332
复制相似问题