Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
1. МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
Диплом на тему:
«Разработка программных средств для
идентификации диктора по голосу»
Выполнил
Петрыкин С.О.
Дипломный руководитель
Мельников А.О.
2. • Провести анализ основных алгоритмов, идентификацииПровести анализ основных алгоритмов, идентификации
диктора на основе скрытых Марковских моделейдиктора на основе скрытых Марковских моделей
• Разработать общую схему идентификации диктораРазработать общую схему идентификации диктора
• Разработать структуру программных модулей, реализующихРазработать структуру программных модулей, реализующих
общую схему идентификации диктора, а также разработатьобщую схему идентификации диктора, а также разработать
соответствующие модули программного обеспеченьясоответствующие модули программного обеспеченья
• Провести серию экспериментов на кодовой книге малогоПровести серию экспериментов на кодовой книге малого
объёмаобъёма
• Исследовать зависимость вероятности распознавания отИсследовать зависимость вероятности распознавания от
различных параметров идентификацииразличных параметров идентификации
Цели дипломной работыЦели дипломной работы
3. • Шумоочистка и отделение полезного сигналаШумоочистка и отделение полезного сигнала
• Преобразование входного речевого сигнала в наборПреобразование входного речевого сигнала в набор
акустических параметровакустических параметров
• Приведение акустической формы сигнала кПриведение акустической формы сигнала к
внутреннему алфавиту эталонных элементоввнутреннему алфавиту эталонных элементов
• Построение последовательности состояний модели иПостроение последовательности состояний модели и
вычисление вероятности принадлежности этойвычисление вероятности принадлежности этой
модели диктору.модели диктору.
Постановка задачи:Постановка задачи:
Идентифицировать диктора по голосуИдентифицировать диктора по голосу
Основные шаги решения задачи идентификации диктораОсновные шаги решения задачи идентификации диктора::
Задача идентификации диктора и ее решениеЗадача идентификации диктора и ее решение
4. Тексто-зависимые и тексто-независимые системыТексто-зависимые и тексто-независимые системы
• Dynamic time warping (DTW)Dynamic time warping (DTW)
• Скрытые Марковские модели (СММ)Скрытые Марковские модели (СММ)
• Нейронные сетиНейронные сети
Обзор методов идентификацииОбзор методов идентификации
спектограммы словспектограммы слов
6. 1) Сегментация (разбиение на отрезки)1) Сегментация (разбиение на отрезки) 2) Взвешивание каждого полученного2) Взвешивание каждого полученного
отрезка с помощью окна Хеммингаотрезка с помощью окна Хемминга
3)Вычисление речевых признаков3)Вычисление речевых признаков
Преобразование входного речевого сигнала в набор акустическихПреобразование входного речевого сигнала в набор акустических
параметровпараметров
7. 0 20 40 60 80 100 120 140 160
-2
0
2
4
6
8
x 10
-3
0 5 10 15
-6
-4
-2
0
2
Кепстральные коэффициентыКепстральные коэффициенты
Сигнал до полученияСигнал до получения
кепстральных коэффициентовкепстральных коэффициентов
Соответствующие сигналу кепстральныеСоответствующие сигналу кепстральные
коэффициенты (коэффициенты (N = 15)N = 15)
В качестве признаков, описывающих речь, наиболее широко применяются кепстральныеВ качестве признаков, описывающих речь, наиболее широко применяются кепстральные
коэффициенты , которые формально определяются следующим образом:коэффициенты , которые формально определяются следующим образом:
° (log(| ( ) |))C X= Φ Φ
ur uur
Метод вычисления кепстра из коэффициентов линейного предсказанияМетод вычисления кепстра из коэффициентов линейного предсказания
1
1
1
, 1,...,
k
ik k k i
k
c a ic a k p
k
−
−
−
= + =∑
1
,ik k ic ic a k p
k −= >∑
Коэффициент определяется по формуле:
2
0 lnc σ=
(0)
2
( )p
E
E
σ =
0c
8. Вычисление речевых признаков на кепстральных коэффициентов сВычисление речевых признаков на кепстральных коэффициентов с
помощью алгоритма Дарбинапомощью алгоритма Дарбина
Автокорреляционный методАвтокорреляционный метод
1 2
1
[ (1) (2)... (3)]
[ ... ] -
(| |) ( ), 1 -
T
T
p
p
k n n
k
R ra
r r r r àâò î êî ððåëÿöèî í í û é âåêò î ð
a a a a âåêò î ð êî ýô ô èöèåí ò î â ëèí åéí î ãî ï ðåäñêàçàí èÿ
a R i k R i i p ì àò ðè÷í î å óðàâí åí èå î ò í î ñèò åëüí î ï àðàì åò ðî âï ðåäñêàçàí èÿ
=
=
= −
=
− = ≤ ≤∑
Алгоритм ДарбинаАлгоритм Дарбина
(0)
1
( 1) ( 1)
1
( )
( ) ( 1) ( 1)
( ) 2 ( 1)
( )
(0)
[ ( ) ( )]/ , 1 ;
, 1 1
(1 )
, 1
i
i i
i j
j
i
i i
i i i
j j i i j
i i
i
p
j j
E R
k R i a R i j E i p
a k
a a k a j i
E k E
a a j p
−
− −
=
− −
−
−
=
= − − ≤ ≤
=
= − ≤ ≤ −
= −
= ≤ ≤
∑
9. { }1 2, , , TO O O O= K
Из массива векторов кепстральных коэффициентов с помощью векторногоИз массива векторов кепстральных коэффициентов с помощью векторного
квантования получаем массив индексов векторов из кодовой книгиквантования получаем массив индексов векторов из кодовой книги
Векторное квантование кепстральных коэффициентовВекторное квантование кепстральных коэффициентов
Наблюдаемая последовательностьНаблюдаемая последовательность
10. Построение кодовой книги. Алгоритм К-среднихПостроение кодовой книги. Алгоритм К-средних
Исходные точки и случайно
выбранные начальные точки
Точки, отнесённые к начальным
центрам
Вычисление новых
центров кластеров
Предыдущие шаги повторяются,
пока алгоритм не сойдётся
11. ( ){ }
( ) ( )| , 1 , 1 .
j
j k t t
B b k j,
b k P v ât q S j N k M
= −
= = ≤ ≤ ≤ ≤
ðàñï ðåäåëåí èå âåðî ÿòí î ñòåé ï î ÿâëåí èÿ ñèì âî ëî â í àáëþ äåí èÿ âñî ñòî ÿí èè
СММ обозначаются и характеризуется следующими величинами:СММ обозначаются и характеризуется следующими величинами:
{ } ( )i i 1 iπ = π = P q = S , 1 i Nπ− ≤ ≤í à÷àëüí î å ðàñï ðåäèëåí èå âåðî ÿòí î ñòåé ñî ñòî ÿí èé, .
{ }
( )1 | , 1 ,
ij
ij t j t i
A a
a P q S q S i j N+
= −
= = = ≤ ≤
ðàñï ðåäåëåí èå âåðî ÿòí î ñòåé ï åðåõî äî â ì åæäóñî ñòî ÿí èÿì è
Т - число символов в наблюдаемой последовательности;
N - число состояний модели;
М - число различных символов наблюдения;
1 2{ , , , }TO O O O= −K ï î ñëåäî âàòåëüí î ñòü í àáëþ äåí èé
1 2{ , , , }NS S S S= −K ì í î æåñòâî ñî ñòî ÿí èé ì î äåëè;
λ
Структура скрытых Марковских моделейСтруктура скрытых Марковских моделей
Скрытая Марковская модель – это модель, состояния которой нам не видны (скрыты отСкрытая Марковская модель – это модель, состояния которой нам не видны (скрыты от
нас). Таким образом мы не можем видеть из какого в какое состояние переходит модель нанас). Таким образом мы не можем видеть из какого в какое состояние переходит модель на
каждом шаге. Мы видим лишь результат пребывания системы в том или ином состоянии –каждом шаге. Мы видим лишь результат пребывания системы в том или ином состоянии –
наблюдения.наблюдения.
12. Алгоритм прямого-обратного хода:
( ) ( ) ( ) ( )
( ) ( ) ( )
1 1
1
1 1
1
1) 3) |
2)
N
i i T
i
N
t t ij j t
i
i b O P O i
j i a b O
α π λ α
α α
=
+ +
=
= =
=
∑
∑
( )
( ) ( )1 2
1 2
,
, | ,
,
.
t
t t t i
t
i
i
i P O O O q S
O O O
t S
α
α λ= =L
L
Ââî äèòñÿ ï ðÿì àÿ ï åðåì åí í àÿ î ï ðåäåëÿåì àÿ âû ðàæåí èåì
êî òî ðàÿ ï ðåäñòàâëÿåò ñî áî éâåðî ÿòí î ñòü ï î ÿâëåí èÿ ÷àñòè÷í î é
ï î ñëåäî âàòåëüí î ñòè í àáëþ äåí èé ï ðè÷åì ñî ñòî ÿí èå
â ì î ì åí í ò åñòü
( )
( ) ( )1 2
,
| , ,
1
t
t t t T t i
i
i P O O O q S
t
β
β λ+ += =
+
L
Ââî äèòñÿ î áðàòí àÿ ï åðåì åí í àÿ î ï ðåäåëÿåì àÿ âû ðàæåí èåì
êî òî ðàÿ äëÿ çàäàí í î é ì î äåëè ï ðåäñòàâëÿåò ñî áî é âåðî ÿòí î ñòü ï î ÿâëåí èÿ
÷àñòè÷í î é ï î ñëåäî âàòåëüí î ñòè í àáëþ äåí èé î ò ì î ì åí òà âðåì åí è ä
.i
T
S t
î
è ñî ñòî ÿí èÿ â ì î ì åí ò âðåì åí è
( ) ( ) ( ) ( )
( ) ( ) ( )
1 1
1
1 1
1
1) 1 3) |
2)
N
T i i
i
N
t ij j t t
j
i P O b O i
i a b O j
β λ π β
β β
=
+ +
=
= =
=
∑
∑
Алгоритм прямого-обратного ходаАлгоритм прямого-обратного хода
1 2, ,..., TO O O O=Пусть задана последовательность наблюдений и модель
Как эффективно вычислить вероятность появления этой последовательности
наблюдений для данной модели?
( ), ,A Bλ π=
( )|P O λ
13. ( )
( )
1
1
1
1
,
T
t i
t
T
t i j
t
iожидаемое число переходов из S
i jожидаемое число переходов из S в S
γ
ξ
−
=
−
=
=
=
∑
∑
Каким образом нужно подстроить параметры модели
для того чтобы максимизировать
Проблема 3
( )
( ) ( )| ,
t
i
t t i
i
t S
O i P q S O
γ
λ γ λ= =
Î ï ðåäåëèì âåëè÷èí ó êàêâåðî ÿòí î ñòüï ðåáû âàí ðèÿ ì î äåëè
âì î ì åí ò â ñî ñòî ÿí èè ï ðè çàäàí í î é ï î ñëåäî âàòåëüí î ñòè
í àáëþ äåí èé è ì î äåëè :
( )
( ) ( )1
,
1
, , | , .
t
i j
t t i t j
i j
t t
S S
i j P q S q S O
ξ
ξ λ+
+
= = =
Определим величину - вероятность того, что при заданной
последовательности наблюдений в моменты времени и
система будет соответственно находиться в состояниях и :
( )
( ) ( ) ( )
( )
( ) ( ) ( )
( ) ( ) ( )
1 1 1 1
1 1
1 1
,
|
t ij j t t t ij j t t
t N N
t ij j t t
i j
i a b O j i a b O j
i j
P O
i a b O j
α β α β
ξ
λ
α β
+ + + +
+ +
= =
= =
∑∑
( )∑=
=
N
j
tt ji
1
,ξγ
( )1( ) ( 1)i iожидаемаячастота число раз пребываниявсостоянии S в момент t iπ γ= = =
( )
( )
1
1
1
1
,
T
t
i j t
ij T
i
t
t
i j
ожидаемое числопереходовизсостояния S всостояние S
a
ожидаемое числопереходовизсостояния S
i
ξ
γ
−
=
−
=
= =
∑
∑
( )
( )
( )
1
. .
1
t k
T
t
t
s t O vj k
j T
j
t
t
i
ожидаемое числопереходоввсостояниеS и наблюдения символа v
b k
ожидаемое числопереходоввсостояние S
i
γ
γ
=
=
=
= =
∑
∑
Обучение скрытой Марковской моделиОбучение скрытой Марковской модели
( ), ,A Bλ π=
( )|O λ
17. Экономическая эффективность проектаЭкономическая эффективность проекта
График разработки ПО
Основные технико-экономические показатели проекта
Наименование
показателей
Единица
измерения
Базовый
вариант
Проектный
Вариант
Проектный
вариант
в % к базовому
1.способ обработки
информации
–
до применения
разработанного
ПП
с использованием
разработанного
ПП
–
2. кол-во работников чел. 4 2 50
3. годовые затраты
на обработку
информации
чел. час.
маш. час.
7176
–
3588
2512
50
–
4. потребность в
производственных
площадях
м2
12 12 100
5. капитальные
вложения
руб. 72000 152716 212,11
6. годовые текущие
затраты на обработку
информации
руб. 1474920 876335 59,42
7. годовые
приведенные затраты
на обработку
информации
руб. 1485720 899242 60,53
8. годовой
экономический
эффект
руб. – 586478 –
18. В рамках данного дипломного проекта были поставлены и решеныВ рамках данного дипломного проекта были поставлены и решены
следующие задачи:следующие задачи:
• Реализован программный блок для определения характеристикРеализован программный блок для определения характеристик
речи диктора, основанный на методе кепстральных коэффициентов.речи диктора, основанный на методе кепстральных коэффициентов.
• Для оптимального хранения и использования характеристик речиДля оптимального хранения и использования характеристик речи
различных дикторов был разработан алгоритм построения кодовойразличных дикторов был разработан алгоритм построения кодовой
книги основанный на методе К-средних.книги основанный на методе К-средних.
• Реализован программный блок для построения Марковской моделиРеализован программный блок для построения Марковской модели
описывающий состояние речи диктораописывающий состояние речи диктора
• Реализована эффективная процедура для идентификации диктораРеализована эффективная процедура для идентификации диктора
ВыводыВыводы