Pregunta

Estoy trabajando en un proyecto de OpenGL que implica una cara hablando de dibujos animados. Mi esperanza es jugar el habla (codificado en formato MP3) y la animación de la boca utilizando los datos de audio. Nunca he trabajado con audio antes, así que no estoy seguro de por dónde empezar, pero algunas google me llevó a creer que mi primer paso sería convertir el mp3 a PCM.

No realmente anticipar la necesidad de Fourier transforma cualquier, aunque eso podría ser agradable. La boca realmente sólo necesita moverse cuando hay audio (que estaba pensando en lo base en volumen).

¿Algún consejo para implementar algo así o punteros a los recursos sería muy apreciada. Gracias!

-S

¿Fue útil?

Solución

Cualquier cosa que hagas, vas a tener que decodificar los archivos MP3 en datos PCM primero. Hay una serie de bibliotecas de terceros que pueden hacer esto para usted. A continuación, tendrá que analizar los datos PCM y hacer algo de procesamiento de señales en él.

La generación automática de datos lipsync realistas de audio es un problema muy difícil, y usted es aconsejable no tratar de abordarlo. Me gusta tu idea de simplemente lo base en el volumen. Una forma de poder calcular el volumen actual es utilizar una ventana de rodadura de un cierto tamaño (por ejemplo, 1/16 segundos), y calcular la potencia media de la onda de sonido a través de esa ventana. Es decir, en el marco de T, a calcular la potencia media de los marcos [T-N, T], donde N es el número de cuadros en su ventana.

Gracias a teorema de Parseval , podemos calcular fácilmente el poder en una ola sin tener que transformar o nada complicada de Fourier - la potencia media es simplemente la suma de los cuadrados de los valores PCM en la ventana, dividido por el número de fotogramas de la ventana. A continuación, puede convertir la alimentación en una rel="nofollow decibelios calificación dividiéndolo por un poder de base (que puede ser 1 para mayor simplicidad), tomar el logaritmo, y multiplicando por 10.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top