previous content next

Нелинейный метод временной нормализации

Реализация слова, в отличие от реализации фразы, не содержит кадров с паузами. Пусть даны две реализации слова:

X(0),...,X(i),...,X(m) и

Y(0),...,Y(j),...,Y(n) .

Первая реализация слова считается эталонной, вторая - новой.

Прежде чем сравнивать их между собой необходимо провести временную нормализацию, т.е. привести реализации слов к одинаковой длине. Линейное сжатие или растяжение одной реализации слова до величины другой не решает вопрос вследствие одного важного свойства речевого сигнала - неравномерности его протекания во времени. Это свойство речи выражается в трудно контролируемой зависимости времени образования и звучания ее элементов от контекста, темпа, диалектных и индивидуальных особенностей диктора. Поэтому сравнение должно опираться на нелинейную временную нормализацию.

Для этого находится деформирующая функция, применение которой минимизирует расхождение между эталонной и новой реализациями слов. Точнее находятся две функции:

ωX : {1,...,l} → {1,...,m}

ωY : {1,...,l} → {1,...,n}

( max{m,n}≤l<m+n )

такие, что

ωX(1)=1, ωY(1)=1, ωX(l)=m, ωY(l)=n,

ωX(i+1)=ωX(i) или ωX(i)+1 i=1,...,m-1

ωY(j+1)=ωY(j) или ωY(j)+1 j=1,...,n-1

и, кроме того, минимальна.

Здесь ρi,j=(SX(i)-SY(j))2, где SX(i), SY(j) - значения сегментирующей функции из соответствующих контуров.

Сегментирующая функция должна характеризовать суммарное изменение используемых ею параметров речевого сигнала и зависит от двух кадров: текущего и предыдущего. В качестве параметров речевого сигнала мы будем использовать распределение энергии сигнала по частотным группам. Опишем процедуру нахождения контура сегментирующей функции SX(1),...,SX(i),...,SX(m) для эталонной реализации слова.

  1. На каждом кадре X(i) находится распределение энергии сигнала по частотным группам: p1(i),...,p20(i); i = 0,1,...,m;
  2. Вычисляются модули конечных разностей:
  3. Δk(i)=| pki-pki-1 | ; i =1,...,m; k =1,...,20;

  4. Вычисляются средние разности:
  5. ; k =1,...,20;

  6. Вычисляются средневзвешенные разности:
  7. ; i =1,...,m; k =1,...,20;

  8. Контур сегментирующей функции SX :
  9. ; i =1,...,m.

Аналогично находится контур сегментирующей функции SY(1),...,SY(j),...,SY(n) для новой реализации слова.

Процедура нахождения деформирующих функций ωX, ωY реализуется методом динамического программирования и дает возможность произвести внутреннее нелинейное выравнивание реализаций слов по времени.

Сначала строится матрица расстояний R = { ρi,j } размера (m×n). По ней затем вычисляется матрица D = { di,j } такого же размера (m×n):

  1. dm,n = ρm,n;
  2. di,n = ρi,n + di+1,n , i = m-1,...,1;
  3. dm,j = ρm,j + dm,j+1 , j = n-1,...,1;
  4. di,j = ρi,j + min{ di+1,j+1 , di+1,j , di,j+1 } , i = m-1,...,1; j = n-1,...,1;

Матрица D в свою очередь используется для нахождения функций ωX, ωY. Cначала присваивают: ωX(1)=1, ωY(1)=1. Далее на k-ом шаге находят ωX(k+1) и ωY(k+1). Возможны четыре случая:

  1. Если ωX(k)=m и ωY(k)=n, то деформирующие функции найдены;
  2. Если ωX(k)=m, а ωY(k)<n, то присваивают: ωX(k+1)=m, ωY(k+1)=ωY(k)+1;
  3. Если ωX(k)<m, но ωY(k)=n, то присваивают: ωX(k+1)=ωX(k)+1, ωY(k+1)=n;
  4. Если ωX(k)<m и ωY(k)<n, то сравниваются di1, j1 , di2, j2 , di3, j3 для нахождения среди них минимального и соответствующих imin , jmin. Здесь i1=i2X(k)+1, i1X(k), j1=j3Y(k)+1, j2Y(k). Затем присваивают: ωX(k+1)=imin, ωY(k+1)=jmin.

Зная деформирующие функции ωX , ωY мы можем для любого участка эталонной реализации слова найти соответствующий ему участок новой реализации. Применим это для разделения новой реализации слова на звуковые диады. Звуковая диада - переходный процесс от фонемы к фонеме, отображающий перестройку артикуляционного аппарата. В отличие от реализаций фонемы, реализации звуковой диады значительно меньше подвержены влиянию контекста и отражают взаимосвязь соседних фонем речевого потока. Границами диад являются центры квазистационарных участков фонем. Таким образом, диада состоит из второй половины первой фонемы и первой половины второй фонемы.

Эталонная реализация слова делится на звуковые диады вручную: отмечаются номера a0,...,aL кадров, являющихся центрами квазистационарных участков фонем. Затем выбираются точки nl , l = 0,...,L такие, что ωX(nl)=al. Теперь с помощью функции ωY можно определить номера b0,...,bL кадров, являющихся центрами квазистационарных участков фонем в новой реализации слова: blY(nl), l = 0,...,L. Приведенный алгоритм позволяет перейти от сравнения реализаций слов к сравнению реализаций звуковых диад.


previous content next