Ахмад Х.

advertisement
227
ПОСТРОЕНИЕ КОДОВОЙ КНИГИ ПРИ РЕШЕНИИ ЗАДАЧ
ВЕРИФИКАЦИИ/ИДЕНТИФИКАЦИИ ДИКТОРОВ
Х. М. Ахмад1
1Владимирский
Государственный Университет
600005, г. Владимир, ул. Горького, 87
+7 920 911 45 05, alinahas@mail.ru
Рассматриваются методы распознавания дикторов, основанные на использовании
алгоритмов векторного квантования (ВК), меры искажения, построения эталонов
и идентификации по кодовой книге.
Введение
Существуют
различные
методы
распознавания речи [1], однако, в
последнее время основным стал метод
сопоставления с эталоном. Это связано
главным образом с прогрессом в области
электронных компонентов, в частности, с
увеличением вычислительной мощности
процессоров и объемов памяти. При
сопоставлении с эталоном описания
речевых сигналов сравниваются с заранее
запасенными эталонными описаниями, и
вычисляется
степень
их
подобия.
Результатом
распознавания
является
наиболее похожий эталонный образ.
Постановка задачи
При решении задачи идентификации
использовать в качестве эталона весь
полученный набор векторов признаков
неэффективно и неудобно, поскольку их
количество может быть очень большим
(пропорционально длине фразы), что
влечет значительное разрастание базы
данных дикторов и уменьшение скорости
идентификации. К тому же векторы
признаков распределены в некоторой
области пространства не равномерно, а
некоторыми группами, т.е. подобные друг
другу вектора признаков находятся ближе в
пространстве признаков.
Поэтому имеет смысл разбить все вектора
признаков
на
группы,
содержащие
подобные друг другу вектора. Такая задача
решается
при
помощи
векторного
квантования – процесса
отображения
большого количества векторов в конечное
число областей векторного пространства.
Каждая
такая
область
называется
кластером и может быть представлена
своим центроидом, называемым кодовым
вектором. Множество кодовых слов для
одного диктора называется кодовой книгой,
что и является эталоном [2,5,6,7].
Решение
Задача построения кодовой книги ставится
следующим образом. Пусть дан набор
векторов
признаков
T
X  xi | i  1,..., L, где xi  xi1 ,..., xiD   R D ,
где D – размерность вектора (D=12).
Пусть C  c1 ,..., ck  – кодовая книга,
где K  L – количество кодовых векторов
(кластеров)
в
кодовой
книге,
а
T
D
ci  ci1 ,..., ciD   R .
Тогда
векторный
квантователь
Q
размерности D и размера K – это
отображение множества векторов X, в один
из центроидов
C  ci | i  1,..., K  C  Q X  .
Основной задачей при создании векторного
квантователя
является
минимизация
искажения,
т.е.
расстояния
между
векторами и цетроидами. Выбор меры
искажения при построении кодовой книги
может влиять на ее качество. Под понятием
расстояния
или
меры
искажения
понимается функция
d : RD  RD  R ,
(1)
которая измеряет различность между двумя
векторами признаков x и y. Для равных
векторов d  x, y   0 .
228
Евклидово расстояние является наиболее
употребительной мерой, исходящей из
принципа физического расстояния между
двумя точками в пространстве.
d E  x, y  
D
x  y T x  y    xk  yk 2 .(2)
k 1
Одной из модификаций данной меры может
служить среднеквадратическая ошибка
(СКО), вычисляющаяся по формуле
dCKO x, y  
D
1
x  y T x  y   1  xk  yk 2 (3)
D
D k 1
Взвешенная среднеквадратическая ошибка
–
основная
проблема
Евклидова
расстояния, что дисперсии векторных
компонент отличаются друг от друга.
Компоненты с большой дисперсией
доминируют над расстоянием. К тому же
дисперсии компонент Мел – частотных
кепстральных коэффициентов (МЧКК)
сильно
различаются.
Следовательно,
необходима
нормализация
векторов
признаков
или
использование
нормализующей меры:
1
(4)
d w x, y   x  y T W x  y  ,
D
где W – положительно
взвешивающая матрица.
определенная
Часто принимают W  Г 1 , где Г ковариационная
матрица
случайного
вектора x:
(5)
Г  E x  x x  x T , x  x .
В этом случае
1
d w  x, y    x  y T Г 1  x  y  ,
(6)
D
что известно как расстояние Махаланобиса
[2].
В данной работе используется упрощенный
метод нормализации, основанный на
расстоянии Махаланобиса [6]. Данный
метод предполагает использование в
качестве меры СКО, но с предварительно
нормированными аргументами:
x  k
xk  k
, k  1,..., D,
(7)
k
где xk и xk – исходная и нормированная kая
компонента
вектора
признаков,
соответственно, а  k и k – среднее
значение и среднеквадратичное отклонение
k-ой компоненты по всей выборки векторов
признаков. После такой нормализации


