【问题标题】:Python Speaker Recognition [closed]Python说话者识别[关闭]
【发布时间】:2025-02-10 04:40:02
【问题描述】:

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

请帮助如何开始。另外请建议我免费的python库,这将帮助我解决问题。

【问题讨论】:

    标签: python voice-recognition speech


    【解决方案1】:

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

    SIDEKIT from LIUM

    Bob toolkit from Idiap

    Speaker diarization from ISCI

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

    LIUM speaker diarization

    Speaker recognition setup in Kaldi。包括最先进的基于 DNN 的 i 向量,称为 x 向量。

    【讨论】:

    【解决方案2】:

    从 numpy 开始,我会将频谱图(基本上是滚动 FFT)视为区分录音中不同声音的好方法。

    这是Matplotlib中的频谱图函数:

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

    如果您刚开始使用 Windows 平台,我会推荐 Python(x,y)

    【讨论】:

      【解决方案3】:
      【解决方案4】:

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

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

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

      【讨论】: