- PVSM.RU - https://www.pvsm.ru -
В программе для цифровой радиопередачи FreeDV скоро можно будет проверить новый кодек в работе
Автор свободного голосового кодека Codec2, предназначенного для сверхплотного кодирования речи на голосовых каналах, выпустил новую версию Codec2 700C [1], в которой ему удалось закодировать различимую человеческую речь всего в 700 бит/с. Это значит, что трёхсекундная голосовая передача с различимой речью займёт всего лишь 260 байт.
Разумеется, такие технологии совершенно неуместны для сжатия музыки или другого мультимедийного контента, но это незаменимая вещь для коммуникации в условиях сильного ограничения на пропускную способность каналов связи. Например, при цифровой передаче звука с Марса.
Такое сверхплотное сжатие может пригодиться не только для космического применения, но также для любительского радио и для различных военных задач, спутниковой связи, закриптованных устройств. Например, сейчас армия США использует стандарт кодирования MELP [2] (Mixed Excitation Linear Prediction), но это интеллектуальная собственность компаний Texas Instruments (алгоритм и исходный код кодека MELP на 2400 бит/с), Microsoft (транскодер 1200 бит/с), Thales Group (600 бит/с) и AT&T (препроцессор шума). Этот же проприетарный стандарт MELP используется в спутниковых коммуникациях, защищённой голосовой связи и защищённых радиопередатчиках. Стандартизация и разработка MELP велась при поддержке АНБ и НАСА.
Очевидно, что людям нужен кодек аналогичного назначения, но свободный от патентных обременений MELP.
Разработчик звукового кодека Codec2 — Дэвид Роуи [3] (David Rowe). Он ведёт проект уже несколько лет. Первая альфа-версия Codec2 вышла ещё в сентябре 2010 года [4]. Этот инженер ранее приложил руку к созданию свободного аудиоформата для кодирования речи Speex [5], разработка которого была прекращена в пользу свободного формата Opus [6]. Затем Дэвид поставил задачу добиться передачи голоса в коммуникационном качестве в потоке 2400 бит/с и ниже, то есть сделать свободную альтернативу MELP.
«Я продолжаю работу над разработкой режима цифрового кодирования голоса, который может конкурировать с однополосной модуляцией [7], — пишет [1] Дэвид Роуи. — На большую часть 2016 года я отвлёкся от этой работы и занимался оплачиваемым проектом коммерческого высокочастотного (HF) модема. Но с декабря я снова работаю над кодеком 700 бит/с. Цель состоит в том, чтобы обеспечить качество примерно такое же, как у нынешнего режима 1300 бит/с. Это можно использовать в когерентном PSK-модеме, а может и в 4FSK-модеме при испытаниях на каналах HF».
Уместно пояснить, что PSK-модем — устройство для относительно нового цифрового вида передачи информации с узкополосной двухпозиционной фазовой модуляцией.
Автор проделал немалую работу, чтобы оптимизировать кодек. Блок-схема обработки сигнала в новом кодеке показана ниже. Дэвид Роуи пишет, что ключевым этапом этого алгоритма является передискретизация (ресэмплинг), когда варьируемое по времени количество амплитуд гармоник преобразуется в фиксированное количество (K=20) сэмплов. На низких частотах берётся больше сэмплов, чем на более высоких частотах, что соответствует логарифмическому восприятию человеческим ухом. Экспериментальным путём Дэвид пришёл к величине именно K=20.
Основная часть работы Дэвида Роуи касается именно перцептивного сжатия звука таким образом, чтобы наиболее оптимально соответствовать логарифмическим особенностям человеческого слуха, когда восприимчивость к разным частотам изменяется по логарифмическому закону.
3D-график соотношения амплитуды в дБ по времени (300 кадров) с параметром передискретизации K=20 частотных векторов для звукового образца hts1a (его можно прослушать ниже в таблице). Видно изменение сигнала во времени и низкие значения на высоких частотах, которые хуже воспринимаются человеческим ухом
Вообще, проблему дефицита свободных кодеков в дитапазоне до 5 кбит/с поднял Брюс Перенс [8] в 2009 году. Он связался с разработчиками Speex и предложил им изучить ситуацию. Codec2 основан на научных работах 60-80-х годов и вроде не подпадает под действующие патенты. Cинусоидальное кодирование речи впервые упоминается в 1984-м году, а сам Роуи подробно описал техники гармонического синусоидального кодирования в своей научной работе 1997 года. Кодек опубликован под свободной лицензией LGPL2.
На образцах ниже можно сравнить образцы предыдущей версии кодека на 1300 бит/с и новой версии на 700 бит/с.
Образец | 1300 | 700C |
---|---|---|
hts1a | Слушать [9] | Слушать [10] |
hts2a | Слушать [11] | Слушать [12] |
forig | Слушать [13] | Слушать [14] |
ve9qrp_10s | Слушать [15] | Слушать [16] |
mmt1 | Слушать [17] | Слушать [18] |
vk5qi | Слушать [19] | Слушать [20] |
vk5qi 1% BER | Слушать [21] | Слушать [22] |
cq_ref | Слушать [23] | Слушать [24] |
У каждого человека свои особенности слуха, поэтому автор просит оставить отзывы: насколько различимыми вам кажутся образцы на 700 бит/с, в сравнении с образцами на 1300 бит/с? Дэвид Роуи считает, что они примерно одинаковые: некоторые образцы немного лучше (cq_ref), а другие чуть хуже (ve9qrp_10s, mmt1). Артефакты везде разные. Но в любом случае — это ведь почти двукратное сокращение полосы!
Для сравнения, вот сравнение альфа-версии кодека Codec2 v0.1 (2550 бит/с) от 2010 года и проприетарного кодека MELP (2400 бит/с).
Мужской голос:
Оригинал [25]
Codec2 v0.1 (2550 бит/с) [26]
MELP (2400 бит/с) [27]
Женский голос:
Оригинал [28]
Codec2 v0.1 (2550 бит/с) [29]
MELP (2400 бит/с) [30]
В ближайшие недели Дэвид Роуи собирается открыть кодек 700C через интерфейсы для программы цифрового радио FreeDV [31] и провести первые испытания в эфире.
Автор: alizar
Источник [32]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/234189
Ссылки в тексте:
[1] Codec2 700C: http://www.rowetel.com/?p=5373
[2] MELP: https://en.wikipedia.org/wiki/Mixed-excitation_linear_prediction
[3] Дэвид Роуи: http://www.rowetel.com/?page_id=434
[4] сентябре 2010 года: https://habrahabr.ru/post/104662/
[5] Speex: https://speex.org/index.shtml.en
[6] Opus: http://opus-codec.org/
[7] однополосной модуляцией: https://ru.wikipedia.org/wiki/Однополосная_модуляция
[8] Брюс Перенс: http://perens.com/
[9] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/hts1a_1300.wav
[10] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/hts1a_700c.wav
[11] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/hts2a_1300.wav
[12] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/hts2a_700c.wav
[13] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/forig_1300.wav
[14] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/forig_700c.wav
[15] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/ve9qrp_10s_1300.wav
[16] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/ve9qrp_10s_700c.wav
[17] Слушать: https://www.pvsm.ru/downloads/codec2/newamp5/mmt1_1300.wav
[18] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/mmt1_700c.wav
[19] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/vk5qi_1300.wav
[20] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/vk5qi_700c.wav
[21] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/vk5qi_1300_ber0.01.wav
[22] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/vk5qi_700c_ber0.01.wav
[23] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/cq_ref_1300.wav
[24] Слушать: https://www.pvsm.ru/downloads/codec2/newamp6/cq_ref_700c.wav
[25] Оригинал: http://www.rowetel.com/downloads/codec2/hts1a.wav
[26] Codec2 v0.1 (2550 бит/с): http://www.rowetel.com/downloads/codec2/hts1a_c2_v0.1.wav
[27] MELP (2400 бит/с): http://www.rowetel.com/downloads/codec2/hts1a_melp.wav
[28] Оригинал: http://www.rowetel.com/downloads/codec2/hts2a.wav
[29] Codec2 v0.1 (2550 бит/с): http://www.rowetel.com/downloads/codec2/hts2a_c2_v0.1.wav
[30] MELP (2400 бит/с): http://www.rowetel.com/downloads/codec2/hts2a_melp.wav
[31] FreeDV: http://freedv.org/tiki-index.php
[32] Источник: https://geektimes.ru/post/284676/
Нажмите здесь для печати.