我有一个音频文件(录制的2人电话)。我需要自动分离2个扬声器的声音。我是语音识别的新手,我看了python的wave模块但是找不到任何有用的信息。
请帮助如何开始。另外请建议我免费的python库,它将帮助我解决问题。
答案 0 :(得分:14)
分离扬声器的任务不是语音识别任务,而是说话人识别任务。在语音通信中,这个任务也被称为说话人日记。 Python提供了几种用于扬声器分类和说话人识别的软件包:
如果您不限于Python,还有其他人:
Speaker recognition setup in Kaldi。包括最先进的基于DNN的i向量,称为x向量。
答案 1 :(得分:4)
从numpy开始,我会看一下谱图(基本上是一个滚动的FFT)作为区分录音中不同声音的好方法。
以下是Matplotlib中的频谱图功能:
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram
如果您刚开始使用Windows平台,我建议Python(x,y)。
答案 2 :(得分:2)
查看sciKits Talkbox:http://projects.scipy.org/scikits/wiki/Talkbox
不幸的教程非常有限:http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/talkbox/talkbox_doc/intro.html
答案 3 :(得分:0)
查看CMU Sphinx Python库。它是用Java开发的,所以我认为Python库只是它的包装器。该项目背后有很多正在进行的研究。
官方维基:http://cmusphinx.sourceforge.net/wiki/
Linux快速入门教程:http://probing.wikidot.com/speech-recognition-using-sphinx3-and-python