Mientras buscaba una respuesta a este problema, encontré este tablero, así que decidí publicar esta pregunta mía en Stack Overflow.
Estoy buscando un método para determinar la similitud entre un segmento de audio y una voz humana, que se expresa numéricamente.
He buscado bastante, pero lo que he encontrado hasta ahora (detallado a continuación) realmente no se ajusta a lo que necesito:
Un método es usar un software de reconocimiento de voz para obtener palabras de un segmento de audio. Sin embargo, este método no puede determinar cuán "similar" es el audio al habla humana; a menudo puede decir si hay palabras en el audio o no, pero si no hay palabras definidas, no puede decir que el audio es tener esas palabras.
Ejemplos: CMU Sphinx , Dragonfly , SHoUTEl método más prometedor se conoce como Detección de actividad de voz (VAD). Sin embargo, esto tiende a tener los mismos problemas: los algoritmos / programas que usan VAD tienden a devolver simplemente si se ha alcanzado o no el umbral de actividad, y ningún valor de "similitud" antes o después de dicho umbral. Alternativamente, muchos solo buscan volumen, no similitud con el habla humana.
Ejemplos: Speex , Listener , FreeSWITCH
¿Algunas ideas?
fuente
Respuestas:
Este tipo de problema generalmente se resuelve utilizando técnicas de aprendizaje automático.
Divide la señal en una secuencia de cuadros de 20 ms o 50 ms. Extraer características en cada cuadro. Los MFCC son generalmente buenos para este tipo de aplicación, aunque hay características más específicas para la detección de voz (energía de modulación de 4 Hz, que es aproximadamente la velocidad a la que la gente habla; tasa de cruce por cero).
Luego, utilizando un conjunto de audio de entrenamiento que haya etiquetado manualmente como voz / no voz, entrene un clasificador (modelos de mezcla gaussiana, SVM ...) en las características de los cuadros.
Esto le permitirá clasificar los marcos no etiquetados en clases de habla / no habla. El último paso consiste en suavizar las decisiones (es probable que un marco clasificado como sin voz rodeado de cientos de marcos de voz sea un error de clasificación), por ejemplo, utilizando HMM o simplemente un filtro de mediana.
Algunas referencias:
Clasificación sólida de voz / música en documentos de audio (Pinquier y otros) Discriminación de voz / música para aplicaciones multimedia (El-Maleh y otros) Una comparación de características para la discriminación de voz y música (Carey y otros)
Tenga en cuenta que las características y las técnicas de clasificación que describen también son relevantes para el problema de 1 clase de detectar el habla (en lugar de discriminar el discurso frente a otra cosa). En este caso, puede utilizar técnicas de modelado de 1 clase, como SVM de 1 clase, o simplemente tomar la puntuación de probabilidad de un GMM capacitado en datos de voz como una medida de "habla".
Si, por otro lado, su problema es realmente discriminar el discurso frente a otra cosa (por ejemplo, música), también podría usar enfoques no supervisados que se centran en detectar los límites entre contenido de audio similar, en lugar de identificar este contenido en sí mismo.
fuente