Введение
Фазовый вокодер — это тип алгоритма, предназначенного для обработки звука, который интерполирует информацию, присутствующую в частотной и временной областях аудиосигналов, используя фазовую информацию, извлеченную из частотного преобразования. Этот компьютерный алгоритм позволяет вносить изменения в частотную область цифрового звукового файла (обычно растяжение/сжатие по времени и изменение высоты тона). В основе фазового вокодера лежит кратковременное преобразование Фурье (STFT), которое обычно вычисляется с помощью быстрых преобразований Фурье. STFT преобразует временное представление звука в представление «время-частота» (фаза анализа), позволяя изменять амплитуды или фазы отдельных частотных компонентов звука, после чего представление «время-частота» ресинтезируется обратно во временную область с помощью обратного STFT. Временное изменение ресинтезированного звука можно контролировать, изменяя временное положение кадров STFT перед операцией ресинтеза, что позволяет изменять масштаб времени исходного звукового файла.
A phase vocoder is a type of vocoder purposed algorithm which can interpolate information present in the frequency and time domains of audio signals by using phase information extracted from a frequency transform. The computer algorithm allows frequency domain modifications to a digital sound file (typically time expansion/compression and pitch shifting). At the heart of the phase vocoder is the short time Fourier transform (STFT), typically coded using fast Fourier transforms. The STFT converts a time domain representation of sound into a time frequency representation (the "analysis" phase), allowing modifications to the amplitudes or phases of specific frequency components of the sound, before resynthesis of the time frequency domain representation into the time domain by the inverse STFT. The time evolution of the resynthesized sound can be changed by means of modifying the time position of the STFT frames prior to the resynthesis operation
allowing for time scale modification of the original sound file.
Проблема когерентности фаз
Основная проблема, которую необходимо решить во всех случаях манипулирования STFT, заключается в том, что отдельные компоненты сигнала (синусоиды, импульсы) будут распределены по нескольким кадрам и нескольким частотным ячейкам STFT (контейнерам). Это происходит из-за того, что анализ STFT выполняется с использованием перекрывающихся окон анализа. Оконная функция приводит к спектральному размытию, в результате чего информация об отдельных синусоидальных компонентах распространяется на соседние частотные ячейки STFT. Чтобы избежать пограничных эффектов, возникающих при применении окон анализа, окна STFT перекрываются во времени. Это временное перекрытие приводит к тому, что соседние анализы STFT сильно коррелируют (синусоида, присутствующая в кадре анализа в момент времени "t", будет присутствовать и в последующих кадрах). Проблема преобразования сигнала с помощью фазового вокодера связана с тем, что все изменения, вносимые в представление STFT, должны сохранять соответствующую корреляцию между соседними частотными ячейками (вертикальная когерентность) и временными кадрами (горизонтальная когерентность). За исключением крайне простых синтетических звуков, эти корреляции могут быть сохранены только приблизительно, и с момента изобретения фазового вокодера исследования в основном были направлены на поиск алгоритмов, которые сохраняли бы вертикальную и горизонтальную когерентность представления STFT после модификации. Проблема фазовой когерентности исследовалась довольно долго, прежде чем появились адекватные решения.
История
Фазовый вокодер был представлен в 1966 году Фланаганом как алгоритм, предназначенный для сохранения горизонтальной когерентности между фазами каналов, представляющих синусоидальные компоненты. Этот первоначальный фазовый вокодер не учитывал вертикальную когерентность между соседними частотными ячейками, и поэтому растяжение времени с использованием этой системы приводило к появлению звуковых сигналов, лишенных четкости. Оптимальная реконструкция звукового сигнала из STFT после модификации амплитуды была предложена Гриффином и Лимом в 1984 году. Этот алгоритм не решает проблему получения когерентного STFT, но позволяет найти звуковой сигнал, чей STFT максимально приближен к модифицированному STFT, даже если модифицированный STFT некогерентен (не соответствует какому-либо сигналу). Проблема вертикальной когерентности оставалась существенной для качества операций изменения темпа до 1999 года, когда Ларош и Долсон предложили способ сохранения фазовой согласованности между спектральными ячейками. Предложение Лароша и Долсона следует рассматривать как переломный момент в истории фазовых вокодеров. Было показано, что обеспечение вертикальной фазовой согласованности позволяет получать преобразования изменения темпа очень высокого качества. Алгоритм, предложенный Ларошем, не обеспечивал сохранения вертикальной фазовой когерентности для начала звука (атак). Решение этой проблемы было предложено Робелем. Примером программной реализации преобразования сигнала на основе фазового вокодера с использованием методов, аналогичных описанным здесь, для достижения высококачественного преобразования сигнала является SuperVP от Ircam.
Использование в музыке
Британский композитор Тревор Вишарт использовал фазовый анализ вокодера и преобразования человеческого голоса в качестве основы для своей композиции Vox 5 (часть его более масштабного цикла Vox). Композиция «Преображённый ветер» американского композитора Роджера Рейнольдса использует фазовый вокодер для растяжения времени звучания флейты. Музыка Джоанн Кучера Морин является одной из первых и наиболее масштабных работ, использующих фазовые преобразования вокодера, например, в Dreampaths (1989).