Кодек 2
Разработчик(и) | Дэвид Грант Роу |
---|---|
Первоначальный выпуск | 25 августа 2010 г. |
Стабильная версия | 1.2.0 / 24 июня 2023 г |
Репозиторий | github |
Написано в | С99 |
Платформа | Кросс-платформенный |
Тип | Аудиокодек |
Лицензия | GNU LGPL , версия 2.1 |
Веб-сайт | www |
Кодек 2 речи с низким битрейтом — это аудиокодек ( кодирование речи ), не имеющий патентов и с открытым исходным кодом . [1] Кодек 2 сжимает речь, используя синусоидальное кодирование — метод, специально предназначенный для человеческой речи . Были успешно созданы скорости передачи данных от 3200 до 450 бит/с. Кодек 2 был разработан для использования в любительском радио и других голосовых приложениях с высокой степенью сжатия.
Обзор [ править ]
Кодек был разработан Дэвидом Грантом Роу при поддержке и сотрудничестве других исследователей (например, Жана-Марка Валена из Opus ). [2]
Кодек 2 состоит из режимов кодека 3200, 2400, 1600, 1400, 1300, 1200, 700 и 450 бит/с. с низким битрейтом Он превосходит большинство других речевых кодеков . Например, он использует половину полосы пропускания Advanced Multi-Band Excitation для кодирования речи с аналогичным качеством. [ нужна ссылка ] Речевой кодек использует 16-битный звук PCM и выводит упакованные цифровые байты. При отправке упакованных цифровых байтов он выводит дискретизированный звук PCM. Частота дискретизации звука фиксирована на уровне 8 кГц.
Эталонная реализация имеет открытый исходный код и находится в свободном доступе в репозитории GitHub . [3] Исходный код распространяется на условиях лицензии GNU Lesser General Public License (LGPL) версии 2.1. [4] Он запрограммирован на языке C , и текущий исходный код требует арифметики с плавающей запятой , хотя сам алгоритм этого не требует. Эталонный пакет программного обеспечения также включает программный модем цифровой голосовой связи с частотным разделением каналов и графический интерфейс пользователя на основе WxWidgets . Программное обеспечение разработано для Linux порт для Microsoft Windows, созданный с помощью Cygwin предлагается , и в дополнение к версии Apple MacOS .
Кодек был представлен на различных конференциях и получил награду ARRL за технические инновации 2012 года. [5] и награда за лучшую презентацию на конференции Linux Australia. [6]
Технология [ править ]
Внутри алгоритмы параметрического аудиокодирования работают с кадрами PCM длительностью 10 мс, используя модель человеческого голоса. Каждый из этих аудиосегментов объявляется звонким (гласный) или глухим (согласный).
Кодек 2 использует синусоидальное кодирование для моделирования речи, которое тесно связано с кодированием многополосного возбуждения . Синусоидальное кодирование основано на закономерностях (периодичности) в структуре частот обертонов и слоях гармонических синусоидов. Разговорный звук воссоздается путем моделирования речи как суммы гармонически связанных синусоидальных волн с независимыми амплитудами, называемыми линейными спектральными парами или LSP, поверх определенной основной частоты голоса говорящего (высоты). (Квантованный) шаг и амплитуда (энергия) гармоник кодируются и с помощью LSP передаются по каналу в цифровом формате. Коэффициенты LSP представляют собой модель линейного прогнозирующего кодирования (LPC) в частотной области и обеспечивают надежное и эффективное квантование параметров LPC. [7]
Цифровые байты имеют формат битового поля и упакованы в байты. Эти битовые поля также могут быть закодированы серым перед группировкой. Серое кодирование может быть полезно при отправке необработанных данных, но обычно приложение просто выбрасывает битовые поля. Битовые поля составляют различные параметры, которые сохраняются или обмениваются (высота звука, энергия, логические значения озвучивания, LSP и т. д.).
Например, в режиме 3200 звук длительностью 20 мс преобразуется в 64 бита. Таким образом, 64 бита будут выводиться каждые 20 мс (50 раз в секунду) при минимальной скорости передачи данных 3200 бит/с. Эти 64 бита отправляются в виде 8 байтов приложению, которое должно развернуть битовые поля или отправить байты по каналу данных.
Другим примером является режим 1300, который отправляет аудио длительностью 40 мс и выводит 52 бита каждые 40 мс (25 раз в секунду) с минимальной скоростью 1300 бит/с. Эти 52 бита отправляются в виде 7 байтов в приложение или канал данных.
Принятие [ править ]
Кодек 2 в настоящее время используется в нескольких радиостанциях и программно-конфигурируемых радиосистемах.
Codec2 также интегрирован в FreeSWITCH , и доступен патч для поддержки в Asterisk .
На околоземной орбите находился цифровой ретранслятор голоса FM-to-Codec2 на любительской радиостанции CubeSat LilacSat-1 (позывной ON02CN, созвездие QB50 ), который был запущен и впоследствии развернут с Международной космической станции в 2017 году. [13]
История [ править ]
Известный сторонник свободного программного обеспечения и радиолюбитель Брюс Перенс лоббировал создание кодека свободной речи, работающего на скорости менее 5 кбит/с. Поскольку у него самого не было опыта, в 2008 году он обратился к Жан-Марку Валену, который познакомил его с ведущим разработчиком Дэвидом Грантом Роу, который работал с Валином над Speex несколько раз . Сам Роу также был радиолюбителем (радиолюбительский позывной ВК5ДГР) и имел опыт создания и использования голосовых кодеков и других алгоритмов обработки речевых сигналов. Он получил докторскую степень в области кодирования речи в 1990-х годах и участвовал в разработке одной из первых систем спутниковой телефонии ( Mobilesat ).
Он согласился с задачей и объявил о своем решении работать над форматом 21 августа 2009 года. Он опирался на исследования и выводы своей докторской диссертации. [14] [15] Основополагающее синусоидальное моделирование восходит к разработкам Роберта Дж. Маколея и Томаса Ф. Куатьери (лаборатории Массачусетского технологического института в Линкольне) середины 1980-х годов.
В августе 2010 года Дэвид Роу опубликовал альфа-версию 0.1. [16] Версия 0.2 была выпущена ближе к концу 2011 года и представила режим со скоростью 1400 бит/с и значительные улучшения в квантовании.
В январе 2012 года на linux.conf.au Жан-Марк Вален помог улучшить квантование линейных спектральных пар, с которым Роу менее знаком. [17] После нескольких изменений доступных режимов скорости передачи данных зимой и весной 2011/2012 года, после мая того же года стали доступны режимы 2400, 1400 и 1200 бит/с.
Кодек 2 700C, новый режим со скоростью передачи данных 700 бит/с, был завершен в начале 2017 года. [18]
В июле 2018 года был продемонстрирован экспериментальный режим 450 бит/с, который был разработан в рамках магистерской диссертации в Университете Эрланген-Нюрнберг. За счет умной тренировки векторного квантования скорость передачи данных можно еще больше снизить на основе принципа режима 700C. [19]
Ссылки [ править ]
- ^ «DCC2011-Codec2-VK5DGR» (PDF) .
- ^ «Квантатор энергии тона для Codec2» . Архивировано из оригинала 19 июня 2015 г.
- ^ «Репозиторий исходного кода кодека 2» . Гитхаб . 14 октября 2021 г.
- ^ «Codec2 — голосовой кодек с низкой пропускной способностью и открытым исходным кодом» . Слэшдот . 21 сентября 2010 г.
- ^ «Совет директоров ARRL назвал лауреатов премии на втором заседании 2012 года» . www.arrl.org .
- ^ «Конференция Linux Australia 2012» . Архивировано из оригинала 29 ноября 2012 г. Проверено 2 августа 2012 г.
- ^ «Методы гармонического синусоидального кодирования» (PDF) . Архивировано из оригинала (PDF) 15 мая 2013 г. Проверено 12 апреля 2013 г.
- ^ «FreeDV: Любительская цифровая голосовая связь с открытым исходным кодом - где любительское радио определяет современное состояние» .
- ^ «FreeDV, CODEC2 и WaveformAPI» . Архивировано из оригинала 02 апреля 2015 г. Проверено 6 марта 2015 г.
- ^ «Представляем интеллектуальный микрофон SM1000 – Rowetel» . 21 мая 2014 г.
- ^ «Quisk, программно-конфигурируемое радио (SDR)» . Джеймс.Альстром.имя .
- ^ «Описание протокола М17» . Гитхаб .
- ^ «Спутники группировки QB-50, развернутые с МКС» . Сайт Американской лиги радиорелейной связи . 15 ноября 2017 г. Проверено 31 марта 2019 г.
- ^ «Методы гармонического синусоидального кодирования» (PDF) . Архивировано из оригинала (PDF) 15 мая 2013 г. Проверено 12 апреля 2013 г.
- ^ «Низкоскоростной речевой кодек с открытым исходным кодом, часть 1 – Rowetel» . 21 августа 2009 г.
- ^ «Выпущен альфа-кодек 2 V0.1 – Rowetel» . 25 августа 2010 г.
- ^ «Квантатор энергии тона для Codec2» .
- ^ «Кодек с открытым исходным кодом кодирует голос всего лишь со скоростью 700 бит в секунду» . Слэшдот . 13 января 2017 года . Проверено 31 марта 2019 г.
- ^ «Цифровой голос Codec2 HF со скоростью 450 бит/с» . Новости любительского радио Саутгейта . 08.07.2018 . Проверено 31 марта 2019 г.