基频+语音检测在C#(Fundamental Frequency + Voice Detection

2019-08-31 16:54发布

我试图从实时麦克风检测语音输入throught。

我媒体链接接收输入,执行FFT算法有结果以dB为单位。 我有一个频域,时域和频谱图。

我怎样才能得到根本的频率是多少? 如果我得到的基本频率可我指定,如果频率是一定的值之间,那么它的声音,我们说的? 是否有任何其他方式与我媒体链接有事情要做到这一点?

韩国社交协会提前

Answer 1:

有许多不同的算法频率估计 ,右边一个使用取决于你在做什么。 你期望什么样的投入? 你想要什么与输入呢? 你有什么样的处理能力?

检测基本频率是不会帮助您识别一个特定的人是否在说话,如果那是你想要做什么。 你的声音的频率在不断的变化。 你必须做一个人的共振峰等的“指纹”

只要找到FFT的峰值是不会给你的声音了良好的效果。 看着倒频谱分析 。



Answer 2:

承担的范围内这对语音频谱(比方说,400至10K赫兹)的最高峰。 这应该给你的基本频率。

或者,您可能需要整合的频率的柱状图。 这是因为有时你必须这样开始的或包含咝(“S”音),其中有相当高的频率和广谱文字和摩擦音(“F”和“日”的声音)。 你不想错过语音的开始,因为它开始与比元音以外的东西。

另一个因素是还有什么会拿起除了声音。 有很多背景噪音? 哪一种? 如果没有任何,然后就声音的存在是不够的。 如果,例如,有音乐,那么你有一个完全不同的挑战。 如果你想的声音和一些其他的声音之间进行区分,那么我会去尝试,一个神经网络方法 - 这可能需要复杂的那个级别。



文章来源: Fundamental Frequency + Voice Detection in c#