作为机器学习的一个教育项目,我正在考虑从头开始创建一个语音识别系统。在之前接受过他/她的声音训练后,它应该能够从他/她的声音中识别出说话者。
我应该采取什么方法来应对这一挑战?具体来说,这样的系统如何在高层次上工作?
任何意见,将不胜感激 :)
作为机器学习的一个教育项目,我正在考虑从头开始创建一个语音识别系统。在之前接受过他/她的声音训练后,它应该能够从他/她的声音中识别出说话者。
我应该采取什么方法来应对这一挑战?具体来说,这样的系统如何在高层次上工作?
任何意见,将不胜感激 :)
To use your machine learning algorithm, you must first define the features you are going to feed it.
The easiest thing to do would be to compute the Fourier Transform of the audio signal (with any FFT tool you want, it's pretty standard), and build a feature vector with the information on frequencies and their amplitude.
If it's not enough, you could use a spectrogram to add temporal informations.
Once the features are correctly set, you can start playing with your favorite classifier algorithm !!!
If you use python, I found this question explaining how to do the FFT part : FFT for Spectrograms in Python
我做了一次简单的说话人识别。
您可能需要使用诸如Mel 频率倒谱系数(MFCC) 之类的功能,这些功能说明了由于谐波引起的频谱周期性以及人耳感知的响度。
然后你可以在学习阶段对特征进行聚类,得到一个统计模型。我为此使用了 VQ,这对于这种特定用途来说非常糟糕,但仍然得到了可用的结果。在识别阶段,您尝试将输入数据拟合到代表不同扬声器的不同模型上。拟合得越好,误差越低。一定要根据记录长度标准化分数。
此外,提高说话人识别率的一个好方法是排除静音和非语音声音。