- •Москва 2026
- •1Введение
- •2Технические требования к звуковому вещанию
- •3Классические кодеки
- •4Общи принципы работы нейронных аудио кодеков
- •4.2Свёрточные нейронные сети
- •4.3Вычитатель (Discriminator)
- •4.4Обучение
- •5Нейронные аудио кодеки
- •6Методика тестирования качества звучания
- •6.1Описание методики
- •6.2Результаты тестирования нейронных аудиокодеков
- •7Заключение
- •8Список литературы
- •9Содержание
3Классические кодеки
Так как предполагается использование сжатия без потерь или отсутствие сжатия как таково, задача сводится к предоставлению такому кодеру уже сжатого звука. То есть необходимо подобрать такой кодек, который можно будет использовать для «первичного» кодирования звука.
«Привычные» кодеки (например, MPEG, Vorbis, OPUS, FLAC, APE) условно статичны: параметры их кодирования задаются заранее, а механизмы работы используют, как говорилось ранее, математические и психоакустические алгоритмы, которые также «заложены» в сами кодеки и не подлежат изменению в процессе кодирования. Это приводит к тому, что они не являются универсальными: каждый кодек имеет свои сильные и слабые стороны.
Так как прямой задачей кодеков является уменьшение передаваемой информации, стоит вопрос использования наиболее эффективных кодеков под конкретные задачи. К сожалению, существующие кодеки плохо отрабатывают при кодировании с низким битрейтом. Например, для mp3 минимальным битрейтом является 32 кбит/с при частоте дискретизации 44100 Гц и 48000 Гц.
4Общи принципы работы нейронных аудио кодеков
Одним из решений проблемы кодирования звуковых данных при низких показателях битрейта является применение искусственного интеллекта (нейросетей) для кодирования информации. Такие решения уже присутствуют на рынке: например, EnCode, Webex, Stability AI Codec. Они все являются кодеками на основе применения нейронный сетей для сжатия информации.
Основная идейная структура всех нейронных кодеков схожа, и состоит из:
Кодировщика (энкодера), чья задача преобразовать каждый отсчёт (которые фиксированы по времени) в вектор определённой размерности.
Далее происходит векторное квантование посредством остаточное векторное квантование.
Декодер принимает на вход сжатый сигнал, который восстанавливается различными средствами до максимально похожего на исходный сигнал.
При обучении также используется устройство обратной связи: оно вычисляет ошибки между сигналом после декодера и исходным сигналом.
4.1Residual Vector Quantization (RVQ)
Три упомянутых выше кодека объединяет метод квантования: residual vector quantization (или остаточное векторное квантование), что есть надстройка над простым векторным квантованием.
Идея векторного квантования в том, что данные представляются в виде точек на некой плоскости (например, в двумерной системе декартовых координат). Далее охваченная плоскость делится на блоки каким либо методом (например, на равные квадраты). Таким образом каждая точка будет иметь свои координаты и принадлежность к одному из индексированных блоков. Далее осуществляется замена координат точек (пар дробных значений x,y) на единичное (целое) значение индекса каждого блока. Если требуется получить координаты, то используются центроиды блоков: координаты центров блоков. Основной недостаток такого метода – зависимость величины ошибки квантования вида шаг блока в степени количества измерений координат (квадрат от размера блока в случае двумерной декартовой системы координат), что приводит к чрезмерному увеличению вычислений для минимизации ошибок квантования.
Развитием этой идеи и стало остаточное векторное квантование. После разделения всего пространства на блоки, каждый блок также делится на блоки по похожему принципу. Разница между центроидом одного из «больших» блоков и точкой данных будет остатком. Этот остаток квантуется таким же образом: вместо его координаты внутри блока относительного его центра используется индекс меньшего блока. Подобная разбивка на блоки внутри блоков может продолжаться около бесконечно: до достижения необходимой величины ошибки. При этом точность такого разбития сопоставима с более частым разбитием на большие кластеры. Например, двойное разбитие на 25 кластеров (25 больших и 25 «остаточных» кластеров) сравнимо по точности с разбивкой на 625 кластеров при кратном уменьшении количеств вычислений: 625 для 625 кластеров и 50 – для двойной разбивки.
Результат работы такого квантователя – одномерный вектор индексов кластеров, к которому относится точка данных. При обратном процессе в качестве координаты точки данных используются центроиды кластеров, к которым она принадлежит.
Таким образом, остаточное векторное квантование снижает количество необходимых вычислений и необходимый размер вектора (целочисленные индексы кластеров вместо дробных пар координат). Что, в свою очередь, снижает итоговых объём передаваемой информации.
