В программе для цифровой радиопередачи 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 и провести первые испытания в эфире.
Автор: alizar