ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.12.2023
Просмотров: 245
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
91 1
( , )
1
( , )
1
T
j k
yt
t
C jk T M
j k
yt
t k
−
∑
=
=
∑ ∑
=
, (4.32а)
( , )
1
( , )
T
j k
y
Ot
t
t
jk
T
j k
yt
t
μ
∑
=
=
∑
, (4.32б)
( , )(
)(
)
1
( , )
T
T
j k
y
O
O
t
t
jk
jk
t
t
U jk
T
j k
yt
t
−
−
∑
=
=
∑
μ
μ
, (4.32в) где ( , )
y j k – вероятность того, что при заданной последовательности наблю- дений в момент времени
t
модель находится в состоянии j , причем наблю- даемый в этот момент вектор Ot порожден k -м компонентом смеси, т. е.
( ,
,
)
( ) ( )
( , )
( ) ( )
( ,
,
)
1 1
N
C
O
U
j
j
jk
t
jk
a
jk
t
t
j k
yt
N
M
j
j
N
a
C
O
U
t
jk
t
jk
t
jk
j
k
μ
β
β
μ
⎡
⎤ ⎡
⎤
⎢
⎥ ⎢
⎥
⎢
⎥ ⎢
⎥
= ⎢
⎥ ⎢
⎥
⎢
⎥ ⎢
⎥
∑
∑
⎢
⎥ ⎢
⎥
=
=
⎣
⎦
⎣
⎦
. (4.33)
Переоценка параметров модели
λ
по приведенным формулам при- водит к возрастанию функции правдоподобия
( | )
( | )
P O
P O
λ
λ
≥
. (4.34)
4.2. Линейное предсказание
Пусть имеется речевой сигнал ( )
S n
. Рассмотрим проблему предска- зания текущего значения на основании предыдущего, т.е.
( )
(
1)
S n
S n
α
=
− .
Предсказание будет выполнено с ошибкой ( )
( )
( )
e n
S n
S n
=
−
α
– ко- эффициент, выбираемый из условия минимизации ошибки [3]. Попробуем определить оптимальное значение
α
Среднее значение ошибки предсказания за короткий период
[
]
2 2( )
( )
(
1)
E
e n
S n
S n
n
n
α
=
=
−
−
∑
∑
92
Минимизируем ошибку, вычисляя частные производные E и при- равнивая их к нулю:
2 2 2
(
( ) 2
( ) (
1)
(
1))
E
S n
S n S n
S n
n
α
α
=
−
−
−
∑
2 0
2 ( ) (
1) 2
(
1)
E
S n S n
S n
n
α
α
∂ = = −
− +
−
∑
∂
или
2
( ) (
1)
(
1)
S n S n
S n
n
n
α
− =
−
∑
∑
, следовательно,
( ) (
1)
(1,0)
(1)
2
(1,1)
(0)
(
1)
S n S n
c
r
n
c
r
S n
n
α
−
∑
=
=
=
−
∑
. (4.35)
Коэффициент
α
связан с корреляционной структурой сигнала
(
1
α
< ) и не зависит от уровня энергии сигнала.
Общий случай
Пусть имеется речевой сигнал ( )
S n
. Задача заключается в предска- зании его текущего значения на основании k предыдущих, т.е.
( )
(
)
1
p
S n
S n k
k
k
α
=
−
∑
=
Ошибка предсказания определяется следующим образом:
( )
( )
(
)
1
p
e n
S n
S n k
k
k
α
=
−
−
∑
=
, где
{ }
k
α
– коэффициенты минимиза- ции ошибки.
Минимизируем ошибку путем отыскания оптимальных значений
{ }
k
α
Определим среднее значение ошибки предсказания за короткий период:
2 2( )
( )
(
)
1 2
2( ) 2
( ) (
)
(
)
1 1
2 2( )
2 ( )
(
)
(
)
. (4.36)
1 1
p
E
e n
S n
S n k
k
n
n
k
p
p
S n
S n S n k
S n k
k
k
n
k
n
n k
p
p
S n
S n
S n k
S n k
k
k
n
n
k
n k
α
α
α
α
α
⎧
⎫
⎪
⎪
=
=
−
−
=
∑
∑
∑
⎨
⎬
⎪
⎪
=
⎩
⎭
⎧
⎫
⎪
⎪
=
−
− +
−
=
∑
∑
∑
∑ ∑
⎨
⎬
⎪
⎪
=
=
⎩
⎭
⎧
⎫
⎧
⎫
⎪
⎪
⎪
⎪
=
−
−
+
−
∑
∑
∑
∑ ∑
⎨
⎬
⎨
⎬
⎪
⎪
⎪
⎪
=
=
⎩
⎭
⎩
⎭
93
Минимизируем ошибку относительно
{ }
l
α
для всех значений
1 l
p
< < , вычисляя частные производные E и приравнивая нулю:
0 2
( ) (
1) 2
(
)
(
)
1
p
E
S n S n
S n k S n l
k
n
n k
l
α
α
⎧
⎫
∂
⎪
⎪
= = −
− +
−
−
∑
∑ ∑
⎨
⎬
∂
⎪
⎪
=
⎩
⎭
Переставляя члены
( ) (
1)
(
) (
)
1
p
S n S n
S n k S n l
k
n
k
n
α
⎛
⎞
− =
−
−
∑
∑
∑
⎜
⎟
⎜
⎟
=
⎝
⎠
, получим
( ,0)
( , )
1
p
c l
c k l
k
k
α
= ∑
=
. (4.37)
Это уравнение известно как уравнение линейного предсказания
Юла – Волкера (Yule – Walker), k
α
– коэффициенты линейного предсказа- ния. Для его решения есть два метода.
Ковариационный метод
Уравнения для каждого значения l выразим в матричной форме:
c C
α
=
, где
1 2
p
α
α
α
α
⎡
⎤
⎢
⎥
⎢
⎥
= ⎢ ⎥
⎢
⎥
⎢
⎥
⎣
⎦
…
,
(1,1)
(1,2)
(1, )
(2,1)
(2,2)
(2, )
( ,1)
( ,2)
( , )
c
c
c
p
c
c
c
p
C
c p
c p
c p p
⎡
⎤
⎢
⎥
⎢
⎥
=
⎢
⎥
⎢
⎥
⎣
⎦
…
…
…
…
…
…
…
,
(1,0)
(2,0)
( ,0)
c
c
c
c p
⎡
⎤
⎢
⎥
⎢
⎥
=
⎢
⎥
⎢
⎥
⎣
⎦
…
Решение этого уравнения может быть получено с использованием обратной матрицы
1
C− .
1
C c
α
−
=
Ковариационная матрица симметрична. Первый алгоритм, исполь- зуемый для нахождения решения этого уравнения, известен как разложе- ние Чолеский (Cholesky).
Автокорреляционный метод
Найдем решение уравнения линейного предсказания методом авто- корреляции:
1
R r
α
−
=
, где
1 2
p
α
α
α
α
⎡
⎤
⎢
⎥
⎢
⎥
= ⎢ ⎥
⎢
⎥
⎢
⎥
⎣
⎦
…
,
(0)
(1)
(
1)
(1)
(0)
(
2)
(
1)
(
2)
(0)
r
r
r p
r
r
r p
R
r p
r p
r
−
⎡
⎤
⎢
⎥
−
⎢
⎥
=
⎢
⎥
⎢
⎥
−
−
⎣
⎦
…
…
…
…
…
…
…
,
(1)
(2)
( )
r
r
r
r p
⎡
⎤
⎢
⎥
⎢
⎥
=
⎢
⎥
⎢
⎥
⎣
⎦
…
94
Матрица R симметрична, все элементы по диагонали равны. Это оз- начает, что
−
обратная матрица
1
R− всегда существует;
−
корни уравнения находятся в левой половине плоскости.
Процесс линейного предсказания может рассматриваться как фильтрация. Отмечая, что
( )
( )
(
)
1
p
e n
S n
S n k
k
k
α
=
−
−
∑
=
и ( )
( ) ( )
E z
S z A z
=
, получаем
( ) 1 1
p
k
A z
z
k
k
α
−
= − ∑
=
, где
( )
A z называется анализатором,
1
( )
A z
– синтезатором.
Рассчитаем ошибку линейного предсказания. Вернемся к выраже- нию для ошибки (4.36) и представим его в разных формах:
– автокорреляционный метод: (0)
( )
1
p
E r
r k
k
k
α
=
− ∑
=
;
– ковариационный метод: (0,0)
(0, )
1
p
E c
c
k
k
k
α
=
− ∑
=
Линейное предсказание имеет многочисленные формы, включая ме- тод ковариации, автокорреляции, решетки и др. Эти формы изучаются в таких дисциплинах, как идентификация систем, обработка сигналов, тео- рия вероятностей, исследование операций.
Контрольные вопросы
1.
Каковы особенности СММ в задачах распознавания речи?
2.
Каковы параметры лево-правых СММ?
3.
Какие проблемы необходимо решать при использовании СММ?
4.
Каковы отличительные особенности алгоритма прямого – обрат- ного хода?
5.
Каковы особенности алгоритма Витерби?
6.
Каковы особенности алгоритма Баума – Велча?
7.
Что такое линейное предсказание и как оно определяется?
8.
Каковы методы решения уравнения линейного предсказания?
9.
Как определяется ошибка линейного предсказания?
95
1 2 3 4 5 6 7 8 9 ... 13
Глава 5. АНАЛИЗ РЕЧИ
Речь представляется файлом отсчетов, полученных в результате ее оцифровки. Анализ позволяет извлечь из него полезную информацию, ко- торая может относиться к разному уровню обработки данных: звуков, слов, фраз и т. д., вплоть до понимания смысла. В настоящей главе рас- сматриваются задачи нижнего уровня. Речь сегментируется по времени на отрезки приблизительно по 20 мс, в пределах которых сигнал считается стационарным. Анализ опирается на спектральные методы.
5.1. Управление окнами
Для ограничения частотного спектра или временной области задания сигналов применяются частотные или временные окна. Окна могут быть различного типа. Они характеризуются графическими зависимостями сво- их коэффициентов и различными специфическими параметрами. Наиболее широко используются гауссовы окна, дающие малые искажения спектра в процессе его ограничения в окнах. Окна представляют собой зависимость коэффициента передачи
( )
W k от номера отсчета k [39, 40, 43].
Использование окон лежит в основе кратковременного, или оконного преобразования Фурье. Это преобразование реализуется, в частности, при по- строении спектрограмм в плоскости частота – время. В таких спектрограммах амплитуды составляющих спектра задаются функциональной окраской. Спек- трограммы более информативны, чем обычные спектры сигналов.
MATLAB содержит целый ряд стандартных весовых функций [23,
47]. Они возвращают векторы отсчетов, которые могут использоваться в качестве одного из параметров разнообразных функций непараметриче- ского спектрального анализа.
В рассмотренных ниже функциях в качестве параметра принимают требуемую длину вектора ( )
n , которая должна быть целым положитель- ным числом, и возвращают вектор-столбец W . При
1
n
= все функции воз- вращают значение «1».
Амплитудный спектр весовой функции соответствует частотной ха- рактеристике нулевого канала ДПФ при использовании данной весовой функции. При рассмотрении конкретных функций графики их амплитуд- ных спектров строятся в логарифмическом масштабе. Чтобы обеспечить на нулевой частоте значение спектральной функции, равное единице (0 дБ), перед вычислением спектра весовые функции нормируются: делятся на сумму своих отсчетов.
96
Графики спектров строятся функцией freqz. Поскольку фазовый спектр для всех весовых функций линейно зависит от частоты, его графики не пред- ставляют интереса и потому не приводятся. Для повышения наглядности час- тотная ось градуируется в номерах каналов ДПФ, для этого при вызове функции freqz указана частота дискретизации, равная длине окна.
Существует множество применяемых в ЦОС окон: окно Бартлетта; окно Блэкмана; окно Чебышева;
окно Хэннинга
;
окно Кайзера; треуголь- ное окно; прямоугольное окно и окно Хэмминга [23, 43]
.
Рассмотрим реализацию основных окон, широко применяемых в об- работке речи.
Окно Чебышева.
Отсчеты окна рассчитываются путем вычисления обратного преобразования Фурье от его частотной характеристики: cos ( -1)arccos
( )
ch((
1)arch( ))
n
d
S
n
ω
π
ω
ω
α
⎛
⎞
⎛
⎞
⎜
⎟
⎜
⎟
⎜
⎟
⎝
⎠
⎝
⎠
=
−
, (5.1) где
20
arch(
)
10
ch
1
/
.
n
β
α
⎛
⎞
= ⎜
⎟
⎜
⎟
−
⎝
⎠
Здесь
β – сте- пень подавления бо- ковых лепестков, дБ;
n – требуемое коли- чество отсчетов окна.
Для окна Чебышева все боковые лепестки имеют одинаковый заданный уровень.
В MATLAB ок- но Чебышева w =
=chebwin(n,beta) зада- ет n-точечный вектор коэффициентов с пульсациями на уров- не beta (
β ) (по умол- чанию 100 дБ) в поло- се задержания отно- сительно амплитуды в полосе пропускания.
Рис. 5.1. Окно Чебышева
Рис. 5.2. Амплитудный спектр окна Чебышева
97
На рис. 5.1, 5.2 приведены графики окна Чебышева и его амплитуд- ного спектра при n = 16 для уровня боковых лепестков, равного 40 дБ. w = chebwin(16, 40); w = w/sum(w); plot (w); figure;
[h, f] = freqz (w, 1, [], 16); plot (f, 20*log10(abs(h))); ylim ([-60 0]); grid on
Как видно, с уменьшением уровня боковых лепестков главный лепе- сток расширяется.
Окно Кайзера.
Отсчеты окна Кайзера рассчитываются по формуле
2 2
1 1
0 1
( )
( )
0
k n
I
n
w k
I
β
β
⎛
⎞
− −
⎛
⎞
⎜
⎟
− ⎜
⎟
⎜
⎟
−
⎝
⎠
⎝
⎠
=
, k= 1, 2, …, n. (5.2)
Здесь
0
I
– модифицированная функция Бесселя первого рода нуле- вого порядка.
Чем больше
β , тем больше доля энергии, сосредоточенной в глав- ном лепестке спектра (и тем шире этот лепесток), и тем меньше уровень боковых лепестков. На практике уровень значения
β находится в преде- лах от 4 до 9.
Параметр
β характеризует затухание боковых лепестков окна. Для получения из окна Кайзера фильтра типа КИХ параметр
β выбирается из формулы
0 1102 8 7 50 0 4 0 5842 0 07886 21 50 21 21 0 0 21
,
(
, ),
,
,
,
(
),
(
)
,
.
α
α
β
α
α
α
α
−
>
⎧
⎪⎪
=
+
−
≥ ≥
−
⎨
⎪
< <
⎪⎩
В MATLAB окно Кайзера задается функцией w = kaiser (n, beta).
На рис. 5.3, 5.4. приведены графики окна Кайзера и его амплитудно- го спектра при n = 16 для двух указанных выше значений
β
w1 = kaiser (16, 4); w2 = kaiser (16, 9); w1 = w1/sum(w1); w2 = w2/sum(w2); plot(w1); hold on; plot(w2, '--'); hold off; figure;
[h1, f]= freqz(w1, 1, [], 16); h2 = freqz(w2, 1, [], 16); plot (f, 20*log10(abs(h1))); hold on; plot (f, 20*log10(abs(h2)), '--'); hold off; ylim([-100 0]); grid on
98
Из графиков видно, что при
β
= 4 главный лепесток имеет ширину
1,75 (за единицу принято расстояние между соседними каналами частотно- го анализа), а уровень боковых лепестков составляет –32,5 дБ. При
β
= 9 главный лепесток расширяется примерно до 3,2, а уровень боковых лепе- стков падает до –66 дБ.
Прямоугольное окно.
Отсчеты прямоугольного окна определяются следующим образом:
1, при 0
;
( )
0, другое.
k n
w k
≤ <
⎧
= ⎨
⎩
. (5.3)
В MATLAB прямоугольное окно реализуется функцией
w = boxcar(n).
На рис. 5.5, 5.6 приведены графики прямоугольного окна и его ам- плитудного спектра при n = 8.
Рис. 5.3. Окно Кайзера:
––––– –
β
=4, - - - - - –
β
=9
Рис. 5.4. Амплитудный спектр окна Кайзера
Рис. 5.5. Прямоугольное окно
Рис. 5.6. Амплитудный спектр прямоугольного окна
99
w = boxcar(8); w = w/sum(w); plot(w); figure;
[h, f]= freqz(w, 1, [], 16); plot (f, 20*log10(abs(h))); ylim([-50 0]); grid on
Уровень первого бокового лепестка составляет 13,0 дБ.
Окно Хэмминга.
Коэффициенты n-точечного окна Хэмминга вы- числяются по формуле
(
1) 0 55 0 46cos 2 1
k
w k
,
,
n
π
⎛
⎞
+ =
−
⎜
⎟
−
⎝
⎠
, k = 0, 1, …, n–1. (5.4)
В MATLAB окно Хэмминга задается функцией
w = hamming (n, ['sflag']).
Параметр sflag может иметь следующие значения:
symmetric – задает симметричное окно (используется по умолчанию), для которого w(k) = w(n+1–k) ;
periodic – создается слегка несимметричное окно, синусоидальные компоненты которого будут аккуратно стыковаться при соединении не- скольких экземпляров окна.
При задании периодического варианта n–1 в знаменателе формулы
(5.4) заменяется на n. Возможна иная трактовка: выполняется расчет по приведенной формуле для окна длиной n+1, затем последний элемент от- брасывается.
На рис. 5.7, 5.8 приведены графики окна Хэмминга и его амплитуд- ного спектра при n = 16. w = hamming(16); w = w/sum(w); plot (w); figure;
[h, f] = freqz (w, 1, [], 16); plot (f, 20*log10(abs(h))); ylim ([-80 0]); grid on