Tengo un montón de archivos de audio que tienen partes de voz y música (piense en la radio). Por ejemplo, un archivo dado puede constar de las siguientes secciones:
music --- speech --- music --- speech --- music --- speech --- music
Mi objetivo es detectar cuándo el archivo cambia entre música y voz, y cortar las partes de música dejando solo la voz. Sin embargo, no sé qué método usar para distinguir entre el habla y la música. Estaba considerando detectar el tempo, pero parte de la música es muy lenta o tiene un tempo variable.
(Mientras lo hacemos, para que no tenga que escribir la mía, ¿hay alguna biblioteca de software existente que pueda distinguir entre voz y música?)
Respuestas:
Este es un problema bien estudiado, que data de mediados de los 90 (desafíos de transcripción de transmisión DARPA / NIST). Busque "segmentación de voz / música" o "segmentación de audio" y encontrará miles de trabajos de investigación.
Hay dos enfoques generales para resolver este problema:
Clasificación supervisada
Entrene un clasificador de voz / música, utilizando un enfoque estándar de aprendizaje automático. Puede usar MFCC como características de entrada, junto con otras características básicas como velocidad de cruce por cero, modulación de amplitud a 4Hz, etc. Recientemente se hizo común incluir tantas características como sea posible y usar técnicas de detección de características para identificar las más discriminantes. .
Cualquier algoritmo de clasificación servirá: admite máquinas de vectores, modelos de mezcla gaussiana, árboles de decisión. Una vez que se realiza la clasificación, tendrá marcos mal clasificados (por ejemplo, un pequeño segmento de acapella en una canción se clasificará como discurso; o un FX o un tintineo entre el discurso se destacará). Esto requiere un procesamiento posterior, el enfoque más común es aplicar el filtrado de modo (votación) en la secuencia de salidas del clasificador. La clasificación / suavizado temporal a veces se unen mediante el uso de modelos de markov ocultos para la clasificación y el suavizado temporal.
Ref: Clasificación y segmentación de audio basada en contenido mediante el uso de máquinas de vectores de soporte , Lu et al.
Detección de cambio de segmento sin supervisión
Considere una ventana de 10 segundos deslizándose sobre la señal. Calcule las características de audio en la primera mitad, en la segunda mitad, y use una prueba estadística para decidir qué hipótesis es la más probable: los dos conjuntos de características de audio se extraen de la misma distribución, o se extraen de dos distribuciones diferentes. El resultado de la prueba le dirá qué tan probable es que el centro de la ventana corresponda al límite entre un discurso y un segmento de música. Seleccione los puntos con las puntuaciones más altas como los límites del segmento.
Se pueden utilizar las mismas funciones de audio que para el enfoque supervisado (MFCC, ZCR, modulación de amplitud a 4 Hz ...).
Criterio de "libro de texto" para la prueba estadística: criterio de información bayesiano (BIC).
Ref: Segmentación y agrupación de secuencias de audio no supervisadas a través del Criterio de información bayesiano , Zhou & Hansen (para una introducción a BIC).
Enfoques combinados supervisados y no supervisados para la segmentación automática de transmisiones de audio radiofónicas , Richard, Ramona y Essid (para pruebas de detección de cambio más exóticas).
fuente