Сжатие тишины — это метод обработки звука, используемый для эффективного кодирования интервалов тишины, что позволяет сократить объем памяти или пропускную способность, необходимые для передачи аудиозаписей.
Тишину можно определить как аудиофрагменты с незначительным звуком. Примерами тишины являются паузы между словами или предложениями в речи и паузы между нотами в музыке. Сжимая интервалы тишины, аудиофайлы становятся меньше и их легче обрабатывать, хранить и отправлять, сохраняя при этом исходное качество звука. Хотя методы различаются, сжатие тишины обычно достигается с помощью двух важных шагов: обнаружения интервалов тишины и последующего сжатия этих интервалов. Приложения сжатия тишины включают телекоммуникации , потоковую передачу звука, распознавание голоса, архивирование аудио и производство медиа. [1]
Обрезка — это метод сжатия тишины, при котором интервалы тишины полностью удаляются. Это делается путем определения интервалов звука ниже определенного порога амплитуды, указания тишины и удаления этого интервала из звука. Недостатком обрезки является то, что она навсегда изменяет исходный звук и может вызвать заметные артефакты при воспроизведении звука. [1]
Подрезка амплитудного порога удаляет тишину посредством установки амплитудного порога, при котором любые аудиосегменты, которые опускаются ниже этого порога, считаются тишиной и обрезаются или полностью удаляются. Некоторые распространенные алгоритмы подрезки амплитудного порога: [ необходима цитата ]
Обрезка на основе энергии работает посредством анализа уровней энергии аудиосигнала. Уровень энергии аудиосигнала - это величина сигнала за короткий промежуток времени. Общая формула для расчета энергии аудио - это , где - энергия сигнала, - выборки в аудиосигнале, - амплитуда сигнала выборки -го уровня. После расчета уровней энергии устанавливается порог, при котором все уровни энергии, которые опускаются ниже порога, считаются тихими и удаляются. Обрезка на основе энергии может обнаруживать тишину более точно, чем обрезка на основе амплитуды, поскольку она учитывает общую выходную мощность звука, а не только амплитуду звуковой волны. Обрезка на основе энергии часто используется для голосовых/речевых файлов из-за необходимости хранить и передавать только соответствующие части, содержащие звук. Некоторые популярные алгоритмы обрезки на основе энергии включают методы кратковременной энергии (STE) и скорости пересечения нуля (ZCR). [2] Аналогично, эти алгоритмы также используются при обнаружении голосовой активности (VAD) для обнаружения речевой активности. [1] [3]
Подавление тишины — это метод, используемый в контексте Voice over IP (VoIP) и потоковой передачи аудио для оптимизации скорости передачи данных. Благодаря временному сокращению данных в интервалах тишины, аудио может транслироваться через Интернет в режиме реального времени более эффективно. [1] [3]
DTX оптимизирует использование полосы пропускания во время телекоммуникаций в реальном времени, обнаруживая интервалы молчания и приостанавливая передачу этих интервалов. Благодаря постоянному мониторингу аудиосигнала алгоритмы DTX могут обнаруживать тишину на основе предопределенных критериев. При обнаружении тишины на приемник отправляется сигнал, который останавливает передачу аудиоданных. Когда речь/звук возобновляются, передача звука возобновляется. Эта технология обеспечивает бесперебойную связь, при этом высокоэффективно используя сетевые ресурсы. [1] [3]
Кодирование тишины необходимо для эффективного представления интервалов тишины без полного удаления тишины. Это позволяет минимизировать данные, необходимые для кодирования и передачи тишины, сохраняя при этом целостность аудиосигнала. [4] [5] [6] Для этой цели используются несколько методов кодирования:
RLE работает для обнаружения повторяющихся идентичных образцов в аудио и кодирует эти образцы таким образом, чтобы это было более эффективно с точки зрения пространства. Вместо того, чтобы хранить каждый идентичный образец по отдельности, RLE сохраняет один образец и ведет подсчет, сколько раз он повторяется. RLE хорошо работает при кодировании тишины, поскольку интервалы тишины часто состоят из повторяющихся последовательностей идентичных образцов. Сокращение идентичных образцов, сохраненных впоследствии, уменьшает размер аудиосигнала. [4] [5]
Кодирование Хаффмана — это метод энтропийного кодирования и алгоритм кода переменной длины , который назначает более общие значения с более короткими двоичными кодами , требующими меньше бит для хранения. Кодирование Хаффмана работает в контексте сжатия тишины, назначая часто встречающиеся шаблоны тишины с более короткими двоичными кодами, уменьшая размер данных. [5] [6]
Дифференциальное кодирование использует сходство между последовательными аудиосэмплами во время интервалов тишины, сохраняя только разницу между сэмплами. Дифференциальное кодирование используется для эффективного кодирования переходов между звуком и тишиной и полезно для аудиосэмплов, где тишина перемежается с активным звуком. [7] [8] [9] Некоторые алгоритмы дифференциального кодирования включают:
Дельта-модуляция квантует и кодирует различия между последовательными аудиосэмплами, кодируя производную амплитуды аудиосэмпла. Сохраняя то, как аудиосигнал изменяется с течением времени, а не сами сэмплы, можно эффективно захватить переход от тишины к звуку. Дельта-модуляция обычно использует однобитный механизм квантования , где 1 указывает на увеличение размера сэмпла, а 0 указывает на уменьшение. Хотя это позволяет эффективно использовать полосу пропускания или хранилище, оно не может обеспечить высококачественное кодирование сигналов с низкой амплитудой. [8]
Модуляция дельта-сигма является более продвинутым вариантом дельта-модуляции, которая позволяет выполнять высокоточное кодирование для сигналов с низкой амплитудой. Это осуществляется посредством квантования с высокой частотой передискретизации , что позволяет выполнять точное кодирование небольших изменений в аудиосигнале. Модуляция дельта-сигма используется в ситуациях, когда приоритетным является поддержание высокой точности звука. [9]
Уменьшение размера аудиосигнала за счет сжатия тишины находит применение во многих приложениях: