СИСТЕМЫ И СПОСОБЫ ДЛЯ ОПРЕДЕЛЕНИЯ НАБОРА КОЭФФИЦИЕНТОВ ИНТЕРПОЛЯЦИИ
SYSTEMS AND METHODS FOR DETERMINING SET OF INTERPOLATION COEFFICIENTS

Перекрестные ссылки на родственные заявки
[0001] Данная заявка относится и испрашивает приоритет предварительной заявки на патент (США) номер 61/767461, поданной 21 февраля 2013 года, озаглавленной "SYSTEMS AND METHODS FOR DETERMINING A SET OF INTERPOLATION FACTORS".
Область техники, к которой относится изобретение
[0002] Настоящее раскрытие, в общем, относится к электронным устройствам. Более конкретно, настоящее раскрытие относится к системам и способам для определения набора коэффициентов интерполяции.
Уровень техники
[0003] В последние несколько десятилетий получили повсеместное распространение электронные устройства. В частности, совершенствование электронных технологий позволяет сокращать стоимость все более сложных и полезных электронных устройств. Снижение стоимости и потребительский спрос приводят к быстрому распространению вариантов применения электронных устройств, так что в современном обществе они применяются фактически повсеместно. По мере роста применения электронных устройств, также растет и спрос на новые и улучшенные признаки электронных устройств. Более конкретно, зачастую требуются электронные устройства, которые выполняют новые функции и/или которые выполняют функции быстрее, эффективнее или с более высоким качеством.
[0004] Некоторые электронные устройства (например, сотовые телефоны, смартфоны, устройства звукозаписи, записывающие видеокамеры, компьютеры и т.д.) используют аудиосигналы. Эти электронные устройства могут кодировать, сохранять и/или передавать аудиосигналы. Например, смартфон может получать, кодировать и передавать речевой сигнал для телефонного вызова, в то время как другой смартфон может принимать и декодировать речевой сигнал.
[0005] Тем не менее, возникают определенные сложности при кодировании, передаче и декодировании аудиосигналов. Например, аудиосигнал может кодироваться, чтобы уменьшать величину полосы пропускания, требуемой для того, чтобы передавать аудиосигнал. Когда часть аудиосигнала потеряна в передаче, может быть затруднительным точно представлять декодированный аудиосигнал. Как можно видеть из этого пояснения, могут быть полезными системы и способы, которые улучшают декодирование.
Сущность изобретения
[0006] Описывается способ для определения набора коэффициентов интерполяции посредством электронного устройства. Способ включает в себя определение значения на основе свойства текущего кадра и свойства предыдущего кадра. Способ также включает в себя определение того, находится или нет значение за пределами диапазона. Способ дополнительно включает в себя определение набора коэффициентов интерполяции на основе значения и индикатора режима прогнозирования, если значение находится за пределами диапазона. Способ дополнительно включает в себя синтезирование речевого сигнала.
[0007] Определение набора коэффициентов интерполяции может быть основано на степени, в которой значение находится за пределами диапазона. Степень, в которой значение находится за пределами диапазона, может определяться на основе одного или более пороговых значений за пределами диапазона.
[0008] Индикатор режима прогнозирования может указывать один из двух режимов прогнозирования. Индикатор режима прогнозирования может указывать один из трех или более режимов прогнозирования.
[0009] Значение может быть отношением энергий на основе энергии импульсной характеристики синтезирующего фильтра текущего кадра и энергии импульсной характеристики синтезирующего фильтра предыдущего кадра. Определение того, находится или нет значение за пределами диапазона, может включать в себя определение того, меньше или нет отношение энергий, чем пороговое значение. Значение может включать в себя первый коэффициент отражения текущего кадра и первый коэффициент отражения предыдущего кадра. Определение того, находится или нет значение за пределами диапазона, может включать в себя определение того, превышает или нет первый коэффициент отражения предыдущего кадра первое пороговое значение, и того, меньше или нет первый коэффициент отражения текущего кадра второго порогового значения.
[0010] Способ может включать в себя интерполяцию векторов частоты спектральной линии (LSF) субкадров на основе набора коэффициентов интерполяции. Интерполяция LSF-векторов субкадров на основе набора коэффициентов интерполяции может включать в себя умножение концевого LSF-вектора текущего кадра на первый коэффициент интерполяции, умножение концевого LSF-вектора предыдущего кадра на второй коэффициент интерполяции и умножение среднего LSF-вектора текущего кадра на разностный коэффициент.
[0011] Набор коэффициентов интерполяции может включать в себя два или более коэффициентов интерполяции. Способ может включать в себя использование набора коэффициентов интерполяции по умолчанию, если значение не находится за пределами диапазона.
[0012] Индикатор режима прогнозирования может указывать режим прогнозирования текущего кадра. Индикатор режима прогнозирования может указывать режим прогнозирования предыдущего кадра.
[0013] Также описывается электронное устройство для определения набора коэффициентов интерполяции. Электронное устройство включает в себя схему определения значений, которая определяет значение на основе свойства текущего кадра и свойства предыдущего кадра. Электронное устройство также включает в себя схему определения наборов коэффициентов интерполяции, соединенную со схемой определения значений. Схема определения наборов коэффициентов интерполяции определяет то, находится или нет значение за пределами диапазона, и определяет набор коэффициентов интерполяции на основе значения и индикатора режима прогнозирования, если значение находится за пределами диапазона. Электронное устройство также включает в себя схему синтезирующих фильтров, которая синтезирует речевой сигнал.
[0014] Также описывается компьютерный программный продукт для определения набора коэффициентов интерполяции. Компьютерный программный продукт включает в себя долговременный материальный считываемый компьютером носитель с инструкциями. Инструкции включают в себя код для инструктирования электронному устройству определять значение на основе свойства текущего кадра и свойства предыдущего кадра. Инструкции также включают в себя код для инструктирования электронному устройству определять то, находится или нет значение за пределами диапазона. Инструкции дополнительно включают в себя код для инструктирования электронному устройству определять набор коэффициентов интерполяции на основе значения и индикатора режима прогнозирования, если значение находится за пределами диапазона. Инструкции дополнительно включают в себя код для инструктирования электронному устройству синтезировать речевой сигнал.
[0015] Также описывается устройство для определения набора коэффициентов интерполяции. Устройство включает в себя средство для определения значения на основе свойства текущего кадра и свойства предыдущего кадра. Устройство также включает в себя средство для определения того, находится или нет значение за пределами диапазона. Устройство дополнительно включает в себя средство для определения набора коэффициентов интерполяции на основе значения и индикатора режима прогнозирования, если значение находится за пределами диапазона. Устройство дополнительно включает в себя средство для синтезирования речевого сигнала.
Краткое описание чертежей
[0016] Фиг. 1 является блок-схемой, иллюстрирующей общий пример кодера и декодера;
[0017] Фиг. 2 является блок-схемой, иллюстрирующей пример базовой реализации кодера и декодера;
[0018] Фиг. 3 является блок-схемой, иллюстрирующей пример широкополосного речевого кодера и широкополосного речевого декодера;
[0019] Фиг. 4 является блок-схемой, иллюстрирующей более конкретный пример кодера;
[0020] Фиг. 5 является схемой, иллюстрирующей пример кадров во времени;
[0021] Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей одну конфигурацию способа для кодирования речевого сигнала посредством кодера;
[0022] Фиг. 7 является блок-схемой, иллюстрирующей одну конфигурацию электронного устройства, выполненного с возможностью определения набора коэффициентов интерполяции;
[0023] Фиг. 8 является блок-схемой последовательности операций способа, иллюстрирующей одну конфигурацию способа для определения набора коэффициентов интерполяции посредством электронного устройства;
[0024] Фиг. 9 является блок-схемой, иллюстрирующей примеры модулей определения значений;
[0025] Фиг. 10 является блок-схемой, иллюстрирующей один пример модуля определения наборов коэффициентов интерполяции;
[0026] Фиг. 11 является схемой, иллюстрирующей один пример определения набора коэффициентов интерполяции;
[0027] Фиг. 12 является схемой, иллюстрирующей другой пример определения набора коэффициентов интерполяции;
[0028] Фиг. 13 включает в себя графики примеров форм синтезированного речевого сигнала;
[0029] Фиг. 14 включает в себя графики дополнительных примеров форм синтезированного речевого сигнала;
[0030] Фиг. 15 является блок-схемой, иллюстрирующей одну конфигурацию устройства беспроводной связи, в котором могут реализовываться системы и способы для определения набора коэффициентов интерполяции; и
[0031] Фиг. 16 иллюстрирует различные компоненты, которые могут быть использованы в электронном устройстве.
Подробное описание изобретения
[0032] Далее описываются различные конфигурации со ссылкой на чертежи, на которых аналогичные ссылки с номерами могут указывать функционально аналогичные элементы. Системы и способы, в общем, описанные и проиллюстрированные на чертежах в данном документе, могут приспосабливаться и проектироваться в широком спектре различных конфигураций. Таким образом, нижеприведенное подробное описание нескольких конфигураций, представленных на чертежах, не имеет намерение ограничивать заявленный объем, а просто представляет системы и способы.
[0033] Фиг. 1 является блок-схемой, иллюстрирующей общий пример кодера 104 и декодера 108. Кодер 104 принимает речевой сигнал 102. Речевой сигнал 102 может представлять собой речевой сигнал в любом частотном диапазоне. Например, речевой сигнал 102 может быть дискретизирован при 16 килобитах в секунду (Кбит/с) и может представлять собой сверхширокополосный сигнал с приблизительным частотным диапазоном в 0-16 килогерц (кГц) или 0-14 кГц, широкополосный сигнал с приблизительным частотным диапазоном в 0-8 кГц любо узкополосный сигнал с приблизительным частотным диапазоном в 0-4 кГц. В других примерах, речевой сигнал 102 может представлять собой сигнал полосы низких частот с приблизительным частотным диапазоном в 50-300 герц (Гц) либо сигнал полосы высоких частот с приблизительным частотным диапазоном в 4-8 кГц. Другие возможные частотные диапазоны для речевого сигнала 102 включают в себя 300-3400 Гц (например, частотный диапазон коммутируемой телефонной сети общего пользования (PSTN)), 14-20 кГц, 16-20 кГц и 16-32 кГц.
[0034] Кодер 104 кодирует речевой сигнал 102, чтобы формировать кодированный речевой сигнал 106. В общем, кодированный речевой сигнал 106 включает в себя один или более параметров, которые представляют речевой сигнал 102. Один или более параметров могут квантоваться. Примеры одного или более параметров включают в себя параметры фильтрации (например, весовые коэффициенты, частоты спектральных линий (LSF), индикаторы режима прогнозирования, пары спектральных линий (LSP), частоты спектральных иммитансов (ISF), пары спектральных иммитансов (ISP), коэффициенты частичной корреляции (ParCor), коэффициенты отражения и/или значения логарифмического отношения площадей и т.д.) и параметры, включенные в кодированный сигнал возбуждения (например, коэффициенты усиления, индексы адаптивных таблиц кодирования, усиления адаптивных таблиц кодирования, индексы фиксированных таблиц кодирования и/или усиления фиксированных таблиц кодирования и т.д.). Параметры могут соответствовать одной или более полос частот. Декодер 108 декодирует кодированный речевой сигнал 106, чтобы формировать декодированный речевой сигнал 110. Например, декодер 108 составляет декодированный речевой сигнал 110 на основе одного или более параметров, включенных в кодированный речевой сигнал 106. Декодированный речевой сигнал 110 может представлять собой приблизительное воспроизведение исходного речевого сигнала 102.
[0035] Кодер 104 может реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного. Например, кодер 104 может быть реализован как специализированная интегральная схема (ASIC) или как процессор с инструкциями. Аналогично, декодер 108 может реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного. Например, декодер 108 может быть реализован как специализированная интегральная схема (ASIC) или как процессор с инструкциями. Кодер 104 и декодер 108 могут реализовываться на отдельных электронных устройствах или на идентичном электронном устройстве.
[0036] Фиг. 2 является блок-схемой, иллюстрирующей пример базовой реализации кодера 204 и декодера 208. Кодер 204 может быть одним примером кодера 104, описанного в связи с фиг. 1. Кодер 204 может включать в себя модуль 212 анализа, преобразователь 214 коэффициентов, квантователь A 216, обратный квантователь A 218, обратный преобразователь A 220 коэффициентов, аналитический фильтр 222 и квантователь B 224. Один или более компонентов кодера 204 и/или декодера 208 могут реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного.
[0037] Кодер 204 принимает речевой сигнал 202. Следует отметить, что речевой сигнал 202 может включать в себя любой частотный диапазон, как описано выше в связи с фиг. 1 (например, всю полосу речевых частот или подполосу речевых частот).
[0038] В этом примере, модуль 212 анализа кодирует спектральную огибающую речевого сигнала 202 в качестве набора коэффициентов линейного прогнозирования (LP) (например, коэффициентов A(z) аналитической фильтрации, которые могут применяться для того, чтобы формировать синтезирующий фильтр 1/A(z) со всеми полюсами, где z является комплексным числом). Модуль 212 анализа типично обрабатывает входной сигнал в качестве последовательности неперекрывающихся кадров речевого сигнала 202, при этом новый набор коэффициентов вычисляется для каждого кадра или субкадра. В некоторых конфигурациях, период кадра может быть периодом, в течение которого речевой сигнал 202 предположительно может быть локально стационарным. Один типичный пример периода кадра составляет 20 миллисекунд (мс) (например, эквивалентный 160 выборкам на частоте дискретизации 8 кГц). В одном примере, модуль 212 анализа выполнен с возможностью вычислять набор из десяти коэффициентов линейного прогнозирования, чтобы характеризовать формантную структуру каждого кадра в 20 мс. В другом примере, частота дискретизации в 12,8 кГц может быть использована для кадра в 20 мс. В этом примере, размер кадра составляет 256 выборок, и модуль 212 анализа может вычислять набор из 16 коэффициентов линейного прогнозирования (например, коэффициентов линейного прогнозирования 16-ого порядка). Хотя это примеры инфраструктур, которые могут реализовываться в соответствии с системами и способами, раскрытыми в данном документе, следует отметить, что эти примеры не должны ограничивать объем раскрытых систем и способов, которые могут применяться к любой инфраструктуре. Также можно реализовывать модуль 212 анализа таким образом, чтобы обрабатывать речевой сигнал 202 в качестве последовательности перекрывающихся кадров.
[0039] Модуль 212 анализа может быть выполнен с возможностью непосредственно анализировать выборки каждого кадра, либо выборки могут быть сначала взвешены согласно функции кадрирования (к примеру, окну Хэмминга). Анализ также может выполняться для окна, превышающего кадр, например, 30-миллисекундного окна. Это окно может быть симметричным (к примеру, 5-20-5, так что оно включает в себя 5 мс непосредственно перед и после 20-миллисекундного кадра) или асимметричным (к примеру, 10-20, так что оно включает в себя последние 10 мс предыдущего кадра). Модуль 212 анализа типично выполнен с возможностью вычислять коэффициенты линейного прогнозирования с использованием рекурсии Левинсона-Дурбина или алгоритма Леро-Гугена. В другой реализации, модуль 212 анализа может быть выполнен с возможностью вычислять набор кепстральных коэффициентов для каждого кадра вместо набора коэффициентов линейного прогнозирования.
[0040] Выходная скорость кодера 204 может значительно снижаться, с относительно небольшим эффектом в отношении качества воспроизведения, посредством квантования коэффициентов. Коэффициенты линейного прогнозирования трудно квантовать эффективно, и они обычно преобразуются в другое представление, к примеру, в LSF для квантования и/или энтропийного кодирования. В примере по фиг. 2, преобразователь 214 коэффициентов преобразует набор коэффициентов в соответствующий LSF-вектор (например, набор LSF). Другие представления "один-к-одному" коэффициентов включают в себя LSP, ParCor-коэффициенты, коэффициенты отражения, значения логарифмического отношения площадей, ISP и ISF. Например, ISF могут использоваться в кодеке на основе GSM (глобальной системы мобильной связи) по AMR-WB (стандарту широкополосного адаптивного многоскоростного кодирования). Для удобства, термины "частоты спектральных линий", "LSF", "LSF-векторы" и связанные термины могут использоваться для того, чтобы означать одно или более из LSF, LSP, ISF, ISP, ParCor-коэффициентов, коэффициентов отражения и значений логарифмического отношения площадей. Типично, преобразование между набором коэффициентов и соответствующим LSF-вектором является обратимым, но некоторые конфигурации могут включать в себя реализации кодера 204, в которых преобразование является необратимым без ошибки.
[0041] Квантователь A 216 выполнен с возможностью квантовать LSF-вектор (или другое представление коэффициентами). Кодер 204 может выводить результат этого квантования в качестве параметров 228 фильтрации. Квантователь A 216 типично включает в себя векторный квантователь, который кодирует входной вектор (например, LSF-вектор) в качестве индекса для соответствующей векторной записи в таблице или в таблице кодирования.
[0042] Как видно на фиг. 2, кодер 204 также формирует остаточный сигнал посредством пропускания речевого сигнала 202 через аналитический фильтр 222 (также называемый "отбеливающим фильтром" или "фильтром ошибок прогнозирования"), который сконфигурирован согласно набору коэффициентов. Аналитический фильтр 222 может быть реализован как фильтр с конечной импульсной характеристикой (FIR) или фильтр с бесконечной импульсной характеристикой (IIR). Этот остаточный сигнал должен типично содержать перцепционно важную информацию речевого кадра, к примеру, долговременную структуру, связанную с основным тоном, который не представлен в параметрах 228 фильтрации. Квантователь B 224 выполнен с возможностью вычислять квантованное представление этого остаточного сигнала для вывода в качестве кодированного сигнала 226 возбуждения. В некоторых конфигурациях, квантователь B 224 включает в себя векторный квантователь, который кодирует входной вектор в качестве индекса для соответствующей векторной записи в таблице или в таблице кодирования. Дополнительно или альтернативно, квантователь B 224 может быть выполнен с возможностью отправлять один или более параметров, из которых вектор может формироваться динамически в декодере 208, а не извлекаться устройства хранения данных, как в способе на основе разреженных таблиц кодирования. Этот способ используется в схемах кодирования, таких как алгебраическое CELP (линейное прогнозирование с возбуждением по коду), и в кодеках, таких как EVRC (усовершенствованный кодек с переменной скоростью) по стандарту 3GPP2 (Партнерского проекта третьего поколения 2). В некоторых конфигурациях, кодированный сигнал 226 возбуждения и параметры 228 фильтрации могут быть включены в кодированный речевой сигнал 106.
[0043] Может быть преимущественным, если кодер 204 формирует кодированный сигнал 226 возбуждения согласно идентичным значениям параметра фильтрации, которые доступны в соответствующем декодере 208. Таким образом, результирующий кодированный сигнал 226 возбуждения уже может учитывать в некоторой степени неидеальности в этих значениях параметров, такие как ошибка квантования. Соответственно, может быть преимущественным конфигурировать аналитический фильтр 222 с использованием идентичных значений коэффициентов, которые доступны в декодере 208. В базовом примере кодера 204, как проиллюстрировано на фиг. 2, обратный квантователь A 218 деквантует параметры 228 фильтрации. Обратный преобразователь A 220 коэффициентов преобразует результирующие значения обратно в соответствующий набор коэффициентов. Этот набор коэффициентов используется для того, чтобы конфигурировать аналитический фильтр 222 с возможностью формировать остаточный сигнал, который квантуется посредством квантователя B 224.
[0044] Некоторые реализации кодера 204 выполнены с возможностью вычислять кодированный сигнал 226 возбуждения посредством идентификации одного из набора векторов таблиц кодирования, который имеет наилучшее совпадение с остаточным сигналом. Тем не менее, следует отметить, что кодер 204 также может быть реализован с возможностью вычислять квантованное представление остаточного сигнала без фактического формирования остаточного сигнала. Например, кодер 204 может быть выполнен с возможностью использовать определенное число векторов таблиц кодирования для того, чтобы формировать соответствующие синтезированные сигналы (например, согласно текущему набору параметров фильтрации) и выбирать вектор таблицы кодирования, ассоциированный со сформированным сигналом, который имеет наилучшее совпадение с исходным речевым сигналом 202 в перцепционно взвешенном домене.
[0045] Декодер 208 может включать в себя обратный квантователь B 230, обратный квантователь C 236, обратный преобразователь B 238 коэффициентов и синтезирующий фильтр 234. Обратный квантователь C 236 деквантует параметры 228 фильтрации (например, LSF-вектор), и обратный преобразователь B 238 коэффициентов преобразует LSF-вектор в набор коэффициентов (например, как описано выше в отношении обратного квантователя A 218 и обратного преобразователя A 220 коэффициентов кодера 204). Обратный квантователь B 230 деквантует кодированный сигнал 226 возбуждения для того, чтобы формировать сигнал 232 возбуждения. На основе коэффициентов и сигнала 232 возбуждения, синтезирующий фильтр 234 синтезирует декодированный речевой сигнал 210. Другими словами, синтезирующий фильтр 234 выполнен с возможностью спектрально формировать сигнал 232 возбуждения согласно деквантованным коэффициентам, чтобы формировать декодированный речевой сигнал 210. В некоторых конфигурациях, декодер 208 также может предоставлять сигнал 232 возбуждения в другой декодер, который может использовать сигнал 232 возбуждения для того, чтобы извлекать сигнал возбуждения другой полосы частот (например, полосы высоких частот). В некоторых реализациях, декодер 208 может быть выполнен с возможностью предоставлять в другой декодер дополнительную информацию, которая связана с сигналом 232 возбуждения, такую как наклон спектра, усиление и запаздывание основного тона и речевой режим.
[0046] Система кодера 204 и декодера 208 является базовым примером речевого кодека по методу анализа через синтез. Кодирование на основе линейного прогнозирования с возбуждением по таблице кодирования представляет собой одно популярное семейство кодирования по методу анализа через синтез. Реализации таких кодеров могут выполнять кодирование на основе формы сигналов остатка, включающее в себя такие операции, как выбор записей из фиксированных и адаптивных таблиц кодирования, операции минимизации ошибок и/или операции перцепционного взвешивания. Другие реализации кодирование по методу анализа через синтез включают в себя кодирование на основе линейного прогнозирования со смешанным возбуждением (MELP), на основе алгебраического CELP (ACELP), на основе релаксационного CELP (RCELP), на основе регулярного импульсного возбуждения (RPE), на основе многоимпульсного возбуждения (MPE), на основе многоимпульсного CELP (MPE) и на основе линейного прогнозирования с возбуждением векторной суммой (VSELP). Соответствующие способы кодирования включают в себя кодирование на основе многополосного возбуждения (MBE) и интерполяции формы прототипного сигнала (PWI). Примеры стандартизированных речевых кодеков по методу анализа через синтез включают в себя кодек по стандарту полноскоростного кодирования ETSI (Европейского института стандартизации в области телекоммуникаций)-GSM (GSM 06.10) (который использует линейное прогнозирование с возбуждением по остатку (RELP)); GSM-кодек по стандарту улучшенного полноскоростного кодирования (ETSI-GSM 06.60); кодер по стандарту ITU (Международного союза телекоммуникаций), 11.8 Кбит/с, G.729, приложение E; кодеки согласно IS (промежуточному стандарту)-641 для IS-136 (по схеме множественного доступа с временным разделением каналов); кодеки по стандарту адаптивного многоскоростного кодирования на основе GSM (GSM-AMR); и кодек 4GV™ (вокодер четвертого поколения) (QUALCOMM Incorporated, San Diego, Калифорния). Кодер 204 и соответствующий декодер 208 могут быть реализованы согласно любой из этих технологий либо любой другой технологии кодирования речи (известной или разрабатываемой), которая представляет речевой сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, используемый для того, чтобы активировать описанный фильтр с возможностью воспроизводить речевой сигнал.
[0047] Даже после того, как аналитический фильтр 222 удаляет приблизительную спектральную огибающую из речевого сигнала 202, значительная величина точной гармонической структуры может оставаться, особенно для вокализованной речи. Периодическая структура связана с основным тоном, и различные вокализованные звуки, произносимые одним говорящим, могут иметь различные формантные структуры, но аналогичные структуры основного тона.
[0048] Эффективность кодирования и/или качество речи может быть повышено посредством использования одного или более значений параметров для того, чтобы кодировать характеристики структуры основного тона. Одной важной характеристикой структуры основного тона является эффективность первой гармоники (также называемая "собственной частотой"), которая типично находится в диапазоне 60-400 герц (Гц). Эта характеристика типично кодируется как инверсия собственной частоты, также называемая "запаздыванием основного тона". Запаздывание основного тона указывает число выборок в одном периоде основного тона и может кодироваться как один или более индексов таблиц кодирования. Речевые сигналы от мужчин-говорящих зачастую имеют большее запаздывание основного тона, чем речевые сигналы от женщин-говорящих.
[0049] Другой характеристикой сигнала, связанной со структурой основного тона, является периодичность, которая указывает интенсивность гармонической структуры или, другими словами, степень, в которой сигнал является гармоническим или негармоническим. Два типичных индикатора периодичности представляют собой переходы через нуль и нормализованные автокорреляционные функции (NACF). Периодичность также может показываться посредством усиления основного тона, которое, как правило, кодируется как усиление таблицы кодирования (к примеру, квантованное усиление адаптивной таблицы кодирования).
[0050] Кодер 204 может включать в себя один или более модулей, выполненных с возможностью кодировать долговременную гармоническую структуру речевого сигнала 202. В некоторых подходах к CELP-кодированию, кодер 204 включает в себя модуль анализа на основе линейного прогнозирующего кодирования (LPC) с разомкнутым контуром, который кодирует кратковременные характеристики или приблизительную спектральную огибающую, после чего выполняется стадия анализа на основе долговременного прогнозирования с замкнутым контуром, которая кодирует точную структуру основного тона или гармоническую структуру. Кратковременные характеристики кодируются как коэффициенты (к примеру, параметры 228 фильтрации), а долговременные характеристики кодируются как значения для параметров, такие как запаздывание основного тона и усиление основного тона. Например, кодер 204 может быть выполнен с возможностью выводить кодированный сигнал 226 возбуждения в форме, которая включает в себя один или более индексов таблиц кодирования (например, индекс фиксированной таблицы кодирования и индекс адаптивной таблицы кодирования) и соответствующих значений усиления. Вычисление этого квантованного представления остаточного сигнала (к примеру, посредством квантователя B 224) может включать в себя выбор таких индексов и вычисление таких значений. Кодирование структуры основного тона также может включать в себя интерполяцию формы прототипного сигнала основного тона, причем эта операция может включать в себя вычисление разности между последовательными импульсами основного тона. Моделирование долговременной структуры может быть деактивировано для кадров, соответствующих невокализованной речи, которые типично являются шумоподобными и неструктурированными.
[0051] Некоторые реализации декодера 208 могут быть выполнены с возможностью выводить сигнал 232 возбуждения в другой декодер (например, в декодер полосы высоких частот) после того, как долговременная структура (структура основного тона или гармоническая структура) восстановлена. Например, такой декодер может быть выполнен с возможностью выводить сигнал 232 возбуждения в качестве деквантованной версии кодированного сигнала 226 возбуждения. Конечно, также можно реализовывать декодер 208 таким образом, что другой декодер выполняет деквантование кодированного сигнала 226 возбуждения для того, чтобы получать сигнал 232 возбуждения.
[0052] Фиг. 3 является блок-схемой, иллюстрирующей пример широкополосного речевого кодера 342 и широкополосного речевого декодера 358. Один или более компонентов широкополосного речевого кодера 342 и/или широкополосного речевого декодера 358 могут реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного. Широкополосный речевой кодер 342 и широкополосный речевой декодер 358 могут реализовываться на отдельных электронных устройствах или на идентичном электронном устройстве.
[0053] Широкополосный речевой кодер 342 включает в себя гребенку A 344 фильтров, кодер 348 первой полосы частот и кодер 350 второй полосы частот. Гребенка A 344 фильтров выполнена с возможностью фильтровать широкополосный речевой сигнал 340 для того, чтобы формировать сигнал 346a первой полосы частот (например, узкополосный сигнал) и сигнал 346b второй полосы частот (например, сигнал полосы высоких частот).
[0054] Кодер 348 первой полосы частот выполнен с возможностью кодировать сигнал 346a первой полосы частот для того, чтобы формировать параметры 352 фильтрации (например, параметры узкополосной (NB) фильтрации) и кодированный сигнал 354 возбуждения (например, кодированный узкополосный сигнал возбуждения). В некоторых конфигурациях, кодер 348 первой полосы частот может формировать параметры 352 фильтрации и кодированный сигнал 354 возбуждения в качестве индексов таблиц кодирования или в другой квантованной форме. В некоторых конфигурациях, кодер 348 первой полосы частот может реализовываться в соответствии с кодером 204, описанным в связи с фиг. 2.
[0055] Кодер 350 второй полосы частот выполнен с возможностью кодировать сигнал 346b второй полосы частот (например, сигнал полосы высоких частот) согласно информации в кодированном сигнале 354 возбуждения для того, чтобы формировать параметры 356 кодирования во второй полосе частот (например, параметры кодирования в полосе высоких частот). Кодер 350 второй полосы частот может быть выполнен с возможностью формировать параметры 356 кодирования во второй полосе частот в качестве индексов таблиц кодирования или в другой квантованной форме. Один конкретный пример широкополосного речевого кодера 342 выполнен с возможностью кодировать широкополосный речевой сигнал 340 на скорости приблизительно в 8,55 Кбит/с, при этом приблизительно 7,55 Кбит/с используются для параметров 352 фильтрации и кодированного сигнала 354 возбуждения, и приблизительно 1 Кбит/с используются для параметров 356 кодирования во второй полосе частот. В некоторых реализациях, параметры 352 фильтрации, кодированный сигнал 354 возбуждения и параметры 356 кодирования во второй полосе частот могут быть включены в кодированный речевой сигнал 106.
[0056] В некоторых конфигурациях, кодер 350 второй полосы частот может реализовываться аналогично кодеру 204, описанному в связи с фиг. 2. Например, кодер 350 второй полосы частот может формировать параметры фильтрации второй полосы частот (например, в качестве части параметров 356 кодирования во второй полосе частот), как описано в связи с кодером 204, описанным в связи с фиг. 2. Тем не менее, кодер 350 второй полосы частот может отличаться в некотором отношении. Например, кодер 350 второй полосы частот может включать в себя формирователь возбуждения второй полосы частот, который может формировать сигнал возбуждения второй полосы частот на основе кодированного сигнала 354 возбуждения. Кодер 350 второй полосы частот может использовать сигнал возбуждения второй полосы частот для того, чтобы формировать синтезированный сигнал второй полосы частот и определять коэффициент усиления второй полосы частот. В некоторых конфигурациях, кодер 350 второй полосы частот может квантовать коэффициент усиления второй полосы частот. Соответственно, примеры параметров кодирования во второй полосе частот включают в себя параметры фильтрации второй полосы частот и квантованный коэффициент усиления второй полосы частот.
[0057] Может быть преимущественным комбинировать параметры 352 фильтрации, кодированный сигнал 354 возбуждения и параметры 356 кодирования во второй полосе частот в один поток битов. Например, может быть преимущественным мультиплексировать кодированные сигналы вместе для передачи (к примеру, по проводному, оптическому или беспроводному каналу передачи) либо для хранения в качестве кодированного широкополосного речевого сигнала. В некоторых конфигурациях, широкополосный речевой кодер 342 включает в себя мультиплексор (не показан), выполненный с возможностью комбинировать параметры 352 фильтрации, кодированный сигнал 354 возбуждения и параметры 356 кодирования во второй полосе частот в мультиплексированный сигнал. Параметры 352 фильтрации, кодированный сигнал 354 возбуждения и параметры 356 кодирования во второй полосе частот могут быть примерами параметров, включенных в кодированный речевой сигнал 106, как описано в связи с фиг. 1.
[0058] В некоторых реализациях, электронное устройство, которое включает в себя широкополосный речевой кодер 342, также может включать в себя схему, выполненную с возможностью передавать мультиплексированный сигнал в канал передачи, такой как проводной, оптический или беспроводной канал. Это электронное устройство также может быть выполнено с возможностью осуществлять одну или более операций канального кодирования для сигнала, таких как кодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное кодирование) и/или кодирование с обнаружением ошибок (к примеру, кодирование с контролем циклическим избыточным кодом), и/или кодирование согласно одному или более уровней сетевых протоколов (к примеру, протокол управления передачей/Интернет-протокол (TCP/IP), CDMA2000).
[0059] Может быть преимущественным, если мультиплексор выполнен с возможностью встраивать параметры 352 фильтрации и кодированный сигнал 354 возбуждения в качестве разделимого субпотока мультиплексированного сигнала, так что параметры 352 фильтрации и кодированный сигнал 354 возбуждения могут восстанавливаться и декодироваться независимо от другой части мультиплексированного сигнала, к примеру, сигнала полосы высоких частот и/или полосы низких частот. Например, мультиплексированный сигнал может компоноваться таким образом, что параметры 352 фильтрации и кодированный сигнал 354 возбуждения могут восстанавливаться посредством отсечения параметров 356 кодирования во второй полосе частот. Одно потенциальное преимущество такого признака заключается в исключении необходимости транскодирования параметров 356 кодирования во второй полосе частот перед их передачей в систему, которая поддерживает декодирование параметров 352 фильтрации и кодированного сигнала 354 возбуждения, но не поддерживает декодирование параметров 356 кодирования во второй полосе частот.
[0060] Широкополосный речевой декодер 358 может включать в себя декодер 360 первой полосы частот, декодер 366 второй полосы частот и гребенку B 368 фильтров. Декодер 360 первой полосы частот (например, узкополосный декодер) выполнен с возможностью декодировать параметры 352 фильтрации и кодированный сигнал 354 возбуждения для того, чтобы формировать декодированный сигнал 362a первой полосы частот (например, декодированный узкополосный сигнал). Декодер 366 второй полосы частот выполнен с возможностью декодировать параметры 356 кодирования во второй полосе частот согласно сигналу 364 возбуждения (например, узкополосному сигналу возбуждения), на основе кодированного сигнала 354 возбуждения, формировать декодированный сигнал 362b второй полосы частот (например, декодированный сигнал полосы высоких частот). В этом примере, декодер 360 первой полосы частот выполнен с возможностью предоставлять сигнал 364 возбуждения в декодер 366 второй полосы частот. Гребенка B 368 фильтров выполнена с возможностью комбинировать декодированный сигнал 362a первой полосы частот и декодированный сигнал 362b второй полосы частот для того, чтобы формировать декодированный широкополосный речевой сигнал 370.
[0061] Некоторые реализации широкополосного речевого декодера 358 могут включать в себя демультиплексор (не показан), выполненный с возможностью формировать параметры 352 фильтрации, кодированный сигнал 354 возбуждения и параметры 356 кодирования во второй полосе частот из мультиплексированного сигнала. Электронное устройство, включающее в себя широкополосный речевой декодер 358, может включать в себя схему, выполненную с возможностью принимать мультиплексированный сигнал из канала передачи, такого как проводной, оптический или беспроводной канал. Это электронное устройство также может быть выполнено с возможностью осуществлять одну или более операций канального декодирования для сигнала, таких как декодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное декодирование) и/или декодирование с обнаружением ошибок (к примеру, декодирование с контролем циклическим избыточным кодом), и/или декодирование согласно одному или более уровней сетевых протоколов (к примеру, Ethernet, TCP/IP, CDMA2000).
[0062] Гребенка A 344 фильтров в широкополосном речевом кодере 342 выполнена с возможностью фильтровать входной сигнал согласно схеме с разбиением полосы частот для того, чтобы формировать сигнал 346a первой полосы частот (например, узкополосный или низкочастотный подполосный сигнал) и сигнал 346b второй полосы частот (например, сигнал полосы высоких частот или высокочастотный подполосный сигнал). В зависимости от проектных критериев конкретного приложения, выходные поддиапазоны могут иметь равные или неравные полосы пропускания и могут быть перекрывающимися или неперекрывающимися. Конфигурация гребенки A 344 фильтров, которая формирует более двух подполос частот, также возможна. Например, гребенка A 344 фильтров может быть выполнена с возможностью формировать один или более сигналов полосы низких частот, которые включают в себя компоненты в частотном диапазоне ниже частотного диапазона сигнала 346a первой полосы частот (например, в таком диапазоне, как 50-300 герц (Гц)). Также гребенка A 344 фильтров может быть выполнена с возможностью формировать один или более дополнительных сигналов полосы высоких частот, которые включают в себя компоненты в частотном диапазоне выше частотного диапазона сигнала 346b второй полосы частот (например, в таком диапазоне, как 14-20 или 16-32 килогерца (кГц) 16-20). В такой конфигурации, широкополосный речевой кодер 342 может реализовываться с возможностью кодировать сигнал или сигналы отдельно, и мультиплексор может быть выполнен с возможностью включать в себя дополнительный кодированный сигнал или сигналы в мультиплексированном сигнале (например, в качестве одной или более разделимых частей).
[0063] Фиг. 4 является блок-схемой, иллюстрирующей более конкретный пример кодера 404. В частности, фиг. 4 иллюстрирует CELP-архитектуру анализа через синтез для кодирования речи с низкой скоростью передачи битов. В этом примере, кодер 404 включает в себя модуль 472 кадрирования и предварительной обработки, модуль 476 анализа, преобразователь 478 коэффициентов, квантователь 480, синтезирующий фильтр 484, сумматор 488, модуль 492 перцепционной взвешивающей фильтрации и минимизации ошибок и модуль 494 оценки возбуждения. Следует отметить, что кодер 404 и один или более компонентов кодера 404 могут реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного.
[0064] Речевой сигнал 402 (например, входная речь s) может представлять собой электронный сигнал, который содержит речевую информацию. Например, акустический речевой сигнал может быть захвачен посредством микрофона и дискретизирован для того, чтобы формировать речевой сигнал 402. В некоторых конфигурациях, речевой сигнал 402 может быть дискретизирован при 16 Кбит/с. Речевой сигнал 402 может содержать диапазон частот, как описано выше в связи с фиг. 1.
[0065] Речевой сигнал 402 может предоставляться в модуль 472 кадрирования и предварительной обработки. Модуль 472 кадрирования и предварительной обработки может разделять речевой сигнал 402 на последовательность кадров. Каждый кадр может составлять конкретный период времени. Например, каждый кадр может соответствовать 20 мс речевого сигнала 402. Модуль 472 кадрирования и предварительной обработки может выполнять другие операции для речевого сигнала 402, такие как фильтрация (например, одно или более из фильтрации нижних частот, фильтрации верхних частот и полосовой фильтрации). Соответственно, модуль 472 кадрирования и предварительной обработки может формировать предварительно обработанный речевой сигнал 474 (например, S(a), где a является числом выборок) на основе речевого сигнала 402.
[0066] Модуль 476 анализа может определять набор коэффициентов (например, аналитический фильтр A(z) на основе линейного прогнозирования). Например, модуль 476 анализа может кодировать спектральную огибающую предварительно обработанного речевого сигнала 474 в качестве набора коэффициентов, как описано в связи с фиг. 2.
[0067] Коэффициенты могут предоставляться в преобразователь 478 коэффициентов. Преобразователь 478 коэффициентов преобразует набор коэффициентов в соответствующий LSF-вектор (например, LSF, LSP, ISF, ISP и т.д.), как описано выше в связи с фиг. 2.
[0068] LSF-вектор предоставляется в квантователь 480. Квантователь 480 квантует LSF-вектор в квантованный LSF-вектор 482. Например, квантователь 480 может выполнять векторное квантование для LSF-вектора, чтобы давать в результате квантованный LSF-вектор 482. Это квантование может быть либо непрогнозирующим (например, LSF-вектор предыдущего кадра не используется в процессе квантования), либо прогнозирующим (например, LSF-вектор предыдущего кадра используется в процессе квантования).
[0069] В некоторых конфигурациях, может использоваться один из двух режимов прогнозирования: режим прогнозирующего квантования или режим непрогнозирующего квантования. В режиме непрогнозирующего квантования, векторное LSF-квантование для кадра является независимым от LSF-вектора любого предшествующего кадра. В режиме прогнозирующего квантования, векторное LSF-квантование для кадра зависит от LSF-вектора предшествующего кадра.
[0070] В других конфигурациях, могут использоваться три или более режимов прогнозирования. В этих конфигурациях, каждый из трех или более режимов прогнозирования указывает степень зависимости, в которой векторное LSF-квантование для кадра зависит от LSF-вектора предшествующего кадра. В одном примере, могут использоваться три режима прогнозирования. Например, в первом режиме прогнозирования, LSF-вектор для кадра квантуется независимо (например, без зависимости) от LSF-вектора любого предшествующего кадра. Во втором режиме прогнозирования, LSF-вектор квантуется в зависимости от LSF предшествующего кадра, но с меньшей зависимостью, чем в третьем режиме прогнозирования. В третьем режиме прогнозирования, LSF-вектор квантуется в зависимости от LSF предшествующего кадра с большей зависимостью, чем во втором режиме прогнозирования.
[0071] Режимы прогнозирования могут управляться через коэффициенты прогнозирования. В некоторых конфигурациях, например, LSF-вектор текущего кадра может квантоваться на основе коэффициентов прогнозирования и LSF-вектора предшествующего кадра. Режимы прогнозирования с большей зависимостью от предшествующего кадра могут использовать более высокие коэффициенты прогнозирования, чем режимы прогнозирования с меньшей зависимостью. Более высокие коэффициенты прогнозирования могут взвешивать LSF-вектор предшествующего кадра выше, в то время как более низкие коэффициенты прогнозирования могут взвешивать LSF-вектор предшествующего кадра ниже при квантовании LSF-вектора текущего кадра.
[0072] Квантователь 480 может формировать индикатор 431 режима прогнозирования, который указывает режим прогнозирования для каждого кадра. Индикатор 431 режима прогнозирования может отправляться в декодер. В некоторых конфигурациях, индикатор 431 режима прогнозирования может указывать один из двух режимов прогнозирования (например, то, используется прогнозирующее квантование или непрогнозирующее квантование) для кадра. Например, индикатор 431 режима прогнозирования может указывать то, квантуется кадр на основе вышеприведенного кадра (например, прогнозирующее) или нет (например, непрогнозирующее). В других конфигурациях, индикатор 431 режима прогнозирования может указывать один из трех или более режимов прогнозирования (согласно трем или более степеней зависимости, в которой векторное LSF-квантование для кадра зависит от LSF-вектора предшествующего кадра).
[0073] В некоторых конфигурациях, индикатор 431 режима прогнозирования может указывать режим прогнозирования текущего кадра. В других конфигурациях, индикатор 431 режима прогнозирования может указывать режим прогнозирования предыдущего кадра. В еще одних других конфигурациях, могут использоваться несколько индикаторов 431 режима прогнозирования в расчете на кадр. Например, могут отправляться два индикатора 431 режима прогнозирования кадра, соответствующие кадру, при этом первый индикатор 431 режима прогнозирования указывает режим прогнозирования, используемый для текущего кадра, а второй индикатор 431 режима прогнозирования указывает режим прогнозирования, используемый для предыдущего кадра.
[0074] В некоторых конфигурациях, LSF-векторы могут формироваться и/или квантоваться на основе субкадров. В некоторых реализациях, только квантованные LSF-векторы, соответствующие определенным субкадрам (например, последнему субкадру или концевому субкадру каждого кадра), могут отправляться в декодер. В некоторых конфигурациях, квантователь 480 также может определять квантованный весовой вектор 429. Весовые векторы могут использоваться для того, чтобы квантовать LSF-векторы (например, средние LSF-векторы) между LSF-векторами, соответствующими субкадрам, которые отправляются (например, концевыми LSF-векторами). Весовые векторы могут квантоваться. Например, квантователь 480 может определять индекс таблицы кодирования или таблицы поиска, соответствующей весовому вектору, который имеет наилучшее совпадение с фактическим весовым вектором. Квантованные весовые векторы 429 (например, индексы) могут отправляться в декодер. Квантованный LSF-вектор 482, индикатор 431 режима прогнозирования и/или квантованный весовой вектор 429 могут быть примерами параметров 228 фильтрации, описанных выше в связи с фиг. 2.
[0075] Квантованные LSF предоставляются в синтезирующий фильтр 484. Синтезирующий фильтр 484 формирует синтезированный речевой сигнал 486 (например, восстановленную речь ) на основе квантованного LSF-вектора 482 и сигнала 496 возбуждения. Например, синтезирующий фильтр 484 фильтрует сигнал 496 возбуждения на основе квантованного LSF-вектора 482 (например, 1/A(z)).
[0076] Синтезированный речевой сигнал 486 вычитается из предварительно обработанного речевого сигнала 474 посредством сумматора 488, чтобы давать в результате сигнал 490 ошибки (также называемый "сигналом ошибки прогнозирования"). Сигнал 490 ошибки может представлять ошибку между предварительно обработанным речевым сигналом 474 и его оценкой (например, синтезированным речевым сигналом 486). Сигнал 490 ошибки предоставляется в модуль 492 перцепционной взвешивающей фильтрации и минимизации ошибок.
[0077] Модуль 492 перцепционной взвешивающей фильтрации и минимизации ошибок формирует взвешенный сигнал 493 ошибки на основе сигнала 490 ошибки. Например, не все компоненты (например, частотные компоненты) сигнала 490 ошибки оказывают одинаковое влияние на перцепционное качество синтезированного речевого сигнала. Ошибка в некоторых полосах частот оказывает большее влияние на качество речи, чем ошибка в других полосах частот. Модуль 492 перцепционной взвешивающей фильтрации и минимизации ошибок может формировать взвешенный сигнал 493 ошибки, который уменьшает ошибку в частотных компонентах с большим влиянием на качество речи, и распределяет большую ошибку в других частотных компонентах с меньшим влиянием на качество речи.
[0078] Модуль 494 оценки возбуждения формирует сигнал 496 возбуждения и кодированный сигнал 498 возбуждения на основе взвешенного сигнала 493 ошибки из модуля 492 перцепционной взвешивающей фильтрации и минимизации ошибок. Например, модуль 494 оценки возбуждения оценивает один или более параметров, которые характеризуют сигнал 490 ошибки или взвешенный сигнал 493 ошибки. Кодированный сигнал 498 возбуждения может включать в себя один или более параметров и может отправляться в декодер. В CELP-подходе, например, модуль 494 оценки возбуждения может определять параметры, такие как индекс адаптивной (либо для основного тона) таблицы кодирования, усиление адаптивной (либо для основного тона) таблицы кодирования, индекс фиксированной таблицы кодирования и усиление фиксированной таблицы кодирования, которые характеризуют сигнал 490 ошибки (например, взвешенный сигнал 493 ошибки). На основе этих параметров модуль 494 оценки возбуждения может формировать сигнал 496 возбуждения, который предоставляется в синтезирующий фильтр 484. В этом подходе, индекс адаптивной таблицы кодирования, усиление адаптивной таблицы кодирования (например, квантованное усиление адаптивной таблицы кодирования), индекс фиксированной таблицы кодирования и усиление фиксированной таблицы кодирования (например, квантованное усиление фиксированной таблицы кодирования) могут отправляться в декодер в качестве кодированного сигнала 498 возбуждения.
[0079] Кодированный сигнал 226 возбуждения может быть примером кодированного сигнала 226 возбуждения, описанного выше в связи с фиг. 2. Соответственно, квантованный LSF-вектор 482, индикатор 431 режима прогнозирования, кодированный сигнал 498 возбуждения и/или квантованный весовой вектор 429 могут быть включены в кодированный речевой сигнал 106, как описано выше в связи с фиг. 1.
[0080] Фиг. 5 является схемой, иллюстрирующей пример кадров 503 во время 501. Каждый кадр 503 разделен на определенное число субкадров 505. В примере, проиллюстрированном на фиг. 5, предыдущий кадр A 503a включает в себя 4 субкадра 505a-d, предыдущий кадр B 503b включает в себя 4 субкадра 505e-h, и текущий кадр C 503c включает в себя 4 субкадра 505i-l. Типичный кадр 503 может занимать период времени в 20 мс и может включать в себя 4 субкадра, хотя могут использоваться кадры других длин и/или других чисел субкадров. Каждый кадр может обозначаться с помощью соответствующего номера кадра, где n обозначает текущий кадр (например, текущий кадр C 503c). Кроме того, каждый субкадр может обозначаться с помощью соответствующего номера k субкадра.
[0081] Фиг. 5 может использоваться для того, чтобы иллюстрировать один пример LSF-квантования в кодере (например, в кодере 404). Каждый субкадр k в кадре n имеет соответствующий LSF-вектор , , для использования в аналитических и синтезирующих фильтрах. Концевой LSF-вектор 527 текущего кадра (например, LSF-вектор последнего субкадра n-ого кадра) обозначается как , где . Средний LSF-вектор 525 текущего кадра (например, средний LSF-вектор n-ого кадра) обозначается как . "Средний LSF-вектор" представляет собой LSF-вектор между другими LSF-векторами (например, между  и ) во время 501. Один пример концевого LSF-вектора 523 предыдущего кадра проиллюстрирован на фиг. 5 и обозначается как , где . При использовании в данном документе, термин "предыдущий кадр" может означать любой кадр перед текущим кадром (например, n-1, n-2, n-3 и т.д.). Соответственно, "концевой LSF-вектор предыдущего кадра" может представлять собой концевой LSF-вектор, соответствующий любому кадру перед текущим кадром. В примере, проиллюстрированном на фиг. 5, концевой LSF-вектор 523 предыдущего кадра соответствует последнему субкадру 505h из предыдущего кадра B 503b (например, кадра n-1), который непосредственно предшествует текущему кадру C 503c (например, кадру n).
[0082] Каждый LSF-вектор является M-мерным, при этом каждая размерность LSF-вектора соответствует одному LSF-значению. Например, M типично составляет 16 для широкополосной речи (например, речи, дискретизированной при 16 кГц). I-ая LSF-размерность k-того субкадра кадра n обозначается как , где .
[0083] В процессе квантования кадра n концевой LSF-вектор  может квантоваться сначала. Это квантование может быть непрогнозирующим (например, концевой LSF-вектор предыдущего кадра  не используется в процессе квантования) либо прогнозирующим (например, концевой LSF-вектор предыдущего кадра  используется в процессе квантования). Как описано выше, могут использоваться два или более режимов прогнозирования. Средний LSF-вектор  затем может квантоваться. Например, кодер может выбирать весовой вектор таким образом, что  является таким, как указано в уравнении (1).
[0084] I-ая размерность весового вектора  соответствует одному весовому коэффициенту и обозначается посредством , где . Также следует отметить, что  не ограничивается. В частности, если  дает в результате значение (например, интерполяция), ограниченное посредством  и , и  или , результирующий средний LSF-вектор  может находиться за пределами диапазона [] (например, экстраполяция на основе  и ). Кодер может определять (например, выбирать) весовой вектор  таким образом, что квантованный средний LSF-вектор является ближайшим к фактическому среднему LSF-значению в кодере на основе некоторого показателя искажения, такого как среднеквадратическая ошибка (MSE) или логарифмическое спектральное искажение (LSD). В процессе квантования, кодер передает индексы квантования концевого LSF-вектора текущего кадра  и индекс весового вектора , что позволяет декодеру восстанавливать  и .
[0085] LSF-векторы субкадров  могут быть интерполированы на основе ,  и  с использованием коэффициентов  и  интерполяции, как задано посредством уравнения (2).
Следует отметить, что  и  могут быть такими, что . Коэффициенты интерполяции  и  могут быть предварительно определенными значениями, известными как кодеру, так и декодеру.
[0086] Поскольку LSF-векторы в текущем кадре зависят от концевого LSF-вектора  предыдущего кадра, на качество речи текущего кадра может оказываться негативное влияние, когда оценивается концевой LSF-вектор предыдущего кадра (например, когда возникает стирание кадров). Например, средний LSF-вектор  текущего кадра и LSF-векторы  субкадров текущего кадра (например, за исключением ) могут быть интерполированы на основе оцененного концевого LSF-вектора предыдущего кадра. Это может приводить к несогласованным коэффициентам синтезирующей фильтрации между кодером и декодером, что может формировать артефакты в синтезированном речевом сигнале.
[0087] Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей одну конфигурацию способа 600 для кодирования речевого сигнала 402 посредством кодера 404. Например, электронное устройство, включающее в себя кодер 404, может осуществлять способ 600. Фиг. 6 иллюстрирует процедуры LSF-квантования для текущего кадра n.
[0088] Кодер 404 может получать 602 квантованный концевой LSF-вектор предыдущего кадра. Например, кодер 404 может квантовать концевой LSF, соответствующий предыдущему кадру (например, ) посредством выбора вектора таблицы кодирования, который является ближайшим к концевому LSF, соответствующему предыдущему кадру n-1.
[0089] Кодер 404 может квантовать 604 концевой LSF-вектор текущего кадра (например, ). Кодер 404 квантует 604 концевой LSF-вектор текущего кадра на основе концевого LSF-вектора предыдущего кадра, если используется прогнозирующее LSF-квантование. Тем не менее, квантование 604 LSF-вектор текущего кадра не основано на концевом LSF-векторе предыдущего кадра, если непрогнозирующее квантование используется для концевого LSF текущего кадра.
[0090] Кодер 404 может квантовать 606 средний LSF-вектор текущего кадра (например, ) посредством определения весового вектора (например, ). Например, кодер 404 может выбирать весовой вектор, который приводит к квантованному среднему LSF-вектору, который является ближайшим к фактическому среднему LSF-вектору. Как проиллюстрировано в уравнении (1), квантованный средний LSF-вектор может быть основан на весовом векторе, концевом LSF-векторе предыдущего кадра и концевом LSF-векторе текущего кадра.
[0091] Кодер 404 может отправлять 608 квантованный концевой LSF-вектор текущего кадра и весовой вектор в декодер. Например, кодер 404 может предоставлять концевой LSF-вектор текущего кадра и весовой вектор в передающее устройство на электронном устройстве, которое может передавать их в декодер на другом электронном устройстве.
[0092] Некоторые конфигурации систем и способов, раскрытых в данном документе, предоставляют подходы для определения коэффициентов LSF-интерполяции на основе одного или более свойств текущего кадра и одного или более свойств предыдущего кадра. Например, системы и способы, раскрытые в данном документе, могут применяться в системе кодирования речи, которая работает при ухудшенных характеристиках канала. Некоторые системы кодирования речи выполняют интерполяцию и/или экстраполяцию LSF между LSF текущего кадра и LSF предыдущего кадра на основе субкадров. Тем не менее, речевые артефакты могут получаться в результате в условиях стирания кадров, в зависимости от LSF-вектора, оцененного вследствие стертого кадра, при этом оцененный LSF-вектор используется для того, чтобы формировать LSF-векторы субкадров для корректно принимаемого кадра.
[0093] Фиг. 7 является блок-схемой, иллюстрирующей одну конфигурацию электронного устройства 737, выполненного с возможностью определения набора коэффициентов интерполяции. Электронное устройство 737 включает в себя декодер 708. Декодер 708 формирует декодированный речевой сигнал 759 (например, синтезированный речевой сигнал) на основе квантованных весовых векторов 729, квантованных LSF-векторов 782, индикатора 731 режима прогнозирования и/или кодированного сигнала 798 возбуждения. Один или более декодеров, описанных выше, могут реализовываться в соответствии с декодером 708, описанным в связи с фиг. 7. Электронное устройство 737 также включает в себя детектор 743 стертых кадров. Детектор 743 стертых кадров может реализовываться отдельно от декодера 708 или может реализовываться в декодере 708. Детектор 743 стертых кадров обнаруживает стертый кадр (например, кадр, который не принимается или принимается с ошибками) и может предоставлять индикатор 767 стертого кадра, когда стертый кадр обнаруживается. Например, детектор 743 стертых кадров может обнаруживать стертый кадр на основе одного или более из хэш-функции, контрольной суммы, кода с повторениями, бита(ов) четности, контроля циклическим избыточным кодом (CRC) и т.д.
[0094] Следует отметить, что один или более компонентов, включенных в электронное устройство 737 и/или декодер 708, могут реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного. Например, одно или более из модуля 761 определения значений и модуля 765 определения наборов коэффициентов интерполяции могут реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного. Также следует отметить, что стрелки в прямоугольниках на фиг. 7 или на других блок-схемах в данном документе могут обозначать прямую или косвенную связь между компонентами. Например, модуль 761 определения значений может соединяться с модулем 765 определения наборов коэффициентов интерполяции.
[0095] Декодер 708 формирует декодированный речевой сигнал 759 (например, синтезированный речевой сигнал) на основе принимаемых параметров. Примеры принимаемых параметров включают в себя квантованные LSF-векторы 782, квантованные весовые векторы 729, индикатор 731 режима прогнозирования и кодированный сигнал 798 возбуждения. Декодер 708 включает в себя одно или более из обратного квантователя A 745, модуля 749 интерполяции, обратного преобразователя 753 коэффициентов, синтезирующего фильтра 757, модуля 761 определения значений, модуля 765 определения наборов коэффициентов интерполяции и обратного квантователя B 773.
[0096] Декодер 708 принимает квантованные LSF-векторы 782 (например, квантованные LSF, LSP, ISF, ISP, ParCor-коэффициенты, коэффициенты отражения или значения логарифмического отношения площадей) и квантованные весовые векторы 729. Принимаемые квантованные LSF-векторы 782 могут соответствовать поднабору субкадров. Например, квантованные LSF-векторы 782 могут включать в себя только квантованные концевые LSF-векторы, которые соответствуют последнему субкадру каждого кадра. В некоторых конфигурациях, квантованные LSF-векторы 782 могут представлять собой индексы, соответствующие таблице поиска или таблице кодирования. Дополнительно или альтернативно, квантованные весовые векторы 729 могут представлять собой индексы, соответствующие таблице поиска или таблице кодирования.
[0097] Электронное устройство 737 и/или декодер 708 могут принимать индикатор 731 режима прогнозирования из кодера. Как описано выше, индикатор 731 режима прогнозирования указывает режим прогнозирования для каждого кадра. Например, индикатор 731 режима прогнозирования может указывать один из двух или более режимов прогнозирования для кадра. Более конкретно, индикатор 731 режима прогнозирования может указывать то, используется прогнозирующее квантование или непрогнозирующее квантование, и/или степень зависимости, в которой векторное LSF-квантование для кадра зависит от LSF-вектора предшествующего кадра. Как описано выше в связи с фиг. 4, индикатор 731 режима прогнозирования может указывать один или более режимов прогнозирования, соответствующих текущему кадру (например, кадру n) и/или предыдущем кадру (например, кадру n-1).
[0098] Когда кадр корректно принимается, обратный квантователь A 745 деквантует принимаемые квантованные LSF-векторы 729, чтобы формировать деквантованные LSF-векторы 747. Например, обратный квантователь A 745 может искать деквантованные LSF-векторы 747 на основе индексов (например, квантованных LSF-векторов 782), соответствующих таблице поиска или таблице кодирования. Деквантование квантованных LSF-векторов 782 также может быть основано на индикаторе 731 режима прогнозирования. Деквантованные LSF-векторы 747 могут соответствовать поднабору субкадров (например, концевым LSF-векторам , соответствующим последнему субкадру каждого кадра). Кроме того, обратный квантователь A 745 деквантует квантованные весовые векторы 729, чтобы формировать деквантованные весовые векторы 739. Например, обратный квантователь A 745 может искать деквантованные весовые векторы 739 на основе индексов (например, квантованных весовых векторов 729), соответствующих таблице поиска или таблице кодирования.
[0099] Когда кадр представляет собой стертый кадр, детектор 743 стертых кадров может предоставлять индикатор 767 стертого кадра в обратный квантователь A 745. Когда возникает стертый кадр, один или более квантованных LSF-векторов 782 и/или один или более квантованных весовых векторов 729 могут не приниматься или могут содержать ошибки. В этом случае, обратный квантователь A 745 может оценивать один или более деквантованных LSF-векторов 747 (например, концевой LSF-вектор стертого кадра ) на основе одного или более LSF-векторов из предыдущего кадра (например, кадра перед стертым кадром). Дополнительно или альтернативно, обратный квантователь A 745 может оценивать один или более деквантованных весовых векторов 739, когда возникает стертый кадр. Деквантованные LSF-векторы 747 (например, концевые LSF-векторы) могут предоставляться в модуль 749 интерполяции и необязательно в модуль 761 определения значений.
[00100] Модуль 761 определения значений определяет значение 763 на основе свойства текущего кадра и свойства предыдущего кадра. Значение 763 представляет собой показатель, который указывает степень изменения между свойством предыдущего кадра и свойством текущего кадра. Примеры свойств кадра включают в себя импульсную энергию синтезирующего фильтра (например, усиление синтезирующего фильтра), коэффициенты отражения и наклоны спектра. Резкие изменения в свойствах кадра могут быть нетипичными в речи и могут приводить к артефактам в синтезированном речевом сигнале, если остаются неразрешенными. Соответственно, значение 763 может быть использовано для того, чтобы разрешать потенциальные артефакты в случае стирания кадров.
[00101] В некоторых конфигурациях, значение 763 может быть отношением энергий. Например, модуль 761 определения значений может определять отношение (например, R) энергий энергии импульсной характеристики синтезирующего фильтра текущего кадра (например, ) и энергии импульсной характеристики синтезирующего фильтра предыдущего кадра (например, ).
[00102] В одном подходе, модуль 761 определения значений может определять отношение энергий следующим образом. Модуль 761 определения значений может получать концевой LSF-вектор текущего кадра (например, ) и концевой LSF-вектор предыдущего кадра (например, ) из деквантованных LSF-векторов 747. Модуль 761 определения значений может выполнять обратное преобразование коэффициентов для концевого LSF-вектора текущего кадра и концевого LSF-вектора предыдущего кадра, чтобы получать концевой синтезирующий фильтр текущих кадров (например, ) и концевой синтезирующий фильтр предыдущих кадров (например, ), соответственно. Модуль 761 определения значений может определять импульсные характеристики концевого синтезирующего фильтра текущего кадра и концевого синтезирующего фильтра предыдущего кадра. Например, импульсные характеристики синтезирующих фильтров, соответствующих  и , могут, соответственно, обозначаться как  и , где i является индексом выборки импульсной характеристики. Следует отметить, что импульсные характеристики (например,  и ) могут усекаться, поскольку концевой синтезирующий фильтр текущих кадров и концевой синтезирующий фильтр предыдущих кадров представляют собой фильтры с бесконечной импульсной характеристикой (IIR).
[00103] Импульсная энергия синтезирующего фильтра текущего кадра является одним примером свойства текущего кадра. Дополнительно, энергия импульсной характеристики синтезирующего фильтра предыдущего кадра является одним примером свойства предыдущего кадра. В некоторых конфигурациях, модуль 761 определения значений может определять импульсную энергию синтезирующего фильтра текущего кадра (например, ) и энергию импульсной характеристики синтезирующего фильтра предыдущего кадра (например, ) в соответствии с уравнением (3).
[00104] В уравнении (3), i является индексом выборки, и N является длиной усеченной импульсной характеристики . Как проиллюстрировано посредством уравнения (3), импульсная энергия синтезирующего фильтра текущего кадра и энергия импульсной характеристики синтезирующего фильтра предыдущего кадра может усекаться. В некоторых конфигурациях, N может составлять 128 выборок. Энергии импульсной характеристики синтезирующего фильтра (например,  и ) могут быть оценками усилений соответствующих синтезирующих фильтров (которые основаны, например, на LSF-векторах  и ).
[00105] Модуль 761 определения значений может определять отношение энергий между импульсной энергией синтезирующего фильтра текущего кадра (например, ) и энергией импульсной характеристики синтезирующего фильтра предыдущего кадра (например, ) в соответствии с уравнением (4).
[00106] В некоторых конфигурациях, значение 763 может быть многомерным. Например, модуль 761 определения значений может определять значение 763 в качестве набора коэффициентов отражения. Например, модуль 761 определения значений может определять первый коэффициент отражения текущего кадра (например, ) и первый коэффициент отражения предыдущего кадра (например, ). В некоторых конфигурациях, один или более коэффициентов отражения могут извлекаться из одного или более LSF-векторов (например, деквантованных LSF-векторов 747) и/или векторов коэффициентов линейного прогнозирования. Например, коэффициенты отражения могут быть основаны на LPC-коэффициентах. Значение 763 может включать в себя первый коэффициент отражения текущего кадра и первый коэффициент отражения предыдущего кадра. Соответственно, значение 763 может указывать изменение (если возникает) между первым коэффициентом отражения текущего кадра (например, ) и первым коэффициентом отражения предыдущего кадра (например, ). В других конфигурациях, значение 763 может включать в себя один или более наклонов спектра каждого кадра, которые могут определяться в качестве отношения энергии полосы высоких частот (например, верхней половины спектрального диапазона) к энергии полосы низких частот (например, нижней половины спектрального диапазона).
[00107] Значение 763 может предоставляться в модуль 765 определения наборов коэффициентов интерполяции. Модуль 765 определения наборов коэффициентов интерполяции может определять то, находится или нет значение 763 (например, отношение энергий, коэффициенты отражения или наклоны спектра) за пределами диапазона. Диапазон указывает домен значений 763, которые являются характерными для обычной речи. Например, диапазон может отделять значения 763, которые типично возникают в обычной речи, от значений 763, которые не возникают и/или являются редкими в обычной речи. Например, значения 763, которые находятся за пределами диапазона, могут указывать характеристики кадра, которые возникают в связи со стертым кадром и/или недостаточным маскированием стирания кадров. Соответственно, модуль 765 определения наборов коэффициентов интерполяции может определять то, демонстрирует или нет кадр характеристики, которые не возникают или которые являются редкими в обычной речи, на основе значения 763 и диапазона.
[00108] В некоторых конфигурациях, диапазон может быть многомерным. Например, диапазон может задаваться в двух или более размерностях. В этих конфигурациях, многомерное значение 763 может находиться за пределами диапазона, если каждая размерность значения 763 находится за пределами каждой размерности диапазона. Следует отметить, что определение того, находится или нет значение 763 за пределами диапазона (например, первого диапазона), может означать определение того, находится или нет значение 763 внутри другого диапазона (например, в дополнении первого диапазона).
[00109] Диапазон может быть основан на одном или более пороговых значений. В одном примере, одно пороговое значение может отделять значения 763 внутри диапазона от значений 763 за пределами диапазона. Например, все значения 763 выше порогового значения могут находиться внутри диапазона, а все значения 763 ниже порогового значения могут находиться за пределами диапазона. Альтернативно, все значения 763 ниже порогового значения могут находиться внутри диапазона, а все значения 763 выше порогового значения могут находиться за пределами диапазона. В другом примере, два пороговых значения могут отделять значения 763 внутри диапазона от значений 763 за пределами диапазона. Например, все значения 763 между пороговыми значениями могут находиться внутри диапазона, в то время как все значения 763, которые ниже нижнего порогового значения и выше более высокого порогового значения, могут находиться за пределами диапазона. Альтернативно, все значения 763 между пороговыми значениями могут находиться за пределами диапазона, в то время как все значения 763, которые ниже нижнего порогового значения и выше более высокого порогового значения, могут находиться внутри диапазона. Как проиллюстрировано посредством этих примеров, диапазон может быть непрерывным или прерывистым. В дополнительных примерах, могут использоваться более двух пороговых значений. В некоторых конфигурациях, многомерный диапазон может быть основан, по меньшей мере, на двух пороговых значениях, при этом первое пороговое значение соответствует одной размерности диапазона, а второе пороговое значение соответствует другой размерности диапазона.
[00110] В некоторых конфигурациях, модуль 765 определения наборов коэффициентов интерполяции может определять то, находится или нет значение 763 за пределами диапазона, посредством определения того, отношение (R) энергий меньше или нет одного или более пороговых значений и/или больше или нет одного или более пороговых значений. В других конфигурациях, модуль 765 определения наборов коэффициентов интерполяции может определять то, находится или нет значение 763 за пределами диапазона, посредством определения того, находится или нет изменение между первым коэффициентом отражения (R0) (или, например, наклоном спектра) предыдущего кадра и текущего кадра за пределами многомерного диапазона. Например, электронное устройство 737 может определять то, превышает или нет первый коэффициент отражения предыдущего кадра (например, ) первое пороговое значение, и то, меньше или нет первый коэффициент отражения текущего кадра (например, ) второго порогового значения.
[00111] Если значение 763 не находится за пределами диапазона, модуль 765 определения наборов коэффициентов интерполяции может использовать набор коэффициентов интерполяции по умолчанию. Набор коэффициентов интерполяции по умолчанию может представлять собой фиксированный набор коэффициентов интерполяции, который используется, когда стирание кадров не возникает (например, при характеристиках чистого канала). Например, модуль 765 определения наборов коэффициентов интерполяции может предоставлять набор коэффициентов интерполяции по умолчанию в качестве набора 769 коэффициентов интерполяции, когда значение 763 не находится за пределами диапазона.
[00112] Модуль 765 определения наборов коэффициентов интерполяции может определять набор 769 коэффициентов интерполяции. Например, модуль 765 определения наборов коэффициентов интерполяции может определять набор 769 коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования, если значение 763 находится за пределами диапазона. Набор коэффициентов интерполяции представляет собой набор из двух или более коэффициентов интерполяции. Например, набор коэффициентов интерполяции может включать в себя коэффициенты  и  интерполяции. В некоторых конфигурациях, набор коэффициентов интерполяции может включать в себя разностный коэффициент, который основан на других коэффициентах интерполяции в наборе коэффициентов интерполяции. Например, набор коэффициентов интерполяции может включать в себя коэффициенты ,  интерполяции и разностный коэффициент . В некоторых конфигурациях, набор коэффициентов интерполяции может включать в себя два или более коэффициентов интерполяции для одного или более субкадров. Например, набор коэффициентов интерполяции может включать в себя ,  и разностный коэффициент  для k-того субкадра, где , и K является числом субкадров в кадре. Коэффициенты интерполяции (и, например, разностный коэффициент) используются для того, чтобы интерполировать деквантованные LSF-векторы 747.
[00113] Если значение 763 находится за пределами диапазона, модуль 765 определения наборов коэффициентов интерполяции может определять (например, выбирать) набор 769 коэффициентов интерполяции из группы наборов коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования. Например, системы и способы, раскрытые в данном документе, могут предоставлять адаптивный механизм для того, чтобы переключаться между предварительно заданными наборами коэффициентов интерполяции (например, различными наборами  и ) на основе значения 763 и индикатора 731 режима прогнозирования.
[00114] Следует отметить, что некоторые известные подходы используют только фиксированный коэффициент интерполяции. Например, один известный подход, предоставленный посредством технических требований усовершенствованного кодека с переменной скоростью версия B (EVRC-B), может использовать только один фиксированный коэффициент интерполяции. В подходах, которые используют фиксированную интерполяцию, коэффициент(ы) интерполяции не может изменяться или не может быть адаптированным. Тем не менее, в соответствии с системами и способами, раскрытыми в данном документе, электронное устройство 737 может адаптивно определять различные наборы коэффициентов интерполяции (например, адаптивно выбирать набор коэффициентов интерполяции из группы нескольких наборов коэффициентов интерполяции) на основе значения 763 и/или индикатора 731 режима прогнозирования. В некоторых случаях, может использоваться набор коэффициентов интерполяции по умолчанию. Набор коэффициентов интерполяции по умолчанию может быть идентичным набору коэффициентов интерполяции, который используется в случае чистого канала (например, без стертого кадра). Системы и способы, раскрытые в данном документе, могут обнаруживать случаи для отклонения от набора коэффициентов интерполяции по умолчанию.
[00115] Системы и способы, раскрытые в данном документе, могут предоставлять преимущество большей гибкости при обработке потенциальных артефактов, вызываемых посредством стираний кадров. Другое преимущество систем и способов, раскрытых в данном документе, может заключаться в том, что может не требоваться дополнительная передача служебных сигналов. Например, может не требоваться дополнительная передача служебных сигналов, помимо индикатора 731 режима прогнозирования, квантованных LSF-векторов 782 и/или кодированного сигнала 798 возбуждения для того, чтобы реализовывать системы и способы, раскрытые в данном документе.
[00116] В некоторых конфигурациях, определение набора 769 коэффициентов интерполяции может быть основано на одном или более пороговых значений за пределами диапазона. Например, различные наборы коэффициентов интерполяции могут определяться на основе степени, в которой значение 763 находится за пределами диапазона, как определено на основе одного или более пороговых значений за пределами диапазона. В других конфигурациях, не могут использоваться пороговые значения за пределами диапазона. В этих конфигурациях, могут использоваться только одно или более пороговых значений, которые ограничивают диапазон. Например, набор 769 коэффициентов интерполяции может определяться на основе любого значения 763 за пределами диапазона и на основе индикатора 731 режима прогнозирования. Определение набора 769 коэффициентов интерполяции может быть выполнено в соответствии с одним или более подходов. Примеры некоторых подходов задаются следующим образом.
[00117] В одном подходе, модуль 765 определения наборов коэффициентов интерполяции может определять набор 769 коэффициентов интерполяции (например, ,  и ) на основе отношения (например, R) энергий. В частности, если R находится за пределами диапазона, можно предполагать, что концевой LSF стертого кадра (например, кадра n-1) некорректно оценен. Следовательно, различный набор ,  и  может выбираться таким образом, что больший весовой коэффициент интерполяции присваивается концевому LSF-вектору  текущего кадра (например, корректно принимаемого кадра). Это может помогать уменьшать артефакты в синтезированном речевом сигнале (например, в декодированном речевом сигнале 759).
[00118] В связи с отношением (R) энергий индикатор 731 режима прогнозирования также может быть использован в некоторых конфигурациях. Индикатор 731 режима прогнозирования может соответствовать текущему кадру (например, при квантовании концевого LSF-вектора  текущего кадра). В этом подходе, набор коэффициентов интерполяции может определяться на основе того, является режим прогнозирования кадра прогнозирующим или непрогнозирующим. Если текущий кадр (например, кадр n) использует непрогнозирующее квантование, можно предполагать, что концевой LSF  текущего кадра корректно квантован. Таким образом, более высокий весовой коэффициент интерполяции может предоставляться концевому LSF  текущего кадра по сравнению со случаем, в котором концевой LSF  текущего кадра квантуется с прогнозирующим квантованием. Соответственно, модуль 765 определения наборов коэффициентов интерполяции использует отношение (R) энергий, а также то, применяет текущий кадр прогнозирующее или непрогнозирующее квантование (например, прогнозирующую или непрогнозирующую природу LSF-квантователя кадра n), для того чтобы определять набор 769 коэффициентов интерполяции в этом подходе.
[00119] Нижеприведенная распечатка (1) иллюстрирует примеры наборов коэффициентов интерполяции, которые могут использоваться в этом подходе. Модуль 765 определения наборов коэффициентов интерполяции может определять (например, выбирать) один из наборов коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования. В некоторых конфигурациях, коэффициенты интерполяции могут переходить от зависимости от LSF-вектора предыдущего кадра к увеличенной зависимости от LSF-вектора текущего кадра. Коэффициенты интерполяции (например, весовые коэффициенты) приведены в распечатке (1), в которой каждая строка упорядочивается как ,  и , при этом каждая строка соответствует каждому субкадру k, и k={1, 2, 3, 4}. Например, первая строка каждого набора коэффициентов интерполяции включает в себя коэффициенты интерполяции для первого субкадра, вторая строка включает в себя коэффициенты интерполяции для второго субкадра, и т.д. Например, если Interpolation_factor_set_A определяется в качестве набора 769 коэффициентов интерполяции, модуль 749 интерполяции применяет ,  и  для первого субкадра в соответствии с уравнением (2) в процессе интерполяции. Следует отметить, что наборы коэффициентов интерполяции, приведенные в распечатке (1), являются примерами. Другие наборы коэффициентов интерполяции могут быть использованы в соответствии с системами и способами, раскрытыми в данном документе.
Interpolation_factor_set_A={0,00, 0,70, 0,30,
0,00, 0,00, 1,00,
0,00, 0,00, 1,00,
0,00, 0,00, 1,00};
Interpolation_factor_set_B={0,15, 0,70, 0,15,
0,05, 0,65, 0,30,
0,00, 0,50, 0,50,
0,00, 0,0, 1,00};
Interpolation_factor_set_C={0,10, 0,70, 0,20,
0,00, 0,30, 0,70,
0,00, 0,10, 0,90,
0,00, 0,00, 1,00};
Interpolation_factor_set_D={0,30, 0,50, 0,20,
0,15, 0,65, 0,20,
0,05, 0,55, 0,40,
0,00, 0,00, 1,00};
Interpolation_factor_set_E={0,55, 0,45, 0,00,
0,05, 0,95, 0,00,
0,00, 0,55, 0,45,
0,00, 0,00, 1,00};
распечатка (1)
[00120] В распечатке (2), один набор 769 коэффициентов интерполяции (например, "pt_int_coeffs") может определяться посредством выбора одного из наборов коэффициентов интерполяции из распечатки (1) на основе отношения (R) энергий (например, значения 763) и индикатора 731 режима прогнозирования для текущего кадра (например, "frame_n_mode"). Например, набор 769 коэффициентов интерполяции может определяться на основе того, является режим прогнозирования текущих кадров непрогнозирующим или прогнозирующим, и на основе двух пороговых значений (например, TH1, TH2), которые могут быть использованы для того, чтобы определять то, находится или нет (и в какой степени находится) R за пределами диапазона. В распечатке (2), диапазон может задаваться как R≥TH2.
if
((R<TH1) andand (frame_n_mode == non-predictive))
pt_int_coeffs=Interpolation_factor_set_A;
else if
((R<TH1) andand (frame_n_mode == predictive))
pt_int_coeffs = Interpolation_factor_set_B;
else if
((R<TH2) andand (frame_n_mode == non-predictive))
/*R находится между TH1 и TH2, и используется непрогнозирующее квантование*/
pt_int_coeffs=Interpolation_factor_set_C;
else if
((R<TH2) andand (frame_n_mode == predictive))
/*R находится между TH1 и TH2, и используется прогнозирующее квантование*/
pt_int_coeffs=Interpolation_factor_set_D;
else /* по умолчанию */
pt_int_coeffs=Interpolation_factor_set_E;
распечатка (2)
[00121] Распечатка (2), соответственно, иллюстрирует один пример определения того, находится или нет значение за пределами диапазона, и определения набора коэффициентов интерполяции на основе значения и режима прогнозирования кадра, если значение находится за пределами диапазона. Как проиллюстрировано в распечатке (2), набор коэффициентов интерполяции по умолчанию (например, Interpolation_factor_set_E) может быть использован, если значение не находится за пределами диапазона. В распечатке (2) один из наборов A-D коэффициентов интерполяции может определяться адаптивно на основе степени, в которой R находится за пределами диапазона. В частности, Interpolation_factor_set_D может выбираться, если R находится за пределами диапазона (например, R<TH2), и Interpolation_factor_set_B может выбираться, если R находится за пределами диапазона в большей степени (например, R<TH1). Соответственно, TH1 является одним примером порогового значения за пределами диапазона. Распечатка (2) также иллюстрирует Interpolation_factor_set_E в качестве набора коэффициентов интерполяции по умолчанию, который должен использоваться, когда R не находится за пределами диапазона. В одном примере, TH1=0,3, и TH2=0,5.
[00122] В другом подходе, набор коэффициентов интерполяции может определяться на основе первого коэффициента отражения предыдущего кадра (например, ) и первого коэффициента отражения текущего кадра (например, ) и/или индикатора 731 режима прогнозирования. Например, если первый коэффициент отражения предыдущего кадра превышает первое пороговое значение (например, >TH1), и первый коэффициент отражения текущего кадра меньше второго порогового значения (например, <TH2), то может определяться другой набор коэффициентов интерполяции. Например, >TH1 может указывать очень невокализованный предыдущий кадр, тогда как <TH2 может указывать очень вокализованный текущий кадр. В этом случае, модуль 765 определения наборов коэффициентов интерполяции может определять набор 769 коэффициентов интерполяции, который уменьшает зависимость очень невокализованного кадра (например, кадра n-1). Дополнительно, индикатор 731 режима прогнозирования может быть использован в сочетании с первыми коэффициентами отражения для того, чтобы определять набор 769 коэффициентов интерполяции, аналогично предыдущему подходу, как проиллюстрировано в распечатке (2).
[00123] В некоторых конфигурациях, модуль 765 определения наборов коэффициентов интерполяции дополнительно или альтернативно может определять набор 769 коэффициентов интерполяции на основе режима прогнозирования предыдущего кадра. Например, режим прогнозирования предыдущего кадра может быть вспомогательной информацией, отправленной в текущем кадре (например, в кадре n) относительно режима прогнозирования кадра (например, прогнозирующее или непрогнозирующее LSF-квантование) для предыдущего кадра (например, стертого кадра n-1). Например, если индикатор 731 режима прогнозирования указывает то, что LSF-квантование для кадра n-1 непрогнозирующим, то модуль 765 определения наборов коэффициентов интерполяции может выбирать Interpolation_factor_set_A в распечатке (1) с наименьшей зависимостью от LSF-вектора предыдущего кадра. Это обусловлено тем, что оцененный концевой LSF-вектор  предыдущего кадра (который может оцениваться, например, через экстраполяцию на основе маскирования стирания кадров) может существенно отличаться от фактического концевого LSF-вектора  предыдущего кадра. Следует отметить, что режим прогнозирования предыдущего кадра может представлять собой один из двух или более режимов прогнозирования, которые указывают степень зависимости, в которой векторное LSF-квантование для предыдущего кадра зависит от LSF-вектора предшествующего кадра.
[00124] В некоторых конфигурациях, работа модуля 761 определения значений и/или модуля 765 определения наборов коэффициентов интерполяции может предопределяться посредством индикатора 767 стертого кадра. Например, модуль 761 определения значений и модуль 765 определения наборов коэффициентов интерполяции могут функционировать только для одного или более кадров после того, как указывается стертый кадр. В то время, когда модуль 765 определения наборов коэффициентов интерполяции не работает, модуль 749 интерполяции может использовать набор коэффициентов интерполяции по умолчанию. В других конфигурациях, модуль 761 определения значений и модуль 765 определения наборов коэффициентов интерполяции могут работать для каждого кадра, независимо от стираний кадров.
[00125] Деквантованные LSF-векторы 747 и деквантованные весовые векторы 739 могут предоставляться в модуль 749 интерполяции. Модуль 749 интерполяции может определять средний LSF-вектор текущего кадра (например, ) на основе деквантованных LSF-векторов 747 (например, концевого LSF-вектора  текущего кадра и концевого LSF-вектора  предыдущего кадра) и деквантованного весового вектора 739 (например, весового вектора  текущего кадра). Это может быть выполнено, например, в соответствии с уравнением (1).
[00126] Модуль 749 интерполяции интерполирует деквантованные LSF-векторы 747 и средний LSF-вектор текущего кадра на основе набора 769 коэффициентов интерполяции, чтобы формировать LSF-векторы субкадров (например, LSF-векторы  субкадров для текущего кадра). Например, модуль 749 интерполяции может интерполировать LSF-векторы  субкадров на основе ,  и  с использованием коэффициентов  и  интерполяции в соответствии с уравнением . Коэффициенты  и  интерполяции могут быть такими, что . Здесь, k является целочисленным номером субкадра, где , где K является общим числом субкадров в текущем кадре. Модуль 749 интерполяции, соответственно, интерполирует LSF-векторы, соответствующие каждому субкадру в текущем кадре.
[00127] Модуль 749 интерполяции предоставляет LSF-векторы 751 в обратный преобразователь 753 коэффициентов. Обратный преобразователь 753 коэффициентов преобразует LSF-векторы 751 в коэффициенты 755 (например, коэффициенты фильтрации для синтезирующего фильтра 1/A(z)). Коэффициенты 755 предоставляются в синтезирующий фильтр 757.
[00128] Обратный квантователь B 773 принимает и деквантует кодированный сигнал 798 возбуждения для того, чтобы формировать сигнал 775 возбуждения. В одном примере, кодированный сигнал 798 возбуждения может включать в себя индекс фиксированной таблицы кодирования, квантованное усиление фиксированной таблицы кодирования, индекс адаптивной таблицы кодирования и квантованное усиление адаптивной таблицы кодирования. В этом примере, обратный квантователь B 773 ищет запись фиксированной таблицы кодирования (например, вектор) на основе индекса фиксированной таблицы кодирования и применяет деквантованное усиление фиксированной таблицы кодирования к записи фиксированной таблицы кодирования, чтобы получать долю фиксированной таблицы кодирования. Дополнительно, обратный квантователь B 773 ищет запись адаптивной таблицы кодирования на основе индекса адаптивной таблицы кодирования и применяет деквантованное усиление адаптивной таблицы кодирования к записи адаптивной таблицы кодирования, чтобы получать долю адаптивной таблицы кодирования. Обратный квантователь B 773 затем может суммировать долю фиксированной таблицы кодирования и долю адаптивной таблицы кодирования, чтобы формировать сигнал 775 возбуждения.
[00129] Синтезирующий фильтр 757 фильтрует сигнал 775 возбуждения в соответствии с коэффициентами 755, чтобы формировать декодированный речевой сигнал 759. Например, полюса синтезирующего фильтра 757 могут быть сконфигурированы в соответствии с коэффициентами 755. Сигнал 775 возбуждения затем пропускается через синтезирующий фильтр 757, чтобы формировать декодированный речевой сигнал 759 (например, синтезированный речевой сигнал).
[00130] Фиг. 8 является блок-схемой последовательности операций способа, иллюстрирующей одну конфигурацию способа 800 для определения набора коэффициентов интерполяции посредством электронного устройства 737. Электронное устройство 737 может определять 802 значение 763 на основе свойства текущего кадра и свойства предыдущего кадра. В одном примере, электронное устройство 737 может определять отношение энергий на основе энергии импульсной характеристики синтезирующего фильтра текущего кадра и энергии импульсной характеристики синтезирующего фильтра предыдущего кадра, как описано в связи с фиг. 7. В других примерах, электронное устройство 737 может определять значение 763 в качестве нескольких коэффициентов отражения или наклонов спектра, как описано выше в связи с фиг. 7.
[00131] Электронное устройство 737 может определять 804 то, находится или нет значение 763 за пределами диапазона. Например, электронное устройство 737 может определять 804, находится или нет значение 763 за пределами диапазона, на основе одного или более пороговых значений, как описано выше в связи с фиг. 7. Например, электронное устройство 737 может определять 804 то, отношение (R) энергий меньше или нет одного или более пороговых значений и/или больше или нет одного или более пороговых значений. Дополнительно или альтернативно, электронное устройство 737 может определять 804 то, превышает или нет первый коэффициент отражения предыдущего кадра (например, ) первое пороговое значение, и то, меньше или нет первый коэффициент отражения текущего кадра (например, ) второго порогового значения.
[00132] Если значение 763 не находится за пределами диапазона (например, внутри диапазона), электронное устройство 737 может использовать 810 набор коэффициентов интерполяции по умолчанию. Например, электронное устройство 737 может применять набор коэффициентов интерполяции по умолчанию, чтобы интерполировать LSF субкадров на основе концевого LSF-вектора предыдущего кадра, среднего LSF-вектора текущего кадра и концевого LSF-вектора текущего кадра.
[00133] Если значение находится за пределами диапазона, электронное устройство 737 может определять 806 набор 769 коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования. Например, если значение 763 находится за пределами диапазона, электронное устройство 737 может определять 806 (например, выбор) набор 769 коэффициентов интерполяции из группы наборов коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования, как описано выше в связи с фиг. 7. Например, различные наборы коэффициентов интерполяции могут определяться 806 на основе режима прогнозирования (например, режима прогнозирования текущих кадров и/или режима прогнозирования предыдущего кадра) и/или на основе степени, в которой значение 763 находится за пределами диапазона, как определено на основе одного или более пороговых значений за пределами диапазона. В некоторых конфигурациях, набор коэффициентов интерполяции, который определяется 806, когда значение находится за пределами диапазона, может не быть набором коэффициентов интерполяции по умолчанию.
[00134] Электронное устройство 737 может интерполировать LSF-векторы субкадров на основе набора 769 коэффициентов интерполяции, как описано выше в связи с фиг. 7. Например, интерполяция LSF-векторов субкадров на основе набора 769 коэффициентов интерполяции может включать в себя умножение концевого LSF-вектора текущего кадра (например, ) на первый коэффициент интерполяции (например, ), умножение концевого LSF-вектора предыдущего кадра (например, ) на второй коэффициент интерполяции (например, ) и умножение среднего LSF-вектора текущего кадра (например, ) на разностный коэффициент (например, ). Это может повторяться для соответствующих коэффициентов интерполяции (например,  и ) для каждого субкадра k в кадре. Это может быть выполнено, например, в соответствии с уравнением (2).
[00135] Электронное устройство 737 может синтезировать 808 речевой сигнал. Например, электронное устройство 737 может синтезировать речевой сигнал посредством пропускания сигнала 775 возбуждения через синтезирующий фильтр 757, как описано выше в связи с фиг. 7. Коэффициенты 755 синтезирующего фильтра 757 могут быть основаны на LSF-векторах 751, которые интерполированы на основе набора 769 коэффициентов интерполяции. В некоторых конфигурациях и/или примерах, способ 800 может повторяться для одного или более кадров.
[00136] Следует отметить, что одно или более из этапов, функций или процедур, описанных в связи с фиг. 8, могут быть комбинированы в некоторых конфигурациях. Например, некоторые конфигурации электронного устройства 737 могут определять 804 то, находится или нет значение 763 за пределами диапазона, и определять 806 набор коэффициентов интерполяции на основе значения и индикатора 731 режима прогнозирования в качестве части идентичного этапа. Также следует отметить, что одно или более из этапов, функций или процедур могут быть разделены на несколько этапов, функций или процедур в некоторых конфигурациях.
[00137] Следует отметить, что усовершенствованный кодек с переменной скоростью версия B (EVRC-B) может использовать подход для того, чтобы завершать зависимость от LSF-вектора предыдущего кадра с использованием изменения первого коэффициента отражения между текущим кадром (например, кадром n) и предыдущим кадром (например, кадром n-1). Тем не менее, системы и способы, раскрытые в данном документе, отличаются от этого подхода, по меньшей мере, для следующих причин.
[00138] Известный подход полностью удаляет зависимость оцененного концевого LSF-вектора  предыдущего кадра, соответствующего стертому кадру. Тем не менее, некоторые конфигурации систем и способов, раскрытых в данном документе, используют оцененный концевой LSF  предыдущего кадра, соответствующий стертому кадру. Дополнительно, некоторые конфигурации систем и способов, раскрытых в данном документе, используют технологии адаптивной интерполяции для более плавного восстановления. Например, набор коэффициентов интерполяции может быть адаптивно определен вместо простого использования набора коэффициентов интерполяции по умолчанию. Дополнительно, некоторые конфигурации систем и способов, раскрытых в данном документе, используют средний LSF-вектор (например, ) в дополнение к концевому LSF-вектору  предыдущего кадра и концевому LSF-вектору  текущего кадра в процессе LSF-интерполяции.
[00139] Некоторые конфигурации систем и способов, раскрытых в данном документе, используют режим прогнозирования текущих кадров (как указано, например, посредством индикатора режима прогнозирования) в процессе определения наборов коэффициентов LSF-интерполяции. Известные подходы могут зависеть только от типа кадра (например, посредством использования первого коэффициента отражения), тогда как системы и способы, раскрытые в данном документе, могут использовать свойства кадра, а также вероятность распространения ошибки, с учетом режима прогнозирования кадра (например, прогнозирования, используемого посредством LSF-квантователя).
[00140] Фиг. 9 является блок-схемой, иллюстрирующей примеры модулей 961a-c определения значений. В частности, модуль A 961a определения значений, модуль B 961b определения значений и модуль C 961c определения значений могут быть примерами модуля 761 определения значений, описанного в связи с фиг. 7. Модуль A 961a определения значений, модуль B 961b определения значений и модуль C 961c определения значений и/или один или более их компонентов могут реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного.
[00141] Модуль A 961a определения значений определяет отношение 933 (например, R) энергий на основе свойства текущего кадра (например, импульсной энергии синтезирующего фильтра текущего кадра (например, )) и свойства предыдущего кадра (например, энергии импульсной характеристики синтезирующего фильтра предыдущего кадра (например, )). Отношение 933 энергий может быть одним примером значения 763, описанного в связи с фиг. 7. Модуль A 961a определения значений включает в себя обратный преобразователь 977 коэффициентов, модуль 979 определения импульсных характеристик и модуль 981 определения отношений энергий.
[00142] Обратный преобразователь 977 коэффициентов получает концевой LSF-вектор текущего кадра (например, ) и концевой LSF-вектор предыдущего кадра (например, ) из деквантованных LSF-векторов A 947a. Обратный преобразователь 977 коэффициентов преобразует концевой LSF-вектор текущего кадра и концевой LSF-вектор предыдущего кадра, чтобы получать коэффициенты для концевого синтезирующего фильтра текущего кадра (например, ) и концевого синтезирующего фильтра предыдущего кадра (например, ), соответственно. Коэффициенты для концевого синтезирующего фильтра текущего кадра и концевого синтезирующего фильтра предыдущего кадра предоставляются в модуль 979 определения импульсных характеристик.
[00143] Модуль 979 определения импульсных характеристик определяет импульсные характеристики концевого синтезирующего фильтра текущего кадра и концевого синтезирующего фильтра предыдущего кадра. Например, модуль 979 определения импульсных характеристик возбуждает концевой синтезирующий фильтр текущих кадров и концевой синтезирующий фильтр предыдущих кадров с помощью импульсных сигналов, что дает в результате усеченные импульсные характеристики (например,  и ). Усеченные импульсные характеристики предоставляются в модуль 981 определения отношений энергий.
[00144] Модуль 981 определения отношений энергий определяет усеченную импульсную энергию синтезирующего фильтра текущего кадра (например, ) и усеченную энергию импульсной характеристики синтезирующего фильтра предыдущего кадра (например, ) в соответствии с уравнением (3). Модуль 981 определения отношений энергий затем определяет отношение 933 энергий между импульсной энергией синтезирующего фильтра текущего кадра (например, ) и энергией импульсной характеристики синтезирующего фильтра предыдущего кадра (например, ) в соответствии с уравнением (4).
[00145] Модуль B 961b определения значений определяет наклоны 935 спектра на основе речевого сигнала 901. Модуль B 961b определения значений включает в себя модуль 983 определения спектральной энергии и модуль 985 определения наклонов спектра. Модуль 983 определения спектральной энергии может получать речевой сигнал 901. Модуль 983 определения спектральной энергии может преобразовывать речевой сигнал предыдущего кадра и речевой сигнал текущего кадра в речевой сигнал частотной области предыдущего кадра и речевой сигнал частотной области текущего кадра через быстрое преобразование Фурье (FFT).
[00146] Модуль 983 определения спектральной энергии может определять спектральную энергию полосы низких частот предыдущего кадра и спектральную энергию полосы высоких частот предыдущего кадра. Например, каждый из речевого сигнала частотной области предыдущего кадра и речевого сигнала частотной области текущего кадра может разбиваться на полосы частот для того, чтобы вычислять энергию в расчете на полосу частот. Например, модуль 983 определения спектральной энергии может суммировать квадраты каждой выборки в нижней половине речевого сигнала частотной области предыдущего кадра, чтобы получать спектральную энергию полосы низких частот предыдущего кадра. Дополнительно, модуль 983 определения спектральной энергии может суммировать квадраты каждой выборки в верхней половине речевого сигнала частотной области предыдущего кадра, чтобы получать спектральную энергию полосы верхних частот предыдущего кадра.
[00147] Модуль 983 определения спектральной энергии может определять спектральную энергию полосы низких частот текущего кадра и спектральную энергию полосы высоких частот текущего кадра. Например, модуль 983 определения спектральной энергии может суммировать квадраты каждой выборки в нижней половине речевого сигнала частотной области текущего кадра, чтобы получать спектральную энергию полосы низких частот текущего кадра. Дополнительно, модуль 983 определения спектральной энергии может суммировать квадраты каждой выборки в верхней половине речевого сигнала частотной области текущего кадра, чтобы получать спектральную энергию полосы верхних частот текущего кадра.
[00148] Спектральная энергия полосы низких частот предыдущего кадра, спектральная энергия полосы высоких частот предыдущего кадра, спектральная энергия полосы низких частот текущего кадра и спектральная энергия полосы высоких частот текущего кадра могут предоставляться в модуль 985 определения наклонов спектра. Модуль 985 определения наклонов спектра делит спектральную энергию полосы высоких частот предыдущего кадра на спектральную энергию полосы низких частот предыдущего кадра, чтобы давать в результате наклон спектра предыдущего кадра. Модуль 985 определения наклонов спектра делит спектральную энергию полосы высоких частот текущего кадра на спектральную энергию полосы низких частот текущего кадра, чтобы получать в результате наклон спектра текущего кадра. Наклон 935 спектра предыдущего кадра и наклон 935 спектра текущего кадра могут предоставляться в качестве значения 763.
[00149] Модуль C 961c определения значений определяет первые коэффициенты 907 отражения (например, первый коэффициент отражения предыдущего кадра и первый коэффициент отражения текущего кадра) на основе LPC-коэффициентов 903. Например, модуль C 961c определения значений включает в себя модуль 905 определения первых коэффициентов отражения. В некоторых конфигурациях, модуль 905 определения первых коэффициентов отражения может определять первые коэффициенты 907 отражения на основе LPC-коэффициентов 903 в соответствии с распечаткой (3). В частности, распечатка (3) иллюстрирует один пример кода на языке C, который может быть использован для того, чтобы преобразовывать LPC-коэффициенты 903 в первые коэффициенты 907 отражения. Могут использоваться другие известные подходы к определению первых коэффициентов отражения. Следует отметить, что хотя первый коэффициент 907 отражения может передавать наклон спектра, он не может быть численно равен наклону 935 спектра (например, отношению энергии полосы высоких частот к энергии полосы низких частот), определенному посредством модуля B 961b определения значений.
*a2rc()
*
*Преобразование из LPC в коэффициент отражения
*-------------------------------------------------------------*/
void a2rc (
float*a,
/*i : LPC-коэффициенты
*/
float*refl,
/*o : коэффициенты отражения
*/
short lpcorder
/*i : LPC-порядок
*/
)
{
float f[M];
short m, j, n;
float km, denom, x;
for (m=0; m<lpcorder; m++)
{
f[m]=-a[m];
}
/*Инициализация*/
for (m=lpcorder-1; m>=0; m)
{
km=f[m];
if (km<=-1,0 || km>=1,0)
{
return;
}
refl[m]
=-km;
denom=1,0f/(1,0f-km*km);
for (j=0; j<m/2; j++)
{
n=m-1-j;
x=denom*f[j]+km*denom*f[n];
f[n]=denom*f[n]+km*denom*f[j];
f[j]=x;
}
if (m and 1)
{
f[j]=denom*f[j]+km*denom*f[j];
}
}
return;
}
распечатка (3)
[00150] Фиг. 10 является блок-схемой, иллюстрирующей один пример модуля 1065 определения наборов коэффициентов интерполяции. Модуль 1065 определения наборов коэффициентов интерполяции может реализовываться в аппаратных средствах (например, в схеме), в программном обеспечении или в комбинации вышеозначенного. Модуль 1065 определения наборов коэффициентов интерполяции включает в себя пороговые значения 1087 и наборы 1089 коэффициентов интерполяции. Одно или более пороговых значений 1087 указывают диапазон, как описано выше в связи с фиг. 7.
[00151] Модуль 1065 определения наборов коэффициентов интерполяции получает значение 1063 (например, отношение 933 энергий, один или более наклонов 935 спектра и/или один или более первых коэффициентов 907 отражения). Модуль 1065 определения наборов коэффициентов интерполяции может определять то, находится или нет значение 1063 за пределами диапазона, и может определять набор 1069 коэффициентов интерполяции на основе значения 1063 и индикатора 1031 режима прогнозирования, если значение 1063 находится за пределами диапазона.
[00152] В одном примере, как описано в связи с вышеприведенной распечаткой (1) и распечаткой (2), значение 1063 является отношением R энергий, и модуль 1065 определения наборов коэффициентов интерполяции включает в себя два пороговых значения, первое пороговое значение TH1 и второе пороговое значение TH2. Дополнительно, модуль 1065 определения наборов коэффициентов интерполяции включает в себя пять наборов 1089 коэффициентов интерполяции, при этом Interpolation_factor_set_E представляет собой набор коэффициентов интерполяции по умолчанию. Кроме того, индикатор 1031 режима прогнозирования может указывать только один из двух режимов прогнозирования для текущего кадра в этом примере: прогнозирующий или непрогнозирующий.
[00153] В этом примере, диапазон указывается посредством второго порогового значения TH2. Если отношение R энергий превышает или равно второму пороговому значению TH2, то отношение R энергий находится внутри диапазона, и модуль 1065 определения наборов коэффициентов интерполяции предоставляет набор коэффициентов интерполяции по умолчанию (Interpolation_factor_set_E) в качестве набора 1069 коэффициентов интерполяции. Тем не менее, если отношение R энергий меньше второго порогового значения TH2, то модуль 1065 определения наборов коэффициентов интерполяции должен определять один из наборов 1089 коэффициентов интерполяции на основе отношения R энергий и индикатора 1031 режима прогнозирования.
[00154] В частности, если отношение R энергий меньше первого порогового значения TH1, и индикатор 1031 режима прогнозирования указывает непрогнозирующий режим, то модуль 1065 определения наборов коэффициентов интерполяции предоставляет Interpolation_factor_set_A в качестве набора 1069 коэффициентов интерполяции. Если отношение R энергий меньше первого порогового значения TH1, и индикатор 1031 режима прогнозирования указывает прогнозирующий режим, то модуль 1065 определения наборов коэффициентов интерполяции предоставляет Interpolation_factor_set_B в качестве набора 1069 коэффициентов интерполяции. Если отношение R энергий (больше первого порогового значения TH1 и) меньше второго порогового значения TH2, и индикатор 1031 режима прогнозирования указывают непрогнозирующий режим, то модуль 1065 определения наборов коэффициентов интерполяции предоставляет Interpolation_factor_set_C в качестве набора 1069 коэффициентов интерполяции. Если отношение R энергий (больше первого порогового значения TH1 и) меньше второго порогового значения TH2, и индикатор 1031 режима прогнозирования указывают прогнозирующий режим, то модуль 1065 определения наборов коэффициентов интерполяции предоставляет Interpolation_factor_set_D в качестве набора 1069 коэффициентов интерполяции.
[00155] В другом примере, значение 1063 представляет собой набор коэффициентов отражения, включающий в себя первый коэффициент  отражения предыдущего кадра и первый коэффициент  отражения текущего кадра. Кроме того, модуль 1065 определения наборов коэффициентов интерполяции включает в себя два пороговых значения, первое пороговое значение TH1 и второе пороговое значение TH2 не следует путать с пороговыми значениями TH1 и TH2, описанными в вышеприведенном примере и в распечатке (2)). Дополнительно, модуль 1065 определения наборов коэффициентов интерполяции включает в себя три набора 1089 коэффициентов интерполяции, при этом третий набор коэффициентов интерполяции представляет собой набор коэффициентов интерполяции по умолчанию. Кроме того, индикатор 1031 режима прогнозирования может указывать только один из двух режимов прогнозирования для текущего кадра в этом примере: прогнозирующий или непрогнозирующий.
[00156] В этом примере, диапазон является многомерным диапазоном, указываемым посредством первого порогового значения TH1 и второго порогового значения TH2. Если первый коэффициент  отражения предыдущего кадра меньше или равен первому пороговому значению TH1, и первый коэффициент  отражения текущего кадра превышает или равен второму пороговому значению TH2, то значение 1063 находится внутри диапазона, и модуль 1065 определения наборов коэффициентов интерполяции предоставляет набор коэффициентов интерполяции по умолчанию (Interpolation_factor_set_C) в качестве набора 1069 коэффициентов интерполяции.
[00157] Если первый коэффициент  отражения предыдущего кадра превышает первое пороговое значение TH1, и первый коэффициент  отражения текущего кадра меньше второго порогового значения TH2, то значение 1063 находится за пределами диапазона. В этом случае, модуль 1065 определения наборов коэффициентов интерполяции предоставляет первый набор 1089 коэффициентов интерполяции в качестве набора 1069 коэффициентов интерполяции, если индикатор 1031 режима прогнозирования указывает то, что режим прогнозирования текущих кадров является непрогнозирующим, или второй набор 1089 коэффициентов интерполяции в качестве набора 1069 коэффициентов интерполяции, если индикатор 1031 режима прогнозирования указывает то, что режим прогнозирования текущих кадров является прогнозирующим.
[00158] Фиг. 11 является схемой, иллюстрирующей один пример определения набора коэффициентов интерполяции. В частности, фиг. 11 иллюстрирует пример определения набора коэффициентов интерполяции на основе отношения 1191 энергий и индикатора режима прогнозирования в соответствии с распечаткой (2). В этом примере, первое пороговое значение 1193a (TH1) равно 0,3, а второе пороговое значение 1193b (TH2) равно 0,5. Как проиллюстрировано, диапазон 1195 указывается посредством второго порогового значения 1193b (например, диапазон 1195 превышает или равен второму пороговому значению 1193b), и первое пороговое значение 1193a находится за пределами диапазона 1195.
[00159] Если отношение 1191 энергий находится внутри диапазона 1195, электронное устройство 737 может использовать 1199 Interpolation_factor_set_E, который представляет собой набор коэффициентов интерполяции по умолчанию. Если отношение 1191 энергий меньше первого порогового значения 1193a (за пределами диапазона 1195), и режим прогнозирования текущих кадров является непрогнозирующим, электронное устройство 737 может определять Interpolation_factor_set_A 1197a. Если отношение 1191 энергий меньше первого порогового значения 1193a (за пределами диапазона 1195), и режим прогнозирования текущих кадров является прогнозирующим, электронное устройство 737 может определять Interpolation_factor_set_B 1197b. Если отношение 1191 энергий превышает или равно первому пороговому значению 1193a и меньше второго порогового значения 1193b (за пределами диапазона 1195) и режим прогнозирования текущих кадров является непрогнозирующим, электронное устройство 737 может определять Interpolation_factor_set_C 1197c. Если отношение 1191 энергий превышает или равно первому пороговому значению 1193a и меньше второго порогового значения 1193b (за пределами диапазона 1195) и режим прогнозирования текущих кадров является прогнозирующим, электронное устройство 737 может определять Interpolation_factor_set_D 1197d.
[00160] Фиг. 12 является схемой, иллюстрирующей другой пример определения набора коэффициентов интерполяции. В частности, фиг. 12 иллюстрирует пример определения набора коэффициентов интерполяции на основе первого коэффициента 1201 отражения текущего кадра, первого коэффициента 1203 отражения предыдущего кадра и индикатора режима прогнозирования. В этом примере, первое пороговое значение 1211a (TH1) равно 0,65, а второе пороговое значение 1211b (TH2) равно -0,42. Как проиллюстрировано, диапазон 1209 является многомерным диапазоном, указываемым посредством первого порогового значения 1211a и второго порогового значения 1211b (например, диапазон 1209 меньше или равен первому пороговому значению 1211a для размерности первых коэффициентов отражения предыдущего кадра и больше или равен второму пороговому значению 1211b для размерности первых коэффициентов отражения текущего кадра).
[00161] Если значение, указываемое посредством первого коэффициента 1203 отражения предыдущего кадра и первого коэффициента отражения текущего кадра, находится внутри диапазона 1209, электронное устройство 737 может использовать третий набор 1207 коэффициентов интерполяции, который представляет собой набор коэффициентов интерполяции по умолчанию. Если первый коэффициент 1203 отражения предыдущего кадра превышает первое пороговое значение 1211a, и первый коэффициент 1201 отражения текущего кадра меньше второго порогового значения 1211b (за пределами диапазона 1209), и режим прогнозирования текущих кадров является непрогнозирующим, электронное устройство 737 может определять первый набор 1205a коэффициентов интерполяции. Если первый коэффициент 1203 отражения предыдущего кадра превышает первое пороговое значение 1211a, и первый коэффициент 1201 отражения текущего кадра меньше второго порогового значения 1211b (за пределами диапазона 1209), и режим прогнозирования текущих кадров является прогнозирующим, электронное устройство 737 может определять второй набор 1205b коэффициентов интерполяции.
[00162] Более конкретно, проверяется то, что первый коэффициент 1203 отражения предыдущего кадра >0,65. Невокализованные кадры типично имеют большой положительный первый коэффициент отражения. Дополнительно, проверяется то, что первый коэффициент 1201 отражения текущего кадра <-0,42. Вокализованные кадры типично имеют большой отрицательный первый коэффициент отражения. Электронное устройство 737 может использовать адаптивную LSF-интерполяцию при этих условиях, при этом первый коэффициент 1203 отражения предыдущего кадра указывает то, что предыдущий кадр невокализованным кадром, и первый коэффициент 1201 отражения текущего кадра указывает то, что текущий кадр является вокализованным кадром.
[00163] В некоторых конфигурациях, могут использоваться дополнительные или альтернативные пороговые значения. Например, электронное устройство может использовать адаптивную LSF-интерполяцию (например, определять другие наборы коэффициентов интерполяции) в противоположном сценарии, в котором предыдущий кадр является вокализованным, а текущий кадр является невокализованным. Например, если первый коэффициент отражения предыдущего кадра меньше третьего порогового значения (например, <-0,42, указывающего вокализованный кадр), и первый коэффициент отражения текущего кадра превышает четвертое пороговое значение (например, >0,65, указывающее невокализованный кадр), электронное устройство 737 может определять четвертый набор коэффициентов интерполяции, если режим прогнозирования текущих кадров является непрогнозирующим, или может определять пятый набор коэффициентов интерполяции, если режим прогнозирования текущих кадров является прогнозирующим.
[00164] Фиг. 13 включает в себя графики 1319a-c примеров форм синтезированного речевого сигнала. Горизонтальные оси графиков 1319a-c проиллюстрированы во времени 1315 (например, в минутах, секундах, миллисекундах). Вертикальные оси графиков 1319a-c проиллюстрированы в соответствующих амплитудах 1313a-c (например, в амплитудах выборок напряжения или тока). Фиг. 13 указывает один кадр 1317 в 20 мс для форм синтезированного речевого сигнала.
[00165] График A 1319a иллюстрирует один пример формы синтезированного речевого сигнала, в котором стирание кадров не возникает (например, в случае чистого канала). Соответственно, кадр 1317 для графика A 1319a может наблюдаться в качестве ссылки для сравнения.
[00166] График B 1319b иллюстрирует другой пример формы синтезированного речевого сигнала. Кадр 1317 на графике B 1319b является первым корректно принимаемым кадром после стертого кадра. На графике B 1319b системы и способы, раскрытые в данном документе, не применяются к кадру 1317. Как можно видеть, кадр 1317 на графике B 1319b демонстрирует артефакты 1321, которые не возникают в случае, описанном в связи с графиком A 1319a.
[00167] График C 1319c иллюстрирует другой пример формы синтезированного речевого сигнала. Кадр 1317 на графике C 1319c является первым корректно принимаемым кадром после стертого кадра. На графике C 1319c системы и способы, раскрытые в данном документе, применяются к кадру 1317. Например, электронное устройство 737 может определять набор коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования для кадра 1317 (например, кадра n в уравнении (2)). Как можно видеть, кадр 1317 на графике C 1319c не демонстрирует речевые артефакты 1321 кадра 1317 на графике B 1319b. Например, схема адаптивной LSF-интерполяции, описанная в данном документе, может исключать или уменьшать речевые артефакты в синтезированной речи после стертого кадра.
[00168] Фиг. 14 включает в себя графики 1419a-c дополнительных примеров форм синтезированного речевого сигнала. Горизонтальные оси графиков 1419a-c проиллюстрированы во времени 1415 (например, в минутах, секундах, миллисекундах). Вертикальные оси графиков 1419a-c проиллюстрированы в соответствующих амплитудах 1413a-c (например, в амплитудах выборок напряжения или тока напряжения или тока). Фиг. 14 указывает один кадр 1417 в 20 мс для форм синтезированного речевого сигнала.
[00169] График A 1419a иллюстрирует один пример формы синтезированного речевого сигнала, в котором стирание кадров не возникает (например, в случае чистого канала). Соответственно, кадр 1417 для графика A 1419a может наблюдаться в качестве ссылки для сравнения.
[00170] График B 1419b иллюстрирует другой пример формы синтезированного речевого сигнала. Кадр 1417 на графике B 1419b является первым корректно принимаемым кадром после стертого кадра. На графике B 1419b системы и способы, раскрытые в данном документе, не применяются к кадру 1417. Как можно видеть, кадр 1417 на графике B 1419b демонстрирует артефакты 1421, которые не возникают в случае, описанном в связи с графиком A 1419a.
[00171] График C 1419c иллюстрирует другой пример формы синтезированного речевого сигнала. Кадр 1417 на графике C 1419c является первым корректно принимаемым кадром после стертого кадра. На графике C 1419c системы и способы, раскрытые в данном документе, применяются к кадру 1417. Например, электронное устройство 737 может определять набор коэффициентов интерполяции на основе значения 763 и индикатора 731 режима прогнозирования для кадра 1417 (например, кадра n в уравнении (2)). Как можно видеть, кадр 1417 на графике C 1419c не демонстрирует речевые артефакты 1421 кадра 1417 на графике B 1419b. Например, схема адаптивной LSF-интерполяции, описанная в данном документе, может исключать или уменьшать речевые артефакты в синтезированной речи после стертого кадра.
[00172] Фиг. 15 является блок-схемой, иллюстрирующей одну конфигурацию устройства 1537 беспроводной связи, в котором могут реализовываться системы и способы для определения набора коэффициентов интерполяции. Устройство 1537 беспроводной связи, проиллюстрированное на фиг. 15, может быть примером, по меньшей мере, одного из электронных устройств, описанных в данном документе. Устройство 1537 беспроводной связи может включать в себя процессор 1533 приложений. Процессор 1533 приложений, в общем, обрабатывает инструкции (например, выполняет программы) для того, чтобы выполнять функции для устройства 1537 беспроводной связи. Процессор 1533 приложений может соединяться с аудиокодером/декодером 1531 (кодеком).
[00173] Аудиокодек 1531 может использоваться для кодирования и/или декодирования аудиосигналов. Аудиокодек 1531 может соединяться, по меньшей мере, с одним динамиком 1523, наушниками 1525, выходным гнездом 1527 и/или, по меньшей мере, одним микрофоном 1529. Динамики 1523 могут включать в себя один или более электроакустических преобразователей, которые преобразуют электрические или электронные сигналы в акустические сигналы. Например, динамики 1523 могут использоваться для того, чтобы воспроизводить музыку или выводить разговор по спикерфону и т.д. Наушники 1525 могут представлять собой другой динамик или электроакустический преобразователь, который может использоваться для того, чтобы выводить акустические сигналы (например, речевые сигналы) пользователю. Например, наушники 1525 могут использоваться таким образом, так что только пользователь может надежно слышать акустический сигнал. Выходное гнездо 1527 может использоваться для соединения других устройств с устройством 1537 беспроводной связи для вывода аудио, таких как наушники. Динамики 1523, наушники 1525 и/или выходное гнездо 1527 могут, в общем, использоваться для вывода аудиосигнала из аудиокодека 1531. По меньшей мере, один микрофон 1529 может представлять собой акустоэлектрический преобразователь, который преобразует акустический сигнал (к примеру, речь пользователя) в электрические или электронные сигналы, которые предоставляются в аудиокодек 1531.
[00174] Аудиокодек 1531 (например, декодер) может включать в себя модуль 1561 определения значений и/или модуль 1565 определения наборов коэффициентов интерполяции. Модуль 1561 определения значений может определять значение, как описано выше. Модуль 1565 определения наборов коэффициентов интерполяции может определять набор коэффициентов интерполяции, как описано выше.
[00175] Процессор 1533 приложений также может соединяться со схемой 1543 управления питанием. Один пример схемы 1543 управления питанием представляет собой интегральную схему управления питанием (PMIC), которая может использоваться для того, чтобы управлять потреблением электроэнергии устройства 1537 беспроводной связи. Схема 1543 управления питанием может соединяться с аккумулятором 1545. Аккумулятор 1545 может, в общем, предоставлять электроэнергию в устройство 1537 беспроводной связи. Например, аккумулятор 1545 и/или схема 1543 управления питанием могут соединяться, по меньшей мере, с одним из элементов, включенных в устройство 1537 беспроводной связи.
[00176] Процессор 1533 приложений может соединяться, по меньшей мере, с одним устройством 1547 ввода для приема ввода. Примеры устройств 1547 ввода включают в себя инфракрасные датчики, датчики изображений, акселерометры, датчики касания, клавишные панели и т.д. Устройства 1547 ввода могут обеспечивать возможность пользовательского взаимодействия с устройством 1537 беспроводной связи. Процессор 1533 приложений также может соединяться с одним или более устройств 1549 вывода. Примеры устройств 1549 вывода включают в себя принтеры, проекторы, экраны, тактильные устройства и т.д. Устройства 1549 вывода могут обеспечивать возможность устройству 1537 беспроводной связи формировать вывод, который может потреблять пользователь.
[00177] Процессор 1533 приложений может соединяться с запоминающим устройством 1551 для хранения приложений. Запоминающее устройство 1551 для хранения приложений может представлять собой любое электронное устройство, которое допускает сохранение электронной информации. Примеры запоминающего устройства 1551 для хранения приложений включают в себя синхронное динамическое оперативное запоминающее устройство с удвоенной скоростью передачи данных (DDRAM), синхронное динамическое оперативное запоминающее устройство (SDRAM), флэш-память и т.д. Запоминающее устройство 1551 для хранения приложений может предоставлять хранилище для процессора 1533 приложений. Например, запоминающее устройство 1551 для хранения приложений может сохранять данные и/или инструкции для функционирования программ, которые выполняются на процессоре 1533 приложений.
[00178] Процессор 1533 приложений может соединяться с контроллером 1553 отображения, который, в свою очередь, может соединяться с дисплеем 1555. Контроллер 1553 отображения может представлять собой аппаратный блок, который используется для того, чтобы формировать изображения на дисплее 1555. Например, контроллер 1553 отображения может транслировать инструкции и/или данные из процессора 1533 приложений в изображения, которые могут быть представлены на дисплее 1555. Примеры дисплея 1555 включают в себя жидкокристаллические (ЖК) панели отображения, панели на светоизлучающих диодах (светодиодные панели), дисплеи на основе электронно-лучевой трубке (CRT), плазменные дисплеи и т.д.
[00179] Процессор 1533 приложений может соединяться с процессором 1535 полосы модулирующих частот. Процессор 1535 полосы модулирующих частот, в общем, обрабатывает сигналы связи. Например, процессор 1535 полосы модулирующих частот может демодулировать и/или декодировать принимаемые сигналы. Дополнительно или альтернативно, процессор 1535 полосы модулирующих частот может кодировать и/или модулировать сигналы при подготовке к передаче.
[00180] Процессор 1535 полосы модулирующих частот может соединяться с запоминающим устройством 1557 полосы модулирующих частот. Запоминающее устройство 1557 полосы модулирующих частот может представлять собой любое электронное устройство, допускающее сохранение электронной информации, такое как SDRAM, DDRAM, флэш-память и т.д. Процессор 1535 полосы модулирующих частот может считывать информацию (например, инструкции и/или данные) и/или записывать информацию в запоминающее устройство 1557 полосы модулирующих частот. Дополнительно или альтернативно, процессор 1535 полосы модулирующих частот может использовать инструкции и/или данные, сохраненные в запоминающем устройстве 1557 полосы модулирующих частот, для того, чтобы осуществлять операции связи.
[00181] Процессор 1535 полосы модулирующих частот может соединяться с радиочастотным (RF) приемо-передающим устройством 1536. Приемо-передающее RF-устройство 1536 может соединяться с усилителем 1539 мощности и одной или более антенн 1541. Приемо-передающее RF-устройство 1536 может передавать и/или принимать радиочастотные сигналы. Например, приемо-передающее RF-устройство 1536 может передавать RF-сигнал с использованием усилителя 1539 мощности и, по меньшей мере, одной антенны 1541. Приемо-передающее RF-устройство 1536 также может принимать RF-сигналы с использованием одной или более антенн 1541. Следует отметить, что один или более элементов, включенных в устройство 1537 беспроводной связи, могут соединяться с общей шиной, которая может обеспечивать связь между элементами.
[00182] Фиг. 16 иллюстрирует различные компоненты, которые могут быть использованы в электронном устройстве 1637. Проиллюстрированные компоненты могут быть расположены в идентичной физической конструкции либо в отдельных корпусах или конструкциях. Электронное устройство 1637, описанное в связи с фиг. 16, может реализовываться в соответствии с одним или более электронных устройств, описанных в данном документе. Электронное устройство 1637 включает в себя процессор 1673. Процессор 1673 может представлять собой одно- или многокристальный микропроцессор общего назначения (например, ARM), микропроцессор специального назначения (например, процессор цифровых сигналов (DSP)), микроконтроллер, программируемую вентильную матрицу и т.д. Процессор 1673 может упоминаться в качестве центрального процессора (CPU). Хотя только один процессор 1673 показан в электронном устройстве 1637 по фиг. 16, в альтернативной конфигурации, может использоваться комбинация процессоров (например, ARM и DSP).
[00183] Электронное устройство 1637 также включает в себя запоминающее устройство 1667, поддерживающее электронную связь с процессором 1673. Иными словами, процессор 1673 может считывать информацию и/или записывать информацию в запоминающее устройство 1667. Запоминающее устройство 1667 может представлять собой любой электронный компонент, допускающий сохранение электронной информации. Запоминающее устройство 1667 может представлять собой оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), носители хранения данных на магнитных дисках, оптические носители хранения данных, устройства флэш-памяти в RAM, встроенное запоминающее устройство, включенное в процессор, программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое PROM (EEPROM), регистры и т.д., включающие в себя комбинации вышеозначенного.
[00184] Данные 1671a и инструкции 1669a могут сохраняться в запоминающем устройстве 1667. Инструкции 1669a могут включать в себя одну или более программ, подпрограмм, вложенных программ, функций, процедур и т.д. Инструкции 1669a могут включать в себя один считываемый компьютером оператор или множество считываемых компьютером операторов. Инструкции 1669a могут выполняться посредством процессора 1673 для того, чтобы реализовывать одно или более из способов, функций и процедур, описанных выше. Выполнение инструкций 1669a может заключать в себе использование данных 1671a, которые сохраняются в запоминающем устройстве 1667. Фиг. 16 показывает загрузку некоторых инструкций 1669b и данных 1671b в процессор 1673 (которые могут исходить из инструкций 1669a и данных 1671a).
[00185] Электронное устройство 1637 также может включать в себя один или более интерфейсов 1677 связи для обмена данными с другими электронными устройствами. Интерфейсы 1677 связи могут быть основаны на технологии проводной связи, технологии беспроводной связи либо на обеих технологиях. Примеры различных типов интерфейсов 1677 связи включают в себя последовательный порт, параллельный порт, универсальную последовательную шину (USB), Ethernet-адаптер, интерфейс IEEE1394-шины, интерфейс шины по стандарту интерфейса малых компьютерных систем (SCSI), порт инфракрасной (IR) связи, Bluetooth-адаптер беспроводной связи и т.д.
[00186] Электронное устройство 1637 также может включать в себя одно или более устройств 1679 ввода и одно или более устройств 1683 вывода. Примеры различных видов устройств 1679 ввода включают в себя клавиатуру, мышь, микрофон, устройство дистанционного управления, кнопку, джойстик, шаровой манипулятор, сенсорную панель, световое перо и т.д. Например, электронное устройство 1637 может включать в себя один или более микрофонов 1681 для захвата акустических сигналов. В одной конфигурации, микрофон 1681 может представлять собой преобразователь, который преобразует акустические сигналы (например, голосовые, речевые) в электрические или электронные сигналы. Примеры различных видов устройств 1683 вывода включают в себя динамик, принтер и т.д. Например, электронное устройство 1637 может включать в себя один или более динамиков 1685. В одной конфигурации, динамик 1685 может представлять собой преобразователь, который преобразует электрические или электронные сигналы в акустические сигналы. Один конкретный тип устройства вывода, которое типично может включаться в электронное устройство 1637, представляет собой устройство 1687 отображения. Устройства 1687 отображения, используемые с конфигурациями, раскрытыми в данном документе, могут использовать любую подходящую технологию проецирования изображений, такую как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (ЖК-дисплей), светоизлучающий диод (светодиод), газовая плазма, электролюминесценция и т.п. Контроллер 1689 отображения также может предоставляться для преобразования данных, сохраненных в запоминающем устройстве 1667, в текст, графику и/или движущиеся изображения (надлежащим образом), показанные на устройстве 1687 отображения.
[00187] Различные компоненты электронного устройства 1637 могут соединяться между собой посредством одной или более шин, которые могут включать в себя шину питания, шину управляющих сигналов, шину сигналов состояния, шину данных и т.д. Для простоты, различные шины проиллюстрированы на фиг. 16 в качестве системы шин 1675. Следует отметить, что фиг. 16 иллюстрирует только одну возможную конфигурацию электронного устройства 1637. Могут быть использованы различные другие архитектуры и компоненты.
[00188] В вышеприведенном описании, ссылки с номерами иногда используются в связи с различными терминами. Если термин используется вместе со ссылкой с номером, это может означать конкретный элемент, который показан на одном или более чертежей. Если термин используется без ссылки с номером, это может означать термин без ограничения каким-либо конкретным чертежом.
[00189] Термин "определение" заключает в себе множество действий, и, следовательно, "определение" может включать в себя расчет, вычисление, обработку, извлечение, исследование, поиск (к примеру, поиск в таблице, базе данных или другой структуре данных), обнаружение и т.п. Так же, "определение" может включать в себя прием (к примеру, прием информации), осуществление доступа (к примеру, осуществление доступа к данным в запоминающем устройстве) и т.п. Так же, "определение" может включать в себя разрешение, отбор, выбор, установление и т.п.
[00190] Фраза "основан на" не означает "основан только на", если иное не указано явно. Иными словами, фраза "на основе" описывает как "только на основе", так и "по меньшей мере, на основе".
[00191] Следует отметить, что одно или более из признаков, функций, процедур, компонентов, элементов, структур и т.д., описанных в связи с любой из конфигураций, описанных в данном документе, могут быть комбинированы с одним или более из функций, процедур, компонентов, элементов, структур и т.д., описанных в связи с любой одной из других конфигураций, описанных в данном документе, если совместимо. Другими словами, любая совместимая комбинация функций, процедур, компонентов, элементов и т.д., описанных в данном документе, может реализовываться в соответствии с системами и способами, раскрытыми в данном документе.
[00192] Функции, описанные в данном документе, могут сохраняться в качестве одной или более инструкций на считываемом процессором или считываемом компьютером носителе. Термин "считываемый компьютером носитель" означает любой доступный носитель, к которому можно осуществлять доступ посредством компьютера или процессора. В качестве примера, а не ограничения, этот носитель могут содержать RAM, ROM, EEPROM, флэш-память, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения либо любой другой носитель, который может быть использован для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Следует отметить, что считываемый компьютером носитель может быть материальным и долговременным. Термин "компьютерный программный продукт" означает вычислительное устройство или процессор в комбинации с кодом или инструкциями (например, "программой"), которые могут выполняться, обрабатываться или вычисляться посредством вычислительного устройства или процессора. При использовании в данном документе, термин "код" может означать программное обеспечение, инструкции, код или данные, которые выполняются посредством вычислительного устройства или процессора.
[00193] Программное обеспечение или инструкции также могут передаваться по среде передачи. Например, если программное обеспечение передается из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включены в определение среды передачи.
[00194] Способы, раскрытые в данном документе, содержат один или более этапов или действий для осуществления описанного способа. Этапы и/или действия способа могут меняться местами без отступления от объема формулы изобретения. Другими словами, если конкретный порядок этапов или действий не требуется для надлежащей работы способа, который описывается, порядок и/или применение конкретных этапов и/или действий может модифицироваться без отступления от объема формулы изобретения.
[00195] Следует понимать, что формула изобретения не ограничена точной конфигурацией и компонентами, проиллюстрированными выше. Различные модификации, изменения и варьирования могут осуществляться в компоновке, работе и подробностях систем, способов и устройств, описанных в данном документе, без отступления от объема формулы изобретения.