Вокодеры - RightMark Audio Analyzer

advertisement
Изменение длительности
и высоты звучания
Алексей Лукин
Задача


Требуется изменить длительности звучания или
высоту звучания независимо друг друга
Простой подход:
► (аналоговый) запишем на ленту и изменим скорость
прокрутки ленты
► (цифровой) сменим частоту дискретизации (resampling)
Увы: высота и длительность меняются синхронно!
Celine Dion
2/19
Ускорение на 20%
Задача


Независимое изменение высоты и длительности,
с сохранением достоверности звучания
Приложения:
► Сэмплеры и виртуальные инструменты
► Подстройка скорости фильмов под ТВ
► Караоке: смена тональности
► «Звуковой микроскоп» в обучении музыке
3/19
Временная область

Методы временной области работают с волной
1. Разбиваем сигнал на короткие гранулы (окна)
2. Повторяем или выкидываем (или сдвигаем) гранулы для
изменения длительности
3. Передискретизация для изменения высоты
Некоторые картинки взяты
из диссертации J. Bonada
4/19
Временная область

Методы временной области работают с волной
1. Разбиваем сигнал на короткие гранулы (окна)
2. Повторяем или выкидываем (или сдвигаем) гранулы для
изменения длительности
3. Передискретизация для изменения высоты

Проблемы:
► Гранулы могут складываться в фазе (хорошо) или в
противофазе (плохо)
► Транзиенты могут исчезать или дублироваться
Guitar+castanets
5/19
Замедление до 220% длины
Временная область

Решение:
► Выбор размера гранул кратным основному тону, тогда
они сложатся в фазе (требуется вычисление
автокорреляции или анализ высоты осн. тона)
► Запрет дублирования или выкидывания гранул с
транзиентами (требуется поиск транзиентов и
аккуратный план изменения гранул)
Фиксированный размер гранул
Pitch-synchronous granule size (“PSOLA”)
Pitch-synchronous granule size, transients detection
6/19
Временная область

Pitch-synchronous overlap-add (PSOLA)
► Размер гранул – 2
периода осн. тона
► Гранулы повторяются
или откидываются
► Нестабильные
результаты для
нетонального или
полифонического
материала
7/19
Временная область

+
–
Выводы
► Высокая скорость (1…5% CPU)
► Хорошее качество для сольных инструментов и вокала
► Плохое качество для нетонального или
полифонического материала:



Амплитудная модуляция (когда тона складываются не в
фазе)
Повторяемые или теряемые транзиенты (если только их
явно не обработали)
Реализации
► Редакторы, сэмплеры: Audition, Cubase , Logic, Ableton,
ACID
► Коректоры вокала: Melodyne, Autotune
8/19
Вокодеры




9/19
Методы частотной области работают с оконным
спектром сигнала
Идея: построить спектрограмму (используя STFT) и
ресинтезировать звук с отличающимся шагом по
времени (synthesis hop)
Проблема: при синтезе гранулы сигнала могут
складываться не в фазе
Решение: изменение фазы
на каждой частоте
(«разворачивание фазы»)
Вокодеры

Традиционный алгоритм:
1. Вычислить STFT от сигнала
2. Развернуть фазы для каждого
частотного канала (чтобы
скомпенсировать изменение шага
синтеза), не изменять амплитуды
3. Синтезировать сигнал обратным
STFT с другим шагом по
времени
10/19
Вокодеры

Амплитуды не изменяются
Y (t su ,  k )  X (t au ,  k )

Формулы для разворачивания фаз обеспечивают
сложение в фазе для кажой базисной функции
STFT («горизонтальая фазовая когерентность»)
 uk  X (t au ,  k )  X (t au 1 ,  k )  Ra  k
̂ (t au )   k 
1
 p  uk
Ra
Y (t su ,  k )  Y (t su 1 ,  k )  Rsˆ k (t au )
11/19
(инкремент фазы)
(разворачивание фазы)
(фаза для синтеза)
Вокодеры

Проблема фазовой когерентности
► Горизонтальная когерентность обеспечивается
разворачиванием фаз
► Как насчет вертикальной когерентности? (согласованность
фаз в соседних частотных каналах) Она пропадает! (за
исключением случая целочисленного растяжения) Это
порождает:


“Phasiness” из-за сложения не в фазе базисных функций,
принадлежащих одному тону исходного сигнала
Размытие транзмиентов на всю гранулу
Guitar+castanets
12/19
Vocoder 220% length
Вокодеры

Улучшение вертикальной фазовой
когерентности: алгоритм «фазовой
блокировки» фиксирует фазовые соотношения
в пределах каждого спектрального пика
1. Делим спектр на частотные интервалы,
соответствующие пикам
2. Разворачиваем фазу центрального (пикового) канала
3. Разворачиваем фазы окружающих каналов согласно
центральному

Это уменьшает «фазовость», но не спасает от
размытия транзиентов
Без фазовой блокировки
13/19
С блокировкой
Вокодеры

Как предотвратить размытие транзиентов?
► Частотное разрешение слуха неравномерно: оно лучше
на низких и хуже на высоких частотах
► Можно использовать длинные окна на НЧ (для лучшего
частотного разрешения) и короткие окна на ВЧ
С фазовой блокировкой
С блокировкой
и разными размерами окон
14/19
“Time-scale and pitch modification algorithms”
Вокодеры

Как предотвратить размытие транзиентов?
► Можно перенести транзиенты в результирующий
сигнал без растяжения (и модификации фаз)
► Разворачивание фаз гармоник сквозь транзиенты
Phase locking and
multiple window sizes
+ transients pasted
15/19
“Time-scale and pitch modification algorithms”
Вокодеры

+
–

Выводы
► Хорошее качество для сложных, полифонических
звуков
► Некоторая «фазовость» (даже с фазовой блокировкой)
► Размытие транзиентов (если их не обрабатывать)
► Шумовые сигналы могут звучать неестественно
► Высокая сложность (но быстрее реального времени)
Реализации
► Специализированные программы: SlowGold, Serato
Time’n’Pitch, iZotope Radius
16/19
“Time-scale and pitch modification algorithms”
Download