我已经进行了大量的研发并使用了大量的资源来解决我的问题,但我未能找到任何适当的解决方案。
我已经开发了一个应用程序,现在我想添加基于语音的功能 to it.
所需的功能是
1) when USER开始说话,应该录制音频/视频 and
2)当用户停止说话,它应该播放录制的音频/视频 .
Note:这里的视频是指用户在该时间段内在应用程序中执行的任何操作。例如,点击按钮或某种动画等。
我不想使用谷歌的语音识别器默认情况下在 Android 中可用,因为它需要互联网,但我的应用程序离线运行。此外,我还了解到卡内基梅隆大学狮身人面像 http://cmusphinx.sourceforge.net/。但根据我的要求,这没有帮助。
编辑:-另外,我想补充一点,我已经使用“开始和停止”按钮实现了这一点,但我不想使用这些按钮。
如果有人有任何想法或建议,请告诉我。
最简单、最常用的方法是计算过零的数量 http://en.wikipedia.org/wiki/Zero-crossing_rate在音频中(即当符号从正变为负时)。
如果该值太高,则声音不太可能是语音。如果它太低,那么同样,它不太可能是语音。
将其与简单的能量水平(音频的响度)相结合,您就得到了一个非常强大的解决方案。
如果您需要更准确的系统,那么它就会变得更加复杂。一种方法是提取音频特征(MFCC http://en.wikipedia.org/wiki/Mel-frequency_cepstrum例如)来自“训练数据”,用类似的东西对它们进行建模GMM http://en.wikipedia.org/wiki/Mixture_model然后根据 GMM 测试从现场音频中提取的特征。通过这种方式,您可以对给定音频帧是语音而不是非语音的可能性进行建模。然而,这不是一个简单的过程。
我强烈建议采用过零的方式,因为它很容易实现,并且 99% 的情况下都可以正常工作:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)