Кодирование речи — это применение сжатия данных к цифровым аудиосигналам , содержащим речь . Кодирование речи использует оценку речевых параметров , специфичных для речи, с использованием методов обработки аудиосигнала для моделирования речевого сигнала в сочетании с общими алгоритмами сжатия данных для представления полученных смоделированных параметров в компактном потоке битов. [1]
Распространенными приложениями кодирования речи являются мобильная телефония и передача голоса по IP (VoIP). [2] Наиболее широко используемым методом кодирования речи в мобильной телефонии является линейное предсказательное кодирование (LPC), в то время как в приложениях VoIP наиболее широко используются методы LPC и модифицированного дискретного косинусного преобразования (MDCT). [ необходима ссылка ]
Методы, используемые при кодировании речи, аналогичны тем, которые используются при сжатии аудиоданных и аудиокодировании , где оценка психоакустики используется для передачи только данных, которые имеют отношение к слуховой системе человека. Например, при кодировании речи в голосовом диапазоне передается только информация в диапазоне частот от 400 до 3500 Гц, но реконструированный сигнал сохраняет адекватную разборчивость .
Кодирование речи отличается от других форм аудиокодирования тем, что речь является более простым сигналом, чем другие аудиосигналы, и доступна статистическая информация о свойствах речи. В результате некоторая слуховая информация, которая имеет значение в общем аудиокодировании, может быть ненужной в контексте кодирования речи. Кодирование речи подчеркивает сохранение разборчивости и приятности речи при использовании ограниченного объема передаваемых данных. [3] Кроме того, большинство речевых приложений требуют низкой задержки кодирования, поскольку задержка мешает речевому взаимодействию. [4]
Речевые кодеры бывают двух классов: [5]
Алгоритмы A-law и μ-law, используемые в цифровой телефонии G.711 PCM, можно рассматривать как более раннего предшественника кодирования речи, требующего всего 8 бит на выборку, но дающего фактически 12 бит разрешения . [7] Логарифмическое компандирование согласуется с восприятием человеческого слуха в том, что шум с низкой амплитудой слышен вместе с речевым сигналом с низкой амплитудой, но маскируется сигналом с высокой амплитудой. Хотя это привело бы к неприемлемым искажениям в музыкальном сигнале, пиковая природа речевых волн в сочетании с простой частотной структурой речи как периодической волны, имеющей одну основную частоту с редкими добавленными шумовыми всплесками, делает эти очень простые алгоритмы мгновенного сжатия приемлемыми для речи. [ необходима цитата ] [ сомнительно – обсудить ]
В то время было испробовано множество других алгоритмов, в основном варианты дельта-модуляции , но после тщательного рассмотрения проектировщиками ранних систем цифровой телефонии были выбраны алгоритмы A-law/μ-law. На момент их разработки их 33%-ное сокращение полосы пропускания при очень низкой сложности стало отличным инженерным компромиссом. Их аудиопроизводительность остается приемлемой, и не было необходимости заменять их в стационарной телефонной сети. [ необходима цитата ]
В 2008 году ITU-T стандартизировал кодек G.711.1 , имеющий масштабируемую структуру. Частота дискретизации входного сигнала составляет 16 кГц. [8]
Большая часть более поздних работ по сжатию речи была мотивирована военными исследованиями в области цифровой связи для защищенных военных радиостанций , где очень низкие скорости передачи данных использовались для достижения эффективной работы во враждебной радиосреде. В то же время, была доступна гораздо большая вычислительная мощность в виде схем VLSI , чем была доступна для более ранних методов сжатия. В результате современные алгоритмы сжатия речи могли использовать гораздо более сложные методы, чем были доступны в 1960-х годах, для достижения гораздо более высоких коэффициентов сжатия.
Наиболее широко используемые алгоритмы кодирования речи основаны на линейном предсказательном кодировании (LPC). [9] В частности, наиболее распространенной схемой кодирования речи является кодирование с линейным предсказанием с кодовым возбуждением (CELP) на основе LPC, которое используется, например, в стандарте GSM . В CELP моделирование разделено на два этапа: этап линейного предсказания , который моделирует спектральную огибающую, и модель на основе кодовой книги остатка линейной предсказательной модели. В CELP коэффициенты линейного предсказания (LPC) вычисляются и квантуются, обычно как линейные спектральные пары (LSP). В дополнение к фактическому речевому кодированию сигнала часто необходимо использовать канальное кодирование для передачи, чтобы избежать потерь из-за ошибок передачи. Чтобы получить наилучшие общие результаты кодирования, методы речевого кодирования и канального кодирования выбираются парами, при этом более важные биты в потоке речевых данных защищаются более надежным канальным кодированием.
Модифицированное дискретное косинусное преобразование (MDCT) используется в технике LD-MDCT, используемой форматом AAC-LD , представленным в 1999 году. [10] С тех пор MDCT широко применяется в приложениях передачи голоса по IP (VoIP), таких как широкополосный аудиокодек G.729.1, представленный в 2006 году, [11] FaceTime от Apple (использующий AAC-LD), представленный в 2010 году, [12] и кодек CELT , представленный в 2011 году. [13]
Opus — это бесплатный программный аудиокодер. Он объединяет ориентированный на речь алгоритм SILK на основе LPC и алгоритм CELT на основе MDCT с малой задержкой, переключаясь между ними или комбинируя их по мере необходимости для максимальной эффективности. [14] [15] Он широко используется для звонков VoIP в WhatsApp . [16] [17] [18] Игровая консоль PlayStation 4 также использует Opus для своего системного чата PlayStation Network . [19]
Было продемонстрировано несколько кодеков с еще более низкими скоростями передачи данных . Codec2 , который работает на скоростях передачи данных всего 450 бит/с, используется в любительском радио. [20] В настоящее время НАТО использует MELPe , предлагая разборчивую речь на скорости 600 бит/с и ниже. [21] Также появились подходы нейронного вокодера: Lyra от Google дает «почти жуткое» качество на скорости 3 кбит/с. [22] Satin от Microsoft также использует машинное обучение, но использует более высокую настраиваемую скорость передачи данных и является широкополосным. [23]