stringtranslate.com

Кодек 2

Кодек 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 , и в дополнение к версии Apple MacOS предлагается порт для Microsoft Windows , созданный с помощью Cygwin .

Кодек был представлен на различных конференциях и получил награду 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]

Рекомендации

  1. ^ «DCC2011-Codec2-VK5DGR» (PDF) .
  2. ^ "Квантатор энергии тона для Codec2" . Архивировано из оригинала 19 июня 2015 г.
  3. ^ «Репозиторий исходного кода кодека 2» . Гитхаб . 14 октября 2021 г.
  4. ^ «Кодек2 - голосовой кодек с низкой пропускной способностью и открытым исходным кодом» . Слэшдот . 21 сентября 2010 г.
  5. ^ «Совет директоров ARRL назвал лауреатов премии на втором заседании 2012 года» . www.arrl.org .
  6. ^ «Конференция Linux Australia 2012» . Архивировано из оригинала 29 ноября 2012 г. Проверено 2 августа 2012 г.
  7. ^ «Методы гармонического синусоидального кодирования» (PDF) . Архивировано из оригинала (PDF) 15 мая 2013 г. Проверено 12 апреля 2013 г.
  8. ^ «FreeDV: Любительский цифровой голос с открытым исходным кодом - где любительское радио определяет современное состояние» .
  9. ^ «FreeDV, CODEC2 и WaveformAPI» . Архивировано из оригинала 02 апреля 2015 г. Проверено 6 марта 2015 г.
  10. ^ «Представляем интеллектуальный микрофон SM1000 – Rowetel» . 21 мая 2014 г.
  11. ^ «Quisk, программно-конфигурируемое радио (SDR)» . Джеймс.Альстром.имя .
  12. ^ «Описание протокола M17» . Гитхаб .
  13. ^ «Спутники группировки QB-50, развернутые с МКС» . Сайт Американской лиги радиорелейной связи . 15 ноября 2017 г. Проверено 31 марта 2019 г.
  14. ^ «Методы гармонического синусоидального кодирования» (PDF) . Архивировано из оригинала (PDF) 15 мая 2013 г. Проверено 12 апреля 2013 г.
  15. ^ «Низкоскоростной речевой кодек с открытым исходным кодом, часть 1 - Rowetel» . 21 августа 2009 г.
  16. ^ «Выпущен альфа-кодек 2 V0.1 - Rowetel» . 25 августа 2010 г.
  17. ^ "Квантизатор энергии тона для Codec2" .
  18. ^ «Кодек с открытым исходным кодом кодирует голос всего со скоростью 700 бит в секунду» . Слэшдот . 13 января 2017 года . Проверено 31 марта 2019 г.
  19. ^ «Цифровой голос Codec2 HF со скоростью 450 бит/с» . Новости любительского радио Саутгейта . 08.07.2018 . Проверено 31 марта 2019 г.

Внешние ссылки