Vocoder di fase

Decomposizione di un segnale audio in frame. I frame vengono poi elaborati e riassemblati.

Un vocoder di fase (dall'inglese phase vocoder) è un tipo di algoritmo basato sul vocoder in grado di interpolare le informazioni presenti nei domini della frequenza e del tempo dei segnali audio, utilizzando le informazioni di fase estratte da una trasformata in frequenza.[1] Questo algoritmo informatico consente modifiche nel dominio della frequenza a un file audio digitale (tipicamente espansione/compressione temporale e trasposizione di tonalità, noti come time stretching e pitch shifting).

Al centro del vocoder di fase vi è la trasformata di Fourier a breve termine (STFT), tipicamente programmata utilizzando la trasformata rapida di Fourier. La STFT converte una rappresentazione del suono nel dominio del tempo in una rappresentazione tempo-frequenza (la fase di "analisi"), consentendo modifiche alle ampiezze o alle fasi di specifiche componenti di frequenza del suono, prima della risintesi della rappresentazione nel dominio tempo-frequenza nuovamente nel dominio del tempo tramite la STFT inversa. L'evoluzione temporale del suono risintetizzato può essere modificata alterando la posizione temporale dei frame della STFT prima dell'operazione di risintesi, permettendo la modifica della scala temporale del file audio originale.

Problema di coerenza di fase

Il problema principale da risolvere per tutti i casi di manipolazione della STFT è il fatto che le singole componenti del segnale (sinusoidi, impulsi) si distribuiscono su più frame e su più intervalli di frequenza (bin) della STFT. Questo accade perché l'analisi STFT viene eseguita utilizzando finestre di analisi sovrapposte. La sovrapposizione delle finestre provoca una dispersione spettrale, per cui le informazioni delle singole componenti sinusoidali si distribuiscono su intervalli di frequenza adiacenti. Per ovviare agli effetti di bordo causati dall'attenuazione ai margini delle finestre di analisi, quest'ultime vengono sovrapposte nel tempo. Questa sovrapposizione temporale comporta una forte correlazione tra analisi STFT adiacenti, (ad esempio, una sinusoide presente nel frame di analisi al tempo "t" comparirà inevitabilmente anche nei frame successivi). La complessità della trasformazione del segnale tramite vocoder di fase risiede proprio nel fatto che ogni modifica apportata alla rappresentazione STFT deve mantenere la corretta correlazione sia tra i bin di frequenza adiacenti (coerenza verticale), sia tra i frame temporali (coerenza orizzontale). Fatta eccezione per suoni sintetici estremamente basilari, queste correlazioni possono essere preservate solo per approssimazione. Per questo motivo, fin dall'invenzione del vocoder di fase, la ricerca si è concentrata sulla progettazione di algoritmi in grado di conservare la coerenza verticale e orizzontale della STFT in seguito alle modifiche. Questo ostacolo, noto appunto come problema della coerenza di fase, è stato oggetto di lunghi studi prima che emergessero soluzioni efficaci.

Storia

Questo vocoder di fase originario non teneva conto della coerenza verticale tra i bin di frequenza adiacenti; di conseguenza, l'espansione temporale effettuata con questo sistema produceva segnali sonori privi di nitidezza.

Il vocoder di fase è stato introdotto nel 1966 da Flanagan come un algoritmo in grado di preservare la coerenza orizzontale tra le fasi dei bin che rappresentano le componenti sinusoidali.[2] Questo vocoder di fase originario non teneva conto della coerenza verticale tra i bin di frequenza adiacenti; di conseguenza, l'espansione temporale effettuata con questo sistema produceva segnali sonori privi di nitidezza.

La ricostruzione ottimale del segnale sonoro a partire dalla STFT in seguito a modifiche dell'ampiezza è stata proposta da Griffin e Lim nel 1984.[3] Questo algoritmo non affronta il problema di produrre una STFT intrinsecamente coerente, ma permette di individuare il segnale sonoro che possiede la STFT il più vicina possibile a quella modificata, anche qualora quest'ultima non sia coerente (ovvero non corrisponda ad alcun segnale reale).

Il problema della coerenza verticale è rimasto un ostacolo cruciale per la qualità delle operazioni di modifica temporale fino al 1999, anno in cui Laroche e Dolson [4] hanno proposto un metodo per preservare la coerenza di fase tra i bin spettrali. La proposta di Laroche e Dolson rappresenta un vero e proprio punto di svolta nella storia del vocoder di fase: è stato infatti dimostrato che, garantendo la coerenza di fase verticale, si possono ottenere trasformazioni temporali di altissima qualità.

L'algoritmo proposto da Laroche non consentiva, tuttavia, di preservare la coerenza di fase verticale in corrispondenza dei transitori d'attacco (note onsets). Una soluzione a questo specifico problema è stata successivamente proposta da Roebel.[5]

Un esempio di implementazione software per la trasformazione del segnale basata sul vocoder di fase, che impiega metodi affini a quelli qui descritti per ottenere elaborazioni di alta qualità, è il software SuperVP dell'Ircam.[6]

Utilizzo nella musica

Il compositore britannico Trevor Wishart ha utilizzato l'analisi e le trasformazioni di una voce umana tramite vocoder di fase come base per la sua composizione Vox 5 (parte del suo più ampio Vox Cycle[7]). L'opera Transfigured Wind del compositore statunitense Roger Reynolds impiega il vocoder di fase per eseguire il time-stretching (espansione temporale) di suoni di flauto[8]. La musica di JoAnn Kuchera-Morin fa alcuni dei primissimi e più estesi usi delle trasformazioni tramite vocoder di fase, come ad esempio in Dreampaths (1989)[9].

Applicazioni nella produzione musicale moderna

Nel contesto della produzione musicale contemporanea e della computer music, il vocoder di fase è uno strumento fondamentale per il sound design e la composizione elettroacustica. Oltre ai software di ricerca storici, l'algoritmo è oggi integrato nativamente nelle principali DAW per la manipolazione del time-stretching e del pitch-shifting in tempo reale, garantendo espansioni temporali ad alta fedeltà senza alterare l'intonazione del segnale.[10]

La flessibilità dell'algoritmo ha trovato ampio spazio negli ambienti di programmazione visuale orientati all'audio, come Max/MSP. All'interno di questi ambienti, oggetti specifici per l'elaborazione tramite FFT (come l'oggetto pfft~ in Max) astraggono la complessità matematica dell'analisi e della risintesi. Questo permette ai compositori e ai programmatori di sviluppare vocoder di fase personalizzati e sofisticati granulatori spettrali.[11] Lo sviluppo di queste tecniche è supportato da una continua ricerca accademica volta a minimizzare gli artefatti sonori e ottimizzare la gestione dei transienti durante le manipolazioni complesse.[12]

Un'implementazione particolarmente celebre per il suo utilizzo estremo è l'algoritmo Paulstretch (acronimo di Paul's Extreme Sound Stretch, ideato da Paul Nasca). A differenza dei vocoder di fase standard, ottimizzati per preservare la coerenza dei transitori d'attacco, Paulstretch utilizza finestre di analisi estremamente ampie e randomizza deliberatamente le fases. Questo approccio permette di ottenere dilatazioni temporali radicali, fino a migliaia di volte la durata del suono originale, trasformando brevi campioni audio in tessiture sonore ambientali dense e continue, dissipando del tutto i colpi percussivi.[13]

Note

  1. ↑ Sethares, A Phase Vocoder in Matlab, su sethares.engr.wisc.edu. URL consultato il 6 dicembre 2020.
  2. ↑ Flanagan J.L. and Golden, R.M., Phase vocoder, in Bell System Technical Journal, vol. 45, 1966, pp. 1493–1509, DOI:10.1002/j.1538-7305.1966.tb01706.x.
  3. ↑ Griffin D. and Lim J., Signal Estimation from Modified Short-Time Fourier Transform, in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 32, 1984, pp. 236–243, DOI:10.1109/TASSP.1984.1164317.
  4. ↑ J. Laroche and M. Dolson, Improved Phase Vocoder Time-Scale Modification of Audio, in IEEE Transactions on Speech and Audio Processing, vol. 7, 1999, pp. 323–332, DOI:10.1109/89.759041.
  5. ↑ Roebel A., "A new approach to transient processing in the phase vocoder", DAFx, 2003. pdf (PDF), su ircam.fr (archiviato dall'url originale il 17 giugno 2004).
  6. ↑ (EN) Flux Trax Review, su MusicRadar.
  7. ↑ Trevor Wishart, The Composition of "Vox-5", in Computer Music Journal, vol. 12, n. 4, 1988, pp. 21–27, DOI:10.2307/3680150. URL consultato il 20 maggio 2026.
  8. ↑ Xavier Serra e Julius Smith, Spectral Modeling Synthesis: A Sound Analysis/Synthesis System Based on a Deterministic Plus Stochastic Decomposition, in Computer Music Journal, vol. 14, n. 4, 1990, pp. 12, DOI:10.2307/3680788. URL consultato il 20 maggio 2026.
  9. ↑ Curtis Roads, Microsound, the MIT press, 2004, ISBN 978-0-262-68154-4.
  10. ↑ Julius O. Smith III, The Phase Vocoder, su Spectral Audio Signal Processing, CCRMA, Stanford University.
  11. ↑ Richard Dudas, The Phase Vocoder – Part I, su Cycling '74, 2006.
  12. ↑ Ricerca avanzata sulle tecniche di elaborazione spettrale (PDF), in Computer Music Journal, vol. 32, n. 3, MIT Press, 2008.
  13. ↑ Paulstretch in Praat, su mashav.com.

Voci correlate

Collegamenti esterni