Análisis Espectral 2: Vocoder y Síntesis Sinusoidal

An´ alisis Espectral 2: Vocoder y S´ıntesis Sinusoidal Juan-Pablo C´aceres CCRMA Stanford University Adaptado/traducido de la clase de Julius Smith “S

3 downloads 95 Views 982KB Size

Recommend Stories


Cargadores de onda sinusoidal pura
INVERSORES/CARGADORES FX (sellados) y VFX (ventilados)] 4[ Inversores/Cargadores de onda sinusoidal pura Modelos: FX/VFX La serie FX de inversores/

Cargador Serie MS-E Onda sinusoidal pura
Inversor/Cargador Serie MS-E Onda sinusoidal pura Manual del usuario TM Descargo de responsabilidad El uso de este manual y las condiciones o métod

POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA 'MÉTODOS DE PRONY Y PISARENKO PARA ANÁLISIS ESPECTRAL' PABLO W
ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA 'MÉTODOS DE PRONY Y PISARENKO PARA ANÁLISIS ESPECTRAL' PABLO W. HIDALGO LASCANO TESIS

modelos aditivos y multiplicativos en el anlisis de matrices multitrazos-multimtodos de cuestionarios de intereses profesionales
´ tica: Teor´ıa y Aplicaciones 1998 5(1) : 49–56 Revista de Matema cimpa – ucr – ccss issn: 1409-2433 modelos aditivos y multiplicativos en el anlis

Story Transcript

An´ alisis Espectral 2: Vocoder y S´ıntesis Sinusoidal Juan-Pablo C´aceres CCRMA Stanford University Adaptado/traducido de la clase de Julius Smith “Spectral Audio Modeling”

Agosto, 2007

Contenidos

Preambulo: S´ıntesis Aditiva

El Vocoder y el Voder

Phase Vocoder

Sines+Noise Modeling

Preambulo: S´ıntesis Aditiva S´ıntesis aditiva es una t´ecnica en la que una se˜ nal es reconstruida sumando “sinusoides”. Cada “sinusoide” tiene amplitud y frecuencia que var´ıa en el tiempo: y(t) =

N X

Ai (t) sin[θi (t)]

i=1

donde Ai (t) = Amplitud del ito parcial en el tiempo t Z t ωi (t)dt + φi (0) = fase instant´ anea θi (t) = 0

ωi (t) = Frecuencia en radianes del ito parcial vs. tiempo φi (0) = Fase incial del ito parcial en el tiempo 0

todas estas cantidades son reales.

Envolventes de Amplitud y Fase T´ıpicos

ak

t wkt

wk

t

Aplicabilidad de la S´ıntesis Aditiva y(t) =

N X

Ai (t) sin

i=1

Z

t 0

 ωi (t)dt + φi (0)



El modelo sinusoidal es eficiente para se˜ nales tonales como la voz, tonos intrumentales que no varian, cuerdas pulsadas, y otros.



Es ineficiente para se˜ nales de tipo ruido, como consonantes, la parte “chiff” de las flautas/organos.



Ineficiente para ataques (transientes r´apidos en el tiempo) como instrumentos de percusi´on o ataques en notas.



Es m´ as eficiente cuando Ai (t) y ωi (t) var´ıan lentamente (i.e., tenemos realmente una suma de componentes cuasi-sinusoidales) y cuando φi (t) puede ser despreciado. Es bien sabido que modificaciones de la fase φi en la suma de sinusoides no son usualmente audibles.

Banco de Osciladores A1

f1

A2

f2

A3

f3

A4

f4

noise s

FIR

out

y(t) =

4 P

i=1

Ai (t) sin

hR

t 0 ωi (t)dt + φi (0)

i



Para reproducir la se˜ nal, debemos primero analizarla para determinar las trayectorias de amplitud y frecuencia para cada componente sinusoidal. Podemos o no querer la informaci´on de fase.



Para este an´ alisis se usaba originalmente el Vocoder

El Vocoder ◮

El t´ermino “vocoder” deriva de “voice coder”, y es el nombre para una clase de m´etodo de an´alisis/s´ıntesis basado en an´ alisis de bancos de filtros.



Es el m´ as viejo de los esquemas de “codificaci´on de sub-banda”, iniciandose en los 1930s en Bell Telephone Laboratories (Bell Labs)



El t´ermino “vocoder” es ahora com´ unmente asociado con la “Transformada Corta de Fourier Modificada”, y el vocoder como fue definido hist´oricamente es r´aramente usado.



El “phase vocoder” es comunmente usado en “cross-s´ıntesis” en audio. Channel Vocoder







S´ olo se determina la magnitud de la se˜nal en cada banda de filtro.

Phase Vocoder ◮

Se determina tanto la magnitud como la fase

El Voder



El Voder (Voice Operation Demonstrator) es un controlador manual de un vocoder. Fue contruido y demostrado en 1939 en el Feria internacional de Nueva York y San Francisco.



Las alturas son controladas por un pedal, y 10 dedos controlan las ganancias de los filtros pasa banda. La selecci´on en “buzz/hiss” se hacia con una barra de mu˜ neca



3 teclas adicionales controlan las transientes de excitaci´on de los filtros seleccionados de modo de obtener consonantes. “Performing speech” en el Voder requiere de aproximadamente 1 a˜ no de entrenamiento antes de que sea inteligible.

El Voder 1939

http://davidszondy.com/future/robot/voder.htm voder.wav

El Voder

http://ptolemy.eecs.berkeley.edu/∼ eal/audio/voder.html

El Voder

http://www.acoustics.hut.fi/publications/files/theses/lemmetty mst/chap2.html

Diagram de Bloques del Vocoder magnitude, or magnitude and phase extraction

A

X0

Xhat0

f

x

A

X1 f

A

Data Compression, Transmission, Storage, Manipulation, Noise reduction, ...

XNM1

Xhat1

xhat

XhatNM1

f

Analysis

Processing

Synthesis

El vocoder descompone la se˜ nal en sub-bandas. para cada banda se determina ya sea: ◮

La magnitud (en el caso del “channel vocoder”)



La magnitud y la fase (en el caso del “phase vocoder”)

Modelo de Canal de Vocoder Si asumimos que tenemos a lo m´as 1 sinusoide con parametros que var´ıan con el tiempo en cada canal, entonces escribimos xk (t), la se˜ nal en la banda k: xk (t) = ak (t) cos[ωk t + φk (t)]

Analysis Model

Synthesis Model ak

Channel Filter Response

A F Sine Osc

∆ωk

ωk

0

ωk+∆ωk(t)

ak(t)

ω Out

con ∆ωk (t) ,

d dt φk (t)

Calculando los Par´ ametros del Vocoder

Para el “channel vocodel” s´ olo se requiere determinar la amplitud de la se˜ nal. Podemos usar un seguidor de envolvente en cada subbanda, implementada con rectificaci´ on y filtrado pasa bajos filtro pasa bajos. Rectification x

xkt

Averaging Energy in subband k vs time

h(t)

out xkt in xk

t

output

Phase Vocoder Para el Phase Vocoder, necesitamos determinar tanto la amplitud como la fase de la se˜ nal en cada subbanda. Asumimos que no hay m´as que una componente sinusoidal en cada subbanda que var´ıa, xk (t) = ak (t) cos[ωk t + φk (t)] donde ωk es la frecuencia central del canal (fija). Esto nos da 2 se˜ nales reales para cada canal del vocoder: 1. ak (t) = amplitud intant´anea 2. φk (t) = modulaci´on de fase instant´anea ak (t) es tambien llamado envolvente de amplitud. d φk (t) es tambien llamado envolvente de frecuencia ∆ωk (t) = dt

Procesamiento con Se˜ nales Anal´ıticas De modo de determinar estas se˜ nales, es u ´til expresar la se˜ nal de cada canal xk (t) como su representaci´on compleja “anal´ıtica”. La denotamos por, xak (t) = Re{xak (t)} + jIm{xak (t)} , ak (t)ej[ωk t+φk (t)] Por lo tanto, ak (t) = |xak (t)| φk (t) = ∠xak (t) − ωk t  a (t)}  Im{x k − ωk t = tan−1 a Re{xk (t)}



En la pr´ actica normalmente trabajamos con desviaci´ on instan´ anea de frecuencia en vez de fase: ∆ωk (t) ,



d φk (t) dt

Ya que el canal k de un banco de filtros uniforme de N canales tiene normalmente un ancho de banda dado por fs /N , la desviaci´ on de frecuencia usualmente no excede ±fs /(2N ).

Transformada de Hilbert Idealmente, la parte imaginaria de una se˜ nal anal´ıtica se obtiene de su parte real usando la Transformada de Hilbert. x

Rex

Imx Hilbert Transform

En la pr´ actica, esta transformada se dise˜ na con un filtro FIR (usando remez en Matlab u Octave). Ejemplo de uso en la pr´ actica: http://ccrma.stanford.edu/∼ jcaceres/yamaha/documentation/fmexamp01/

Procesado de Banda Base Se nota que xak (t) es una se˜ nal de banda angosta centrada en la frecuencia del canal ωk . Es comun heterodyne 1 la salida del canal con la “banda base”, “shifting” su espectro por −ωk de modo de centrar la banda del canal en 0 (modulando en el tiempo por exp(−jωk t)), −jωk t a xk (t) = ak (t)ejφk (t) xm k (t) , e

Para cada subbanda, tenemos datos que t´ıpicamente se ven como, ak

t wkt

wk

t

1

generaci´ on de nuevas frecuencias por mezclado de 2 o m´ as se˜ nales en forma no-lineal

Una vez que tenemos los datos de esa forma, podemos comprimirla, e.g., ◮ Aproximaci´ on lineal por piezas ◮





Grandes cuocientes de compresi´on son posibles para se˜n´ales “tonales” Cuacientes de compresi´on dependen de la naturaleza de la se˜ nal

“Downsample” cada canal ◮ ◮

Cada subbanda est´a limitada al ancho de banda del canal En realidad, esto s´olo nos lleva al n´umero original de samplers ◮ ◮



N canales “Downsample” por N

Recuantizar la se˜ nal ◮

Se asignan bits dependiendo de la cantidad de energ´ıa de cada subbanda

Vocoder Demos, 26 Channels 1. Original SteveJobs.wav 2. Resynthesis preserving amplitude envelopes but discarding frequency deviations SteveJobs sine n 26.wav 3. = 2 with Channel Frequency-Inversion.SteveJobs sine i 26.wav That is, the vocoder channels are reversed in frequency order, which obscures the formants. 4. Noise Substitution SteveJobs noise n 26.wav original channel amplitude-envelope is applied to a narrowband noise with bandwidth equal to that of the analysis channel (instead of a sinusoid). 5. Noise Substitution and Frequency Inversion SteveJobs noise i 26.wav Parameters: 1. fs = 8 kHz sampling rate 2. 26 vocoder channels, auditory spaced

Vocoder Demos, 5 Channels 1. Original SteveJobs.wav 2. Resynthesis SteveJobs sine n 5.wav preserving amplitude envelopes but discarding frequency deviations 3. = 2 with Channel Frequency-Inversion. SteveJobs sine i 5.wav That is, the vocoder channels are reversed in frequency order, which obscures the formants. 4. Noise Substitution SteveJobs noise n 5.wav Each original channel amplitude-envelope is applied to a narrowband noise with bandwidth equal to that of the analysis channel (instead of a sinusoid). 5. Noise Substitution and Frequency Inversion SteveJobs noise i 5.wav Parameters: ◮ fs = 8 kHz sampling rate ◮ 5 vocoder channels ◮ Center frequencies at 148 Hz, 392 Hz, 825 Hz, 1.6 kHz, and 3 kHz

Limitaciones del Vocodes



Se requiere un m´ aximo de una se˜ nal cuasi-sinusoidal por subbanda. ◮

Esto significa que necesitamos much´ısimos filtros



Es un modelo pobre para se˜ nales con transientes y at´aques pronunciados.



No es conveniente para se˜ nales inarm´onicas



Es un modelo insuficiente para se˜ nales de tipo ruido (e.g., flauta)



No es reversible, a no ser que la informaci´on de fase se registre y no se haga compresi´on



Es computacionalmente caro

Identificaci´ on de Peaks Sinusoidales en una Secuencia de FFTs

tan

Phases

s(n) FFT Frequencies

dB mag

Peak tracking

Quadratic Peak Interpolation

window w(n) Amplitudes



Para se˜ nales est´ aticas, la fase es usualmente descartada



La fase es necesaria cuando la se˜ nal contiene tansientes

wrenpn1.wav jpc wrenpn1.wav peaches.wav jpc peaches.wav

Sines+Noise Modeling A1

f1

A2

f2

A3

f3

A4

f4

noise Filter

s

out

y(t) =

4 P

i=1

Ai (t) cos

hR t 0

i ωi (t)dt + φi (0) + (ht ∗ u)(t)

donde ◮ u(t) = ruido blanco ◮ ht (·) = filtro de ruido que cambia lentamente

Sines + Noise Sound Examples Xavier Serra 1989 thesis demos (Sines + Noise signal modeling) ◮ Guitar ◮ ◮ ◮ ◮

Original xjs-4-guitar-spn-orig.wav Sinusoids alone xjs-4-guitar-spn-sines.wav Residual after sinusoids removed xjs-4-guitar-spn-resid.wav Sines + noise model xjs-4-guitar-spn-synth.wav

◮ Piano ◮ ◮ ◮ ◮

Original xjs-7-piano-spn-orig.wav Sinusoids alone xjs-7-piano-spn-sines.wav Residual after sinusoids removed xjs-7-piano-spn-resid.wav Sines + noise model xjs-7-piano-spn-synth.wav

◮ Voice ◮ ◮ ◮ ◮

Original xjs-9-speech-orig.wav Sinusoids xjs-9-speech-sines.wav Residual xjs-9-speech-resid.wav Synthesis xjs-9-speech-synth.wav

Musical Effects with Sines+Noise Models

◮ Piano Effects ◮ ◮ ◮

Pitch downshift one octave xjs-12-piano-pitch-shift.wav Pitch flattened xjs-12-piano-pitch-flatten.wav Varying partial stretching xjs-12-piano-pitch-vary.wav

◮ Voice Effects ◮ ◮

Frequency-scale by 0.6 xjs-9-speech-fs-p6.wav Frequency-scale by 0.4 and stretch partials xjs-9-speech-fs-p4-pstr.wav



Variable time-scaling, deterministic to stochastic xjs-9-speech-det-to-stoch.wav

Cross-Synthesis with Sines+Noise Models

◮ Voice “modulator” xjs-14-xsynth-speech-mod.wav ◮ Creaking ship’s mast “carrier” xjs-14-xsynth-speech-car-mast.wav ◮ Voice-modulated creaking mast xjs-14-xsynth-speech-mod-mast.wav ◮ Same with modified spectral envelopes

xjs-14-xsynth-speech-mod-mast-var.wav

Sines + Transients Sound Examples In this technique, the sinusoidal sum is phase-matched at the cross-over point only (with no cross-fade). ◮ Marimba ◮ ◮ ◮

Original xjs-15-marimba-spt-orig.wav Sinusoidal model xjs-15-marimba-spt-sines.wav Original attack, followed by sinusoidal model xjs-15-marimba-spt-spliced.wav

◮ Piano ◮ ◮ ◮

Original xjs-16-piano-spt-orig.wav Sinusoidal model xjs-16-piano-spt-sines.wav Original attack, followed by sinusoidal model xjs-16-piano-spt-spliced.wav

SuperCollider DEMO

Demo en Tiempo Real del Maestro Roberto Morales

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.