Reconocimiento de Altavoz Python
subplot title python (4)
Tengo un archivo de audio (conversación telefónica grabada de 2 personas). Necesito separar las voces de 2 parlantes automáticamente. Soy nuevo en el reconocimiento de voz y miré el módulo de wave de python pero faild para encontrar información fructífera.
Por favor ayuda como empezar. También, por favor, sugiérame bibliotecas gratuitas de Python que me ayudarán a resolver el problema.
Comience con números, y vería los gráficos de espectro (básicamente una FFT) como un buen método para distinguir diferentes voces en una grabación de audio.
Aquí está la función de espectrograma en Matplotlib :
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram
Recomendaría Python(x,y) si recién está comenzando en una plataforma Windows.
Echa un vistazo a la biblioteca CMU Sphinx Python. Está desarrollado en Java, así que creo que las librerías de Python son solo envoltorios para eso. El proyecto tiene una gran cantidad de investigaciones en curso detrás de él.
Wiki oficial: http://cmusphinx.sourceforge.net/wiki/
Tutorial de inicio rápido para Linux aquí: http://probing.wikidot.com/speech-recognition-using-sphinx3-and-python
Echa un vistazo a sciKits Talkbox: http://projects.scipy.org/scikits/wiki/Talkbox
Desafortunadamente, los tutoriales están muy restringidos: http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/talkbox/talkbox_doc/intro.html
La tarea de separación de los oradores no es una tarea de reconocimiento de voz, es una tarea de reconocimiento de oradores. En la comunidad del discurso, esta tarea también se conoce como diarización del hablante. Hay varios paquetes para la diarización de los oradores y el reconocimiento de parlantes disponibles para Python:
Kit de herramientas Bob de Idiap
En caso de que no estés restringido a Python, hay otros:
Configuración de reconocimiento de altavoz en Kaldi . Incluye los i-vectores basados en DNN llamados x-vectores.