системы, способы и устройства для устраняющей разреженность фильтрации
Классы МПК: | G01L21/02 компрессионные с камерой, где происходит сжатие газа, давление которого подлежит измерению |
Автор(ы): | ВОС Коэн Бернард (US), КАНДХАДАИ Анантападманабхан А. (US) |
Патентообладатель(и): | КВЭЛКОММ ИНКОРПОРЕЙТЕД (US) |
Приоритеты: |
подача заявки:
2006-04-03 публикация патента:
27.02.2011 |
Изобретение относится к обработке сигналов. В одном варианте осуществления способ формирования сигнала возбуждения полосы верхних частот включает в себя формирование спектрально расширенного сигнала посредством расширения спектра сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот; и выполнение устраняющей разреженность фильтрации сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот. В этом способе сигнал возбуждения полосы верхних частот основан на спектрально расширенном сигнале, и сигнал возбуждения полосы верхних частот основан на результате выполнения устраняющей разреженность фильтрации. Технический результат - обеспечение расширения узкополосного речевого сигнала для поддержания передачи и/или хранения широкополосных речевых сигналов при увеличении пропускной способности. 8 н. и 42 з.п. ф-лы, 32 ил.
Формула изобретения
1. Способ формирования сигнала возбуждения полосы верхних частот, при этом упомянутый способ содержит этапы, на которых
выполняют устраняющую разреженность фильтрацию сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот,
при этом сигнал возбуждения полосы верхних частот основан на результате выполнения упомянутой устраняющей разреженность фильтрации.
2. Способ по п.1, причем упомянутый сигнал, подвергающийся устраняющей разреженность фильтрации, является спектрально расширенным сигналом, основанным на кодированном сигнале возбуждения полосы нижних частот.
3. Способ по п.1, в котором упомянутое выполнение устраняющей разреженность фильтрации сигнала включает в себя выполнение операции фильтрации для сигнала согласно всечастотной передаточной функции.
4. Способ по п.1, в котором упомянутое выполнение устраняющей разреженность фильтрации сигнала включает в себя изменение фазового спектра сигнала без значительной модификации амплитудного спектра сигнала.
5. Способ по п.1, содержащий выполнение, по меньшей мере, одного из (i) кодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот и (ii) декодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот.
6. Способ формирования сигнала возбуждения верхних частот, при этом упомянутый способ содержит этапы, на которых формируют спектрально расширенный сигнал посредством расширения спектра сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот, при этом сигнал возбуждения полосы верхних частот основан на спектрально расширенном сигнале.
7. Способ по п.6, содержащий этап, на котором принимают решение о том, следует ли выполнять устраняющую разреженность фильтрацию спектрально расширенного сигнала на основе значения, по меньшей мере, одного из параметра наклона спектра, параметра усиления основного тона и параметра речевого режима.
8. Способ по п.6, в котором упомянутое формирование спектрально расширенного сигнала содержит гармоническое расширение спектра сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот, чтобы получить спектрально расширенный сигнал.
9. Способ по п.6, в котором упомянутое формирование спектрально расширенного сигнала содержит применение нелинейной функции к сигналу, который основан на кодированном сигнале возбуждения полосы нижних частот, чтобы получить спектрально расширенный сигнал.
10. Способ по п.9, в котором нелинейная функция содержит, по меньшей мере, одно из функции абсолютного значения, функции возведения в квадрат и функции ограничения.
11. Способ по п.6, содержащий смешивание сигнала, который основан на спектрально расширенном сигнале, с модулированным сигналом шума, причем сигнал возбуждения полосы верхних частот основан на смешанном сигнале.
12. Способ по п.11, в котором упомянутое смешивание включает в себя вычисление взвешенной суммы модулированного сигнала шума и сигнала, который основан на спектрально расширенном сигнале, при этом сигнал возбуждения полосы верхних частот основан на взвешенной сумме.
13. Способ по п.11, в котором упомянутый модулированный сигнал шума основан на результате модуляции сигнала шума согласно огибающей временной области сигнала на основе, по меньшей мере, одного из кодированного сигнала возбуждения полосы нижних частот и спектрально расширенного сигнала.
14. Способ по п.13, содержащий формирование сигнала шума согласно детерминированной функции от информации в кодированном речевом сигнале.
15. Способ по п.6, в котором упомянутое формирование спектрально расширенного сигнала включает в себя гармоническое расширение спектра сигнала с повышенной дискретизацией, который основан на кодированном сигнале возбуждения полосы нижних частот.
16. Способ по п.6, содержащий выполнение, по меньшей мере, одного из (А) спектрального сглаживания спектрально расширенного сигнала и (В) спектрального сглаживания сигнала возбуждения полосы верхних частот.
17. Способ по п.16, в котором упомянутое спектральное сглаживание содержит этапы, на которых
вычисляют множество коэффициентов фильтрации на основе сигнала, который должен быть спектрально сглажен; и
фильтруют сигнал, который должен быть спектрально сглажен, с помощью отбеливающего фильтра, сконфигурированного согласно множеству коэффициентов фильтрации.
18. Способ по п.17, в котором упомянутое вычисление множества коэффициентов фильтрации включает в себя выполнение анализа с линейным предсказанием сигнала, который должен быть спектрально сглажен.
19. Способ по п.6, содержащий выполнение, по меньшей мере, одного из (i) кодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот и (ii) декодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот.
20. Носитель хранения данных для использования совместно с модулем цифровой обработки сигналов, причем упомянутый носитель хранения данных содержит машиноисполняемые инструкции, побуждающие модуль цифровой обработки сигналов выполнять способ формирования сигналов по п.1.
21. Носитель хранения данных для использования совместно с модулем цифровой обработки сигналов, причем упомянутый носитель хранения данных содержит машиноисполняемые инструкции, побуждающие модуль цифровой обработки сигналов выполнять способ формирования сигналов по п.6.
22. Устройство для формирования сигнала возбуждения полосы верхних частот, содержащее устраняющий разреженность фильтр, выполненный с возможностью фильтровать сигнал, который основан на кодированном сигнале возбуждения полосы нижних частот, при этом сигнал возбуждения полосы верхних частот основан на выводе упомянутого устраняющего разреженность фильтра.
23. Устройство по п.22, дополнительно содержащее расширитель спектра для спектрального расширения сигнала на основе кодированного сигнала возбуждения полосы нижних частот, причем упомянутый устраняющий разреженность фильтр выполнен с возможностью фильтровать спектрально расширенный сигнал.
24. Устройство по п.22, в котором упомянутый устраняющий разреженность фильтр выполнен с возможностью фильтровать сигнал согласно всечастотной передаточной функции.
25. Устройство по п.22, в котором упомянутый устраняющий разреженность фильтр выполнен с возможностью изменять фазовый спектр сигнала без значительной модификации амплитудного спектра сигнала.
26. Устройство по п.22, в котором упомянутый устраняющий разреженность фильтр включает в себя логику принятия решений, сконфигурированную для принятия решения о том, следует ли фильтровать сигнал, который основан на кодированном сигнале возбуждения полосы нижних частот,
причем упомянутая логика принятия решений сконфигурирована для принятия решения на основе значения, по меньшей мере, одного из параметра наклона спектра, параметра усиления основного тона и параметра речевого режима.
27. Устройство по п.22, содержащее, по меньшей мере, одно из (i) речевого кодера полосы верхних частот, сконфигурированного для кодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот, и (ii) речевого декодера полосы верхних частот, сконфигурированного для декодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот.
28. Устройство по п.22, выполненное в виде сотового телефона.
29. Устройство по п.22, содержащее устройство, сконфигурированное для передачи множества пакетов, совместимых с версией Интернет-протокола, при этом множество пакетов описывает узкополосный сигнал возбуждения.
30. Устройство по п.22, содержащее устройство, сконфигурированное для приема множества пакетов, совместимых с версией Интернет-протокола, при этом множество пакетов описывает узкополосный сигнал возбуждения.
31. Устройство для формирования сигнала возбуждения полосы верхних частот, содержащее расширитель спектра, выполненный с возможностью формировать спектрально расширенный сигнал посредством расширения спектра сигнала, который основан на кодировании сигнала возбуждения полосы нижних частот, при этом сигнал возбуждения полосы верхних частот основан на спектрально расширенном сигнале.
32. Устройство по п.31, в котором упомянутый расширитель спектра выполнен с возможностью гармонически расширять спектр сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот, чтобы получить спектрально расширенный сигнал.
33. Устройство по п.31, в котором упомянутый расширитель спектра выполнен с возможностью применять нелинейную функцию к сигналу, который основан на кодированном сигнале возбуждения полосы нижних частот, чтобы получить спектрально расширенный сигнал.
34. Устройство по п.33, в котором нелинейная функция содержит, по меньшей мере, одно из функции абсолютного значения, функции возведения в квадрат и функции отсечения.
35. Устройство по п.31, содержащее объединитель, выполненный с возможностью смешивать сигнал, который основан на спектрально расширенном сигнале, с модулированным сигналом шума, причем сигнал возбуждения полосы верхних частот основан на выходном сигнале из упомянутого объединителя.
36. Устройство по п.35, в котором упомянутый объединитель выполнен с возможностью вычислять взвешенную сумму модулированного сигнала шума и сигнала, который основан на спектрально расширенном сигнале, при этом сигнал возбуждения полосы верхних частот основан на взвешенной сумме.
37. Устройство по п.35, содержащее второй объединитель, выполненный с возможностью модулировать сигнал шума согласно огибающей временной области сигнала на основе, по меньшей мере, одного из кодированного сигнала возбуждения полосы нижних частот и спектрально расширенного сигнала,
при этом модулированный сигнал шума основан на выводе упомянутого второго объединителя.
38. Устройство по п.37, содержащее генератор шума, выполненный с возможностью формировать сигнал шума согласно детерминированной функции от информации в кодированном речевом сигнале.
39. Устройство по п.31, в котором упомянутый расширитель спектра выполнен с возможностью гармонически расширять спектр сигнала с повышенной дискретизацией, который основан на кодированном сигнале возбуждения полосы нижних частот.
40. Устройство по п.31, содержащее блок сглаживания спектра, выполненный с возможностью спектрально сглаживать, по меньшей мере, одно из спектрально расширенного сигнала и сигнала возбуждения полосы верхних частот.
41. Устройство по п.40, в котором упомянутый блок сглаживания спектра выполнен с возможностью вычислять множество коэффициентов фильтрации на основе сигнала, который должен быть спектрально сглажен, и фильтровать сигнал, который должен быть спектрально сглажен, с помощью отбеливающего фильтра, сконфигурированного согласно множеству коэффициентов фильтрации.
42. Устройство по п.41, в котором упомянутый блок сглаживания спектра выполнен с возможностью вычислять множество коэффициентов фильтрации на основе анализа с линейным предсказанием сигнала, который должен быть спектрально сглажен.
43. Устройство по п.31, содержащее, по меньшей мере, одно из (i) речевого кодера полосы верхних частот, сконфигурированного для кодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот, и (ii) речевого декодера полосы верхних частот, сконфигурированного для декодирования речевого сигнала полосы верхних частот согласно сигналу возбуждения полосы верхних частот.
44. Устройство по п.31, выполненное в виде сотового телефона.
45. Устройство по п.31, содержащее устройство, сконфигурированное для передачи множества пакетов, совместимых с версией Интернет-протокола, при этом множество пакетов описывает узкополосный сигнал возбуждения.
46. Устройство по п.31, содержащее устройство, сконфигурированное для приема множества пакетов, совместимых с версией Интернет-протокола, при этом множество пакетов описывает узкополосный сигнал возбуждения.
47. Устройство для формирования сигала возбуждения полосы верхних частот, содержащее средство выполнения устраняющий разреженность фильтрации, выполненное с возможностью фильтровать сигнал, который основан на кодированном сигнале возбуждения полосы нижних частот, при этом сигнал возбуждения полосы верхних частот основан на выводе упомянутого средства выполнения, устраняющего разреженность фильтрации.
48. Устройство по п.47, выполненное в виде сотового телефона.
49. Устройство для формирования сигнала возбуждения полосы верхних частот, содержащее средство формирования спектрально расширенного сигнала посредством расширения спектра сигнала, который основан на кодированном сигнале возбуждения полосы нижних частот, при этом сигнал возбуждения полосы верхних частот основан на спектрально расширенном сигнале.
50. Устройство по п.49, выполненное в виде сотового телефона.
Описание изобретения к патенту
Родственная заявка
Данная заявка испрашивает приоритет Предварительной патентной заявки США номер 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 возбуждения полосы верхних частот, который также имеет спектрально обращенную форму.
Фиг. 4в иллюстрирует блок-схему реализации B124 гребенки B12 фильтров, которая выполняет функциональный эквивалент операций повышающей дискретизации и высокочастотной фильтрации, используя набор из интерполяции, повторной дискретизации и других операций. Гребенка 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).
Желательно, чтобы узкополосный кодер А120 формировал кодированный узкополосный сигнал возбуждения согласно тем же параметрам фильтрации, которые доступны для соответствующего узкополосного декодера. Таким образом, результирующий кодированный узкополосный сигнал возбуждения может уже в некоторой степени учитывать неидеальности в этих значениях параметров, например, ошибку квантования. Следовательно, желательно конфигурировать отбеливающий фильтр с использованием тех же значений коэффициентов, что и доступные в кодере. В базовом примере кодера 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 усиления полосы верхних частот. Генератор А300 возбуждения полосы верхних частот извлекает сигнал S120 возбуждения полосы верхних частот из кодированного узкополосного сигнала S50 возбуждения. Анализирующий модуль A210 формирует набор значений параметров, которые характеризуют спектральную огибающую сигнала S30 полосы верхних частот. В данном конкретном примере анализирующий модуль A210 выполнен с возможностью выполнять LPC-анализ, чтобы формировать набор коэффициентов LP-фильтрации для каждого кадра сигнала S30 полосы верхних частот. Преобразователь 410 коэффициентов фильтрации с линейным предсказанием в LSF преобразует набор коэффициентов LP-фильтрации в соответствующий набор LSF. Как указано выше со ссылкой на анализирующий модуль 210 и преобразователь 220, анализирующий модуль A210 и/или преобразователь 410 могут быть сконфигурированы так, чтобы использовать другие наборы коэффициентов (к примеру, коэффициентов косинусного преобразования Фурье) и/или представления коэффициентов (к примеру, ISP).
Квантователь 420 выполнен с возможностью квантовать набор LSF полосы верхних частот (или другого представления коэффициентов, например, ISP), а кодер A102 полосы верхних частот выполнен с возможностью выводить результат этого квантования в качестве параметров 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 битов на кадр для высококачественного воспроизведения временной огибающей. В другом конкретном примере анализирующий модуль А210 выводит набор из LSF на кадр.
Некоторые реализации кодера А200 полосы верхних частот сконфигурированы так, чтобы формировать сигнал S120 возбуждения полосы верхних частот посредством формирования сигнала случайного шума, имеющего частотные компоненты полосы верхних частот, и амплитудной модуляции сигнала шума согласно огибающей временной области узкополосного сигнала S20, узкополосного сигнала S80 возбуждения или сигнала S30 полосы верхних частот. Хотя этот основанный на шуме способ может формировать достаточные результаты для невокализованных звуков, тем не менее, он может не подходить для вокализованных звуков, остатки которых обычно гармонические, и, следовательно, имеют некоторую периодическую структуру.
Генератор А300 возбуждения полосы верхних частот выполнен с возможностью формировать сигнал 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) иллюстрирует результат применения операции спектрального обращения, которая может быть выполнена посредством умножения сигнала на функцию еjn или последовательность (-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-фильтр первого порядка к последовательности согласно выражению:
y(n)=ax(n)+(1-a)y(n-1), (1)
где 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 гармоник и весовые коэффициенты 190 шума.
Вычислитель 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 )2+(Wnoise)2 =1, (2)
где Wharmonic обозначает весовой коэффициент S180 гармоник, а W noise обозначает весовой коэффициент 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 может быть также выполнен в составе расширителя А400 спектра: например, после любого из элементов 510, 520, 530 и 540 в расширителе А402 спектра. Следует особо подчеркнуть, что устраняющий разреженность фильтр 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 может модулировать огибающую усиления синтезированного сигнала полосы верхних частот посредством применения набора коэффициентов усиления к сигналу возбуждения, извлеченному из узкополосной части, к спектрально расширенному сигналу, к сигналу возбуждения полосы верхних частот или к синтезированному сигналу полосы верхних частот.
Варианты осуществления также включают в себя дополнительные способы речевого кодирования, шифрования и декодирования как явно раскрытые в данном документе, к примеру, посредством описания структурных вариантов осуществления, сконфигурированных для выполнения этих способов. Каждый из этих способов также может быть материально осуществлен (например, на одном или более носителей хранения данных, перечисленных выше) как один или более наборов инструкций, читаемых и/или приводимых в исполнение посредством машины, включающей в себя матрицу логических элементов (к примеру, процессор, микропроцессор, микроконтроллер или другой конечный автомат). Таким образом, настоящее изобретение не предназначено для ограничения проиллюстрированными выше вариантами осуществления, а должно соответствовать самому широкому объему, согласованному с принципами и новыми признаками, раскрытыми каким-либо образом в данном документе, в том числе в прилагаемой формуле изобретения.