Содержание к диссертации
Введение
1. Состояние в области проектирования систем кодирования речи 17
1.1. Классификация алгоритмов кодирования речи 17
1.2. Основные алгоритмы кодирования речи 19
1.2.1. Кодирование формы сигнала 19
1.2.2. Кодирование параметров сигнала (вокодеры) 23
1.2.3. Кодирование на основе метода «анализ-через-синтез» 28
1.3. Структуры систем кодирования речи 31
1.3.1. в.726(АДИКМ) 31
1.3.2. GSM06.60 (ACELP) 33
1.3.3. GSM06.10 (RPE-LTP) 35
1.3.4. CDMA QCELP 8 (CELP) 37
1.3.5. G.723 (MP-MLQ) 39
1.4. Направления развития в области систем кодирования речи 41
1.5. Характеристики систем кодирования речи 42
1.6. Процесс проектирования систем кодирования речи 49
1.7. Возможности систем автоматизированного проектирования 52
1.7.1. Mathworks Matlab uSimulink 53
1.7.2. Eagleware-Elanix System Vue 55
1.7.3. National Instruments LabVIEW. 56
1.7.4. Agilent Advanced Design System 57
1.8. Цель и постановка задач исследования 57
1.9. Выводы 59
2. Разработка методов автоматизированного проектирования систем кодирования речи 62
2.1. Обобщенная модель системы кодирования речи 62
2.2. Методика проектирования систем кодирования речи 72
2.2.1. Системный уровень 74
2.2.2. Функциональный уровень 82
2.2.3. Компонентный уровень 94
2.2.4. Поддержка принятия решений 97
2.3. Библиотека блоков систем кодирования речи 101
2.3.1. Определение требований к библиотеке 101
2.3.2. Структура и состав библиотеки 102
2.3.3. Структура блока библиотеки 108
2.4. Выводы 109
3. Исследование и практическое внедрение разработанных методов 112
3.1. Структура подсистемы САПР (математическое, информационное и программное обеспечение) 112
3.2. Структура библиотеки 116
3.3. Примеры блоков 121
3.4. Модификация кодека G.726 131
3.5. Выводы 137
Заключение 139
Список используемых источников 143
Приложение 1 154
Приложение 2 156
Приложение 3 162
- Процесс проектирования систем кодирования речи
- Методика проектирования систем кодирования речи
- Структура и состав библиотеки
- Структура подсистемы САПР (математическое, информационное и программное обеспечение)
Введение к работе
В настоящее время наблюдается активное развитие и внедрение новых цифровых систем передачи звуковой информации (далее системы связи). Постоянно возрастающее число пользователей систем связи приводит к тому, что пропускная способность большинства каналов связи является недостаточной. Одним из путей увеличения пропускной способности каналов связи является сжатие передаваемой информации. Кроме этого следует отметить, что сокращение объемов передаваемых данных позволит увеличить количество пользователей канала связи и, следовательно, сократить стоимость услуг связи.
В современных системах передачи звуковой информации значительную часть передаваемых данных составляют речевые сообщения, для решения задачи увеличения пропускной способности каналов связи необходимо использовать в составе таких систем блок кодирования (сжатия) речевой информации, или кодек. При этом достигается еще один положительный эффект — обеспечение определенной степени защиты информации от несанкционированного доступа.
Таким образом, в настоящее время системы кодирования речи (речевые кодеки) являются неотъемлемой частью систем связи.
Использование в составе некоторой системы дополнительного сложного блока цифровой обработки данных приводит к появлению ряда проблем. Первая из них определяется спецификой блока кодирования речи и связана с тем, что сжатие информации в общем случае приводит к некоторым потерям данных, и следовательно, к снижению качества восстановленного сигнала. Решение этой проблемы приводит к использованию в качестве основы кодеков более сложных алгоритмов кодирования речи. Однако, чем сложнее алгоритм и, следовательно, система кодирования речи, тем большие вычислительные ресурсы требуются для ее реализации. Хотя острота указанной проблемы в последнее время сглаживается за счет интенсивного развития элементной (технической) базы, со сложностью алгоритма связана еще одна проблема обработка информации в дополнительном блоке приводит, соответственно, к дополнительным задержкам в передаче данных. Для простых алгоритмов задержка невелика - единицы миллисекунд, однако для сложных алгоритмов, обеспечивающих значительное сжатие и хорошее качество восстановленного сигнала, продолжительность задержки может составлять сотни, и даже тысячи миллисекунд, что вполне ощутимо при разговоре [33]. Следует отметить, что для обеспечения должного качества обслуживания современные стандарты связи строго ограничивают допустимую задержку кодирования и декодирования речевых данных.
Из вышесказанного следует, что основными требованиями, предъявляемыми к системам кодирования речи, являются требования к таким характеристикам, как качество восприятия восстановленной информации, коэффициент сжатия, задержки кодирования/декодирования и вычислительная сложность алгоритмов. Дополнительные требования, предъявляемые к аппаратной реализации кодеков, связаны со снижением энергопотребления и массо-габаритных размеров устройства, в состав которого они входят.
Таким образом, при проектировании системы кодирования речи решается задача обеспечения как взаимосвязанных, так и независимых требований. Степень выполнения этих требований можно оценить только имея законченную реализацию кодека.
Современный подход к проектированию систем кодирования речи обеспечивает достижение требований к кодеку путем последовательного выполнения следующих шагов: выбор соответствующего алгоритма кодирования речи, варьирование структуры системы, связанное с выбором алгоритма реализации отдельного блока, и варьирование параметров блоков. В случае неудовлетворительного результата возможен возврат на любой из указанных шагов. Следовательно, проектирование кодека представляет собой многоитерационный процесс, причем значительная часть итераций носит вложенный характер.
При таком подходе основным недостатком является высокая трудоемкость процесса проектирования кодека и связанные с этим большие временные затраты на разработку. В худшем случае для достижения указанных в требованиях на проектирование системы кодирования речи характеристик требуется перебор всех приемлемых вариантов структуры. Порядок следования вариантов и ограничения их применения в каждом конкретном случае определяются разработчиком на основе его опыта и квалификации, при этом используются эвристические методы. Различные реализации каждого блока объективно имеют различную структуру выходных данных, которая влияет на структуру, а зачастую и на принципы функционирования одного или нескольких других блоков. Так, например, эффективность предсказания сигнала определяет статистические характеристики сигнала погрешности предсказания, от которых зависит структура (количество уровней и интервалы, принципы адаптации и др.) квантователя уровня сигнала; в то же время порядок предсказания (количество коэффициентов предсказания, точность их представления и др.) влияют на структуру квантователя параметров сигнала. Неотъемлемыми частями блоков квантования уровня сигнала и параметров сигнала являются кодовые книги и таблицы квантования. Формирование и расчет кодовых книг и таблиц квантования представляют собой один из самых трудоемких этапов проектирования речевого кодека: необходимо набрать статистическую информацию по типовым сигналам, с которыми они будут работать, выделить наборы характерных признаков, разработать эталонные векторы признаков типовых сигналов и т.п. Следовательно, при любом изменении характеристик входных для данных блоков сигналов необходимо заново проектировать кодовые книги и таблицы квантования.
На сегодняшний день маршрут проектирования систем кодирования речи включает в себя разработку и отладку математических моделей на алгоритмических языках высокого уровня, проведение ряда мероприятий для адаптации используемых данных, кодовых книг и таблиц квантования к аппаратной реализации и затем создание описания кодека на языке описания аппаратуры. Это связано в первую очередь с тем, что большинство алгоритмов предметной области представлено в виде математических моделей. Необходимость перехода от математического описания к программной модели и тем более к аппаратной модели требует от разработчиков опыта, значительной квалификации и глубоких знаний не только в области речевых кодеков, но и принципов, технологий программирования на языках высокого уровня и языках описания аппаратуры. Подобное сочетание требований не всегда является обеспечиваемым и эффективным, поэтому в процессе проектирования систем кодирования речи участвуют как минимум специалист Щ1 по обработке речевых сигналов и программист, между которыми необходима тесная связь на каждой итерации процесса проектирования. Подготовка документации, согласование работы между различными специалистами приводит к дополнительным временным затратам. Поскольку, как было показано выше, процесс проектирования кодеков носит многоитерационный W характер и немалая часть итераций связана с изменением параметров блоков, подобные временные затраты становятся неоправданными и снижают эффективность разработки.
Кроме этого, на сегодняшний день для реализации большинства отдельных блоков кодеков известно множество альтернативных реализаций, Ш основанных на различных алгоритмах и подходах, и это множество постоянно растет за счет интенсивного развития области речевого кодирования. В зависимости от квалификации и опыта разработчика от его внимания может ускользать значительное число возможных проектных решений и, следовательно, разработанный кодек может иметь более низкое качество, относительно потенциально возможного.
Повысить качество проектного решения и снизить время разработки можно путем использования в процессе проектирования речевых кодеков систем автоматизированного проектирования (САПР), предоставляющих пользователю множество альтернативных реализаций различных блоков систем кодирования речи. Анализ современных средств автоматизированного проектирования цифровых систем передачи звуковой информации позволил выделить САПР, содержащие в своем составе библиотеки блоков речевых кодеков. Однако множество предлагаемых блоков исключительно мало и ограничивается блоками, реализующими стандарты современных систем # связи. Более того, большинство из этих блоков — закрытые готовые реализации стандартных кодеков (в виде «черного ящика»). Исследование и возможность модификации оставшейся части блоков ограничиваются структурным уровнем, алгоритмы отдельных элементов не доступны пользователю, что не позволяет вносить в них какие-либо изменения, и тем более разработать новый Щ кодек. Из выше сказанного следует, что в настоящее время является актуальным решение задачи автоматизации процесса проектирования систем кодирования речи с использованием библиотеки отдельных функциональных блоков открытых по отношению к модернизации и расширению. Цель работы и задачи исследований.
Целью работы является разработка методов автоматизированного проектирования систем кодирования речи и создание на их основе пакета прикладных программ, предназначенного для решения данной задачи. Для достижения данной цели в работе ставятся и решаются следующие основные задачи: tK 1. Исследование и анализ алгоритмов кодирования речи.
2. Исследование существующих систем кодирования речи.
3. Исследование существующих подходов к проектированию систем кодирования речи, возможностей современных САПР для решения данной задачи.
4. Разработка обобщенной модели системы кодирования речи, включающей множество альтернативных алгоритмов функциональных блоков на разных уровнях детализации, и способов ее представления в базе знаний.
5. Разработка методики автоматизированного проектирования систем кодирования речи, направленной на формирование структурной и функциональной моделей кодека с использованием базы знаний и библиотеки блоков. 6. Разработка математического, информационного и программного обеспечения подсистемы САПР, позволяющей формировать структурную и функциональную модели кодека и оценивать характеристики полученного # решения.
Научная новизна работы. Новые научные результаты, полученные в работе, состоят в следующем:
1. Разработана обобщенная модель системы кодирования речи, предложен способ ее представления в базе знаний в виде совокупности двух И-ИЛИ W деревьев.
2. Предложена методика автоматизированного проектирования систем кодирования речи, направленная на формирование структурной и функциональной моделей кодека с использованием базы знаний и библиотеки блоков. W Практическая ценность работы. На основе предложенных методов автоматизированного проектирования систем кодирования речи была разработана специализированная подсистема САПР, позволяющая сократить временные затраты на разработку речевых кодеков и повысить качество проектируемого устройства кодирования речи. Библиотека базовых блоков 9 подсистемы САПР выполнена по технологии динамически подключаемых
библиотек (DLL) и может быть использована в сторонних САПР, позволяющих проектировать функциональные модели устройств и поддерживающих подключение пользовательских модулей. Открытость архитектуры подсистемы и возможность ее взаимодействия с другими САПР у позволяют включать новые модули. Разработанная подсистема САПР позволяет моделировать и исследовать существующие системы кодирования речи, исследовать отдельные структурные блоки кодеков, создавать модели новых систем кодирования речи. Возможность замены блоков существующего кодека блоками с другой реализацией той же функции и настройка каждого параметра блока позволяют с малыми временными затратами найти эффективное техническое решение.
Реализация и внедрение результатов работы.
Работа по теме диссертации проводилась на кафедре ВТ ВлГУ в Центре микроэлектронного проектирования и обучения в рамках госзаказа по контрактам НИОКР № 2852/03, № 2879/03, 2992/03. Полученные результаты исследований в виде методик, программного обеспечения и моделей устройств внедрены в виде материалов отчетов по НИР и ОКР, выполненных в рамках госзаказа, и в учебный процесс кафедры ВТ ВлГУ.
На защиту выносятся.
1. Обобщенная модель системы кодирования речи, способ ее представления в базе знаний в виде совокупности двух И-ИЛИ-деревьев.
2. Методика автоматизированного проектирования систем кодирования речи, направленная на формирование структурной и функциональной моделей кодека с использованием базы знаний и библиотеки блоков.
3. Библиотека блоков систем кодирования речи.
4. Математическое, информационное и программное обеспечение подсистемы САПР, позволяющей формировать структурную и функциональную модели кодека и оценивать характеристики полученного решения.
5. Результаты применения подсистемы САПР для исследования и модификации кодека G.726 (АДИКМ).
Апробация работы.
Основные положения и результаты работы докладывались и обсуждались на следующих семинарах и конференциях:
Международная научно-техническая конференция
«Новые методологии проектирования изделий микроэлектроники» «New design methodologies» (Владимир, 2002 г.); Всероссийская НТК «Реконфигурируемые электронные средства в системах обработки информации» (Владимир, 2002 г.);
Международная научно-техническая Конференция
«Новые методологии проектирования изделий микроэлектроники» «New design methodologies» (Владимир, 2003 г.); East-West Design and Testing Symposium (Crimea, Ukraine, 2004 г.); Международная научно-техническая Конференция
«Новые методологии проектирования изделий микроэлектроники» «New design methodologies» (Владимир, 2004 г.); VII международная научно-техническая конференция
«Перспективные технологии в средствах передачи информации» (Владимир, 2005 г.);
6-я ежегодная выставка «Информационные технологии 2005», экспонат «Модифицированный АДИКМ-кодек» (Владимир, 2005 г.) НТК профессорско-преподавательского состава ВлГУ (2002-2005г); Научно-практические семинары Центра микроэлектронного проектирования и обучения ВлГУ (2002 - 2005 г) . Публикации по работе. По теме диссертации опубликовано 13 печатных работ, из них одна статья в сборнике научных трудов, одно свидетельство об официальной регистрации программы для ЭВМ и одиннадцать тезисов докладов на Международных и Российских научно-технических конференциях.
Структура работы. Диссертационная работа состоит из введения, трех глав, заключения, списка литературы и приложений. Общий объем диссертации 161 страница, в том числе 142 страницы основного текста, 11 страниц списка литературы (105 наименований), 8 страниц - приложения. Диссертация содержит 62 рисунка и 20 таблиц.
В первой главе диссертации исследуется объект проектирования — системы кодирования речи и алгоритмы кодирования речи, анализируется процесс проектирования систем кодирования речи и возможности современных САПР для решения данной задачи. Определены характеристики систем кодирования речи и способы их оценки. Рассмотрена постановка задач исследования.
Основная часть диссертации, включающая последующие главы, посвящена рассмотрению предлагаемых методов и реализации на их основе подсистемы автоматизированного проектирования систем кодирования речи.
Во второй главе рассматривается формирование обобщенной модели системы кодирования речи. Предлагается ее представление в базе знаний в виде совокупности двух И-ИЛИ-деревьев: основное дерево отражает множество альтернативных решений базовых блоков, основано на группировании элементов по выполняемой функции и используется в процессе выделения частной структуры устройства из обобщенной модели; дополнительное дерево используется для определения запрещенных сочетаний блоков и основано на группировании элементов на верхнем уровне иерархии по их использованию в реализации определенного метода. Представляется математический аппарат обработки предложенной структуры обобщенной модели. Предлагается методика проектирования систем кодирования речи, описывающая процесс нисходящего проектирования, в котором синтез структуры и формирование функциональной модели кодека происходит на основе библиотеки базовых блоков и макроблоков; оптимизация — на основе поиска оптимального решения, используя И-ИЛИ-дерево обобщенной модели, и на основе настраиваемых параметров блоков. Методика предполагает рассмотрение процесса проектирования на трех уровнях: системном, функциональном и компонентном. Рассматривается структура, состав библиотеки блоков и структура отдельного блока, обеспечивающая поддержку предлагаемых методов автоматизированного проектирования систем кодирования речи.
В третьей главе описывается организация подсистемы САПР кодеков, ее математическое, информационное и программное обеспечение. Предлагается структура данных базы знаний, обеспечивающая поддержку разработанной обобщенной модели системы кодирования речи. Рассматривается применение разработанной структуры блока библиотеки для создания и использования блоков в составе библиотеки САПР System Vue. Приводятся результаты моделирования и исследования кодека G.726 (АДИКМ) [76], использующегося в современных системах связи. С помощью разработанной подсистемы САПР выполнена модификация кодека G.726 [37, 38, 42] с целью повышения качества восстановленного сигнала по характеристикам вносимых частотных и нелинейных искажений. Приводятся характеристики полученного устройства в сравнении со стандартным кодеком.
Процесс проектирования систем кодирования речи
Под сбоем в данном случае понимается потеря значимых данных при передаче по каналу связи и передача данных с ошибками. Под временем восстановления декодера понимается время перехода декодера в состояние, аналогичное состоянию кодера на момент кодирования данного фрагмента информации. В отличие от предыдущих характеристик, которые оцениваются при условии передачи данных по идеальному каналу связи, эта характеристика во многом зависит от реальных характеристик канала связи. От реакции декодера на ошибки при передаче или на потерю блока данных зависит и качество восстановленного сигнала. Время вхождения в рабочий режим из исходного состояния, определяемого для каждой системы кодирования речи индивидуально, исходя из особенностей используемых алгоритмов, всегда предсказуемо и может быть определено.
Время восстановления после сбоя определяется исходным состоянием декодера, кратностью ошибки, или размером потерянного блока данных. Поэтому для оценки данной характеристики проводят оценку в критических и некоторых промежуточных точках и производят экстраполяцию результатов [58]. С точки зрения алгоритмов систем кодирования речи основными определяющими факторами, влияющими на время восстановления после сбоя, являются размер буферной памяти, разрядность предсказателей, порядок фильтров и др. блоки с памятью, и скорость адаптации, которую предусматривают используемые алгоритмы адаптации квантователей. Таким образом, оценка данной характеристики должна проводиться в каждом конкретном случае с использованием методов планирования эксперимента.
Современный подход к проектированию систем кодирования речи включает следующие основные шаги (Рис. 1.16): 1) выбор алгоритмов кодирования речи и дополнительной обработки сигналов; 2) варьирование структуры системы путем выбора алгоритма реализации каждого отдельного блока системы; 3) варьирование параметров каждого отдельного блока; 4) выбор структуры кодовых книг, расчет новых или оптимизация существующих кодовых книг и таблиц квантования. В случае неудовлетворительного результата возврат возможен на любой из указанных шагов. Следовательно, проектирование кодека представляет собой многоитерационный процесс, при этом значительная часть итераций носит вложенный характер. При таком подходе основным недостатком является высокая трудоемкость процесса проектирования кодека и связанные с этим большие временные затраты на разработку. В худшем случае, для достижения указанных в требованиях на проектирование системы кодирования речи характеристик требуется перебор всех приемлемых вариантов структуры. Порядок следования вариантов и ограничения их применения в каждом конкретном случае определяются разработчиком на основе его опыта и квалификации, при этом используются эвристические методы. На сегодняшний день для реализации большинства отдельных блоков кодеков известно множество альтернативных реализаций, основанных на различных алгоритмах и подходах, и это множество постоянно растет за счет интенсивного развития области речевого кодирования. В зависимости от квалификации и опыта разработчика от его внимания может ускользать значительное число возможных проектных решений и, следовательно, разработанный кодек может иметь более низкое качество, относительно потенциально возможного. Различные реализации каждого блока объективно имеют различную структуру выходных данных, которая влияет на структуру, а зачастую и на принципы функционирования, одного или нескольких других блоков. Так, например, эффективность предсказания определяет статистические характеристики сигнала погрешности предсказания, от которых зависит структура (количество уровней и интервалы, принципы адаптации и др.) квантователя уровня сигнала; в то же время порядок предсказания (количество 4 коэффициентов предсказания, точность их представления и др.) влияют на структуру квантователя параметров сигнала. Таким образом, включение в структуру системы определенного блока может значительно ограничить перебор других функциональных блоков, потенциально возможных для использования, при этом зачастую непосредственно не связанных с данным Щр блоком. Как было показано выше, кодовые книги и таблицы квантования являются неотъемлемой частью систем кодирования речи. Этап выбора структуры кодовых книг и квантователей, расчет таблиц кантования как уровня сигнала, так и параметров сигнала является сложным и занимает Щ большую часть времени всего процесса разработки кодека. Для проектирования кодовых книг и квантователей производится статистический анализ сигналов, с которыми будет работать кодек. Выполняется классификация сигналов, определяются характеристики типовых сигналов. На основании проведенного исследования разрабатываются эталонные векторы % признаков типовых сигналов и т.п. Следовательно, при любом изменении характеристик входных для данного блока сигналов необходимо проводить оптимизацию или заново проектировать кодовые книги и таблицы квантования. Следует отметить, что эффективность кодека в значительной степени зависит от характеристик полученных книг и таблиц квантования. На сегодняшний день подавляющее большинство алгоритмов предметной области представлено в виде математических моделей. В связи с этим маршрут проектирования систем кодирования речи включает в себя разработку и отладку математических моделей на алгоритмических языках высокого уровня, проведение ряда мероприятий для адаптации используемых данных, кодовых книг и таблиц квантования к аппаратной реализации и затем аппаратную реализацию, которая чаще всего связана с созданием описания кодека на языке описания аппаратуры. Специфика данного маршрута требует участие в процессе проектирования специалистов в области систем кодирования речи, специалистов в области технологий программирования, специалистов в области схемотехнического проектирования. При этом между указанными специалистами необходима тесная связь на каждой итерации процесса проектирования, и подготовка документов для работы следующего звена, все это вносит дополнительные временные затраты. Поскольку, как было показано выше, процесс проектирования кодеков носит многоитерационный характер и немалая часть итераций связана с изменением параметров блоков, подобные временные затраты становятся неоправданными и снижают эффективность разработки.
Методика проектирования систем кодирования речи
Под сбоем в данном случае понимается потеря значимых данных при передаче по каналу связи и передача данных с ошибками. Под временем восстановления декодера понимается время перехода декодера в состояние, аналогичное состоянию кодера на момент кодирования данного фрагмента информации. В отличие от предыдущих характеристик, которые оцениваются при условии передачи данных по идеальному каналу связи, эта характеристика во многом зависит от реальных характеристик канала связи. От реакции декодера на ошибки при передаче или на потерю блока данных зависит и качество восстановленного сигнала. Время вхождения в рабочий режим из исходного состояния, определяемого для каждой системы кодирования речи индивидуально, исходя из особенностей используемых алгоритмов, всегда предсказуемо и может быть определено. Время восстановления после сбоя определяется исходным состоянием декодера, кратностью ошибки, или размером потерянного блока данных. Поэтому для оценки данной характеристики проводят оценку в критических и некоторых промежуточных точках и производят экстраполяцию результатов [58]. С точки зрения алгоритмов систем кодирования речи основными определяющими факторами, влияющими на время восстановления после сбоя, являются размер буферной памяти, разрядность предсказателей, порядок фильтров и др. блоки с памятью, и скорость адаптации, которую предусматривают используемые алгоритмы адаптации квантователей. Таким образом, оценка данной характеристики должна проводиться в каждом конкретном случае с использованием методов планирования эксперимента.
Современный подход к проектированию систем кодирования речи включает следующие основные шаги (Рис. 1.16): 1) выбор алгоритмов кодирования речи и дополнительной обработки сигналов; 2) варьирование структуры системы путем выбора алгоритма реализации каждого отдельного блока системы; 3) варьирование параметров каждого отдельного блока; 4) выбор структуры кодовых книг, расчет новых или оптимизация существующих кодовых книг и таблиц квантования. В случае неудовлетворительного результата возврат возможен на любой из указанных шагов. Следовательно, проектирование кодека представляет собой многоитерационный процесс, при этом значительная часть итераций носит вложенный характер. При таком подходе основным недостатком является высокая трудоемкость процесса проектирования кодека и связанные с этим большие временные затраты на разработку. В худшем случае, для достижения указанных в требованиях на проектирование системы кодирования речи характеристик требуется перебор всех приемлемых вариантов структуры. Порядок следования вариантов и ограничения их применения в каждом конкретном случае определяются разработчиком на основе его опыта и квалификации, при этом используются эвристические методы.
На сегодняшний день для реализации большинства отдельных блоков кодеков известно множество альтернативных реализаций, основанных на различных алгоритмах и подходах, и это множество постоянно растет за счет интенсивного развития области речевого кодирования. В зависимости от квалификации и опыта разработчика от его внимания может ускользать значительное число возможных проектных решений и, следовательно, разработанный кодек может иметь более низкое качество, относительно потенциально возможного.
Различные реализации каждого блока объективно имеют различную структуру выходных данных, которая влияет на структуру, а зачастую и на принципы функционирования, одного или нескольких других блоков. Так, например, эффективность предсказания определяет статистические характеристики сигнала погрешности предсказания, от которых зависит структура (количество уровней и интервалы, принципы адаптации и др.) квантователя уровня сигнала; в то же время порядок предсказания (количество коэффициентов предсказания, точность их представления и др.) влияют на
структуру квантователя параметров сигнала. Таким образом, включение в структуру системы определенного блока может значительно ограничить перебор других функциональных блоков, потенциально возможных для использования, при этом зачастую непосредственно не связанных с данным блоком. Как было показано выше, кодовые книги и таблицы квантования являются неотъемлемой частью систем кодирования речи. Этап выбора структуры кодовых книг и квантователей, расчет таблиц кантования как уровня сигнала, так и параметров сигнала является сложным и занимает большую часть времени всего процесса разработки кодека. Для проектирования кодовых книг и квантователей производится статистический анализ сигналов, с которыми будет работать кодек. Выполняется классификация сигналов, определяются характеристики типовых сигналов. На основании проведенного исследования разрабатываются эталонные векторы признаков типовых сигналов и т.п. Следовательно, при любом изменении характеристик входных для данного блока сигналов необходимо проводить оптимизацию или заново проектировать кодовые книги и таблицы квантования. Следует отметить, что эффективность кодека в значительной степени зависит от характеристик полученных книг и таблиц квантования. На сегодняшний день подавляющее большинство алгоритмов предметной области представлено в виде математических моделей. В связи с этим маршрут проектирования систем кодирования речи включает в себя разработку и отладку математических моделей на алгоритмических языках высокого уровня, проведение ряда мероприятий для адаптации используемых данных, кодовых книг и таблиц квантования к аппаратной реализации и затем аппаратную реализацию, которая чаще всего связана с созданием описания кодека на языке описания аппаратуры. Специфика данного маршрута требует участие в процессе проектирования специалистов в области систем кодирования речи, специалистов в области технологий программирования, специалистов в области схемотехнического проектирования. При этом между указанными специалистами необходима тесная связь на каждой итерации процесса проектирования, и подготовка документов для работы следующего звена, все это вносит дополнительные временные затраты. Поскольку, как было показано выше, процесс проектирования кодеков носит многоитерационный характер и немалая часть итераций связана с изменением параметров блоков, подобные временные затраты становятся неоправданными и снижают эффективность разработки.
Структура и состав библиотеки
Для реализации указанных требований библиотека должна содержать как элементарные (базовые) блоки, реализующие отдельные функции нижнего уровня иерархии (листья дерева обобщенной модели кодека), так и макроблоки, представляющие собой функционально законченные единицы структурного уровня и некоторых промежуточных уровней иерархии (вершины типа И). Необходимость в макроблоках определяется тем, что анализ характеристик системы кодирования речи возможен только при наличии готовой законченной модели, и использование готовых блоков с некоторой заранее определенной структурой позволяет повысить эффективность проектирования кодеков. Кроме этого, библиотека должна содержать готовые кодовые книги различных структур и таблицы квантования существующих стандартных кодеков и функции их расчета и оптимизации. Все блоки библиотеки должны быть сгруппированы по выполняемой функции, таким образом будут отражены вершины типа ИЛИ дерева обобщенной модели кодека. Группа блоков предобработки сигнала содержит блоки фильтрации и взвешивания сигнала окнами Хэмминга, Бартлета, Блэкмана.
Для спектрального выравнивания речевого сигнала его следует пропустить через низкочастотный фильтр. Цель этого преобразования -снизить влияние локальных искажений на характеристические признаки, которые в дальнейшем будут использоваться для кодирования [45].
Целью обработки сигнала окном является снижение граничных эффектов, возникающих в результате сегментации, поскольку большинство алгоритмов кодирования речи работает с блоками отсчетов, для чего необходима нарезка исходного сигнала на сегменты, или фреймы, определенной длины. Для подавления нежелательных граничных эффектов принято умножать сигнал на оконную функцию. В зависимости от характерных особенностей сигналов используют различные оконные функции (окно Хэмминга, окно Бартлета, окно Блэкмана). Их описания и характеристики можно найти в литературе, посвященной цифровой обработке сигналов, в частности - цифровым фильтрам [43].
Чаще всего в современных кодеках в качестве функции используется окно Хэмминга [9].
Подавление пауз состоит из трех этапов: детектирование речевой активности, прерывистая передача или передача меньшего объема информации на передающей стороне и генератор псевдослучайной последовательности для создания комфортного шума на принимающей стороне в моменты пауз [3, 6, 84]. Поскольку каждый из этих этапов может быть реализован с использованием разных алгоритмов, библиотека должна содержать как готовые функционально законченные блоки, так и возможный набор элементов для разработки и моделирования пользовательских решений. Например, детектор речевой активности может быть построен на основе компаратора, пороговые значения которого зафиксированы, такое решение при смене внешних условий требует настройки пороговых значений. Другой вариант построения детектора, основанный на выделении моментов начала и конца фразы, предполагает некоторую адаптивную систему, состоящую из блоков вычисления функции кратковременной энергии и среднего числа переходов через ноль. Такое решение вносит большую задержку и требует больших вычислительных затрат, однако дает более качественный результат, и, кроме того, может использоваться при построении систем распознавания речи [45]. Моделирование различных решений позволит выбрать оптимальный для конкретной задачи вариант.
В параметрические кодеры обязательно входят два типа блоков: фильтровой и генераторный. Обычно для создания генераторной функции на принимающей стороне используются генераторы основного тона и шумового сигнала с переключателем тон-шум. На передающей стороне, соответственно, есть выделители основного тона и сигнала смены вида спектра. Для выделения и воссоздания фильтровой функции нужны устройства анализа и синтеза спектра речевых сигналов.
Определение фильтровой функции. Существует несколько принципиально разных методов выделения фильтровой функции, основанных на делении спектра на 7-20 полос, или вычислении комбинаций формант, или разложении по выбранной системе ортогональных базисных функций (обычно используется разложение в ряд Фурье), или же на гомоморфной обработке сигнала. Наибольшее распространение получили методы, основанные на линейном предсказании. В связи с этим необходимы следующие блоки: полосовые фильтры, выпрямители, блок преобразования Фурье, блок гомоморфной обработки и предсказатели.
Группа предсказателей содержит блоки, реализующие алгоритмы линейного предсказания (блоки вычисления автокорреляционной функции, решения системы линейных уравнений рекурсиями Шура и Дарбина и т.д. [44, 84]), и блоки, реализующие методы градиентного поиска [84]. Результатом предсказания являются предсказанное значение сигнала и коэффициенты предсказания. Для определения ошибки предсказания в зависимости от целей можно использовать анализирующий фильтр или блоки, позволяющие собрать статистическую информацию о погрешности предсказания, или блоки вычитания.
Определение параметров основного тона. Блоки определения параметров основного тона (ПОТ) используются в основном в кодерах параметров сигнала. Они могут быть построены на основе методов анализа- через-синтез, выполняющих перебор некоторых фиксированных значений в различных комбинациях. Данные методы предполагают использование анализирующего и синтезирующего фильтров, минимизации разницы между исходным и восстановленным значением (например, по методу наименьших квадратов) и различных кодовых книг. Другой вариант построения блока определения ПОТ основывается на методе параллельной обработки, предложенном Гоулдом и Рабинером [43], для которого требуется вычислитель локальных минимумов и максимумов сигнала, генераторы импульсных последовательностей и выделитель с экспоненциальной границей раздела. Библиотека должна содержать и функционально законченные блоки определения ПОТ, использующиеся в различных стандартах, и элементы более низкого уровня, перечисленные выше. Квантование сигнала. В системах кодирования речи применяются равномерные и неравномерные квантователи уровня сигнала, адаптивные с адаптацией по входу и по выходу. Необходимо предусмотреть возможность как использования таблиц квантования, описанных в соответствующих стандартах, так и создания пользовательских таблиц. Группа этих блоков также содержит блок логарифмирования и блоки расчета параметров адаптации (шага квантования, коэффициента масштабирования, коэффициента скорости адаптации) [44,16].
Структура подсистемы САПР (математическое, информационное и программное обеспечение)
Предлагаемые методы автоматизированного проектирования речевых кодеков применимы для создания как самостоятельной системы, так и подсистемы любой из сторонних сред проектирования, будь то САПР или среда проектирования на языке высокого уровня. Единственным условием применимости среды проектирования является возможность разрабатывать и подключать пользовательские библиотеки.
Предложенные методы легли в основу специализированной подсистемы САПР речевых кодеков. Разработанная подсистема САПР интегрирована в систему System Vue. Обоснование такого выбора следующее. Во-первых, назначение системы System Vue - моделирование на уровне функциональных блоков, при этом моделируемые системы могут иметь сколь угодно сложную иерархическую структуру, реализованную на основе метасистем (макроблоков). Во-вторых, проектирование устройств в System Vue ведется с помощью среды визуального проектирования - схемного редактора, и предоставляются широкие возможности для расширения набора блоков путем использования динамически подключаемых библиотек, имеется возможность подключения модулей Matlab. Кроме этого, достоинствами системы являются богатые возможности моделирования и анализа сигналов с различными характеристиками, простой и интуитивный интерфейс, возможность создания исполняемых модулей и генерация соответствующего кода для ЦОС-процессоров и ПЛИС.
Математическое обеспечение подсистемы САПР представлено разработанным математическим аппаратом обработки обобщенной модели системы кодирования речи, описанным в п. 2.1, математическими моделями блоков речевых кодеков и методикой автоматизированного проектирования систем кодирования речи (п. 2.2).
Информационное обеспечение подсистемы САПР кодеков состоит из базы знаний, поддерживающей структуру разработанной обобщенной модели кодека в виде совокупности двух И-ИЛИ-деревьев (п. 2.1) и обеспечивающей поддержку принятия проектных решений (п. 2.2.4), библиотеки базовых блоков и макроблоков (п. 2.3) и описания методики проектирования систем кодирования речи.
Структура данных базы знаний представлена на Рис. 3.1. База знаний представлена двумя таблицами, между которыми установлено отношение один-ко-многим по ключевому полю «Идентификатор». Первая таблица соответствует дереву Тг (2.3) обобщенной модели кодека, вторая — дереву Тг (2.2). Уникальный идентификатор каждой вершины позволяет установить однозначное соответствие вершины с блоком библиотеки. В поле «Информация» содержится описание функции блока, описание входов, выходов и параметров блока. Поле «Характеристики» является структурой данных, содержащей набор характеристик-признаков F (2.4) блока, которые используются для поддержки принятия решений.
Программное обеспечение (Рис. 3.2) подсистемы САПР кодеков состоит из двух модулей динамически подключаемых библиотек (ФЗ, Ф4), представляющих собой библиотеку блоков кодеков, базы знаний в виде файлов XML-формата (Ф1, Ф2) и модуля редактирования базы знаний, обеспечивающего удобный пользовательский интерфейс. Использование библиотеки блоков для моделирования кодеков с помощью системы System Vue привело к необходимости поддержания форматов данных, с которыми она работает. Для того, чтобы разработанная библиотека блоков не была зависима от специфических особенностей System Vue, целесообразно интерфейсную часть, обеспечивающую подключение библиотеки блоков к этой системе, выделить в отдельный модуль (ФЗ). Этот модуль будет взаимодействовать со средой System Vue, принимать входные данные, обрабатывать настройки параметров, выполнять преобразование форматов данных, передавать управление соответствующей процедуре (функциональной части) блока, размещенной в модуле Ф4, и затем формировать выходные данные. В этом случае обеспечивается переносимость библиотеки в любую САПР. Система System Vue состоит из следующих основных частей (Рис. 3.2): области проектирования, на которой размещаются компоненты, участвующие в процессе моделирования и которая обеспечивает взаимодействие с пользователем; модуля моделирования, выполняющего последовательную активацию компонентов, размещенных в области проектирования и передачу данных между ними; модуля настройки, позволяющего настраивать такие параметры моделирования как частота дискретизации, количество выборок, количество циклов моделирования и др. модуля работы с библиотеками - выполняет связывание SystemVue со стандартной библиотекой, а также с библиотеками пользователя. Подсистема САПР кодеков состоит из следующих блоков: базы знаний, хранящей И-ИЛИ-деревья блоков кодека; библиотеки блоков, содержащей основные блоки кодеков; анализатора, выполняющего анализ блоков, используемых при проектировании кодека, на предмет возможности их совместного использования в проектном решении, а также формирующего список наиболее подходящих блоков в данном решении; генератора кода, позволяющего формировать программный код для аппаратной реализации кодеков. Анализатор и генератор кода представляют собой блоки библиотеки, необходимость использования которых определяется пользователем (для этого в области проектирования размещается соответствующий компонент, который ни с чем не соединяется). В случае отказа от использования анализатора задача анализа корректности проектного решения лежит на пользователе. Алгоритм работы анализатора соответствует разработанному математическому аппарату обработки обобщенной модели кодека (п. 2.1) и поддержки принятия решений (п. 2.2.4). Для каждого размещенного в области проектирования блока по уникальному идентификатору блока в файле Ф1 (Рис. 3.2) анализатор находит соответствующую вершину дерева Тг. В зависимости от типа вершины формируется список вершин, из которых получается детализированная структурная схема, или ранжированный список альтернативных решений. Каждый раз при размещении в области проектирования очередного блока или при выборе одного из альтернативных решений какого-либо блока формируется список «разрешенных» вершин. Для этого используется описанный в п.2.1 механизм обновления весов вершин, реализованный следующим образом. В файле Ф2 (Рис. 3.2) выполняется поиск всех элементов, имеющих идентификатор данного блока. Из путей до найденных элементов и от этих элементов до листьев дерева Тг формируются списки вершин-предков и вершин-потомков. Находящиеся в списке вершины соответствуют вершинам, вес w которых равен 1.