Задача практической реализации низкоскоростного вокодера, имевшего приемлемое качество синтезированной речи при ошибках в канале до 5%, решалась в два этапа. Первоначально была снижена скорость битового речевого потока до 1,2 кбит/с без существенной деградации качества выходного речевого сигнала. Далее были выбраны оптимальные в смысле качества синтезированной речи коды, исправляющие ошибки, и разработан метод замены выбитых речевых параметров на интерполированные значения параметров предшествующих фреймов. После этого суммарная скорость потока информационных и проверочных бит составила 2,4 кбит/с.
Вокодер с битовой скоростью 1,2 кбит/с. При понижении скорости битового потока основное внимание уделялось сохранению разборчивости речи. Анализ алгоритма MELP–2400 показал, что амплитуды преобразования Фурье сигнала возбуждения отвечают в основном за узнаваемость диктора и передачу интонации. Поэтому в спроектированном вокодере MELP–1200 они не используются. Передача коэффициента усиления один раз за фрейм также не приводит к существенному ухудшению разборчивости. Для дальнейшего понижения битовой скорости была разработана техника передачи линейных спектральных пар (ЛСП) только по четным фреймам с помощью адаптивного выбора фреймов на основе решетчатой структуры с критичными изменениями. Для нечетных фреймов вектор ЛСП находился с помощью интерполяционных методов. Также для уменьшения числа бит была использована частота границы голосовой активности с двухбитовой кодировкой.
Суммарный список параметров алгоритма MELP-1200, передаваемых от кодера к декодеру за один речевой фрейм длительностью 45 мс, представлен в табл. 6.5.
Таблица 6.5
Параметр | «Голосовой»фрейм (бит) | «Шумовой»фрейм (бит) |
Линейные спектральные пары | 25 | 25 |
Амплитуды преобразования Фурье сигнала возбуждения | – | – |
Коэффициенты усиления (2 за фрейм) | 5+5 | 5+5 |
Период основного тона, общая озвученность фрейма | 7+7 | 7+7 |
Озвученность по полосам | 2+2 | – |
Флаг периодичности | 1 | 1 |
Защита от ошибок | – | – |
Синхробит | – | – |
Всего за кадр, 22.5 мс | 54 | 50 |
Вокодер с битовой скоростью 2,4 кбит/с для работы в каналах с величиной ошибок до 5% (MELP–C–2400). Для исправления ошибок битового потока было исследовано несколько классов кодов. Наиболее оптимальными в смысле качества восстановленной речи оказались коды Хэмминга (8,4), позволяющие исправлять одиночную ошибку в четырех информационных битах и определять наличие ошибки в 2 бита, а также коды Голея (23,12), исправляющие три ошибки в двенадцати информационных битах. При проектировании был сделан выбор в пользу кодов Хэмминга. В результате к 54 информационным битам добавлялись 54 проверочных, и общая скорость битового потока составила 2,4 кбит/с.
Предлагаемый алгоритм построения низкоскоростного вокодера MELP—С-2400 был промоделирован на персональном компьютере с использованием языка программирования «СИ» при представлении данных в формате с фиксированной запятой. Для определения качества синтезированной речи использовалась диагностическая мера приемлемости (DiagnosticAcceptabilityMeasure — DAM). Для этой цели были использованы шесть wav-файлов с мужскими голосами и шесть wav-файлов с женскими голосами, которые затем прослушивались на выходе тракта 30 слушателями, после чего определялась средняя оценка мнений — MOS. Такой метод называется методом субъективной оценки качества.
Таким образом, на основании полученных результатов можно сделать следующие выводы:
1. Вокодер MELP-I200 имеет разборчивость синтезированной речи близкую к вокодеру MELP-2400 и может быть использован в каналах с пропускной способностью 1,2 кбит/с,
2. При битовых ошибках в канале более 1% вокодер MELP—С-2400 существенно улучшает качество синтезированной речи.
Что касается улучшения качества корректирующих кодов, то наиболее целесообразным представляется применение сверточных кодов со скоростью 1/3. Как показывают исследования, в этом случае при использовании схемы декодера Виттерби с мягким решением приемлемое качество речи можно обеспечивать при вероятности канальной ошибки до 10%. В каналах с памятью эффективным может оказаться применение каскадных кодов (например, последовательное кодирование кодами Рида-Соломона или сверточными кодами) или турбокодов.
Дальнейшее понижение скорости битового потока вокодера возможно при использовании модифицированных кодовых книг, отражающих возможные сочетания ЛСП, и суммарного векторного кодирования речевых параметров. При этом ожидаемая скорость речепреобразующих устройств может не превысить 800 бит/с при словесной разборчивости речи не менее 90%.
Далее рассмотрим кодеки и протоколы, непосредственно используемые в IP-телефонии. Эта тема очень важна, так как есть концепции по переводу в режим IP-телефонии всех сотовых и стационарных сетей.
Задача управления установлением соединений. Общий принцип действия Интернет-телефонии состоит в передаче аналогового речевого сигнала от телефонного аппарата или учрежденческой АТС в маршрутизатор для сжатия и преобразования речевого сигнала в пакеты данных. Эти пакеты передаются по сети Интернет в удаленный маршрутизатор. Последний преобразует пакеты данных обратно в речевой сигнал, который и передается в телефонный аппарат или на УАТС. В соответствии с такой схемой, описанной, в частности, в рекомендациях МСЭ Н.323/Н.248, требуется выполнение достаточно сложных преобразований между техникой Интернет-телефонии и коммутируемой телефонной сетью общего пользование. Одним из путей преодоления возникших трудностей, предпринятых группой инженерной поддержки Интернета IETF (InternetEngineeringTaskForce), стада разработка протокола запуска соединения SIP (SessionInitiationProtocol). Он применим для интегрированной среды Интернета и коммутируемой телефонной сети общего пользования.
SIP относится к протоколам прикладного уровня семиуровневой эталонной модели ВОС МОС как структура протокола HTTP типа "клиент-сервер". При обработке пакетов этого протокола команды и состояния могут передаваться в виде чистого текста посредством считывания данных пакетов HTTP. Поэтому протокол SIP очень подходит для архитектуры передачи по широкомасштабной информационно-вычислительной сети. В его структуре должен быть сформирован, по крайней мере, один сервер соединений SIP в дополнение к агентам пользователей. Сервер соединений SIP может работать как сервер-представитель (proxy-server), сервер изменения направления (redirectserver), сервер регистрации (registryserver), сервер речевой почты (voicemailserver), и др. Сервер соединений функционально является интегрированным программным обеспечением и может быть соединен с существующей коммутируемой сетью общего пользования, сетью Интернет-телефонии и т.п.
Протоколы Н.323 и SIP во многом схожи. Оба они поддерживают как двухстороннюю, так и многостороннюю связь. Протоколы обеспечивают возможность передачи мультимедийных данных по протоколу реального времени RTP (RealTimeProtocol) и родственному ему управляющему транспортному протоколу реального времени RTCP (RealtimeTransportControlProtocol). Последний выполняет функции поддержки обратной связи, синхронизации, обеспечения пользовательского интерфейса, но не управляет передачей данных. Вместе с тем протоколы Н.323 и SIP резко различаются концепциями и основополагающими принципами. Н.323 довольно тяжеловесен. Его описание занимает 1400 страниц и содержит целый стек протоколов, точно регламентирующих все процедуры. Это упрощает взаимодействие существующих сетей, но вызывает затруднения при адаптации новых применений. Что же касается протокола SIP. то это типичный Интернет-протокол, работа которого основана на обмене короткими тестовыми строками. Его описание занимает гораздо меньший объем (250 страниц), и он хорошо взаимодействует с другими протоколами.
Строго говоря, протокол SIP тоже определяет многоуровневый стек, который включает сетевой уровень, транспортный уровень, уровень транзакций, необязательный уровень диалога и собственно прикладной уровень, или уровень услуги. Однако эти уровни достаточно просты по сравнению с иерархией протокола Н.323. Так, сетевой уровень протокола SIP обеспечивает связь и взаимодействие с соответствующим протоколом сети Интернет (IP), чтобы каждый элемент протокола SIP связывался по Интернету. Транспортный уровень протокола SIP определяет, как клиент посылает запросы и принимает ответы и как сервер принимает запросы и посылает ответы по сети. Сервер протокола SIP представляет собой сетевой элемент, принимающий запросы, чтобы обслужить их и посылает обратно ответы на эти запросы. Транспортный уровень ответствен также за формирование сообщений SIP и их передачу по сети. Следующим уровнем протокола S1P является уровень транзакций. Транзакцией называется запрос, посылаемый уровнем транзакций клиента (с помощью транспортного уровня) уровню транзакций сервера вместе СО всеми ответами на запросы, посланные уровнем транзакций сервера, обратно клиенту. Уровень транзакций ответствен за согласование последовательности сообщений и за повторную передачу и фильтрацию дублирующих сообщений протокола SIP при ненадежности транспортного уровня. В любой задаче, выполняемой клиентом агента пользователя, применяется последовательность транзакций. Уровень, находящийся над уровнем транзакций, – это пользователь транзакций или уровень услуг. Иначе говоря, это приложение, запускаемое на самом верхнем уровне стека протокола SIP, который обеспечивает конкретную функцию элемента.
Между уровнем услуг я уровнем транзакций может существовать необязательный уровень диалога. Диалог по протоколу SIP идентифицирует набор соответствующих транзакций. Например, при стандартном телефонном соединении двумя транзакциями, относящимися к одному диалогу по протоколу SIP, являются установка соединения и разъединение. Уровень диалога ответствен за согласование последовательностей транзакций и управление при их неполноте. Элементы протокола SIP посылают запросы и ответы другим элементам SIP в форме сообщений. Эти сообщения содержат обширную информацию, касающуюся таких деталей, как адреса источников, адреса назначения, подробности маршрутов, указатели соединений, последовательные номера, и другие сведения относительно работы протокола. Формат сообщений SIP обладает значительной гибкостью в том смысле, что информация в заголовке может быть составлена и упорядочена внутри сообщения, и возможна ситуация, когда сообщения логически эквивалентны, тогда как синтаксически они различны. Например, протокол SIP не указывает для многих заголовков порядок, в котором они должны появляться в сообщении. Кроме того, заголовки SIP обычно нейтральны, и стеки протокола от разных поставщиков могут строить сообщения различными способами. Однако важно, что все стеки протокола SIP совместимы друг с другом.