首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libxtract或其他小型C、C++库实现VAD功能

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

Stack Overflow用户
提问于 2013-09-11 17:24:03
回答 3查看 2.6K关注 0票数 3

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

你知道如何使用libxtract或其他我可以在NDK下编译的小型C,C++库来检测帧中的语音(语音活动检测)吗?

EN

回答 3

Stack Overflow用户

发布于 2014-08-06 17:18:06

健壮的VAD是一个很重要的问题,并且存在many approaches

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

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

中实时运行

一种简单的方法可能涉及对每个音频帧进行降噪后的“特征包”(例如f0、噪声、前10个分音的大小),并使用广泛的语音和非语音样本训练机器学习算法(SVM就足够了)。

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

票数 1
EN

Stack Overflow用户

发布于 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++。祝好运!

票数 1
EN

Stack Overflow用户

发布于 2017-10-25 05:18:31

那LibVAD呢?www.libvad.com

看起来这就是你所描述的。

披露:我是LibVAD背后的开发人员

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18737332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档