системы, способы и устройства для высокополосного предыскажения шкалы времени
Классы МПК: | G10L21/04 временное сжатие или расширение |
Автор(ы): | ВОС Кон Бернард (US), КАНДХАДАЙ Анантхападманабхан А. (US) |
Патентообладатель(и): | КВЭЛКОММ ИНКОРПОРЕЙТЕД (US) |
Приоритеты: |
подача заявки:
2006-04-03 публикация патента:
27.08.2013 |
Изобретение относится к речевой связи по коммутируемой телефонной сети общего пользования. В одном варианте осуществления способ обработки сигналов включает в себя кодирование низкочастотной части речевого сигнала, по меньшей мере, в кодированный узкополосный сигнал возбуждения и множество параметров узкополосной фильтрации; и формирование высокополосного сигнала возбуждения на основе узкополосного сигнала возбуждения. Узкополосный сигнал возбуждения основан на кодированном узкополосном сигнале возбуждения. Способ также включает в себя кодирование высокочастотной части речевого сигнала, по меньшей мере, во множество параметров высокополосной фильтрации согласно, по меньшей мере, высокополосному сигналу возбуждения. Кодированный узкополосный сигнал возбуждения включает в себя предыскажение шкалы времени, а способ включает в себя применение сдвига во времени к высокочастотной части на основе информации, связанной с предыскажением шкалы времени. 3 н. и 9 з.п. ф-лы, 32 ил.
Формула изобретения
1. Способ декодирования речевого сигнала, способ содержит:
получение множества параметров узкополосной фильтрации, кодированного узкополосного сигнала возбуждения и множества параметров высокополосного кодирования, при этом параметры высокополосного кодирования содержат множество параметров высокополосной фильтрации, которые характеризуют огибающую спектра высокополосного сигнала, и множество коэффициентов усиления, которые характеризуют временную огибающую высокополосного сигнала;
вычисление спектрального расширенного сигнала путем применения нелинейной функции к сигналу на основе узкополосного сигнала возбуждения;
генерацию синтезированного высокополосного сигнала на основании множества параметров высокополосной фильтрации и высокополосного сигнала возбуждения на основе спектрального расширенного сигнала;
модуляцию огибающей усиления синтезированного высокополосного сигнала на основе множества коэффициентов возбуждения, чтобы сформировать высокополосный сигнал; и
объединение узкополосного сигнала и высокополосного сигнала для формирования речевого сигнала.
2. Способ декодирования речевого сигнала по п.1, в котором множество коэффициентов усиления применяются при различных сдвигах времени согласно декодированному подкадру.
3. Способ декодирования речевого сигнала по п.1, в котором множество коэффициентов усиления применяются при различных сдвигах времени согласно финитной взвешивающей функции.
4. Способ декодирования речевого сигнала по п.1, в котором множество коэффициентов усиления применяются к высокополосному сигналу возбуждения.
5. Носитель хранения данных, имеющий машиноисполняемые инструкции, которые при исполнении посредством матрицы логических элементов заставляют матрицу логических элементов осуществлять способ декодирования речевого сигнала, согласно п.1.
6. Устройство для декодирования речевого сигнала, содержащее:
средство для получения множества параметров узкополосной фильтрации, кодированного узкополосного сигнала возбуждения и множества параметров высокополосного кодирования, при этом параметры высокополосного кодирования содержат множество параметров высокополосной фильтрации, которые характеризуют огибающую спектра высокополосного сигнала, и множество коэффициентов усиления, которые характеризуют временную огибающую высокополосного сигнала;
средство для вычисления спектрального расширенного сигнала путем применения нелинейной функции к сигналу на основе узкополосного сигнала возбуждения;
средство для генерации синтезированного высокополосного сигнала на основании множества параметров высокополосной фильтрации и высокополосного сигнала возбуждения на основе спектрального расширенного сигнала;
средство для модуляции огибающей усиления синтезированного высокополосного сигнала на основе множества коэффициентов возбуждения, чтобы сформировать высокополосный сигнал; и
средство для объединения узкополосного сигнала и высокополосного сигнала для формирования речевого сигнала.
7. Устройство по п.6, в котором множество коэффициентов усиления применяются при различных сдвигах времени согласно декодированному подкадру.
8. Устройство по п.6, в котором множество коэффициентов усиления применяются при различных сдвигах времени согласно финитной взвешивающей функции.
9. Устройство по п.6, в котором множество коэффициентов усиления применяются к высокополосному сигналу возбуждения.
10. Устройство по п.6, в котором средство для декодирования речевого сигнала является устройством мобильной связи.
11. Устройство по п.6, в котором средство для вычисления спектрального расширенного сигнала является функцией абсолютных значений.
12. Устройство по п.6, в котором средство для объединения узкополосного сигнала и высокополосного сигнала является группой фильтров.
Описание изобретения к патенту
Родственные заявки
Данная заявка притязает на приоритет Предварительной патентной заявки (США) номер 60/667901, озаглавленной "CODING THE HIGH-FREQUENCY BAND OF WIDEBAND SPEECH", зарегистрированной 1 апреля 2005 года. Данная заявка также притязает на приоритет Предварительной патентной заявки (США) номер 60/673965, озаглавленной "PARAMETER CODING IN A HIGH-BAND SPEECH CODER", зарегистрированной 22 апреля 2005 года.
Область техники, к которой относится изобретение
Данное изобретение относится к обработке сигналов.
Уровень техники
Речевая связь по коммутируемой телефонной сети общего пользования (PSTN) традиционно ограничена по полосе пропускания в частотном диапазоне 300-3400 кГц. Новые сети для речевой связи, такие как сотовая телефония и "речь-по-IP" (Интернет-протокол, VoIP), могут не иметь такие же ограничения по полосе пропускания, и могут быть предпочтительными для того, чтобы передавать и принимать речевую связь, которая включает в себя широкополосный частотный диапазон, по таким сетям. Например, может быть желательным поддерживать диапазон звуковых частот, который идет вниз до 50 Гц и/или вверх до 7 или 8 кГц. Также может быть желательным поддерживать другие приложения, например, высококачественную аудио- или аудио/видеоконференцсвязь, которые могут иметь звуковое речевое содержимое в диапазонах за пределами традиционных ограничений PSTN.
Расширение диапазона, поддерживаемое посредством речевого кодера, до более высоких частот позволяет повысить разборчивость. Например, информация, которая различает фрикативные звуки, такие как "s" и "f", в большей степени представлена в высоких частотах. Высокополосное расширение также позволяет улучшить другие качества речи, такие как эффект присутствия. Например, даже вокализованный гласный звук может иметь спектральную энергию гораздо больше ограничения PSTN.
Один подход к широкополосному кодированию речи влечет за собой масштабирование методики узкополосного кодирования речи (к примеру, сконфигурированной так, чтобы кодировать диапазон 0-4 кГц), чтобы покрывать широкополосный спектр. Например, речевой сигнал может дискретизироваться на более высокой скорости, чтобы включать в себя компоненты на высоких частотах, и методика узкополосного кодирования может быть переконфигурирована, чтобы использовать большее число коэффициентов фильтрации, чтобы представлять этот широкополосный сигнал. Методики узкополосного кодирования, такие как CELP (кодирование методом линейного предсказания с кодовым возбуждением) являются вычислительно-емкими, тем не менее и широкополосный CELP-кодер может потреблять слишком большое число циклов обработки, чтобы быть практичным для большинства мобильных и других вложенных приложений. Кодирование всего спектра широкополосного сигнала до требуемого качества с помощью этой методики также может приводить к недопустимо большому увеличению полосы пропускания. Более того, перекодировка этого закодированного сигнала должна требоваться до того, как даже его узкополосная часть может быть передана и/или декодирована посредством системы, которая поддерживает только узкополосное кодирование.
Другой подход к широкополосному кодированию речи влечет за собой экстраполирование огибающей высокополосного спектра из кодированной огибающей узкополосного спектра. Хотя этот подход может быть реализован без какого-либо увеличения полосы пропускания и без необходимости перекодировки, приблизительная спектральная огибающая или формантная структура высокополосной части речевого сигнала, как правило, не может быть предсказана точно из спектральной огибающей узкополосной части.
Может быть желательным реализовать широкополосное кодирование речи таким образом, что, по меньшей мере, узкополосная часть кодированного сигнала может быть отправлена посредством узкополосного канала (такого как PSTN-канал) без перекодировки или какой-либо другой существенной модификации. Эффективность расширения широкополосного кодирования также может быть желательной, например, чтобы не допустить существенного снижения числа пользователей, которые могут обслуживаться в таких приложениях, как беспроводная сотовая телефонная связь и широковещательная передача по проводным и беспроводным каналам.
Сущность изобретения
В одном варианте осуществления способ обработки сигналов включает в себя кодирование низкочастотной части речевого сигнала, по меньшей мере, в кодированный низкополосный сигнал возбуждения и множество параметров низкополосной фильтрации; формирование высокополосного сигнала возбуждения на основе кодированного низкополосного сигнала возбуждения. Способ также включает в себя кодирование согласно, по меньшей мере, высокополосному сигналу возбуждения высокочастотной части речевого сигнала, по меньшей мере, во множество параметров высокополосной фильтрации. В этом способе кодированный низкополосный сигнал возбуждения описывает сигнал, который предыскажается во времени относительно речевого сигнала согласно изменяющемуся во времени предыскажению шкалы времени. Способ включает в себя применение на основе информации, связанной с предыскажением шкалы времени, множества различных сдвигов во времени к соответствующему множеству последовательных частей во времени высокочастотной части.
В другом варианте осуществления устройство включает в себя низкополосный речевой кодер, выполненный с возможностью кодировать низкочастотную часть речевого сигнала, по меньшей мере, в один кодированный низкополосный сигнал возбуждения и множество параметров низкополосной фильтрации; и высокополосный речевой кодер, выполненный с возможностью формировать высокополосный сигнал возбуждения на основе кодированного низкополосного сигнала возбуждения. В устройстве высокополосный кодер выполнен с возможностью кодировать высокочастотную часть речевого сигнала, по меньшей мере, во множество параметров высокополосной фильтрации согласно, по меньшей мере, высокополосному сигналу возбуждения. В этом устройстве узкополосный речевой кодер выполнен с возможностью выводить сигнал данных регуляризации, описывающий изменяющееся во времени предыскажение шкалы времени в отношении речевого сигнала, который включен в кодированный узкополосный сигнал возбуждения. Устройство включает в себя линию задержки, сконфигурированную так, чтобы применять множество различных сдвигов во времени к соответствующему множеству последовательных частей во времени высокочастотной части, при этом множество различных сдвигов во времени основано на сигнале данных регуляризации.
В другом варианте осуществления устройство включает в себя средство кодирования низкочастотной части речевого сигнала, по меньшей мере, в кодированный низкополосный сигнал возбуждения и множество параметров низкополосной фильтрации; средство формирования высокополосного сигнала возбуждения на основе кодированного низкополосного сигнала возбуждения; и средство кодирования высокополосной части речевого сигнала, по меньшей мере, в параметры высокополосной фильтрации согласно, по меньшей мере, высокополосному сигналу возбуждения. В этом устройстве кодированный узкополосный сигнал возбуждения описывает сигнал, который предыскажается во времени относительно речевого сигнала согласно изменяющемуся во времени предыскажению шкалы времени. Устройство включает в себя средство применения на основе информации, связанной с предыскажением шкалы времени, множества различных сдвигов во времени к соответствующему множеству последовательных частей во времени высокочастотной части.
Краткое описание чертежей
Фиг.1a иллюстрирует блок-схему широкополосного речевого кодера A100 согласно варианту осуществления.
Фиг.1b иллюстрирует блок-схему реализации A102 широкополосного речевого кодера A100.
Фиг.2a иллюстрирует блок-схему широкополосного речевого декодера B100 согласно варианту осуществления.
Фиг.2b иллюстрирует реализацию B102 широкополосного речевого кодера B100.
Фиг.3a иллюстрирует блок-схему реализации A112 группы A110 фильтров.
Фиг.3b иллюстрирует блок-схему реализации B122 группы B120 фильтров.
Фиг.4a иллюстрирует охват полосы частот по полосам низких и высоких частот для одного примера группы A110 фильтров.
Фиг.4b иллюстрирует охват полосы частот по полосам низких и высоких частот для другого примера группы A110 фильтров.
Фиг.4c иллюстрирует блок-схему реализации A114 группы A112 фильтров.
Фиг.4d иллюстрирует блок-схему реализации B124 группы B122 фильтров.
Фиг.5a иллюстрирует пример графика частоты и логарифмической амплитуды для речевого сигнала.
Фиг.5b иллюстрирует блок-схему базовой системы кодирования с линейным предсказанием.
Фиг.6 иллюстрирует блок-схему реализации A122 узкополосного кодера A120.
Фиг.7 иллюстрирует блок-схему реализации B112 узкополосного декодера B110.
Фиг.8a иллюстрирует пример графика частоты и логарифмической амплитуды для остаточного сигнала вокализованной речи.
Фиг.8b иллюстрирует пример графика времени и логарифмической амплитуды для остаточного сигнала вокализованной речи.
Фиг.9 иллюстрирует блок-схему базовой системы кодирования с линейным предсказанием, которая также выполняет долгосрочное предсказание.
Фиг.10 иллюстрирует блок-схему реализации A202 высокополосного кодера A200.
Фиг.11 иллюстрирует блок-схему реализации A302 высокополосного генератора A300 возбуждения.
Фиг.12 иллюстрирует блок-схему реализации A402 расширителя A400 спектра.
Фиг.12a иллюстрирует графики спектра сигнала в различных точках в одном примере операции расширения спектра.
Фиг.12b иллюстрирует графики спектра сигнала в различных точках в другом примере операции расширения спектра.
Фиг.13 иллюстрирует блок-схему реализации A304 высокополосного генератора A302 возбуждения.
Фиг.14 иллюстрирует блок-схему реализации A306 высокополосного генератора A302 возбуждения.
Фиг.15 иллюстрирует блок-схему последовательности операций задачи T100 вычисления огибающей.
Фиг.16 иллюстрирует блок-схему реализации 492 объединителя 490.
Фиг.17 иллюстрирует подход к вычислению показателя периодичности высокополосного сигнала S30.
Фиг.18 иллюстрирует блок-схему реализации A312 высокополосного генератора A302 возбуждения.
Фиг.19 иллюстрирует блок-схему реализации A314 высокополосного генератора A302 возбуждения.
Фиг.20 иллюстрирует блок-схему реализации A316 высокополосного генератора A302 возбуждения.
Фиг.21 иллюстрирует блок-схему последовательности операций задачи T200 вычисления усиления.
Фиг.22 иллюстрирует блок-схему последовательности операций для реализации T210 задачи T200 вычисления усиления.
Фиг.23a иллюстрирует схему финитной взвешивающей функции.
Фиг.23b иллюстрирует применение финитной взвешивающей функции, показанной на фиг.23a, к подкадрам речевого сигнала.
Фиг.24 иллюстрирует блок-схему реализации B202 высокополосного декодера B200.
Фиг.25 иллюстрирует блок-схему реализации AD10 широкополосного речевого кодера A100.
Фиг.26a иллюстрирует схематичное представление реализации D122 линии D120 задержки.
Фиг.26b иллюстрирует схематичное представление реализации D124 линии D120 задержки.
Фиг.27 иллюстрирует схематичное представление реализации D130 линии D120 задержки.
Фиг.28 иллюстрирует блок-схему реализации AD12 широкополосного речевого кодера AD10.
Фиг.29 иллюстрирует блок-схему последовательности операций способа обработки MD100 сигналов согласно варианту осуществления.
Фиг.30 иллюстрирует блок-схему последовательности операций способа M100 согласно варианту осуществления.
Фиг.31a иллюстрирует блок-схему последовательности операций способа M200 согласно варианту осуществления.
Фиг.31b иллюстрирует блок-схему последовательности операций для реализации M210 способа M200.
Фиг.32 иллюстрирует блок-схему последовательности операций способа M300 согласно варианту осуществления.
На чертежах и в прилагаемом описании одинаковые обозначения ссылок ссылаются на те же или аналогичные элементы или сигналы.
Подробное описание изобретения
Описанные в данном документе варианты осуществления включают в себя системы, способы и устройства, которые могут быть сконфигурированы так, чтобы предоставлять расширение для узкополосного речевого сигнала, чтобы поддерживать передачу и/или хранение широкополосных речевых сигналов при увеличении пропускной способности только до 800-1000 бит/с (битов в секунду). Потенциальные преимущества этих реализаций включают в себя встроенное кодирование, чтобы поддерживать совместимость с узкополосными системами, относительно простое распределение и перераспределение битов между каналами узкополосного и высокополосного кодирования, исключение вычислительно-емкой операции широкополосного синтеза и поддержание низкой частоты дискретизации для сигналов, которые должны обрабатываться посредством вычислительно-емких процедур кодирования формы сигналов.
Если не ограничен в явной форме контекстом, термин "вычисление" используется в данном документе, чтобы обозначать любое из своих обычных значений, например, расчет, формирование и выбор из списка значений. Если термин "содержащий" используется в настоящем описании и формуле изобретения, он не исключает других элементов или операций. Термин "A основан на B" используется для того, чтобы обозначать любое из своих обычных значений, в том числе случаи (i) "A равен B" и (ii) "A основан, по меньшей мере, на B". Термин "Интернет-протокол" включает в себя версию 4, как описано в IETF (Инженерная группа по развитию Интернета) RFC (Рабочие предложения) 791, и последующие версии, такие как версия 6.
Фиг.1a иллюстрирует блок-схему широкополосного речевого кодера A100 согласно варианту осуществления. Группа A110 фильтров сконфигурирована таким образом, чтобы фильтровать широкополосный речевой сигнал S10, чтобы формировать узкополосный сигнал S20 и высокополосный сигнал S30. Узкополосный кодер A120 выполнен с возможностью кодировать узкополосный сигнал S20, чтобы формировать параметры S40 узкополосной (NB) фильтрации и узкополосный остаточный сигнал S50. Как подробнее описано в данном документе, узкополосный кодер A120 в типичном варианте выполнен с возможностью формировать параметры S40 узкополосной фильтрации и кодированный узкополосный сигнал S50 возбуждения в качестве индексов таблицы кодирования или в другой квантованной форме. Высокополосный кодер A200 выполнен с возможностью кодировать высокополосный сигнал S30 согласно информации в кодированном узкополосном сигнале S50 возбуждения, чтобы сформировать параметры S60 высокополосного кодирования. Как подробнее описывается в данном документе, высокополосный кодер A200 в типичном варианте выполнен с возможностью формировать параметры S60 высокополосного кодирования в качестве индексов таблицы кодирования или в другой квантованной форме. Один конкретный пример широкополосного речевого кодера A100 выполнен с возможностью кодировать широкополосный речевой сигнал S10 на скорости примерно 8,55 кбит/с (килобит в секунду), при этом примерно 7,55 кбит/с используются для параметров S40 узкополосной фильтрации и кодированного узкополосного сигнала возбуждения S50, а примерно 1 кбит/с используется для параметров S60 высокополосного кодирования.
Может быть желательным комбинировать кодированные узкополосные и высокополосные сигналы в один поток битов. Например, может быть желательным мультиплексировать кодированные сигналы вместе для передачи (к примеру, по проводному, оптическому или беспроводному каналу передачи) либо для хранения в качестве кодированного широкополосного речевого сигнала. Фиг.1b иллюстрирует блок-схему реализации A102 широкополосного речевого кодера A100, который включает в себя мультиплексор A130, выполненный с возможностью комбинировать параметры S40 узкополосной фильтрации, кодированный узкополосный сигнал S50 возбуждения и параметры S60 высокополосной фильтрации в мультиплексированный сигнал S70.
Устройство, включающее в себя кодер A102, также может включать в себя схему, сконфигурированную так, чтобы передавать мультиплексированный сигнал S70 в канал передачи, такой как проводной, оптический или беспроводной канал. Это устройство также может быть сконфигурировано так, чтобы выполнять одну или более операций канального кодирования с сигналом, таких как кодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное кодирование) и/или кодирование с обнаружением ошибок (к примеру, кодирование циклическим избыточным кодом), и/или кодирование одного или более уровней сетевых протоколов (к примеру, Ethernet, TCP/IP, cdma2000).
Может быть желательным сконфигурировать мультиплексор A130 так, чтобы встраивать кодированный узкополосный сигнал (включающий в себя параметры S40 узкополосной фильтрации и кодированный узкополосный сигнал S50 возбуждения) в качестве разделяемого субпотока мультиплексированного сигнала S70, с тем чтобы кодированный узкополосный сигнал может быть восстановлен и декодирован независимо от другой части мультиплексированного сигнала S70, такого как высокополосный и/или низкополосный сигнал. Например, мультиплексированный сигнал S70 может быть скомпонован таким образом, что кодированный узкополосный сигнал может быть восстановлен посредством отсечения параметров S60 высокополосной фильтрации. Одно потенциальное преимущество такого признака состоит в том, чтобы избегать необходимости перекодировки кодированного широкополосного сигнала до передачи его в систему, которая поддерживает декодирование узкополосного сигнала, но не поддерживает декодирование высокополосной части.
Фиг.2a - это блок-схема широкополосного речевого декодера B100 согласно варианту осуществления. Узкополосный декодер B110 выполнен с возможностью кодировать параметры S40 узкополосной фильтрации и декодированный узкополосный сигнал S50 возбуждения, чтобы формировать узкополосный сигнал S90. Высокополосный декодер B200 выполнен с возможностью декодировать параметры S60 высокополосного кодирования согласно узкополосному сигналу S80 возбуждения на основе кодированного узкополосного сигнала S50 возбуждения, чтобы сформировать высокополосный сигнал S100. В этом примере узкополосный декодер B110 выполнен с возможностью предоставлять узкополосный сигнал S80 возбуждения в высокополосный декодер B200. Группа B120 фильтров сконфигурирована так, чтобы комбинировать узкополосный сигнал S90 и высокополосный сигнал S100, чтобы формировать широкополосный речевой сигнал S110.
Фиг.2b - это блок-схема реализации B102 широкополосного речевого декодера B100, который включает в себя демультиплексор B130, выполненный с возможностью формировать кодированные сигналы S40, S50 и S60 из мультиплексированного сигнала S70. Устройство, включающее в себя декодер B102, может включать в себя схему, сконфигурированную так, чтобы принимать мультиплексированный сигнал S70 из канала передачи, такого как проводной, оптический или беспроводной канал. Это устройство также может быть сконфигурировано так, чтобы выполнять одну или более операций канального декодирования с сигналом, таких как декодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное декодирование) и/или декодирование с обнаружением ошибок (к примеру, декодирование циклическим избыточным кодом), и/или декодирование одного или более уровней сетевых протоколов (к примеру, Ethernet, TCP/IP, cdma2000).
Группа A110 фильтров сконфигурирована так, чтобы фильтровать входной сигнал согласно схеме расщепления полосы, чтобы формировать низкочастотный поддиапазон и высокочастотный поддиапазон. В зависимости от проектных критериев конкретного приложения, выходные поддиапазоны могут иметь равные или неравные полосы пропускания и могут быть перекрывающимися или неперекрывающимися. Конфигурация группы A110 фильтров, которая формирует более двух поддиапазонов, также возможна. Например, эта группа фильтров может быть сконфигурирована так, чтобы формировать один или более низкополосных сигналов, которые включают в себя компоненты в частотном диапазоне ниже частотного диапазона узкополосного сигнала S20 (например, диапазона 50-300 Гц). Также можно сконфигурировать эту группу фильтров таким образом, чтобы формировать один или более дополнительных высокополосных сигналов, которые включают в себя компоненты в частотном диапазоне выше частотного диапазона высокополосного сигнала S30 (например, диапазона 14-20, 16-20 или 16-32 кГц). В этом случае широкополосный речевой кодер A100 может быть реализован таким образом, чтобы кодировать этот сигнал или сигналы отдельно, и мультиплексор A130 может быть выполнен с возможностью включать дополнительный кодированный сигнал или сигналы в мультиплексированный сигнал S70 (к примеру, в качестве разделяемой части).
Фиг.3a иллюстрирует блок-схему реализации A112 группы A110 фильтров, которая сконфигурирована так, чтобы формировать два поддиапазонных сигнала, имеющих меньшие частоты дискретизации. Группа A110 фильтров выполнена с возможностью принимать широкополосный речевой сигнал S10, имеющий высокочастотную (или высокополосную) часть и низкочастотную (или низкополосную) часть. Группа A112 фильтров включает в себя путь низкополосной обработки, выполненный с возможностью принимать широкополосный речевой сигнал S10 и формировать узкополосный речевой сигнал S20, и путь высокополосной обработки, выполненный с возможностью принимать широкополосный речевой сигнал S10 и формировать высокополосный речевой сигнал S30. Низкочастотный фильтр 110 фильтрует широкополосный речевой сигнал S10, чтобы пропускать выбранный низкочастотный поддиапазон, а высокочастотный фильтр 130 фильтрует широкополосный речевой сигнал S10, чтобы пропускать выбранный высокочастотный поддиапазон. Поскольку оба поддиапазонных сигнала имеют более узкую полосу пропускания, чем широкополосный речевой сигнал S10, их частоты дискретизации могут быть снижены, в некоторой степени, без потери информации. Понижающий дискретизатор 120 снижает частоту дискретизации низкочастотного сигнала согласно требуемому коэффициенту децимации (к примеру, посредством удаления отсчетов сигнала и/или замены отсчетов средними значениями), а понижающий дискретизатор 140 аналогично снижает частоту дискретизации сигнала верхних частот согласно другому требуемому коэффициенту децимации.
Фиг.3b иллюстрирует блок-схему соответствующей реализации B122 группы B120 фильтров. Повышающий дискретизатор 150 увеличивает частоту дискретизации узкополосного сигнала S90 (к примеру, посредством заполнения нулями и/или посредством дублирования отсчетов), и низкочастотный фильтр 160 фильтрует сигнал с повышенной дискретизацией, чтобы пропускать только низкополосную часть (к примеру, чтобы избежать наложения спектров). Аналогично - повышающий дискретизатор 170 увеличивает частоту дискретизации высокополосного сигнала S100, а высокочастотный фильтр 180 фильтрует сигнал с повышенной дискретизацией, чтобы пропускать только высокополосную часть. Сигналы двух полос пропускания затем суммируются, чтобы сформировать широкополосный речевой сигнал S110. В некоторых реализациях декодера B100 группа B120 фильтров сконфигурирована так, чтобы формировать взвешенную сумму сигналов двух полос пропускания согласно одному или более весовых коэффициентов, принятых и/или вычисленных посредством высокополосного декодера B200. Конфигурация группы B120 фильтров, которая комбинирует сигналы более чем двух полос пропускания, также возможна.
Каждый из фильтров 110, 130, 160, 180 может быть реализован как фильтр с конечной импульсной характеристикой (FIR) или как фильтр с бесконечной импульсной характеристикой (IIR). Частотные характеристики фильтров 110 и 130 кодера могут иметь симметричные переходные области или переходные области непохожей формы между полосой режекции и полосой пропускания. Аналогично - частотные характеристики фильтров 160 и 180 декодера могут иметь симметричные переходные области или переходные области непохожей формы между полосой режекции и полосой пропускания. Может быть желательным, но не обязательным реализовать низкочастотный фильтр 110 с такой же характеристикой, как и у низкочастотного фильтра 160, и реализовать высокочастотный фильтр 130 с такой же характеристикой, как и у высокочастотного фильтра 180. В одном примере две пары 110, 130 и 160, 180 фильтров являются группами квадратурных зеркальных фильтров (QMF), при этом пара 110, 130 фильтров имеет такие же коэффициенты, что и пара 160, 180 фильтров.
В типичном примере низкочастотный фильтр 110 имеет полосу пропускания, которая включает в себя ограниченный PSTN-диапазон в 300-3400 Гц (к примеру, полосу от 0 до 4 кГц). Фиг.4a и 4b иллюстрируют относительные полосы пропускания широкополосного речевого сигнала S10, узкополосного сигнала S20 и высокополосного сигнала S30 в двух различных примерах реализации. В обоих из этих примеров широкополосный речевой сигнал S10 имеет частоту дискретизации в 16 кГц (представляя частотные компоненты в диапазоне 0-8 кГц), а узкополосный сигнал S20 имеет частоту дискретизации в 8 кГц (представляя частотные компоненты в диапазоне 0-4 кГц).
В примере на фиг.4a нет существенного перекрывания между двумя поддиапазонами. Высокополосный сигнал S30, как показано в данном примере, может быть получен с помощью высокочастотного фильтра 130 с полосой пропускания в 4-8 кГц. В этом случае может быть желательным снизить частоту дискретизации до 8 кГц посредством снижения дискретизации фильтрованного сигнала на коэффициент два. Эта операция, которая, как ожидается, может существенно снизить вычислительную сложность дополнительных операций обработки сигнала, уменьшает энергию полосы пропускания до диапазона в 0-4 кГц без потери информации.
В альтернативном примере по фиг.4b верхние и нижние поддиапазоны имеют заметное перекрывание, так что область 3,5-4 кГц описывается посредством обоих поддиапазонных сигналов. Высокополосный сигнал S30, как показано в данном примере, может быть получен с помощью высокочастотного фильтра 130 с полосой пропускания в 3,5-7 кГц. В этом случае может быть желательным снизить частоту дискретизации до 7 кГц посредством понижающей дискретизации фильтрованного сигнала на коэффициент 16/7. Эта операция, которая, как ожидается, может существенно снизить вычислительную сложность дополнительных операций обработки сигнала, уменьшает энергию полосы пропускания до диапазона 0-3,5 кГц без потери информации.
В типичной телефонной трубке для телефонной связи один или более преобразователей (т.е. микрофон и наушник или динамик) имеет в значительной степени недостаточную характеристику в частотном диапазоне 7-8 кГц. В примере по фиг.4b часть широкополосного речевого сигнала S10 между 7 и 8 кГц не включена в кодированный сигнал. Другие конкретные примеры высокочастотного фильтра 130 имеют полосы пропускания в 3,5-7,5 кГц и 3,5-8 кГц.
В некоторых реализациях предоставление перекрывания между поддиапазонами, как в примере по фиг.4b, дает возможность использования низкочастотного и/или высокочастотного фильтра, имеющего плавное спадание в перекрывающейся области. Эти фильтры в типичном варианте проще проектировать, они менее вычислительно сложные и/или вносят меньшую задержку, чем фильтры с более резкими или "крутыми" характеристиками. Фильтры, имеющие резкие переходные области, зачастую имеют более высокие боковые лепестки (которые могут приводить к наложению спектров), чем фильтры аналогичного порядка, которые имеют плавное спадание. Фильтры, имеющие резкие переходные области, также могут иметь импульсные характеристики большой длительности, которые могут приводить к реверберирующим помехам. Для реализаций групп фильтров, имеющих один или более IIR-фильтров, предоставляющих плавное спадание в перекрывающейся области, можно позволить использование фильтра или фильтров, полюса которых находятся дальше от единичной окружности, что может быть важным для того, чтобы обеспечивать стабильную реализацию с фиксированной запятой.
Перекрывание поддиапазонов предоставляет плавное сопряжение полосы низких частот и полосы высоких частот, что может приводить к меньшим слышимым помехам, снижению наложения спектров и/или менее заметному переходу от одной полосы к другой. Более того, эффективность кодирования узкополосного кодера A120 (например, кодера формы сигналов) может падать с повышением частоты.
Например, качество кодирования узкополосного кодера может снижаться при низких скоростях передачи битов, особенно при наличии фонового шума. В этих случаях предоставление перекрывания поддиапазонов позволяет повышать качество воспроизводимых частотных компонентов в перекрывающейся области.
Кроме того, перекрывание поддиапазонов предоставляет плавное сопряжение полосы низких частот и полосы высоких частот, что может приводить к меньшим слышимым помехам, снижению наложения спектров и/или менее заметному переходу от одной полосы к другой. Этот признак может быть особенно желательным для реализации, в которой узкополосный кодер A120 и высокополосный кодер A200 функционируют согласно различным методологиям кодирования. Например, различные методики кодирования могут формировать сигналы, которые звучат немного по-разному. Кодер, который кодирует спектральную огибающую в форме индексов таблицы кодирования, может формировать сигнал, имеющий звук, отличающийся от звука кодера, который кодирует вместо этого амплитудный спектр. Кодер временной области (к примеру, кодер по импульсно-кодовой модуляции, PCM) может формировать сигнал, имеющий звук, отличающийся от звука кодера частотной области. Кодер, который кодирует сигнал с представлением спектральной огибающей и соответствующего остаточного сигнала, может формировать сигнал, имеющий звук, отличающийся от звука кодера, который кодирует сигнал только с представлением спектральной огибающей. Кодер, который кодирует сигнал как представление его формы, может формировать вывод, имеющий звук, отличающийся от звука синусоидального кодера. В этих случаях использование фильтров, имеющих резкие переходные области, чтобы задавать неперекрывающиеся поддиапазоны, может приводить к внезапному и перцепционно заметному переходу между поддиапазонами в синтезированном широкополосном сигнале.
Хотя группы QMF-фильтров, имеющие дополняющие перекрывающиеся частотные характеристики, зачастую используются в поддиапазонных методиках, такие фильтры не подходят, по меньшей мере, для некоторых реализаций широкополосного кодирования, описанных в данном документе. Группа QMF-фильтров в кодере сконфигурирована так, чтобы создавать значительную степень наложения спектров, которое компенсируется в соответствующей группе QMF-фильтров в декодере. Такая компоновка может не подходить для варианта применения, в котором сигнал подвергается значительной величине искажения между группами фильтров, поскольку искажение может снижать эффективность свойства компенсации наложения спектров. Например, варианты применения, описываемые в данном документе, включают в себя реализации кодирования, сконфигурированные так, чтобы функционировать при очень низких скоростях передачи битов. Как следствие очень низкой скорости передачи битов, декодированный сигнал с большой долей вероятности является в значительной степени искаженным в сравнении с исходным сигналом, так что использование групп QMF-фильтров может приводить к некомпенсируемому наложению спектров. Варианты применения, которые используют группы QMF-фильтров, в типичном варианте имеют более высокие скорости передачи битов (к примеру, более 12 кбит/с для AMR и 64 кбит/с для G.722).
Дополнительно кодер может быть выполнен с возможностью формировать синтезированный сигнал, который перцепционно аналогичен исходному сигналу, но который фактически значительно отличается от исходного сигнала. Например, кодер, который извлекает высокополосное возбуждение из узкополосного остатка, как описано в данном документе, может формировать такой сигнал, поскольку фактический высокополосный остаток может полностью отсутствовать в декодированном сигнале. Использование групп QMF-фильтров в этих приложениях может приводить к значительной степени искажения, вызываемого посредством некомпенсируемого наложения спектров.
Величина искажения, вызываемого посредством QMF-наложения спектров, может быть снижена, если затрагиваемый поддиапазон узкий, поскольку эффект от наложения спектров ограничен полосой пропускания, равной ширине поддиапазона. Например, как описано в данном документе, каждый поддиапазон включает в себя примерно половину широкополосной полосы пропускания, тем не менее, искажение, вызываемое посредством некомпенсируемого наложения спектров, может затрагивать значительную часть сигнала. Качество сигнала может также затрагиваться посредством размещения частотного диапазона, в котором возникает некомпенсируемое наложение спектров. Например, искажение, создаваемое рядом с центром широкополосного речевого сигнала (к примеру, между 3 и 4 кГц), может быть гораздо более нежелательным, чем искажение, которое возникает рядом с краем сигнала (к примеру, выше 6 кГц).
Хотя характеристики фильтров группы QMF-фильтров тесно связаны друг с другом, низкополосные и высокополосные пути групп A110 и B120 фильтров могут быть сконфигурированы так, чтобы иметь спектры, которые полностью не связаны, не считая перекрывания двух поддиапазонов. Мы задаем перекрывание двух поддиапазонов как расстояние от точки, в которой частотная характеристика высокополосного фильтра падает до -20 дБ, до точки, в которой частотная характеристик низкополосного фильтра падает до -20 дБ. В различных примерах группы A110 и/или B120 фильтров это перекрывание варьируется от примерно 200 Гц до примерно 1 кГц. Диапазон от примерно 400 до примерно 600 Гц может представлять требуемый компромисс между эффективностью кодирования и перцепционной плавностью. В одном конкретном примере, как упоминалось выше, перекрывание составляет порядка 500 Гц.
Может быть желательным реализовать группу A112 и/или B122 фильтров, чтобы выполнить операции, проиллюстрированные на фиг.4a и 4b, в несколько стадий. Например, фиг.4c иллюстрирует блок-схему реализации A114 группы A112 фильтров, которая выполняет функциональный эквивалент операций высокочастотной фильтрации и понижающей дискретизации, используя набор из интерполяции, передискретизации и децимации и других операций. Такую реализацию может быть проще спроектировать, и/или она может предоставлять возможность повторного использования блоков логики и/или кода. Например, один функциональный блок может быть использован для того, чтобы выполнять операции децимации до 14 кГц и децимации до 7 кГц, как показано на фиг.4c. Операция обращения спектра может быть реализована посредством умножения сигнала на функцию ejn или последовательность (-1)n, значения которой чередуются между +1 и -1. Операция формирования спектра может быть реализована как низкочастотный фильтр, выполненный с возможностью сформировать сигнал, чтобы получать требуемую общую характеристику фильтрации.
Следует отметить, что как следствие операции обращения спектра, спектр высокополосного сигнала S30 меняется на противоположный. Последующие операции в кодере и соответствующем декодере могут быть сконфигурированы надлежащим образом. Например, высокополосный генератор A300 возбуждения, описанный в данном документе, может быть выполнен с возможностью формировать сигнал S120 высокополосного возбуждения, который также имеет спектрально обращенную форму.
Фиг.4d иллюстрирует блок-схему реализации B124 группы B122 фильтров, которая выполняет функциональный эквивалент операций повышающей дискретизации и высокочастотной фильтрации, используя набор из интерполяции, передискретизации и других операций. Группа B124 фильтров включает в себя операцию обращения спектра в полосе высоких частот, которая обращает аналогичную операцию, которая выполняется, например, в группе фильтров кодера, такой как группа A114 фильтров. В этом конкретном примере группа B124 фильтров также включает в себя узкополосную фильтрацию в полосе низких частот и полосе высоких частот, которые ослабляют компонент сигнала при 7100 Гц, хотя эта фильтрация является необязательной и не обязательно должна быть включена. Патентная заявка "SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING", зарегистрированная настоящим, адвокатская выписка 050551 включает в себя дополнительное описание и чертежи, связанные с характеристиками элементов конкретных реализаций групп A110 и B120 фильтров, и этот материал, тем самым, содержится в данном документе по ссылке.
Узкополосный кодер A120 реализован согласно модели входного фильтра, которая кодирует входной речевой сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, который приводит в действие описанный фильтр, чтобы сформировать синтезированное воспроизведение входного речевого сигнала. Фиг. 5a иллюстрирует пример спектральной огибающей речевого сигнала. Пики, которые характеризуют эту спектральную огибающую, представляют резонансы речевого тракта и называются формантами. Большинство речевых кодеров кодируют, по меньшей мере, эту приблизительную спектральную структуру как набор параметров, таких как коэффициенты фильтрации.
Фиг.5b иллюстрирует пример базовой компоновки входного фильтра, применяемой к кодированию спектральной огибающей узкополосного сигнала S20. Анализирующий модуль вычисляет набор параметров, которые характеризуют фильтр, соответствующий речевому звуку, за период времени (типично 20 мс). Выбеливающий фильтр (также называемый анализирующим фильтром или фильтром ошибок предсказания), сконфигурированный согласно этим параметрам фильтрации, удаляет спектральную огибающую, чтобы спектрально сгладить сигнал. Результирующий отбеленный сигнал (также называемый остатком) имеет меньше энергии и тем самым меньше дисперсию, и его проще кодировать, чем исходный речевой сигнал. Ошибки, возникающие в результате кодирования остаточного сигнала, также могут быть распределены более равномерно по спектру. Параметры фильтрации и остаток в типичном варианте квантуются для эффективной передачи по каналу. В декодере синтезирующий фильтр, сконфигурированный согласно параметрам фильтрации, возбуждается посредством сигнала на основе остатка, чтобы сформировать синтезированную версию исходного речевого звука. Синтезирующий фильтр в типичном варианте выполнен с возможностью иметь передаточную функцию, которая является инверсией передаточной функции выбеливающего фильтра.
Фиг.6 иллюстрирует блок-схему базовой реализации A122 узкополосного кодера A120. В этом примере анализирующий модуль 210 кодирования с линейным предсказанием (LPC) кодирует спектральную огибающую узкополосного сигнала S20 как набор коэффициентов линейного предсказания (LP) (к примеру, коэффициентов полюсного фильтра 1/A(z)). Анализирующий модуль в типичном варианте обрабатывает входной сигнал как последовательность неперекрывающихся кадров, при этом новый набор коэффициентов вычисляется для каждого кадра. Период кадра - это, как правило, период, в течение которого, как ожидается, сигнал может быть локально стационарным; один общий пример - это 20 миллисекунд (эквивалентно 160 отсчетам при частоте дискретизации 8 кГц). В одном примере анализирующий LPC-модуль 210 выполнен с возможностью вычислять набор из десяти коэффициентов LP-фильтрации, чтобы охарактеризовать формантную структуру каждого 20-миллисекундного кадра. Также можно реализовать анализирующий модуль так, чтобы обрабатывать входной сигнал как последовательность перекрывающихся кадров.
Анализирующий модуль может быть выполнен с возможностью анализировать отсчеты каждого кадра непосредственно, либо отсчеты могут быть сначала взвешены согласно финитной взвешивающей функции (например, взвешивающей функции Хэмминга). Анализ также может выполняться для окна, превышающего кадр, например, 30-миллисекундного окна. Это окно может быть симметричным (к примеру, 5-20-5, так что оно включает в себя 5 миллисекунд сразу перед и после 20-миллисекундного кадра) или асимметричным (к примеру, 10-20, так что оно включает в себя последние 10 миллисекунд предыдущего кадра). Анализирующий LPC-модуль в типичном варианте выполнен с возможностью вычислять коэффициенты LP-фильтрации с помощью рекурсии Левинсона-Дурбина или алгоритма Леро-Гогена. В другой реализации анализирующий модуль может быть выполнен с возможностью вычислять набор коэффициентов косинусного преобразования Фурье для каждого кадра вместо набора коэффициентов LP-фильтрации.
Выходная скорость кодера A120 может быть значительно снижена с относительно небольшим влиянием на качество воспроизведения посредством квантования параметров фильтрации. Коэффициенты фильтрации с линейным предсказанием трудно эффективно квантовать, и обычно они преобразуются к другому представлению, к примеру, парам спектральных линий (LSP) или частотам спектральных линий (LSF) для квантования и/или кодирования по энтропии. В примере по фиг.6 преобразование 220 коэффициентов LP-фильтрации в LSF преобразует набор коэффициентов LP-фильтрации в соответствующий набор LSF. Другие представления "один-к-одному" коэффициентов LP-фильтрации включают в себя коэффициенты паркора; значения отношения логарифмической площади; спектральные пары иммитансов (ISP); и спектральные частоты иммитансов (ISF), которые используются в кодеке AMR-WB (адаптивное многоскоростное широкополосное кодирование) для GSM (глобальная система мобильной связи). Типично преобразование между набором коэффициентов LP-фильтрации и соответствующим набором LSF является обратимым, но варианты осуществления также включают в себя реализации кодера A120, в которых преобразование является необратимым без ошибок.
Квантователь 230 выполнен с возможностью квантовать набор узкополосных LSF (или другого представления коэффициентов), а узкополосный кодер A122 выполнен с возможностью выводить результат этого квантования в качестве параметров S40 узкополосной фильтрации. Данный квантователь в типичном варианте включает в себя векторный квантователь, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования.
Как показано на фиг.6, узкополосный кодер A122 также формирует остаточный сигнал посредством передачи узкополосного сигнала S20 через выбеливающий фильтр 260 (также называемый анализирующим фильтром или фильтром ошибок предсказания), который сконфигурирован согласно набору коэффициентов фильтрации. В этом конкретном примере выбеливающий фильтр 260 реализован как FIR-фильтр, хотя также могут быть использованы IIR-реализации. Данный остаточный сигнал в типичном варианте содержит перцепционно важную информацию речевого кадра, такую как долгосрочная структура, связанная с шагом, которая не представлена в параметрах S40 узкополосной фильтрации. Квантователь 270 выполнен с возможностью вычислять оцифрованное представление этого остаточного сигнала для вывода в качестве кодированного узкополосного сигнала S50 возбуждения. Данный квантователь в типичном варианте включает в себя векторный квантователь, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования. Альтернативно - данный квантователь может быть выполнен с возможностью отправлять один или более параметров, из которых вектор может быть сформирован динамически в декодере, а не извлечен из устройства хранения, как в способе разреженной таблицы кодирования. Этот способ используется в схемах кодирования, таких как алгебраическое CELP (кодирование методом линейного предсказания с кодовым возбуждением), и кодеках, таких как EVRC (усовершенствованный кодек с переменной скоростью) для 3GPP2 (Партнерский проект третьего поколения 2).
Желательно, чтобы узкополосный кодер A120 формировал кодированный узкополосный сигнал возбуждения согласно тем же параметрам фильтрации, которые доступны для соответствующего узкополосного декодера. Таким образом, результирующий кодированный узкополосный сигнал возбуждения может уже в некоторой степени учитывать неидеальности в этих значениях параметров, например, ошибку квантования. Следовательно, желательно конфигурировать выбеливающий фильтр с использованием тех же значений коэффициентов, что и доступны в кодере. В базовом примере кодера A122, как показано на фиг.6, обратный квантователь 240 деквантует параметры S40 узкополосного кодирования, преобразование 250 LSF в коэффициенты LP-фильтрации преобразует результирующие значения обратно к соответствующему набору коэффициентов LP-фильтрации, и этот набор коэффициентов используется для того, чтобы конфигурировать выбеливающий фильтр 260, чтобы формировать остаточный сигнал, который квантуется посредством квантователя 270.
Некоторые реализации узкополосного кодера A120 сконфигурированы так, чтобы вычислять кодированный узкополосный сигнал S50 возбуждения посредством идентификации одного из набора векторов таблицы кодирования, который в наибольшей степени совпадает с остаточным сигналом. Тем не менее, следует отметить, что узкополосный кодер A120 также может быть реализован так, чтобы вычислять квантованное представление остаточного сигнала без фактического формирования остаточного сигнала. Например, узкополосный кодер A120 может быть выполнен с возможностью использовать ряд векторов таблицы кодирования, чтобы формировать соответствующие синтезированные сигналы (к примеру, согласно текущему набору параметров фильтрации), и выбирать вектор таблицы кодирования, ассоциативно связанный со сформированным сигналом, который в наибольшей степени совпадает с исходным узкополосным сигналом S20 в перцепционно взвешенной области.
Фиг.7 иллюстрирует блок-схему реализации B112 узкополосного декодера B110. Обратный квантователь 310 деквантует параметры S40 узкополосной фильтрации (в данном случае, до набора LSF), а преобразование 320 LSF в параметры LP-фильтрации преобразует LSF в набор коэффициентов фильтрации (например, как описано выше со ссылкой на обратный квантователь 240 и преобразование 250 узкополосного кодера A122). Обратный квантователь 340 деквантует узкополосный остаточный сигнал S40, чтобы сформировать узкополосный сигнал S80 возбуждения. На основе коэффициентов фильтрации и узкополосного сигнала S80 возбуждения узкополосный синтезирующий фильтр 330 синтезирует узкополосный сигнал S90. Другими словами, узкополосный синтезирующий фильтр 330 выполнен с возможностью спектрально формировать узкополосный сигнал S80 возбуждения согласно деквантованным коэффициентам фильтрации, чтобы сформировать узкополосный сигнал S90. Узкополосный декодер B112 также предоставляет узкополосный сигнал S80 возбуждения в высокополосный кодер A200, который использует его для того, чтобы извлекать высокополосный сигнал S120 возбуждения, как описано в данном документе. В некоторых реализациях, описанных ниже, узкополосный декодер B110 может быть выполнен с возможностью предоставлять дополнительную информацию в высокополосный декодер B200, которая связана с узкополосным сигналом, такую как наклон спектра, усиление и запаздывание основного тона и режим речи.
Система узкополосного кодера A122 и узкополосного декодера B112 является базовым примером речевого кодера анализа посредством синтеза. Кодирование методом линейного предсказания с кодовым возбуждением (CELP) является одним популярным семейством кодирования на основе анализа посредством синтеза, и реализации таких кодеров могут выполнять кодирование формы сигнала остатка, в том числе такие операции, как выбор записей из фиксированных и адаптивных таблиц кодирования, операции минимизации ошибок и/или операции перцепционного взвешивания. Другие реализации кодирования на основе анализа посредством синтеза включают в себя кодирование методом линейного предсказания со смешанным возбуждением (MELP), алгебраического CELP (ACELP), релаксационного CELP (RCELP), регулярного возбуждения импульсами (RPE), многоимпульсного CELP (MPE) и линейного предсказания с возбуждением векторной суммой (VSELP). Связанные способы кодирования включают в себя кодирование с многополосным возбуждением (MBE) и интерполяцией прототипа формы сигнала (PWI). Примеры стандартизированных речевых кодеков на основе анализа посредством синтеза включают в себя полноскоростной GSM-кодек ETSI-GSM (Европейский институт телекоммуникационных стандартов) (GSM 06.10), который использует линейное предсказание с остаточным возбуждением (RELP); улучшенный полноскоростной GSM-кодек (ETSI-GSM 06.60); кодер по стандарту ITU (Международный союз телекоммуникаций) 11.8 кбит/с G.729 Приложение E; кодеки IS (Interim Standard)-641 для IS-136 (схема множественного доступа с временным разделением каналов); адаптивные многоскоростные GSM-кодеки (GSM-AMR); и кодек 4GV (вокодер четвертого поколения) (QUALCOMM Incorporated, San Diego, CA). Узкополосный кодер A120 и соответствующий декодер B110 могут быть реализованы согласно одной из этих методологий либо любой другой технологии речевого кодирования (известной или находящейся в разработке), которая представляет речевой сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, используемый для того, чтобы приводить в действие описанный фильтр, чтобы воспроизвести речевой сигнал.
Даже после того, как выбеливающий фильтр удалил приблизительную спектральную огибающую из узкополосного сигнала S20, значительная часть тонкой гармонической структуры может оставаться, особенно для вокализованной речи. Фиг.8a иллюстрирует спектральный график одного примера остаточного сигнала, который может быть сформирован посредством выбеливающего фильтра для речевого сигнала, к примеру, гласных звуков. Периодическая структура, показанная в этом примере, связана с основным тоном, и различные вокализованные звуки, произносимые одним и тем же говорящим, могут иметь различные формантные структуры, но похожие структуры основного тона. Фиг. 8b иллюстрирует график временной области примера такого остаточного сигнала, который показывает последовательность импульсов основного тона во времени.
Эффективность кодирования и/или качество речи может быть повышено посредством использования одного или более значений параметров для того, чтобы кодировать характеристики структуры основного тона. Одной важной характеристикой структуры основного тона является эффективность первой гармоники (также называемой собственной частотой), которая в типичном варианте находится в диапазоне 60-400 Гц. Эта характеристика в типичном варианте кодируется как инверсия собственной частоты, также называемая запаздыванием основного тона. Запаздывание основного тона указывает число отсчетов в одном периоде основного тона и может кодироваться как один или более индексов таблицы кодирования. Речевые сигналы от мужчин зачастую имеют большее запаздывание основного тона, чем речевые сигналы от женщин.
Другой характеристикой сигнала, связанной со структурой основного тона, является периодичность, которая указывает интенсивность гармонической структуры или, другими словами, степень, в которой сигнал является гармоническим или негармоническим. Двумя типичными индикаторами периодичности являются переходы через нуль и функции нормализованной автокорреляции (NACF). Периодичность также может показываться посредством усиления основного тона, которое, как правило, кодируется как усиление таблицы кодирования (к примеру, усиление квантованной адаптивной таблицы кодирования).
Узкополосный кодер A120 может включать в себя один или более модулей, сконфигурированных так, чтобы кодировать долгосрочную гармоническую структуру узкополосного сигнала S20. Как показано на фиг.9, одна типичная парадигма CELP, которая может быть использована, включает в себя анализирующий LPC-модуль с разомкнутым контуром, который кодирует краткосрочную характеристику или приблизительную спектральную огибающую, после чего следует анализирующая стадия долгосрочного предсказания с замкнутым контуром, которая кодирует точный основной тон или гармоническую структуру. Краткосрочные характеристики кодируются как коэффициенты фильтрации, а долгосрочные характеристики кодируются как значения параметров, например, запаздывание основного тона и усиление основного тона. Например, узкополосный кодер A120 может быть выполнен с возможностью выводить кодированный узкополосный сигнал S50 возбуждения в форме, которая включает в себя один или более индексов таблицы кодирования (к примеру, индекс фиксированной таблицы кодирования или индекс адаптивной таблицы кодирования) и соответствующие значения усиления. Вычисление этого квантованного представления узкополосного остаточного сигнала (к примеру, посредством квантователя 270) может включать в себя выбор таких индексов и вычисление таких значений. Кодирование структуры основного тона также может включать в себя интерполяцию формы сигнала прототипа основного тона, причем эта операция может включать в себя вычисление разности между последовательными импульсами основного тона. Моделирование долгосрочной структуры может быть отключено для кадров, соответствующих невокализованной речи, которые в типичном варианте являются шумоподобными и неструктурированными.
Реализация узкополосного декодера B110 согласно парадигме, проиллюстрированной на фиг.9, может быть сконфигурирована так, чтобы выводить узкополосный сигнал S80 возбуждения в высокополосный декодер B200 после того, как долгосрочная структура (основной тон или гармоническая структура) восстановлена. Например, этот декодер может быть выполнен с возможностью выводить узкополосный сигнал S80 возбуждения в качестве деквантованной версии кодированного узкополосного сигнала S50 возбуждения. Разумеется, также можно реализовать узкополосный декодер B110, так что высокополосный декодер B200 выполняет деквантование кодированного узкополосного сигнала S50 возбуждения, чтобы получить узкополосный сигнал возбуждения S80.
В реализации широкополосного речевого кодера A100 согласно парадигме, показанной на фиг.9, высокополосный кодер A200 может быть выполнен с возможностью принимать узкополосный сигнал возбуждения, формируемый посредством краткосрочного анализирующего или выбеливающего фильтра. Другими словами, узкополосный кодер A120 может быть выполнен с возможностью выводить узкополосный сигнал возбуждения в высокополосный кодер A200 до кодирования долгосрочной структуры. Тем не менее, желательно для высокополосного кодера A200 принимать из узкополосного канала такую же информацию кодирования, которая принимается посредством высокополосного декодера B200, с тем чтобы параметры кодирования, формируемые посредством высокополосного кодера A200, могли уже в некоторой степени учитывать неидеальности в этой информации. Таким образом, может быть предпочтительным для высокополосного кодера A200 восстанавливать узкополосный сигнал S80 возбуждения из такого же параметризованного и/или квантованного кодированного узкополосного сигнала S50 возбуждения, который должен быть выведен посредством широкополосного речевого кодера A100. Одно потенциальное преимущество этого подхода заключается в более точном вычислении коэффициентов S60b высокополосного усиления, описанных ниже.
Помимо параметров, которые характеризуют краткосрочную и/или долгосрочную структуру узкополосного сигнала S20, узкополосный кодер A120 может формировать значения параметров, которые связаны с другими характеристиками узкополосного сигнала S20. Эти значения, которые могут быть надлежащим образом квантованы для вывода посредством широкополосного речевого кодера A100, могут быть включены в параметры S40 узкополосной фильтрации или выведены отдельно. Высокополосный кодер A200 также может быть выполнен с возможностью вычислять параметры S60 высокополосного кодирования согласно одному или более этих дополнительных параметров (к примеру, после деквантования). В широкополосном речевом кодере B100 высокополосный декодер B200 может быть выполнен с возможностью принимать значения параметров посредством узкополосного кодера B110 (к примеру, после деквантования). Альтернативно - высокополосный кодер B200 может быть выполнен с возможностью принимать (и, возможно, деквантовать) значения параметров непосредственно.
В одном примере дополнительных параметров узкополосного кодирования узкополосный кодер A120 формирует значения для параметров наклона спектра и речевого режима для каждого кадра. Наклон спектра связан с формой спектральной огибающей в полосе пропускания и в типичном варианте представляется посредством квантованного первого коэффициента отражения. Для большинства вокализованных звуков спектральная энергия снижается с увеличением частоты, так что первый коэффициент отражения является отрицательным и может достигать -1. Большинство невокализованных звуков имеют спектр, который либо плоский, так что первый коэффициент отражения близок к нулю, либо имеет больше энергии при высоких частотах, так что первый коэффициент отражения является положительным и может достигать +1.
Речевой режим (также называемый голосовым режимом) указывает то, представляет текущий кадр вокализованную или невокализованную речь. Этот параметр может иметь двоичное значение на основе одного или двух показателей периодичности (к примеру, переходов через нуль, NACF, усиления основного тона) и/или активности речи для кадра, например, отношения между таким показателем и пороговым значением. В других реализациях параметр речевого режима имеет одно или более состояний, чтобы указывать такие режимы, как молчание или фоновый шум либо переход между молчанием и вокализованной речью.
Высокополосный кодер A200 выполнен с возможностью кодировать высокополосный сигнал S30 согласно модели входного фильтра, при этом возбуждение для этого фильтра основано на кодированном узкополосном сигнале возбуждения. Фиг.10 иллюстрирует блок-схему реализации A202 высокополосного кодера A200, который выполнен с возможностью формировать поток параметров S60 высокополосного кодирования, в том числе параметров S60a высокополосной фильтрации и коэффициентов S60b высокополосного усиления. Высокополосный A300 генератор возбуждения извлекает высокополосный сигнал S120 возбуждения из кодированного узкополосного сигнала S50 возбуждения. Анализирующий модуль A210 формирует набор значений параметров, которые характеризуют спектральную огибающую высокополосного сигнала S30. В данном конкретном примере анализирующий модуль A210 выполнен с возможностью выполнять LPC-анализ, чтобы формировать набор коэффициентов LP-фильтрации для каждого кадра высокополосного сигнала S30. Преобразование 410 коэффициентов фильтрации с линейным предсказанием в LSF преобразует набор коэффициентов LP-фильтрации в соответствующий набор LSF. Как указано выше со ссылкой на анализирующий модуль 210 и преобразование 220, анализирующий модуль A210 и/или преобразование 410 могут быть сконфигурированы так, чтобы использовать другие наборы коэффициентов (к примеру, коэффициентов косинусного преобразования Фурье) и/или представления коэффициентов (к примеру, ISP).
Квантователь 420 выполнен с возможностью квантовать набор высокополосных LSF (или другого представления коэффициентов, например, ISP), а высокополосный кодер A202 выполнен с возможностью выводить результат этого квантования в качестве параметров S60a высокополосной фильтрации. Данный квантователь в типичном варианте включает в себя векторный квантователь, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования.
Высокополосный кодер A202 также включает в себя синтезирующий фильтр A220, выполненный с возможностью формировать синтезированный высокополосный сигнал S130 согласно высокополосному сигналу S120 возбуждения и кодированной спектральной огибающей (к примеру, набор коэффициентов LP-фильтрации), сформированной посредством анализирующего модуля A210. Синтезирующий фильтр A220 в типичном варианте реализован как IIR-фильтр, хотя также могут быть использованы FIR-реализации. В конкретном примере синтезирующий фильтр A220 реализован как линейный авторегрессивый фильтр шестого порядка.
Вычислитель A230 коэффициентов высокополосного усиления вычисляет одну или более разностей между уровнями исходного высокополосного сигнала S30 и синтезированного высокополосного сигнала S130, чтобы задавать огибающую усиления для кадра. Квантователь 430, который может быть реализован как векторный квантователь, который кодирует входной вектор в качестве индекса в соответствующую запись вектора в таблице или таблице кодирования, квантует значение или значения, задающие огибающую усиления, а высокополосный кодер A202 выполнен с возможностью выводить результат этого квантования в качестве коэффициентов S60b высокополосного усиления.
В реализации, показанной на фиг.10, синтезирующий фильтр A220 выполнен с возможностью принимать коэффициенты фильтрации из анализирующего модуля A210. Альтернативная реализация высокополосного кодера A202 включает в себя обратный квантователь и обратное преобразование, сконфигурированное так, чтобы декодировать коэффициенты фильтрации из параметров S60a высокополосной фильтрации, и в этом случае синтезирующий фильтр A220 выполнен с возможностью принимать вместо этого декодированные коэффициенты фильтрации. Такая альтернативная компоновка может поддерживать более точное вычисление огибающей усиления посредством вычислителя A230 высокополосного усиления.
В одном конкретном примере анализирующий модуль A210 и вычислитель A230 высокополосного усиления выводят набор из шести LSF и набор из пяти значений усиления на кадр соответственно, с тем чтобы широкополосное расширение узкополосного сигнала S20 могло осуществляться только с помощью одиннадцати дополнительных значений на кадр. Слух зачастую менее чувствителен к погрешностям частоты при высоких частотах, так что высокополосное кодирование при LPC низкого порядка может формировать сигнал, имеющий сравнимое перцепционное качество с узкополосным кодированием при LPC более высокого порядка. Типичная реализация высокополосного кодера A200 может быть сконфигурирована так, чтобы выводить 8-12 битов на кадр для высококачественного восстановления спектральной огибающей и еще 8-12 битов на кадр для высококачественного воспроизведения временной огибающей. В другом конкретном примере анализирующий модуль A210 выводит набор из LSF на кадр.
Некоторые реализации высокополосного кодера A200 сконфигурированы так, чтобы формировать высокополосный сигнал S120 возбуждения посредством формирования сигнала случайного шума, имеющего высокополосные частотные компоненты, и амплитудной модуляции сигнала шума согласно огибающей временной области узкополосного сигнала S20, узкополосного сигнала S80 возбуждения или высокополосного сигнала S30. Хотя этот, основанный на шуме, способ может формировать достаточные результаты для невокализованных звуков, тем не менее, он может не подходить для вокализованных звуков, остатки которых обычно гармонические, и, следовательно, имеют некоторую периодическую структуру.
Высокополосный A300 генератор возбуждения выполнен с возможностью формировать высокополосный сигнал S120 возбуждения посредством продления спектра узкополосного сигнала S80 возбуждения до высокополосного частотного диапазона. Фиг.11 иллюстрирует блок-схему реализации A302 высокополосного генератора A300 возбуждения. Обратный квантователь 450 выполнен с возможностью деквантовать кодированный узкополосный сигнал S50 возбуждения, чтобы формировать узкополосный сигнал S80 возбуждения. Расширитель A400 спектра выполнен с возможностью формировать гармонически расширенный сигнал S160 на основе узкополосного сигнала S80 возбуждения.
Объединитель 470 выполнен с возможностью комбинировать сигнал случайного шума, формируемый посредством генератора 480 шума, и огибающую временной области, вычисленную посредством вычислителя 460 огибающей, чтобы сформировать модулированный сигнал S170 шума. Объединитель 490 выполнен с возможностью смешивать гармонически расширенный сигнал S60 и модулированный сигнал S170 шума, чтобы сформировать высокополосный сигнал S120 возбуждения.
В одном примере расширитель A400 спектра выполнен с возможностью выполнять операцию спектрального наложения (также называемого зеркалированием) для узкополосного сигнала S80 возбуждения, чтобы формировать гармонически расширенный сигнал S160. Спектральное наложение может выполняться посредством дополнения нулями сигнала S80 возбуждения и последующего применения высокочастотного фильтра, чтобы сохранить побочную низкочастотную составляющую. В другом примере расширитель A400 спектра выполнен с возможностью формировать гармонически расширенный сигнал S160 посредством спектрального преобразования узкополосного сигнала S80 возбуждения в высокополосный (к примеру, посредством повышающей дискретизации и последующего умножения с косинусоидального сигнала постоянной частоты).
Способы спектрального наложения и преобразования могут формировать спектрально расширенные сигналы, гармоническая структура которых является непрерывной с исходной гармонической структурой узкополосного сигнала S80 возбуждения по фазе и/или частоте. Например, эти способы могут формировать сигналы, имеющие пики, которые, как правило, не являются кратными собственной частоте, что может вызывать помехи резких звуков в восстановленном речевом сигнале. Эти способы также зачастую формируют высокочастотные гармоники, которые имеют неестественно сильные тональные характеристики. Кроме того, поскольку PSTN-сигнал может дискретизироваться при 8 кГц, но ограничен по полосе пропускания не более чем 3400 Гц, верхний спектр узкополосного сигнала S80 возбуждения может содержать мало или вообще не содержать энергии, так что расширенный сигнал, сформированный согласно операции спектрального наложения или спектрального преобразования, может иметь спектральный провал выше 3400 Гц.
Другие способы формирования гармонически расширенного сигнала S160 включают в себя идентификацию одной или более собственных частот узкополосного сигнала S80 возбуждения и формирование гармонических тонов согласно этой информации. Например, гармоническая структура сигнала возбуждения может характеризоваться посредством собственной частоты наряду с информацией по амплитуде и фазе. Другая реализация высокополосного генератора A300 возбуждения формирует гармонически расширенный сигнал S160 на основе собственной частоты и амплитуды (как указано, к примеру, посредством запаздывания основного тона и усиления основного тона). Тем не менее, кроме случаев, когда гармонически расширенный сигнал является фазово когерентным с узкополосным сигналом S80 возбуждения, качество результирующей декодированной речи может быть неприемлемым.
Нелинейная функция может быть использована для того, чтобы создать высокополосный сигнал возбуждения, который является фазово когерентным с узкополосным возбуждением и сохраняет гармоническую структуру без скачка фазы. Нелинейная функция также может предоставлять повышенный уровень шума между высокочастотными гармониками, которые зачастую звучат более естественно, чем тональные высокочастотные гармоники, формируемые посредством таких способов, как спектральное наложение и спектральное преобразование. Типичные нелинейные функции без запоминания, которые могут быть применены посредством различных реализаций расширителя A400 спектра, включают в себя функцию абсолютных значений (также называемую полнопериодным выпрямлением), полупериодное выпрямление, возведение в квадрат, возведение в куб и отсечение. Другие реализации расширителя A400 спектра могут быть сконфигурированы так, чтобы применять нелинейную функцию с запоминанием.
Фиг.12 - это блок-схема реализации A402 расширителя A400 спектра, который выполнен с возможностью применять нелинейную функцию для того, чтобы расширить узкополосный сигнал S80 возбуждения. Повышающий дискретизатор 510 выполнен с возможностью выполнять повышающую дискретизацию узкополосного сигнала S80 возбуждения. Может быть желательным провести повышающую дискретизацию сигнала в достаточной степени для того, чтобы минимизировать наложение спектров при применении нелинейной функции. В одном конкретном примере повышающий дискретизатор 510 выполняет повышающую дискретизацию сигнала на коэффициент 8. Повышающий дискретизатор 510 может быть выполнен с возможностью выполнять операцию повышающей дискретизации посредством заполнения нулями входного сигнала и низкочастотной фильтрации результата. Вычислитель 520 нелинейных функций выполнен с возможностью применять нелинейную функцию к сигналу с повышенной дискретизацией. Одно потенциальное преимущество функции абсолютных значений над другими нелинейными функциями для спектрального расширения, такими как возведение в квадрат, состоит в том, что не требуется нормализация энергии. В некоторых реализациях функция абсолютных значений может быть эффективно применена посредством отсечения или очистки знакового бита для каждого отсчета. Вычислитель 520 нелинейных функций также может быть выполнен с возможностью выполнять амплитудное деформирование сигнала с повышенной дискретизацией или расширенным спектром.
Понижающий дискретизатор 530 выполнен с возможностью выполнять понижающую дискретизацию спектрально расширенного результата применения нелинейной функции. Может быть желательным для понижающего дискретизатора 530 выполнить операцию полосовой фильтрации, чтобы выбрать требуемую полосу частот спектрально расширенного сигнала до понижения частоты дискретизации (например, чтобы уменьшить или устранить наложение спектров или повреждение посредством зеркальной боковой полосы частот). Также может быть желательным для понижающего дискретизатора 530 снижать частоту дискретизации за несколько стадий.
Фиг.12a - это схема, которая иллюстрирует спектр сигнала в различных точках в одном примере операции спектрального расширения, при этом шкала частоты одинаковая для всех графиков. График (a) иллюстрирует спектр одного примера узкополосного сигнала S80 возбуждения. График (b) иллюстрирует спектр после того, как над сигналом S80 выполнена повышающая дискретизация с коэффициентом 8. График (c) иллюстрирует пример расширенного спектра после применения нелинейной функции. График (d) иллюстрирует спектр после низкочастотной фильтрации. В этом примере полоса пропускания идет до верхнего частотного предела высокополосного сигнала S30 (к примеру, 7 или 8 кГц).
График (e) иллюстрирует спектр после первой стадии понижающей дискретизации, при которой частота дискретизации снижается на коэффициент 2 или 4, чтобы получить широкополосный сигнал. График (f) иллюстрирует спектр после операции высокочастотной фильтрации, чтобы выбрать высокочастотную часть расширенного сигнала, а график (g) иллюстрирует спектр после второй стадии понижающей дискретизации, на которой частота дискретизации снижается на коэффициент 2. В одном конкретном примере понижающий дискретизатор 530 выполняет высокочастотную фильтрацию и вторую стадию понижающей дискретизации посредством передачи широкополосного сигнала через высокочастотный фильтр 130 и понижающий дискретизатор 140 группы A112 фильтров (или другие структуры или процедуры, имеющие такую же характеристику), чтобы сформировать спектрально расширенный сигнал, имеющий частотный диапазон и частоту дискретизации высокополосного сигнала S30.
Как можно видеть на графике (g), понижающая дискретизация высокочастотного сигнала, показанного на графике (f), вызывает обращение спектра. В этом примере понижающий дискретизатор 530 также выполнен с возможностью выполнять операцию спектрального обращения для сигнала. График (h) иллюстрирует результат применения операции спектрального обращения, которая может быть выполнена посредством умножения сигнала на функцию ejn или последовательность (-1)n, значения которой чередуются между +1 и -1. Эта операция эквивалентна сдвигу цифрового спектра сигнала в частотной области на интервал . Следует отметить, что такой же результат также может быть получен посредством применения операций понижающей дискретизации и спектрального обращения в другом порядке. Операции повышающей дискретизации и/или понижающей дискретизации также могут быть сконфигурированы так, чтобы включать в себя передискретизацию, чтобы получить спектрально расширенный сигнал, имеющий частоту дискретизации высокополосного сигнала S30 (к примеру, 7 кГц).
Как указано выше, группы A110 и B120 фильтров могут быть реализованы так, чтобы один или оба из узкополосного и широкополосного сигнала S20, S30 имели спектрально обращенную форму на выходе группы A110 фильтров, кодировались и декодировались в спектрально обращенной форме и повторно спектрально обращались в группе B120 фильтров до вывода в широкополосном речевом сигнале S110. В этом случае, разумеется, операция спектрального обращения, проиллюстрированная на фиг. 12a, необязательна, поскольку желательно для высокополосного сигнала S120 возбуждения также иметь спектрально обращенную форму.
Различные задачи повышающей дискретизации и понижающей дискретизации операции спектрального расширения, выполняемой посредством расширителя A402 спектра, могут быть сконфигурированы и скомпонованы множеством различных способов. Например, фиг.12b - это схема, которая иллюстрирует спектр сигнала в различных точках в одном примере операции спектрального расширения, при этом шкала частоты одинаковая для всех графиков. График (a) иллюстрирует спектр одного примера узкополосного сигнала S80 возбуждения. График (b) иллюстрирует спектр после того, как над сигналом S80 выполнена повышающая дискретизация с коэффициентом 2. График (c) иллюстрирует пример расширенного спектра после применения нелинейной функции. В этом случае наложение спектров, которое может возникать при более высоких частотах, допускается.
График (d) иллюстрирует спектр после операции спектрального обращения. График (e) иллюстрирует спектр после одной стадии понижающей дискретизации, при которой частота дискретизации снижается на коэффициент 2, чтобы получить требуемый спектрально расширенный сигнал. В этом примере сигнал находится в спектрально обращенной форме и может быть использован в реализации высокополосного кодера A200, который обработал высокополосный сигнал S30 в этой форме.
Спектрально расширенный сигнал, сформированный посредством вычислителя 520 нелинейных функций, с большой долей вероятности имеет заметное падение амплитуды по мере того, как частота возрастает. Расширитель A402 спектра включает в себя блок 540 сглаживания спектра, выполненный с возможностью выполнять операцию отбеливания для сигнала с пониженной дискретизацией. Блок 540 сглаживания спектра может быть выполнен с возможностью выполнять фиксированную операцию отбеливания или выполнять адаптивную операцию отбеливания. В конкретном примере адаптивного отбеливания блок 540 сглаживания спектра включает в себя анализирующий LPC-модуль, выполненный с возможностью вычислять набор из четырех коэффициентов фильтрации из сигнала с пониженной дискретизацией, и анализирующий модуль четвертого порядка, выполненный с возможностью отбеливать сигнал согласно этим коэффициентам. Другие реализации расширителя A400 спектра включают в себя конфигурации, в которых блок 540 сглаживания спектра управляет спектрально расширенным сигналом до понижающего дискретизатора 530.
Высокополосный генератор A300 возбуждения может быть реализован так, чтобы выводить гармонически расширенный сигнал S160 в качестве высокополосного сигнала S120 возбуждения. Тем не менее, в некоторых случаях использование только гармонически расширенного сигнала в качестве высокополосного возбуждения может приводить к слышимым помехам. Гармоническая структура речи, как правило, менее резко выражена в полосе высоких частот, чем в полосе низких частот, и чрезмерное использование гармонической структуры в высокополосном сигнале возбуждения может приводить к зашумленному звуку. Эта помеха может быть особенно заметной в речевых сигналах от женщин.
Варианты осуществления включают в себя реализации высокополосного генератора A300 возбуждения, которые сконфигурированы так, чтобы смешивать гармонически расширенный сигнал S160 с сигналом шума. Как проиллюстрировано на фиг.11, высокополосный генератор A302 возбуждения включает в себя генератор 480 шума, который выполнен с возможностью формировать сигнал случайного шума. В одном примере генератор 480 шума выполнен с возможностью формировать сигнал белого псевдослучайного шума с единичной дисперсией, хотя в других вариантах осуществления сигнал шума не обязательно должен быть белым и может иметь плотность мощности, которая варьируется с частотой. Может быть желательным для генератора 480 шума быть сконфигурированным так, чтобы выводить сигнал шума как детерминированную функцию, с тем чтобы его состояние могло дублироваться в декодере. Например, генератор 480 шума может быть выполнен с возможностью выводить сигнал шума как детерминированную функцию информации, закодированной ранее в рамках того же кадра, к примеру, параметров S40 узкополосной режекторной фильтрации и/или кодированного узкополосного сигнала S50 возбуждения.
До смешения с гармонически расширенным сигналом S160 сигнал случайного шума, формируемый посредством генератора 480 шума, может амплитудно модулироваться, чтобы иметь огибающую временной области, которая аппроксимирует распределение во времени энергии узкополосного сигнала S20, высокополосного сигнала S30, узкополосного сигнала S80 возбуждения или гармонически расширенного сигнала S160. Как проиллюстрировано на фиг.11, высокополосный генератор A302 возбуждения включает в себя объединитель 470, выполненный с возможностью выполнять амплитудную модуляцию сигнала шума, сформированного посредством генератора 480 шума, согласно огибающей временной области, вычисленной посредством вычислителя 460 огибающей. Например, объединитель 470 может быть реализован как умножитель, выполненный с возможностью масштабировать вывод генератора 480 шума согласно огибающей временной области, вычисленной посредством вычислителя 460 огибающей, чтобы сформировать модулированный сигнал S170 шума.
В реализации A304 высокополосного генератора A302 возбуждения, как показано на блок-схеме по фиг.13, вычислитель 460 огибающей выполнен с возможностью вычислять огибающую гармонически расширенного сигнала S160. В реализации A306 высокополосного генератора A302 возбуждения, как показано на блок-схеме по фиг.14, вычислитель 460 огибающей выполнен с возможностью вычислять огибающую узкополосного сигнала S80 возбуждения. Дополнительные реализации высокополосного генератора A302 возбуждения могут быть сконфигурированы иным образом, чтобы добавлять шум в гармонически расширенный сигнал S160 согласно позициям узкополосных импульсов основного тона во времени.
Вычислитель 460 огибающей может быть выполнен с возможностью выполнять вычисление огибающей в качестве задачи, которая имеет последовательность подзадач. Фиг.15 иллюстрирует блок-схему последовательности операций примера T100 такой задачи. Подзадача T110 вычисляет квадрат каждого отсчета в кадре сигнала, огибающая которого должна быть смоделирована (например, узкополосного сигнала S80 возбуждения или гармонически расширенного сигнала S160), чтобы сформировать последовательность возведенных в квадрат значений. Подзадача T120 выполняет операцию сглаживания над последовательностью возведенных в квадрат значений. В одном примере подзадача T120 применяет низкочастотный IIR-фильтр первого порядка к последовательности согласно выражению:
где x - это вход фильтра, y - это выход фильтра, n - это индекс временной области, а a - это коэффициент сглаживания, имеющий значение между 0,5 и 1. Значение коэффициента сглаживания a может быть фиксированным, либо в альтернативной реализации может быть адаптивным согласно индикации шума во входном сигнале, так чтобы a было ближе к 1 при отсутствии шума и ближе к 0,5 при наличии шума. Подзадача T130 применяет функцию квадратного корня к каждому отсчету сглаженной последовательности, чтобы сформировать огибающую временной области.
Эта реализация вычислителя 460 огибающей может быть сконфигурирована так, чтобы выполнять различные подзадачи задачи T100 последовательно и/или параллельно. В дополнительных реализациях задачи T100 подзадача T110 может предваряться операцией полосы пропускания, сконфигурированной так, чтобы выбирать требуемую часть частоты сигнала, огибающая которого должна быть смоделирована, к примеру, в диапазоне 3-4 кГц.
Объединитель 490 выполнен с возможностью смешивать гармонически расширенный сигнал S160 и модулированный сигнал S170 шума, чтобы сформировать высокополосный сигнал S120 возбуждения. Реализации объединителя 490 могут быть сконфигурированы, например, так, чтобы вычислять высокополосный сигнал S120 возбуждения как сумму гармонически расширенного сигнала S160 и модулированного сигнала S170 шума. Такая реализация объединителя 490 может быть сконфигурирована так, чтобы вычислять высокополосный сигнал S120 возбуждения как взвешенную сумму посредством применения весового коэффициента к гармонически расширенному сигналу S160 и/или модулированному сигналу S170 шума до суммирования. Каждый подобный весовой коэффициент может быть вычислен согласно одному или более критериев и может быть фиксированным значением, либо альтернативно, может быть адаптивным значением, которое вычисляется на основе кадр-за-кадром или подкадр-за-подкадром.
Фиг.16 иллюстрирует блок-схему реализации 492 объединителя 490, который выполнен с возможностью вычислять высокополосный сигнал S120 возбуждения как взвешенную сумму гармонически расширенного сигнала S160 и модулированного сигнала S170 шума. Объединитель 492 выполнен с возможностью взвешивать гармонически расширенный сигнал S160 согласно весовому коэффициенту S180 гармоник, чтобы взвешивать модулированный сигнал S170 шума согласно весовому коэффициенту S190 шума и выводить высокополосный сигнал S120 возбуждения как сумму взвешенных сигналов. В этом примере объединитель 492 включает в себя вычислитель 550 весовых коэффициентов, который выполнен с возможностью вычислять весовой коэффициент S180 гармоник и весовые коэффициенты S190 шума.
Вычислитель 550 весовых коэффициентов может быть выполнен с возможностью вычислять весовые коэффициенты S180 и S190 согласно требуемому соотношению уровня гармоник к уровню шума в высокополосном сигнале S120 возбуждения. Например, может быть желательным для объединителя 492 формировать высокополосный сигнал S120 возбуждения так, чтобы иметь соотношение энергии гармоник к энергии шума аналогичным этому соотношению высокополосного сигнала S30. В некоторых реализациях вычислителя 550 весовых коэффициентов, весовые коэффициенты S180, S190 вычисляются согласно одному или более параметров, относящихся к периодичности узкополосного сигнала S20 или узкополосного остаточного сигнала (например, усиление основного тона и/или речевой режим). Такая реализация вычислителя 550 весовых коэффициентов может быть сконфигурирована так, чтобы назначать значение весовому коэффициенту S180 гармоник, которое пропорционально усилению основного тона, например, и/или назначать более высокое значение весовому коэффициенту S190 шума для сигналов невокализованной речи, чем для сигналов вокализованной речи.
В других реализациях вычислитель 550 весовых коэффициентов выполнен с возможностью вычислять значения весового коэффициента S180 гармоник и/или весового коэффициента S190 шума согласно показателю периодичности высокополосного сигнала S30. В одном таком примере вычислитель 550 весовых коэффициентов вычисляет весовой коэффициент S180 гармоник как максимальное значение коэффициента автокорреляции высокополосного сигнала S30 для текущего кадра или подкадра, где автокорреляция выполняется для диапазона поиска, который включает в себя задержку в одно запаздывание основного тона и не включает в себя задержку в нулевые отсчеты. Фиг.17 иллюстрирует пример такого диапазона поиска длиной n отсчетов, который центрирован вокруг задержки в одно запаздывание основного тона и имеет ширину не больше одного запаздывания основного тона.
Фиг.17 также иллюстрирует пример другого подхода, в котором вычислитель 550 весовых коэффициентов вычисляет показатель периодичности высокополосного сигнала S30 за несколько стадий. На первой стадии текущий кадр делится на ряд подкадров, и задержка, для которой коэффициент автокорреляции является максимальным, идентифицируется отдельно для каждого подкадра. Как упоминалось выше, автокорреляция выполняется для диапазона поиска, который включает в себя задержку в одно запаздывание основного тона и не включает в себя задержку в нулевые отсчеты.
На второй стадии задержанный кадр составляется посредством применения соответствующей идентифицированной задержки к каждому подкадру, конкатенации результирующих подкадров, чтобы составить оптимально задержанный кадр, и вычисления весового коэффициента S180 гармоник в качестве коэффициента корреляции между исходным кадром и оптимально задержанным кадром. В дополнительной альтернативе вычислитель 550 весовых коэффициентов вычисляет весовой коэффициент S180 гармоник как среднее максимальных коэффициентов автокорреляции, полученное на первой стадии для каждого подкадра. Реализации вычислителя 550 весовых коэффициентов также могут быть сконфигурированы так, чтобы масштабировать коэффициент корреляции и/или объединять его с другим значением, чтобы вычислять значение весового коэффициента S180 гармоник.
Может быть желательным для вычислителя 550 весовых коэффициентов вычислять показатель периодичности высокополосного сигнала S30 только в случаях, когда наличие периодичности в кадре указано иным образом. Например, вычислитель 550 весовых коэффициентов может быть выполнен с возможностью вычислять показатель периодичности высокополосного сигнала S30 согласно отношению между другим индикатором периодичности текущего кадра, к примеру, усилением основного тона, и пороговым значением. В одном примере вычислитель 550 весовых коэффициентов выполнен с возможностью выполнять операцию автокорреляции для высокополосного сигнала S30, только если усиление основного тона кадра (к примеру, усиление адаптивной таблицы кодирования узкополосного остатка) имеет значение более 0,5 (альтернативно, по меньшей мере, 0,5). В другом примере вычислитель 550 весовых коэффициентов выполнен с возможностью выполнять операцию автокорреляции для высокополосного сигнала S30 только для кадров, имеющих конкретные состояния речевого режима (к примеру, только для вокализованных сигналов). В этих случаях вычислитель 550 весовых коэффициентов может быть выполнен с возможностью назначать весовой коэффициент по умолчанию для кадров, имеющих другие состояния речевого режима и/или меньшие значения усиления основного тона.
Варианты осуществления включают в себя дополнительные реализации вычислителя 550 весовых коэффициентов, которые сконфигурированы так, чтобы вычислять весовые коэффициенты согласно характеристикам, отличным или в добавление к периодичности. Например, эта реализация может быть сконфигурирована так, чтобы назначать более высокое значение коэффициенту S190 усиления шума для речевых сигналов, имеющих большое запаздывание основного тона, чем для речевых сигналов, имеющих небольшое запаздывание основного тона. Другая такая реализация вычислителя 550 весовых коэффициентов сконфигурирована так, чтобы определять показатель гармоничности широкополосного речевого сигнала S10 или высокополосного сигнала S30 согласно показателю энергии сигнала в кратных значениях собственной частоты относительно энергии сигнала в других частотных компонентах.
Некоторые реализации широкополосного речевого кодера A100 сконфигурированы так, чтобы выводить индикацию периодичности или гармоничности (к примеру, однобитовый признак, указывающий то, является кадр гармоническим или негармоническим), на основе усиления основного тона и/или другого показателя периодичности или гармоничности, описанного в данном документе. В одном примере соответствующий широкополосный речевой декодер B100 использует эту индикацию для того, чтобы конфигурировать такую операцию, как вычисление весовых коэффициентов. В другом примере эта индикация используется в кодере и/или декодере при вычислении значения параметра речевого режима.
Может быть желательным для высокополосного генератора A302 возбуждения формировать высокополосный сигнал S120 возбуждения, так чтобы на энергию сигнала возбуждения практически не влияли конкретные значения весовых коэффициентов S180 и S190. В этом случае вычислитель 550 весовых коэффициентов может быть выполнен с возможностью вычислять значение весового коэффициента S180 гармоник для весового коэффициента S190 шума (или принимать это значение из запоминающего устройства либо другого элемента высокополосного кодера A200) и извлекать значение другого весового коэффициента согласно, например, такому выражению:
где Wharmonic обозначает весовой коэффициент S180 гармоник, а Wnoise обозначает весовой коэффициент S190 шума. Альтернативно - вычислитель 550 весовых коэффициентов может быть выполнен с возможностью выбирать, согласно значению показателя периодичности текущего кадра или подкадра, соответствующую одну из множества пар весовых коэффициентов S180, S190, где пары предварительно вычисляются так, чтобы удовлетворять отношению постоянства энергии, такому как выражение (2). Для реализации вычислителя 550 весовых коэффициентов, в которой наблюдается выражение (2), типичные значения весового коэффициента S180 гармоник варьируются от примерно 0,7 до примерно 1,0, а типичные значения весового коэффициента S190 шума варьируются от примерно 0,1 до примерно 0,7. Другие реализации вычислителя 550 весовых коэффициентов могут быть сконфигурированы так, чтобы функционировать согласно версии выражения (2), которая модифицирована согласно требуемому базовому взвешиванию между гармонически расширенным сигналом S160 и модулированным сигналом S170 шума.
Помехи могут возникать в синтезированном сигнале, когда разреженная таблица кодирования (таблица, записи которой большей частью являются нулевыми значениями) использована для того, чтобы вычислять квантованное представление остатка. Разреженность таблицы кодирования возникает особенно тогда, когда узкополосный сигнал кодируется с низкой скоростью передачи битов. Помехи, вызываемые разреженностью таблицы кодирования, в типичном варианте являются квазипериодическими во времени и возникают, главным образом, выше 3 кГц. Поскольку человеческий слух имеет лучшую временную разрешающую способность при более высоких частотах, эти помехи могут быть более заметны в полосе высоких частот.
Варианты осуществления включают в себя реализации высокополосного генератора A300 возбуждения, которые сконфигурированы так, чтобы выполнять устраняющую разреженность фильтрации. Фиг.18 иллюстрирует блок-схему реализации A312 высокополосного генератора A302 возбуждения, который включает в себя устраняющий разреженность фильтр 600, выполненный с возможностью фильтровать деквантованный узкополосный сигнал возбуждения, сформированный посредством обратного квантователя 450. Фиг.19 иллюстрирует блок-схему реализации A314 высокополосного генератора A302 возбуждения, который включает в себя устраняющий разреженность фильтр 600, выполненный с возможностью фильтровать спектрально расширенный сигнал, сформированный посредством расширителя A400 спектра. Фиг.20иллюстрирует блок-схему реализации A316 высокополосного генератора A302 возбуждения, который включает в себя устраняющий разреженность фильтр 600, выполненный с возможностью фильтровать вывод объединителя 490, чтобы сформировать высокополосный сигнал S120 возбуждения. Разумеется, реализации высокополосного генератора A300 возбуждения, которые комбинируют признаки любой из реализаций A304 и A306 с признаками любой из реализаций A312, A314 и A316, подразумеваются и, тем самым, явно раскрываются. Устраняющий разреженность фильтр 600 также может размещаться в расширителе A400 спектра, например, после любого из элементов 510, 520, 530 и 540 в расширителе A402 спектра. Следует особо подчеркнуть, что устраняющий разреженность фильтр 600 также может быть использован с реализациями расширителя A400 спектра, которые выполняют спектральное наложение, спектральное преобразование или гармоническое продолжение.
Устраняющий разреженность фильтр 600 может быть выполнен с возможностью изменять фазу своего входного сигнала. Например, может быть желательным для устраняющего разреженность фильтра 600 быть сконфигурированным и размещенным так, чтобы фаза высокополосного сигнала S120 возбуждения была рандомизирована или иным образом более равномерно распределена во времени. Также может быть желательным для характеристики устраняющего разреженность фильтра 600 быть более спектрально плоской, с тем чтобы спектр модуля фильтрованного сигнала не изменялся в значительной степени. В одном примере устраняющий разреженность фильтр 600 реализован как всечастотный фильтр, имеющий передаточную функцию согласно следующему выражению:
Один эффект такого фильтра может заключаться в том, чтобы распространять энергию входного сигнала так, что она более не концентрируется только в небольшом числе отсчетов.
Помехи, вызываемые разреженностью таблицы кодирования, обычно более заметны для шумоподобных сигналов, где остаток включает в себя меньше информации основного тона, а также для речи в фоновом шуме. Разреженность в типичном варианте вызывает меньше помех в случаях, если возбуждение имеет долгосрочную структуру, и фактическая модификация фазы может вызывать зашумленность в вокализованных сигналах. Таким образом, может быть желательным сконфигурировать устраняющий разреженность фильтр 600, чтобы фильтровать невокализованные сигналы и пропускать, по меньшей мере, некоторые вокализованные сигналы без изменения. Невокализованные сигналы отличаются низким усилением основного тона (к примеру, усилением квантованной узкополосной адаптивной таблицы кодирования) и наклоном спектра (к примеру, квантованным первым коэффициентом отражения), который близок к нулю или положительный, показывая спектральную огибающую, которая плоская или наклоняется вверх с повышением частоты. Типичные реализации устраняющего разреженность фильтра 600 сконфигурированы так, чтобы фильтровать невокализованные звуки (к примеру, как указано посредством значения наклона спектра), фильтровать вокализованные звуки, когда усиление основного тона ниже порогового значения (альтернативно - не превышает пороговое значение), а в противном случае пропускать сигнал без изменения.
Дополнительные реализации устраняющего разреженность фильтра 600 включают в себя два или более фильтров, которые сконфигурированы так, чтобы иметь различные максимальные углы модификации фазы (к примеру, до 180 градусов). В этом случае устраняющий разреженность фильтр 600 может быть выполнен с возможностью выбирать из этих компонентных фильтров согласно значению усиления основного тона (к примеру, усиления квантованной адаптивной таблицы кодирования или LTP), с тем чтобы больший максимальный угол модификации фазы использовался для кадров, имеющих меньшие значения усиления основного тона. Реализация устраняющего разреженность фильтра 600 также может включать в себя различные компонентные фильтры, которые сконфигурированы так, чтобы модифицировать фазу по большей или меньшей части частотного спектра, с тем чтобы фильтр, выполненный с возможностью модифицировать фазу по более широкому частотному диапазону входного сигнала, использовался для кадров, имеющих меньшие значения усиления основного тона. Для точного воспроизведения кодированного речевого сигнала может быть желательным для соотношения между уровнями высокополосной и узкополосной частей синтезированного речевого сигнала S100 быть аналогичным этому соотношению в исходном широкополосном речевом сигнале S10.
Помимо спектральной огибающей, представленной посредством параметров S60a высокополосного кодирования, высокополосный кодер A200 может быть выполнен с возможностью характеризовать высокополосный сигнал S30 посредством задания огибающей времени или усиления. Как проиллюстрировано на фиг.10, высокополосный кодер A202 включает в себя вычислитель A230 коэффициентов высокополосного усиления, который сконфигурирован и выполнен с возможностью вычислять один или более коэффициентов усиления согласно отношению между высокополосным сигналом S30 и синтезированным высокополосным сигналом S130, таким как разность или соотношение между энергиями двух сигналов в течение кадра или какой-либо его части. В других реализациях высокополосного кодера A202 вычислитель A230 высокополосного усиления может быть аналогично сконфигурирован, но выполнен с возможностью вычислять вместо этого огибающую усиления согласно данному изменяющемуся во времени отношению между высокополосным сигналом S30 и узкополосным сигналом S80 возбуждения или высокополосным сигналом S120 возбуждения.
Временные огибающие узкополосного сигнала S80 возбуждения и высокополосного сигнала S30 с большой долей вероятности аналогичны. Следовательно, кодирование огибающей усиления, которое основано на отношении между высокополосным сигналом S30 и узкополосным сигналом S80 возбуждения (или сигналом, извлеченным из него, например, высокополосным сигналом S120 возбуждения или синтезированным высокополосным сигналом S130), как правило, более эффективно, чем кодирование огибающей усиления на основе только высокополосного сигнала S30. В типичной реализации высокополосный кодер A202 выполнен с возможностью выводить квантованный индекс из восьми-двенадцати битов, который задает пять коэффициентов усиления для каждого кадра.
Вычислитель A230 коэффициентов высокополосного усиления может быть выполнен с возможностью выполнять вычисление коэффициентов усиления в качестве задачи, которая включает в себя одну или более последовательностей подзадач. Фиг.21 иллюстрирует блок-схему последовательности операций примера T200 такой задачи, которая вычисляет значение усиления для соответствующего подкадра согласно относительным энергиям высокополосного сигнала S30 и синтезированного высокополосного сигнала S130. Задачи 220a и 220b вычисляют энергии соответствующих подкадров надлежащих сигналов. Например, задачи 220a и 220b могут быть сконфигурированы так, чтобы вычислять энергию как сумму квадратов отсчетов соответствующего подкадра. Задача T230 вычисляет коэффициент усиления для подкадра как квадратный корень соотношения этих энергий. В этом примере задача T230 вычисляет коэффициент усиления как квадратный корень отношения энергии высокополосного сигнала S30 к энергии синтезированного высокополосного сигнала S130 в течение подкадра.
Может быть желательным для вычислителя A230 коэффициентов высокополосного усиления быть сконфигурированным так, чтобы вычислять энергии подкадров согласно финитной взвешивающей функции. Фиг.22 иллюстрирует блок-схему последовательности операций такой реализации T210 задачи T200 вычисления коэффициента усиления. Задача T215a применяет финитную взвешивающую функцию к высокополосному сигналу S30, а задача T215b применяет такую же финитную взвешивающую функцию к синтезированному высокополосному сигналу S130. Реализации 222a и 222b задач 220a и 220b вычисляют энергии соответствующих окон, а задача T230 вычисляет коэффициент усиления для подкадра как квадратный корень отношения энергий.
Может быть желательным применять финитную взвешивающую функцию, которая перекрывает соседние окна. Например, финитная взвешивающая функция, которая формирует коэффициенты усиления, которые могут быть применены посредством перекрывания с суммированием, может помочь снизить или устранить разрывность между подкадрами. В одном примере вычислитель A230 коэффициентов высокополосного усиления выполнен с возможностью применять трапециевидную финитную взвешивающую функцию, как показано на фиг.23a, в которой окно перекрывает каждый из двух соседних подкадров на одну миллисекунду. Фиг.23b иллюстрирует применение этой финитной взвешивающей функции к каждому из пяти подкадров 20-миллисекундного кадра. Другие реализации вычислителя A230 коэффициентов высокополосного усиления могут быть сконфигурированы так, чтобы применять финитные взвешивающие функции, имеющие другие периоды перекрывания и/или другие формы окон (к примеру, прямоугольное, Хэмминга), которые могут быть симметричными или асимметричными. Также возможно для реализации вычислителя A230 коэффициентов высокополосного усиления быть сконфигурированным так, чтобы применять различные финитные взвешивающие функции к различным подкадрам в рамках кадра и/или для кадра, чтобы включать в себя подкадры различной длины.
Без ограничения - следующие значения представлены в качестве примеров для конкретных реализаций. 20-миллисекундный кадр предполагается для этих случаев, хотя любая другая длительность может быть использована. Для высокополосного сигнала, дискретизированного при 7 кГц, каждый кадр имеет 140 отсчетов. Если такой кадр делится на пять подкадров равной длины, каждый кадр должен иметь 28 отсчетов, и окно, показанное на фиг.23a, должно иметь ширину 42 отсчета. Для высокополосного сигнала, дискретизированного при 8 кГц, каждый кадр имеет 160 отсчетов. Если такой кадр делится на пять подкадров равной длины, каждый кадр должен иметь 32 отсчета, и окно, показанное на фиг.23a, должно иметь ширину 48 отсчетов. В других реализациях подкадры любой ширины могут быть использованы, и даже возможно для реализации вычислителя A230 высокополосного усиления быть сконфигурированной так, чтобы формировать различный коэффициент усиления для каждого отсчета кадра.
Фиг.24 иллюстрирует блок-схему реализации B202 высокополосного декодера B200. Высокополосный декодер B202 включает в себя высокополосный декодер B300 возбуждения, который выполнен с возможностью формировать высокополосный сигнал S120 возбуждения на основе узкополосного сигнала S80 возбуждения. В зависимости от конкретных вариантов проектирования системы высокополосный генератор B300 возбуждения может быть реализован согласно любой из реализаций высокополосного генератора A300 возбуждения, описанных в данном документе. Типично желательно реализовать высокополосный генератор B300 возбуждения, чтобы иметь такую же характеристику, как высокополосный генератор возбуждения высокополосного кодера конкретной системы кодирования. Поскольку узкополосный декодер B110 в типичном варианте выполняет деквантование кодированного узкополосного сигнала S50 возбуждения, тем не менее, в большинстве случаев высокополосный генератор B300 возбуждения может быть реализован так, чтобы принимать узкополосный сигнал S80 возбуждения от узкополосного кодера B110, и не обязательно должен включать в себя обратный квантователь, выполненный с возможностью деквантовать кодированный узкополосный сигнал S50 возбуждения. Также можно для узкополосного декодера B110 быть реализованным так, чтобы включать в себя экземпляр устраняющего разреженность фильтра 600, выполненного с возможностью фильтрации деквантованного узкополосного сигнала возбуждения до того, как он входит в узкополосный синтезирующий фильтр, такой как фильтр 330.
Обратный квантователь 560 выполнен с возможностью деквантовать параметры S60a высокополосной фильтрации (в данном примере, до набора LSF), а преобразование 570 LSF в параметры LP-фильтрации преобразует LSF в набор коэффициентов фильтрации (например, как описано выше со ссылкой на обратный квантователь 240 и преобразование 250 узкополосного кодера A122). В других реализациях, как упоминалось выше, другие наборы коэффициентов (к примеру, коэффициентов косинусного преобразования Фурье) и/или представления коэффициентов (к примеру, ISP) могут быть использованы. Высокополосный синтезирующий фильтр B200 выполнен с возможностью формировать синтезированный высокополосный сигнал согласно высокополосному сигналу S120 возбуждения и набору коэффициентов фильтрации. Для системы, в которой высокополосный кодер включает в себя синтезирующий фильтр (к примеру, как в случае кодера A202, описанного выше), может быть желательным реализовать высокополосный синтезирующий фильтр B200 так, чтобы иметь такую же характеристику (к примеру, такую же передаточную функцию), что и характеристика синтезирующего фильтра.
Высокополосный декодер B202 также включает в себя обратный квантователь 580, выполненный с возможностью деквантовать коэффициенты S60b высокополосного усиления, и элемент 590 регулировки усиления (к примеру, умножитель или усилитель), сконфигурированный и выполненный с возможностью применять деквантованные коэффициенты усиления к синтезированному высокополосному сигналу, чтобы формировать высокополосный сигнал S100. Для случая, в котором огибающая усиления кадра задана посредством нескольких коэффициентов усиления, элемент 590 регулировки усиления может включать в себя логику, сконфигурированную так, чтобы применять коэффициенты усиления к соответствующим подкадрам, возможно, согласно финитной взвешивающей функции, которая может быть такой же или другой финитной взвешивающей функцией, как применяемая посредством вычислителя усиления (к примеру, вычислителя A230 высокополосного усиления) соответствующего высокополосного кодера. В других реализациях высокополосного кодера B202 элемент 590 регулировки усиления сконфигурирован аналогично, но выполнен с возможностью применять вместо этого деквантованные коэффициенты усиления к узкополосному сигналу S80 возбуждения или высокополосному сигналу S120 возбуждения.
Как упоминалось выше, может быть желательным получить одно состояние в высокополосном кодере и высокополосном декодере (к примеру, посредством использования деквантованных значений в ходе кодирования). Таким образом, может быть желательным в системе кодирования, согласно этой реализации, обеспечить одинаковое состояние соответствующих генераторов шума в высокополосных генераторах A300 и B300 возбуждения. Например, высокополосные генераторы A300 и B300 возбуждения этой реализации могут быть сконфигурированы так, чтобы режим генератора шума являлся детерминированной функцией от информации, уже закодированной в рамках этого кадра (к примеру, параметров S40 узкополосной фильтрации или их части и/или кодированного узкополосного сигнала S50 возбуждения или его части).
Один или более квантователей элементов, описанных в данном документе (к примеру, квантователь 230, 420 или 430), могут быть сконфигурированы так, чтобы выполнять классифицированное векторное квантование. Например, этот квантователь может быть выполнен с возможностью выбирать одну из набора таблиц кодирования на основе информации, которая уже закодирована в том же кадре в узкополосном канале и/или в высокополосном канале. Данная методика в типичном варианте предоставляет большую эффективность кодирования за счет дополнительного места для хранения таблицы кодирования.
Как описано выше со ссылкой, к примеру, на фиг.8 и 9, значительная часть периодичной структуры может оставаться в остаточном сигнале после удаления приблизительной спектральной огибающей из узкополосного речевого сигнала S20. Например, остаточный сигнал может содержать последовательность примерно периодических импульсов или выбросов во времени. Эта структура, которая в типичном варианте связана с основным тоном, с особенно большой вероятностью может возникать в вокализованных речевых сигналах. Вычисление квантованного представления узкополосного остаточного сигнала может включать в себя кодирование этой структуры основного тона согласно модели долгосрочной периодичности, как представленная посредством, например, одной или более таблиц кодирования.
Структура основного тона фактического остаточного сигнала может не совпадать точно с моделью периодичности. Например, остаточный сигнал может включать в себя небольшие дрожания фазы касательно регулярности позиций импульсов основного тона, так что расстояния между последовательными импульсами основного тона в кадре не совпадают в точности, и структура не является достаточно регулярной. Эти нерегулярности зачастую снижают эффективность кодирования.
Некоторые реализации узкополосного кодера A120 сконфигурированы так, чтобы выполнять регуляризацию структуры основного тона посредством применения адаптивного предыскажения шкалы времени к остатку до или в ходе квантования, либо посредством включения, в противном случае, адаптивного предыскажения шкалы времени в кодированный сигнал возбуждения. Например, этот кодер может быть выполнен с возможностью выбирать или иным образом вычислять степень предыскажения шкалы времени (к примеру, согласно одному или более критериев перцепционного взвешивания и/или минимизации ошибок), с тем чтобы результирующий сигнал возбуждения оптимально соответствовал модели долгосрочной периодичности. Регуляризация структуры основного тона выполняется посредством поднабора CELP-кодеров, называемых кодерами с помощью линейного предсказания с возбуждением релаксационным кодом (RCELP).
RCELP-кодер в типичном варианте выполнен с возможностью выполнять предыскажение шкалы времени как адаптивный сдвиг во времени. Сдвигом во времени может быть задержка, варьирующаяся от нескольких миллисекунд со знаком минус до нескольких миллисекунд со знаком плюс, а она обычно изменяется плавно, чтобы не допустить слышимых разрывностей. В некоторых реализациях этот кодер выполнен с возможностью применять регуляризацию кусочно-линейным методом, при котором каждый кадр или подкадр предыскажается посредством соответствующего фиксированного сдвига во времени. В других реализациях кодер выполнен с возможностью применять регуляризацию как непрерывную функцию предыскажения шкалы, с тем чтобы кадр или подкадр предыскажался согласно контуру основного тона (также называемому траекторией основного тона). В некоторых случаях (к примеру, как описано в Патентной заявке (США) 2004/0098255) кодер выполнен с возможностью включать предыскажение шкалы времени в кодированный сигнал возбуждения посредством применения сдвига к перцепционно взвешенному входному сигналу, который используется для того, чтобы вычислять кодированный сигнал возбуждения.
Кодер вычисляет кодированный сигнал возбуждения, который регуляризован и квантован, а декодер деквантует кодированный сигнал возбуждения, чтобы получить сигнал возбуждения, который используется для того, чтобы синтезировать декодированный речевой сигнал. Таким образом, декодированный выходной сигнал предоставляет такую же задержку варьирования, что и включенная в кодированный сигнал возбуждения посредством регуляризации. Типично информация, задающая величины регуляризации, не передается в декодер.
Регуляризация зачастую упрощает кодирование остаточного сигнала, что увеличивает производительность кодирования долгосрочного предсказателя и, тем самым, повышает общую эффективность кодирования, как правило, без формирования помех. Может быть желательным выполнять регуляризацию только для кадров, которые являются вокализованными. Например, узкополосный кодер A124 может быть выполнен с возможностью сдвигать только кадры или подкадры, имеющие долгосрочную структуру, такие как вокализованные сигналы. Может быть желательным даже выполнять регуляризацию только для подкадров, которые включают в себя энергию импульсов основного тона. Различные реализации RCELP-кодирования описаны в Патентах (США) номера 5704003 (Kleijn и др.) и 6879955 (Rao), а также в Патентной заявке (США) 2004/0098255 (Kovesi и др.). Существующие реализации RCELP-кодеров включают в себя усовершенствованный кодек с переменной скоростью (EVRC), описанный в Ассоциации промышленности средств связи (TIA) IS-127, и вокодер с выбираемым режимом (SMV) для Партнерского проекта третьего поколения 2 (3GPP2).
К сожалению, регуляризация может вызывать проблемы для широкополосного речевого кодера, в котором высокополосное возбуждение извлекается из кодированного узкополосного сигнала возбуждения (например, системы, включающей в себя широкополосный речевой кодер A100 и широкополосный речевой декодер B100). Вследствие его извлечения из сигнала с предыскаженной шкалой времени высокополосный сигнал возбуждения, в общем, может иметь временную зависимость, которая отличается от временной зависимости исходного высокополосного речевого сигнала. Другими словами, высокополосный сигнал возбуждения более не является синхронным с исходным высокополосным речевым сигналом.
Рассогласование по времени между предыскаженным высокополосным сигналом возбуждения и исходным высокополосным речевым сигналом может вызывать некоторые проблемы. Например, предыскаженный высокополосный сигнал возбуждения может более не предоставлять надлежащего входного возбуждения для синтезирующего фильтра, который сконфигурирован согласно параметрам фильтрации, извлеченным из исходного высокополосного речевого сигнала. Как результат - синтезированный высокополосный сигнал может содержать слышимые помехи, которые снижают воспринимаемое качество декодированного широкополосного речевого сигнала.
Рассогласование во времени также может приводить к неэффективности кодирования огибающей усиления. Как упоминалось выше, корреляция с большой долей вероятности существует между огибающими времени узкополосного сигнала S80 возбуждения и высокополосного сигнала S30. Посредством кодирования огибающей усиления высокополосного сигнала, согласно отношению между этими двумя временными огибающими, повышение эффективности кодирования может быть реализовано в сравнении с кодированием непосредственно огибающей усиления. Когда кодированный узкополосный сигнал возбуждения регуляризован, тем не менее, эта корреляция может быть ослаблена. Рассогласование во времени между узкополосным сигналом S80 возбуждения и высокополосным сигналом S30 может заставлять флуктуации появляться в коэффициентах S60b высокополосного усиления, и эффективность кодирования может упасть.
Варианты осуществления включают в себя способы широкополосного кодирования речи, которые выполняют предыскажение шкалы времени высокополосного речевого сигнала согласно предыскажению шкалы времени, включенному в соответствующий кодированный узкополосный сигнал возбуждения. Потенциальные преимущества этих способов включают в себя повышение качества декодированного широкополосного речевого сигнала и/или повышение эффективности кодирования огибающей высокополосного усиления.
Фиг.25 иллюстрирует блок-схему реализации AD10 широкополосного речевого кодера A100. Кодер AD10 включает в себя реализацию A124 узкополосного кодера A120, которая сконфигурирована так, чтобы выполнять регуляризацию в ходе вычисления кодированного узкополосного сигнала S50 возбуждения. Например, узкополосный кодер A124 может быть сконфигурирован согласно одной или более реализаций RCELP, поясненных выше.
Узкополосный кодер A124 также выполнен с возможностью выводить сигнал SD10 данных регуляризации, который задает степень применяемого предыскажения шкалы времени. Для различных случаев, в которых узкополосный кодер A124 выполнен с возможностью применять фиксированный сдвиг во времени к каждому кадру или подкадру, сигнал SD10 данных регуляризации может включать в себя последовательность значений, указывающих величину каждого сдвига во времени как целое или нецелое значение в показателях отсчетов, миллисекунд или какого-либо другого приращения времени. Для случая, когда узкополосный кодер A124 выполнен с возможностью иным образом модифицировать временную шкалу кадра или другой последовательности отсчетов (к примеру, посредством сжатия одной части и расширения другой части), сигнал SD10 информации регуляризации может включать в себя соответствующее описание модификации, например, набор параметров функции. В одном конкретном примере узкополосный кодер A124 выполнен с возможностью разделить кадр на три подкадра и вычислить фиксированный сдвиг во времени для каждого подкадра, с тем чтобы сигнал SD10 данных регуляризации указывал три величины сдвига во времени для каждого регуляризованного кадра кодированного узкополосного сигнала.
Широкополосный речевой кодер AD10 включает в себя линию D120 задержки, сконфигурированную так, чтобы продвигать вперед или замедлять части высокополосного речевого сигнала S30 согласно величинам задержки, указанным посредством входного сигнала, чтобы формировать высокополосный речевой сигнал S30a с предыскажением шкалы времени. В примере, показанном на фиг.25, линия D120 задержки сконфигурирована так, чтобы предыскажать шкалу времени высокополосного речевого сигнала S30 согласно предыскажению, указанному посредством сигнала SD10 данных регуляризации. Таким образом, такое же значение предыскажения шкалы времени, что включено в кодированный узкополосный сигнал S50 возбуждения, также применяется к соответствующей части высокополосного речевого сигнала S30 до анализа. Хотя этот пример иллюстрирует линию D120 задержки как элемент, отдельный от высокополосного кодера A200, в других реализациях линия D120 задержки размещена как часть высокополосного кодера.
Дополнительные реализации высокополосного кодера A200 могут быть сконфигурированы так, чтобы выполнять спектральный анализ (к примеру, LPC-анализ) неискаженного высокополосного речевого сигнала S30, чтобы осуществлять предыскажение шкалы времени высокополосного речевого сигнала S30 до вычисления параметров S60b высокополосного усиления. Данный кодер может включать в себя, например, реализацию линии D120 задержки, выполненную с возможностью выполнять предыскажение шкалы времени. В этих случаях, тем не менее, параметры S60a высокополосной фильтрации на основе сигнала S30 без предыскажения шкалы времени могут описывать спектральную огибающую, которая рассогласована по времени с высокополосным сигналом S120 возбуждения.
Линия D120 задержки может быть сконфигурирована согласно любой комбинации логических элементов и элементов запоминающего устройства, подходящей для применения требуемых операций предыскажения шкалы времени к высокополосному речевому сигналу S30. Например, линия D120 задержки может быть сконфигурирована так, чтобы считывать высокополосный речевой сигнал S30 из буфера согласно требуемым сдвигам во времени. Фиг.26a иллюстрирует схематичное представление такой реализации D122 линии D120 задержки, которая включает в себя сдвиговый регистр SR1. Сдвиговый регистр SR1 - это буфер некоторой длины m, который выполнен с возможностью принимать и сохранять m последних отсчетов высокополосного речевого сигнала S30. Значение m равно, по меньшей мере, сумме максимальных положительных (или "продвижение вперед") и отрицательных (или "замедление") сдвигов во времени, которые должны поддерживаться. Может быть удобным, чтобы значение m было равно длине кадра или подкадра высокополосного сигнала S30.
Линия D122 задержки сконфигурирована так, чтобы выводить высокополосный сигнал S30a с предыскаженной шкалой времени из позиции OL смещения сдвигового регистра SR1. Позиция OL смещения изменяется относительно опорной позиции (нулевой сдвиг во времени) согласно текущему сдвигу во времени, указанному, например, посредством сигнала SD10 данных регуляризации. Линия D122 задержки может быть сконфигурирована так, чтобы поддерживать одинаковые ограничения на продвижение вперед и замедление либо, альтернативно, одно ограничение большим другого так, чтобы мог выполняться больший сдвиг в одном, чем в другом направлении. Фиг.26a иллюстрирует конкретный пример, который поддерживает больший положительный, чем отрицательный сдвиг во времени. Линия D122 задержки может быть сконфигурирована так, чтобы выводить одну или более отсчетов одновременно (в зависимости, например, от ширины выходной шины).
Сдвиг во времени регуляризации, имеющий модуль более нескольких миллисекунд, может приводить к слышимым помехам в декодированном сигнале. Типично - модуль сдвига во времени регуляризации, выполняемый посредством узкополосного кодера A124, не превышает нескольких миллисекунд, так чтобы сдвиги во времени, указанные посредством сигнала SD10 данных регуляризации, ограничивались. Тем не менее, в этих случаях может быть желательным для линии D122 задержки быть сконфигурированной так, чтобы накладывать максимальное ограничение на сдвиги во времени в положительном и/или отрицательном направлении (например, чтобы предоставлять более строгое ограничение, чем налагаемое посредством узкополосного кодера).
Фиг.26b иллюстрирует схематичное представление реализации D124 линии D122 задержки, которая включает в себя сдвиговое окно SW. В этом примере позиция OL смещения ограничена сдвиговым окном SW. Хотя фиг.26b иллюстрирует случай, в котором длина буфера m превышает ширину сдвигового окна SW, линия D124 задержки также может быть реализована таким образом, чтобы ширина сдвигового окна SW равнялась m.
В других реализациях линия D120 задержки сконфигурирована так, чтобы записывать высокополосный речевой сигнал S30 в буфер согласно требуемым сдвигам во времени. Фиг.27 иллюстрирует схематичное представление такой реализации D130 линии D120 задержки, которая включает в себя два сдвиговых регистра SR2 и SR3, сконфигурированных так, чтобы принимать и сохранять высокополосный речевой сигнал S30. Линия D130 задержки сконфигурирована так, чтобы записывать кадр или подкадр из сдвигового регистра SR2 в сдвиговый регистр SR3 согласно сдвигу во времени, указанному, к примеру, посредством сигнала SD10 данных регуляризации. Сдвиговый регистр SR3 сконфигурирован как FIFO-буфер, выполненный с возможностью выводить высокополосный сигнал S30 с предыскажением шкалы времени. В конкретном примере, показанном на фиг.27, сдвиговый регистр SR2 включает в себя часть FB1 буфера кадров и часть DB буфера задержки, а сдвиговый регистр SR3 включает в себя часть FB2 буфера кадров, часть AB буфера продвижения вперед и часть буфера RB замедления. Длина буфера AB продвижения вперед и буфера RB замедления может совпадать либо один может быть длиннее другого, так что поддерживается больший сдвиг в одном направлении, чем в другом. Буфер DB задержки и часть RB буфера замедления могут быть сконфигурированы так, чтобы иметь одинаковую длину. Альтернативно - буфер DB задержки может быть короче буфера RB замедления, чтобы учитывать интервал времени, требуемый для того, чтобы передавать отсчеты из буфера FB1 кадров в сдвиговый регистр SR3, который может включать в себя другие операции обработки, такие как предыскажение отсчетов до сохранения в сдвиговый регистр SR3.
В примере по фиг.27 буфер FB1 кадров выполнен с возможностью иметь длину, равную длине одного кадра высокополосного сигнала S30. В другом примере буфер FB1 кадров выполнен с возможностью иметь длину, равную длине подкадра высокополосного сигнала S30. В этом случае линия D130 задержки может быть сконфигурирована так, чтобы включать в себя логику, чтобы применять одинаковую (к примеру, среднюю) задержку ко всем подкадрам кадра, который должен быть сдвинут. Линия D130 задержки также может включать в себя логику, чтобы усреднять значения из буфера FB1 кадров со значениями, которые должны быть перезаписаны в буфер RB замедления или буфер AB продвижения вперед. В дополнительном примере сдвиговый регистр SR3 может быть выполнен с возможностью принимать значения высокополосного сигнала S30 только посредством буфера FB1 кадров, и в этом случае линия D130 задержки может включать в себя логику, чтобы интерполировать по промежуткам между последовательными кадрами или подкадрами, записанными в сдвиговый регистр SR3. В других реализациях линия D130 задержки может быть сконфигурирована так, чтобы выполнять операцию предыскажения для отсчетов из буфера FB1 кадров до записи их в сдвиговый регистр SR3 (к примеру, согласно функции, описанной посредством сигнала SD10 данных регуляризации).
Может быть желательным для линии D120 задержки применять предыскажение шкалы времени, которое основано на, но не идентично предыскажению, заданному посредством сигнала SD10 данных регуляризации. Фиг.28 иллюстрирует блок-схему реализации AD12 широкополосного речевого кодера AD10, которая включает в себя преобразователь (средство отображения) D110 значений задержки. Преобразователь D110 значений задержки выполнен с возможностью отображать предыскажение, указанное посредством сигнала SD10 данных регуляризации, в отображенные значения SD10a задержки. Линия D120 задержки выполнена с возможностью формировать высокополосный речевой сигнал S30a с предыскажением шкалы времени согласно предыскажению, указанному посредством отображенных значений SD10a задержки.
Сдвиг во времени, применяемый посредством узкополосного кодера, как ожидается, может плавно развиваться со временем. Следовательно, в типичном варианте достаточно вычислить средний узкополосный сдвиг во времени, применяемый к подкадрам в течение кадра речи, и сдвинуть соответствующий кадр высокополосного речевого сигнала S30 согласно этому среднему. В одном таком примере преобразователь D110 значений задержки выполнен с возможностью вычислять среднее значений задержки подкадров для каждого кадра, а линия D120 задержки сконфигурирована так, чтобы применять вычисленное среднее к соответствующему кадру высокополосного сигнала S30. В других примерах среднее за более короткий период (например, два подкадра или половина кадра) или более длинный период (например, два кадра) может быть вычислено и применено. В случае, если среднее является нецелым значением отсчетов, преобразователь D110 значений задержки может быть выполнен с возможностью округлять значение до целого числа отсчетов до вывода его в линию D120 задержки.
Узкополосный кодер A124 может быть выполнен с возможностью включать в себя сдвиг во времени регуляризации нецелого числа отсчетов в кодированном узкополосном сигнале возбуждения. В этом случае может быть желательным для преобразователя D110 значений задержки быть сконфигурированным так, чтобы округлять узкополосный сдвиг во времени целым числом выборов, а для линии D120 задержки - применять округленный сдвиг во времени к высокополосному речевому сигналу S30.
В некоторых реализациях широкополосного речевого кодера AD10 частоты дискретизации узкополосного речевого сигнала S20 и широкополосного речевого сигнала S30 могут различаться. В этих случаях преобразователь D110 значений задержки может быть выполнен с возможностью корректировать величины сдвига во времени, указанные в сигнале SD10 данных регуляризации, чтобы учитывать разность между частотами дискретизации узкополосного речевого сигнала S20 (или узкополосного сигнала S80 возбуждения) и высокополосного речевого сигнала S30. Например, преобразователь D110 значений задержки может быть выполнен с возможностью масштабировать величины сдвига во времени согласно соотношению частот дискретизации. В одном конкретном примере, приведенном выше, узкополосный речевой сигнал S20 дискретизируется при 8 кГц, а высокополосный речевой сигнал S30 дискретизируется при 7 кГц. В этом случае преобразователь D110 значений задержки выполнен с возможностью умножать каждую величину задержки на 7/8. Реализации преобразователя D110 значений задержки также могут быть сконфигурированы так, чтобы выполнять эту операцию масштабирования вместе с операцией округления до целого числа и/или усреднения сдвигов во времени, описанной в данном документе.
В дополнительных реализациях линия D120 задержки сконфигурирована так, чтобы иным образом модифицировать шкалу времени кадра или другой последовательности отсчетов (к примеру, посредством сжатия одной части и расширения другой части). Например, узкополосный кодер A124 может быть выполнен с возможностью выполнять регуляризацию согласно такой функции, как контур или траектория основного тона. В этом случае сигнал SD10 данных регуляризации может включать в себя соответствующее описание функции, например, набор параметров, а линия D120 задержки может включать в себя логику, сконфигурированную так, чтобы предыскажать кадры или подкадры высокополосного речевого сигнала S30 согласно функции. В других реализациях преобразователь D110 значений задержки выполнен с возможностью усреднять, масштабировать и/или округлять функцию до того, как она применяется к высокополосному речевому сигналу S30 посредством линии D120 задержки. Например, преобразователь D110 значений задержки может быть выполнен с возможностью вычислять одно или более значений задержки согласно функции, причем каждое значение задержки включает в себя ряд отсчетов, которые затем применяются посредством линии D120 задержки, чтобы предыскажать шкалу времени одного или более соответствующих кадров или подкадров высокополосного сигнала S30.
Фиг.29 иллюстрирует блок-схему последовательности операций способа MD100 предыскажения шкалы времени высокополосного речевого сигнала согласно предыскажению шкалы времени, включенному в соответствующий кодированный узкополосный сигнал возбуждения. Задача TD100 обрабатывает широкополосный речевой сигнал, чтобы получить узкополосный речевой сигнал и высокополосный речевой сигнал. Например, задача TD100 может быть сконфигурирована так, чтобы фильтровать широкополосный речевой сигнал с помощью группы фильтров, имеющей низкочастотные и высокочастотные фильтры, например, реализации группы фильтров A110. Задача TD200 кодирует узкополосный речевой сигнал, по меньшей мере, в кодированный узкополосный сигнал возбуждения и множество параметров узкополосной фильтрации. Кодированный узкополосный сигнал возбуждения и/или параметры фильтрации могут быть квантованы, и кодированный узкополосный речевой сигнал также может включать в себя другие параметры, например, параметр речевого режима. Задача TD200 также включает в себя предыскажение шкалы времени в кодированном узкополосном сигнале возбуждения.
Задача TD300 формирует высокополосный сигнал возбуждения на основе узкополосного сигнала возбуждения. В этом случае узкополосный сигнал возбуждения основан на кодированном узкополосном сигнале возбуждения. Согласно, по меньшей мере, высокополосному сигналу возбуждения, задача TD400 кодирует высокополосный речевой сигнал, по меньшей мере, во множество параметров высокополосной фильтрации. Например, задача TD400 может быть сконфигурирована так, чтобы кодировать высокополосный речевой сигнал, по меньшей мере, во множество квантованных LSF. Задача TD500 применяет сдвиг во времени к высокополосному речевому сигналу, который основан на информации, связанной с предыскажением шкалы времени, включенной в кодированный узкополосный сигнал возбуждения.
Задача TD400 может быть сконфигурирована так, чтобы выполнять спектральный анализ (например, LPC-анализ) высокополосного речевого сигнала и/или вычислять огибающую усиления высокополосного речевого сигнала. В этих случаях задача TD500 может быть сконфигурирована так, чтобы применять сдвиг во времени к высокополосному речевому сигналу до анализа и/или вычисления огибающей усиления.
Другие реализации широкополосного речевого кодера A100 сконфигурированы так, чтобы выполнять противоположное предыскажение шкалы времени высокополосного сигнала S120 возбуждения, вызванное посредством предыскажения шкалы времени, включенного в кодированный узкополосный сигнал возбуждения. Например, высокополосный генератор A300 возбуждения может быть реализован так, чтобы включать в себя реализацию линии D120 задержки, которая сконфигурирована так, чтобы принимать сигнал SD10 данных регуляризации или преобразованные значения SD10a задержки, или применять соответствующий обратный сдвиг во времени к узкополосному сигналу S80 возбуждения и/или к последующему сигналу на основе него, такому как гармонически расширенный сигнал S160 или высокополосный сигнал S120 возбуждения.
Дополнительные реализации широкополосного речевого кодера могут быть сконфигурированы так, чтобы кодировать узкополосный речевой сигнал S20 и высокополосный речевой сигнал S30 независимо друг от друга, с тем чтобы высокополосный речевой сигнал S30 кодировался как представление высокополосной спектральной огибающей и высокополосного сигнала возбуждения. Эта реализация может быть сконфигурирована так, чтобы выполнять предыскажение шкалы времени высокополосного остаточного сигнала или иным образом включать предыскажение шкалы времени в кодированный высокополосный сигнал возбуждения согласно информации, связанной с предыскажением шкалы времени, включенной в кодированный узкополосный сигнал возбуждения. Например, высокополосный кодер может включать в себя реализацию линии D120 задержки и/или преобразователь D110 значений задержки, описанные в данном документе, которые сконфигурированы так, чтобы применять предыскажение шкалы времени к высокополосному остаточному сигналу. Потенциальные преимущества этой операции включают в себя более эффективное кодирование высокополосного остаточного сигнала и лучшее совпадение между синтезированными узкополосным и высокополосным речевыми сигналами.
Как упоминалось выше, варианты осуществления, описанные в данном документе, включают в себя реализации, которые могут быть использованы для того, чтобы выполнять встроенное кодирование, поддерживая совместимость с узкополосными системами и устраняя потребность в перекодировке. Поддержка высокополосного кодирования также может служить для того, чтобы проводить различия на основе затрат между микросхемами, наборами микросхем, устройствами и/или сетями, имеющими широкополосную поддержку с обратной совместимостью, а также имеющими только узкополосную поддержку. Поддержка высокополосного кодирования, описанная в данном документе, также может быть использована в связи с методикой поддержки низкополосного кодирования, и система, способ либо устройство, согласно этому варианту осуществления, могут поддерживать кодирование частотных компонентов, например, от примерно 50 или 100 Гц до примерно 7 или 8 кГц.
Как упоминалось выше, добавление высокополосной поддержки в речевой кодер позволяет повысить разборчивость, особенно в отношении различения фрикативных звуков. Хотя это различение обычно может быть извлечено слушающей стороной из конкретного содержимого, поддержка полосы высоких частот может выступать в качестве разрешающего признака в распознавании речи и других приложениях машинной интерпретации, например, систем автоматической речевой навигации по меню и/или автоматической обработки вызовов.
Устройство, согласно варианту осуществления, может быть встроено в портативное устройство мобильной связи, например, сотовый телефон или личное цифровое устройство (PDA). Альтернативно - это устройство может быть включено в другие устройства связи, такие как телефонная трубка VoIP, персональная вычислительная машина, сконфигурированная так, чтобы поддерживать VoIP-связь, либо сетевое устройство, сконфигурированное так, чтобы маршрутизировать телефонную или VoIP-связь. Например, устройство, согласно варианту осуществления, может быть реализовано в микросхеме или наборе микросхем для устройства связи. В зависимости от конкретного варианта применения, это устройство также может включать в себя такие признаки, как аналогово-цифровое и/или цифро-аналоговое преобразование речевого сигнала, схема для осуществления усиления и/или других операций обработки речевого сигнала и/или радиочастотная схема для передачи и/или приема кодированного речевого сигнала.
Явно предполагается и раскрывается, что варианты осуществления могут включать в себя и/или быть использованы с одним или более других признаков, раскрытых в Предварительных патентных заявках (США) номера 60/667901 и 60/673965, для которых данная заявка притязает на приоритет. Эти признаки включают в себя удаление выбросов высокой энергии короткой длительности, которые возникают в полосе высоких частот и практически отсутствуют в полосе узких частот. Такие признаки включают в себя фиксированное или адаптивное сглаживание представлений коэффициентов, например, высокополосных LSF. Такие признаки включают в себя фиксированное или адаптивное формирование шума, ассоциативно связанного с квантованием представлений коэффициентов, таких как LSF. Такие признаки также включают в себя фиксированное или адаптивное сглаживание огибающей усиления и адаптивное ослабление огибающей усиления.
Вышеприведенное представление описанных вариантов осуществления предоставлено для того, чтобы дать возможность любому специалисту в данной области техники создавать или использовать настоящее изобретение. Различные модификации в этих вариантах осуществления допускаются, а представленные в данном документе общие принципы могут быть применены также к другим вариантам осуществления. Например, вариант осуществления может быть реализован частично или как проводная схема, как схемная конфигурация, изготовленная в специализированной интегральной схеме, либо как микропрограммное обеспечение, загруженное в энергонезависимое запоминающее устройство, либо программное приложение, загруженное с или в носитель хранения данных в качестве машиночитаемого кода, причем таким кодом являются инструкции, приводимые в исполнение посредством матрицы логических элементов, такой как микропроцессор или другой блок обработки цифровых сигналов. Носителем хранения данных может быть матрица элементов хранения, например, полупроводниковое запоминающее устройство (которое может включать в себя, без ограничений, динамическое или статическое ОЗУ (оперативное запоминающее устройство), ПЗУ (постоянное запоминающее устройство) и/или флэш-ОЗУ) либо сегнетоэлектрическое, магниторезистивное, на аморфных полупроводниках, полимерное или фазосдвигающее запоминающее устройство; либо дисковый носитель, например, магнитный или оптический диск. Термин "программное обеспечение" должен пониматься так, чтобы включать в себя исходный код, код языка ассемблера, машинный код, двоичный код, микропрограммное обеспечение, макрокод, микрокод, любой один или более наборов или последовательностей инструкций, приводимых в исполнение посредством матрицы логических элементов, и любое сочетание вышеозначенных примеров.
Различные элементы реализаций высокополосных генераторов A300 и B300 возбуждения, высокополосный кодер A200, высокополосный декодер B200, широкополосный речевой кодер A100 и широкополосный речевой декодер B100 могут быть реализованы как электронные и/или оптические устройства, постоянно размещающиеся, например, на одной микросхеме или на двух или более микросхемах в наборе микросхем, хотя другие компоновки без ограничения также подразумеваются. Один или более элементов такого устройства могут быть реализованы полностью или частично как один или более наборов инструкций, выполненных с возможностью приводиться в исполнение на одной или более фиксированных или программируемых матриц логических элементов (к примеру, транзисторов, логических схем), таких как микропроцессоры, встроенные процессоры, IP-сердечники, процессоры цифровых сигналов, FPGA (программируемые пользователем матричные БИС), ASSP (специализированные стандартные продукты) и ASIC (специализированные интегрированные схемы). Также возможно для одного или более таких элементов иметь общую структуру, к примеру, процессор, используемый для того, чтобы приводить в исполнение части кода, соответствующие различным элементам в различные моменты времени, набор инструкций, приводимый в исполнение для того, чтобы выполнять задачи, соответствующие различным элементам в различные моменты времени, или компоновку электронных и/или оптических устройств, выполняющих операции для различных элементов в различные моменты времени. Более того, возможно для одного или более таких элементов выполнять задачи или приводить в исполнение другие наборы инструкций, которые не связаны непосредственно с работой устройства, например, задачу, связанную с другой операцией устройства или системы, в которую встроено устройство.
Фиг.30 иллюстрирует блок-схему последовательности операций способа M100, согласно варианту осуществления, кодирования высокополосной части речевого сигнала, имеющего узкополосную часть и высокополосную часть. Задача X100 вычисляет набор параметров фильтрации, которые характеризуют спектральную огибающую высокополосной части. Задача X200 вычисляет спектрально расширенный сигнал посредством применения нелинейной функции к сигналу, извлеченному из узкополосной части. Задача X300 формирует синтезированный высокополосный сигнал согласно (A) набору параметров фильтрации и (B) высокополосному сигналу возбуждения на основе спектрально расширенного сигнала. Задача X400 вычисляет спектральную огибающую на основе отношения между (C) энергией высокочастотной части и (D) энергией сигнала, извлеченного из узкополосной части.
Фиг.31a иллюстрирует блок-схему последовательности операций способа M200 формирования высокополосного сигнала возбуждения согласно варианту осуществления. Задача Y100 вычисляет гармонически расширенный сигнал посредством применения нелинейной функции к узкополосному сигналу возбуждения, извлеченному из узкополосной части речевого сигнала. Задача Y200 смешивает гармонически расширенный сигнал с модулированным сигналом шума, чтобы сформировать высокополосный сигнал возбуждения. Фиг.31b иллюстрирует блок-схему последовательности операций способа M210 формирования высокополосного сигнала возбуждения согласно другому варианту осуществления, включающему в себя задачи Y300 и Y400. Задача Y300 вычисляет огибающую временной области согласно энергии во времени одного из узкополосного сигнала возбуждения и гармонически расширенного сигнала. Задача Y400 модулирует сигнал шума согласно огибающей временной области, чтобы сформировать модулированный сигнал шума.
Фиг.32 иллюстрирует блок-схему последовательности операций способа M300, согласно варианту осуществления, декодирования высокополосной части речевого сигнала, имеющего узкополосную часть и высокополосную часть. Задача Z100 принимает набор параметров фильтрации, которые характеризуют спектральную огибающую высокополосной части, и набор коэффициентов усиления, которые характеризуют временную огибающую высокополосной части. Задача Z200 вычисляет спектрально расширенный сигнал посредством применения нелинейной функции к сигналу, извлеченному из узкополосной части. Задача Z300 формирует синтезированный высокополосный сигнал согласно (A) набору параметров фильтрации и (B) высокополосному сигналу возбуждения на основе спектрально расширенного сигнала. Задача Z400 модулирует огибающую усиления синтезированного высокополосного сигнала на основе набора коэффициентов усиления. Например, задача Z400 может быть сконфигурирована так, чтобы модулировать огибающую усиления синтезированного высокополосного сигнала посредством применения набора коэффициентов усиления к сигналу возбуждения, извлеченному из узкополосной части, к спектрально расширенному сигналу, к высокополосному сигналу возбуждения или к синтезированному высокополосному сигналу.
Варианты осуществления также включают в себя дополнительные способы речевого кодирования, шифрования и декодирования как явно раскрытые в данном документе, к примеру, посредством описания структурных вариантов осуществления, сконфигурированных так, чтобы выполнять эти способы. Каждый из этих способов также может быть материально осуществлен (например, на одном или более носителей хранения данных, перечисленных выше) как один или более наборов инструкций, читаемых и/или приводимых в исполнение посредством машины, включающей в себя матрицу логических элементов (к примеру, процессор, микропроцессор, микроконтроллер или другой конечный автомат). Таким образом, настоящее изобретение не предназначено для того, чтобы быть ограниченным проиллюстрированными выше вариантами осуществления, а наоборот, должно допускать наиболее широкую область применения, согласованную с принципами и новыми признаками, раскрытыми каким-либо образом в данном документе, в том числе в прилагаемой зарегистрированной формуле изобретения, которая составляет часть исходной заявки.
Класс G10L21/04 временное сжатие или расширение