使用机器学习创建语音识别系统
Posted
技术标签:
【中文标题】使用机器学习创建语音识别系统【英文标题】:Creating a voice identification system using machine learning 【发布时间】:2013-02-28 04:22:56 【问题描述】:作为机器学习方面的一个教育项目,我正在考虑从头开始创建一个语音识别系统。在之前接受过他/她的声音训练后,它应该能够从他/她的声音中识别出说话者。
我应该采取什么方法来应对这一挑战?具体来说,这样的系统如何在高层次上工作?
任何建议将不胜感激:)
【问题讨论】:
【参考方案1】:要使用您的机器学习算法,您必须首先定义您要为其提供的功能。
最简单的做法是计算音频信号的傅里叶变换(使用任何你想要的 FFT 工具,它非常标准),并使用频率及其幅度信息构建特征向量。
如果还不够,您可以使用频谱图来添加时间信息。
一旦特征设置正确,你就可以开始玩你最喜欢的分类算法了!!!
如果您使用 python,我发现这个问题解释了如何进行 FFT 部分: FFT for Spectrograms in Python
【讨论】:
频谱图会是一组很好的特征,可以不变地区分说话者吗?声谱图的哪些方面对每位演讲者来说是独一无二的? 我不是真正的专家,但似乎频率通常足以区分人与人之间,因为它们“带有”产生它们的声带的“痕迹”。频谱图将有助于区分频率随时间的调制,从而可以区分人类说话和另一种噪声源,例如音乐 您可以看到例如一些字母是如何“映射到频谱图的:home.cc.umanitoba.ca/~krussll/phonetics/acoustic/…【参考方案2】:我做过一次简单的说话人识别。
您可能希望使用 Mel 频率倒谱系数 (MFCC) 等功能,这些功能可以解释由于谐波引起的频谱周期性以及人耳感知的响度。
然后你可以在学习阶段对特征进行聚类,得到一个统计模型。我为此使用了 VQ,这对于这种特定用途来说非常糟糕,但仍然得到了可用的结果。在识别阶段,您尝试将输入数据拟合到代表不同扬声器的不同模型上。拟合得越好,误差越低。请务必根据记录长度标准化分数。
此外,提高说话者识别能力的一个好方法是排除静音和非语音声音。
【讨论】:
以上是关于使用机器学习创建语音识别系统的主要内容,如果未能解决你的问题,请参考以下文章
语音识别基于matlab GUI MFCC+VAD端点检测智能语音门禁系统含Matlab源码 451期