47370 (665778), страница 4
Текст из файла (страница 4)
Во всех случаях параметры синтезатора непрерывно обновляются при смене анализируемых кадров речи. Чтобы избежать эффектов, связанных со скачками значений параметров, необходимо плавно изменять параметры с помощью интерполяции при переходе от одного участка речи к другому. При прямой форме синтеза может возникать ситуация, соответствующая неустойчивому фильтру, хотя исходные значения относились к устойчивому фильтру. В каскадной структуре устойчивость обеспечивается проще.Определение параметров возбуждающего сигнала в системе анализа-синтеза с линейным предсказанием, как правило, основывается на исследовании сигнала ошибки, получаемого пропусканием исходного речевого сигнала через фильтр с характеристикой, обратной той характеристике, которая аппроксимирует передаточную функцию голосового тракта. Полученный сигнал ошибки является аппроксимацией сигнала, возбуждающего речевое колебание. Для определения параметров возбуждающего сигнала можно применить один из известных алгоритмов различения звонкой и глухой речи, а также оценки периода основного тона, например на основе рассмотренного выше корреляционного анализа сигналов во временной области.
-
Кодирование речи методами анализа через синтез (AbS)
При классификации методов кодирования речи на скоростях 4,8... ...16 кбит/с выделяют две основные группы — методы анализа и синтеза (AaS — Analysis-and-Synthesis) и методы анализа через синтез (AbS – Analysis-by-Synthesis). Хотя такие схемы AaS, как RELP, АРС, АТС и SBC успешно работают на скоростях 9,6... 16 кбит/с, при скоростях ниже 9,6 кбит/с они не могут обеспечивать хорошее качество речи. Это объясняется двумя причинами: 1) кодируемая речь не анализируется на предмет эффективности, т.е. не производится коррекция искажений в восстановленной речи; 2) ошибки, накопленные в предыдущих фреймах, не учитываются в момент анализа текущего фрейма и беспрепятственно переходят в следующие фреймы. В схемах AbS, особенно в AbS-LPC, эти факторы, как правило, учтены. В этих схемах используется процедура оптимизации типа «замкнутая петля» для нахождения возбуждающего сигнала, который при возбуждении моделирующего фильтра создает оптимальный речевой сигнал. Это позволяет схемам AbS более успешно работать на скоростях 4,8.. .9,6 кбит/с.
Методы AbS подходят не только для кодирования речи, но могут также использоваться для оценки и идентификации. Основная идея AbS такова. Во-первых, допускается, что сигнал можно исследовать и представить в какой-либо форме, например в виде временных или частотных доменов. Затем созданная модель сигнала подвергается оптимизации (подгонке), как показано на рис. 2.6.
Модель имеет несколько параметров, изменение которых приводит к изменению формы моделируемого сигнала. Для нахождения модели сигнала, которая имеет ту же форму, что и модель истинного сигнала, используют процедуры минимизации ошибки. Путем изменении параметров модели находят такой их набор, при котором синтезированный сигнал с минимальной погрешностью совпадает с реальным. Следовательно, когда достигнуто такое совпадение, параметры модели принимаются за параметры истинного сигнала.
Базовая структура системы кодирования AbS-LPC представлена на рис. 2.7. В этой модели есть три компонента, которые можно изменять, добиваясь максимального подобия синтезированного сигнала с исходным:
1) нестационарный фильтр;
2) возбуждающий сигнал;
3) процедура минимизации, основанная на восприятии.
Так как эта модель требует частого обновления параметров для получения хорошего совпадения с исходным сигналом, процедура анализа выполняется поблочно, т.е. входной речевой сигнал разбивается на блоки выборок. Длина анализируемых блоков (фреймов) и периодичность их обновления определяют скорость передачи (емкость) схемы кодирования. Алгоритм работы AbS-LPC следующий:
1. Инициализировать LPC и тональный фильтры (нестационарные фильтры), т.е. установить уровень нуля или минимального случайного шума;
2. Фрейм выборок речи заносится в буфер и на основании LPC-анализа вычисляется набор LPC-коэффициентов;
3. Используя вычисленные LPC-коэффициенты, формируется инверсный LPC-фильтр для вычисления первого восстановленного после квантования остатка. Если для поиска подходящего тона используется «замкнутая петля», надобность в этом шаге отпадает.
4. Так как LPC фрейм обычно слишком велик для эффективного анализа, при определении возбуждения фрейм разделяется на целое число подфреймов;
5. Для каждого подфрейма:
а) рассчитываются параметры тонального фильтра (долгосрочного предсказателя), такие, как задержка и связанный с ней коэффициент масштабирования;
б) тональный фильтра вместе с LPC-фильтром образуют каскадный фильтр, с помощью которого определяется наилучшее вторичное возбуждение, т.е. такое, которое минимизирует разницу между синтезированной и исходной речью.
6. Окончательно синтезированная речь получается при пропускании оптимального вторичного возбуждения через каскадный фильтр, параметры которого остались от синтеза предыдущего подфрейма.
7. Повторение шагов 2-6 для следующего фрейма последовательности.
Таким образом, и на стороне кодера, и на стороне декодера синтезируется речь, что необходимо для обновления содержимого памяти нестационарных фильтров. В результате и кодер, и декодер имеют идентичное содержание памяти. В противном случае для общей синхронности содержимое памяти пришлось бы передавать на декодер. Действительно, главный вопрос в схемах AbS-LPC — как сохранить это одинаковое состояние в кодере и декодере, когда средства передачи несовершенны, например, в системах подвижной радиосвязи, где очень высока доля ошибок.
Может показаться, что схема AbS-LPC не является полноценной схемой «анализа через синтез». Это связано с тем, что в действительности процедуры последовательны, т.е. сначала вычисляются параметры фильтра, которые фиксируются, и только затем следует вычисление методом «анализа через синтез» вторичного возбуждения. Хотя вторичное возбуждение выполняется по исходному сигналу, оно ограничено оптимальностью используемых фильтров. Поэтому, в идеале, требуется наилучшая комбинация как возбуждения, так и фильтров, которая означает одновременную оптимизацию всех параметров. Эта процедура очень сложна, насыщена вычислениями, поэтому ее обычно разбивают на последовательные этапы.
Главное отличие классических вокодеров от кодеров AbS-LPC состоит в том, что в классических вокодерах возбуждение разделяется на вокализованные (импульсное возбуждение) и невокализованные (возбуждение случайным шумом), что является первопричиной точности модели. В AbS-LPC такое деление не явно, и поэтому возбуждающий сигнал может носить любой характер — от псевдоимпульсного до шумоподобного, что позволяет синтезировать речь более высокого качества.
-
Векторное квантование и кодовые книги
Когда набор значений амплитуд, дискретизированных по времени, квантуется совместно как единичный вектор, такой процесс называется векторным квантованием (VQ – vector quantisation), известный также как блочное квантование.
Будем считать, что N-мерный вектор с действительными значениями («т» означает транспонирование);
– случайным образом меняющийся компонент с непрерывной амплитудой. При векторном квантовании вектору
ставится в соответствие другой N-размерный вектор
, имеющий действительные значения и дискретную амплитуду. Таким образом,
квантуется как
. Другими словами,
используется для представления
.
Обычно выбирается из конечного набора значений
, где
– размер кодовой книги, а
– набор векторов кодовой книги. Набор Y называется кодовой книгой или шаблоном.
Размер кодовой книги можно считать равным числу уровней скалярных квантователей. Для создания подобной кодовой книги N-размерное пространство разделяется на L областей или ячеек , и вектор
однозначно связывается с ячейкой
. Квантователь обозначается вектором кодовой книги
, если
находится в
:
, если
.
Процесс создания кодовой книги известен также как «обучение» или «настройка» кодовой книги. В качестве примера на рис. 2.9 иллюстрируется разделение двумерного пространства (N = 2) для целей векторного квантования. Область, обведенная жирной линией, — ячейка . При векторном квантовании любой входной вектор
, лежащий в ячейке
, квантуется как
. Другие векторы кодовой книги, соответствующие другим ячейкам, показаны точками.
Если размер вектора , векторное квантование трансформируется в скалярное квантование. Скалярное квантование имеет особое свойство, заключающееся в том, что хотя ячейки могут иметь разные размеры (размеры ступеней), все они имеют одинаковую форму. Однако при векторном квантовании ячейки в двух измерениях могут иметь разные формы, что дает векторному квантованию преимущество над скалярным квантованием.Equation Chapter (Next) Section 3
Гибридные кодеры
Чтобы избавиться от недостатков кодеров формы и вокодеров, был разработан гибридный метод кодирования, объединяющий преимущества обоих методов. По виду анализа гибридные кодеры подразделяются на два класса: с частотным разделением и временным разделением.
-
Гибридные кодеры с частотным разбиением
Главная концепция кодирования с частотным разбиением состоит в разделении речевого спектра на частотные полосы или компоненты. Соответственно могут использоваться либо набор фильтров, либо блок-преобразователь. После кодирования и декодирования эти составляющие используются для точного воспроизведения модели входного сигнала путем суммирования сигналов, полученных на выходе фильтров, или инверсных значений, полученных после преобразования. Главное допущение при кодировании с частотным разбиением состоит в том, что сигнал, подвергаемый кодированию, очень медленно изменяется во времени и может быть описан мгновенным спектром. Это связано с тем, что в большинстве систем, а особенно в системах реального времени, в текущий момент доступен только кратковременный сегмент входного сигнала.
В случае использования набора фильтров частота ω фиксирована, так что , а сигнал частотного домена
представляет собой сигнал на выходе постоянного во времени линейного фильтра с импульсной характеристикой
, возбуждаемого модулированным сигналом
:
31\* MERGEFORMAT (.)
где определяет ширину полосы речевого сигнала
вокруг центральной частоты
и является импульсной характеристикой анализирующего фильтра; знак
означает свертку функций.