el juguete autotune

2
El juguete AutoTune fue escrito para demostrar la corrección de tono usando Matlab. Para ser exactos, estaba viendo Nova una noche en PBS y había un segmento en el software Antares AutoTune. Pensé "Yo puedo hacer eso en Matlab!" Por lo que este es mi intento de eso. Esta herramienta le permite grabar segmentos cortos de su voz y de forma interactiva corrige el terreno de juego. Teniendo en cuenta que la herramienta utiliza la memoria para almacenar los datos de audio, sólo es práctico para grabar corto (20 segundos o menos) fragmentos de audio, pero todavía es muy divertido para jugar con! El algoritmo de detección de tono que se me ocurrió utiliza algo así como una rutina de autocorrelación modificado en el dominio del tiempo. La rutina opera en pequeños bloques de la señal grabada en un momento. Por ejemplo, la longitud de bloque puede ser 1.024 muestras. En este caso, los primeros 1.024 muestras se extrajeron y se harán una copia del mismo. La copia se deslizó luego a través del bloque original de 1024 puntos y la "similitud" del bloque se determina con la copia. Desde un lanzamiento en particular es una señal periódica, cuando la copia se desliza el equivalente de un período a la derecha, la copia debe coincidir con el original. Esta es la frecuencia, o el tono, del primer bloque de 1024 muestras. Entonces, este proceso se repite para todos los bloques restantes de muestras que comprenden toda la señal. Con el fin de generar más puntos de frecuencia, los bloques se solapan. Por ejemplo, el primer bloque puede ser muestras 1- 1024. El siguiente bloque podría ser muestras 513-1536. El siguiente bloque podría ser muestras de 1025-2048, y así sucesivamente. En este caso los bloques constan de 1.024 muestras, pero que paso más de 512 muestras cada vez (la mitad de 1024). Una complicación viene a cuento porque la voz humana tiene armónicos muy fuertes. Por ejemplo, se le puede cantar una "A" a 220 Hz. Pero, también hay componentes de frecuencia en múltiplos de esta frecuencia, es decir, 440, 660, 880 Hz. Si la rutina de detección de tono detecta que un determinado bloque de muestras tiene simultáneamente componentes de frecuencia en todas estas frecuencias, ¿cómo determinar lo que realmente se está echada

Upload: maximo-torrez-huanacu

Post on 17-Sep-2015

1 views

Category:

Documents


0 download

DESCRIPTION

juego

TRANSCRIPT

El juguete AutoTune fue escrito para demostrar la correccin de tono usando Matlab. Para ser exactos, estaba viendo Nova una noche en PBS y haba un segmento en el software Antares AutoTune. Pens "Yo puedo hacer eso en Matlab!" Por lo que este es mi intento de eso. Esta herramienta le permite grabar segmentos cortos de su voz y de forma interactiva corrige el terreno de juego. Teniendo en cuenta que la herramienta utiliza la memoria para almacenar los datos de audio, slo es prctico para grabar corto (20 segundos o menos) fragmentos de audio, pero todava es muy divertido para jugar con!El algoritmo de deteccin de tono que se me ocurri utiliza algo as como una rutina de autocorrelacin modificado en el dominio del tiempo. La rutina opera en pequeos bloques de la seal grabada en un momento.Por ejemplo, la longitud de bloque puede ser 1.024 muestras. En este caso, los primeros 1.024 muestras se extrajeron y se harn una copia del mismo. La copia se desliz luego a travs del bloque original de 1024 puntos y la "similitud" del bloque se determina con la copia. Desde un lanzamiento en particular es una seal peridica, cuando la copia se desliza el equivalente de un perodo a la derecha, la copia debe coincidir con el original. Esta es la frecuencia, o el tono, del primer bloque de 1024 muestras. Entonces, este proceso se repite para todos los bloques restantes de muestras que comprenden toda la seal.Con el fin de generar ms puntos de frecuencia, los bloques se solapan. Por ejemplo, el primer bloque puede ser muestras 1-1024. El siguiente bloque podra ser muestras 513-1536. El siguiente bloque podra ser muestras de 1025-2048, y as sucesivamente. En este caso los bloques constan de 1.024 muestras, pero que paso ms de 512 muestras cada vez (la mitad de 1024).Una complicacin viene a cuento porque la voz humana tiene armnicos muy fuertes. Por ejemplo, se le puede cantar una "A" a 220 Hz. Pero, tambin hay componentes de frecuencia en mltiplos de esta frecuencia, es decir, 440, 660, 880 Hz. Si la rutina de deteccin de tono detecta que un determinado bloque de muestras tiene simultneamente componentes de frecuencia en todas estas frecuencias, cmo determinar lo que realmente se est echada canta? En este caso, la rutina encuentra todas las frecuencias y luego extrae los que son un mltiplo de uno al otro, dentro de una cierta tolerancia.A continuacin, el ms bajo de estos se selecciona como el tono real, siempre y cuando su amplitud excede un umbral mnimo.Otra complicacin se produce al estirar / comprimir los bloques para el terreno de juego deseado y recombinar ellos. Para ello, cada bloque se estira / comprimido por la relacin apropiada (determinada por el viejo nuevo pitch /) y interpolada. Luego, cada bloque es apto junto a la antigua cuadra y otra autocorrelacin modificado se hace para determinar cmo los bloques mejor encajan. Es similar a encajando dos piezas de un rompecabezas.Este programa slo fue probada usando Matlab 7.5.0 y mi porttil Dell. No s si funcionar con otras versiones o computadoras (pero espero que lo !!). Para utilizar la herramienta, se requiere una tarjeta de sonido de trabajo y el micrfono. He encontrado que el nivel de grabacin se debe al tope para generar una buena grabacin.