Алгоритм обнаружения высоты тона ( PDA ) — это алгоритм, разработанный для оценки высоты тона или основной частоты квазипериодического или осциллирующего сигнала, обычно цифровой записи речи или музыкальной ноты или тона. Это может быть сделано во временной области , частотной области или в обеих областях.
КПК используются в различных контекстах (например, фонетика , поиск музыкальной информации , кодирование речи , системы музыкального исполнения ), поэтому к алгоритму могут предъявляться различные требования. Пока еще [ когда? ] нет идеального КПК, поэтому существует множество алгоритмов, большинство из которых в целом попадают в приведенные ниже классы. [1]
Обычно КПК оценивает период квазипериодического сигнала, а затем инвертирует это значение, чтобы получить частоту.
Одним из простых подходов было бы измерение расстояния между точками пересечения нуля сигнала (т. е. скорости пересечения нуля ). Однако это не очень хорошо работает со сложными формами волн , которые состоят из нескольких синусоид с разными периодами или зашумленными данными. Тем не менее, есть случаи, в которых пересечение нуля может быть полезной мерой, например, в некоторых речевых приложениях, где предполагается один источник. [ необходима цитата ] Простота алгоритма делает его «дешевым» для реализации.
Более сложные подходы сравнивают сегменты сигнала с другими сегментами, смещенными на пробный период, чтобы найти соответствие. AMDF (функция разности средних величин), ASMDF (функция разности средних квадратов) и другие подобные алгоритмы автокорреляции работают таким образом. Эти алгоритмы могут давать довольно точные результаты для высокопериодических сигналов. Однако у них есть проблемы ложного обнаружения (часто « октавные ошибки »), иногда они могут плохо справляться с шумными сигналами (в зависимости от реализации) и — в своих базовых реализациях — плохо справляются с полифоническими звуками (которые включают несколько музыкальных нот разной высоты). [ необходима цитата ]
Текущие [ когда? ] алгоритмы детектора высоты тона во временной области, как правило, строятся на базовых методах, упомянутых выше, с дополнительными усовершенствованиями, чтобы привести производительность в большее соответствие с человеческой оценкой высоты тона. Например, алгоритм YIN [2] и алгоритм MPM [3] оба основаны на автокорреляции .
В частотной области возможно полифоническое обнаружение, обычно использующее периодограмму для преобразования сигнала в оценку частотного спектра [4] . Это требует большей вычислительной мощности, поскольку желаемая точность увеличивается, хотя хорошо известная эффективность БПФ , ключевой части алгоритма периодограммы, делает его достаточно эффективным для многих целей.
Популярные алгоритмы частотной области включают: спектр гармонического произведения; [5] [6] кепстральный анализ [7] и максимальное правдоподобие , которое пытается сопоставить характеристики частотной области с предопределенными частотными картами (полезно для определения высоты тона фиксированно настроенных инструментов); и обнаружение пиков из-за гармонических рядов. [8]
Чтобы улучшить оценку высоты тона, полученную из дискретного спектра Фурье, можно использовать такие методы, как спектральное переназначение (на основе фазы) или интерполяция Грандке (на основе амплитуды), чтобы выйти за пределы точности, обеспечиваемой ячейками БПФ. Другой подход на основе фазы предлагают Браун и Пакетт [9]
Спектральные/временные алгоритмы обнаружения высоты тона, например, алгоритм отслеживания высоты тона YAAPT [10] [11], основаны на комбинации обработки во временной области с использованием функции автокорреляции , такой как нормализованная кросс-корреляция, и обработки в частотной области, использующей спектральную информацию для определения высоты тона. Затем среди кандидатов, оцененных из двух доменов, окончательный трек высоты тона может быть вычислен с использованием динамического программирования . Преимущество этих подходов заключается в том, что ошибка отслеживания в одном домене может быть уменьшена процессом в другом домене.
Основная частота речи может варьироваться от 40 Гц для низких голосов до 600 Гц для высоких голосов. [12]
Методам автокорреляции необходимо не менее двух периодов основного тона для обнаружения основного тона. Это означает, что для обнаружения основной частоты 40 Гц необходимо проанализировать не менее 50 миллисекунд (мс) речевого сигнала. Однако в течение 50 мс речь с более высокими основными частотами не обязательно будет иметь ту же основную частоту во всем окне. [12]