вектора признаков при вычислении
расстояния будут иметь нулевое среднее и
единичную дисперсию.
При
построении
кодовой
книги
необходимо, чтобы выбор кластера для
очередного
вектора
признаков
был
осуществлен
по
минимуму
меры
искажения,
т.е.
выбор
ближайшего
кластера, и чтобы каждый кодовый вектор
выбирался из условия минимизации
среднего искажения в своей ячейке.
Существует
достаточное
количество
алгоритмов для выполнения кластеризации
и построения кодовой книги [2,6,7].
Обобщенный алгоритм Ллойда (GLA, LBG,
k-средних). Это наиболее популярный
алгоритм
в
задачах
кластеризации.
Алгоритм начинает работать с начальной
кодовой книги, которая итеративно
улучшается пока не достигается локальный
минимум. На каждом шаге векторы
признаков отображаются в ближайшие
кластеры, а затем центроиды каждого
кластера
(кодовые
вектора)
пересчитываются с учетом попавших туда
векторов. Качество новой кодовой книги
после итерации лучше или равно
предыдущей. Так повторяется пока не
будет достигнуто требуемое качество
кодовой книги. Далее приводится сам
алгоритм.
Предположим, что необходимо разбить
набор
обучающих
векторов
X  xi | i  1,..., L на K кластеров. Пусть
через Ci m обозначается i-й кластер на mй итерации с центроидом cim . Пусть kколичество созданных кодовых векторов.
Шаг 1: Присвоить k=1 и создать кодовую
книгу, состоящую из одного кодового
вектора:
1 L
(8)
c1*   X i .
L i 1
Вычислить среднее искажение внутри
единственного кластера:
1 L
*
(9)
Dсред   d xi , c1* .
L i 1
Шаг 2: Разбиение. Увеличить размер
кодовой книги в два раза, разбивая уже
созданные кластера на два согласно
правилу:
 
229
ci0   1   ci* 
(10)
, i  1,..., k ,
ck0i  1   ci* 
где   0.01 – параметр
разбиения.
Присвоить k=2k.
( 0)
*
Шаг 3. Итерация. Присвоить Dсред
.
 Dсред
Установить счетчик итераций m =0.
a) Классифицируется набор обучающих
векторов признаков X  xi | i  1,..., L по
кластерам Ci , i  1,..., k с помощью правила
ближайшего соседа: x  Ci m  , тогда и

 

только тогда, когда d x, cim  d x, cjm для
всех j  i . Иными словами каждый вектор
признаков относится к тому кластеру, к
которому он ближе согласно выбранной
метрике.
b)Выполняется коррекция центроидов
по следующей формуле:
 xCi m  X
cim 1 
,  i  1,..., k . (11)
 xC m 1
i
c) Присвоить m=m+1.
d)Вычислить среднее расстояние между
векторами признаков и соответствующим
им центроидами:
L
m   1 d x , cm  , j : x  C m. (12)
Dсред

i j
i
j
L i 1

e) Если

m 1  D m 
Dсред
сред
m 
Dсред
  , то перейти
