СИСТЕМЫ, СПОСОБЫ И УСТРОЙСТВО ДЛЯ ШИРОКОПОЛОСНОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ НЕАКТИВНЫХ КАДРОВ
SYSTEMS, METHODS AND DEVICE FOR WIDEBAND CODING AND DECODING OF INACTIVE FRAMES

Родственные Заявки
Данная заявка притязает на приоритет предварительной патентной заявки США №60/834,688, поданной 31 июля 2006 г. и озаглавленной "UPPER BAND DTX SCHEME".
Область техники
Это раскрытие относится к обработке речевых сигналов.
Уровень техники
Передача голоса посредством цифровых технологий получила широкое распространение, в частности, в телефонии дальнего действия, телефонии с коммутацией пакетов, например по протоколу Voice over IP (также именуемому VoIP, где IP обозначает Интернет-протокол), и в цифровой радиотелефонии, например сотовой телефонии. Вследствие такого распространения возникла потребность в сокращении объема информации, используемой для переноса речевой передачи по каналу связи, с одновременным поддержанием воспринимаемого качества реконструированной речи.
Устройства, которые способны сжимать речь путем извлечения параметров, которые относятся к модели генерации человеческой речи, называются "речевыми кодерами". Речевой кодер обычно включает в себя кодер и декодер. Кодер обычно делит входной речевой сигнал (цифровой сигнал, представляющий аудиоинформацию) на сегменты времени, именуемые "кадрами", анализирует каждый кадр для извлечения определенных нужных параметров и квантует параметры в кодированный кадр. Кодированные кадры передаются по каналу связи (т.е. проводному или беспроводному сетевому соединению) на приемник, который включает в себя декодер. Декодер принимает и обрабатывает кодированные кадры, деквантует их для создания параметров и воссоздает речевые кадры с использованием деквантованных параметров.
При типичном разговоре каждый собеседник молчит в течение около шестидесяти процентов времени. Речевые кодеры обычно способны отличать кадры речевого сигнала, которые содержат речь (“активные кадры”), от кадров речевого сигнала, которые содержат только тишину или фоновый шум (“неактивные кадры”). Такой кодер может быть способен использовать разные режимы кодирования и/или скорости для кодирования активных и неактивных кадров. Например, речевые кодеры обычно способны использовать меньше битов для кодирования неактивного кадра, чем для кодирования активного кадра. Речевой кодер может использовать более низкую битовую скорость для неактивных кадров для поддержки переноса речевого сигнала на более низкой средней битовой скорости с небольшой воспринимаемой потерей качества или без нее.
На фиг. 1 показан результат кодирования участка речевого сигнала, который включает в себя переходы между активными кадрами и неактивными кадрами. Каждый столбик на фигуре указывает соответствующий кадр, причем высота столбика указывает битовую скорость, с которой кодируется кадр, и по горизонтальной оси отложено время. В этом случае активные кадры кодируются на более высокой битовой скорости rH, и неактивные кадры кодируются на более низкой битовой скорости rL.
Примеры битовой скорости rH включают в себя 171 битов на кадр, восемьдесят битов на кадр и сорок битов на кадр; и примеры битовой скорости rL включают в себя шестнадцать битов на кадр. Применительно к системам сотовой телефонии (в особенности системам, отвечающим внутреннему стандарту (IS)-95, разработанному Telecommunications Industry Association, Арлингтон, Вашингтон, или аналогичному промышленному стандарту) эти четыре битовые скорости также называются “полной скоростью”, “половинной скоростью”, “четвертной скоростью” и “скоростью одна восьмая” соответственно. В одном конкретном примере результата, показанного на фиг. 1, скорость rH является полной скоростью, и скорость rL является скоростью одна восьмая.
Речевая связь, осуществляемая по общественной коммутируемой телефонной сети (PSTN), традиционно ограничивается по полосе частотным диапазоном 300-3400 килогерц (кГц). Более современные сети для речевой связи, например сети, которые используют сотовую телефонию и/или VoIP, могут не иметь подобных ограничений по полосе, и может быть желательно, чтобы устройство, использующее такие сети, имело возможность передавать и принимать речевые передачи, которые включают в себя широкополосный частотный диапазон. Например, может быть желательно, чтобы такое устройство поддерживало частотный диапазон аудиосигнала, который простирается вниз до 50 Гц и/или вверх до 7 или 8 кГц. Также может быть желательно, чтобы такое устройство поддерживало другие применения, например высококачественную аудио- или аудио/видеоконференцсвязь, предоставление мультимедийных услуг, например музыки и/или телевидения и т.д., которые могут иметь речевой аудиоконтент в пределах вне традиционных ограничений PSTN.
Расширение диапазона, поддерживаемого речевым кодером, на более высокие частоты может повышать разборчивость речи. Например, информация в речевом сигнале, которая различает фрикативные звуки, например, 'с' и 'ф' в основном сосредоточена на высоких частотах. Верхнеполосное расширение может также улучшать другие свойства декодированного речевого сигнала, например эффект присутствия. Например, даже вокализованный гласный звук может иметь спектральную энергию далеко за пределами частотного диапазона PSTN.
Хотя может быть желательно, чтобы речевой кодер поддерживал широкополосный частотный диапазон, также желательно ограничивать объем информации, используемой для переноса голосовой передачи по каналу связи. Речевой кодер может быть способен осуществлять, например, прерывистую передачу (DTX), чтобы описания передавались не для всех неактивных кадров речевого сигнала.
Сущность изобретения
Способ кодирования кадров речевого сигнала согласно конфигурации включает в себя этапы, на которых создают первый кодированный кадр, который базируется на первом кадре речевого сигнала и имеет длину p битов, где p является ненулевым положительным целым числом; создают второй кодированный кадр, который базируется на втором кадре речевого сигнала и имеет длину q битов, где q является ненулевым положительным целым числом, отличным от p; и создают третий кодированный кадр, который базируется на третьем кадре речевого сигнала и имеет длину r битов, где r является ненулевым положительным целым числом, меньшим q. Согласно этому способу, второй кадр является неактивным кадром, который следует за первым кадром в речевом сигнале, третий кадр является неактивным кадром, который следует за вторым кадром в речевом сигнале, и все кадры речевого сигнала между первым и третьим кадрами являются неактивными.
Способ кодирования кадров речевого сигнала согласно другой конфигурации включает в себя этап, на котором создают первый кодированный кадр, который базируется на первом кадре речевого сигнала и имеет длину q битов, где q является ненулевым положительным целым числом. Этот способ также включает в себя этап, на котором создают второй кодированный кадр, который базируется на втором кадре речевого сигнала и имеет длину r битов, где r является ненулевым положительным целым числом, меньшим q. Согласно этому способу, первый и второй кадры являются неактивными кадрами. Согласно этому способу, первый кодированный кадр включает в себя (A) описание спектральной огибающей по первому частотному диапазону, участка речевого сигнала, который включает в себя первый кадр, и (B) описание спектральной огибающей по второму частотному диапазону, отличному от первого частотного диапазона, участка речевого сигнала, который включает в себя первый кадр, и второй кодированный кадр (A) включает в себя описание спектральной огибающей по первому частотному диапазону участка речевого сигнала, который включает в себя второй кадр, и (B) не включает в себя описание спектральной огибающей по второму частотному диапазону. Здесь также в прямой форме предусмотрено и раскрыто средство для осуществления таких операций. Здесь также в прямой форме предусмотрен и раскрыт компьютерный программный продукт, включающий в себя компьютерно-считываемый носитель, причем носитель включает в себя код, предписывающий, по меньшей мере, одному компьютеру осуществлять такие операции. Здесь также в прямой форме предусмотрено и раскрыто устройство, включающее в себя детектор речевой активности, блок выбора схемы кодирования и речевой кодер, которые способны осуществлять такие операции.
Устройство для кодирования кадров речевого сигнала согласно другой конфигурации включает в себя средство для создания на основании первого кадра речевого сигнала первого кодированного кадра, который имеет длину p битов, где p является ненулевым положительным целым числом; средство для создания на основании второго кадра речевого сигнала второго кодированного кадра, который имеет длину q битов, где q является ненулевым положительным целым числом, отличным от p; и средство для создания на основании третьего кадра речевого сигнала третьего кодированного кадра, который имеет длину r битов, где r является ненулевым положительным целым числом, меньшим q. В этом устройстве второй кадр является неактивным кадром, который следует за первым кадром в речевом сигнале, третий кадр является неактивным кадром, который следует за вторым кадром в речевом сигнале, и все кадры речевого сигнала между первым и третьим кадрами являются неактивными.
Компьютерный программный продукт согласно другой конфигурации включает в себя компьютерно-считываемый носитель. Носитель включает в себя код, предписывающий, по меньшей мере, одному компьютеру создавать первый кодированный кадр, который базируется на первом кадре речевого сигнала и имеет длину p битов, где p является ненулевым положительным целым числом; код, предписывающий, по меньшей мере, одному компьютеру создавать второй кодированный кадр, который базируется на втором кадре речевого сигнала и имеет длину q битов, где q является ненулевым положительным целым числом, отличным от p; и код, предписывающий, по меньшей мере, одному компьютеру создавать третий кодированный кадр, который базируется на третьем кадре речевого сигнала и имеет длину r битов, где r является ненулевым положительным целым числом, меньшим q. В этом продукте второй кадр является неактивным кадром, который следует за первым кадром в речевом сигнале, третий кадр является неактивным кадром, который следует за вторым кадром в речевом сигнале, и все кадры речевого сигнала между первым и третьим кадрами являются неактивными.
Устройство для кодирования кадров речевого сигнала согласно другой конфигурации включает в себя детектор речевой активности, способный указывать для каждого из совокупности кадров речевого сигнала, является ли кадр активным или неактивным; блок выбора схемы кодирования и речевой кодер. Блок выбора схемы кодирования способен выбирать (A) в ответ на указание детектора речевой активности для первого кадра речевого сигнала первую схему кодирования; (B) для второго кадра, который является одним из упорядоченной последовательности неактивных кадров, который следует за первым кадром в речевом сигнале, и в ответ на указание детектора речевой активности, что второй кадр является неактивным, вторую схему кодирования и (C) для третьего кадра, который следует за вторым кадром в речевом сигнале и является другим из упорядоченной последовательности неактивных кадров, который следует за первым кадром в речевом сигнале, и в ответ на указание детектора речевой активности, что третий кадр является неактивным, третью схему кодирования. Речевой кодер способен создавать (D) согласно первой схеме кодирования первый кодированный кадр, который базируется на первом кадре и имеет длину p битов, где p является ненулевым положительным целым числом; (E) согласно второй схеме кодирования второй кодированный кадр, который базируется на втором кадре и имеет длину q битов, где q является ненулевым положительным целым числом, отличным от p; и (F) согласно третьей схеме кодирования третий кодированный кадр, который базируется на третьем кадре и имеет длину r битов, где r является ненулевым положительным целым числом, меньшим q.
Способ обработки кодированного речевого сигнала согласно конфигурации включает в себя этап, на котором на основании информации из первого кодированного кадра кодированного речевого сигнала получают описание спектральной огибающей первого кадра речевого сигнала по (A) первому частотному диапазону и (B) второму частотному диапазону, отличному от первого частотного диапазона. Этот способ также включает в себя этап, на котором на основании информации из второго кодированного кадра кодированного речевого сигнала получают описание спектральной огибающей второго кадра речевого сигнала по первому частотному диапазону. Этот способ также включает в себя этап, на котором на основании информации из первого кодированного кадра получают описание спектральной огибающей второго кадра по второму частотному диапазону.
Устройство для обработки кодированного речевого сигнала согласно другой конфигурации включает в себя средство для получения на основании информации из первого кодированного кадра кодированного речевого сигнала описания спектральной огибающей первого кадра речевого сигнала по (A) первому частотному диапазону и (B) второму частотному диапазону, отличному от первого частотного диапазона. Это устройство также включает в себя средство для получения на основании информации из второго кодированного кадра кодированного речевого сигнала описания спектральной огибающей второго кадра речевого сигнала по первому частотному диапазону. Это устройство также включает в себя средство для получения на основании информации из первого кодированного кадра описания спектральной огибающей второго кадра по второму частотному диапазону.
Компьютерный программный продукт согласно другой конфигурации включает в себя компьютерно-считываемый носитель. Носитель включает в себя код, предписывающий, по меньшей мере, одному компьютеру получать на основании информации из первого кодированного кадра кодированного речевого сигнала описание спектральной огибающей первого кадра речевого сигнала по (A) первому частотному диапазону и (B) второму частотному диапазону, отличному от первого частотного диапазона. Этот носитель также включает в себя код, предписывающий, по меньшей мере, одному компьютеру получать на основании информации из второго кодированного кадра кодированного речевого сигнала описание спектральной огибающей второго кадра речевого сигнала по первому частотному диапазону. Этот носитель также включает в себя код, предписывающий, по меньшей мере, одному компьютеру получать на основании информации из первого кодированного кадра описание спектральной огибающей второго кадра по второму частотному диапазону.
Устройство для обработки кодированного речевого сигнала согласно другой конфигурации включает в себя логику управления, способную генерировать сигнал управления, содержащий последовательность значений, которая базируется на индексах кодирования кодированных кадров кодированного речевого сигнала, причем каждое значение последовательности соответствует кодированному кадру кодированного речевого сигнала. Это устройство также включает в себя речевой декодер, способный вычислять в ответ на значение сигнала управления, имеющего первое состояние, декодированный кадр на основании описания спектральной огибающей по первому и второму частотным диапазонам, причем описание базируется на информации из соответствующего кодированного кадра. Речевой декодер также способен вычислять в ответ на значение сигнала управления, имеющего второе состояние, отличное от первого состояния, декодированный кадр на основании (1) описания спектральной огибающей по первому частотному диапазону, причем описание базируется на информации из соответствующего кодированного кадра, и (2) описание спектральной огибающей по второму частотному диапазону, причем описание базируется на информации из, по меньшей мере, одного кодированного кадра, который появляется в кодированном речевом сигнале до соответствующего кодированного кадра.
Краткое описание чертежей
На фиг. 1 показан результат кодирования участка речевого сигнала, который включает в себя переходы между активными кадрами и неактивными кадрами.
На фиг. 2 показан один пример дерева решений, которое речевой кодер или способ речевого кодирования может использовать для выбора битовой скорости.
На фиг. 3 показан результат кодирования участка речевого сигнала, который включает в себя последействие четырех кадров.
На фиг. 4A показан график трапецеидальной вырезающей функции, которую можно использовать для вычисления значений формы усиления.
На фиг. 4B показано применение вырезающей функции, показанной на фиг. 4A, к каждому из пяти подкадров кадра.
На фиг. 5A показан один пример схемы неперекрывающихся частотных диапазонов, которую может использовать кодер с расщепленным диапазоном для кодирования широкополосного речевого контента.
На фиг. 5B показан один пример схемы перекрывающихся частотных диапазонов, которую может использовать кодер с расщепленным диапазоном для кодирования широкополосного речевого контента.
На фиг. 6A, 6B, 7A, 7B, 8A и 8B показаны результаты кодирования перехода от активных кадров к неактивным кадрам в речевом сигнале с использованием нескольких разных подходов.
На фиг. 9 показана операция кодирования трех последовательных кадров речевого сигнала с использованием способа M100 согласно общей конфигурации.
На фиг. 10A, 10B, 11A, 11B, 12A и 12B показаны результаты кодирования переходов от активных кадров к неактивным кадрам с использованием разных реализаций способа M100.
На фиг. 13A показан результат кодирования последовательности кадров согласно другой реализации способа M100.
На фиг. 13B показан результат кодирования последовательности неактивных кадров с использованием дополнительной реализации способа M100.
На фиг. 14 показано применение реализации M110 способа M100.
На фиг. 15 показано применение реализации M120 способа M110.
На фиг. 16 показано применение реализации M130 способа M120.
На фиг. 17A показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием реализации способа M130.
На фиг. 17B показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием другой реализации способа M130.
Фиг. 18A - таблица, где показан один набор из трех разных схем кодирования, которые речевой кодер может использовать для получения результата, показанного на фиг. 17B.
На фиг. 18B показана операция кодирования двух последовательных кадров речевого сигнала с использованием способа M300 согласно общей конфигурации.
На фиг. 18C показано применение реализации M310 способа M300.
На фиг. 19A показана блок-схема устройства 100 согласно общей конфигурации.
На фиг. 19B показана блок-схема реализации 132 речевого кодера 130.
На фиг. 19C показана блок-схема реализации 142 калькулятора 140 описания спектральной огибающей.
На фиг. 20A показана логическая блок-схема тестов, которые могут осуществлять реализацию блока 120 выбора схемы кодирования.
На фиг. 20B показана диаграмма состояний, согласно которой может быть способна работать другая реализация блока 120 выбора схемы кодирования.
На фиг. 21A, 21B и 21C показаны диаграммы состояния, согласно которым могут быть способны работать дополнительные реализации блока 120 выбора схемы кодирования.
На фиг. 22A показана блок-схема реализации 134 речевого кодера 132.
На фиг. 22B показана блок-схема реализации 154 калькулятора 152 описания временной информации.
На фиг. 23A показана блок-схема реализации 102 устройства 100, которое способно кодировать широкополосный речевой сигнал согласно схеме кодирования с расщепленной полосой.
На фиг. 23B показана блок-схема реализации 138 речевого кодера 136.
На фиг. 24A показана блок-схема реализации 139 широкополосного речевого кодера 136.
На фиг. 24B показана блок-схема реализации 158 калькулятора временного описания 156.
На фиг. 25A показана логическая блок-схема способа M200 обработки кодированного речевого сигнала согласно общей конфигурации.
На фиг. 25B показана логическая блок-схема реализации M210 способа M200.
На фиг. 25C показана логическая блок-схема реализации M220 способа M210.
На фиг. 26 показано применение способа M200.
На фиг. 27A показана связь между способами M100 и M200.
На фиг. 27B показана связь между способами M300 и M200.
На фиг. 28 показано применение способа M210.
На фиг. 29 показано применение способа M220.
На фиг. 30A показан результат итерирования реализации задачи T230.
На фиг. 30B показан результат итерирования другой реализации задачи T230.
На фиг. 30C показан результат итерирования дополнительной реализации задачи T230.
На фиг. 31 показан участок диаграммы состояния для речевого декодера, способного осуществлять реализацию способа M200.
На фиг. 32A показана блок-схема устройства 200 для обработки кодированного речевого сигнала согласно общей конфигурации.
На фиг. 32B показана блок-схема реализации 202 устройства 200.
На фиг. 32C показана блок-схема реализации 204 устройства 200.
На фиг. 33A показана блок-схема реализации 232 первого модуля 230.
На фиг. 33B показана блок-схема реализации 272 декодера 270 описания спектральной огибающей.
На фиг. 34A показана блок-схема реализации 242 второго модуля 240.
На фиг. 34B показана блок-схема реализации 244 второго модуля 240.
На фиг. 34C показана блок-схема реализации 246 второго модуля 242.
На фиг. 35A показана диаграмма состояний, согласно которой может быть способна работать реализация логики управления 210.
На фиг. 35B показан результат одного примера объединения способа M100 с DTX.
На фигурах и в соответствующем описании одинаковые условные обозначения относятся к одинаковым или аналогичным элементам или сигналам.
Подробное описание
Описанные здесь конфигурации можно применять в системе широкополосного речевого кодирования для поддержки использования более низкой битовой скорости для неактивных кадров, чем для активных кадров, и/или для повышения воспринимаемого качества переносимого речевого сигнала. В прямой форме предусмотрено и, таким образом, раскрыто, что такие конфигурации можно адаптировать для использования в сетях с коммутацией пакетов (например, проводных и/или беспроводных сетях, предназначенных для переноса голосовых передач согласно таким протоколам, как VoIP) и/или с коммутацией каналов.
В отсутствие явного ограничения контекстом термин “вычисление” используется здесь для указания любого из его обычных значений, например расчета, оценивания, генерации и/или выбора из набора значений. В отсутствие явного ограничения контекстом термин "получение" используется для указания любого из его обычных значений, например вычисления, вывода, приема (например, c внешнего устройства) и/или извлечения (например, из матрицы элементов хранения). Когда термин “содержащий” используется в настоящем описании и формуле изобретения, он не исключает другие элементы или операции. Термин “A базируется на B” используется для указания любого из его обычных значений, включая случаи (i) “A базируется на, по меньшей мере, B” и (ii) “A равно B” (если применимо в конкретном контексте).
Если не указано обратное, любое раскрытие речевого кодера, имеющего конкретный признак, также в явном виде призвано раскрывать способ речевого кодирования, имеющий аналогичный признак (и наоборот), и любое раскрытие речевого кодера согласно конкретной конфигурации также в явном виде призвано раскрывать способ речевого кодирования согласно аналогичной конфигурации (и наоборот). Если не указано обратное, любое раскрытие речевого декодера, имеющего конкретный признак, также в явном виде призвано раскрывать способ речевого декодирования, имеющий аналогичный признак (и наоборот), и любое раскрытие речевого декодера согласно конкретной конфигурации также в явном виде призвано раскрывать способ речевого декодирования согласно аналогичной конфигурации (и наоборот).
Кадры речевого сигнала обычно достаточно коротки, из-за чего можно ожидать, что спектральная огибающая сигнала будет оставаться относительно стационарной на протяжении кадра. Типичная длина одного кадра составляет двадцать миллисекунд, хотя можно использовать любую длину кадра в соответствии с конкретным применением. Длина кадра в двадцать миллисекунд соответствует 140 выборкам на скорости дискретизации семь килогерц (кГц), 160 выборкам на скорости дискретизации восемь кГц и 320 выборкам на скорости дискретизации 16 кГц, хотя можно использовать любую скорость дискретизации в соответствии с конкретным применением. Другой пример скорости дискретизации, которую можно использовать для речевого кодирования, составляет 12,8 кГц, и другие примеры включают в себя другие скорости в пределах от 12,8 до 38,4 кГц.
Обычно все кадры имеют одну и ту же длину, и в описанных здесь конкретных примерах предполагается однородная длина кадра. Однако в прямой форме предусмотрено и, таким образом, раскрыто, что можно использовать неоднородные длины кадра. Например, реализации способа M100 и M200 также можно использовать в применениях, где используются разные длины кадра для активных и неактивных кадров и/или для вокализованных и невокализованных кадров.
В некоторых применениях кадры не перекрываются, тогда как в других применениях используется схема перекрывающихся кадров. Например, обычно для речевого кодера используется схема перекрывающихся кадров на кодере и схема неперекрывающихся кадров на декодере. Кодер также может использовать разные схемы кадров для разных задач. Например, речевой кодер или способ речевого кодирования может использовать одну схему перекрывающихся кадров для кодирования описания спектральной огибающей кадра и другую схему перекрывающихся кадров для кодирования описания временной информации кадра.
Как отмечено выше, может быть желательно, чтобы речевой кодер был способен использовать разные режимы кодирования и/или скорости для кодирования активных кадров и неактивных кадров. Чтобы отличать активные кадры от неактивных кадров, речевой кодер обычно включает в себя детектор речевой активности или иначе осуществляет способ обнаружения речевой активности. Такой детектор или способ может быть способен классифицировать кадр как активный или неактивный на основании одного или нескольких факторов, например энергии кадра, отношения сигнал-шум, периодичности и скорости пересечения нуля. Такая классификация может включать в себя сравнение значения или величины такого фактора с пороговым значением и/или сравнение величины изменения такого фактора с пороговым значением.
Детектор речевой активности или способ обнаружения речевой активности также может быть способен классифицировать активный кадр как один из двух или более разных типов, например вокализованный (например, представляющий гласный звук), невокализованный (например, представляющий фрикативный звук) или переходный (например, представляющий начало или конец слова). Может быть желательно, чтобы речевой кодер использовал разные битовые скорости для кодирования разных типов активных кадров. Хотя конкретный пример, показанный на фиг. 1, демонстрирует последовательность активных кадров, которые все кодируются на одной и той же битовой скорости, специалисту в данной области техники очевидно, что описанные здесь способы и устройство также можно использовать в речевых кодерах и способах речевого кодирования, которые пригодны для кодирования активных кадров на разных битовых скоростях.
На фиг. 2 показан один пример дерева решений, которое речевой кодер или способ речевого кодирования может использовать для выбора битовой скорости для кодирования конкретного кадра согласно типу речевого кадра. В других случаях битовая скорость, выбранная для конкретного кадра, также может зависеть от таких критериев, как желаемая средняя битовая скорость, желаемый шаблон битовых скоростей по последовательности кадров (который можно использовать для поддержки желаемой средней битовой скорости) и/или битовая скорость, выбранная для предыдущего кадра.
Может быть желательно использовать разные режимы кодирования для кодирования разных типов речевых кадров. Кадрам вокализованной речи свойственно иметь периодическую структуру, которая является долговременной (т.е. продолжается в течение более одного периода кадра) и называется основным тоном и обычно более эффективна для кодирования вокализованного кадра (или последовательности вокализованных кадров) с использованием режима кодирования, который кодирует описание этого долговременного спектрального признака. Примеры таких режимов кодирования включают в себя линейное прогнозирование с кодовым возбуждением (CELP) и период основного тона прототипа (PPP). С другой стороны, невокализованные кадры и неактивные кадры обычно не имеют сколько-нибудь значительного долговременного спектрального признака, и речевой кодер может быть способен кодировать эти кадры с использованием режима кодирования, который не пытается описать такой признак. Линейное прогнозирование с шумовым возбуждением (NELP) является одним примером такого режима кодирования.
Речевой кодер или способ речевого кодирования может быть способен выбирать из разных комбинаций битовых скоростей и режимов кодирования (также именуемых “схемами кодирования”). Например, речевой кодер, способный осуществлять реализацию способа M100, может использовать полноскоростную схему CELP для кадров, содержащих вокализованную речь и переходные кадры, полускоростную схему NELP для кадров, содержащих невокализованную речь, и схему NELP со скоростью одна восьмая для неактивных кадров. Другие примеры такого речевого кодера поддерживают множественные скорости кодирования для одной или нескольких схем кодирования, например полноскоростной и полускоростной схем CELP и/или полноскоростной и четвертьскоростной схем PPP.
Переход от активной речи к неактивной речи обычно происходит в течение периода нескольких кадров. В результате первые несколько кадров речевого сигнала после перехода от активных кадров к неактивным кадрам могут включать в себя остатки активной речи, например остатки вокализации. Если речевой кодер кодирует кадр, имеющий такие остатки, с использованием схемы кодирования, которая предназначена для неактивных кадров, кодированный результат может не точно представлять исходный кадр. Таким образом, может быть желательно поддерживать более высокую битовую скорость и/или активный режим кодирования для одного или нескольких кадров, которые следуют за переходом от активных кадров к неактивным кадрам.
На фиг. 3 показан результат кодирования участка речевого сигнала, в котором более высокая битовая скорость rH поддерживается на протяжении нескольких кадров после перехода от активных кадров к неактивным кадрам. Длительность этого поддержания (также именуемую “последействием”) можно выбирать согласно предполагаемой длительности перехода, и она может быть фиксированной или переменной. Например, длительность последействия может базироваться на одной или нескольких характеристиках, например отношении сигнал-шум, одного или нескольких активных кадров, предшествующих переходу. На фиг. 3 показано последействие четырех кадров.
Кодированный кадр обычно содержит набор речевых параметров, из которых можно реконструировать соответствующий кадр речевого сигнала. Этот набор речевых параметров обычно включает в себя спектральную информацию, например описание распределения энергии в кадре по частотному спектру. Такое распределение энергии также называется “частотной огибающей” или “спектральной огибающей” кадра. Речевой кодер обычно способен вычислять описание спектральной огибающей кадра в качестве упорядоченной последовательности значений. В ряде случаев речевой кодер способен вычислять упорядоченную последовательность таким образом, чтобы каждое значение указывало амплитуду или величину сигнала на соответствующей частоте или по соответствующему спектральному диапазону. Одним примером такого описания является упорядоченная последовательность коэффициентов преобразования Фурье.
В других случаях речевой кодер способен вычислять описание спектральной огибающей в качестве упорядоченной последовательности значений параметров модели кодирования, например набор значений коэффициентов анализа кодирования с линейным предсказанием (LPC). Упорядоченная последовательность значений коэффициентов LPC обычно организована в виде одного или нескольких векторов, и речевой кодер можно реализовать для вычисления этих значений как коэффициентов фильтра или как коэффициентов отражения. Количество значений коэффициентов в наборе также называется “порядком” LPC-анализа, и примеры типичного порядка LPC-анализа, осуществляемого речевым кодером устройства связи (например, сотового телефона), включают в себя четыре, шесть, восемь, десять, 12, 16, 20, 24, 28 и 32.
Речевой кодер обычно способен передавать описание спектральной огибающей по каналу связи в квантованной форме (например, в виде одного или нескольких индексов соответствующих поисковых таблиц или “кодовых книг”). Соответственно может быть желательно, чтобы речевой кодер вычислял набор значений коэффициентов LPC в форме, в которой их можно эффективно квантовать, например как набор линейных спектральных пар (LSP), линейных спектральных частот (LSF), иммитансных спектральных пар (ISPs), иммитансных спектральных частот (ISFs), кепстральных коэффициентов или отношений площадей регистрации. Речевой кодер также может быть способен осуществлять другие операции, например перцепционного взвешивания, на упорядоченной последовательности значений до преобразования и/или квантования.
В ряде случаев описание спектральной огибающей кадра также включает в себя описание временной информации кадра (например, как в упорядоченной последовательности коэффициентов преобразования Фурье). В других случаях набор речевых параметров кодированного кадра может также включать в себя описание временной информации кадра. Форма описания временной информации может зависеть от конкретного режима кодирования, используемого для кодирования кадра. Для некоторых режимов кодирования (например, для режима кодирования CELP) описание временной информации может включать в себя описание сигнала возбуждения, подлежащее использованию речевым декодером, для возбуждения модели LPC (например, по определению описания спектральной огибающей). Описание сигнала возбуждения обычно появляется в кодированном кадре в квантованной форме (например, в виде одного или нескольких индексов соответствующих кодовых книг). Описание временной информации может также включать в себя информацию, связанную с компонентом основного тона сигнала возбуждения. Например, для режима кодирования PPP кодированная временная информация может включать в себя описание прототипа, подлежащее использованию речевым декодером для воспроизведения компонента основного тона сигнала возбуждения. Описание информации, связанное с компонентом основного тона, обычно появляется в кодированном кадре в квантованной форме (например, в виде одного или нескольких индексов соответствующих кодовых книг).
orig
synth
orig
synth
orig
synth
Для других режимов кодирования (например, для режима кодирования NELP) описание временной информации может включать в себя описание временной огибающей кадра (также именуемой “энергетической огибающей” или “огибающей усиления” кадра). Описание временной огибающей может включать в себя значение, которое базируется на средней энергии кадра. Такое значение обычно представляется как значение коэффициента усиления, применяемое к кадру в ходе декодирования, и также называется “кадром усиления”. В ряде случаев кадр усиления является нормирующим множителем на основании отношения между (A) энергией исходного кадра E и (B) энергией кадра, синтезированного из других параметров кодированного кадра (например, включающего в себя описание спектральной огибающей), E. Например, кадр усиления можно выразить как E/E или как квадратный корень из E/E. Кадры усиления и другие аспекты временных огибающих более подробно описаны, например, в опубликованной патентной заявке США № 2006/0282262 (Vos и др.), “SYSTEMS, METHODS, AND APPARATUS FOR GAIN FACTOR ATTENUATION”, опубликованной 14 декабря 2006 г.
orig.i
synth.i
synth.i
orig.i
orig.i
synth.i
orig.i
synth.i
Альтернативно или дополнительно, описание временной огибающей может включать в себя относительные значения энергии для каждого из ряда подкадров кадра. Такие значения обычно представляются как значения усиления, применяемые к соответствующим подкадрам в ходе декодирования, и совместно называются “профилем усиления” или “формой усиления”. В ряде случаев значения формы усиления являются нормирующими множителями, каждый из которых основан на отношении между (A) энергией исходного подкадра i E и (B) энергии соответствующего подкадра i кадра, синтезированного из других параметров кодированного кадра (например, включающего в себя описание спектральной огибающей), E. В таких случаях энергию E можно использовать для нормирования энергии E. Например, значение формы усиления можно выразить как E/E или как квадратный корень из E/E. Один пример описания временной огибающей включает в себя кадр усиления и форму усиления, где форма усиления включает в себя значение для каждого из пяти четырехмиллисекундных подкадров двадцатимиллисекундного кадра. Значения усиления можно выразить на линейной шкале или на логарифмической (например, децибельной) шкале. Такие признаки более подробно описаны, например, в вышеупомянутой опубликованной патентной заявке США № 2006/0282262.
При вычислении значения кадра усиления (или значений формы усиления) может быть желательно применять вырезающую функцию, которая перекрывает соседние кадры (или подкадры). Значения усиления, создаваемые таким образом, обычно применяются в режиме сложения с наложением на речевом декодере, что может способствовать сокращению или устранению разрывов между кадрами или подкадрами. На фиг. 4A показан график трапецеидальной вырезающей функции, которую можно использовать для вычисления каждого из значений формы усиления. В этом примере интервал перекрывает каждый из двух соседних подкадров на одну миллисекунду. На фиг. 4B показано применение этой вырезающей функции к каждому из пяти подкадров двадцатимиллисекундного кадра. Другие примеры вырезающих функций включают в себя функции, имеющие разные периоды перекрытия и/или разные формы интервала (например, прямоугольный или хэммингов), которые могут быть симметричными или ассимметричными. Можно также вычислять значения формы усиления путем применения разных вырезающих функций к разным подкадрам и/или путем вычисления разных значений формы усиления по подкадрам разной длины.
Кодированный кадр, который включает в себя описание временной огибающей, обычно включает в себя такое описание в квантованной форме в виде одного или нескольких индексов соответствующих кодовых книг, хотя в ряде случаев алгоритм можно использовать для квантования и/или деквантования кадра усиления и/или формы усиления без использования кодовой книги. Один пример описания временной огибающей включает в себя квантованный индекс от восьми до двенадцати битов, который задает пять значений формы усиления для кадра (например, по одному для каждого из пяти последовательных подкадров). Такое описание может также включать в себя другой квантованный индекс, который задает значение кадра усиления для кадра.
Как отмечено выше, может быть желательно передавать и принимать речевой сигнал, имеющий частотный диапазон, выходящий за пределы частотного диапазона PSTN 300-3400 кГц. Один подход к кодированию такого сигнала состоит в кодировании всего расширенного частотного диапазона как единого частотного диапазона. Такой подход можно реализовать путем масштабирования метода узкополосного речевого кодирования (например, приспособленного для кодирования частотного диапазона с качеством PSTN, например 0-4 кГц или 300-3400 Гц) для охвата широкополосного частотного диапазона, например 0-8 кГц. Например, такой подход может включать в себя (A) дискретизацию речевого сигнала на более высокой скорости для включения компонентов на высоких частотах и (B) перестройку метода узкополосного кодирования для представления этого широкополосного сигнала с нужной степенью точности. Один такой способ перестройки метода узкополосного кодирования состоит в использовании LPC-анализа более высокого порядка (т.е. для создания вектора коэффициентов, имеющего больше значений). Широкополосный речевой кодер, который кодирует широкополосный сигнал как единый частотный диапазон, также называется “полнополосным” кодером.
Может быть желательно реализовать широкополосный речевой кодер таким образом, чтобы, по меньшей мере, узкополосный участок кодированного сигнала можно было передавать по узкополосному каналу (например, каналу PSTN) без необходимости перекодировать или иным образом значительно изменять кодированный сигнал. Такой признак может способствовать обратной совместимости с сетями и/или устройствами, которые распознают только узкополосные сигналы. Также может быть желательно реализовать широкополосный речевой кодер, который использует разные режимы кодирования и/или скорости для разных частотных диапазонов речевого сигнала. Такой признак можно использовать для поддержки повышенной эффективности кодирования и/или воспринимаемого качества. Широкополосный речевой кодер, который способен создавать кодированные кадры, имеющие участки, которые представляют разные частотные диапазоны широкополосного речевого сигнала (например, отдельные наборы речевых параметров, каждый из которых представляет отдельный частотный диапазон широкополосного речевого сигнала), также называется кодером “с расщепленным диапазоном”.
На фиг. 5A показан один пример схемы неперекрывающихся частотных диапазонов, которую может использовать кодер с расщепленным диапазоном для кодирования широкополосного речевого контента в диапазоне от 0 Гц до 8 кГц. Эта схема включает в себя первый частотный диапазон, который простирается от 0 Гц до 4 кГц (также именуемый узкополосным диапазоном), и второй частотный диапазон, который простирается от 4 до 8 кГц (также именуемый расширенным, верхним или верхнеполосным диапазоном). На фиг. 5B показан один пример схемы перекрывающихся частотных диапазонов, которую может использовать кодер с расщепленным диапазоном для кодирования широкополосного речевого контента в диапазоне от 0 Гц до 7 кГц. Эта схема включает в себя первый частотный диапазон, который простирается от 0 Гц до 4 кГц (узкополосный диапазон), и второй частотный диапазон, который простирается от 3,5 до 7 кГц (расширенный, верхний или верхнеполосный диапазон).
Один конкретный пример кодера с расщепленным диапазоном способен осуществлять LPC-анализ десятого порядка для узкополосного диапазона и LPC-анализ шестого порядка для верхнеполосного диапазона. Другие примеры частотного диапазона схемы включают в себя те, в которых узкополосный диапазон проходит вниз только до около 300 Гц. Такая схема также может включать в себя другой частотный диапазон, который охватывает нижнеполосный диапазон от около 0 или 50 Гц до около 300 или 350 Гц.
Может быть желательно снизить среднюю битовую скорость, используемую для кодирования широкополосного речевого сигнала. Например, снижение средней битовой скорости, необходимое для поддержки конкретной услуги, может позволить повысить количество пользователей, которых сеть может одновременно обслуживать. Однако также желательно обеспечить такое снижение без излишнего снижения воспринимаемого качества соответствующего декодированного речевого сигнала.
Один возможный подход к снижению средней битовой скорости широкополосного речевого сигнала предусматривает кодирование неактивных кадров с использованием полнополосной широкополосной схемы кодирования на низкой битовой скорости. На фиг. 6A показан результат кодирования перехода от активных кадров к неактивным кадрам, при котором активные кадры кодируются на более высокой битовой скорости rH и неактивные кадры кодируются на более низкой битовой скорости rL. Обозначение F указывает кадр, кодированный с использованием полнополосной широкополосной схемы кодирования.
Для достижения достаточного снижения средней битовой скорости может быть желательно кодировать неактивные кадры с использованием очень низкой битовой скорости. Например, может быть желательно использовать битовую скорость, которая сравнима с битовой скоростью, используемой для кодирования неактивных кадров в узкополосном кодере, например шестнадцать битов на кадр (“скорость одна восьмая”). К сожалению, такое малое количество битов обычно недостаточно для кодирования даже неактивного кадра широкополосного сигнала в приемлемой степени воспринимаемого качества по широкополосному диапазону, и полнополосный широкополосный кодер, который кодирует неактивные кадры на такой скорости, вероятно, будет создавать декодированный сигнал, имеющий низкое качество звука на протяжении неактивных кадров. Такому сигналу может недоставать гладкости на протяжении неактивных кадров, например, из-за чего воспринимаемая громкость и/или спектральное распределение декодированного сигнала может чрезмерно изменяться от кадра к кадру. Гладкость обычно перцепционно важна для декодированного фонового шума.
На фиг. 6B показан другой результат кодирования перехода от активных кадров к неактивным кадрам. В этом случае широкополосная схема кодирования с расщепленной полосой используется для кодирования активных кадров на более высокой битовой скорости, и полнополосная широкополосная схема кодирования используется для кодирования неактивных кадров на более низкой битовой скорости. Обозначения H и N указывают участки кадра, кодированного с расщепленным диапазоном, которые кодируются с использованием верхнеполосной схемы кодирования и узкополосной схемы кодирования соответственно. Как отмечено выше, кодирование неактивных кадров с использованием полнополосной широкополосной схемы кодирования и низкой битовой скорости, вероятно, будет создавать декодированный сигнал, имеющий низкое качество звука на протяжении неактивных кадров. Сочетание схемы с расщепленным диапазоном и полнополосной схемы кодирования, вероятно, приведет к усложнению кодера, хотя такое усложнение может влиять или не влиять на конкретную окончательную реализацию. Дополнительно, хотя историческая информация из предыдущих кадров иногда используется для значительного повышения эффективности кодирования (особенно для кодирования вокализованных кадров), может оказаться нелегко применять историческую информацию, генерируемую схемой кодирования с расщепленной полосой, в ходе работы полнополосной схемы кодирования и наоборот.
Еще один возможный подход к снижению средней битовой скорости широкополосного сигнала состоит в кодировании неактивных кадров с использованием широкополосной схемы кодирования с расщепленной полосой на низкой битовой скорости. На фиг. 7A показан результат кодирования перехода от активных кадров к неактивным кадрам, при котором полнополосная широкополосная схема кодирования используется для кодирования активных кадров на более высокой битовой скорости rH, и широкополосная схема кодирования с расщепленной полосой используется для кодирования неактивных кадров на более низкой битовой скорости rL. На фиг. 7B показан соответствующий пример, в котором широкополосная схема кодирования с расщепленной полосой используется для кодирования активных кадров. Как упомянуто выше со ссылкой на фиг. 6A и 6B, может быть желательно кодировать неактивные кадры с использованием битовой скорости, которая сравнима с битовой скоростью, используемой для кодирования неактивных кадров в узкополосном кодере, например шестнадцать битов на кадр (“скорость одна восьмая”). К сожалению, такое малое количество битов обычно недостаточно для схемы кодирования с расщепленной полосой, чтобы разделять разные частотные диапазоны таким образом, чтобы можно было добиться приемлемого качества декодированного широкополосного сигнала.
Еще один возможный подход к снижению средней битовой скорости широкополосного сигнала предусматривает кодирование неактивных кадров как узкополосных на низкой битовой скорости. На фиг. 8A и 8B показаны результаты кодирования перехода от активных кадров к неактивным кадрам, при котором широкополосная схема кодирования используется для кодирования активных кадров на более высокой битовой скорости rH, и узкополосная схема кодирования используется для кодирования неактивных кадров на более низкой битовой скорости rL. В примере, показанном на фиг. 8A, для кодирования активных кадров используется полнополосная широкополосная схема кодирования, тогда как в примере, показанном на фиг. 8B, для кодирования активных кадров используется широкополосная схема кодирования с расщепленной полосой.
Кодирование активного кадра с использованием широкополосной схемы кодирования с высокой битовой скоростью обычно создает кодированный кадр, который содержит хорошо кодированный широкополосный фоновый шум. Однако кодирование неактивного кадра с использованием только узкополосной схемы кодирования, как в примерах на фиг. 8A и 8B, создает кодированный кадр, которому недостает расширенных частот. Поэтому переход от декодированного широкополосного активного кадра к декодированному узкополосному неактивному кадру, скорее всего, будет весьма различимым и неприятным, и этот третий возможный подход, скорее всего, приводит к неоптимальному результату.
На фиг. 9 показана операция кодирования трех последовательных кадров речевого сигнала с использованием способа M100 согласно общей конфигурации. Задача T110 кодирует первый из трех кадров, который может быть активным или неактивным, на первой битовой скорости r1 (p битов на кадр). Задача T120 кодирует второй кадр, который следует за первым кадром и является неактивным кадром, на второй битовой скорости r2 (q битов на кадр), которая отличается от r1. Задача T130 кодирует третий кадр, который непосредственно следует за вторым кадром и также является неактивным, на третьей битовой скорости r3 (r битов на кадр), которая меньше r2. Способ M100 обычно осуществляется как часть более обширного способа речевого кодирования, и речевые кодеры и способы речевого кодирования, которые способны осуществлять способ M100, в прямой форме предусмотрены и, таким образом, раскрыты.
Соответствующий речевой декодер может быть способен использовать информацию из второго кодированного кадра, чтобы способствовать декодированию неактивного кадра из третьего кодированного кадра. В других местах этого описания раскрыты речевые декодеры и способы декодирования кадров речевого сигнала, которые используют информацию из второго кодированного кадра при декодировании одного или нескольких последующих неактивных кадров.
В конкретном примере, показанном на фиг. 9, второй кадр непосредственно следует за первым кадром в речевом сигнале, и третий кадр непосредственно следует за вторым кадром в речевом сигнале. В других применениях способа M100 первый и второй кадры могут разделяться одним или несколькими неактивными кадрами в речевом сигнале, и второй и третий кадры могут разделяться одним или несколькими неактивными кадрами в речевом сигнале. В конкретном примере, показанном на фиг. 9, p больше q. Способ M100 также можно реализовать так, чтобы p было меньше q. В конкретных примерах, показанных на фиг. 10A-12B, битовые скорости rH, rM и rL соответствуют битовым скоростям r1, r2 и r3 соответственно.
На фиг. 10A показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием вышеописанной реализации способа M100. В этом примере последний активный кадр до перехода кодируется на более высокой битовой скорости rH для создания первого из трех кодированных кадров, первый неактивный кадр после перехода кодируется на промежуточной битовой скорости rM для создания второго из трех кодированных кадров, и следующий неактивный кадр кодируется на более низкой битовой скорости rL для создания последнего из трех кодированных кадров. В одном конкретном случае этого примера битовые скорости rH, rM и rL являются полной скоростью, половинной скоростью и скоростью одна восьмая соответственно.
Как отмечено выше, переход от активной речи к неактивной речи обычно происходит в течение периода нескольких кадров, и первые несколько кадров речевого сигнала после перехода от активных кадров к неактивным кадрам могут включать в себя остатки активной речи, например остатки вокализации. Если речевой кодер кодирует кадр, имеющий такие остатки, с использованием схемы кодирования, которая предназначена для неактивных кадров, кодированный результат может не точно представлять исходный кадр. Таким образом, может быть желательно реализовать способ M100 во избежание кодирования кадра, имеющего такие остатки, в качестве второго кодированного кадра.
На фиг. 10B показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием реализации способа M100, который включает в себя последействие. Этот конкретный пример способа M100 продолжает использовать битовую скорость rH для первого из трех неактивных кадров после перехода. В общем случае можно использовать последействие любой нужной длительности (например, в пределах от одного или двух до пяти или десяти кадров). Длительность последействия можно выбирать согласно предполагаемой длительности перехода, и она может быть фиксированной или переменной. Например, длительность последействия может базироваться на одной или нескольких характеристиках одного или нескольких активных кадров, предшествующих переходу, и/или одного или нескольких кадров в последействии, например отношении сигнал-шум. В общем случае обозначение “первый кодированный кадр” можно применять к последнему активному кадру до перехода или к любому неактивному кадру на протяжении последействия.
Может быть желательно реализовать способ M100 для использования битовой скорости r2 по последовательности из двух или более последовательных неактивных кадров. На фиг. 11A показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием одной такой реализации способа M100. В этом примере первый и последний из трех кодированных кадров разделены более чем одним кадром, который закодирован с использованием битовой скорости rM, в связи с чем второй кодированный кадр не следует сразу же после первого кодированного кадра. Соответствующий речевой декодер может быть способен использовать информацию из второго кодированного кадра для декодирования третьего кодированного кадра (и, возможно, для декодирования одного или нескольких последующих неактивных кадров).
Может быть желательно, чтобы речевой декодер использовал информацию из более чем одного кодированного кадра для декодирования последующего неактивного кадра. Со ссылкой на последовательность, показанную на фиг. 11A, например, соответствующий речевой декодер может быть способен использовать информацию из обоих неактивных кадров, кодированных на битовой скорости rM, для декодирования третьего кодированного кадра (и, возможно, для декодирования одного или нескольких последующих неактивных кадров).
В целом может быть желательно, чтобы второй кодированный кадр был представителем неактивных кадров. Соответственно способ M100 можно реализовать для создания второго кодированного кадра на основании спектральной информации из более чем одного неактивного кадра речевого сигнала. На фиг. 11B показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием такой реализации способа M100. В этом примере второй кодированный кадр содержит информацию, усредненную по интервалу двух кадров речевого сигнала. В других случаях интервал усреднения может иметь длину в пределах от двух до около шести или восьми кадров. Второй кодированный кадр может включать в себя описание спектральной огибающей, т.е. среднее описаний спектральных огибающих кадров в интервале (в этом случае соответствующего неактивного кадра речевого сигнала и предшествующего ему неактивного кадра). Второй кодированный кадр может включать в себя описание временной информации, которое базируется в основном или исключительно на соответствующем кадре речевого сигнала. Альтернативно, способ M100 можно сконфигурировать так, чтобы второй кодированный кадр включал в себя описание временной информации, т.е. среднее описаний временной информации кадров в интервале.
На фиг. 12A показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием другой реализации способа M100. В этом примере второй кодированный кадр содержит информацию, усредненную по интервалу трех кадров, причем второй кодированный кадр кодируется на битовой скорости rM, и два предыдущих неактивных кадра кодируются на другой битовой скорости rH. В этом конкретном примере интервал усреднения следует за трехкадровым последействием после перехода. В другом примере способ M100 можно реализовать без такого последействия или, альтернативно, с последействием, которое перекрывает интервал усреднения. В общем случае обозначение “первый кодированный кадр” можно применять к последнему активному кадру до перехода, к любому неактивному кадру на протяжении последействия или к любому кадру в интервале, который закодирован на другой битовой скорости, чем второй кодированный кадр.
В ряде случаев может быть желательно, чтобы реализация способа M100 использовала битовую скорость r2 для кодирования неактивного кадра, только если кадр следует за последовательностью последовательных активных кадров (также именуемой “речевым всплеском”), которая имеет, по меньшей мере, минимальную длину. На фиг. 12B показан результат кодирования участка речевого сигнала с использованием такой реализации способа M100. В этом примере способ M100 реализуется для использования битовой скорости rM для кодирования первого неактивного кадра после перехода от активных кадров к неактивным кадрам, но только если предшествующий речевой всплеск имеет длину, по меньшей мере, три кадра. В таких случаях минимальная длина речевого всплеска может быть фиксированной или переменной. Например, она может базироваться на характеристике одного или нескольких активных кадров, предшествующих переходу, например отношении сигнал-шум. Кроме того, такие реализации способа M100 также могут быть способны применять вышеописанный интервал последействия и/или усреднения.
На фиг. 10A-12B показаны применения реализаций способа M100, в которых битовая скорость r1, которая используется для кодирования первого кодированного кадра, больше битовой скорости r2, которая используется для кодирования второго кодированного кадра. Однако диапазон реализации способа M100 также включает в себя способы, в которых битовая скорость r1 меньше битовой скорости r2. В ряде случаев, например, активный кадр, например вокализованный кадр, может быть, по большей части, избыточной версией предыдущего активного кадра, и может быть желательно кодировать такой кадр с использованием битовой скорости, которая меньше r2. На фиг. 13A показан результат кодирования последовательности кадров согласно такой реализации способа M100, при котором активный кадр кодируется на более низкой битовой скорости для создания первого из набора из трех кодированных кадров.
Потенциальные применения способа M100 не ограничиваются участками речевого сигнала, которые включают в себя переходы от активных кадров к неактивным кадрам. В ряде случаев может быть желательно осуществлять способ M100 согласно некоторому регулярному интервалу. Например, может быть желательно кодировать каждый n-й кадр в последовательности последовательных неактивных кадров на более высокой битовой скорости r2, где типичные значения n включают в себя 8, 16 и 32. В других случаях способ M100 можно инициировать в соответствии с событием. Одним примером такого события является изменение качества фонового шума, которое может быть указано изменением параметра, связанного со спектральным наклоном, например, значения первого коэффициента отражения. На фиг. 13B показан результат кодирования последовательности неактивных кадров с использованием такой реализации способа M100.
Как отмечено выше, широкополосный кадр можно кодировать с использованием полнополосной схемы кодирования или схемы кодирования с расщепленной полосой. Кадр, кодированный как полнополосный, содержит описание одной спектральной огибающей, которая занимает весь широкополосный частотный диапазон, тогда как кадр, кодированный как с расщепленным диапазоном, имеет два или более отдельных участка, которые представляют информацию в разных частотных диапазонах (например, узкополосном диапазоне и верхнеполосном диапазоне) широкополосного речевого сигнала. Например, обычно каждый из этих отдельных участка кадра, кодированного с расщепленным диапазоном, содержит описание спектральной огибающей речевого сигнала по соответствующему частотному диапазону. Кадр, кодированный с расщепленным диапазоном, может содержать одно описание временной информации для кадра для всего широкополосного частотного диапазона, или каждый из отдельных участков кодированного кадра может содержать описание временной информации речевого сигнала для соответствующего частотного диапазона.
На фиг. 14 показано применение реализации M110 способа M100. Способ M110 включает в себя реализацию T112 задачи T110, которая создает первый кодированный кадр на основании первого из трех кадров речевого сигнала. Первый кадр может быть активным или неактивным, и первый кодированный кадр имеет длину p битов. Согласно фиг. 14, задача T112 способна создавать первый кодированный кадр, содержащий описание спектральной огибающей по первому и второму частотным диапазонам. Это описание может быть единым описанием, которое простирается по обоим частотным диапазонам, или может включать в себя отдельные описания, каждое из которых простирается по соответствующему одному из частотных диапазонов. Задача T112 также может быть способна создавать первый кодированный кадр, содержащий описание временной информации (например, временной огибающей) для первого и второго частотных диапазонов. Это описание может быть единым описанием, которое простирается по обоим частотным диапазонам, или может включать в себя отдельные описания, каждое из которых простирается по соответствующему одному из частотных диапазонов.
Способ M110 также включает в себя реализацию T122 задачи T120, которая создает второй кодированный кадр на основании второго из трех кадров. Второй кадр является неактивным кадром, и второй кодированный кадр имеет длину q битов (где p и q не равны). Согласно фиг. 14, задача T122 способна создавать второй кодированный кадр, содержащий описание спектральной огибающей по первому и второму частотным диапазонам. Это описание может быть единым описанием, которое простирается по обоим частотным диапазонам, или может включать в себя отдельные описания, каждое из которых простирается по соответствующему одному из частотных диапазонов. В этом конкретном примере длина в битах описания спектральной огибающей, содержащегося во втором кодированном кадре, меньше длины в битах описания спектральной огибающей, содержащегося в первом кодированном кадре. Задача T122 также может быть способна создавать второй кодированный кадр, содержащий описание временной информации (например, временной огибающей) для первого и второго частотных диапазонов. Это описание может быть единым описанием, которое простирается по обоим частотным диапазонам, или может включать в себя отдельные описания, каждое из которых простирается по соответствующему одному из частотных диапазонов.
Способ M110 также включает в себя реализацию T132 задачи T130, которая создает третий кодированный кадр на основании последнего из трех кадров. Третий кадр является неактивным кадром, и третий кодированный кадр имеет длину r битов (где r меньше q). Согласно фиг. 14, задача T132 способна создавать третий кодированный кадр, содержащий описание спектральной огибающей по первому частотному диапазону. В этом конкретном примере длина (в битах) описания спектральной огибающей, содержащегося в третьем кодированном кадре, меньше длины (в битах) описания спектральной огибающей, содержащегося во втором кодированном кадре. Задача T132 также может быть способна создавать третий кодированный кадр, содержащий описание временной информации (например, временной огибающей) для первого частотного диапазона.
Второй частотный диапазон отличается от первого частотного диапазона, хотя способ M110 можно сконфигурировать так, чтобы два частотных диапазона перекрывались. Примеры нижней границы для первого частотного диапазона включают в себя нуль, пятьдесят, 100, 300 и 500 Гц, и примеры верхней границы для первого частотного диапазона включают в себя три, 3,5, четыре, 4,5 и 5 кГц. Примеры нижней границы для второго частотного диапазона включают в себя 2,5, 3, 3,5, 4 и 4,5 кГц, и примеры верхней границы для второго частотного диапазона включают в себя 7, 7,5, 8 и 8,5 кГц. Все пятьсот возможных комбинаций вышеприведенных границ в прямой форме предусмотрены и, таким образом, раскрыты, и применение любой такой комбинации к любой реализации способа M110 в прямой форме предусмотрено и, таким образом, раскрыто. В одном конкретном примере первый частотный диапазон включает в себя диапазон от около пятидесяти Гц до около четырех кГц, и второй частотный диапазон включает в себя диапазон от около четырех до около семи кГц. В другом конкретном примере первый частотный диапазон включает в себя диапазон от около 100 Гц до около четырех кГц, и второй частотный диапазон включает в себя диапазон от около 3,5 до около семи кГц. В еще одном конкретном примере первый частотный диапазон включает в себя диапазон от около 300 Гц до около четырех кГц, и второй частотный диапазон включает в себя диапазон от около 3,5 до около семи кГц. В этих примерах термин “около” указывает плюс или минус пять процентов, причем границы различных частотных диапазонов указаны соответствующими точками 3 дБ.
Как отмечено выше, для широкополосных применений схема кодирования с расщепленной полосой может иметь преимущества над полнополосной схемой кодирования, например повышенную эффективность кодирования и поддержку обратной совместимости. На фиг. 15 показано применение реализации M120 способа M110, который использует схему кодирования с расщепленной полосой для создания второго кодированного кадра. Способ M120 включает в себя реализацию T124 задачи T122, которая имеет две подзадачи T126a и T126b. Задача T126a способна вычислять описание спектральной огибающей по первому частотному диапазону, и задача T126b способна вычислять отдельное описание спектральной огибающей по второму частотному диапазону. Соответствующий речевой декодер (например, описанный ниже) может быть способен вычислять декодированный широкополосный кадр на основании информации из описаний спектральной огибающей, вычисленных посредством задач T126b и T132.
Задачи T126a и T132 могут быть способны вычислять описания спектральных огибающих по первому частотному диапазону, которые имеют одну и ту же длину, или одна из задач T126a и T132 может быть способна вычислять описание, которое длиннее, чем описание, вычисленное посредством другой задачи. Задачи T126a и T126b также могут быть способны вычислять отдельные описания временной информации по двум частотным диапазонам.
Задачу T132 можно сконфигурировать так, чтобы третий кодированный кадр не содержал никакого описания спектральной огибающей по второму частотному диапазону. Альтернативно, задачу T132 можно сконфигурировать так, чтобы третий кодированный кадр содержал сокращенное описание спектральной огибающей по второму частотному диапазону. Например, задачу T132 можно сконфигурировать так, чтобы третий кодированный кадр содержал описание спектральной огибающей по второму частотному диапазону, которое имеет значительно меньше битов (например, не больше половины), чем описание спектральной огибающей третьего кадра по первому частотному диапазону. В другом примере задача T132 сконфигурирована так, чтобы третий кодированный кадр содержал описание спектральной огибающей по второму частотному диапазону, которое имеет значительно меньше битов (например, не больше половины), чем описание спектральной огибающей по второму частотному диапазону, вычисленное посредством задачи T126b. В одном таком примере задача T132 способна создавать третий кодированный кадр, содержащий описание спектральной огибающей по второму частотному диапазону, которое включает в себя только значение спектрального наклона (например, нормированный первый коэффициент отражения).
Может быть желательно реализовать способ M110 для создания первого кодированного кадра с использованием схемы кодирования с расщепленной полосой, а не полнополосной схемы кодирования. На фиг. 16 показано применение реализации M130 способа M120, который использует схему кодирования с расщепленной полосой для создания первого кодированного кадра. Способ M130 включает в себя реализацию T114 задачи T110, которая включает в себя две подзадачи T116a и T116b. Задача T116a способна вычислять описание спектральной огибающей по первому частотному диапазону, и задача T116b способна вычислять отдельное описание спектральной огибающей по второму частотному диапазону.
Задачи T116a и T126a могут быть способны вычислять описания спектральных огибающих по первому частотному диапазону, которые имеют одну и ту же длину, или одна из задач T116a и T126a может быть способна вычислять описание, которое длиннее, чем описание, вычисленное посредством другой задачи. Задачи T116b и T126b могут быть способны вычислять описания спектральных огибающих по второму частотному диапазону, которые имеют одну и ту же длину, или одна из задач T116b и T126b может быть способна вычислять описание, которое длиннее, чем описание, вычисленное посредством другой задачи. Задачи T116a и T116b также могут быть способны вычислять отдельные описания временной информации по двум частотным диапазонам.
На фиг. 17A показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием реализации способа M130. В этом конкретном примере участки первого и второго кодированных кадров, которые представляют второй частотный диапазон, имеют одну и ту же длину, и участки второго и третьего кодированных кадров, которые представляют первый частотный диапазон, имеют одну и ту же длину.
Может быть желательно, чтобы участок второго кодированного кадра, который представляет второй частотный диапазон, имел большую длину, чем соответствующий участок первого кодированного кадра. Нижний и верхний частотные диапазоны активного кадра, скорее всего, будут в большей степени коррелировать друг с другом (особенно если кадр вокализован), чем нижний и верхний частотные диапазоны неактивного кадра, который содержит фоновый шум. Соответственно верхний частотный диапазон неактивного кадра может переносить относительно больше информации кадра по сравнению с верхним частотным диапазоном активного кадра, и может быть желательно использовать большее количество битов для кодирования верхнего частотного диапазона неактивного кадра.
На фиг. 17B показан результат кодирования перехода от активных кадров к неактивным кадрам с использованием другой реализации способа M130. В этом случае участок второго кодированного кадра, который представляет второй частотный диапазон, длиннее (т.е. имеет больше битов), чем соответствующий участок первого кодированного кадра. Этот конкретный пример также демонстрирует случай, когда участок второго кодированного кадра, который представляет первый частотный диапазон, длиннее, чем соответствующий участок третьего кодированного кадра, хотя дополнительная реализация способа M130 может быть способна кодировать кадры так, чтобы эти два участка имели одну и ту же длину (например, как показано на фиг. 17A).
Типичный пример способа M100 способен кодировать второй кадр с использованием широкополосного режима NELP (который может быть полнополосным, как показано на фиг. 14, или с расщепленным диапазоном, как показано на фиг. 15 и 16) и кодировать третий кадр с использованием узкополосного режима NELP. В таблице на фиг. 18 показан один набор из трех разных схем кодирования, которые речевой кодер может использовать для создания результата, показанного на фиг. 17B. В этом примере полноскоростная широкополосная схема кодирования CELP (“схема кодирования 1”) используется для кодирования вокализованных кадров. Эта схема кодирования использует 153 бита для кодирования узкополосного участка кадра и 16 битов для кодирования верхнеполосного участка. Для узкополосного схема кодирования 1 использует 28 битов для кодирования описания спектральной огибающей (например, в виде одного или нескольких квантованных векторов LSP) и 125 битов для кодирования описания сигнала возбуждения. Для верхнеполосного схема кодирования 1 использует 8 битов для кодирования спектральной огибающей (например, в виде одного или нескольких квантованных векторов LSP) и 8 битов для кодирования описания временной огибающей.
Может быть желательно, чтобы схема кодирования 1 была способна выводить верхнеполосный сигнал возбуждения из узкополосного сигнала возбуждения, чтобы для переноса верхнеполосного сигнала возбуждения не требовались биты кодированного кадра. Также может быть желательно, чтобы схема кодирования 1 была способна вычислять верхнеполосную временную огибающую относительно временной огибающей верхнеполосного сигнала как синтезированную из других параметров кодированного кадра (например, включающую в себя описание спектральной огибающей по второму частотному диапазону). Такие признаки более подробно описаны, например, в вышеупомянутой опубликованной патентной заявке США № 2006/0282262.
По сравнению с вокализованным речевым сигналом невокализованный речевой сигнал обычно содержит больше информации, что важно для восприятия речи в верхней полосе. Таким образом, может быть желательно использовать больше битов для кодирования верхнеполосного участка невокализованного кадра, чем для кодирования верхнеполосного участка вокализованного кадра, даже в случае, когда вокализованный кадр кодируется с использованием более высокой общей битовой скорости. В примере согласно таблице на фиг. 18 полускоростая широкополосная схема кодирования NELP (“схема кодирования 2”) используется для кодирования невокализованных кадров. Вместо 16 битов, которые используются схемой кодирования 1 для кодирования верхнеполосного участка вокализованного кадра, эта схема кодирования использует 27 битов для кодирования верхнеполосного участка кадра: 12 битов для кодирования описания спектральной огибающей (например, в виде одного или нескольких квантованных векторов LSP) и 15 битов для кодирования описания временной огибающей (например, в качестве квантованного кадра усиления и/или формы усиления). Для кодирования узкополосного участка схема кодирования 2 использует 47 битов: 28 битов для кодирования описания спектральной огибающей (например, в виде одного или нескольких квантованных векторов LSP) и 19 битов для кодирования описания временной огибающей (например, в качестве квантованного кадра усиления и/или формы усиления).
Схема, описанная на фиг. 18, использует узкополосную схему кодирования NELP со скоростью одна восьмая (“схему кодирования 3”) для кодирования неактивных кадров на скорости 16 битов на кадр, с 10 битами для кодирования описания спектральной огибающей (например, в виде одного или нескольких квантованных векторов LSP) и 5 битами для кодирования описания временной огибающей (например, в качестве квантованного кадра усиления и/или формы усиления). Другой пример схемы кодирования 3 использует 8 битов для кодирования описания спектральной огибающей и 6 битов для кодирования описания временной огибающей.
Речевой кодер или способ речевого кодирования может быть способен использовать набор схем кодирования, как показано на фиг. 18, для осуществления реализации способа M130. Например, такой кодер или способ может быть способен использовать схему кодирования 2, а не схему кодирования 3 для создания второго кодированного кадра. Различные реализации такого кодера или способа могут быть способны давать результаты, показанные на фиг. 10A-13B, с использованием схемы кодирования 1, где указана битовая скорость rH, схемы кодирования 2, где указана битовая скорость rM, и схемы кодирования 3, где указана битовая скорость rL.
В случаях, когда набор схем кодирования, показанный на фиг. 18, используется для осуществления реализации способа M130, кодер или способ способен использовать одну и ту же схему кодирования (схему 2) для создания второго кодированного кадра и для создания кодированных невокализованных кадров. В других случаях кодер или способ, способные осуществлять реализацию способа M100, может быть способен кодировать второй кадр с использованием особой схемы кодирования (т.е. схемы кодирования, которую кодер или способ не использует для кодирования активных кадров).
Реализация способа M130, который использует набор схем кодирования, показанный на фиг. 18, способна использовать один и тот же режим кодирования (т.е. NELP) для создания второго и третьего кодированных кадров, хотя можно использовать варианты режима кодирования, которые отличаются (например, в отношении того, как вычисляются коэффициенты усиления), для создания двух кодированных кадров. Другие конфигурации способа M100, в которых второй и третий кодированные кадры создаются с использованием разных режимов кодирования (например, с использованием режима CELP для создания второго кодированного кадра), также в явном виде предусмотрены и, таким образом, раскрыты. Дополнительные конфигурации способа M100, в которых второй кодированный кадр создается с использованием широкополосного режима с расщепленным диапазоном, который использует разные режимы кодирования для разных частотных диапазонов (например, CELP для нижнего диапазона и NELP для верхнего диапазона или наоборот), также в явном виде предусмотрены и, таким образом, раскрыты. Речевые кодеры и способы речевого кодирования, которые способны осуществлять такие реализации способа M100, также в явном виде предусмотрены и, таким образом, раскрыты.
В типичном применении реализации способа M100 матрица логических элементов (например, логических вентилей) способна осуществлять одну, более одной или даже все различные задачи способа. Одну или несколько (возможно, все) из задач также можно реализовать в виде кода (например, одного или нескольких наборов инструкций), воплощенного в виде компьютерного программного продукта (например, одного или нескольких носителей данных, например дисков, флэш-карт или других энергонезависимых карт памяти, микросхем полупроводниковой памяти и т.д.), который читается и/или выполняется машиной (например, компьютером), включающей в себя матрицу логических элементов (например, процессор, микропроцессор, микроконтроллер или другой конечный автомат). Задачи реализации способа M100 также могут осуществляться более чем одной такой матрицей или машиной. В этих или других реализациях задачи могут осуществляться в устройстве для беспроводной связи, например сотовом телефоне или другом устройстве, имеющем такие возможности связи. Такое устройство может быть способно осуществлять связь с сетями с коммутацией каналов и/или с коммутацией пакетов (например, с использованием одного или нескольких протоколов, например VoIP). Например, такое устройство может включать в себя ВЧ схему, способную передавать кодированные кадры.
На фиг. 18B показана операция кодирования двух последовательных кадров речевого сигнала с использованием способа M300 согласно общей конфигурации, который включает в себя описанные здесь задачи T120 и T130. (Хотя эта реализация способа M300 обрабатывает только два кадра, использование обозначений “второй кадр” и “третий кадр” продолжается для удобства.) В конкретном примере, показанном на фиг. 18B, третий кадр непосредственно следует за вторым кадром. В других применениях способа M300 второй и третий кадры могут отделяться в речевом сигнале неактивным кадром или упорядоченной последовательностью из двух или более неактивных кадров. В других применениях способа M300 третий кадр может представлять собой любой неактивный кадр речевого сигнала, который не является вторым кадром. В другом общем применении способа M300 второй кадр может быть активным или неактивным. В другом общем применении способа M300 второй кадр может быть активным или неактивным, и третий кадр может быть активным или неактивным. На фиг. 18C показано применение реализации M310 способа M300, в котором задачи T120 и T130 реализуются, как описанные здесь задачи T122 и T132 соответственно. В дополнительной реализации способа M300 задача T120 реализуется, как описанная здесь задача T124. Может быть желательно конфигурировать задачу T132 так, чтобы третий кодированный кадр не содержал никакого описания спектральной огибающей по второму частотному диапазону.
На фиг. 19A показана блок-схема устройства 100, способного осуществлять способ речевого кодирования, который включает в себя реализацию описанного здесь способа M100 и/или реализацию описанного здесь способа M300. Устройство 100 включает в себя детектор 110 речевой активности, блок 120 выбора схемы кодирования и речевой кодер 130. Детектор 110 речевой активности способен принимать кадры речевого сигнала и указывать для каждого кадра, подлежащего кодированию, является ли кадр активным или неактивным. Блок 120 выбора схемы кодирования способен выбирать в ответ на указания детектора 110 речевой активности схему кодирования для каждого кадра, подлежащего кодированию. Речевой кодер 130 способен создавать, согласно выбранным схемам кодирования, кодированные кадры, которые базируются на кадрах речевого сигнала. Устройство связи, которое включает в себя устройство 100, например сотовый телефон, может быть способно осуществлять дополнительные операции обработки на кодированных кадрах, например кодирование с исправлением ошибок и/или избыточностью, до передачи их по проводному, беспроводному или оптическому каналу связи.
Детектор 110 речевой активности способен указывать, является ли каждый кадр, подлежащий кодированию, активным или неактивным. Это указание может представлять собой двоичный сигнал, причем одно состояние сигнала указывает, что кадр является активным, и другое состояние указывает, что кадр является неактивным. Альтернативно, указание может представлять собой сигнал, имеющий более двух состояний, причем он может указывать более одного типа активного и/или неактивного кадра. Например, может быть желательно, чтобы детектор 110 был способен указывать, является ли активный кадр вокализованным или невокализованным; или классифицировать активные кадры как переходные, вокализованные или невокализованные и, возможно, даже классифицировать переходные кадры как переходные вверх или переходные вниз. Соответствующая реализация блока 120 выбора схемы кодирования способна выбирать в ответ на эти указания схему кодирования для каждого кадра, подлежащего кодированию.
Детектор 110 речевой активности может быть способен указывать, является ли кадр активным или неактивным, на основании одной или нескольких характеристик кадра, например энергии, отношения сигнал-шум, периодичности, скорости пересечения нуля, спектрального распределения (оцениваемого с использованием, например, одного или нескольких LSF, LSP и/или коэффициентов отражения) и т.д. Чтобы генерировать указание, детектор 110 может быть способен осуществлять для каждого из одной или нескольких таких характеристик операцию, например, сравнения значения или величины такой характеристики с пороговым значением и/или сравнения величины изменения значения или величины такой характеристики с пороговым значением, причем пороговое значение может быть фиксированным или адаптивным.
Реализация детектора 110 речевой активности может быть способна оценивать энергию текущего кадра и указывать, что кадр является неактивным, если значение энергии меньше (альтернативно, не больше) порогового значения. Такой детектор может быть способен вычислять энергию кадра как сумму квадратов выборок кадра. Другая реализация 110 детектора речевой активности способна оценивать энергию текущего кадра в каждом из нижнего частотного диапазона и верхнего частотного диапазона и указывать, что кадр является неактивным, если значение энергии для каждого диапазона меньше (альтернативно, не больше) соответствующего порогового значения. Такой детектор может быть способен вычислять энергию кадра в диапазоне путем применения полосового фильтра к кадру и вычисления суммы квадратов выборок фильтрованного кадра.
Как отмечено выше, реализация детектора 110 речевой активности может быть способна использовать одно или несколько пороговых значений. Каждое из этих значений может быть фиксированным или адаптивным. Адаптивное пороговое значение может базироваться на одном или нескольких факторах, например уровне шума кадра или диапазона, отношении сигнал-шум кадра или диапазона, желательной скорости кодирования и т.д. В одном примере пороговые значения, используемые для каждого из нижнего частотного диапазона (например, от 300 Гц до 2 кГц) и верхнего частотного диапазона (например, от 2 до 4 кГц), базируются на оценке уровня фонового шума в этом диапазоне для предыдущего кадра, нa отношении сигнал-шум в этом диапазоне для предыдущего кадра и желательной средней скорости передачи данных.
Блок 120 выбора схемы кодирования способен выбирать в ответ на указания детектора 110 речевой активности схему кодирования для каждого кадра, подлежащего кодированию. Выбор схемы кодирования может базироваться на указании детектора речевой активности 110 для текущего кадра и/или на указании детектора речевой активности 110 для каждого из одного или нескольких предыдущих кадров. В ряде случаев выбор схемы кодирования также основан на указании детектора речевой активности 110 для каждого из одного или нескольких последующих кадров.
На фиг. 20A показана логическая блок-схема тестов, которые могут осуществлять реализацию блока 120 выбора схемы кодирования для получения результата, показанного на фиг. 10A. В этом примере блок выбора 120 способен выбирать схему кодирования 1 с более высокой скоростью для вокализованных кадров, схему кодирования 3 с более низкой скоростью для неактивных кадров и схему кодирования 2 с промежуточной скоростью для невокализованных кадров и для первого неактивного кадра после перехода от активных кадров к неактивным кадрам. В таком применении схемы кодирования 1-3 могут соответствовать трем схемам, показанным на фиг. 18.
Альтернативная реализация блока 120 выбора схемы кодирования может быть способна работать согласно диаграмме состояний, показанной на фиг. 20B, для получения эквивалентного результата. На этой фигуре обозначение “A” указывает состояние перехода в ответ на активный кадр, обозначение “I” указывает состояние перехода в ответ на неактивный кадр, и обозначения различных состояний указывают схему кодирования, выбранную для текущего кадра. В этом случае обозначение состояния “схема 1/2” указывает, что схема кодирования 1 либо схема кодирования 2 выбирается для текущего активного кадра в зависимости от того, является ли кадр вокализованным или невокализованным. Специалисту в данной области очевидно, что в альтернативной реализации это состояние можно сконфигурировать так, чтобы блок выбора схемы кодирования поддерживал только одну схему кодирования для активных кадров (например, схему кодирования 1). В дополнительной альтернативной реализации это состояние можно сконфигурировать так, чтобы блок выбора схемы кодирования выбирал из более чем двух разных схем кодирования для активных кадров (например, выбирал разные схемы кодирования для вокализованных, невокализованных и переходных кадров).
Как отмечено выше со ссылкой на фиг. 12B, может быть желательно, чтобы речевой кодер кодировал неактивный кадр на более высокой битовой скорости r2, только если самый недавний активный кадр является частью речевого всплеска, имеющего, по меньшей мере, минимальную длину. Реализация блока 120 выбора схемы кодирования может быть способна работать согласно диаграмме состояний на фиг. 21A для получения результата, показанного на фиг. 12B. В этом конкретном примере блок выбора способен выбирать схему кодирования 2 для неактивного кадра, только если кадр непосредственно следует за последовательностью последовательных активных кадров, имеющей длину, по меньшей мере, три кадра. В этом случае обозначение состояния “схема 1/2” указывает, что схема кодирования 1 либо схема кодирования 2 выбирается для текущего активного кадра в зависимости от того, является ли кадр вокализованным или невокализованным. Специалисту в данной области очевидно, что в альтернативной реализации эти состояния можно сконфигурировать так, чтобы блок выбора схемы кодирования поддерживал только одну схему кодирования для активных кадров (например, схему кодирования 1). В дополнительной альтернативной реализации эти состояния можно сконфигурировать так, чтобы блок выбора схемы кодирования выбирал из более чем двух разных схем кодирования для активных кадров (например, выбирал разные схемы кодирования для вокализованных, невокализованных и переходных кадров).
Как отмечено выше согласно фиг. 10B и 12A, может быть желательно, чтобы речевой кодер применял последействие (т.е. продолжал использовать более высокую битовую скорость для одного или нескольких неактивных кадров после перехода от активных кадров к неактивным кадрам). Реализация блока 120 выбора схемы кодирования может быть способна работать согласно диаграмме состояний, показанной на фиг. 21B, для применения последействия, имеющего длину три кадра. На этой фигуре состояния последействия обозначены “схема 1(2)” для указания, что схема кодирования 1 либо схема кодирования 2 указана для текущего неактивного кадра в зависимости от схемы, выбранной для самого недавнего активного кадра. Специалисту в данной области очевидно, что в альтернативной реализации блок выбора схемы кодирования может поддерживать только одну схему кодирования для активных кадров (например, схему кодирования 1). В дополнительной альтернативной реализации состояния последействия могут быть способны продолжать указывать одну из более двух разных схем кодирования (например, в случае, когда поддерживаются разные схемы для вокализованных, невокализованных и переходных кадров). В дополнительной альтернативной реализации одно или несколько из состояний последействия могут быть способны указывать фиксированную схему (например, схему 1), даже если для самого недавнего активного кадра выбрана другая схема (например, схема 2).
Как отмечено выше согласно фиг. 11B и 12A, может быть желательно, чтобы речевой кодер создавал второй кодированный кадр на основании информации, усредненной по более чем одному неактивному кадру речевого сигнала. Реализация блока 120 выбора схемы кодирования может быть способна работать согласно диаграмме состояний, показанной на фиг. 21C, для поддержки такого результата. В этом конкретном примере блок выбора способен предписывать кодеру создавать второй кодированный кадр на основании информации, усредненной по трем неактивным кадрам. Обозначение состояния “схема 2 (начать усреднение)” указывает кодеру, что текущий кадр подлежит кодированию согласно схеме 2 и также используется для вычисления нового среднего (например, среднего описаний спектральных огибающих). Обозначение состояния “схема 2 (для усреднения)” указывает кодеру, что текущий кадр подлежит кодированию согласно схеме 2 и также используется для продолжения вычисления среднего. Обозначение состояния “послать среднее, схема 2” указывает кодеру, что текущий кадр подлежит использованию для получения среднего, которое затем подлежит передаче с использованием схемы 2. Специалисту в данной области техники очевидно, что альтернативные реализации блока 120 выбора схемы кодирования могут быть способны использовать другие назначенные схемы и/или указывать усреднение информации по другому количеству неактивных кадров.
На фиг. 19B показана блок-схема реализации 132 речевого кодера 130, который включает в себя калькулятор 140 описания спектральной огибающей, калькулятор 150 описания временной информации и блок форматирования 160. Калькулятор 140 описания спектральной огибающей способен вычислять описание спектральной огибающей для каждого кадра, подлежащего кодированию. Калькулятор 150 описания временной информации способен вычислять описание временной информации для каждого кадра, подлежащего кодированию. Блок форматирования 160 способен создавать кодированный кадр, который включает в себя вычисленное описание спектральной огибающей и вычисленное описание временной информации. Блок форматирования 160 может быть способен создавать кодированный кадр согласно нужному формату пакета, возможно, с использованием разных форматов для разных схем кодирования. Блок форматирования 160 может быть способен создавать кодированный кадр для включения дополнительной информации, например набора из одного или нескольких битов, которая идентифицирует схему кодирования или скорость или режим кодирования, согласно которым кодируется кадр (также именуемый “индексом кодирования”).
Калькулятор 140 описания спектральной огибающей способен вычислять, согласно схеме кодирования, указанной блоком 120 выбора схемы кодирования, описание спектральной огибающей для каждого кадра, подлежащего кодированию. Описание базируется на текущем кадре и также может базироваться на, по меньшей мере, части одного или нескольких других кадров. Например, калькулятор 140 может быть способен применять интервал, который простирается на один или несколько соседних кадров и/или вычислять среднее описаний (например, среднее векторов LSP) двух или более кадров.
Калькулятор 140 может быть способен вычислять описание спектральной огибающей для кадра путем осуществления спектрального анализа, например LPC-анализа. На фиг. 19C показана блок-схема реализации 142 калькулятора 140 описания спектральной огибающей, который включает в себя модуль 170 LPC-анализа, блок преобразования 180 и блок квантования 190. Модуль анализа 170 способен осуществлять LPC-анализ кадра и создавать соответствующий набор параметров модели. Например, модуль анализа 170 может быть способен создавать вектор коэффициентов LPC, например коэффициентов фильтра или коэффициентов отражения. Модуль анализа 170 может быть способен осуществлять анализ по интервалу, который включает в себя участки одного или нескольких соседних кадров. В ряде случаев модуль анализа 170 сконфигурирован так, чтобы порядок анализа (например, количество элементов в векторе коэффициентов) выбирался согласно схеме кодирования, указанной блоком 120 выбора схемы кодирования.
Блок преобразования 180 способен преобразовывать набор параметров модели к форме, которая более эффективна для квантования. Например, блок преобразования 180 может быть способен преобразовывать вектор коэффициентов LPC в набор LSP. В ряде случаев блок преобразования 180 способен преобразовывать набор коэффициентов LPC к конкретной форме согласно схеме кодирования, указанной блоком 120 выбора схемы кодирования.
Блок квантования 190 способен создавать описание спектральной огибающей в квантованной форме путем квантования преобразованного набора параметров модели. Блок квантования 190 может быть способен квантовать преобразованный набор путем усечения элементов преобразованного набора и/или путем выбора одного или нескольких индексов таблицы квантования для представления преобразованного набора. В ряде случаев блок квантования 190 способен квантовать преобразованный набор к конкретной форме и/или длине согласно схеме кодирования, указанной блоком 120 выбора схемы кодирования (например, как рассмотрено выше со ссылкой на фиг. 18).
Калькулятор 150 описания временной информации способен вычислять описание временной информации кадра. Описание также может базироваться на временной информации, по меньшей мере, части одного или нескольких других кадров. Например, калькулятор 150 может быть способен вычислять описание по интервалу, который простирается на один или несколько соседних кадров, и/или вычислять среднее описаний двух или более кадров.
Калькулятор 150 описания временной информации может быть способен вычислять описание временной информации, которое имеет конкретную форму и/или длину, согласно схеме кодирования, указанной блоком выбора схемы кодирования 120. Например, калькулятор 150 может быть способен вычислять, согласно выбранной схеме кодирования, описание временной информации, которое включает в себя одно или оба из (A) временной огибающей кадра и (B) сигнала возбуждения кадра, который может включать в себя описание компонента основного тона (например, отставание основного тона (также именуемое задержкой), усиление основного тона и/или описание прототипа).
Калькулятор 150 может быть способен вычислять описание временной информации, которое включает в себя временную огибающую кадра (например, значение кадра усиления и/или значения формы усиления). Например, калькулятор 150 может быть способен выводить такое описание в ответ на указание схемы кодирования NELP. Описанное здесь вычисление такого описания может включать в себя вычисление энергии сигнала по кадру или подкадру как суммы квадратов выборок сигнала, вычисление энергии сигнала по интервалу, который включает в себя части других кадров и/или подкадров, и/или квантование вычисленной временной огибающей.
Калькулятор 150 может быть способен вычислять описание временной информации кадра, которое включает в себя информацию, связанную с основным тоном или периодичностью кадра. Например, калькулятор 150 может быть способен выводить описание, которое включает в себя информацию основного тона кадра, например отставание основного тона и/или усиление основного тона, в ответ на указание схемы кодирования CELP. Альтернативно или дополнительно, калькулятор 150 может быть способен выводить описание, которое включает в себя периодический сигнал (также именуемый “прототипом”) в ответ на указание схемы кодирования PPP. Вычисление информации основного тона и/или прототипа обычно включает в себя извлечение такой информации из остатка LPC и также может включать в себя объединение информации основного тона и/или прототипа из текущего кадра с такой информацией из одного или нескольких предыдущих кадров. Калькулятор 150 также может быть способен квантовать такое описание временной информации (например, в виде одного или нескольких индексов таблицы).
Калькулятор 150 может быть способен вычислять описание временной информации кадра, которое включает в себя сигнал возбуждения. Например, калькулятор 150 может быть способен выводить описание, которое включает в себя сигнал возбуждения, в ответ на указание схемы кодирования CELP. Вычисление сигнала возбуждения обычно включает в себя вывод такого сигнала из остатка LPC и также может включать в себя объединение информации возбуждения из текущего кадра с такой информацией из одного или нескольких предыдущих кадров. Калькулятор 150 также может быть способен квантовать такое описание временной информации (например, в виде одного или нескольких индексов таблицы). В случаях, когда речевой кодер 132 поддерживает релаксационную схему кодирования CELP (RCELP), калькулятор 150 может быть способен регуляризовать сигнал возбуждения.
На фиг. 22A показана блок-схема реализации 134 речевого кодера 132, которая включает в себя реализацию 152 калькулятора 150 описания временной информации. Калькулятор 152 способен вычислять описание временной информации для кадра (например, сигнал возбуждения, информацию основного тона и/или прототипа), который базируется на описании спектральной огибающей кадра, вычисляемой калькулятором 140 описания спектральной огибающей.
На фиг. 22B показана блок-схема реализации 154 калькулятора 152 описания временной информации, который способен вычислять описание временной информации на основании остатка LPC для кадра. В этом примере калькулятор 154 способен принимать описание спектральной огибающей кадра, вычисляемое калькулятором 142 описания спектральной огибающей. Блок деквантования A10 способен деквантовать описание, и блок обратного преобразования A20 способен применять обратное преобразование к деквантованному описанию для получения набора коэффициентов LPC. Отбеливающий фильтр A30 сконфигурирован согласно набору коэффициентов LPC и способен фильтровать речевой сигнал для создания остатка LPC. Блок квантования A40 способен квантовать описание временной информации для кадра (например, в виде одного или нескольких индексов таблицы), которое базируется на остатке LPC и, возможно, также на основании информации основного тона для кадра и/или временной информации из одного или нескольких предыдущих кадров.
Может быть желательно использовать реализацию речевого кодера 132 для кодирования кадров широкополосного речевого сигнала согласно схеме кодирования с расщепленной полосой. В таком случае калькулятор 140 описания спектральной огибающей может быть способен вычислять различные описания спектральных огибающих кадра по соответствующим частотным диапазонам последовательно и/или параллельно и, возможно, согласно разным режимам кодирования и/или скоростям. Калькулятор 150 описания временной информации также может быть способен вычислять описания временной информации кадра по различным частотным диапазонам последовательно и/или параллельно и, возможно, согласно разным режимам кодирования и/или скоростям.
На фиг. 23A показана блок-схема реализации 102 устройства 100, которое способно кодировать широкополосный речевой сигнал согласно схеме кодирования с расщепленной полосой. Устройство 102 включает в себя банк фильтров A50, который способен фильтровать речевой сигнал для создания сигнала поддиапазона, содержащего контент речевого сигнала по первому частотному диапазону (например, узкополосного сигнала), и сигнала поддиапазона, содержащего контент речевого сигнала по второму частотному диапазону (например, верхнеполосного сигнала). Конкретные примеры таких банков фильтров описаны, например, в опубликованной патентной заявке США № 2007/088558 (Vos и др.), “SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING”, опубликованной 19 апреля 2007 г. Например, банк фильтров A50 может включать в себя фильтр низких частот, способный фильтровать речевой сигнал для создания узкополосного сигнала, и фильтр высоких частот, способный фильтровать речевой сигнал для создания верхнеполосного сигнала. Банк фильтров A50 также может включать в себя блок понижения частоты дискретизации, способный снижать скорость дискретизации узкополосного сигнала и/или верхнеполосного сигнала согласно нужному соответствующему коэффициенту децимации, как описано, например, в опубликованной патентной заявке США № 2007/088558 (Vos и др.). Устройство 102 также может быть способно осуществлять операцию шумоподавления на, по меньшей мере, верхнеполосном сигнале, например операцию подавления верхнеполосного всплеска, описанную в опубликованной патентной заявке США № 2007/088541 (Vos и др.), “SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND BURST SUPPRESSION”, опубликованной 19 апреля 2007 г.
Устройство 102 также включает в себя реализацию 136 речевого кодера 130, которая способна кодировать отдельные сигналы поддиапазона согласно схеме кодирования, выбранной блоком 120 выбора схемы кодирования. На фиг. 23B показана блок-схема реализации 138 речевого кодера 136. Кодер 138 включает в себя калькулятор 140a спектральной огибающей (например, экземпляр калькулятора 142) и калькулятор 150a временной информации (например, экземпляр калькулятора 152 или 154), которые способны вычислять описания спектральных огибающих и временной информации соответственно на основании узкополосного сигнала, вырабатываемого банком фильтров A50 и согласно выбранной схеме кодирования. Кодер 138 также включает в себя калькулятор 140b спектральной огибающей (например, экземпляр калькулятора 142) и калькулятор 150b временной информации (например, экземпляр калькулятора 152 или 154), которые способны создавать вычисленные описания спектральных огибающих и временной информации соответственно на основании верхнеполосного сигнала, вырабатываемого банком фильтров A50 и согласно выбранной схеме кодирования. Кодер 138 также включает в себя реализацию 162 блока форматирования 160, способную создавать кодированный кадр, который включает в себя вычисленное описание спектральной огибающей и вычисленное описание временной информации.
Как отмечено выше, описание временной информации для верхнеполосного участка широкополосного речевого сигнала может базироваться на описании временной информации для узкополосного участка сигнала. На фиг. 24A показана блок-схема соответствующей реализации 139 широкополосного речевого кодера 136. Наподобие вышеописанного речевого кодера 138, кодер 139 включает в себя калькуляторы 140a и 140b описания спектральной огибающей, которые предназначены для вычисления соответствующих описаний спектральных огибающих. Речевой кодер 139 также включает в себя экземпляр 152a калькулятора 152 описания временной информации (например, калькулятора 154), который предназначен для вычисления описания временной информации на основании вычисленного описания спектральной огибающей для узкополосного сигнала. Речевой кодер 139 также включает в себя реализацию 156 калькулятора 150 описания временной информации. Калькулятор 156 способен вычислять описание временной информации для верхнеполосного сигнала, который базируется на описании временной информации для узкополосного сигнала.
На фиг. 24B показана блок-схема реализации 158 калькулятора 156 временного описания. Калькулятор 158 включает в себя генератор A60 верхнеполосного сигнала возбуждения, который способен генерировать верхнеполосный сигнал возбуждения на основании узкополосного сигнала возбуждения, выдаваемого калькулятором 152a. Например, генератор A60 может быть способен осуществлять операцию, например, спектрального расширения, гармонического расширения, нелинейного расширения, спектрального хэширования и/или спектральной трансляции на узкополосном сигнале возбуждения (или одном или нескольких их компонентах) для генерации верхнеполосного сигнала возбуждения. Дополнительно или альтернативно, генератор A60 может быть способен осуществлять спектральное и/или амплитудное формирование случайного шума (например, псевдослучайного гауссова шумового сигнала) для генерации верхнеполосного сигнала возбуждения. В случае когда генератор A60 использует псевдослучайного шумовой сигнал, может быть желательно синхронизировать генерацию этого сигнала посредством кодера и декодера. Такие способы и устройства для генерации верхнеполосного сигнала возбуждения более подробно описаны, например, в опубликованной патентной заявке США № 2007/0088542 (Vos и др.), “SYSTEMS, METHODS, AND APPARATUS FOR WIDEBAND SPEECH CODING”, опубликованной 19 апреля 2007 г. В примере, показанном на фиг. 24B, генератор A60 также способен принимать квантованный узкополосный сигнал возбуждения. В другом примере генератор A60 способен принимать узкополосный сигнал возбуждения в другой форме (например, в предварительно квантованной или деквантованной форме).
Калькулятор 158 также включает в себя фильтр синтеза A70, способный генерировать синтезированный верхнеполосный сигнал, который базируется на верхнеполосном сигнале возбуждения и описании спектральной огибающей верхнеполосного сигнала (например, создаваемом калькулятором 140b). Фильтр A70 обычно сконфигурирован согласно набору значений в описании спектральной огибающей верхнеполосного сигнала (например, одному или нескольким векторам коэффициентов LSP или LPC) для создания синтезированного верхнеполосного сигнала в ответ на верхнеполосный сигнал возбуждения. В примере, показанном на фиг. 24B, фильтр синтеза A70 способен принимать квантованное описание спектральной огибающей верхнеполосного сигнала и может быть способен соответственно включать в себя блок деквантования и, возможно, блок обратного преобразования. В другом примере фильтр A70 способен принимать описание спектральной огибающей верхнеполосного сигнала в другой форме (например, в предварительно квантованной или деквантованной форме).
Калькулятор 158 также включает в себя калькулятор A80 верхнеполосного коэффициента усиления, который способен вычислять описание временной огибающей верхнеполосного сигнала на основании временной огибающей синтезированного верхнеполосного сигнала. Калькулятор A80 может быть способен вычислять это описание для включения одного или нескольких расстояний между временной огибающей верхнеполосного сигнала и временной огибающей синтезированного верхнеполосного сигнала. Например, калькулятор A80 может быть способен вычислять такое расстояние как значение кадра усиления (например, как отношение между значениями энергии соответствующих кадров двух сигналов или как квадратный корень такого отношения). Дополнительно или альтернативно, калькулятор A80 может быть способен вычислять количество таких расстояний как значения формы усиления (например, как отношения между значениями энергии соответствующих подкадров двух сигналов или как квадратные корни таких отношений). В примере, показанном на фиг. 24B, калькулятор 158 также включает в себя блок квантования A90, способный квантовать вычисленное описание временной огибающей (например, как один или несколько индексов кодовой книги). Различные признаки и реализации элементов калькулятора 158 описаны, например, в вышеупомянутой опубликованной патентной заявке США № 2007/0088542 (Vos и др.).
Различные элементы реализации устройства 100 можно реализовать в виде любой комбинации оборудования, программного обеспечения и/или программно-аппаратного обеспечения, что считается пригодным для назначенного применения. Например, такие элементы можно изготавливать в виде электронных и/или оптических устройств, размещенных, например, на одной микросхеме или на двух или более микросхемах в наборе микросхем. Одним примером такого устройства является фиксированная или программируемая матрица логических элементов, например транзисторов или логических вентилей, и любой из этих элементов можно реализовать в виде одной или нескольких таких матриц. Любые два, или более, или даже все из этих элементов можно реализовать в одной и той же матрице или матрицах. Такую(ие) матрицу(ы) можно реализовать в одной или нескольких микросхемах (например, в наборе микросхем, включающем в себя две или более микросхем).
Один или несколько элементов различных реализаций устройства 100, описанных здесь, также можно реализовать в целом или частично в виде одного или нескольких наборов инструкций, способных выполняться на одной или нескольких фиксированных или программируемых матрицах логических элементов, например микропроцессорах, встроенных процессорах, ядрах IP, цифровых сигнальных процессорах, FPGA (вентильных матрицах, программируемых пользователем), ASSP (специализированных стандартных продуктах) и ASIC (специализированных интегральных схемах). Любой из различных элементов реализации устройства 100 также можно реализовать посредством одного или нескольких компьютеров (например, машин, включающих в себя одну или несколько матриц, программируемых на выполнение одного или нескольких наборов или последовательностей инструкций, также именуемых “процессорами”), и любые два, или более, или даже все из этих элементов можно реализовать в одном и том же таком компьютере или компьютерах.
Различные элементы реализации устройства 100 могут входить в состав устройства для беспроводной связи, например сотового телефона или другого устройства, имеющего такие возможности связи. Такое устройство может быть способно осуществлять связь с сетями с коммутацией каналов и/или с коммутацией пакетов (например, с использованием одного или нескольких протоколов, например VoIP). Такое устройство может быть способно осуществлять операции на сигнале, переносящим кодированные кадры, например перемежение, перфорирование, сверточное кодирование, кодирование с исправлением ошибок, кодирование одного или нескольких уровней сетевого протокола (например, Ethernet, TCP/IP, cdma2000), радиочастотную (РЧ) модуляцию и/или радиопередачу.
Один или несколько элементов реализации устройства 100 можно использовать для осуществления задач или выполнения других наборов инструкций, которые напрямую не относятся к работе устройства, например задачи, связанной с другой операцией устройства или системы, в состав которой входит устройство. Один или несколько элементов реализации устройства 100 также могут иметь общую структуру (например, процессор, используемый для выполнения участков кода, соответствующего разным элементам в разные моменты времени, набор инструкций, выполняемых для осуществления задач, соответствующих разным элементам в разные моменты времени, или конфигурация электронных и/или оптических устройств, осуществляющих операции для разных элементов в разные моменты времени). В одном таком примере детектор 110 речевой активности, блок 120 выбора схемы кодирования и речевой кодер 130 реализуются в виде наборов инструкций, способных выполняться на одном и том же процессоре. В другом таком примере калькуляторы 140a и 140b описания спектральной огибающей реализуются в виде того же набора инструкций, выполняющихся в разные моменты времени.
На фиг. 25A показана логическая блок-схема способа M200 обработки кодированного речевого сигнала согласно общей конфигурации. Способ M200 способен принимать информацию из двух кодированных кадров и создавать описания спектральных огибающих двух соответствующих кадров речевого сигнала. На основании информации из первого кодированного кадра (также именуемого “опорным” кодированным кадром) задача T210 получает описание спектральной огибающей первого кадра речевого сигнала по первому и второму частотным диапазонам. На основании информации из второго кодированного кадра задача T220 получает описание спектральной огибающей второго кадра речевого сигнала (также именуемого “целевым” кадром) по первому частотному диапазону. На основании информации из опорного кодированного кадра задача T230 получает описание спектральной огибающей целевого кадра по второму частотному диапазону.
На фиг. 26 показано применение способа M200, который принимает информацию из двух кодированных кадров и создает описания спектральных огибающих двух соответствующих неактивных кадров речевого сигнала. На основании информации из опорного кодированного кадра задача T210 получает описание спектральной огибающей первого неактивного кадра по первому и второму частотным диапазонам. Это описание может быть единым описанием, которое простирается по обоим частотным диапазонам, или может включать в себя отдельные описания, каждое из которых простирается по соответствующему одному из частотных диапазонов. На основании информации из второго кодированного кадра задача T220 получает описание спектральной огибающей целевого неактивного кадра по первому частотному диапазону (например, по узкополосному диапазону). На основании информации из опорного кодированного кадра задача T230 получает описание спектральной огибающей целевого неактивного кадра по второму частотному диапазону (например, по верхнеполосному диапазону).
На фиг. 26 показан пример, в котором описания спектральных огибающих имеют порядки LPC и в котором порядок LPC описания спектральной огибающей целевого кадра по второму частотному диапазону меньше порядка LPC описания спектральной огибающей целевого кадра по первому частотному диапазону. Другие примеры включают в себя случаи, когда порядок LPC описания спектральной огибающей целевого кадра по второму частотному диапазону составляет, по меньшей мере, пятьдесят процентов, по меньшей мере, шестьдесят процентов, не более семидесяти пяти процентов, не более восьмидесяти процентов, равен и больше порядка LPC описания спектральной огибающей целевого кадра по первому частотному диапазону. В конкретном примере порядки LPC описаний спектральной огибающей целевого кадра по первому и второму частотным диапазонам равны соответственно десяти и шести. На фиг. 26 также показан пример, в котором порядок LPC описания спектральной огибающей первого неактивного кадра по первому и второму частотным диапазонам равен сумме порядков LPC описаний спектральной огибающей целевого кадра по первому и второму частотным диапазонам. В другом примере порядок LPC описания спектральной огибающей первого неактивного кадра по первому и второму частотным диапазонам может быть больше или меньше суммы порядков LPC описаний спектральной огибающей целевого кадра по первому и второму частотным диапазонам.
Каждая из задач T210 и T220 может быть способна включать в себя одну или обе из следующих двух операций: разложения кодированного кадра для выделения квантованного описания спектральной огибающей и деквантования квантованного описания спектральной огибающей для получения набора параметров модели кодирования для кадра. Типичные реализации задачи T210 и T220 включают в себя обе эти операции, в результате чего каждая задача обрабатывает соответствующий кодированный кадр для создания описания спектральной огибающей в форме набора параметров модели (например, одного или нескольких LSF, LSP, ISF, ISP и/или векторов коэффициентов LPC). В одном конкретном примере опорный кодированный кадр имеет длину восемьдесят битов, и второй кодированный кадр имеет длину шестнадцать битов. В других примерах длина второго кодированного кадра не превышает двадцати, двадцати пяти, тридцати, сорока, пятидесяти или шестидесяти процентов длины опорного кодированного кадра.
Опорный кодированный кадр может включать в себя квантованное описание спектральной огибающей по первому и второму частотным диапазонам, и второй кодированный кадр может включать в себя квантованное описание спектральной огибающей по первому частотному диапазону. В одном конкретном примере квантованное описание спектральной огибающей по первому и второму частотным диапазонам, включенное в опорный кодированный кадр, имеет длину сорок битов, и квантованное описание спектральной огибающей по первому частотному диапазону, включенное во второй кодированный кадр, имеет длину десять битов. В других примерах длина квантованного описания спектральной огибающей по первому частотному диапазону, включенного во второй кодированный кадр, не превышает двадцати пяти, тридцати, сорока, пятидесяти или шестидесяти процентов длины квантованного описания спектральной огибающей по первому и второму частотным диапазонам, включенного в опорный кодированный кадр.
Задачи T210 и T220 также можно реализовать для создания описаний временной информации на основании информации из соответствующих кодированных кадров. Например, одна или обе из этих задач могут быть способны получать на основании информации из соответствующего кодированного кадра описание временной огибающей, описание сигнала возбуждения и/или описание информации основного тона. Для получения описания спектральной огибающей такая задача может включать в себя разложение квантованного описания временной информации из кодированного кадра и/или деквантование квантованного описания временной информации. Реализации способа M200 также могут быть сконфигурированы так, чтобы задача T210 и/или задача T220 получала описание спектральной огибающей и/или описание временной информации также на основании информации из одного или нескольких других кодированных кадров, например информации из одного или нескольких предыдущих кодированных кадров. Например, описание сигнала возбуждения и/или информации основного тона кадра обычно основано на информации из предыдущих кадров.
Опорный кодированный кадр может включать в себя квантованное описание временной информации для первого и второго частотных диапазонов, и второй кодированный кадр может включать в себя квантованное описание временной информации для первого частотного диапазона. В одном конкретном примере квантованное описание временной информации для первого и второго частотных диапазонов, включенное в опорный кодированный кадр, имеет длину тридцать четыре бита, и квантованное описание временной информации для первого частотного диапазона, включенное во второй кодированный кадр, имеет длину пять битов. В других примерах длина квантованного описания временной информации для первого частотного диапазона, включенного во второй кодированный кадр, не превышает пятнадцати, двадцати, двадцати пяти, тридцати, сорока, пятидесяти или шестидесяти процентов длины квантованного описания временной информации для первого и второго частотных диапазонов, включенного в опорный кодированный кадр.
Способ M200 обычно осуществляется как часть более обширного способа речевого декодирования, и речевые декодеры и способы речевого декодирования, которые способны осуществлять способ M200, в прямой форме предусмотрены и, таким образом, раскрыты. Речевой кодер может быть способен осуществлять реализацию способа M100 на кодере и осуществлять реализацию способа M200 на декодере. В таком случае “второй кадр”, кодируемый посредством задачи T120, соответствует опорному кодированному кадру, который поставляет информацию, обрабатываемую посредством задач T210 и T230, и “третий кадр”, кодируемый посредством задачи T130, соответствует кодированному кадру, который поставляет информацию, обрабатываемую посредством задачи T220. На фиг. 27A показана эта связь между способами M100 и M200 с использованием примера последовательности последовательных кадров, кодированных с использованием способа M100 и декодированных с использованием способа M200. Альтернативно, речевой кодер может быть способен осуществлять реализацию способа M300 на кодере и осуществлять реализацию способа M200 на декодере. На фиг. 27B показана эта связь между способами M300 и M200 с использованием примера пары последовательных кадров, кодированных с использованием способа M300 и декодированных с использованием способа M200.
Заметим, однако, что способ M200 также можно применять для обработки информации из кодированных кадров, которые не являются последовательными. Например, способ M200 можно применять так, чтобы задачи T220 и T230 обрабатывали информацию из соответствующих кодированных кадров, которые не являются последовательными. Способ M200 обычно реализуется таким образом, чтобы задача T230 повторно выполнялась в отношении опорного кодированного кадра и задача T220 повторно выполнялась по последовательности последовательных кодированных неактивных кадров, которые следуют за опорным кодированным кадром, для создания соответствующей последовательности последовательных целевых кадров. Такая итерация может повторяться, например, пока не будет принят новый опорный кодированный кадр, пока не будет принят кодированный активный кадр и/или пока не будет создано максимальное количество целевых кадров.
Задача T220 способна получать описание спектральной огибающей целевого кадра по первому частотному диапазону на основании, по меньшей мере частично, информации из второго кодированного кадра. Например, задача T220 может быть способна получать описание спектральной огибающей целевого кадра по первому частотному диапазону целиком на основании информации из второго кодированного кадра. Альтернативно, задача T220 может быть способна получать описание спектральной огибающей целевого кадра по первому частотному диапазону также на основании другой информации, например информации из одного или нескольких предыдущих кодированных кадров. В таком случае задача T220 способна взвешивать информацию из второго кодированного кадра в большей степени, чем другую информацию. Например, такая реализация задачи T220 может быть способна вычислять описание спектральной огибающей целевого кадра по первому частотному диапазону как среднее информации из второго кодированного кадра и информации из предыдущего кодированного кадра, причем информация из второго кодированного кадра взвешивается в большей степени, чем информация из предыдущего кодированного кадра. Аналогично, задача T220 может быть способна получать описание временной информации целевого кадра для первого частотного диапазона на основании, по меньшей мере частично, информации из второго кодированного кадра.
На основании информации из опорного кодированного кадра (также именуемой здесь “опорной спектральной информацией”) задача T230 получает описание спектральной огибающей целевого кадра по второму частотному диапазону. На фиг. 25B показана логическая блок-схема реализации M210 способа M200, который включает в себя реализацию T232 задачи T230. В качестве реализации задачи T230 задача T232 получает описание спектральной огибающей целевого кадра по второму частотному диапазону на основании опорной спектральной информации. В этом случае опорная спектральная информация включена в описание спектральной огибающей первого кадра речевого сигнала. На фиг. 28 показано применение способа M210, который принимает информацию из двух кодированных кадров и создает описания спектральных огибающих двух соответствующих неактивных кадров речевого сигнала.
Задача T230 способна получать описание спектральной огибающей целевого кадра по второму частотному диапазону на основании, по меньшей мере частично, опорной спектральной информации. Например, задача T230 может быть способна получать описание спектральной огибающей целевого кадра по второму частотному диапазону целиком на основании опорной спектральной информации. Альтернативно, задача T230 может быть способна получать описание спектральной огибающей целевого кадра по второму частотному диапазону на основании (A) описания спектральной огибающей по второму частотному диапазону, которая базируется на опорной спектральной информации, и (B) описания спектральной огибающей по второму частотному диапазону, которая базируется на информации из второго кодированного кадра.
В таком случае задача T230 может быть способна взвешивать описание, базирующееся на опорной спектральной информации, в большей степени, чем описание, базирующееся на информации из второго кодированного кадра. Например, такая реализация задачи T230 может быть способна вычислять описание спектральной огибающей целевого кадра по второму частотному диапазону как среднее описаний на основании опорной спектральной информации и информации из второго кодированного кадра, причем описание, базирующееся на опорной спектральной информации, взвешивается в большей степени, чем описание, базирующееся на информации из второго кодированного кадра. В другом случае порядок LPC описания, базирующегося на опорной спектральной информации, может быть больше, чем порядок LPC описания, базирующегося на информации из второго кодированного кадра. Например, порядок LPC описания, базирующегося на информации из второго кодированного кадра, может быть равен единице (например, значению спектрального наклона). Аналогично, задача T230 может быть способна получать описание временной информации целевого кадра для второго частотного диапазона на основании, по меньшей мере частично, опорной временной информации (например, целиком на основании опорной временной информации или на основании также и в меньшей степени информации из второго кодированного кадра).
Задачу T210 можно реализовать для получения из опорного кодированного кадра описания спектральной огибающей, которое является единым полнополосным представлением по первому и второму частотным диапазонам. Более типично, однако, реализовать задачу T210 для получения этого описания в качестве отдельных описаний спектральной огибающей по первому частотному диапазону и по второму частотному диапазону. Например, задача T210 может быть способна получать отдельные описания из опорного кодированного кадра, который был кодирован с использованием описанной здесь схемы кодирования с расщепленной полосой (например, схемы кодирования 2).
На фиг. 25C показана логическая блок-схема реализации M220 способа M210, в котором задача T210 реализуется как две задачи T212a и T212b. На основании информации из опорного кодированного кадра задача T212a получает описание спектральной огибающей первого кадра по первому частотному диапазону. На основании информации из опорного кодированного кадра задача T212b получает описание спектральной огибающей первого кадра по второму частотному диапазону. Каждая из задач T212a и T212b может включать в себя разложение квантованного описания спектральной огибающей из соответствующего кодированного кадра и/или деквантование квантованного описания спектральной огибающей. На фиг. 29 показано применение способа M220, который принимает информацию из двух кодированных кадров и создает описания спектральных огибающих двух соответствующих неактивных кадров речевого сигнала.
Способ M220 также включает в себя реализацию T234 задачи T232. В качестве реализации задачи T230 задача T234 получает описание спектральной огибающей целевого кадра по второму частотному диапазону, которое базируется на опорной спектральной информации. Как и в задаче T232, опорная спектральная информация включена в описание спектральной огибающей первого кадра речевого сигнала. В конкретном случае задачи T234 опорная спектральная информация включена в (и, возможно, в то же самое) описание спектральной огибающей первого кадра по второму частотному диапазону.
На фиг. 29 показан пример, в котором описания спектральных огибающих имеют порядки LPC и в котором порядки LPC описаний спектральных огибающих первого неактивного кадра по первому и второму частотным диапазонам равны порядкам LPC описаний спектральных огибающих целевого неактивного кадра по соответствующим частотным диапазонам. Другие примеры включают в себя случаи, когда одно или оба описания спектральных огибающих первого неактивного кадра по первому и второму частотным диапазонам больше соответствующего описания спектральной огибающей целевого неактивного кадра по соответствующему частотному диапазону.
Опорный кодированный кадр может включать в себя квантованное описание для описания спектральной огибающей по первому частотному диапазону и квантованное описание для описания спектральной огибающей по второму частотному диапазону. В одном конкретном примере квантованное описание для описания спектральной огибающей по первому частотному диапазону, включенное в опорный кодированный кадр, имеет длину двадцать восемь битов, и квантованное описание для описания спектральной огибающей по второму частотному диапазону, включенное в опорный кодированный кадр, имеет длину двенадцать битов. В других примерах длина квантованного описания для описания спектральной огибающей по второму частотному диапазону, включенного в опорный кодированный кадр, не превышает сорока пяти, пятидесяти, шестидесяти или семидесяти процентов длины квантованного описания для описания спектральной огибающей по первому частотному диапазону, включенного в опорный кодированный кадр.
Опорный кодированный кадр может включать в себя квантованное описание для описания временной информации для первого частотного диапазона и квантованное описание для описания временной информации для второго частотного диапазона. В одном конкретном примере квантованное описание для описания временной информации для второго частотного диапазона, включенное в опорный кодированный кадр, имеет длину пятнадцать битов, и квантованное описание для описания временной информации для первого частотного диапазона, включенное в опорный кодированный кадр, имеет длину девятнадцать битов. В других примерах длина квантованного описания временной информации для второго частотного диапазона, включенного в опорный кодированный кадр, не превышает восемнадцати или девятнадцати процентов длины квантованного описания для описания временной информации для первого частотного диапазона, включенного в опорный кодированный кадр.
Второй кодированный кадр может включать в себя квантованное описание спектральной огибающей по первому частотному диапазону и/или квантованное описание временной информации для первого частотного диапазона. В одном конкретном примере квантованное описание для описания спектральной огибающей по первому частотному диапазону, включенное во второй кодированный кадр, имеет длину десять битов. В других примерах длина квантованного описания для описания спектральной огибающей по первому частотному диапазону, включенного во второй кодированный кадр, не превышает сорока, пятидесяти, шестидесяти, семидесяти или семидесяти пяти процентов длины квантованного описания для описания спектральной огибающей по первому частотному диапазону, включенного в опорный кодированный кадр. В одном конкретном примере квантованное описание для описания временной информации для первого частотного диапазона, включенного во второй кодированный кадр, имеет длину пять битов. В других примерах длина квантованного описания для описания временной информации для первого частотного диапазона, включенного во второй кодированный кадр, не превышает тридцати, сорока, пятидесяти, шестидесяти или семидесяти процентов длины квантованного описания для описания временной информации для первого частотного диапазона, включенного в опорный кодированный кадр.
В типичной реализации способа M200 опорная спектральная информация является описанием спектральной огибающей по второму частотному диапазону. Это описание может включать в себя набор параметров модели, например одного или нескольких LSP, LSF, ISP, ISF или векторов коэффициентов LPC. В общем случае это описание является описанием спектральной огибающей первого неактивного кадра по второму частотному диапазону, полученным из опорного кодированного кадра посредством задачи T210. Также возможно, что опорная спектральная информация, включает в себя описание спектральной огибающей (например, первого неактивного кадра) по первому частотному диапазону и/или по другому частотному диапазону.
Задача T230 обычно включает в себя операцию извлечения опорной спектральной информации из матрицы элементов хранения, например полупроводниковой памяти (также именуемой здесь “буфером”). В случае когда опорная спектральная информация включает в себя описание спектральной огибающей по второму частотному диапазону, операции извлечения опорной спектральной информации может быть достаточно для осуществления задачи T230. Однако даже в этом случае может быть желательно конфигурировать задачу T230 для вычисления описания спектральной огибающей целевого кадра по второму частотному диапазону (также именуемой здесь “целевое спектральное описание”), а не просто для его извлечения. Например, задача T230 может быть способна вычислять целевое спектральное описание путем прибавления случайного шума к опорной спектральной информации. Альтернативно или дополнительно, задача T230 может быть способна вычислять описание на основании спектральной информации из одного или нескольких дополнительных кодированных кадров (например, на основании информации из более чем одного опорного кодированного кадра). Например, задача T230 может быть способна вычислять целевое спектральное описание как среднее описаний спектральных огибающих по второму частотному диапазону из двух или более опорных кодированных кадров, и такое вычисление может включать в себя прибавление случайного шума к вычисленному среднему.
Задача T230 может быть способна вычислять целевое спектральное описание путем экстраполяции по времени из опорной спектральной информации или путем интерполяции по времени между описаниями спектральных огибающих по второму частотному диапазону из двух или более опорных кодированных кадров. Альтернативно или дополнительно, задача T230 может быть способна вычислять целевое спектральное описание путем экстраполяции по частоте из описания спектральной огибающей целевого кадра по другому частотному диапазону (например, по первому частотному диапазону) и/или путем интерполяции по частоте между описаниями спектральных огибающих по другим частотным диапазонам.
s
s
i
n
s
z
z
t
r
t
Обычно опорная спектральная информация и целевое спектральное описание являются векторами значений спектральных параметров (или “спектральных векторов”). В одном таком примере целевой и опорный спектральные векторы являются векторами LSP. В другом примере целевой и опорный спектральные векторы являются векторами коэффициентов LPC. В еще одном примере целевой и опорный спектральные векторы являются векторами коэффициентов отражения. Задача T230 может быть способна копировать целевое спектральное описание из опорной спектральной информации согласно выражению, например, , где  - целевой спектральный вектор,  - опорный спектральный вектор (значения которых обычно находятся в пределах от -1 до +1),  - индекс элемента вектора, и  - длина вектора . В одном варианте этой операции задача T230 способна применять весовой коэффициент (или вектор весовых коэффициентов) к опорному спектральному вектору. В другом варианте этой операции задача T230 способна вычислять целевой спектральный вектор путем прибавления случайного шума к опорному спектральному вектору согласно выражению, например, , где  - вектор случайных значений. В таком случае каждый элемент  может быть случайной переменной, значения которой распределены (например, равномерно) по нужному диапазону.
w
z
Может быть желательно гарантировать, что значения целевого спектрального описания ограничены (например, находятся в пределах от -1 до +1). В таком случае задача T230 может быть способна вычислять целевое спектральное описание согласно выражению, например, , где  имеет значение между нулем и единицей (например, в пределах от 0,3 до 0,9), и значения каждого элемента  распределены (например, равномерно) в пределах от  до +.
s
s
r1
r2
В другом примере задача T230 способна вычислять целевое спектральное описание на основании описания спектральной огибающей по второму частотному диапазону из каждого из более чем одного опорного кодированного кадра (например, из каждого из двух самых недавних опорных кодированных кадра). В одном таком примере задача T230 способна вычислять целевое спектральное описание как среднее информации из опорных кодированных кадров согласно выражению, например, , где  обозначает спектральный вектор из самого недавнего опорного кодированного кадра и  обозначает спектральный вектор из следующего после самого недавнего опорного кодированного кадра. В соответствующем примере опорные векторы взвешиваются иначе, чем другие (например, вектор из более недавнего опорного кодированного кадра может иметь больший вес).
s
t
В еще одном примере задача T230 способна генерировать целевое спектральное описание как набор случайных значений по диапазону на основании информации из двух или более опорных кодированных кадров. Например, задача T230 может быть способна вычислять целевой спектральный вектор  как рандомизированное среднее спектральных векторов из каждого из двух самых недавних опорных кодированных кадров согласно выражению, например:
,
z
n
i
z
s
ti
где значения каждого элемента  распределены (например, равномерно) в пределах от -1 до +1. На фиг. 30A показан результат (для одного из  значений ) итерирования такой реализации задачи T230 для каждого из последовательности последовательных целевых кадров, причем случайный вектор  повторно оценивается для каждой итерации, где пунктирные кружки указывают значения .
p
p
j
Задача T230 может быть способна вычислять целевое спектральное описание путем интерполяции между описаниями спектральных огибающих по второму частотному диапазону из двух самых недавних опорных кадров. Например, задача T230 может быть способна осуществлять линейную интерполяцию по последовательности из  целевых кадров, где  - регулируемый параметр. В таком случае задача T230 может быть способна вычислять целевой спектральный вектор для -го целевого кадра в последовательности согласно выражению, например:
, где  и .
n
i
p
s
p
ti
На фиг. 30B показан (для одного из  значений ) результат итерирования такой реализации задачи T230 по последовательности последовательных целевых кадров, где  равно восьми и каждый пунктирный кружок указывает значение  для соответствующего целевого кадра. Другие примеры значений  включают в себя 4, 16 и 32. Может быть желательно, чтобы такая реализация задачи T230 была способна прибавлять случайный шум к интерполированному описанию.
s
s
p
mp
m
p
m
r1
t
На фиг. 30B также показан пример, в котором задача T230 способна копировать опорный вектор  в целевой вектор  для каждого последующего целевого кадра в последовательности, более длинной, чем  (например, пока не будет принят новый опорный кодированный кадр или следующий активный кадр). В соответствующем примере последовательность целевых кадров имеет длину , где  - целое число, большее единицы (например, два или три), и каждый из  вычисленных векторов используется как целевое спектральное описание для каждого из  соответствующих последовательных целевых кадров в последовательности.
p
j
Задачу T230 можно реализовать многими разными способами для осуществления интерполяции между описаниями спектральных огибающих по второму частотному диапазону из двух самых недавних опорных кадров. В другом примере задача T230 способна осуществлять линейную интерполяцию по последовательности из  целевых кадров путем вычисления целевого вектора для -го целевого кадра в последовательности согласно паре выражений, например:
, где ,
j
для всех целых , таких что , и
, где .
j
n
i
q
p
для всех целых , таких что . На фиг. 30C показан результат (для одного из  значений ) итерирования такой реализации задачи T230 для каждого из последовательности последовательных целевых кадров, где  имеет значение четыре и  имеет значение восемь. Такая конфигурация может обеспечивать более плавный переход к первому целевому кадру, чем результат, показанный на фиг. 30B.
q
p
q
p
p
m
mp
s
s
p
r1
t
Задачу T230 можно реализовать аналогичным образом для любых положительных целочисленных значений  и ; конкретные примеры значений (, ), которые можно использовать, включают в себя (4, 8), (4, 12), (4, 16), (8, 16), (8, 24), (8, 32) и (16, 32). В соответствующем вышеописанном примере каждый из  вычисленных векторов используется как целевое спектральное описание для каждого из  соответствующих последовательных целевых кадров в последовательности  целевых кадров. Может быть желательно, чтобы такая реализация задачи T230 была способна прибавлять случайный шум к интерполированному описанию. На фиг. 30C также показан пример, в котором задача T230 способна копировать опорный вектор  в целевой вектор  для каждого последующего целевого кадра в последовательности, более длинной, чем  (например, пока не будет принят новый опорный кодированный кадр или следующий активный кадр).
Задачу T230 также можно реализовать для вычисления целевого спектрального описания на основании, помимо опорной спектральной информации, спектральной огибающей одного или нескольких кадров по другому частотному диапазону. Например, такая реализация задачи T230 может быть способна вычислять целевое спектральное описание путем экстраполяции по частоте из спектральной огибающей текущего кадра и/или одного или нескольких предыдущих кадров по другому частотному диапазону (например, первому частотному диапазону).
Задача T230 также может быть способна получать описание временной информации целевого неактивного кадра по второму частотному диапазону на основании информации из опорного кодированного кадра (также именуемой здесь “опорной временной информацией”). Опорная временная информация обычно является описанием временной информации по второму частотному диапазону. Это описание может включать в себя одно или несколько значений кадра усиления, значений профиля усиления, значений параметра основного тона и/или индексов кодовой книги. В общем случае это описание является описанием временной информации первого неактивного кадра по второму частотному диапазону, полученным из опорного кодированного кадра посредством задачи T210. Опорная временная информация также может включать в себя описание временной информации (например, первого неактивного кадра) по первому частотному диапазону и/или по другому частотному диапазону.
Задача T230 может быть способна получать описание временной информации целевого кадра по второму частотному диапазону (также именуемое здесь “целевым временным описанием”) путем копирования опорной временной информации. Альтернативно, может быть желательно конфигурировать задачу T230 для получения целевого временного описания путем его вычисления на основании опорной временной информации. Например, задача T230 может быть способна вычислять целевое временное описание путем прибавления случайного шума к опорной временной информации. Задача T230 также может быть способна вычислять целевое временное описание на основании информации из более чем одного опорного кодированного кадра. Например, задача T230 может быть способна вычислять целевое временное описание как среднее описаний временной информации по второму частотному диапазону из двух или более опорных кодированных кадров, и такое вычисление может включать в себя прибавление случайного шума к вычисленному среднему.
Целевое временное описание и опорная временная информация могут включать в себя описание временной огибающей. Как отмечено выше, описание временной огибающей может включать в себя значение кадра усиления и/или набор значений формы усиления. Альтернативно или дополнительно, целевое временное описание и опорная временная информация могут включать в себя описание сигнала возбуждения. Описание сигнала возбуждения может включать в себя описание компонента основного тона (например, отставание основного тона, усиление основного тона и/или описание прототипа).
Задача T230 обычно способна задавать плоскую форму усиления целевого временного описания. Например, задача T230 может быть способна задавать значения формы усиления целевого временного описания равными друг другу. Одна такая реализация задачи T230 способна задавать все значения формы усиления равными коэффициенту единица (например, нуль дБ). Другая такая реализация задачи T230 способна задавать все значения формы усиления равными коэффициенту 1/n, где n - количество значений формы усиления в целевом временном описании.
g
g
z
w
z
w
t
r
Задачу T230 можно повторно осуществлять для вычисления целевого временного описания для каждого из последовательности целевых кадров. Например, задача T230 может быть способна вычислять значения кадра усиления для каждого из последовательности последовательных целевых кадров на основании значения кадра усиления из самого недавнего опорного кодированного кадра. В таких случаях может быть желательно конфигурировать задачу T230 для прибавления случайного шума к значению кадра усиления для каждого целевого кадра (альтернативно, для прибавления случайного шума к значению кадра усиления для каждого целевого кадра после первого в последовательности), поскольку иначе последовательности временных огибающих могут восприниматься как неестественно гладкие. Такая реализация задачи T230 может быть способна вычислять значение кадра усиления  для каждого целевого кадра в последовательности согласно выражению, например  или , где  - значение кадра усиления из опорного кодированного кадра,  - случайное значение, которое повторно оценивается для каждого из последовательности целевых кадров, и  - весовой коэффициент. Типичные диапазоны значений  включают в себя от 0 до 1 и от -1 до +1. Типичные диапазоны значений  включают в себя от 0,5 (или 0,6) до 0,9 (или 1,0).
g
g
r1
r2
Задача T230 может быть способна вычислять значение кадра усиления для целевого кадра на основании значений кадра усиления из двух или трех самых недавних опорных кодированных кадров. В одном таком примере задача T230 способна вычислять значение кадра усиления для целевого кадра как среднее согласно выражению, например, , где  - значение кадра усиления из самого недавнего опорного кодированного кадра, и - значение кадра усиления из следующего после самого недавнего опорного кодированного кадра. В соответствующем примере значения опорного кадра усиления взвешиваются по разному (например, более недавнее значение можно взвешивать в большей степени). Может быть желательно реализовать задачу T230 для вычисления значения кадра усиления для каждого в последовательности целевых кадров на основании такого среднего. Например, такая реализация задачи T230 может быть способна вычислять значение кадра усиления для каждого целевого кадра в последовательности (альтернативно, для каждого целевого кадра после первого в последовательности) путем прибавления разного значения случайного шума к вычисленному среднему значению кадра усиления.
g
g
g
g
g
cur
prev
t
t
cur
В другом примере задача T230 способна вычислять значение кадра усиления для целевого кадра в качестве скользящего среднего значений кадра усиления из последовательных опорных кодированных кадров. Такая реализация задачи T230 может быть способна вычислять целевое значение кадра усиления в качестве текущего значения скользящего среднего значения кадра усиления согласно авторегрессивному (AR) выражению, например, , где  и  являются текущим и предыдущим значениями скользящего среднего соответственно. Для коэффициента сглаживания α может быть желательно использовать значения между 0,5 или 0,75 и 1, например ноль целых, восемь десятых (0,8) или ноль целых, девять десятых (0,9). Может быть желательно реализовать задачу T230 для вычисления значения  для каждого из последовательности целевых кадров на основании такого скользящего среднего. Например, такая реализация задачи T230 может быть способна вычислять значение  для каждого целевого кадра в последовательности (альтернативно, для каждого целевого кадра после первого в последовательности) путем прибавления разного значения случайного шума к скользящему среднему значению кадра усиления .
g
g
g
t
t
cur
В еще одном примере задача T230 способна применять коэффициент затухания к вкладу из опорной временной информации. Например, задача T230 может быть способна вычислять скользящее среднее значение кадра усиления согласно выражению, например, , где коэффициент затухания β - регулируемый параметр, имеющий значение, меньшее единицы, например значение в пределах от 0,5 до 0,9 (например, ноль целых, шесть десятых (0,6)). Может быть желательно реализовать задачу T230 для вычисления значения  для каждого из последовательности целевых кадров на основании такого скользящего среднего. Например, такая реализация задачи T230 может быть способна вычислять значение  для каждого целевого кадра в последовательности (альтернативно, для каждого целевого кадра после первого в последовательности) путем прибавления разного значения случайного шума к скользящему среднему значению кадра усиления .
Может быть желательно повторно осуществлять задачу T230 для вычисления целевых спектральных и временных описаний для каждого из последовательности целевых кадров. В таком случае задача T230 может быть способна обновлять целевые спектральные и временные описания на разных скоростях. Например, такая реализация задачи T230 может быть способна вычислять разные целевые спектральные описания для каждого целевого кадра, но использовать одно и то же целевое временное описание для нескольких последовательных целевых кадров.
Реализации способа M200 (включающие в себя способы M210 и M220) обычно способны включать в себя операцию сохранения опорной спектральной информации в буфере. Такая реализация способа M200 также может включать в себя операцию сохранения опорной временной информации в буфере. Альтернативно, такая реализация способа M200 может включать в себя операцию сохранения опорной спектральной информации и опорной временной информации в буфере.
Разные реализации способа M200 могут использовать разные критерии принятия решения, сохранять ли информацию на основании кодированного кадра в качестве опорной спектральной информации. Решение на сохранение опорной спектральной информации обычно опирается на схему кодирования кодированного кадра и также может базироваться на схемах кодирования одного или нескольких предыдущих и/или последующих кодированных кадров. Такая реализация способа M200 может быть способна использовать один и тот же или разные критерии при принятии решения, сохранять ли опорную временную информацию.
Может быть желательно реализовать способ M200 таким образом, чтобы сохраненная опорная спектральная информация была доступна для более чем одного опорного кодированного кадра одновременно. Например, задача T230 может быть способна вычислять целевое спектральное описание, которое базируется на информации из более чем одного опорного кадра. В таких случаях способ M200 может быть способен поддерживать при хранении, в любой момент времени, опорную спектральную информацию из самого недавнего опорного кодированного кадра, информацию из второго самого недавнего опорного кодированного кадра и, возможно, также информацию из одного или нескольких менее недавних опорных кодированных кадров. Такой способ также может быть способен поддерживать одну и ту же историю или другую историю для опорной временной информации. Например, способ M200 может быть способен сохранять описание спектральной огибающей из каждого из двух самых недавних опорных кодированных кадров и описание временной информации только из самого недавнего опорного кодированного кадра.
Как отмечено выше, каждый из кодированных кадров может включать в себя индекс кодирования, который идентифицирует схему кодирования или скорость или режим кодирования, согласно которым кодируется кадр. Альтернативно, речевой декодер может быть способен определять, по меньшей мере, часть индекса кодирования из кодированного кадра. Например, речевой декодер может быть способен определять битовую скорость кодированного кадра из одного или нескольких параметров, например энергии кадра. Аналогично, для кодера, который поддерживает более одного режима кодирования для конкретной скорости кодирования, речевой декодер может быть способен определять нужный режим кодирования из формата кодированного кадра.
Не все кодированные кадры в кодированном речевом сигнале будут квалифицироваться как опорные кодированные кадры. Например, кодированный кадр, который не включает в себя описание спектральной огибающей по второму частотному диапазону, будет в общем случае не пригоден для использования в качестве опорного кодированного кадра. В некоторых применениях может быть желательно рассматривать любой кодированный кадр, который содержит описание спектральной огибающей по второму частотному диапазону, как опорный кодированный кадр.
Соответствующая реализация способа M200 может быть способна сохранять информацию на основании текущего кодированного кадра в качестве опорной спектральной информации, если кадр содержит описание спектральной огибающей по второму частотному диапазону. Применительно к набору схем кодирования, показанному на фиг. 18, например, такая реализация способа M200 может быть способна сохранять опорную спектральную информацию, если индекс кодирования кадра указывает одну из схем кодирования 1 и 2 (т.е. не схему кодирования 3). В целом такая реализация способа M200 может быть способна сохранять опорную спектральную информацию, если индекс кодирования кадра указывает широкополосную схему кодирования, а не узкополосную схему кодирования.
Может быть желательно реализовать способ M200 для получения целевых спектральных описаний (т.е. для осуществления задачи T230) только для целевых кадров, которые являются неактивными. В таких случаях может быть желательно, чтобы опорная спектральная информация базировалась только на кодированных неактивных кадрах, но не на кодированных активных кадрах. Хотя активные кадры включают в себя фоновый шум, опорная спектральная информация на основании кодированного активного кадра будет также, скорее всего, включать в себя информацию, связанную с речевыми компонентами, которые могут повреждать целевое спектральное описание.
Такая реализация способа M200 может быть способна сохранять информацию на основании текущего кодированного кадра в качестве опорной спектральной информации, если индекс кодирования кадра указывает конкретный режим кодирования (например, NELP). Другие реализации способа M200 способны сохранять информацию на основании текущего кодированного кадра в качестве опорной спектральной информации, если индекс кодирования кадра указывает конкретную скорость кодирования (например, половинную скорость). Другие реализации способа M200 способны сохранять информацию на основании текущего кодированного кадра в качестве опорной спектральной информации согласно комбинации таких критериев: например, если индекс кодирования кадра указывает, что кадр содержит описание спектральной огибающей по второму частотному диапазону, и также указывает конкретный режим кодирования и/или скорость. Дополнительные реализации способа M200 способны сохранять информацию на основании текущего кодированного кадра в качестве опорной спектральной информации, если индекс кодирования кадра указывает конкретную схему кодирования (например, схему кодирования 2 в примере согласно фиг. 18 или широкополосную схему кодирования, которая зарезервирована для использования с неактивными кадрами в другом примере).
Может быть невозможно определять, является ли кадр активным или неактивным, только из его индекса кодирования. В наборе схем кодирования, показанном на фиг. 18, например, схема кодирования 2 используется для активного и неактивного кадров. В таком случае индексы кодирования одного или нескольких последующих кадров могут помогать указывать, является ли кодированный кадр неактивным. В вышеприведенном описании, например, раскрыты способы речевого кодирования, в которых кадр, кодированный с использованием схемы кодирования 2, является неактивным, если следующий кадр кодируется с использованием схемы кодирования 3. Соответствующая реализация способа M200 может быть способна сохранять информацию на основании текущего кодированного кадра в качестве опорной спектральной информации, если индекс кодирования кадра указывает схему кодирования 2 и индекс кодирования следующего кодированного кадра указывает схему кодирования 3. В соответствующем примере реализация способа M200 способна сохранять информацию на основании кодированного кадра в качестве опорной спектральной информации, если кадр кодирован на половинной скорости и следующий кадр кодируется на скорости одна восьмая.
В случае когда решение на сохранение информации на основании кодированного кадра в качестве опорной спектральной информации зависит от информации из последующего кодированного кадра, способ M200 может быть способен осуществлять операцию сохранения опорной спектральной информации в двух частях. Первая часть операции сохранения предварительно сохраняет информацию на основании кодированного кадра. Такая реализация способа M200 может быть способна предварительно сохранять информацию для всех кадров или для всех кадров, которые удовлетворяют некоторому заранее определенному критерию (например, всех кадров, имеющих конкретную скорость кодирования, режим или схему). Три разных примера такого критерия представляют собой:(1) кадры, индекс кодирования которых указывает режим кодирования NELP, (2) кадры, индекс кодирования которых указывает половинную скорость, и (3) кадры, индекс кодирования которых указывает схему кодирования 2 (например, при применении набора схем кодирования согласно фиг. 18).
Вторая часть операции сохранения сохраняет предварительно сохраненную информацию в качестве опорной спектральной информации при выполнении заранее определенного условия. Такая реализация способа M200 может быть способна откладывать эту часть операции, пока не будут приняты один или несколько последующих кадров (например, пока не будут известны режим кодирования, скорость или схема следующего кодированного кадра). Три разных примера такого условия представляют собой: (1) индекс кодирования следующего кодированного кадра указывает скорость одна восьмая, (2) индекс кодирования следующего кодированного кадра указывает режим кодирования, используемый только для неактивных кадров, и (3) индекс кодирования следующего кодированного кадра указывает схему кодирования 3 (например, при применении набора схем кодирования согласно фиг. 18). Если условие для второй части операции сохранения не выполняется, предварительно сохраненную информацию можно стереть или перезаписать.
Вторую часть двухчастной операции сохранения опорной спектральной информации можно реализовать согласно любой из нескольких разных конфигураций. В одном примере вторая часть операции сохранения способна изменять состояние флага, связанного с ячейкой памяти, где хранится предварительно сохраненная информация (например, из состояния, указывающего “предварительный”, в состояние, указывающее “опорный”). В другом примере вторая часть операции сохранения способна переносить предварительно сохраненную информацию в буфер, который зарезервирован для сохранения опорной спектральной информации. В еще одном примере вторая часть операции сохранения способна обновлять один или несколько указателей на буфер (например, циклический буфер), где хранится предварительно сохраненная опорная спектральная информация. В этом случае указатели могут включать в себя указатель чтения, указывающий ячейку для опорной спектральной информации из самого недавнего опорного кодированного кадра, и/или указатель записи, указывающий ячейку, в которой нужно сохранять предварительно сохраненную информацию.
На фиг. 31 показан соответствующий участок диаграммы состояний для речевого декодера, способного осуществлять реализацию способа M200, в котором схема кодирования следующего кодированного кадра используется для определения, сохранять ли информацию на основании кодированного кадра в качестве опорной спектральной информации. На этой диаграмме обозначения пути указывают тип кадра, связанный со схемой кодирования текущего кадра, где A указывает схему кодирования, используемую только для активных кадров, I указывает схему кодирования, используемую только для неактивных кадров, и M (обозначающая “mixed”) указывает схему кодирования, которая используется для активных кадров и для неактивных кадров. Например, такой декодер может входить в состав системы кодирования, которая использует набор схем кодирования, показанный на фиг. 18, где схемы 1, 2 и 3 соответствуют обозначениям пути A, M и I соответственно. Согласно фиг. 31, информация предварительно сохраняется для всех кодированных кадров, имеющих индекс кодирования, который указывает “смешанную” схему кодирования. Если индекс кодирования следующего кадра указывает, что кадр является неактивным, то выполняется сохранение предварительно сохраненной информации в качестве опорной спектральной информации. В противном случае предварительно сохраненную информацию можно стереть или перезаписать.
В явном виде указано, что предыдущее описание, относящееся к избирательному сохранению и предварительному сохранению опорной спектральной информации, и соответствующая диаграмма состояний, показанная на фиг. 31, также применимы к сохранению опорной временной информации в реализациях способа M200, которые способны сохранять такую информацию.
В типичном применении реализации способа M200 матрица логических элементов (например, логических вентилей) способна осуществлять одну, более одной или даже все различные задачи способа. Одну или несколько (возможно, все) из задач также можно реализовать в виде кода (например, одного или нескольких наборов инструкций), воплощенного в виде компьютерного программного продукта (например, одного или нескольких носителей данных, например дисков, флэш-карт или других энергонезависимых карт памяти, микросхем полупроводниковой памяти и т.д.), который читается и/или выполняется машиной (например, компьютером), включающей в себя матрицу логических элементов (например, процессор, микропроцессор, микроконтроллер или другой конечный автомат). Задачи реализации способа M200 также могут осуществляться более чем одной такой матрицей или машиной. В этих или других реализациях задачи могут осуществляться в устройстве для беспроводной связи, например сотовом телефоне или другом устройстве, имеющем такие возможности связи. Такое устройство может быть способно осуществлять связь с сетями с коммутацией каналов и/или с коммутацией пакетов (например, с использованием одного или нескольких протоколов, например VoIP). Например, такое устройство может включать в себя ВЧ схему, способную принимать кодированные кадры.
На фиг. 32A показана блок-схема устройства 200 для обработки кодированного речевого сигнала согласно общей конфигурации. Например, устройство 200 может быть способно осуществлять способ речевого декодирования, который включает в себя реализацию описанного здесь способа M200. Устройство 200 включает в себя логику управления 210, которая способна генерировать сигнал управления, имеющий последовательность значений. Устройство 200 также включает в себя речевой декодер 220, который способен вычислять декодированные кадры речевого сигнала на основании значения сигнала управления и соответствующих кодированных кадров кодированного речевого сигнала.
Устройство связи, которое включает в себя устройство 200, например сотовый телефон, может быть способно принимать кодированный речевой сигнал по проводному, беспроводному или оптическому каналу связи. Такое устройство может быть способно осуществлять операции предварительной обработки на кодированном речевом сигнале, например декодирование кодов исправления ошибок и/или кодов избыточности. Такое устройство также может одновременно включать в себя реализации устройства 100 и устройства 200 (например, в приемопередатчике).
Логика управления 210 способна генерировать сигнал управления, включающий в себя последовательность значений, которая базируется на индексах кодирования кодированных кадров кодированного речевого сигнала. Каждое значение последовательности соответствует кодированному кадру кодированного речевого сигнала (за исключением случая стертого кадра, который рассмотрен ниже) и имеет одно из совокупности состояний. В некоторых реализациях устройства 200, описанных ниже, последовательность является двоичной (т.е. последовательностью высоких и низких значений). В других реализациях устройства 200, описанных ниже, значения последовательности могут иметь более двух состояний.
Логика управления 210 может быть способна определять индекс кодирования для каждого кодированного кадра. Например, логика управления 210 может быть способна считывать, по меньшей мере, часть индекса кодирования из кодированного кадра, определять битовую скорость кодированного кадра из одного или нескольких параметров, например энергии кадра, и/или определять нужный режим кодирования из формата кодированного кадра. Альтернативно, устройство 200 можно реализовать так, чтобы оно включало в себя другой элемент, который способен определять индекс кодирования для каждого кодированного кадра и передавать его логике управления 210, или устройство 200 может быть способно принимать индекс кодирования от другого модуля устройства, которое включает в себя устройство 200.
Кодированный кадр, который не принят вопреки ожиданию или принят со слишком большим количеством ошибок, чтобы его можно было восстановить, называется стиранием кадра. Устройство 200 можно сконфигурировать так, чтобы одно или несколько состояний индекса кодирования использовалось для указания стирания кадра или частичного стирания кадра, например отсутствия участка кодированного кадра, который переносит спектральную и временную информацию для второго частотного диапазона. Например, устройство 200 можно сконфигурировать так, чтобы индекс кодирования для кодированного кадра, который был кодирован с использованием схемы кодирования 2, указывал стирание верхнеполосного участка кадра.
Речевой декодер 220 способен вычислять декодированные кадры речевого сигнала на основании значения сигнала управления и соответствующих кодированных кадров кодированного речевого сигнала. Когда значение сигнала управления имеет первое состояние, декодер 220 вычисляет декодированный кадр на основании описания спектральной огибающей по первому и второму частотным диапазонам, где описание базируется на информации из соответствующего кодированного кадра. Когда значение сигнала управления имеет второе состояние, декодер 220 извлекает описание спектральной огибающей по второму частотному диапазону и вычисляет декодированный кадр на основании извлеченного описания и описания спектральной огибающей по первому частотному диапазону, где описание по первому частотному диапазону базируется на информации из соответствующего кодированного кадра.
На фиг. 32B показана блок-схема реализации 202 устройства 200. Устройство 202 включает в себя реализацию 222 речевого декодера 220, который включает в себя первый модуль 230 и второй модуль 240. Модули 230 и 240 способны вычислять соответствующие участки поддиапазона декодированных кадров. В частности, первый модуль 230 способен вычислять декодированный участок кадра по первому частотному диапазону (например, узкополосный сигнал), и второй модуль 240 способен вычислять на основании значения сигнала управления декодированный участок кадра по второму частотному диапазону (например, верхнеполосный сигнал).
На фиг. 32C показана блок-схема реализации 204 устройства 200. Анализатор 250 способен анализировать биты кодированного кадра для выдачи индекса кодирования на логику управления 210 и, по меньшей мере, одного описания спектральной огибающей на речевой декодер 220. В этом примере устройство 204 также является реализацией устройства 202, благодаря чему анализатор 250 способен выдавать описания спектральных огибающих по соответствующим частотным диапазонам (когда таковые имеются) на модули 230 и 240. Анализатор 250 также может быть способен выдавать, по меньшей мере, одно описание временной информации на речевой декодер 220. Например, анализатор 250 можно реализовать для выдачи описаний временной информации для соответствующих частотных диапазонов (когда таковые имеются) на модули 230 и 240.
Устройство 204 также включает в себя банк фильтров 260, который способен объединять декодированные участки кадра по первому и второму частотным диапазонам для создания широкополосного речевого сигнала. Конкретные примеры таких банков фильтров описаны, например, в опубликованной патентной заявке США № 2007/088558 (Vos и др.), “SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING”, опубликованной 19 апреля 2007 г. Например, банк фильтров 260 может включать в себя фильтр низких частот, способный фильтровать узкополосный сигнал для создания первого полосового сигнала, и фильтр высоких частот, способный фильтровать верхнеполосный сигнал для создания второго полосового сигнала. Банк фильтров 260 может также включать в себя блок повышения частоты дискретизации, способный увеличивать скорость дискретизации узкополосного сигнала и/или верхнеполосного сигнала согласно желаемому соответствующему коэффициенту интерполяции, как описано, например, в опубликованной патентной заявке США № 2007/088558 (Vos и др.).
На фиг. 33A показана блок-схема реализации 232 первого модуля 230, который включает в себя экземпляр 270a декодера 270 описания спектральной огибающей и экземпляр 280a декодера 280 описания временной информации. Декодер 270a описания спектральной огибающей способен декодировать описание спектральной огибающей по первому частотному диапазону (например, принятое от анализатора 250). Декодер описания временной информации 280a способен декодировать описание временной информации для первого частотного диапазона (например, принятое от анализатора 250). Например, декодер описания временной информации 280a может быть способен декодировать сигнал возбуждения для первого частотного диапазона. Экземпляр 290a фильтра синтеза 290 способен генерировать декодированный участок кадра по первому частотному диапазону (например, узкополосный сигнал), который базируется на декодированных описаниях спектральной огибающей и временной информации. Например, фильтр синтеза 290a может быть способен, согласно набору значений в описании спектральной огибающей по первому частотному диапазону (например, одному или нескольким векторам коэффициентов LSP или LPC), создавать декодированный участок в ответ на сигнал возбуждения для первого частотного диапазона.
На фиг. 33B показана блок-схема реализации 272 декодера описания спектральной огибающей 270. Блок деквантования 310 способен деквантовать описание, и блок обратного преобразования 320 способен применять обратное преобразование к деквантованному описанию для получения набора коэффициентов LPC. Декодер 280 описания временной информации также обычно способен включать в себя блок деквантования.
На фиг. 34A показана блок-схема реализации 242 второго модуля 240. Второй модуль 242 включает в себя экземпляр 270b декодера 270 описания спектральной огибающей, буфер 300 и блок выбора 340. Декодер 270b описания спектральной огибающей способен декодировать описание спектральной огибающей по второму частотному диапазону (например, принятое от анализатора 250). Буфер 300 способен сохранять одно или несколько описаний спектральной огибающей по второму частотному диапазону в качестве опорной спектральной информации, и блок выбора 340 способен выбирать, согласно состоянию соответствующего значения сигнала управления, генерируемого логикой управления 210, декодированное описание спектральной огибающей из (A) буфера 300 либо (B) декодера 270b.
Второй модуль 242 также включает в себя генератор 330 верхнеполосного сигнала возбуждения и экземпляр 290b фильтра синтеза 290, который способен генерировать декодированный участок кадра по второму частотному диапазону (например, верхнеполосный сигнал) на основании декодированного описания спектральной огибающей, принятого через блок выбора 340. Генератор 330 верхнеполосного сигнала возбуждения способен генерировать сигнал возбуждения для второго частотного диапазона на основании сигнала возбуждения для первого частотного диапазона (например, создаваемого декодером 280a описания временной информации). Дополнительно или альтернативно, генератор 330 может быть способен осуществлять спектральное и/или амплитудное формирование случайного шума для генерации верхнеполосного сигнала возбуждения. Генератор 330 можно реализовать как экземпляр A60 вышеописанного генератора верхнеполосного сигнала возбуждения. Фильтр синтеза 290b способен согласно набору значений в описании спектральной огибающей по второму частотному диапазону (например, одному или нескольким векторам коэффициентов LSP или LPC) создавать декодированный участок кадра по второму частотному диапазону в ответ на верхнеполосный сигнал возбуждения.
В одном примере реализации устройства 202, который включает в себя реализацию 242 второго модуля 240, логика управления 210 способна выводить двоичный сигнал на блок выбора 340 таким образом, чтобы каждое значение последовательности имело состояние A или состояние B. В этом случае, если индекс кодирования текущего кадра указывает, что он является неактивным, логика управления 210 генерирует значение, имеющее состояние A, которое предписывает блоку выбора 340 выбирать выход буфера 300 (т.е. выбор A). В противном случае логика управления 210 генерирует значение, имеющее состояние B, которое предписывает блоку выбора 340 выбирать выходной сигнал декодера 270b (т.е. выбор B).
Устройство 202 может быть сконструировано так, чтобы логика управления 210 управляла работой буфера 300. Например, буфер 300 может быть сконструирован так, чтобы значение сигнала управления, которое имеет состояние B, предписывало буферу 300 сохранять соответствующий выходной сигнал декодера 270b. Такое управление можно реализовать путем подачи сигнала управления на вход разрешения записи буфера 300, где вход сконфигурирован так, чтобы состояние B соответствовало его активному состоянию. Альтернативно, логику управления 210 можно реализовать для генерации второго сигнала управления, также включающего в себя последовательность значений, которая базируется на индексах кодирования кодированных кадров кодированного речевого сигнала, для управления работой буфера 300.
На фиг. 34B показана блок-схема реализации 244 второго модуля 240. Второй модуль 244 включает в себя декодер 270b описания спектральной огибающей и экземпляр 280b декодера 280 описания временной информации, который способен декодировать описание временной информации для второго частотного диапазона (например, принятое от анализатора 250). Второй модуль 244 также включает в себя реализацию 302 буфера 300, которая также способна сохранять одно или несколько описаний временной информации по второму частотному диапазону в качестве опорной временной информации.
Второй модуль 244 включает в себя реализацию 342 блока выбора 340, который способен выбирать, согласно состоянию соответствующего значения сигнала управления, генерируемого логикой управления 210, декодированное описание спектральной огибающей и декодированное описание временной информации из (A) буфера 302 или (B) декодеров 270b, 280b. Экземпляр 290b фильтра синтеза 290 способен генерировать декодированный участок кадра по второму частотному диапазону (например, верхнеполосный сигнал), который базируется на декодированных описаниях спектральной огибающей и временной информации, принятых через блок выбора 342. В типичной реализации устройства 202, которая включает в себя второй модуль 244, декодер 280b описания временной информации способен создавать декодированное описание временной информации, которое включает в себя сигнал возбуждения для второго частотного диапазона, и фильтр синтеза 290b способен, согласно набору значений в описании спектральной огибающей по второму частотному диапазону (например, одному или нескольким векторам коэффициентов LSP или LPC), создавать декодированный участок кадра по второму частотному диапазону в ответ на сигнал возбуждения.
На фиг. 34C показана блок-схема реализации 246 второго модуля 242, который включает в себя буфер 302 и блок выбора 342. Второй модуль 246 также включает в себя экземпляр 280c декодера 280 описания временной информации, который способен декодировать описание временной огибающей для второго частотного диапазона, и элемент 350 регулировки усиления (например, умножитель или усилитель), который способен применять описание временной огибающей, принятое через блок выбора 342, к декодированному участку кадра по второму частотному диапазону. В случае когда декодированное описание временной огибающей включает в себя значения формы усиления, элемент 350 регулировки усиления может включать в себя логику, способную применять значения формы усиления к соответствующим подкадрам декодированного участка.
На фиг. 34A-34C показаны реализации второго модуля 240, в которых буфер 300 принимает полностью декодированные описания спектральных огибающих (и, в ряде случаев, временной информации). Аналогичные реализации могут быть устроены так, чтобы буфер 300 принимал описания, которые не полностью декодированы. Например, может быть желательно смягчить требования к хранению путем сохранения описания в квантованной форме (например, принятого от анализатора 250). В таких случаях путь сигнала из буфера 300 к блоку выбора 340 может быть способен включать в себя логику декодирования, например блок деквантования и/или блок обратного преобразования.
На фиг. 35A показана диаграмма состояний, согласно которой реализация логики управления 210 может быть способна работать. На этой диаграмме обозначения пути указывают тип кадра, связанный со схемой кодирования текущего кадра, где A указывает схему кодирования, используемую только для активных кадров, I указывает схему кодирования, используемую только для неактивных кадров, и M (обозначающая “mixed”) указывает схему кодирования, которая используется для активных кадров и для неактивных кадров. Например, такой декодер может входить в состав системы кодирования, которая использует набор схем кодирования, показанный на фиг. 18, где схемы 1, 2 и 3 соответствуют обозначениям пути A, M и I соответственно. Обозначения состояния на фиг. 35A указывают состояние соответствующего(их) значения(ий) сигнала(ов) управления.
Как отмечено выше, устройство 202 может быть сконструировано так, чтобы логика управления 210 управляла работой буфера 300. В случае когда устройство 202 способно осуществлять операцию сохранения опорной спектральной информации в двух частях, логика управления 210 может быть способна управлять буфером 300 для осуществления одной выбранной из трех разных задач: (1) предварительно сохранять информацию на основании кодированного кадра, (2) выполнять сохранение предварительно сохраненной информации в качестве опорной спектральной и/или временной информации и (3) выводить сохраненную опорную спектральную и/или временную информацию.
В одном таком примере логика управления 210 реализуется для создания сигнала управления, значения которого имеют, по меньшей мере, четыре возможных состояния, каждое из которых соответствует соответствующему состоянию диаграммы, показанной на фиг. 35A, которая управляет работой блока выбора 340 и буфера 300. В другом таком примере логика управления 210 реализуется для создания (1) сигнала управления, значения которого имеют, по меньшей мере, два возможных состояния, для управления работой блока выбора 340 и (2) второго сигнала управления, включающего в себя последовательность значений, которая базируется на индексах кодирования кодированных кадров кодированного речевого сигнала, значения которого имеют, по меньшей мере, три возможных состояния, для управления работой буфера 300.
Может быть желательно сконфигурировать буфер 300 так, чтобы в ходе обработки кадра, для которого выбирается операция по выполнению сохранения предварительно сохраненной информации, предварительно сохраненная информация также была доступна блоку выбора 340 для ее выбора. В таком случае логика управления 210 может быть способна выводить текущие значения сигналов для управления блоком выбора 340 и буфером 300 в немного разные моменты времени. Например, логика управления 210 может быть способна предписывать буферу 300 перемещать указатель чтения достаточно назад в периоде кадра, чтобы буфер 300 выводил предварительно сохраненную информацию по времени, чтобы блок выбора 340 выбирал ее.
Как отмечено выше согласно фиг. 13B, может быть желательно, чтобы время от времени речевой кодер осуществлял реализацию способа M100 для использования более высокой битовой скорости для кодирования неактивного кадра, окруженного другими неактивными кадрами. В таком случае может быть желательно, чтобы соответствующий речевой декодер сохранял информацию на основании этого кодированного кадра как опорной спектральной и/или временной информации, благодаря чему информацию можно использовать при декодировании будущих неактивных кадров в последовательности.
Различные элементы реализации устройства 200 можно реализовать в виде любой комбинации оборудования, программного обеспечения и/или программно-аппаратного обеспечения, что считается пригодным для назначенного применения. Например, такие элементы можно изготавливать в виде электронных и/или оптических устройств, размещенных, например, на одной микросхеме или на двух или более микросхемах в наборе микросхем. Одним примером такого устройства является фиксированная или программируемая матрица логических элементов, например транзисторов или логических вентилей, и любой из этих элементов можно реализовать в виде одной или нескольких таких матриц. Любые два, или более, или даже все из этих элементов можно реализовать в одной и той же матрице или матрицах. Такую(ие) матрицу(ы) можно реализовать в одной или нескольких микросхемах (например, в наборе микросхем, включающем в себя две или более микросхем).
Один или несколько элементов различных реализаций устройства 200, описанных здесь, также можно реализовать в целом или частично в виде одного или нескольких наборов инструкций, способных выполняться на одной или нескольких фиксированных или программируемых матрицах логических элементов, например микропроцессорах, встроенных процессорах, ядрах IP, цифровых сигнальных процессорах, FPGA (вентильных матрицах, программируемых пользователем), ASSP (специализированных стандартных продуктах) и ASIC (специализированных интегральных схемах). Любой из различных элементов реализации устройства 200 также можно реализовать посредством одного или нескольких компьютеров (например, машин, включающих в себя одну или несколько матриц, программируемых на выполнение одного или нескольких наборов или последовательностей инструкций, также именуемых “процессорами”), и любые два, или более, или даже все из этих элементов можно реализовать в одном и том же таком компьютере или компьютерах.
Различные элементы реализации устройства 200 могут входить в состав устройства для беспроводной связи, например сотового телефона или другого устройства, имеющего такие возможности связи. Такое устройство может быть способно осуществлять связь с сетями с коммутацией каналов и/или с коммутацией пакетов (например, с использованием одного или нескольких протоколов, например VoIP). Такое устройство может быть способно осуществлять операции на сигнале, переносящем кодированные кадры, например деперемежение, деперфорирование, декодирование одного или нескольких сверточных кодов, декодирование одного или нескольких кодов исправления ошибок, декодирование одного или нескольких уровней сетевого протокола (например, Ethernet, TCP/IP, cdma2000), радиочастотную (РЧ) демодуляцию и/или радиоприем.
Один или несколько элементов реализации устройства 200 можно использовать для осуществления задач или выполнения других наборов инструкций, которые напрямую не относятся к работе устройства, например задачи, связанной с другой операцией устройства или системы, в состав которой входит устройство. Один или несколько элементов реализации устройства 200 также могут иметь общую структуру (например, процессор, используемый для выполнения участков кода, соответствующего разным элементам в разные моменты времени, набор инструкций, выполняемых для осуществления задач, соответствующих разным элементам в разные моменты времени, или конфигурация электронных и/или оптических устройств, осуществляющих операции для разных элементов в разные моменты времени). В одном таком примере логика управления 210, первый модуль 230 и второй модуль 240 реализуются в виде наборов инструкций, способных выполняться на одном и том же процессоре. В другом таком примере декодеры 270a и 270b описания спектральной огибающей реализуются в виде того же набора инструкций, выполняющихся в разные моменты времени.
Устройство для беспроводной связи, например сотовый телефон или другое устройство, имеющее такие возможности связи, может быть способно включать в себя реализации устройства 100 и устройства 200. В таком случае устройство 100 и устройство 200 также могут иметь общую структуру. В одном таком примере устройство 100 и устройство 200 реализованы так, что включают в себя наборы инструкций, которые способны выполняться на одном и том же процессоре.
В любой момент в ходе полнодуплексной телефонной связи можно ожидать, что на, по меньшей мере, один из речевых кодеров будет поступать неактивный кадр. Может быть желательно, чтобы речевой кодер был способен передавать кодированные кадры не для всех кадров в последовательности неактивных кадров. Такая работа также называется прерывистой передачей (DTX). В одном примере речевой кодер осуществляет DTX путем передачи одного кодированного кадра (также именуемого “описателем тишины” или SID) для каждой последовательности из n последовательных неактивных кадров, где n равно 32. Соответствующий декодер применяет информацию в SID для обновления модели генерации шума, которая используется алгоритмом генерации комфортного шума для синтеза неактивных кадров. Другие типичные значения n включают в себя 8 и 16. Другие названия, используемые в технике для включения SID, включают в себя “обновление до описания тишины”, “вставку описания тишины”, “вставку описателя тишины”, “кадр описателя комфортного шума” и “параметры комфортного шума”.
Очевидно, что в реализации способа M200 опорные кодированные кадры аналогичны SID в том, что они обеспечивают случайные обновления до описания тишины для верхнеполосного участка речевого сигнала. Хотя потенциальные преимущества DTX обычно больше в сетях с коммутацией пакетов, чем в сетях с коммутацией каналов, в прямой форме указано, что способы M100 и M200 применимы к сетям с коммутацией каналов и с коммутацией пакетов.
Реализацию способа M100 можно объединить с DTX (например, в сети с коммутацией пакетов), чтобы кодированные кадры передавались не для всех неактивных кадров. Речевой кодер, осуществляющий такой способ, может быть способен время от времени передавать SID с некоторым регулярным интервалом (например, через каждые восемь, шестнадцать и 32 кадра в последовательности неактивных кадров) или по наступлении некоторого события. На фиг. 35B показан пример, в котором SID передается через каждые шестнадцать кадров. В этом случае SID включает в себя описание спектральной огибающей по первому частотному диапазону.
Соответствующая реализация способа M200 может быть способна генерировать в ответ на неспособность принять кодированный кадр в течение периода кадра, следующего после неактивного кадра, кадр, который базируется на опорной спектральной информации. Согласно фиг. 35B, такая реализация способа M200 может быть способна получать описание спектральной огибающей по первому частотному диапазону для каждого промежуточного неактивного кадра на основании информации из одного или нескольких принятых SID. Например, такая операция может включать в себя интерполяцию между описаниями спектральных огибающих из двух самых недавних SID, как в примерах, показанных на фиг. 30A-30C. Для второго частотного диапазона способ может быть способен получать описание спектральной огибающей (и, возможно, описание временной огибающей) для каждого промежуточного неактивного кадра на основании информации из одного или нескольких недавних опорных кодированных кадров (например, согласно любому из описанных здесь примеров). Такой способ также может быть способен генерировать сигнал возбуждения для второго частотного диапазона, который базируется на сигнале возбуждения для первого частотного диапазона из одного или нескольких недавних SID.
Вышеприведенное представление описанных конфигураций позволяет специалисту в данной области техники реализовать и использовать раскрытые здесь способы и другие структуры. Логические блок-схемы, блок-схемы, диаграммы состояний и другие структуры, показанные и описанные здесь, являются лишь примерами, и другие варианты этих структур также отвечают объему этого раскрытия. Возможны различные модификации этих конфигураций, и представленные здесь общие принципы можно применять также к другим конфигурациям. Например, различные описанные здесь элементы и задачи для обработки верхнеполосного участка речевого сигнала, который включает в себя частоты выше диапазона узкополосного участка речевого сигнала, можно применять альтернативно или дополнительно и аналогичным образом для обработки нижнеполосного участка речевого сигнала, который включает в себя частоты ниже диапазона узкополосного участка речевого сигнала. В таком случае раскрытые техники и структуры для вывода верхнеполосного сигнала возбуждения из узкополосного сигнала возбуждения можно использовать для вывода нижнеполосного сигнала возбуждения из узкополосного сигнала возбуждения. Таким образом, настоящее раскрытие не ограничивается показанными выше конфигурациями, но соответствует широчайшему объему, согласующемуся с принципами и признаками новизны, раскрытыми здесь любым образом, в том числе в поданной прилагаемой формуле изобретения, которая составляет часть оригинального раскрытия.
Примеры кодеков, которые можно использовать с или адаптировать для использования с речевыми кодерами, способами речевого кодирования, речевыми декодерами и/или способами речевого декодирования, описанными здесь, включают в себя Enhanced Variable Rate Codec (EVRC), описанный в документе 3GPP2 C.S0014-C, версия 1.0, “Enhanced Variable Rate Codec, Speech Service Options 3, 68, and 70 for Wideband Spread Spectrum Digital Systems” (Third Generation Partnership Project 2, Арлингтон, Вашингтон, январь 2007); речевой кодек Adaptive Multi Rate (AMR), описанный в документе ETSI TS 126 092 V6.0.0 (European Telecommunications Standards Institute (ETSI), Sophia Antipolis Cedex, Франция, декабрь 2004); и широкополосный речевой кодек AMR, описанный в документе ETSI TS 126 192 V6.0.0 (ETSI, декабрь 2004).
Специалистам в данной области техники очевидно, что информацию и сигналы можно представлять с использованием любых разнообразных технологий или техник. Например, данные, инструкции, команды, информация, сигналы, биты и символы, которые могут быть упомянуты в вышеприведенном описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией. Хотя сигнал, из которого выводятся кодированные кадры, называется “речевой сигнал”, также предусмотрено и, таким образом, раскрыто, что этот сигнал может переносить музыкальный или другой неречевой информационный контент в активных кадрах.
Специалистам в данной области техники также очевидно, что различные иллюстративные логические блоки, модули, схемы и операции, описанные в связи с раскрытыми здесь конфигурациями, можно реализовать в виде электронного оборудования, компьютерного программного обеспечения или их комбинаций. Такие логические блоки, модули, схемы и операции можно реализовать или осуществлять посредством процессора общего назначения, цифрового сигнального процессора (ЦСП), ASIC, FPGA или другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных аппаратных компонентов или любой их комбинации, предназначенных для осуществления описанных здесь функций. Процессор общего назначения может представлять собой микропроцессор, но альтернативно, процессор может представлять собой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также можно реализовать в виде комбинации вычислительных устройств, например комбинации ЦСП и микропроцессора, совокупности микропроцессоров, одного или нескольких микропроцессоров в сочетании с ядром ЦСП или любой другой подобной конфигурации.
Задачи описанных здесь способов и алгоритмов можно реализовать непосредственно в оборудовании, в программном модуле, выполняемом процессором, или в их комбинации. Программный модуль может располагаться в ОЗУ, флэш-памяти, ПЗУ, ЭППЗУ, ЭСППЗУ, регистрах, на жестком диске, на сменном диске, на CD-ROM или на любом другом носителе данных, известном в технике. Иллюстративный носитель данных подключен к процессору, благодаря чему процессор может считывать информацию с носителя данных и записывать информацию на него. Альтернативно, носитель данных может быть объединен с процессором. Процессор и носитель данных могут размещаться на ASIC. ASIC может находиться на пользовательском терминале. Альтернативно, процессор и носитель данных могут располагаться на пользовательском терминале в виде дискретных компонентов.
Каждую из описанных здесь конфигураций можно реализовать, по меньшей мере частично, в виде электронной схемы, конфигурации схем, изготовленной в виде специализированной интегральной схемы, или в виде программы программно-аппаратного обеспечения, загружаемой в энергонезависимое хранилище, или в виде программы программного обеспечения, загружаемой из или на носитель данных в виде машинно-считываемого кода, каковой код представляет собой инструкции, выполняемые матрицей логических элементов, например микропроцессором или другим блоком обработки цифрового сигнала. Носитель данных может представлять собой матрицу элементов хранения, например полупроводниковую память (которая может включать в себя, без ограничения, динамическое или статическое ОЗУ (оперативную память), ПЗУ (постоянную память) и/или флэш-память) или сегнетоэлектрическую, магниторезистивную, овоническую, полимерную или фазопереходную память или дисковый носитель, например магнитный или оптический диск. Термин “программное обеспечение” следует понимать в смысле, включающем в себя исходный код, код ассемблера, машинный код, двоичный код, программно-аппаратное обеспечение, макрокод, микрокод, любые наборы или последовательности инструкций, выполняемые матрицей логических элементов, и любую комбинацию таких примеров.