Курсовая работа: Сжатие речи на основе алгоритма векторного квантования
При использовании векторного квантования для каждого из двух коэффициентов усиления производилось объединение четырех значений, полученных для подкадров одного кадра, в один четырехмерный вектор. В результате этого для каждого кадра формировались два вектора коэффициентов усиления для квантования которых использовались различные кодовые книги. Формирование кодовых книг выполнялось на основе обучающей выборки размером 16 000 векторов, с использованием которой для каждого из векторов были построены по две кодовые книги размером 64 и 128 эталонных векторов (длина кодового слова 6 и 7 бит соответственно). При таких размерах кодовых книг количество бит, отводимых на кодирование коэффициентов усиления, сокращается соответственно на 28 и 26 бит на кадр.
Обучающая выборка формировалась в результате обработки речевого материала от двенадцати дикторов (5 женщин и 7 мужчин) общей продолжительностью 8 минут. Для построения кодовых книг использовался алгоритм К средних с начальными условиями, полученными использованием Диагностической Меры Приемлемости (DAM) путем прослушивания 12 фонетически сбалансированных 6-слоговых предложений, произносимых дикторами, не участвовавшими в формировании обучающей выборки. Качестов звучания оценивалось бригадой из 10 слушателей. По результатам оценки вычислялась средняя оценка мнений (процент предпочтений).
Таким образом, использование векторного квантования коэффициента усиления позволяет без ущерба качества звучания понизить скорость до 2,4 Кбит/сек.
4 Разработка программы на MATLAB
Входные файлы должны быть 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