Detectando cambios entre voz y música

7

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?)

haroba
fuente
Suena como un problema de separación de fuente ciega
Phorce 01 de
La música y el discurso no se mezclan (bueno, lo es, pero solo durante unos segundos al comienzo y al final de las secciones del discurso), así que no lo creo.
haroba 01 de
Cuantos micrófonos ¿Cuál es la duración de cada segmento? Si desea ver las propiedades de segmentación, esto es difícil ya que no hay características definitorias, por ejemplo, la persona podría hablar durante un período más largo y la música podría reproducirse durante un período más corto de lo esperado. ¿Tienes algún dato de entrenamiento (de cómo se ve el discurso y cómo se ve la música)?
Phorce 01 de
Depende del tipo de música. Pero el discurso expresado generalmente tiene un solo tono. Mientras que la música puede ser polifónica y puede contener tonos fuera del rango de habla humana (bajo a soprano).
hotpaw2
1
@kRazzyR, terminé escribiendo una solución basada en este documento: speech.kth.se/prod/publications/files/3437.pdf
haroba

Respuestas:

13

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).

pichenettes
fuente
Amable Señor / Señora, ¿podría indicarme alguna biblioteca de Python que pueda lograr esta "detección de regiones de habla y regiones de música, etc. en un audio"? Estoy tratando de resolver este problema pero no he avanzado mucho.
kRazzy R