на шаг (3 .а).
*  D m  .
f) Присвоить Dсред
сред
g) Присвоить ci*  cim,  i  1,..., k
–
набор результирующих кодовых векторов.
Шаг 4. Если k<K, тогда перейти на шаг (2),
иначе закончить работу.
Обобщенный алгоритм Ллойда довольно
легко реализуем, имеет сложность порядка
O(KLH) (H - количество итераций) и дает
хорошие результаты в большинстве
случаев. Однако этот метод находит только
первый локальный минимум, и качество
итоговой кластеризации сильно зависит от
начальных значений. Одним из способов
избавления от этих недостатков является
использование глобальной (межкластерной)
оптимизации.
Методом
такой
оптимизации могут быть случайный и
детерминированный обмен центроидов или
метод
разбиения-слияния.
Например,
рандомизированный локальный поиск
(RLS).
Данный алгоритм включает в себя этапы
глобальной и локальной оптимизации [3,4].
Шаг1.
Инициализация.
Случайным
образом выбираются K (количество
кластеров) векторов признаков в качестве
центроидов. На основе этого создается
оптимально
разбиение
по
правилу
«ближайшего соседа». В результате этого
алгоритм будет нечувствительным к
начальному
разбиению.
Установить
счетчик итераций m =1.
Шаг 2. Итерация.
a) Случайный
обмен.
Случайным
образом выбирается кластер и его центроид
замещается случайно выбранный вектором
признаков:
cim  x j | i  random1, K , j  random1, L . (13)
b)Локальное переразбиение. Строится
новое разбиение с учетом изменившегося
центроида.
c) Вычисление новых центроидов по
новому разбиению.
d)Присвоить m=m+1.
Шаг 3. Пусть f – целевая функция. Если
f m  f m1 , тогда в качестве текущего
решения
выбираются
центроиды,
получившиеся на шаге (2.c).
Шаг 4. Если m<T, тогда перейти на шаг (2),
иначе закончить работу.
Значение T – фиксировано и задается перед
работой алгоритма (T=100, 200, 500, 1000,
2000). Сложность алгоритма О(TL). В
качестве целевой функции f может служить
значение среднеквадратической ошибки:
1 L
f   d xi , cjm , j  xi  C j m . (14)
L i 1
Предлагается улучшить работу данного
алгоритма, заменив шаг (2.c) несколькими
итерациями
обобщенного
алгоритма
Ллойда. Это позволит гораздо лучшим
образом провести локальную оптимизацию
и построить оптимальные кластеры в
отличие
от
обычной
процедуры
вычисления центроидов.
Предложенное улучшение
качества
немного замедлит работу алгоритма, что в
большинстве приложение не является столь


230
критичным. В этом случае сложность
алгоритма будет О(TKL).
Существуют также и другие алгоритмы
кластеризации, но описанные выше в
общем
случае
являются
более
эффективными и удобными в реализации
[7].
Полученная одним из вышеописанных
образов кодовая книга представляет модель
данного диктора и затем заносится в базу
данных дикторов, которая представляет
собой множество кодовых книг (эталонов).
Процесс идентификации диктора по
существующему набору кодовых книг (база
данных дикторов) похож на процесс
обучения. Из речи тестового диктора
извлекается множество векторов признаков
X  xi | i  1,..., L. Затем определяется,
какой из кодовых книг в базе данных
лучше
соответствует
полученное
множество
кодовых
векторов.
Как
говорилось выше, база данных дикторов
состоит из множества кодовых книг
(эталонов) – B  C1,..., C N , где N –
количество дикторов в базе данных, а
–
кодовая
книга
C  ci1 ,..., cik 
соответствующая i -му диктору (k – размер
кодовой книги). Здесь и далее для
упрощения подразумевается, что в базе
данных
находятся
кодовые
книги
одинакового размера, хотя все алгоритмы
справедливы и для иного случая.
Одним из простых и эффективных
способов определения той кодовой книги,
которой лучше всего соответствуют
векторы признаков тестового диктора,
описывается следующим алгоритмом [7]:
Шаг 1. Для каждой кодовой книги
Ci  i  1,..., N вычислить искажение
Di  d  X , Ci 
(15)
между множеством векторов признаков X и
кодовой книгой Ci .
Шаг 2. Определить индекс неизвестного
диктора ID как индекс, доставляющий
минимум мере искажения:
ID  arg min Di  .
(16)
i 1,..., N
Мера искажения (15) определяет различие
между множеством векторов признаков
и
кодовой
книгой
X  x1 ,..., x L 
Ci  ci1 ,..., cik . Наиболее интуитивно в
этом случае использовать меру, которая
находит соответствие между каждым
вектором множества X и ближайшим к
ним кодовому вектору из Ci , и вычисляет
среднее этих расстояний:
1 L k
d  X , Ci    min d E x j , cik ,
(17)
L j 1 k 1
 

где d E – Евклидова метрика (2).
Довольно интересным является подход,
основанный
на
введении
весовых
коэффициентов [8]. Основываясь на этой
идее,
был
придуман
алгоритм,
осуществляющий
взвешенную
идентификацию.
Перед
сравнением
вычисляется корреляция между кодовыми
книгами, и кодовым векторам, которые
имеют более высокую различительную
мощность, назначаются большие веса. Не
требуется никакой априорной информации
о векторах признаках. В отличие от
предыдущего метода здесь оказалось
удобнее использовать не меру различия, а
меру
сходства.
Поэтому
при
идентификации выбирается та кодовая
книга, которая максимизирует расстояние
между множеством векторов признаков X
и кодовой книгой Ci :
ID  arg max si  X , Ci ,
(18)
i 1,..., N
где мера сходства определяется как:
1 L
1
.
s X , Ci    k
L j 1
min d E x j , cik
k 1


