СПОСОБ И УСТРОЙСТВО ДЛЯ ВЕКТОРНОГО КВАНТОВАНИЯ СПЕКТРАЛЬНОГО ПРЕДСТАВЛЕНИЯ ОГИБАЮЩЕЙ
METHOD AND DEVICE FOR QUANTISATION OF SPECTRAL PRESENTATION OF ENVELOPES

Связанные заявки
Настоящая заявка испрашивает приоритет предварительной патентной заявки США №60/667,901 на «Кодирование полосы верхних частот широкополосной речи», поданной 1 апреля 2005. Настоящая заявка также испрашивает приоритет предварительной патентной заявки США №60/673,965 на «Параметрическое кодирование в речевом кодере полосы верхних частот», поданной 22 апреля 2005.
Область техники
Настоящее изобретение относится к обработке сигнала.
Предшествующий уровень техники
Речевой кодер посылает характеристику спектральной огибающей речевого сигнала на декодер в форме вектора частот спектральных линий (LSF) или подобного представления. Для эффективной передачи эти LSF квантуются.
Сущность изобретения
Квантователь согласно одному варианту осуществления конфигурирован для квантования сглаженного значения входного значения (такого как вектор частот спектральных линий или его часть) для формирования соответствующего выходного значения, где сглаженное значение основано на масштабном коэффициенте и ошибке квантования предыдущего выходного значения.
Краткое описание чертежей
Фиг.1а - блок-схема речевого кодера Е100 согласно варианту осуществления.
Фиг.1b - блок-схема речевого декодера Е200.
Фиг.2 - пример одномерного отображения, обычно выполняемого скалярным квантователем.
Фиг.3 - простой пример многомерного отображения, выполняемого векторным квантователем.
Фиг.4а - пример одномерного сигнала, фиг.4b - пример версии этого сигнала после квантования.
Фиг.4с - пример сигнала по фиг.4а, квантованного квантователем 230b, как показано на фиг.6.
Фиг.4d - пример сигнала по фиг.4а, квантованного квантователем 230а, как показано на фиг.5.
Фиг.5 - блок-схема реализации 230а квантователя 230 согласно варианту осуществления.
Фиг.6 - блок-схема реализации 230b квантователя 230 согласно варианту осуществления.
Фиг.7а - пример графика зависимости логарифмической амплитуды от частоты для речевого сигнала.
Фиг.7b - блок-схема базовой системы кодирования с линейным предсказанием.
Фиг.8 - блок-схема реализации А122 узкополосного кодера А120 (как показано на фиг.10а).
Фиг.9 - блок-схема реализации В112 узкополосного декодера В110 (как показано на фиг.11а).
Фиг.10а - блок-схема широкополосного речевого кодера А100.
Фиг.10b - блок-схема реализации А102 широкополосного речевого кодера А100.
Фиг.11а - блок-схема широкополосного речевого декодера B100, соответствующего широкополосному речевому кодеру А100.
Фиг.11b - блок-схема широкополосного речевого декодера соответствующего широкополосному речевому кодеру А102.
Детальное описание
Ввиду ошибок квантования спектральная огибающая, восстанавливаемая в декодере, может испытывать чрезмерные флуктуации. Эти флуктуации могут формировать нежелательное качество флуктуирующего звучания в декодированном сигнале. Варианты осуществления включают в себя системы, способы и устройство, конфигурированные для выполнения высококачественного широкополосного речевого кодирования с использованием временного квантования с ограничением шума параметров спектральной огибающей. Признаки включают фиксированное или адаптивное сглаживание представлений коэффициентов, таких как LSF полосы верхних частот. Конкретные описанные применения включают широкополосный речевой кодер, который комбинирует сигнал полосы нижних частот и сигнал полосы верхних частот.
Если явно не ограничено контекстом, термин «вычисление», использованный здесь, указывает на одно из его обычных значений, таких как вычисление, формирование и выбор из списка значений. Там, где термин «содержащий» используется в настоящем описании и формуле изобретения, не исключается наличие других элементов или операций. Термин «А основано на В» используется для указания на любое из его обычных значений, включая случаи (i) «А равно В» и (ii) «А основано на, по меньшей мере, В». Термин «Интернет-протокол» включает в себя версию 4, как описано в IETF (Целевая группа инженерной поддержки Интернет) RFC (Запрос на комментарии) 791, и последующие версии, такие как версия 6.
Речевой кодер может быть реализован в соответствии с моделью фильтра-источника, которая кодирует входной речевой сигнал как набор параметров, которые описывают фильтр. Например, спектральная огибающая речевого сигнала характеризуется рядом пиков, которые представляют резонансы голосового тракта и называются формантами. На фиг.7а представлен пример такой спектральной огибающей. Большинство речевых кодеров кодируют, по меньшей мере, эту грубую спектральную структуру как набор параметров, таких как коэффициенты фильтра.
На фиг.1а показана блок-схема речевого кодера Е100 согласно варианту осуществления. Как показано в данном примере, модуль анализа может быть реализован как модуль 210 анализа кодирования с линейным предсказанием (LPC), который кодирует спектральную огибающую речевого сигнала 31 как набор коэффициентов линейного предсказания (LP) (например, коэффициентов фильтра с одними полюсами (полюсного фильтра) 1/А(z)). Модуль анализа в типовом случае обрабатывает входной сигнал как последовательность неперекрывающихся кадров, причем новый набор коэффициентов вычисляется для каждого кадра. Период кадра в общем случае является периодом, в котором сигнал может быть локально стационарным; обычный пример соответствует 20 мс (эквивалентно 160 выборкам с частотой дискретизации 8 кГц). Один пример модуля анализа LPC полосы нижних частот (как показанный, например, на фиг.8 модуль 210 анализа LPC) конфигурирован для вычисления десяти коэффициентов фильтра LP, чтобы характеризовать формантную структуру каждого кадра длительностью 20 мс узкополосного сигнала 320, и один пример модуля анализа LPC полосы верхних частот (как показанный, например, на фиг.10а кодер А200 полосы верхних частот) конфигурирован для вычисления набора из шести (или восьми) коэффициентов фильтра LP, чтобы характеризовать формантную структуру каждого кадра длительностью 20 мс сигнала 330 полосы верхних частот. Также возможно реализовать модуль анализа для обработки входного сигнала как последовательности перекрывающихся кадров.
Модуль анализа может быть конфигурирован для анализа выборок каждого кадра непосредственно, или выборки могут сначала взвешиваться в соответствии с функцией окна (например, окна Хэмминга). Анализ также может выполняться в пределах окна, длительность которого больше длительности кадра, например окна длительностью 30 мс. Это окно может быть симметричным (например, 5-20-5, так что оно включает в себя 5 мс непосредственно перед и после кадра длительностью 20 мс) или асимметричным (например, 10-20, так что оно включает в себя последние 10 мс предыдущего кадра). Модуль анализа LPC в типовом случае конфигурируется для вычисления коэффициентов LP-фильтра с использованием рекурсии Левинсона-Дарбина или алгоритма Leroux-Gueguen. В другой реализации модуль анализа может быть конфигурирован для вычисления набора кепстральных коэффициентов для каждого кадра вместо набора коэффициентов LP-фильтра.
Выходная скорость передачи информации в битах речевого кодера может быть существенно снижена, при относительно малом влиянии на качество воспроизведения, путем квантования параметров фильтра. Коэффициенты LP-фильтра трудно квантовать эффективным образом, и они обычно отображаются речевым кодером на другое представление, такое как пары спектральных линий (LSP) или частоты спектральных линий (LSF), для квантования и/или энтропийного (статистического) кодирования. Речевой кодер Е100, как показано на фиг.1а, содержит преобразователь 220 коэффициентов LP-фильтра в LSF для преобразования коэффициентов LP-фильтра в соответствующий вектор LSF S3. Другие однозначные представления коэффициентов LP-фильтра включают в себя коэффициенты парциальных корреляций, значения коэффициентов логарифмов площадей, пары спектральных иммитансов (ISP) и частоты спектральных иммитансов (ISF), которые используются в адаптивном многоскоростном широкополосном кодеке (AMR-WB кодеке) системы GSM. В типовом случае преобразование между набором коэффициентов LP-фильтра и соответствующим набором LSF является реверсируемым, но варианты осуществления также включают в себя реализации речевого кодера, в котором преобразование является не реверсируемым без ошибок.
Речевой кодер в типовом случае включает в себя квантователь, конфигурированный для квантования набора узкополосных LSF (или другого представления коэффициентов) и для вывода результатов этого квантования в качестве параметров фильтра. Квантование в типовом случае выполняется с использованием векторного квантователя, который кодирует входной вектор как индекс для соответствующей векторной записи в таблице или кодовой книге. Такой квантователь также может конфигурироваться для выбора одного из набора кодовых книг на основе информации, которая уже была кодирована в том же кадре (например, в канале полосы нижних частот и/или канале полосы верхних частот). Такой метод в типовом случае обеспечивает увеличенную эффективность кодирования ценой дополнительной памяти кодовой книги.
Фиг.1b показывает блок-схему соответствующего речевого декодера Е200, который включает в себя инверсный квантователь 310, конфигурированный для обратного квантования (деквантования) квантованных LSF S3, и преобразователь 320 LSF в коэффициенты LP-фильтра, конфигурированный для преобразования деквантованного вектора LSF в набор коэффициентов LP-фильтра. Фильтр 330 синтеза, конфигурированный в соответствии с коэффициентами LP-фильтра, в типовом случае возбуждается сигналом возбуждения для формирования синтезированного воспроизведения, т.е. декодированного речевого сигнала S5, входного речевого сигнала. Сигнал возбуждения может быть основан на случайном шумовом сигнале и/или на квантованном представлении остатка, как послано кодером. В некоторых многодиапазонных кодерах, таких как широкополосный речевой кодер А100 и декодер В100 (как описано здесь со ссылками, например, на фиг.10а, b и 11а, b), сигнал возбуждения для одного диапазона возбуждается сигналом возбуждения для другого диапазона.
Квантование LSF вносит случайную ошибку, которая обычно не коррелирована от одного кадра к следующему кадру. Эта ошибка может обусловить то, что квантованные LSF будут менее сглаженными, чем неквантованные LSF, и может снизить перцептуальное (воспринимаемое) качество декодированного сигнала. Независимое квантование векторов LSF в общем случае увеличивает величину спектральных флуктуаций от кадра к кадру по сравнению с вектором неквантованных LSF, причем эти спектральные флуктуации могут обусловить ненатуральное звучание декодированного сигнала.
Одно сложное решение было предложено Knagenhjelm и Kleijn, "Spectral Dynamics is More Important than Spectral Distortion", 1995, Международная конференция по акустике, речи и обработке сигналов (ICASSP-95), том 1, стр.732-735, 9-12 мая 1995, согласно которому сглаживание деквантованных параметров LSF выполняется в декодере. Это снижает спектральные флуктуации, но реализуется ценой дополнительной задержки. Настоящая заявка описывает способы, которые используют временное ограничение шумов на стороне кодера, так что спектральные флуктуации могут быть снижены без дополнительной задержки.
Квантователь обычно конфигурируется для отображения входного значения на одно из набора дискретных выходных значений. Имеется ограниченное число выходных значений, так что диапазон входных значений отображается на одно выходное значение. Квантование увеличивает эффективность кодирования, так как индекс, который указывает на соответствующее входное значение, может быть передан в меньшем количестве битов, чем исходное входное значение. Фиг.2 показывает пример одномерного отображения, обычно выполняемого скалярным квантователем.
Квантователь может также представлять собой векторный квантователь, и LSF обычно квантуются с использованием векторного квантователя. Фиг.3 показывает один простой пример многомерного отображения, выполняемого в векторном квантователе. В этом примере входное пространство разделяется на некоторое число Voronoi-областей (например, в соответствии с критерием ближайшего соседа). Квантование отображает каждое входное значение на значение, которое представляет соответствующую Voronoi-область (в типовом случае центроид), показанное здесь точкой. В этом примере входное пространство подразделено на шесть областей, так что любое входное значение может быть представлено индексом, имеющим только одно из шести различных состояний.
Если входной сигнал очень сглаженный, может произойти так, что квантованный выходной сигнал будет намного менее сглаженным в соответствии с минимальным шагом между значениями в выходном пространстве квантования. Фиг.4а показывает один пример сглаженного одномерного сигнала, который изменяется только в пределах одного уровня квантования (только один такой уровень показан на чертеже), а фиг.4b показывает пример этого сигнала после квантования. Даже хотя входной сигнал на фиг.4а изменяется всего лишь в небольшом диапазоне, результирующий выходной сигнал на фиг.4b содержит более резкие переходы и намного менее сглаженный. Такой эффект может привести к прослушиваемым артефактам, и может оказаться желательным снизить этот эффект для LSF (или других представлений спектральной огибающей, которая подвергается квантованию). Например, характеристики квантования LSF могут быть улучшены за счет включения временного ограничения шума.
В способе, соответствующем одному варианту осуществления, вектор спектральных параметров огибающей оценивается однократно для каждого кадра (или иного блока) речи в кодере.
Вектор параметров квантуется для эффективной передачи в декодер. После квантования ошибка квантования (определенная как разность между квантованным и неквантованным вектором параметров) сохраняется. Ошибка квантования кадра N-1 уменьшается на масштабный коэффициент и добавляется к вектору параметров кадра N перед квантованием вектора параметров кадра N. Может быть желательным, чтобы значение масштабного коэффициента было меньше, если разность между текущей и предыдущей оцененной спектральными огибающими относительно велика. В способе согласно одному варианту осуществления вектор ошибок квантования LSF вычисляется для каждого кадра и умножается на масштабный коэффициент b, имеющий значение меньшее чем 1,0. Перед квантованием масштабированная ошибка квантования для предыдущего кадра суммируется с вектором LSF (входным значением V10). Операция квантования в таком способе может быть описана следующим выражением:
,
где s(n) - сглаженный вектор LSF, относящийся к кадру n, y(n) - квантованный вектор LSF, относящийся к кадру n, Q(·) - операция квантования ближайшего соседа, и b - масштабный коэффициент.
Квантователь 230 согласно варианту осуществления конфигурирован для формирования квантованного выходного значения V30, сглаженного значения V20, входного значения V10 (т.е. вектора LSF), где сглаженное значение V20 основано на масштабном коэффициенте V40 и ошибке квантования предыдущего выходного значения V30. Такой квантователь может быть применен для уменьшения спектральных флуктуаций без дополнительной задержки. На фиг.5 показана блок-схема реализации 230а квантователя 230, в котором значения, которые относятся конкретно к этой реализации, указаны индексом а. В этом примере ошибка квантования вычисляется посредством использования сумматора А10 для вычитания текущего входного значения V10 из текущего выходного значения V30a, как оно деквантовано инверсным квантователем Q20. Ошибка сохраняется в элементе задержки DE10. Сглаженное значение V20a является суммой текущего входного значения V10 и ошибки квантования предыдущего кадра, масштабированной (например, путем умножения в умножителе М10) масштабным коэффициентом V40. Квантователь 230а может также быть реализован таким образом, что масштабный коэффициент V40 применяется перед сохранением ошибки квантования в элементе задержки DE10.
На фиг.4d показан пример (деквантованной) последовательности выходных значений V30a, сформированной квантователем 230а в ответ на входной сигнал по фиг.4а. В этом примере значение масштабного коэффициента V40 фиксировано на 0,5. Можно видеть, что сигнал на фиг.4d более сглаженный, чем флуктуирующий сигнал на фиг.4а.
Может быть желательным использовать рекурсивную функцию для вычисления величины обратной связи. Например, ошибка квантования может быть вычислена по отношению к текущему входному значению, а не по отношению к текущему сглаженному значению. Такой способ может быть описан следующим выражением:
, ,
где х(n) - входной вектор LSF, относящийся к кадру n.
На фиг.6 показана блок-схема реализации 230b квантователя 230, на которой значения, которые соответствуют данной реализации, обозначены индексом b. В этом примере ошибка квантования вычисляется посредством использования сумматора А10 для вычитания текущего значения сглаженного значения V20b из текущего выходного значения V30b, сформированного инверсным квантователем Q20. Ошибка сохраняется в элементе задержки DE10. Сглаженное значение V20b является суммой текущего входного значения V10 и ошибки квантования предыдущего кадра, масштабированной (например, путем умножения в умножителе М10) посредством масштабного коэффициента V40. Квантователь 230b может быть также реализован таким образом, что масштабный коэффициент V40 применяется перед сохранением ошибки квантования в элементе задержки DE10. Также возможно использовать различные масштабные коэффициенты V40 в реализации 230а по сравнению с реализацией 230b.
На фиг.4с показан пример (деквантованной) последовательности выходных значений V30b, сформированной квантователем 230b в ответ на входной сигнал по фиг.4а. В этом примере значение масштабного коэффициента V40 фиксировано на 0,5. Можно видеть, что сигнал согласно фиг.4с более сглаженный, чем флуктуирующий сигнал по фиг.4а.
Следует отметить, что варианты осуществления, представленные выше, могут быть реализованы путем замены или усовершенствования существующего квантователя Q10 согласно конфигурации, показанной на фиг.5 или 6. Например, квантователь Q10 может быть реализован как прогнозирующий векторный квантователь, расщепленный векторный квантователь или в соответствии с какой-либо другой схемой для квантования LSF.
В одном примере значение масштабного коэффициента фиксировано на желательном значении в пределах от 0 до 1. Альтернативно может быть желательным настраивать значение масштабного коэффициента динамически. Например, может быть желательным настраивать значение масштабного коэффициента в зависимости от степени флуктуации, уже присутствующей в неквантованных векторах LSF. Если разность между текущим и предыдущим векторами LSF велика, то масштабный коэффициент близок к нулю и, по существу, не приводит к ограничению шумов. Если текущий вектор LSF отличается незначительно от предыдущего вектора LSF, то масштабный коэффициент близок к 1,0. Таким образом, могут сохраняться переходы в огибающей спектра во времени, минимизируя спектральные искажения, когда речевой сигнал изменяется, в то время как спектральные флуктуации могут снижаться, если речевой сигнал относительно постоянный от кадра к кадру.
Значение масштабного коэффициента может быть сделано пропорциональным расстоянию (мере различия) между последовательными LSF, и некоторые из различных расстояний между векторами могут использоваться для определения изменения между LSF. Обычно используется евклидова норма, но другие могут включать в себя манхэттенское расстояние (1-норма), расстояние Чебышева (бесконечная норма), расстояние Махаланобиса, расстояние Хемминга.
Может быть желательным использовать взвешенную меру расстояния (степени различия) для определения изменения между последовательными векторами LSF. Например, расстояние d может быть вычислено в соответствии со следующим выражением:
,
i
где l указывает текущий вектор LSF,  указывает предыдущий вектор LSF, Р указывает число элементов в каждом векторе LSF, индекс i указывает элемент вектора LSF, и с указывает масштабные коэффициенты. Значения с могут быть выбраны для акцентирования компонентом нижних частот, которые являются более значимыми для восприятия. В одном примере c имеет значение 1,0 для i от 1 до 8; 0,8 для i=9 и 0,4 для i=10.
В другом примере расстояние d между последовательными векторами LSF может быть вычислено в соответствии со следующим выражением:
,
i
i
r
где w указывает вектор переменных весовых коэффициентов. В одном таком примере w имеет значение Р(f), где Р обозначает спектр мощности LPC, оцененный на соответствующей частоте f, и r - постоянная, имеющая типовое значение, например, 0,15 или 0,3. В другом примере значения w выбираются в соответствии с весовой функцией, использованной в стандарте ITU-Т G.729:
,
i-1
i+1
i
i
4
5
причем граничные значения, близкие к 0 и 0,5, выбираются вместо l и l для самого низкого и самого высокого элементов в w соответственно. В таких случаях c может иметь значения, как указано выше. В другом примере c имеет значение 1,0, за исключением c и c, которые имеют значение 1,2.
Из фиг.4а-d можно видеть, что на покадровой основе метод временного ограничения шумов, как описано здесь, может увеличивать ошибку квантования. Хотя абсолютная квадратичная ошибка операции квантования может увеличиваться, потенциальное преимущество состоит в том, что ошибка квантования может быть смещена к нижним частотам, тем самым становясь более сглаженной. Так как входной сигнал также сглаженный, то может быть получен более сглаженный выходной сигнал как сумма входного сигнала и сглаженной ошибки квантования.
На фиг.7b показан пример базовой конфигурации фильтра-источника в применении к кодированию спектральной огибающей узкополосного сигнала S20. Модуль 710 анализа вычисляет набор параметров, которые характеризуют фильтр, соответствующий речевым звукам за период (обычно 20 мс). Отбеливающий фильтр 760 (также называемый фильтром анализа или ошибки предсказания), конфигурированный в соответствии с этими параметрами, удаляет спектральную огибающую для спектрального выравнивания сигнала. Результирующий отбеленный сигнал (также называемый остатком) имеет меньшую энергию и, таким образом, меньшую дисперсию и легче кодируется по сравнению с исходным речевым сигналом. Ошибки, возникающие вследствие кодирования остаточного сигнала, также могут быть распределены более равномерно по спектру. Параметры фильтра и остаток в типовом случае квантуются для эффективной передачи по каналу. В декодере фильтр 780 синтеза, конфигурированный в соответствии с параметрами фильтра, возбуждается сигналом, основанным на остатке, для формирования синтезированной версии исходного речевого сигнала. Фильтр синтеза в типовом случае конфигурируется так, чтобы иметь передаточную функцию, которая является обратной передаточной функции отбеливающего фильтра. На фиг.8 показана блок-схема базовой реализации А122 узкополосного кодера А120, как показано на фиг.10а.
Как показано на фиг.8, узкополосный кодер А122 также генерирует остаточный сигнал путем пропускания узкополосного сигнала S20 через отбеливающий фильтр 260 (также называемый фильтром анализа или ошибки предсказания), конфигурированный в соответствии с набором коэффициентов фильтра. В данном конкретном примере отбеливающий фильтр 260 реализован как фильтр с конечной импульсной характеристикой (КИХ), хотя может быть также использована реализация с бесконечной импульсной характеристикой (БИХ). Этот остаточный сигнал в типовом случае будет содержать важную для восприятия информацию речевого кадра, такую как долговременная структура, относящаяся к основному тону, которая не представлена параметрами S40 узкополосного фильтра. Квантователь 270 конфигурирован для вычисления квантованного представления этого остаточного сигнала для выходного сигнала в виде кодированного узкополосного сигнала S50 возбуждения. Такой квантователь в типовом случае включает в себя векторный квантователь, который кодирует входной вектор как индекс для соответствующей векторной записи в таблице или кодовой книге. Альтернативно такой квантователь может быть конфигурирован для посылки одного или более параметров, из которых вектор может быть генерирован динамически в декодере, а не извлечен из памяти, как в методе с прореженной кодовой книгой. Такой метод используется в схемах кодирования, таких как алгебраический метод CELP (линейное предсказание с возбуждением кодовой книги), и кодеках, таких как 3GPP2 EVRC (усовершенствованный кодек переменной скорости стандарта 3GPP2).
Для узкополосного кодера А120 желательно генерировать кодированный узкополосный сигнал возбуждения в соответствии с теми же самыми параметрами фильтра, которые будут доступны в соответствующем узкополосном декодере. Таким способом результирующий кодированный узкополосный сигнал возбуждения может уже учитывать до некоторой степени неидеальности в этих значениях параметров, такие как ошибки квантования. Соответственно, желательным является конфигурировать отбеливающий фильтр с использованием тех же самых значений коэффициентов, которые будут доступны в декодере. В базовом примере декодера А122, как показано на фиг.8, инверсный квантователь 240 деквантует параметры S40 узкополосного фильтра, преобразователь 250 LSF в коэффициенты LP-фильтра отображает результирующие значения на соответствующий набор коэффициентов LP-фильтра, и этот набор коэффициентов используется для конфигурирования отбеливающего фильтра 260 для генерации остаточного сигнала, который квантован квантователем 270.
Некоторые конфигурации узкополосного кодера А120 конфигурируются для вычисления кодированного узкополосного сигнала S50 возбуждения путем идентификации одного из набора векторов кодовой книги, который наилучшим образом согласуется с остаточным сигналом. Следует отметить, однако, что узкополосный кодер А120 может также быть реализован для вычисления квантованного представления остаточного сигнала без действительной генерации остаточного сигнала. Например, узкополосный кодер А120 может быть конфигурирован для использования ряда векторов кодовой книги для генерации соответствующих синтезированных сигналов (например, в соответствии с текущим набором параметров фильтра) и для выбора вектора кодовой книги, ассоциированного с генерированным сигналом, который наилучшим образом согласуется с исходным узкополосным сигналом S20 в перцептуально взвешенной области.
На фиг.9 представлена блок-схема реализации В112 узкополосного декодера В110. Инверсный квантователь 310 деквантует параметры S40 узкополосного фильтра (в этом случае набор LSF), преобразователь 320 LSF в коэффициенты LP-фильтра отображает LSF на набор коэффициентов LP-фильтра (например, как описано выше со ссылкой на инверсный квантователь 240 и преобразователь 250 узкополосного кодера А122). Инверсный квантователь 340 деквантует кодированный узкополосный сигнал возбуждения S50 для формирования узкополосного сигнала S80 возбуждения. На основе коэффициентов фильтра и узкополосного сигнала S80 возбуждения узкополосный фильтр 330 синтеза синтезирует узкополосный сигнал S90. Иными словами, узкополосный фильтр 330 синтеза конфигурирован для спектрального формирования узкополосного сигнала S80 возбуждения в соответствии с деквантованными коэффициентами фильтра для формирования узкополосного сигнала S90. Как показано на фиг.11а, узкополосный декодер В112 (в виде узкополосного декодера В110) также подает узкополосный сигнал S80 возбуждения на декодер В200 полосы верхних частот, который использует его для вывода сигнала возбуждения полосы верхних частот. В некоторых реализациях узкополосный декодер В110 может быть конфигурирован для предоставления дополнительной информации на декодер В200 полосы верхних частот, которая относится к узкополосному сигналу, такой как спектральный наклон, усиление и запаздывание основного тона, режим речи. Система узкополосного кодера А122 и узкополосного декодера В112 является базовым примером речевого кодека, основанного на принципе анализа через синтез.
Речевые передачи по коммутируемой телефонной сети общего пользования (PSTN) традиционно ограничены по ширине полосы частотным диапазоном 300-3400 кГц.
Новые сети речевой связи, такие как сети сотовой телефонии и протокола VoIP (речь через IР), могут не иметь тех же ограничений по ширине полосы, и может быть желательным передавать и принимать речевые передачи, которые включают в себя широкополосный частотный диапазон, по таким сетям. Например, может быть желательным поддерживать диапазон аудиочастот от 50 Гц до 7 или 8 кГц. Также может быть желательным поддерживать другие приложения, такие как высококачественные аудио- и/или аудио/видеоконференции, которые могут иметь речевой контент в диапазонах, превышающих пределы сети PSTN.
Один подход к широкополосному речевому кодированию связан с масштабированием метода узкополосного речевого кодирования (например, конфигурированного для кодирования диапазона 0-4 кГц) для покрытия широкополосного спектра. Например, речевой сигнал может дискретизироваться с более высокой частотой, чтобы включать компоненты на высоких частотах, а метод узкополосного кодирования может быть модифицирован для использования большего числа коэффициентов фильтра для представления этого широкополосного сигнала. Методы узкополосного кодирования, такие как CELP, связаны с высокими вычислительными затратами, и широкополосный CELP-кодер может потреблять слишком много циклов обработки, чтобы быть практичным для многих мобильных и других встроенных приложений. Кодирование всего спектра широкополосного сигнала с желательным качеством с использованием такого метода может привести к неприемлемо большому увеличению ширины полосы. Кроме того, транскодирование такого кодированного сигнала потребовалось бы, прежде чем даже его узкополосная часть могла быть передана и декодирована системой, которая поддерживает только узкополосное кодирование.
На фиг.10а показана блок-схема широкополосного речевого кодера А100, который включает в себя отдельные узкополосный и широкополосный речевые кодеры А120 и А200 соответственно. Любой или оба из узкополосного и широкополосного речевых кодеров А120 и А200 могут быть конфигурированы для выполнения квантования LSF (или другого представления коэффициентов) с использованием реализации квантователя 230, как описано здесь. На фиг.11а показана блок-схема соответствующего широкополосного речевого декодера В100. На фиг.10а набор А110 фильтров может быть реализован для формирования узкополосного сигнала S20 и широкополосного сигнала S30 из широкополосного речевого сигнала S10 в соответствии с принципами и реализациями, раскрытыми в патентной заявке США «Системы, способы и устройство для фильтрации речевого сигнала», поданной вместе с настоящей заявкой, публикация США 2007/0088558, и соответствующее раскрытие в ней таких наборов фильтров включено в настоящий документ посредством ссылки. Как показано на фиг.11а, набор В120 фильтров также может быть реализован для формирования декодированного широкополосного речевого сигнала S110 из декодированного узкополосного сигнала S90 и декодированного сигнала S100 полосы верхних частот. На фиг.11а также показан узкополосный декодер В110, конфигурированный для декодирования параметров S40 узкополосного фильтра и кодированного узкополосного сигнала S50 возбуждения, чтобы формировать узкополосный сигнал S90 и узкополосный сигнал S80 возбуждения, и декодер В200 полосы верхних частот, конфигурированный для формирования сигнала S100 полосы верхних частот на основании параметров S60 кодирования полосы верхних частот и узкополосного сигнала S80 возбуждения.
Может быть желательным реализовать широкополосное речевое кодирование так, чтобы, по меньшей мере, узкополосная часть кодированного сигнала могла быть передана через узкополосный канал (такой как канал сети PSTN) без транскодировния или другого значительного изменения. Эффективность расширения широкополосного кодирования может также быть желательной, например, во избежание значительного уменьшения числа пользователей, которые могут обслуживаться в рамках приложений, таких как беспроводная сотовая телефония и широковещательная передача через проводные и беспроводные каналы.
Один подход к широкополосному речевому кодированию связан с экстраполяцией спектральной огибающей полосы верхних частот из кодированной узкополосной спектральной огибающей. Хотя такой метод может быть реализован без какого-либо увеличения в ширине полосы и не требуя транскодирования, грубая спектральная огибающая или форматная структура части полосы верхних частот речевого сигнала в общем случае не может точно прогнозироваться из спектральной огибающей части полосы верхних частот.
Один конкретный пример широкополосного речевого кодера А100 конфигурирован для кодирования широкополосного речевого сигнала S10 со скоростью около 8,55 кбит/с, причем около 7,55 кбит/с используется для параметров S40 узкополосного фильтра и кодированного узкополосного сигнала S50 возбуждения, и около 1 кбит/с используется для параметров S60 кодирования полосы верхних частот (например, параметров фильтра и/или параметров усиления).
Может быть желательным объединить кодированные сигналы полосы нижних частот и полосы верхних частот в единый битовый поток. Например, может быть желательным мультиплексировать кодированные сигналы вместе для передачи (например, по проводному, оптическому или беспроводному каналу передачи) или для хранения в виде кодированного широкополосного речевого сигнала. На фиг.10b показана блок-схема широкополосного речевого кодера А102, который включает в себя мультиплексор А130, конфигурированный для объединения параметров S40 узкополосного фильтра и кодированного узкополосного сигнала S50 возбуждения и параметров S60 кодирования полосы верхних частот в мультиплексированный сигнал S70. На фиг.11b показана блок-схема соответствующей реализации В102 широкополосного речевого декодера В100. Декодер В102 включает в себя демультиплексер В130, конфигурированный для демультиплексирования мультиплексированного сигнала S70 для получения параметров S40 узкополосного фильтра, кодированного узкополосного сигнала S50 возбуждения и параметров S60 кодирования полосы верхних частот.
Может быть желательным таким образом конфигурировать мультиплексор А130, чтобы включать кодированный сигнал полосы нижних частот (включая параметры S40 узкополосного фильтра и кодированный узкополосный сигнал S50 возбуждения) в виде выделяемого подпотока мультиплексированного сигнала S70, так что кодированный сигнал полосы нижних частот может быть восстановлен и декодирован независимо от другой части мультиплексированного сигнала S70, такой как сигнал полосы верхних частот или сигнал полосы очень низких частот. Например, мультиплексированный сигнал S70 может быть конфигурирован таким образом, что кодированный сигнал полосы нижних частот может быть восстановлен путем отделения параметров 360 кодирования полосы верхних частот. Потенциальное преимущество такой характеристики заключается в исключении необходимости транскодирования кодированного широкополосного сигнала перед пропусканием его в систему, которая поддерживает декодирование сигнала полосы нижних частот, но не поддерживает декодирование части полосы верхних частот.
Устройство, содержащее квантователь с ограничением шумов и/или речевой кодер полосы нижних частот, полосы верхних частот и/или широкой полосы, как описано здесь, также может содержать схемы, конфигурированные для передачи кодированного сигнала в канал передачи, такой как проводной, оптический или беспроводной канал. Такое устройство также может быть конфигурировано для выполнения одной или более операций канального кодирования над сигналом, таких как кодирование с исправлением ошибок (например, совместимое по скорости сверточное кодирование), и/или кодирование с обнаружением ошибок (например, кодирование с циклической избыточностью), и/или один или более уровней кодирования сетевого протокола (например, Ethernet, ТСР/IP, cdma2000).
Может быть желательным реализовать речевой кодер А120 полосы нижних частот как речевой кодер анализа через синтез. Кодирование линейного предсказания с возбуждением кодовой книги (CELP) является популярным семейством методов кодирования анализом через синтез, и реализации таких кодеров могут выполнять кодирование колебаний в отношении остатка, включая такие операции, как выбор записей из фиксированной и адаптивной кодовых книг, операции минимизации ошибок и/или операции перцептуального взвешивания. Другие реализации методов кодирования анализом через синтез включают линейное предсказание со смешанным возбуждением (MELP), алгебраическое CELP (ACELP), релаксационное CELP (RCELP), регулярное импульсное возбуждение (RPE), многоимпульсный CELP (МРЕ), линейное предсказание с возбуждением векторной суммой (VSELP). Родственные методы кодирования включают кодирование с многодиапазонным возбуждением (МВЕ) и кодирование с интерполяцией первообразных колебаний (PWI). Примеры стандартизованных речевых кодеков анализа через синтез включают кодек полной скорости GSM 06.10 ЕТSI (Европейский институт стандартов в области телекоммуникации)-GSM, который использует линейное предсказание с возбуждением остаточным сигналом (RELP); усовершенствованный кодек полной скорости GSM (ЕТSI-GSM 06.60); кодер стандарта ITU (Международный союз по телекоммуникациям) на скорость 11,8 кбит/с G.729 Annex Е; кодеки IS (Промежуточный стандарт)-641 для IS-136 (схема множественного доступа с временным разделением); адаптивные многоскоростные кодеки GSM (GSM-AMR) и кодек 4GV™ (Fourth-Generation Vocoder™ - вокодер четвертого поколения) от компании Qualcomm Incorporated (San Diego, СА). Существующие реализации кодеров RCELP включают в себя усовершенствованный кодек переменной скорости (EVRC), как описано в TIA (Ассоциация отраслей телекоммуникационной индустрии), IS-127 и вокодер селектируемых режимов (SMV) стандарта 3GPP2 (Проект 2 партнерства по разработке систем третьего поколения). Различные кодеры полосы нижних частот, полосы верхних частот и широкополосные кодеры, описанные здесь, могут быть реализованы согласно любой из этих технологий или любой другой технологии речевого кодирования (как известной, так и подлежащей разработке), которая представляет речевой сигнал как (А) набор параметров, которые описывают фильтр, и (В) квантованное представление остаточного сигнала, который предоставляет, по меньшей мере, часть возбуждения, используемого для управления описанным фильтром для воспроизведения речевого сигнала.
Как отмечено выше, описанные варианты осуществления включают реализации, которые могут быть использованы для выполнения встроенного кодирования, поддержки совместимости с узкополосными системами и устранения необходимости в транскодировании. Поддержка кодирования полосы верхних частот может также служить для проведения различий, на основе стоимости, между микросхемами, наборами микросхем, устройствами и/или сетями, имеющими широкополосную поддержку с обратной совместимостью, и теми, которые имеют только узкополосную поддержку. Поддержка кодирования полосы верхних частот, как описано здесь, может также использоваться во взаимосвязи с методом поддержки кодирования полосы нижних частот, и система, способ или устройство согласно такому варианту осуществления могут поддерживать кодирование частотных компонентов от порядка 50 или 100 Гц до порядка 7 или 8 кГц.
Как отмечено выше, дополнительная поддержка полосы верхних частот для речевого кодера может улучшить разборчивость, в частности, в отношении различения фрикативных звуков. Хотя такое различение может обычно выводиться слушателем из конкретного контекста, поддержка полосы верхних частот может служить как функция, способствующая распознаванию речи и используемая в других приложениях машинной интерпретации, таких как системы для автоматизированного перемещения по голосовому меню и/или автоматической обработки вызова.
Устройство, соответствующее варианту осуществления, может быть встроено в портативное устройство беспроводной связи, такое как сотовый телефон или персональный цифровой помощник (PDA). Альтернативно такое устройство может быть включено в другое коммуникационное устройство, такое как микротелефонная трубка стандарта VoIP, персональный компьютер, конфигурированный для поддержки связи по протоколу VoIP, или сетевое устройство, конфигурированное для маршрутизации телефонных вызовов или передач по протоколу VoIP. Например, устройство согласно варианту осуществления может быть реализовано на микросхеме или наборе микросхем для устройства связи. В зависимости от конкретного приложения, такое устройство может включать в себя такие функции, как аналого-цифровое и/или цифроаналоговое преобразование речевого сигнала, схемы для выполнения усиления и/или другой обработки речевого сигнала и/или радиочастотные схемы для передачи и/или приема кодированного речевого сигнала.
В явном виде предполагается и раскрыто то, что варианты осуществления могут включать в себя и/или использоваться во взаимосвязи с любым одним или более другими признаками, раскрытыми в предварительной патентной заявке США №60/667,901, публикация США №2007/0088542. Такие признаки включают в себя сдвиг сигнала S30 полосы верхних частот и/или сигнала S120 возбуждения полосы верхних частот в соответствии с некоторым упорядочиванием или другой сдвиг узкополосного сигнала S80 возбуждения или узкополосного остаточного сигнала S50. Такие признаки включают в себя адаптивное сглаживание LSF, которое может выполняться перед квантованием, как описано здесь. Такие признаки также включают в себя фиксированное или адаптивное сглаживание огибающей усиления и адаптивное ослабление огибающей усиления.
Приведенное выше представление описанных вариантов осуществления предоставлено для того, чтобы специалисты в данной области техники могли реализовать и использовать настоящее изобретение. Возможны различные модификации этих вариантов осуществления, и общие принципы, представленные здесь, также могут быть применены к другим вариантам осуществления. Например, один вариант осуществления может быть реализован частично как жестко реализованная схема, как схемная конфигурация, выполненная в виде специализированной интегральной схемы, как микропрограмма, загруженная в энергонезависимую память, или программа, загруженная из носителя для хранения данных или на него в виде машиночитаемого кода, причем такой код представляет собой инструкции, исполняемые матрицей логических элементов, в частности микропроцессором или другим цифровым блоком обработки сигнала. Носитель для хранения данных может представлять собой массив элементов памяти, например полупроводниковую память (которая без ограничения может включать в себя динамическую или статическую память с произвольным доступом (RAM, ОЗУ), постоянную память (ROM, ПЗУ) и/или флэш-RAM) или сегнетоэлектрическую, магниторезистивную память, память на аморфных полупроводниках, на полимерах или память с изменением фазы; или носитель на диске, таком как магнитный или оптический диск.
Термин «программное обеспечение» должен пониматься как включающий в себя исходный код, код на языке ассемблера, машинный код, двоичный код, микропрограммное обеспечение, макрокод, микрокод, любую одну или более последовательностей команд, исполняемых матрицей логических элементов, и любую комбинацию приведенных примеров.
Различные элементы реализации квантователя с ограничением шумов, речевой кодер А200 полосы верхних частот, широкополосный речевой кодер А100 и А102 и устройства, конфигурации, включающие в себя одно или более таких устройств, находятся, например, на одной и той же микросхеме из двух или более микросхем в наборе микросхем, в то время как возможны и другие конфигурации, не включающие такие ограничения. Один или более элементов такого устройства могут быть реализованы полностью или частично как один или более наборов команд, предназначенных для исполнения одной или более фиксированных или программируемых матриц логических элементов (например, транзисторов, вентилей), таких как микропроцессоры, вложенные процессоры, IP-ядра, цифровые процессоры сигналов, программируемые пользователем матрицы логических элементов (FPGA), ориентированные на приложение стандартные продукты (ASSP), специализированные интегральные схемы (ASIC). Также возможно, что один или более таких элементов имеют общую структуру (например, процессор, используемый для исполнения частей кода, соответствующих различным элементам, в различное время; набор команд, исполняемых для выполнения задач, соответствующих различным элементам, в разное время; или конфигурация электронных и/или оптических устройств, выполняющих операции различных элементов в разное время). Кроме того, возможно, что один или более таких элементов используются для выполнения задач или исполнения других наборов команд, которые непосредственно не связаны с работой данного устройства, таких как задача, относящаяся к другой операции устройства или системы, в которую встроено данное устройство.
Варианты осуществления также включают в себя дополнительные способы обработки речи и кодирования речи к тем, которые раскрыты здесь в явном виде, например, путем описаний конструктивных вариантов осуществления, конфигурированных для выполнения таких способов, как способы подавления импульсных выбросов полосы верхних частот. Каждый из этих способов может быть материально воплощен (например, в одном или более носителях для хранения данных, как перечислено выше) в виде одного или более наборов команд, считываемых и/или исполняемых машиной, включающей в себя матрицу логических элементов (например, процессором, микропроцессором, микроконтроллером или конечным автоматом). Таким образом, настоящее изобретение не предназначено для ограничения вариантами осуществления, раскрытыми выше, а должно соответствовать самому широкому объему, совместимому с принципами и новыми признаками, раскрытыми каким-либо образом в настоящем документе.