Как стать автором
Обновить

Новый кодек Codec2 700C сжимает речь до 700 бит/c

Время на прочтение 4 мин
Количество просмотров 30K

В программе для цифровой радиопередачи FreeDV скоро можно будет проверить новый кодек в работе

Автор свободного голосового кодека Codec2, предназначенного для сверхплотного кодирования речи на голосовых каналах, выпустил новую версию Codec2 700C, в которой ему удалось закодировать различимую человеческую речь всего в 700 бит/с. Это значит, что трёхсекундная голосовая передача с различимой речью займёт всего лишь 260 байт.

Разумеется, такие технологии совершенно неуместны для сжатия музыки или другого мультимедийного контента, но это незаменимая вещь для коммуникации в условиях сильного ограничения на пропускную способность каналов связи. Например, при цифровой передаче звука с Марса.

Такое сверхплотное сжатие может пригодиться не только для космического применения, но также для любительского радио и для различных военных задач, спутниковой связи, закриптованных устройств. Например, сейчас армия США использует стандарт кодирования MELP (Mixed Excitation Linear Prediction), но это интеллектуальная собственность компаний Texas Instruments (алгоритм и исходный код кодека MELP на 2400 бит/с), Microsoft (транскодер 1200 бит/с), Thales Group (600 бит/с) и AT&T (препроцессор шума). Этот же проприетарный стандарт MELP используется в спутниковых коммуникациях, защищённой голосовой связи и защищённых радиопередатчиках. Стандартизация и разработка MELP велась при поддержке АНБ и НАСА.

Очевидно, что людям нужен кодек аналогичного назначения, но свободный от патентных обременений MELP.

Разработчик звукового кодека Codec2 — Дэвид Роуи (David Rowe). Он ведёт проект уже несколько лет. Первая альфа-версия Codec2 вышла ещё в сентябре 2010 года. Этот инженер ранее приложил руку к созданию свободного аудиоформата для кодирования речи Speex, разработка которого была прекращена в пользу свободного формата Opus. Затем Дэвид поставил задачу добиться передачи голоса в коммуникационном качестве в потоке 2400 бит/с и ниже, то есть сделать свободную альтернативу MELP.

«Я продолжаю работу над разработкой режима цифрового кодирования голоса, который может конкурировать с однополосной модуляцией, — пишет Дэвид Роуи. — На большую часть 2016 года я отвлёкся от этой работы и занимался оплачиваемым проектом коммерческого высокочастотного (HF) модема. Но с декабря я снова работаю над кодеком 700 бит/с. Цель состоит в том, чтобы обеспечить качество примерно такое же, как у нынешнего режима 1300 бит/с. Это можно использовать в когерентном PSK-модеме, а может и в 4FSK-модеме при испытаниях на каналах HF».

Уместно пояснить, что PSK-модем — устройство для относительно нового цифрового вида передачи информации с узкополосной двухпозиционной фазовой модуляцией.

Автор проделал немалую работу, чтобы оптимизировать кодек. Блок-схема обработки сигнала в новом кодеке показана ниже. Дэвид Роуи пишет, что ключевым этапом этого алгоритма является передискретизация (ресэмплинг), когда варьируемое по времени количество амплитуд гармоник преобразуется в фиксированное количество (K=20) сэмплов. На низких частотах берётся больше сэмплов, чем на более высоких частотах, что соответствует логарифмическому восприятию человеческим ухом. Экспериментальным путём Дэвид пришёл к величине именно K=20.



Основная часть работы Дэвида Роуи касается именно перцептивного сжатия звука таким образом, чтобы наиболее оптимально соответствовать логарифмическим особенностям человеческого слуха, когда восприимчивость к разным частотам изменяется по логарифмическому закону.


3D-график соотношения амплитуды в дБ по времени (300 кадров) с параметром передискретизации K=20 частотных векторов для звукового образца hts1a (его можно прослушать ниже в таблице). Видно изменение сигнала во времени и низкие значения на высоких частотах, которые хуже воспринимаются человеческим ухом

Вообще, проблему дефицита свободных кодеков в диапазоне до 5 кбит/с поднял Брюс Перенс в 2009 году. Он связался с разработчиками Speex и предложил им изучить ситуацию. Codec2 основан на научных работах 60-80-х годов и вроде не подпадает под действующие патенты. Cинусоидальное кодирование речи впервые упоминается в 1984-м году, а сам Роуи подробно описал техники гармонического синусоидального кодирования в своей научной работе 1997 года. Кодек опубликован под свободной лицензией LGPL2.

На образцах ниже можно сравнить образцы предыдущей версии кодека на 1300 бит/с и новой версии на 700 бит/с.
Образец 1300 700C
hts1a Слушать Слушать
hts2a Слушать Слушать
forig Слушать Слушать
ve9qrp_10s Слушать Слушать
mmt1 Слушать Слушать
vk5qi Слушать Слушать
vk5qi 1% BER Слушать Слушать
cq_ref Слушать Слушать
У каждого человека свои особенности слуха, поэтому автор просит оставить отзывы: насколько различимыми вам кажутся образцы на 700 бит/с, в сравнении с образцами на 1300 бит/с? Дэвид Роуи считает, что они примерно одинаковые: некоторые образцы немного лучше (cq_ref), а другие чуть хуже (ve9qrp_10s, mmt1). Артефакты везде разные. Но в любом случае — это ведь почти двукратное сокращение полосы!

Для сравнения, вот сравнение альфа-версии кодека Codec2 v0.1 (2550 бит/с) от 2010 года и проприетарного кодека MELP (2400 бит/с).

Мужской голос:
Оригинал
Codec2 v0.1 (2550 бит/с)
MELP (2400 бит/с)

Женский голос:
Оригинал
Codec2 v0.1 (2550 бит/с)
MELP (2400 бит/с)

В ближайшие недели Дэвид Роуи собирается открыть кодек 700C через интерфейсы для программы цифрового радио FreeDV и провести первые испытания в эфире.
Теги:
Хабы:
+47
Комментарии 76
Комментарии Комментарии 76

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн