21

我有一个音频文件,一个录制的两个人的电话交谈,我需要自动分离 2 个扬声器的声音。我是语音识别的新手,我查看了 python 的 wave 模块,但没有找到任何有用的信息。

请帮助如何开始。还请向我推荐免费的 python 库,这将帮助我解决问题。

4

4 回答 4

16

说话人的分离任务不是语音识别任务,而是说话人识别任务。在语音社区中,此任务也称为说话者分类。有几个可用于 Python 的说话人分类和说话人识别包:

LIUM 的 SIDEKIT

Idiap 的 Bob 工具包

ISCI 的演讲者分类

如果您不限于 Python,还有其他方法:

LIUM 扬声器分类

Kaldi 中的说话人识别设置。包括最先进的基于 DNN 的 i 向量,称为 x 向量。

于 2013-06-14T18:24:35.973 回答
4

Start with numpy, and I would look at spectrpgraphs (basically a rolling FFT) as a good method for distinguish different voices in an audio recording.

Here's the spectrogram function in Matplotlib:

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram

I would recommend Python(x,y) if you're just getting started on a Windows platform.

于 2011-09-05T14:15:17.700 回答
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

于 2013-06-14T16:20:36.480 回答
0

看看 CMU Sphinx Python 库。它是用 Java 开发的,所以我认为 Python 库只是它的包装器。该项目背后有很多正在进行的研究。

官方维基:http ://cmusphinx.sourceforge.net/wiki/

Linux 快速入门教程:http: //probing.wikidot.com/speech-recognition-using-sphinx3-and-python

于 2011-09-05T16:08:58.543 回答