Foros - Stratos

Programadores => Programación de audio => Mensaje iniciado por: ender_wiggin en 01 de Octubre de 2010, 09:59:47 AM

Título: Pérdida de potencia con SFT
Publicado por: ender_wiggin en 01 de Octubre de 2010, 09:59:47 AM
Buenas gente!

Estoy preparando un efecto de robotización de voz con un phase vocoder.

Básicamente se trata de aplicarle a la señal la transformada de fourier (en concreto  Short Time Fourier Transform), fijar la fase a 0 del resultado y volver a reconstruirr la señal.

Pues bién, he partido de la clase que aparece en este artículo http://sites.google.com/site/mikescoderama/pitch-shifting (http://sites.google.com/site/mikescoderama/pitch-shifting) y simplificando las partes de ANALYSIS, PROCESSING y SYNTHESIS ( de modo que como comenté antes le fijo a 0 la fase antes de reconstruir ) .

El efecto de robotización de la voz se aplica de maravilla, pero la señal pierde mucha potencia ... a ver si alguno sabe porqué, que hace ya tiempo que no toco el procesado de señales.

Un saludo!
Título: Re: Pérdida de potencia con SFT
Publicado por: synchrnzr en 01 de Octubre de 2010, 10:09:38 AM
No sé qué haces exactamente en tu código pero si sumas la señal original con la misma señal desfasada, que supongo que lo haces para conseguir el efecto de phaser/flanger, lo normal es que la suma de ambas pierda volumen a proporción con el desfase por los efectos de cancelación. Tendrás que compensar la pérdida de potencia manualmente.

sync
Título: Re: Pérdida de potencia con SFT
Publicado por: ender_wiggin en 01 de Octubre de 2010, 10:25:57 AM
Gracias synchrnzr!

No hago eso exactamente, trato la señal en el dominio de la frecuencia. Pero al final seguramente la perdida de potencia será inherente al procesamiento.

Voy a probar a normalizar la señal despues de reconstruirla, con eso debería sonar bien.

Cuando lo tenga todo listo subiré un articulito al blog y os lo comentaré.

Un saludo!