1 of 11

Автоматическое определение ЧОТ

П. А. Холявин

p.kholyavin@spbu.ru

1

2 of 11

Автокорреляция

где x(t) – сигнал, τ – задержка (lag)

Для дискретного сигнала:

где N – размер окна.

Нормализованная автокорреляция:

2

3 of 11

Алгоритм Praat

Boersma, Paul. "Accurate short-term analysis of the fundamental frequency and the harmonics-to-noise ratio of a sampled sound." Proceedings of the institute of phonetic sciences. Vol. 17. No. 1193. 1993.

Для каждого окна:

1. Вычитание среднего, умножение на оконную функцию (окно Ханна)

2. Вычисление нормализованной автокорреляции

3. Деление на автокорреляцию самого окна и поиск максимума:

3

4 of 11

Алгоритм Praat

4

5 of 11

Алгоритм Praat

Более подробно:

1. Soft upsampling: FFT → линейное умножение до нуля от 0.95 до 1 частоты Найквиста → IFFT порядка на 1 выше, чем FFT

2. Найти глобальный максимум сигнала

3. Вычисление оконным методом: для каждого фрейма смотрим на <= M “кандидатов” на длину периода, считая “глухой” кандидат

3.1. Извлечение фрейма: длина фрейма = минимальная длина периода * 3

3.2. Вычесть постоянную составляющую

3.3. Первый кандидат – глухой (заданы пороги звонкости и тишины)

3.4. Умножить на оконную функцию

3.5. Добавить ½ фрейма нулей

3.6. Добавить ещё нулей, пока количество отсчётов не станет степенью 2.

3.7. FFT

3.8. Возвести в квадрат

5

6 of 11

Алгоритм Praat

3.9. IFFT, что даст нам автокорреляцию

3.10. Разделить на АК окна (т.е. пп. 3.5 – 3.9 надо проделать для окна)

3.11. Найти максимумы и их значения, для каждого определить “силу”:

Для глухого:

Для остальных:

VoicingThreshold = 0.4, SilenceThreshold = 0.05, OctaveCost = 0.01

6

7 of 11

Алгоритм Praat

4. Т.о. для каждого фрейма n у нас есть pn кандидатов. Найдём наилучший путь через все фреймы с помощью динамического программирования:

7

8 of 11

Алгоритм REAPER

https://github.com/google/REAPER

1. Вычисление ошибки предсказания LPC и её нормализация

2. Каждый отрицательный пик рассматривается как кандидат на момент закрытия голосовых связок (glottal closure instant, GCI). Они оцениваются на основании их формы (периоды глоттальной волны должны иметь резкий подъём и плавный спуск)

3. Для каждого кандидата вычисляется нормализованная кросс-корреляция

4. Генерируется граф, по которому ищется наилучший путь с помощью динамического программирования (используются дополнительные признаки)

8

9 of 11

Алгоритм REAPER

Признаки:

  1. Псевдовероятность звонкости (энергия на низких частотах)

  • Псевдовероятность начала и конца звонкого участка (изменение энергии)

9

10 of 11

Алгоритм REAPER

Динамическое программирование

For each pulse in the utterance:

For each period hypotheses following the pulse:

For each period hypothesis preceding the pulse:

Score the transition cost of connecting the periods. Choose the

minimum overall cost (cumulative+local+transition) preceding

period hypothesis, and save its cost and a backpointer to it.

The costs of making a voicing state change are modulated by the

probability of voicing onset and offset. The cost of

voiced-to-voiced transition is based on the delta F0 that

occurs, and the cost of staying in the unvoiced state is a

constant system parameter.

10

11 of 11

Спасибо за внимание!

11