Python Speaker Recognition

24,330

Solution 1

The task of separation of the speakers is not a speech recognition task, it's a speaker recognition task. In the speech comminity this task is also known as speaker diarization. There are several packages for speaker diarization and speaker recognition available for Python:

SIDEKIT from LIUM

Bob toolkit from Idiap

Speaker diarization from ISCI

In case you are not restricted to Python, there are others:

LIUM speaker diarization

Speaker recognition setup in Kaldi. Includes state of the art DNN-based i-vectors called x-vectors.

Solution 2

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.

Solution 3

Check out sciKits Talkbox: http://projects.scipy.org/scikits/wiki/Talkbox

Unfortunutly tutorials are very restricted: http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/talkbox/talkbox_doc/intro.html

Share:
24,330
Admin
Author by

Admin

Updated on October 23, 2020

Comments

  • Admin
    Admin over 3 years

    I have an audio file, a recorded telephone conversation of 2 people, that I need to separate the voices of 2 speakers automatically. I am new to speech recognition and I looked at wave module of python but failed to find any fruitful information.

    Please help how to start. Also please suggest me free python libraries which will help me in solving the problem.

  • Zgore
    Zgore almost 6 years
    The link for Bob toolkit is actually dead, follow this one : idiap.ch/software/bob/docs/bob/bob.bio.spear/stable/…
  • Nikolay Shmyrev
    Nikolay Shmyrev almost 6 years
    Updated, thank you!