Выражение (2.5) соответствует правилу обучения состязательных нейронных сетей, в частности, правилу Кохонена. Подробнее см. в [2].
Существует различные схемы сжатия речи c помощью алгоритмов векторного квантования. Большинство из них основано на схеме “анализ-синтез”. Применяют два варианта таких схем – без обратной связи и с обратной связью [1]. В основе каждой из схем лежит модель синтеза речи на основе коэффициентов линейного предсказания [1]. В соответствии с этой моделью речь может быть получена путем подачи специальным образом подобранного возбуждающего сигнала на вход линейного фильтра, который моделирует резонансные частоты голосового тракта. Передаточная функция фильтра описывается уравнением
(2.6)где G - коэффициент усиления, ai - коэффициенты линейного предсказания, P - порядок предсказателя.
Возможная структурная схема системы низкоскоростного кодирования речи с помощью алгоритмов векторного квантования изображена на рисунке 2.2.
Процедура кодирования речи сводится к следующему:
- оцифрованный речевой сигнал s[n] нарезается на сегменты длительностью 20 мс (при fg=8 КГц в каждом сегменте будет по 160 выборок);
- для каждого сегмента вычисляются с помощью устройства оценивания (УО) параметры фильтра линейного предсказания и определяется ошибка предсказания d[n], соответствующая функции возбуждения;
- функция возбуждения и параметры фильтра линейного предсказания кодируются с помощью отдельных векторных квантователей и передаются в канал.
Процедура декодирования заключается в пропускании восстановленного сигнала возбуждения через синтезирующий фильтр (2.4), параметры которого переданы одновременно с функцией возбуждения.
Приведенное описание процессов кодирования и декодирования речи не является исчерпывающим, оно объясняет лишь принцип действия кодера. Практические схемы намного сложнее, и это связано в основном со следующими двумя моментами.
Во-первых, на рисунке 2.2 изображена схема без обратной связи. Лучшего качества синтезируемой речи можно добиться в схемах с обратной связью [1]. Однако такие схемы сложнее.
Во-вторых, описанная выше схема, использует кратковременное предсказание и не обеспечивает в достаточной степени устранения избыточной речи. Поэтому в дополнение к кратковременному предсказанию используется еще и долговременное предсказание [1]. Выходной сигнал фильтра кратковременного предсказания используется для оценивания параметров фильтра долговременного предсказания – задержки τ и коэффициента предсказания a:
При оценке качества кодирования и сопоставлении различных кодеров оцениваются разборчивость речи и качество синтеза речи (качество звучания). Для оценки разборчивости речи используется метод ДРТ (диагностический рифмованный текст). В этом методе подбираются пары близких по звучанию слов, отличающиеся отдельными согласными (“кол-гол-пол”), которые многократно произносятся рядом дикторов, и по результатам испытаний оценивается доля искажений [3,4].
Для оценки качества звучания используется критерий ДМП (диагностическая мера приемлемости) [4]. Испытания заключаются в чтении несколькими дикторами, мужчинами и женщинами, ряда специально подобранных фраз, которые прослушиваются на выходе тракта связи рядом экспертов-слушателей, выставляющих свои оценки по 5-балльной шкале. Результатом является средняя оценка мнений (MOS).
Обратим внимание на следующий факт. Если кодовая книга создается на обучающих данных, принадлежащих только одному диктору, тоне следует ожидать, что она будет обеспечивать хорошее качество звучания для другого диктора. Соответственно, кодовая книга, полученная в лабораторных условиях, не обеспечит того же качества звучания при записи речи в шумовой обстановке, например, в салоне автомобиля. Для построения дикторо-независимой системы необходимо проектировать кодовую книгу на речевых сигналах различных дикторов.
3 ОПИСАНИЕ ВЫБРАННОГО МЕТОДА СЖАТИЯ
Разработанные за последние 20 лет методы кодирования обеспечивают хорошее качество (разборчивость, натуральность звучания, повышенную возможность опознавания говорящего) при передаче речи в цифровой форме по узкополосным каналам связи. На практике широкое применение нашли кодеры с линейным предсказанием при многоимпульсном возбуждении и при возбуждении от кода.
Наиболее совершенным алгоритмом (с точки зрения качества) является алгоритм с векторным квантованием.
Рисунок 3.1 – Структурная схема кодирования
Речевой сигнал S разделяется на кадры длительностью в 20 мс. В каждом кадре с использованием алгоритма линейного предсказания (LPC) определяются параметры синтезирующего фильтра 1/А(z), после чего методом анализа через синтез находятся параметры сигнала возбуждения, минимизирующие взвешенный сигнал ошибки. Сигнал возбуждения представляется наборами индексов векторов извлекаемых из стохастической и адаптивной кодовых книг а также наборами соответствующих им коэффициентов усиления. При кодировании сигнала возбуждения кадр разбивается на 4 подкадра по 5 миллисекунд. В каждом подкадре кодируются и передаются индексы (9 бит на индекс), коэффициенты усиления. В целом кадр кодируется 144 битами из которых 40 бит отводятся на кодирование коэффициентов усиления с использованием скалярного квантования.
При использовании векторного квантования для каждого из двух коэффициентов усиления производилось объединение четырех значений, полученных для подкадров одного кадра, в один четырехмерный вектор. В результате этого для каждого кадра формировались два вектора коэффициентов усиления для квантования которых использовались различные кодовые книги. Формирование кодовых книг выполнялось на основе обучающей выборки размером 16 000 векторов, с использованием которой для каждого из векторов были построены по две кодовые книги размером 64 и 128 эталонных векторов (длина кодового слова 6 и 7 бит соответственно). При таких размерах кодовых книг количество бит, отводимых на кодирование коэффициентов усиления, сокращается соответственно на 28 и 26 бит на кадр.
Обучающая выборка формировалась в результате обработки речевого материала от двенадцати дикторов (5 женщин и 7 мужчин) общей продолжительностью 8 минут. Для построения кодовых книг использовался алгоритм К средних с начальными условиями, полученными использованием Диагностической Меры Приемлемости (DAM) путем прослушивания 12 фонетически сбалансированных 6-слоговых предложений, произносимых дикторами, не участвовавшими в формировании обучающей выборки. Качестов звучания оценивалось бригадой из 10 слушателей. По результатам оценки вычислялась средняя оценка мнений (процент предпочтений).
Таким образом, использование векторного квантования коэффициента усиления позволяет без ущерба качества звучания понизить скорость до 2,4 Кбит/сек.
Входные файлы должны быть 16-разрядные .WAV файлы, с частотой дискретизации в 8 кГц. Программное обеспечение большинства звуковых плат поддерживает этот формат файла.
Описание некоторых функций.
1) Функция Speech_process - моделирование вокодера, включая анализ, передачу, синтез, и графический интерфейс пользователя (GUI).
2) Функция COR - вычисление автокорреляции задержки.
Вычисление коэффициентов автокорреляции последовательности данных:
idim
C(i) = SUM rar(k) * rar(k-i) , где i = 0, ..., n
k=i+1
c0 = C(0)
3) Функция LSPDECOD - независимый LSP декодер;
4) Функция DECODHAM - расшифровывает кодируемое ключевое слово в получателе. Исправляет одиночные ошибки или обнаруживает многократные ошибки (проверка по чету).
5) Функция VDECODE - создает стохастический вектор возбуждения по индексу кодовой книги. Формирует LPC возбуждение.
6) Функция WAVHDR - создает заголовок файла для 16-разрядного, 8 кГц, моно 7) Функция ZEROFILT- нерекурсивный фильтр. Фильтр осуществлен в прямой реализации.
N -i
H (z) = SUM b (i) z
I=0
X (t) - > --- (z0) ----- b0 > ------ + ----- > y (t)
| |
Z1 ------ b1 > ------ +
| |
Z2 ------ b2 > ------ +
| |
::
| |
ZN ------ bN > ------ +
5 Тестирование программы на MATLAB
Кодовое представление параметров каждого из сегментов в шестнадцатеричном
виде:
ASCII hex-encoded representation of each set of frame parameters:
855C146BF548AD8EFE03BD2CD2ED0EE6B0A2
291C111D51673E41CD5BF56406582BCC3821
FF5046DBCDE6CE54DE5E67008A20498CAD30
575C908A636E8ED3AF0B46CC023EE29CB0BB
41BE7B8ADC0F9E5758DCDEC0C4C4C3A58CF4
193C70ECF504840F281C5E44082AB4EFB477
442088F484200F070AD21D60DEE9AF841D0E
A8CE80DF01A626049FE934A8C66735331CDD
0F863600A412234C603D33C5C2F632221F94
...
43F33E5F0B5F004800B70A4A5ADB9310067E
Рисунок 5.1 – амплитудная характеристика звукового файла Five.Wav
Рисунок 5.2 – частотная характеристика звукового файла Five.Wav
(после окна Хэмминга)
СИСТЕМНЫЕ ТРЕБОВАНИЯ
· 486DX4-100 или лучше;
· 16 (рекомендуется) Мбайт;
· 512 Кб минимум свободного места жесткого диска;
· Microsoft Windows v3.1 иливыше;
· MATLAB для Windows v4.0 или лучше
· программное обеспечение также запускается в UNIX и других средах рабочей станции.
В данном курсовом проекте с помощью пакета MATLAB был разработан ряд функций, осуществляющих сжатие речи по алгоритму векторного квантования, обеспечивающих сжатие речи до уровня 2400 бит/с и ниже. Предусмотрено несколько ступеней сжатия. Обеспечена работа системы в двух режимах: дикторо-зависимом и дикторо-независимом.
Библиографический список
1. Бондарев В.Н. Цифровая обработка сигналов: методы и средства/ В.Н. Бондарев, Г. Трестер, В.Н. Чернега.- Харьков: Изд-во Конус, 2001.-398 с.
2. Бондарев В.Н. Искусственный интеллект/ В.Н. Бондарев, Ф.Г. Аде.- Севастополь: Изд-во СевНТУ, 2002.-616 с.
3. Рабинер Л.Р Цифровая обработка речевых сигналов/ Л.Р. Рабинер, Р.В. Шафер.- М.: Радио и Связь. 1981.-495 с.
4. Ратынский М.В. Основы сотовой связи/ М.В. Ратынский; Под ред. Д.Б. Зимина.- М.: Радио и Связь, 1998.- 248 с.
5. Makhoul J. Vector Qvantization // Speech Coding Proceedings of the IEEE, 1985.- Vol. 73. - N 11.- P.1551-1588.