(19)
Так как различные кодовые вектора имеют
разные различительные мощности, то
предлагается
для
идентификации
использовать не только расстояние от
векторов признаков до ближайшего
кодового вектора, но и различительную
мощность этого кодового вектора. Для
этого вводятся весовые коэффициенты, и
тогда мера сходства (19) будет выглядеть
следующим образом:
1 L
1
s X , Ci    k
w cijmin , (20)
L j 1
min d E x j , cik
k 1


 
где cijmin – ближайший кодовый вектор к
x j кодовой книге Ci , а w – весовая
функция.
Такое
взвешивание
можно
231
рассматривать как оператор, сдвигающий
разделяющую поверхность по направлению
к более значимым кодовым векторам. Для
каждого кодового вектора вычисляется
весовая
функция.
В
результате
модифицированная база данных дикторов
будет представляться как
Bm  C1,W1 ,..., CN ,WN 
где
–
веса,
Wi  wci1 ,..., wcik 
присвоенные i -ой кодовой книге. Веса
вычисляются каждый раз, когда в базу
данных добавляются новый диктор, что
выполняется на стадии обучения и не
влияет на сложность вычислений при
идентификации.
Вычисление
весовых
коэффициентов
осуществляется
по
следующей формуле:
1
w cij  N
,
1
 k
(21)
k 1, k  i min d c , c
E ij k m
 
m 1


i  1,..., N , j  1,..., K .
Заключение
Как
показали
эксперименты,
разработанный
метод
взвешенной
идентификации
значительно
лучше
справляется с задачей, когда количество
векторов признаков при тестировании
мало, т.е. идентификация происходит по
коротким фрагментам речи. Описанные
методы решают задачу идентификации на
замкнутом множестве, т.е. когда заведомо
известно,
что
эталон,
снятый
с
тестируемого диктора, находится в базе
данных. Если в качестве тестового диктора
взять диктора, чьего эталона в базе нет, то
данные алгоритмы выберут наиболее
похожего диктора, что в любом случае
будет ошибочно. Однако если ввести
некоторое пороговое значение для меры
искажения (сходства), то в случае
превышения этого порога для выбранного
диктора можно считать, что этот диктор
посторонний и его нет в базе данных.
Таким
образом,
решается
задача
идентификации на открытом множестве без
каких либо значительных изменений в
описанных методах. Пороги подбираются
экспериментально, и на практике такой
способ работает достаточно точно и
эффективно.
Список литературы
1. Горелик А. Л., Скрипкин В. А. Методы
распознавания: Учеб. пособие для вузов. -3-е
изд., перераб. и доп. - М.: Высш. шк., 1989. - 232
с.
2. Макхоул Дж.. Векторное квантование при
кодировании
речи.
//
—
ТИИЭР,
1985,т.73,№11,с.19-60.
3. Franti
P.,
Kivijarvi
J. Random swapping
technique for improving clustering in unsupervised
classification.//
ftp://ftp.cs.joensuu.fi/franti/papers/scia99-l.ps
4. Franti P., Kivijarvi J. Randomized local search
algorithm for the clustering Problem.//Pattern
Analysis
an
Applications,
3(4):
358-369,
2000,
ftp://ftp.cs.joensuu.fi/franti/papers/rls.ps
5. Gray R. M. Vector quantization. // IEEE ASSP
Mag., vol. 1, pp. 4-29, April 1984.
6. Kinnunen Т., Karkkainen I., Franti P. Is speech data
clustered? - statistical analysis of cepstral features.http://cs.joensuu.fi/pages/tkinnu/research/pdf/IsSpee
chClustered.pdf
7. Kinnunen Т., Kilpelainen Т., Franti P. Comparison
of clustering algorithms in speaker identification",
Proc. LASTED Int. Conf. Signal Processing and
Communications (SPC): 222-227. Marbella, Spain,
2000.
8. Kinnunen Т., Franti P. Speaker Discriminative
Weighting Method for
VQ-based Speaker
identification."
http://cs.joensuu.fi/pages/tkinnu/research/pdf/Discri
minativeightingMethod.pdf
Download