2011-11-27 11 views

Respuesta

18

Es posible con el kit de herramientas de gritar: http://shout-toolkit.sourceforge.net/index.html

Está escrito en C++ y se prueba para Linux, sino que también debe funcionar bajo Windows o OSX.

El kit de herramientas fue un subproducto de mi investigación de doctorado sobre reconocimiento automático de voz (ASR). Usarlo para ASR en sí mismo quizás no sea tan sencillo, pero para la Detección de la Actividad del Habla (SAD) y la diarización (encontrar todo el habla de una persona específica) es bastante fácil de usar. Aquí está un ejemplo:

  1. Crear un archivo de audio PCM sin cabeceras de 16 KHz, 16 bits, ascendente hacia la izquierda, mono. Uso ffmpeg para crear los archivos sin procesar: ffmpeg -i [INPUT_FILE] -vn -acodec pcm_s16le -ar 16000 -ac 1 -f s16le [RAW_FILE] Prefijo los datos sin encabezado con el tamaño de archivo codificado endian (4 bytes). Asegúrese de que el archivo tenga la extensión .raw, ya que shout_cluster detecta el tipo de archivo según la extensión.

  2. Realizar la segmentación de voz/no-voz: ./shout_segment -a [RAW_FILE] -AMS [SHOUT_SAD_MODEL] -mo [SAD_OUTPUT] El archivo de salida le proporcionará segmentos en los que alguien está hablando (etiquetadas con "SPEECH". Por supuesto, porque todo se hace automáticamente, el sistema puede cometer errores ...), en el que hay un sonido que no es el habla ("SOUND") o el silencio ("SILENCE").

  3. Realizar diarización: ./shout_cluster -a [RAW_FILE] -mo [DIARIZATION_OUTPUT] -mi [SAD_OUTPUT] Uso de la salida de la shout_segment, se tratará de determinar el número de hablantes eran activos en la grabación , etiquete cada altavoz ("SPK01", "SPK02", etc.) y luego encuentre todos los segmentos de voz de cada uno de los altavoces.

Espero que esto ayude!

+0

Gracias por su respuesta, Marijn, y por su perfil de pasos! ¿Es este idioma independiente, es decir, puede funcionar en hebreo, japonés, etc.?(sorprendentemente, estos "probablemente elegidos para este ejemplo porque son idiomas tan exóticos" son exactamente los idiomas necesarios :) – Avi

+0

Acabo de utilizar estos comandos y el terminal simplemente se ha congelado en un segundo comando. Ubuntu 17.10. Tal vez sea porque no hice nada con respecto a esta instrucción: "Prefique los datos sin encabezado con el tamaño de archivo codificado en el pequeño endian (4 bytes)". ¿Es este el caso? ¿Cómo puedo hacer eso? – Roman

2

Si bien la respuesta anterior es precisa, tengo una actualización del problema de instalación que se produjo en Linux al instalar SHoUT. undefined reference to pthread_join cuya solución que encontré fue a abrir configure-make.sh de zip de instalación gritar y modificar la línea

CXXFLAGS="-O3 -funroll-loops -mfpmath=sse -msse -msse2" LDFLAGS="-lpthread" ../configure 

a

CXXFLAGS="-O3 -funroll-loops -mfpmath=sse -msse -msse2" LDFLAGS="-pthread" ../configure 

NOTA la -lpthread a cambiado a pthread en sistemas Linux.

SO: Linux Mint 18 donde versión gritar: liberar-2010-versión-0-3

+0

¡Gracias por su respuesta, hombre! ¿Finalmente lograste reconocer algo con éxito? – Roman

+0

Con SHoUT: no, cambié a Python ya que tenía un mejor soporte para el análisis de audio. –

Cuestiones relacionadas