En un entorno sensible al rendimiento, tengo una transmisión de audio. Necesito clasificar cada cuadro como habla/no habla. Para este propósito, solo la voz "limpia" debe clasificarse como discurso. La voz con un ruido de fondo considerable (quizás música) debe clasificarse como sin habla.
¿Qué características/métodos podría sugerir?
Estoy de acuerdo. Anteriormente investigué este tema antes y descubrí que es un tema muy complejo. Aquí hay algunos algoritmos básicos: http://en.wikipedia.org/wiki/Speech_recognition#Algorithms .. Le sugiero que investigue mucho. Aquí hay algunos enlaces para que los disfrute :) http://www.dsprelated.com/showmessage/83934/1.php & http://www.ee.columbia.edu/~dpwe/pubs/LeeE06-vad.pdf y muchos más en google.
Lo que haría: primero tratar de encontrar la frecuencia fundamental. Una voz que habla no tiene una nota fija en este sentido, por lo que debe hacerlo con una respuesta bastante rápida, un método de bloqueo de fase directo puede ser mejor que hacerlo con FFT. Luego, alimente esta frecuencia a un filtro de peine, para eliminar la fundamental y todos sus sobretonos. Entonces, lo que queda es, idealmente, solo ruidos pop y silbidos, ambos de frecuencia bastante baja o bastante alta, por lo que el paso de banda del rango medio debería, para una señal de voz clara y única, dejar solo una señal restante muy débil. Para la música u otros ruidos, por otro lado, tiene una amplia combinación de frecuencias en todo el rango medio, por lo que el filtro de peine no debilitará mucho el RMS. Por lo tanto, un nivel alto después del proceso de filtrado de peine/banda indicará que la fuente no fuevoz limpia.
y todavía no es realmente confiable, pero en principio funciona.
La señal filtrada en peine es 6 dB más débil que la de paso de banda único.
Aquí, la señal filtrada en peine es en realidad más fuerte (el filtro está mal normalizado).
Este no es un problema simple, y es más una conjetura que una respuesta.
Una distinción que me viene a la mente es que la voz pura tendrá muy poca amplitud en frecuencias más altas, como por encima de 3 kHz. Desafortunadamente, cosas como un sonido S fuerte (silbido) ocurren en la voz y pueden tener componentes de hasta alrededor de 8 kHz. A veces, la música y otros ruidos de fondo también tendrán frecuencias limitadas a 3 kHz. Entonces, la distinción de frecuencia ayudará, pero no es lo suficientemente buena por sí sola.
Mucha música tendrá un ritmo rítmico, especialmente cuando se observan solo las frecuencias base. Sin embargo, eso no es cierto para todos los tipos de ruido.
Como dije, este no es un problema simple y probablemente requerirá una experimentación sustancial.
Mi (hace mucho) tesis de maestría implicó hacer esto como una parte menor de la tarea general, en gran parte con hardware. Puedo desenterrar y ver lo que concluí :-). Según recuerdo, la naturaleza del contenido de energía alrededor de 400 Hz es un indicador importante. Esto fue para su uso en circuitos telefónicos. También tuve algunos documentos de British Telecom sobre el tema a los que puedo proporcionar referencias y (solo) posiblemente copias de los documentos.
endolito
Michael Litvin
Michael Litvin
stevenvh
Kortuk
Michael Litvin