2013-02-28 88 views
0

作为机器学习的教育项目,我正在考虑从头开始创建语音识别系统。它应该能够在先前用他/她的声音训练之后从他/她的声音中识别发言者。使用机器学习创建语音识别系统

我应该采取什么方法来应对这一挑战?具体来说,这样一个系统如何在高层次上工作?

任何意见,将不胜感激:)

回答

2

要使用的机器学习算法,你必须首先定义你要养活它的功能。

要做的最简单的事情就是计算音频信号的傅里叶变换(使用任何你想要的FFT工具,它非常标准),并用频率和振幅信息构建一个特征向量。

如果还不够,可以使用光谱图添加时间信息。

一旦功能设置正确,您就可以开始使用您喜欢的分类算法!

如果您使用Python,我发现这个问题,说明如何做FFT部分: FFT for Spectrograms in Python

+0

频谱图是一个很好的功能,可以不变地区分说话者吗?谱图的哪些方面对每个说话者都是独一无二的? – Chetan 2013-02-28 21:05:46

+0

我并不是一个真正的专家,但似乎这些频率通常足以在人与人之间进行区分,因为它们“产生于”的声带的“痕迹”。 频谱图将有助于区分频率随时间的调制,从而允许区分人类说话和其他噪音源,如音乐,例如 – bendaizer 2013-03-01 13:32:09

+0

您可以看到一些字母如何“映射到频谱图: http://home.cc.umanitoba.ca/~krussll/phonetics/acoustic/spectrogram-sounds.html – bendaizer 2013-03-01 13:36:59

1

我做了一个简单的说话人识别一次。

你会想要使用诸如梅尔频率倒谱系数(MFCC),其中考虑了频谱周期性,谐波引起的和人耳感知的响度。

然后你可以在学习阶段聚集特征,得到一个统计模型。我为此使用了VQ,这对于这种特定用途来说非常可怕,但仍然得到了可用的结果。在识别阶段,您会尝试将输入数据拟合到代表不同说话人的不同模型上。拟合越好,误差越低。请确保将分数标准化为记录长度。

此外,改善说话人识别的一个好方法是排除沉默和非言语声音。