DSP - Detección de actividad de voz: ¿cuáles son mis opciones?

1

En un entorno sensible al rendimiento, tengo un flujo de audio. Necesito clasificar cada cuadro como voz / no voz. Para este propósito, solo la voz "limpia" debe ser clasificada como habla. Las voces con ruido de fondo sustancial (tal vez música) deben clasificarse como sin voz.

¿Qué características / métodos podrías sugerir?

    
pregunta Michael Litvin

4 respuestas

3

Estoy de acuerdo. Anteriormente he investigado este tema y descubrí que es un tema muy complejo. Aquí hay algunos algoritmos básicos: enlace .. Le sugiero que haga mucha investigación. Aquí hay algunos enlaces para que disfrutes :) enlace & enlace y muchos más en Google.

    
respondido por el O_O
1

Lo que haría: primero trata 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 alimenta esta frecuencia en un filtro de peine, para eliminar el fundamental y todos sus armónicos. Lo que queda es, entonces, idealmente, solo los ruidos de pop y siseo, ambos bastante bajos o bastante altos, por lo que el paso de banda al rango medio debería, para una señal de voz clara y única, dejar solo una señal restante muy débil. Por otro lado, para la música u otros ruidos, tiene una amplia mezcla de frecuencias en todo el rango medio, por lo que el filtrado de filtro no debilitará mucho el RMS. Por lo tanto, un nivel alto después del proceso de peinado / filtración de banda indicará que la fuente no era una voz limpia no .

Probé esto con un simple programa SynthMaker,

yaúnnoesrealmenteconfiable,peroenprincipiofunciona.

Resultadosoloparaelhabla:

La señal filtrfiltrada es 6 dB más débil que la única con paso de banda.

Resultado para la música (voz + guitarra acústica, solo para probar):

Aquí, la señal de filtro combinado es en realidad más fuerte (el filtro está normalizado incorrectamente).

    
respondido por el leftaroundabout
0

Este no es un problema simple, y es más una suposición que una respuesta.

Una distinción que viene a la mente es que la voz pura tendrá muy poca amplitud a frecuencias más altas, como por encima de 3 kHz. Desafortunadamente, cosas como un sonido de S duro (silbido) ocurren en la voz y pueden tener componentes de hasta 8 kHz. A veces, la música y otros ruidos de fondo también tendrán frecuencias limitadas a 3 kHz. Por lo tanto, 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 mira solo las frecuencias base. Sin embargo, eso no es cierto para todo tipo de ruido.

Como dije, este no es un problema simple y probablemente requiera experimentación sustancial.

    
respondido por el Olin Lathrop
0

Mi (hace mucho) tesis de máster implicaba hacer esto como una parte menor de la tarea general, en gran parte con hardware. Puedo desenterrarlo y ver lo que he concluido :-). Como recuerdo, la naturaleza del contenido de energía alrededor de 400 Hz es un indicador importante. Esto fue para uso en circuitos telefónicos. También tuve algunos documentos de British Telecom sobre el tema que puedo proporcionar referencias y (solo) posiblemente copias de los documentos.

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas