СИСТЕМЫ, СПОСОБЫ И УСТРОЙСТВА ДЛЯ ПОДАВЛЕНИЯ ВЫСОКОПОЛОСНЫХ ВСПЛЕСКОВ
SYSTEMS, METHODS AND DEVICES FOR SUPPRESSING HIGH BAND-PASS FLASHES

Родственная заявка
Данная заявка притязает на приоритет Предварительной патентной заявки (США) номер 60/667901, озаглавленной "CODING THE HIGH-FREQUENCY BAND OF WIDEBAND SPEECH", поданой 1 апреля 2005 года. Данная заявка также притязает на приоритет Предварительной патентной заявки (США) номер 60/673965, озаглавленной "PARAMETER CODING IN A HIGH-BAND SPEECH CODER", поданой 22 апреля 2005 года.
Область техники, к которой относится изобретение
Данное изобретение относится к обработке сигналов.
Уровень техники
Речевая связь по коммутируемой телефонной сети общего пользования (PSTN) традиционно ограничена по полосе пропускания в частотном диапазоне 300-3400 кГц. Новые сети для речевой связи, такие как сотовая телефония и "речь-по-IP" (VoIP) может не иметь такие же ограничения по полосе пропускания, и могут быть предпочтительными для того, передавать и принимать речевую связь, которая включает в себя широкополосный частотный диапазон, по таким сетям. Например, может быть желательным поддерживать диапазон звуковых частот, который идет вниз до 50 Гц и/или вверх до 7 или 8 кГц. Также может быть желательным поддерживать другие приложения, например высококачественную аудио- или аудио/видеоконференцсвязь, которые могут иметь звуковое речевое содержимое в диапазонах за пределами традиционных ограничений PSTN.
Расширение диапазона, поддерживаемое посредством речевого кодера, до более высоких частот позволяет повысить разборчивость. Например, информация, которая различает фрикативные звуки, такие как "s" и "f", в большей степени представлена в высоких частотах. Высокополосное расширение также позволяет улучшить другие качества речи, такие как эффект присутствия. Например, даже вокализованный гласный звук может иметь спектральную энергию гораздо больше ограничения PSTN.
При проведении исследований в области широкополосных речевых сигналов авторы изобретения периодически анализировали импульсы высокой энергии, или "всплески", в верхней части спектра. Эти высокополосные всплески типично продолжаются всего несколько миллисекунд (типично 2 миллисекунды с максимальной длиной примерно 3 миллисекунды), могут охватывать до нескольких килогерц (кГц) по частоте и возникать вероятно случайно в ходе различных типов речевых звуков как вокализованных, так и невокализованных. У некоторых говорящих высокополосный всплеск может возникать в любом предложении, тогда как у других говорящих эти всплески вообще могут не возникать. Хотя данные события, как правило, не происходят часто, видимо, они повсеместны, поскольку авторы изобретения обнаруживали их примеры в широкополосных речевых выборках и нескольких различных баз данных и из нескольких отличных источников.
Высокополосные всплески имеют широкий частотный диапазон, но типично возникают только в более высокой полосе спектра, например в области 3,5-7 кГц, а не в нижней полосе. Например, фиг. 1 иллюстрирует спектрограмму слова "can". В этом широкополосном речевом сигнале высокополосный всплеск можно видеть через 0,1 секунду, идущий в широкой частотной области в районе 6 кГц (на данном чертеже более темные области указывают более высокую интенсивность). Возможно, что, по меньшей мере, некоторые высокополосные всплески формируются посредством взаимодействия между ртом говорящего и микрофоном и/или вследствие щелкающих звуков, издаваемых ртом говорящего в ходе разговора.
Раскрытие изобретения
Способ обработки сигналов согласно одному варианту осуществления включает в себя обработку широкополосного речевого сигнала, чтобы получить низкополосный речевой сигнал и высокополосный речевой сигнал; определение того, что всплеск присутствует в области высокополосного речевого сигнала; и определение того, что всплеск отсутствует в соответствующей области низкополосного речевого сигнала. Способ также включает в себя, на основе определения того, что всплеск присутствует, и определения того, что всплеск отсутствует, ослабление высокополосного речевого сигнала в области.
Устройство согласно варианту осуществления включает в себя первый детектор всплесков, выполненный с возможностью обнаруживать всплески в низкополосном речевом сигнале; второй детектор всплесков, выполненный с возможностью обнаруживать всплески в соответствующем высокополосном речевом сигнале; вычислитель управляющего сигнала ослабления, выполненный с возможностью вычислять управляющий сигнал ослабления согласно разности между выводами первого и второго детекторов всплесков; и элемент регулирования усиления, выполненный с возможностью применять управляющий сигнал ослабления к высокополосному речевому сигналу.
Краткое описание чертежей
Фиг. 1 иллюстрирует спектрограмму сигнала, включающего в себя высокополосный всплеск.
Фиг. 2 иллюстрирует спектрограмму сигнала, в котором высокополосный всплеск подавлен.
Фиг. 3 иллюстрирует блок-схему компоновки, включающей в себя гребенку A110 фильтров и подавитель C200 высокополосных всплесков согласно варианту осуществления.
Фиг. 4 иллюстрирует блок-схему компоновки, включающей в себя гребенку A110 фильтров, подавитель C200 высокополосных всплесков и гребенку B120 фильтров.
Фиг. 5a иллюстрирует блок-схему реализации A112 гребенки A110 фильтров.
Фиг. 5b иллюстрирует блок-схему реализации B122 гребенки B120 фильтров.
Фиг. 6a иллюстрирует охват полосы пропускания по полосам низких и высоких частот для одного примера гребенки A110 фильтров.
Фиг. 6b иллюстрирует охват полосы пропускания по полосам низких и высоких частот для другого примера гребенки A110 фильтров.
Фиг. 6c иллюстрирует блок-схему реализации A114 гребенки A112 фильтров.
Фиг. 6d иллюстрирует блок-схему реализации B124 гребенки B122 фильтров.
Фиг. 7 иллюстрирует блок-схему компоновки, включающей в себя гребенку A110 фильтров, подавитель C200 высокополосных всплесков и высокополосный речевой кодер A200.
Фиг. 8 иллюстрирует блок-схему компоновки, включающей в себя гребенку A110 фильтров, подавитель C200 высокополосных всплесков, гребенку B120 фильтров и широкополосный речевой кодер A100.
Фиг. 9 иллюстрирует блок-схему широкополосного речевого кодера A102, который включает в себя подавитель C200 высокополосных всплесков.
Фиг 10 иллюстрирует блок-схему реализации A104 широкополосного речевого кодера A102.
Фиг. 11 иллюстрирует блок-схему компоновки, включающей в себя широкополосный речевой кодер A104 и мультиплексор A130.
Фиг. 12 иллюстрирует блок-схему реализации C202 подавителя C200 высокополосных всплесков.
Фиг. 13 иллюстрирует блок-схему реализации C12 детектора C10 всплесков.
Фиг. 14a и 14b иллюстрируют блок-схемы реализаций C52-1, C52-2 индикатора C50-1 начальной области и индикатора C50-2 конечной области соответственно.
Фиг. 15 иллюстрирует блок-схему реализации C62 детектора C60 совпадений.
Фиг. 16 иллюстрирует блок-схему реализации C22 генератора C20 управляющего сигнала ослабления.
Фиг. 17 иллюстрирует блок-схему реализации C14 детектора C12 всплесков.
Фиг. 18 иллюстрирует блок-схему реализации C16 детектора C14 всплесков.
Фиг. 19 иллюстрирует блок-схему реализации C18 детектора C16 всплесков.
Фиг. 20 иллюстрирует блок-схему реализации C24 генератора C22 управляющего сигнала ослабления.
Осуществление изобретения
Если не ограничен в явной форме контекстом, термин "вычисление" используется в данном документе, чтобы обозначать любое из своих обычных значений, например, расчет, формирование и выбор из списка значений. Если термин "содержащий" используется в настоящем описании и формуле изобретения, он не исключает других элементов или операций.
Высокополосные всплески очень хорошо слышны в исходном речевом сигнале, но они не способствуют разборчивости, и качество сигнала может быть повышено посредством их подавления. Высокополосные всплески также могут причинять ущерб при кодировании высокополосного сигнала, так что эффективность кодирования сигнала, особенно кодирования огибающей времени, может быть повышена за счет подавления всплесков из высокополосного речевого сигнала.
Высокополосные всплески могут оказывать негативное воздействие на системы высокополосного кодирования несколькими способами. Сначала эти всплески могут заставлять огибающую энергии речевого сигнала во времени быть гораздо менее плавной посредством введения резкого пика в момент всплеска. Если кодер не моделирует огибающую времени сигнала с высоким разрешением, что увеличивает объем информации, который должен быть отправлен в декодер, энергия всплеска может распределиться по времени в декодированном сигнале и вызвать помехи. Во-вторых, высокополосные всплески зачастую доминируют в огибающей спектра, как моделируется, например, набор параметров, такие как коэффициенты фильтрации с линейным предсказанием. Это моделирование типично выполняется для каждого кадра речевого сигнала (примерно 20 мс). Следовательно, кадр, содержащий "щелчок", может быть синтезирован согласно огибающей спектра, которая отличается от предыдущего и следующего кадра, что может приводить к перцепционно нежелательной разрывности.
Высокополосные всплески могут вызывать другую проблему для системы кодирования речи, в которой сигнал возбуждения высокополосного синтезирующего фильтра извлекается или иным образом представляет узкополосный остаток. В этом случае наличие высокополосного всплеска может усложнять кодирования высокополосного речевого сигнала, поскольку высокополосный речевой сигнал включает в себя структуру, которая отсутствует в узкополосном речевом сигнале.
Варианты осуществления включают в себя системы, способы и устройства, выполненные с возможностью обнаруживать всплески, которые имеются в высокополосном речевом сигнале, но отсутствуют в соответствующем узкополосном речевом сигнале, и снижать уровень высокополосного речевого сигнала в течение каждого из всплесков. Потенциальные преимущества этих вариантов осуществления включают в себя устранение помех в декодированном сигнале и/или избежание потери эффективности кодирования без существенного снижения качества исходного сигнала. Фиг. 2 иллюстрирует спектрограмму широкополосного сигнала, проиллюстрированного на фиг. 1, после подавления высокополосного всплеска согласно этому способу.
Фиг. 3 иллюстрирует блок-схему компоновки, включающей в себя гребенку A110 фильтров и подавитель C200 высокополосных всплесков согласно варианту осуществления. Гребенка A110 фильтров сконфигурирована таким образом, чтобы фильтровать широкополосный речевой сигнал S10, чтобы формировать низкополосный речевой сигнал S20 и высокополосный речевой сигнал S30. Подавитель C200 высокополосных всплесков выполнен с возможностью выводить обработанный высокополосный речевой сигнал S30a на основе высокополосного речевого сигнала S30, в котором всплески, которые возникают в высокополосном речевом сигнале S30, но отсутствуют в низкополосном речевом сигнале S20, подавлены.
Фиг. 4 иллюстрирует блок-схему компоновки, проиллюстрированной на фиг. 3. которая также включает в себя гребенку B120 фильтров. Гребенка B120 фильтров сконфигурирована так, чтобы комбинировать низкополосный речевой сигнал S20 и обработанный высокополосный речевой сигнал S30a, чтобы формировать обработанный широкополосный речевой сигнал S10a. Качество обработанного широкополосного речевого сигнала S10a может быть повышено по сравнению с широкополосным речевым сигналом S10 за счет подавления высокополосных всплесков.
Гребенка А110 фильтров сконфигурирована так, чтобы фильтровать входной сигнал согласно схеме расщепления полосы, чтобы формировать низкочастотный поддиапазон и высокочастотный поддиапазон. В зависимости от проектных критериев конкретного приложения, выходные поддиапазоны могут иметь равные или неравные полосы пропускания и могут быть перекрывающимися или неперекрывающимися. Конфигурация гребенки А110 фильтров, которая формирует более двух поддиапазонов, также возможна. Например, эта гребенка фильтров может быть сконфигурирована так, чтобы формировать очень низкополосный сигнал, который включает в себя компоненты в частотном диапазоне ниже частотного диапазона узкополосного сигнала S20 (например, диапазона 50-300 Гц). В этом случае широкополосный речевой кодер А100 (как описано ниже со ссылкой на Фиг.8) может быть реализован таким образом, чтобы кодировать этот очень низкополосный сигнал отдельно, и мультиплексор А130 (как описано ниже со ссылкой на Фиг.11) может быть выполнен с возможностью включать кодированный очень низкополосный сигнал в мультиплексированный сигнал S70 (к примеру, в качестве разделяемой части).
Фиг.5а иллюстрирует блок-схему реализации А112 гребенки А110 фильтров, которая сконфигурирована так, чтобы формировать два поддиапазонных сигнала, имеющих меньшие частоты дискретизации. Гребенка А110 фильтров выполнена с возможностью принимать широкополосный речевой сигнал S10, имеющий высокочастотную (или высокополосную) часть и низкочастотную (или низкополосную) часть. Гребенка А112 фильтров включает в себя путь низкополосной обработки, выполненный с возможностью принимать широкополосный речевой сигнал S10 и формировать низкополосный речевой сигнал S20, и путь высокополосной обработки, выполненный с возможностью принимать широкополосный речевой сигнал S10 и формировать высокополосный речевой сигнал S30. Низкочастотный фильтр 110 фильтрует широкополосный речевой сигнал S10, чтобы пропускать выбранный низкочастотный поддиапазон, а высокочастотный фильтр 130 фильтрует широкополосный речевой сигнал S10, чтобы пропускать выбранный высокочастотный поддиапазон. Поскольку оба поддиапазонных сигнала имеют более узкую полосу пропускания, чем широкополосный речевой сигнал S10, их частоты дискретизации могут быть снижены в некоторой степени без потери информации. Понижающий дискретизатор 120 снижает частоту дискретизации низкочастотного сигнала согласно требуемому коэффициенту прореживания (к примеру, посредством удаления выборок сигнала и/или замены выборок средними значениями), а понижающий дискретизатор 140 аналогично снижает частоту дискретизации сигнала верхних частот согласно другому требуемому коэффициенту прореживания.
Фиг.5b иллюстрирует блок-схему соответствующей реализации В122 гребенки В120 фильтров. Повышающий дискретизатор 150 повышает частоту дискретизации низкополосный речевой сигнал S20 (к примеру, посредством заполнения нулями и/или посредством дублирования выборок), и низкочастотный фильтр 160 фильтрует сигнал с повышенной дискретизацией, чтобы пропускать только низкополосную часть (к примеру, чтобы избежать наложения спектров). Аналогично, повышающий дискретизатор 170 увеличивает частоту дискретизации обработанного высокополосного сигнала S30a, а высокочастотный фильтр 180 фильтрует сигнал с повышенной дискретизацией, чтобы пропускать только высокополосную часть. Сигналы двух полос пропускания затем суммируются, чтобы сформировать широкополосный речевой сигнал S10a. В некоторых реализациях устройства, включающего в себя гребенку В120, гребенка В120 фильтров сконфигурирована так, чтобы формировать взвешенную сумму сигналов двух полос пропускания согласно одному или более весовых коэффициентов, принятых и/или вычисленных посредством такого устройства. Конфигурация гребенки В120 фильтров, которая комбинирует сигналы более чем двух полос пропускания, также возможна.
Каждый из фильтров 110, 130, 160, 180 может быть реализован как фильтр с конечной импульсной характеристикой (FIR) или как фильтр с бесконечной импульсной характеристикой (IIR). Частотные характеристики фильтров 110 и 130 могут иметь симметричные переходные области или переходные области непохожей формы между полосой режекции и полосой пропускания. Аналогично, частотные характеристики фильтров 160 и 180 могут иметь симметричные переходные области или переходные области непохожей формы между полосой режекции и полосой пропускания. Может быть желательным, но не обязательным реализовать фильтр 110 низких частот с такой же характеристикой, как и у фильтра 160 низких частот, и реализовать фильтр 130 высоких частот с такой же характеристикой, как и у фильтра 180 высоких частот. В одном примере две пары 110, 130 и 160, 180 фильтров являются гребенками квадратурных зеркальных фильтров (QMF), при этом пара 110, 130 фильтров имеет такие же коэффициенты, что и пара 160, 180 фильтров.
В типичном примере низкочастотный фильтр 110 имеет полосу пропускания, которая включает в себя ограниченный PSTN-диапазон в 300-3400 Гц (к примеру, полосу от 0 до 4 кГц). Фиг.6а и 6b иллюстрируют относительные полосы пропускания широкополосного речевого сигнала 310, низкополосного сигнала S20 и высокополосного сигнала S30 в двух различных примерах реализации. В обоих из этих примеров широкополосный речевой сигнал S10 имеет частоту дискретизации в 16 кГц (представляя частотные компоненты в диапазоне 0-8 кГц), а низкополосный сигнал S20 имеет частоту дискретизации в 8 кГц (представляя частотные компоненты в диапазоне 0-4 кГц).
В примере на фиг.6а нет существенного перекрывания между двумя поддиапазонами. Высокополосный сигнал S30, как показано в данном примере, может быть получен с помощью высокочастотного фильтра 130 с полосой пропускания в 4-8 кГц. В этом случае может быть желательным снизить частоту дискретизации до 8 кГц посредством снижения дискретизации фильтрованного сигнала на коэффициент два. Эта операция, которая, как ожидается, может существенно снизить вычислительную сложность дополнительных операций обработки сигнала, уменьшает энергию полосы пропускания до диапазона в 0-4 кГц без потери информации.
В альтернативном примере по фиг.6b верхние и нижние поддиапазоны имеют заметное перекрывание, так что область 3,5-4 кГц описывается посредством обоих поддиапазонных сигналов. Высокополосный сигнал S30, как показано в данном примере, может быть получен с помощью высокочастотного фильтра 130 с полосой пропускания в 3,5-7 кГц. В этом случае может быть желательным снизить частоту дискретизации до 7 кГц посредством понижающей дискретизации фильтрованного сигнала на коэффициент 16/7. Эта операция, которая, как ожидается, может существенно снизить вычислительную сложность дополнительных операций обработки сигнала, уменьшает энергию полосы пропускания до диапазона 0-3,5 кГц без потери информации.
В типичной телефонной трубке для телефонной связи один или более преобразователей (т.е. микрофон и наушник или динамик) имеет в значительной степени недостаточную характеристику в частотном диапазоне 7-8 кГц. В примере по фиг.6b часть широкополосного речевого сигнала S10 между 7 и 8 кГц не включена в кодированный сигнал. Другие конкретные примеры высокочастотного фильтра 130 имеют полосы пропускания в 3,5-7,5 кГц и 3,5-8 кГц.
В некоторых реализациях предоставление перекрывания между поддиапазонами, как в примере по фиг.6b, дает возможность использования, низкочастотного и/или высокочастотного фильтра, имеющего плавное спадание в перекрывающейся области. Эти фильтры в типичном варианте менее вычислительно сложные и/или вносят меньшую задержку, чем фильтры с более резкими или "крутыми" характеристиками. Фильтры, имеющие резкие переходные области, зачастую имеют более 'высокие боковые лепестки (которые могут приводить к наложению спектров), чем фильтры аналогичного порядка, которые имеют плавное спадание. Фильтры, имеющие резкие переходные области/ также могут иметь импульсные характеристики большой длительности, которые могут приводить к реверберирующим помехам. Для реализации гребенок фильтров, имеющих один или более IIR-фильтров, предоставляющих плавное спадание в перекрывающейся области, можно позволить использование фильтра или фильтров, полюса которых находятся дальше от единичной окружности, что может быть важным для того, чтобы обеспечивать стабильную реализацию с фиксированной запятой.
Перекрывание поддиапазонов предоставляет плавное сопряжение полосы низких частот и полосы высоких частот, что может приводить к меньшим слышимым помехам, снижению наложения спектров и/или менее заметному переходу от одной полосы к другой. Кроме того, в приложении, где низкополосный и высокополосный речевые сигналы S20, S30 впоследствии кодируются посредством различных речевых кодеров, эффективность кодирования низкополосного речевого кодера (например, кодера формы сигналов) может падать с повышением частоты. Например, качество кодирования низкополосного кодера может снижаться при низких скоростях передачи битов, особенно при наличии фонового шума. В этих случаях предоставление перекрывания поддиапазонов позволяет повышать качество воспроизводимых частотных компонентов в перекрывающейся области.
Кроме того, перекрывание поддиапазонов предоставляет плавное сопряжение полосы низких частот и полосы высоких частот, что может приводить к меньшим слышимым помехам, снижению наложения спектров и/или менее заметному переходу от одной полосы к другой. Этот признак может быть особенно желательным для реализации, в которой низкополосный речевой кодер А120 и высокополосный речевой кодер А200, как описано ниже, функционируют согласно различным методологиям кодирования. Например, различные методики кодирования могут формировать сигналы, которые звучат немного по-разному. Кодер, который кодирует спектральную огибающую в форме индексов таблицы кодирования, может формировать сигнал, имеющий звук, отличающийся от звука кодера, который кодирует вместо этого амплитудный спектр. Кодер временной области (к примеру, кодер по импульсно-кодовой модуляции, РСМ) может формировать сигнал, имеющий звук, отличающийся от звука кодера частотной области. Кодер, который кодирует сигнал с представлением спектральной огибающей и соответствующего остаточного сигнала, может формировать сигнал, имеющий звук, отличающийся от звука кодера, который кодирует сигнал только с представлением спектральной огибающей. Кодер, который кодирует сигнал как представление его формы, может формировать вывод, имеющий звук, отличающийся от звука синусоидального кодера. В этих случаях использование фильтров, имеющих резкие переходные области, чтобы задавать неперекрывающиеся поддиапазоны, может приводить к внезапному и перцепционно заметному переходу между поддиапазонами в синтезированном широкополосном сигнале.
Хотя гребенки QMF-фильтров, имеющие дополняющие перекрывающиеся частотные характеристики, зачастую используются в поддиапазонных методиках, такие фильтры не подходят, по меньшей мере, для некоторых реализации широкополосного кодирования, описанных в данном документе. Гребенка QMF-фильтров в кодере сконфигурирована так, чтобы создавать значительную степень наложения спектров, которое компенсируется в соответствующей гребенке QMF-фильтров в декодере. Такая компоновка может не подходить для варианта применения, в котором сигнал подвергается значительной величине искажения между гребенками фильтров, поскольку искажение может снижать эффективность свойства компенсации наложения спектров. Например, варианты применения, описываемые в данном документе, включают в себя реализации кодирования, сконфигурированные так, чтобы функционировать при очень низких скоростях передачи битов. Как следствие очень низкой скорости передачи битов, декодированный сигнал с большой долей вероятности является в значительной степени искаженным в сравнении с исходным сигналом, так что использование гребенок QMF-фильтров может приводить к некомпенсируемому наложению спектров. Варианты применения, которые используют гребенки QMF-фильтров, в типичном варианте имеют более высокие скорости передачи битов (к примеру, более 12 кбит/с для AMR и 64 кбит/с для G.722).
Дополнительно, кодер может быть выполнен с возможностью формировать синтезированный сигнал, который перцепционно аналогичен исходному сигналу, но который фактически значительно отличается от исходного сигнала. Например, кодер, который извлекает высокополосное возбуждение из узкополосного остатка, как описано в данном документе, может формировать такой сигнал, поскольку фактический высокополосный остаток может полностью отсутствовать в декодированном сигнале. Использование гребенок QMF-фильтров в этих приложениях может приводить к значительной степени искажения, вызываемого посредством некомпенсируемого наложения спектров.
Величина искажения, вызываемого посредством QMF-наложения спектров, может быть снижена, если затрагиваемый поддиапазон узкий, поскольку эффект от наложения спектров ограничен полосой пропускания, равной ширине поддиапазона. Например, как описано в данном документе, каждый поддиапазон включает в себя примерно половину широкополосной полосы пропускания, тем не менее искажение, вызываемое посредством некомпенсируемого наложения спектров, может затрагивать значительную часть сигнала. Качество сигнала может также затрагиваться посредством размещения частотного диапазона, в котором возникает некомпенсируемое наложение спектров. Например, искажение, создаваемое рядом с центром широкополосного речевого сигнала (к примеру, между 3 и 4 кГц), может быть гораздо более нежелательным, чем искажение, которое возникает рядом с краем сигнала (к примеру, выше 6 кГц).
Хотя характеристики фильтров гребенки QMF-фильтров тесно связаны друг с другом, низкополосные и высокополосные пути гребенок А110 и В120 фильтров могут быть сконфигурированы так, чтобы иметь спектры, которые полностью не связаны, не считая перекрывания двух поддиапазонов. Мы задаем перекрывание двух поддиапазонов как расстояние от точки, в которой частотная характеристика высокополосного фильтра падает до -20 дБ, до точки, в которой частотная характеристика низкополосного фильтра падает до -20 дБ. В различных примерах гребенки А110 и/или В120 фильтров это перекрывание варьируется от примерно 200 Гц до примерно 1 кГц. Диапазон от примерно 400 до примерно 600 Гц может представлять требуемый компромисс между эффективностью кодирования и перцепционной плавностью. В одном конкретном примере, как упоминалось выше, перекрывание составляет порядка 500 Гц.
jnп
n
Может быть желательным реализовать гребенку А112 и/или В122 фильтров, чтобы выполнить операции, проиллюстрированные на фиг.6а и 6b, в несколько стадий. Например, фиг.6 с иллюстрирует блок-схему реализации А114 гребенки А112 фильтров, которая выполняет функциональный эквивалент операций высокочастотной фильтрации и понижающей дискретизации, используя набор из интерполяции, повторной дискретизации и прореживания и других операций. Такую реализацию может быть проще спроектировать, и/или она может предоставлять возможность повторного использования блоков логики и/или кода. Например, один функциональный блок может быть использован для того, чтобы выполнять операции прореживания до 14 кГц и прореживания до 7 кГц, как показано на фиг.6с. Операция обращения спектра может быть реализована посредством умножения сигнала на функцию e или последовательность (-1), значения которой чередуются между +1 и -1. Операция формирования спектра может быть реализована как низкочастотный фильтр, выполненный с возможностью сформировать сигнал, чтобы получать требуемую общую характеристику фильтрации.
Следует отметить, что как следствие операции обращения спектра, спектр высокополосного сигнала S30 меняется на противоположный. Последующие операции в кодере и соответствующем декодере могут быть сконфигурированы надлежащим образом. Для примера, может быть желательным сформировать соответствующий сигнал возбуждения, который также имеет спектрально обращенную форму.
Фиг.6d иллюстрирует блок-схему реализации В124 гребенки В122 фильтров, которая выполняет функциональный эквивалент операций повышающей дискретизации и высокочастотной фильтрации, используя набор из интерполяции, повторной дискретизации и других операций. Гребенка В124 фильтров включает в себя операцию обращения спектра в полосе высоких частот, которая обращает аналогичную операцию, которая выполняется, например, в гребенке фильтров кодера, такой как гребенка А114 фильтров. В этом конкретном примере гребенка В124 фильтров также включает в себя режекторные фильтры в полосе низких частот и полосе высоких частот, которые ослабляют компонент сигнала при 7100 Гц, хотя эти фильтры являются необязательным и необязательно должны быть включены. Совместно поданная с настоящей патентная заявка "SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING" и опубликованная как US 2007/0088558 включает в себя дополнительное описание и чертежи, связанные с характеристиками элементов конкретных реализации гребенок A110 и В120 фильтров, и этот материал тем самым содержится в данном документе по ссылке.
Как упоминалось выше, подавление высокополосных всплесков позволяет повысить эффективность кодирования высокополосного речевого сигнала S30. Фиг.7 иллюстрирует блок-схему компоновки, в которой обработанный высокополосный речевой сигнал S30a, формируемый посредством подавителя С200 высокополосных всплесков, кодируется посредством высокополосного речевого кодера А200, чтобы формировать кодированный высокополосный речевой сигнал S30b.
Один подход к широкополосному кодированию речи влечет за собой масштабирование методики узкополосного кодирования речи (к примеру, сконфигурированной так, чтобы кодировать диапазон 0-4 кГц), чтобы покрывать широкополосный спектр. Например, речевой сигнал может дискретизироваться на более высокой скорости, чтобы включать в себя компоненты на высоких частотах, и методика узкополосного кодирования может быть переконфигурирована, чтобы использовать большее число коэффициентов фильтрации, чтобы представлять этот широкополосный сигнал. Фиг.8 показывает блок-схему примера, в котором широкополосный речевой кодер А100 выполнен с возможностью кодировать обработанный широкополосный речевой сигнал S10a для того, чтобы сформировать широкополосный речевой сигнал S10b.
Методики узкополосного кодирования, такие как CELP (кодирование методом линейного предсказания с кодовым возбуждением) являются вычислительно-емкими, тем не менее и широкополосный CELP-кодер может потреблять слишком большое число циклов обработки, чтобы быть практичным для большинства мобильных и других вложенных приложений. Кодирование всего спектра широкополосного сигнала до требуемого качества с помощью этой методики также может приводить к недопустимо большому увеличению полосы пропускания. Более того, перекодировка этого закодированного сигнала должна требоваться до того, как даже его узкополосная часть может быть передана и/или декодирована посредством системы, которая поддерживает только узкополосное кодирование. Фиг.9 показывает блок-схему широкополосного речевого кодера А102, который включает в себя отдельные низкополосный и высокополосный речевые кодеры А120 и А200 соответственно.
Может быть желательным реализовать широкополосное кодирование речи таким образом, что, по меньшей мере, узкополосная часть кодированного сигнала может быть отправлена посредством узкополосного канала (такого как PSTN-канал) без перекодировки или какой-либо другой существенной модификации. Эффективность расширения широкополосного кодирования также может быть желательной, например, чтобы не допустить существенного снижения числа пользователей, которые могут обслуживаться в таких приложениях, как беспроводная сотовая телефонная связь и широковещательная передача по проводным и беспроводным каналам.
Один подход к широкополосному кодированию речи влечет за собой экстраполирование огибающей высокополосного спектра из кодированной огибающей узкополосного спектра. Хотя этот подход может быть реализован без какого-либо увеличения полосы пропускания и без необходимости перекодировки, тем не менее приблизительная спектральная огибающая или формантная структура высокополосной части речевого сигнала, как правило, не может быть предсказана точно из спектральной огибающей узкополосной части.
Фиг.10 иллюстрирует блок-схему широкополосного речевого кодера А104, который использует другой подход к кодированию высокополосного речевого сигнала согласно информации из низкополосного речевого сигнала. В этом примере высокополосный сигнал возбуждения извлекается из кодированного низкополосного сигнала S50 возбуждения. Кодер А104 может быть выполнен с возможностью кодировать огибающую усиления на основе сигнала, базирующегося на высокополосном сигнале возбуждения, например, согласно одному или более таких вариантов осуществления, как описанные в WO 2006/107837 "METHODS AND APPARATUS FOR ENCODING AND DECODING AN HIGHBAND PORTION OF A SPEECH SIGNAL", описание которой содержится в данном документе по ссылке. Один конкретный пример широкополосного речевого кодера А104 выполнен с возможностью кодировать широкополосный речевой сигнал S10 на скорости примерно 8,55 кбит/с (килобит в секунду), при этом примерно 7,55 кбит/с используются для параметров S40 низкополосной фильтрации и кодированного низкополосного сигнала возбуждения S50, а примерно 1 кбит/с используется для кодированного высокополосного речевого сигнала S30b.
Может быть желательным комбинировать кодированные узкополосные и высокополосные сигналы в один поток битов.
Например, может быть желательным мультиплексировать кодированные сигналы вместе для передачи (к примеру, по проводному, оптическому или беспроводному каналу передачи) либо для хранения в качестве кодированного широкополосного речевого сигнала. Фиг.1b иллюстрирует блок-схему компоновки, включающей в себя широкополосный речевой кодер А104 и мультиплексор А130, выполненный с возможностью комбинировать параметры S40 низкополосной фильтрации, кодированный низкополосный сигнал S50 возбуждения и кодированный высокополосный речевой сигнал S30b в мультиплексированный сигнал S70.
Может быть желательным сконфигурировать мультиплексор А130 так, чтобы встраивать кодированный низкополосный сигнал (включающий в себя параметры S40 низкополосной фильтрации и кодированный низкополосный сигнал S50 возбуждения) в качестве разделяемого субпотока мультиплексированного сигнала S70, с тем, чтобы кодированный низкополосный сигнал мог быть восстановлен и декодирован независимо от другой части мультиплексированного сигнала 370, такого как высокополосный и/или очень низкополосный сигнал. Например, мультиплексированный сигнал S70 может быть скомпонован таким образом, что кодированный низкополосный сигнал может быть восстановлен посредством отсечения кодированного высокополосного речевого сигнала 330b. Одно потенциальное преимущество такого признака состоит в том, чтобы избегать необходимости перекодировки кодированного широкополосного сигнала до передачи его в систему, которая поддерживает декодирование низкополосного сигнала, но не поддерживает декодирование высокополосной части.
Устройство, включающее в себя низкополосный, высокополосный и/или широкополосный речевой кодер, как описывается в данном документе, может также включать схему, выполненную с возможностью передавать кодированный сигнал в канал передачи, например проводной, оптический или беспроводной канал. Это устройство также может быть сконфигурировано так, чтобы выполнять одну или более операций канального кодирования с сигналом, таких как кодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное кодирование) и/или кодирование с обнаружением ошибок (к примеру, кодирование циклическим избыточным кодом), и/или кодирование одного или более уровней сетевых протоколов (к примеру, Ethernet, TCP/IP, cdma 2000).
Любой или все из низкополосного, высокополосного и/или широкополосного речевого кодера, описанных в данном документе, могут быть реализованы согласно модели входного фильтра, которая кодирует входной речевой сигнал как (А) набор параметров, которые описывают фильтр, и (В) сигнал возбуждения, который приводит в действие описанный фильтр, чтобы сформировать синтезированное воспроизведение входного речевого сигнала. Например, спектральная огибающая речевого сигнала характеризуется числом пиков, которые представляют резонансы речевого тракта и называются формантами. Большинство речевых кодеров кодируют, по меньшей мере, эту приблизительную спектральную структуру как набор параметров, таких как коэффициенты фильтрации.
В одном примере базовой компоновки входного фильтра анализирующий модуль вычисляет набор. параметров, которые характеризуют фильтр, соответствующий речевому звуку, за период времени (типично 20 мс). Отбеливающий фильтр (также называемый анализирующим фильтром или фильтром ошибок предсказания), сконфигурированный согласно этим параметрам фильтрации, удаляет спектральную огибающую, чтобы спектрально сгладить сигнал. Результирующий отбеленный сигнал (также называемый остатком) имеет меньше энергии и тем самым меньше дисперсию, и его проще кодировать, чем исходный речевой сигнал. Ошибки, возникающие в результате кодирования остаточного сигнала, также могут быть распределены более равномерно по спектру. Параметры фильтрации и остаток в типичном варианте квантуются для эффективной передачи по каналу. В декодере синтезирующий фильтр, сконфигурированный согласно параметрам фильтрации, возбуждается остатком, чтобы сформировать синтезированную версию исходного речевого звука. Синтезирующий фильтр в типичном варианте выполнен с возможностью иметь передаточную функцию, которая является инверсией передаточной функции отбеливающего фильтра.
Анализирующий модуль может быть реализован как анализирующий модуль кодирования с линейным предсказанием (LPC), который кодирует спектральную огибающую речевого сигнала как набор коэффициентов линейного предсказания (LP) (к примеру, коэффициентов полюсного фильтра 1/A(z)). Анализирующий модуль в типичном варианте обрабатывает входной сигнал как последовательность неперекрывающихся кадров, при этом новый набор коэффициентов вычисляется для каждого кадра. Период кадра - это, как правило, период в течение которого, как ожидается, сигнал может быть локально стационарным; один общий пример - это 20 миллисекунд (эквивалентно 160 выборкам при частоте дискретизации 8 кГц). Один пример низкополосного аналитического LPC-модуля выполнен с возможностью вычислять набор из десяти коэффициентов LP-фильтрации, чтобы характеризовать формантную структуру каждого 20 миллисекундного кадра низкополосного речевого сигнала 320, а один пример высокополосного аналитического LPC-модуля выполнен с возможностью вычислять набор из шести (альтернативно, восьми) коэффициентов LP-фильграции, чтобы характеризовать формантную структуру каждого 20 миллисекундного кадра высокополосного речевого сигнала 330. Также можно реализовать анализирующий модуль так, чтобы обрабатывать входной сигнал как последовательность перекрывающихся кадров.
Анализирующий модуль может быть выполнен с возможностью анализировать выборки каждого кадра непосредственно, либо выборки могут быть сначала взвешены согласно функции кадрирования (например, взвешивающей функции Хэмминга). Анализ также может выполняться для окна, превышающего кадр, например, 30-миллисекундного окна. Это окно может быть симметричным (к примеру, 5-20-5, так что оно включает в себя 5 миллисекунд сразу перед и после 20-миллисекундного кадра) или асимметричным (к примеру, 10-20, так что оно включает в себя последние 10 миллисекунд предыдущего кадра). Анализирующий LPC-модуль в типичном варианте выполнен с возможностью вычислять коэффициенты LP-фильграции с помощью рекурсии Левинсона-Дурбина или алгоритма Леро-Гогена. В другой реализации анализирующий модуль может быть выполнен с возможностью вычислять набор коэффициентов косинусного преобразования Фурье для каждого кадра вместо набора коэффициентов LP-фильтрации.
Выходная скорость речевого кодера может быть значительно снижена с относительно небольшим влиянием на качество воспроизведения посредством квантования параметров фильтрации. Коэффициенты фильтрации с линейным предсказанием трудно эффективно квантовать, и обычно они преобразуются посредством речевого кодера к другому представлению, к примеру парам спектральных линий (LSP) или частотам спектральных линий (LSF) для квантования и/или кодирования по энтропии. Другие представления "один-к-одному" коэффициентов LP-фильтрации включают в себя коэффициенты паркора; значения отношения логарифмической площади; спектральные пары иммитансов (ISP); и спектральные частоты иммитансов (ISF), которые используются в кодеке AMR-WB (адаптивное многоскоростное широкополосное кодирование) для GSM (глобальная система мобильной связи). Типично преобразование между набором коэффициентов LP-фильтрации и соответствующим набором LSF является обратимым, но варианты осуществления также включают в себя реализации речевого кодера, в которых преобразование является необратимым без ошибок.
Речевой кодеров типичном варианте выполнен с возможностью квантовать набор узкополосных LSF (или другого представления коэффициентов) и выводить результат такого квантования как параметры фильтрации. Квантование в типичном варианте выполняется с использованием векторного квантователя, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования. Такой квантователь может также быть выполненным с возможностью выполнять классифицированное векторное квантование. Например, этот квантователь может быть выполнен с возможностью выбирать одну из набора таблиц кодирования на основе информации, которая уже закодирована в том же кадре (например, в низкополосном канале и/или в высокополосном канале). Данная методика в типичном варианте предоставляет большую эффективность кодирования за счет дополнительного места для хранения таблицы кодирования.
Речевой кодер также может быть выполнен с возможностью формировать остаточный сигнал посредством передачи речевого сигнала через отбеливающий фильтр (также называемый аналитическим фильтром или. фильтром ошибок предсказания), который сконфигурирован согласно набору коэффициентов фильтрации. Отбеливающий фильтр типично реализуется как FIR-фильтр, хотя также могут быть использованы IIR-реализации. Данный остаточный сигнал типично содержит перцепционно важную информацию речевого кадра, такую как долгосрочная структура, связанная с основным тоном, которая не представлена в параметрах фильтрации. Кроме того, этот остаточный сигнал типично квантуется для вывода. Например, низкополосный речевой кодер А122 может быть выполнен с возможностью вычислять квантованное представление остаточного сигнала для вывода в качестве кодированного низкополосното сигнала 350 возбуждения. Такое квантование типично выполняется с помощью векторного квантователя, который кодирует входной вектор в качестве индекса в соответствующую запись вектора в таблице или таблице кодирования и который может быть выполнен с возможностью выполнять классифицированное векторное квантование, как описано выше.
Альтернативно, данный квантователь может быть выполнен с возможностью отправлять один или более параметров, из которых вектор может быть сформирован динамически в декодере, а не извлечен из устройства хранения, как в способе разреженной таблицы кодирования. Этот способ используется в схемах кодирования, таких как алгебраическое CELP (кодирование методом линейного предсказания с кодовым возбуждением), и кодеках, таких как EVRC (усовершенствованный кодек с переменной скоростью) для 3GPP2 (Партнерский проект третьего поколения 2).
Некоторые реализации низкополосного речевого кодера А120 сконфигурированы так, чтобы вычислять кодированный низкополосный сигнал S50 возбуждения посредством идентификации одного из набора векторов таблицы кодирования, который в наибольшей степени совпадает с остаточным сигналом. Тем не менее, следует отметить, что низкополосный речевой кодер А120 также может быть реализован так, чтобы вычислять квантованное представление остаточного сигнала без фактического формирования остаточного сигнала. Например, низкополосный речевой кодер А120 может быть выполнен с возможностью использовать ряд векторов таблицы кодирования, чтобы формировать соответствующие синтезированные сигналы (к примеру, согласно текущему набору параметров фильтрации) и выбирать вектор таблицы кодирования, ассоциативно связанный со сформированным сигналом, который в наибольшей степени совпадает с исходным низкополосным речевым сигналом S20 в перцепционно взвешенной области.
Может быть желательно реализовать ("низкополосный речевой кодер А120 или А122 как речевой кодер анализа посредством синтеза. Кодирование методом линейного предсказания с кодовым возбуждением (CELP) является одним популярным семейством кодирования на основе анализа посредством синтеза, и реализации таких кодеров могут выполнять кодирование формы сигнала остатка, в том числе такие операции, как выбор записей из фиксированных и адаптивных таблиц кодирования, операции минимизации ошибок и/или операции перцепционного взвешивания. Другие реализации кодирования на основе анализа посредством синтеза включают в себя кодирование методом линейного предсказания со смешанным возбуждением (MELP), алгебраического CELP (ACELP), релаксационного CELP (RCELP), регулярного возбуждения импульсами (RPE), многоимпульсного CELP (MPE) и линейного предсказания с возбуждением векторной суммой (VSELP). Связанные способы кодирования включают в себя кодирование с многополосным возбуждением (МВЕ) и интерполяцией прототипа формы сигнала (PWI). Примеры стандартизированных речевых кодексов на основе анализа посредством синтеза включают в себя полноскоростной GSM-кодек ETSI-GSM (Европейский институт телекоммуникационных стандартов) (GSM 06.10), который использует линейное предсказание с остаточным возбуждением (RELP); улучшенный полноскоростной GSM-кодек (ETSI-GSM 06.60); кодер по стандарту ITU (Международный союз телекоммуникаций) 11,8 кбит/с G.729 Приложение Е; кодеки IS (Interim Standard)-641 для IS-136 (схема множественного доступа с временным разделением каналов); адаптивные многоскоростные GSM-кодеки (GSM-AMR); и кодек 4GV™ (вокодер четвертого поколения) (QUALCOMM Incorporated, San Diego, CA). Существующие реализации RCELP-кодеров включают в себя усовершенствованный кодек с переменной скоростью (EVRC), описанный в Ассоциации промышленности средств связи (TIA) IS-127, и вокодер с выбираемым режимом (SMV) для Партнерского проекта третьего поколения 2 (3GPP2). Различные низкополосные, высокополосные и широкополосные кодеры, описанные в данном документе, могут быть реализованы согласно одной из этих технологий, либо любой другой технологии речевого кодирования (известной или находящейся в разработке), которая представляет речевой сигнал как (А) набор параметров, которые описывают фильтр, и (В) сигнал возбуждения, который обеспечивает, по меньшей мере, часть возбуждения, используемого для того, чтобы приводить в действие описанный фильтр, чтобы воспроизвести речевой сигнал.
Фиг.12 иллюстрирует блок-схему реализации С202 подавителя С200 высокополосных всплесков, который включает в себя две реализации С10-1, С10-детектора С10 всплесков. Детектор С10-1 всплесков выполнен с возможностью формировать сигнал SB10 индикатора низкополосного всплеска, который указывает наличие всплеска, в низкополосном речевом сигнале S20. Детектор С10-2 всплесков выполнен с возможностью формировать сигнал SB20 индикатора высокополосного всплеска, который указывает наличие всплеска в высокополосном речевом сигнале S30. Детекторы С10-1 и С10-2 всплесков могут быть идентичными или могут быть экземплярами различных реализации детектора С10 помех. Подавитель С202 высокополосных всплесков также включает в себя генератор С20 управляющего сигнала ослабления, сконфигурированный так, чтобы формировать управляющий сигнал SB70 ослабления согласно отношению между сигналом SB10 индикатора низкочастотного всплеска и сигналом SB20 индикатора высокочастотного всплеска, и элемент С150 регулирования усиления (к примеру, умножитель или усилитель), сконфигурированный так, чтобы применять управляющий сигнал SB70 ослабления к высокополосному речевому сигналу S30, чтобы формировать обработанный высокополосный речевой сигнал S30a.
В конкретных примерах, описанных в данном документе, можно допустить, что подавитель С202 высокополосных всплесков обрабатывает высокополосный речевой сигнал S30 в 20-миллисекундных кадрах, и этот низкополосный речевой сигнал S20 и высокополосный речевой сигнал S30 дискретизируются при 8 кГц. Тем не менее, эти конкретные значения являются просто примерами, а не ограничениями, и другие значения могут также быть использованы согласно конкретным вариантам проектирования, и/или как упоминается в данном документе.
Детектор С10 всплесков выполнен с возможностью вычислять прямую и обратную сглаженную огибающую речевого сигнала и указывать наличие всплеска согласно временному отношению между краем прямой сглаженной огибающей и краем обратной сглаженной огибающей. Подавитель С202 всплесков также включает в себя два экземпляра детектора С10 всплесков, каждый из которых выполнен с возможностью принимать соответствующий один из речевых сигналов S20, S30 и выводить соответствующий сигнал SB10, SB20 индикатора всплеска.
Фиг.13 иллюстрирует блок-схему реализации С12 детектора С10 всплесков, которая выполнена с возможностью принимать один из речевых сигналов S20, S30 и выводить соответствующий сигнал SB10, SB20 индикатора всплеска. Детектор С12 всплесков выполнен с возможностью вычислять каждую из прямой и обратной сглаженной огибающей за две стадии. На первой стадии вычислитель С30 выполнен с возможностью преобразовывать речевой сигнал в сигнал постоянной полярности. В одном примере вычислитель С30 выполнен с возможностью вычислять сигнал постоянной полярности как квадрат каждой выборки текущего кадра соответствующего речевого сигнала. Этот сигнал может сглаживаться, чтобы получать огибающую энергии. В другом примере вычислитель С30 выполнен с возможностью вычислять абсолютное значение каждой поступающей выборки. Этот сигнал может сглаживаться, чтобы получать огибающую амплитуды. Дополнительные реализации вычислителя С30 могут быть сконфигурированы так, чтобы вычислять сигнал постоянной полярности согласно дополнительной функции, такой как отсечение.
На второй стадии прямой сглаживатель С40-1 конфигурируется так, чтобы сглаживать сигнал постоянной полярности в прямом направлении времени, чтобы формировать прямую сглаженную огибающую, а обратный сглаживатель С40-2 конфигурируется так, чтобы сглаживать сигнал постоянной полярности в обратном направлении времени, чтобы формировать обратную сглаженную огибающую. Прямая сглаженная огибающая указывает разность в уровне соответствующего временного сигнала во времени в прямом направлении, а обратная сглаженная огибающая указывает разность в уровне соответствующего временного сигнала во времени в обратном направлении.
В одном примере прямой сглаживатель С40-1 реализован как фильтр первого порядка с бесконечной импульсной характеристикой (IIR), сконфигурированный так, чтобы сглаживать сигнал постоянной полярности согласно следующему выражению:
а обратный сглаживатель С40-2 реализован как IIR-фильтр первого порядка, сконфигурированный так, чтобы сглаживать сигнал постоянной полярности согласно следующему выражению:
f
b
где n - это индекс времени, Р(n) - это сигнал постоянной полярности, S(n) - это прямая сглаженная огибающая, S (n) - это обратная сглаженная огибающая, а α - это коэффициент затухания, имеющий значение между 0 (без сглаживания) и 1. Можно отметить, что частично вследствие таких операций, как вычисление обратной сглаженной огибающей, задержка, по меньшей мере, в один кадр может возникать в обработанном высокополосном речевом сигнале S30a. Тем не менее, эта задержка является относительно неважной перцепционно и не является заметной даже в операциях обработки речи в реальном времени.
Может быть желательным выбрать значение для α таким образом, чтобы время затухания сглаживателя было аналогичным ожидаемой длительности высокополосного всплеска (к примеру, приблизительно 5 миллисекунд). Типично прямой сглаживатель С40-1 и обратный сглаживатель С40-2 сконфигурированы так, чтобы выполнять комплементарные версии одной операции сглаживания и использовать одинаковое значение α, но в некоторых реализациях два сглаживателя могут быть сконфигурированы так, чтобы выполнять различные операции и/или использовать различные значения. Другие рекурсивные или нерекурсивные функции сглаживания, включающие в себя фильтры с конечной импульсной характеристикой (FIR) или IIR-фильтры более высокого порядка, также могут быть использованы.
В других реализациях детектора С12 всплесков один или оба из прямого сглаживателя С40-1 и обратного сглаживателя С40-2 сконфигурированы так, чтобы выполнять операцию адаптивного сглаживания. Например, прямой сглаживатель С40-1 может быть выполнен с возможностью выполнять операцию адаптивного сглаживания согласно, например, следующему выражению:
,
в котором сглаживание уменьшается, либо, как в данном случае, деактивируется по строгим передним краям сигнала постоянной полярности. В этой или другой реализации детектора С12 всплесков обратный сглаживатель С40-2 может быть выполнен с возможностью выполнять операцию адаптивного сглаживания согласно, например, следующему выражению:
в котором сглаживание уменьшается либо, как в данном случае, деактивируется по строгим задним краям сигнала постоянной полярности. Такое адаптивное сглаживание позволяет помочь задавать начала событий всплесков в прямой сглаженной огибающей и окончания событий всплесков в обратной сглаженной огибающей.
Детектор С12 всплесков включает в себя экземпляр индикатора С50 области (индикатора С50-1 начальной области), который выполнен с возможностью указывать начало высокоуровневого события (к примеру, всплеска) в прямой сглаженной огибающей. Детектор С12 всплесков также включает в себя экземпляр индикатора С50 области (индикатора С50-2 конечной области), который выполнен с возможностью указывать завершение высокоуровневого события (к примеру, всплеска) в обратной сглаженной огибающей.
Фиг.14а иллюстрирует блок-схему реализации С52-1 индикатора С50-1 начальной области, который включает в себя элемент С70-1 задержки и сумматор. Задержка С70-1 сконфигурирована так, чтобы применять задержку, имеющую положительную величину, с тем, чтобы прямая сглаженная огибающая уменьшалась на собственную версию с задержкой. В другом примере текущая выборка или задержанная выборка может быть взвешена согласно требуемому коэффициенту взвешивания.
Фиг.14b иллюстрирует блок-схему реализации С52-2 индикатора С50-2 начальной области, который включает в себя элемент С70-2 задержки и сумматор. Задержка С70-2 сконфигурирована так, чтобы применять задержку, имеющую отрицательную величину, с тем, чтобы обратная сглаженная огибающая уменьшалась на собственную версию с продвижением вперед. В другом примере текущая выборка или передвинутая вперед выборка может быть взвешена согласно требуемому коэффициенту взвешивания.
Различные значения задержки могут быть использованы в различных реализациях индикатора С52 области, и значения задержки, имеющие различные модули, могут быть использованы в индикаторе С52-1 начальной области и индикаторе С52-2 конечной области. Модуль задержки может быть выбран согласно требуемой ширине обнаруженной области. Например, небольшие значения задержки могут быть использованы для того, чтобы выполнять обнаружение области узкого края. Чтобы получить строгое обнаружение края, может быть желательным использовать задержку, имеющую модуль, аналогичный ожидаемой ширине края (например, приблизительно 3 или 5 выборок).
Альтернативно, индикатор С50 области может быть выполнен с возможностью указывать более широкую область, которая выходит за пределы соответствующего края. Например, может быть желательным для индикатора С50-1 начальной области указывать начальную область события, которое идет в прямом направлении в течение некоторого времени после переднего края. Аналогично, может быть желательным для индикатора С50-2 конечной области указывать конечную область события, которое идет в обратном направлении в течение некоторого времени до заднего края. В этом случае может быть желательным использовать значение задержки, имеющее больший модуль, например модуль, аналогичный модулю ожидаемой длины всплеска. В одном таком примере используется задержка порядка 4 миллисекунд.
Обработка посредством индикатора С50 области может выходить за границы текущего кадра речевого сигнала согласно модулю и направлению этой задержки. Например, обработка посредством индикатора С50-1 начальной области может распространяться на предыдущий кадр, а обработка посредством индикатора С50-2 конечной области может распространяться на следующий кадр.
В сравнении с другими высокоуровневыми событиями, которые могут возникать в речевом сигнале, всплеск различается посредством начальной области, указанной посредством сигнала SB50 индикатора начальной области, которая совпадает по времени с конечной областью, указанной в сигнале SB60 индикатора конечной области. Например, всплеск может быть указан, когда промежуток времени между начальной и конечной областью не превышает (альтернативно, меньше) заранее определенный интервал совпадения, например, ожидаемую продолжительность всплеска. Детектор С60 совпадения выполнен с возможностью указывать обнаружение всплеска согласно совпадению по времени начальной и конечной областей в сигналах SB50 и SB60 индикатора области. Для реализации, в которой сигналы SB50, SB60 индикатора начальной и конечной области указывают области, которые идут от соответствующих передних или задних краев, например, детектор С60 совпадения может быть выполнен с возможностью указывать перекрывание по времени расширенных областей.
Фиг.15 иллюстрирует блок-схему реализации С62 детектора С60 совпадения, который включает в себя первый экземпляр С80-1 отсекателя С80, сконфигурированный так, чтобы отсекать сигнал SB50 индикатора начальной области, второй экземпляр С80-2 отсекателя С80, сконфигурированный так, чтобы отсекать сигнал SB60 индикатора конечной области, и вычислитель С90 среднего, сконфигурированный так, чтобы выводить соответствующий сигнал индикатора всплеска согласно среднему отсеченных сигналов. Отсекатель С80 выполнен с возможностью отсекать значения входного сигнала согласно, например, следующему выражению:
Альтернативно, отсекатель С80 может быть выполнен с возможностью задавать порог входного сигнала согласно, например, следующему выражению:
L
где порог T имеет значение больше нуля. Типично экземпляры С80-1 и С80-2 отсекателя С80 используют одинаковое пороговое значение, но также можно для двух экземпляров С80-1 и С80-2 использовать различные пороговые значения.
Вычислитель С90 среднего выполнен с возможностью выводить соответствующий сигнал индикатора SB10, SB20 всплеска согласно среднему отсеченных сигналов, которое указывает временную позицию и интенсивность всплесков во входном сигнале и имеет значение, равное или большее нуля. Геометрическое среднее может предоставлять лучшие результаты, чем арифметическое среднее, особенно для различения всплесков с заданными начальными и конечными областями от других событий, которые имеют только строгую начальную или конечную область. Например, арифметическое среднее события только со строгим краем может по-прежнему быть высоким, тогда как геометрическое среднее события с недостающим одним краем - низкое или нулевое. Тем не менее, геометрическое среднее типично более вычислительно интенсивное, чем арифметическое среднее. В одном примере экземпляр вычислителя С90 среднего, выполненный с возможностью обрабатывать низкополосные результаты, использует арифметическое среднее (1/2(а+b)), а экземпляр вычислителя С90 среднего, выполненный с возможностью обрабатывать высокополосные результаты, использует более консервативное геометрическое среднее .
Другие реализации вычислителя С90 среднего могут быть сконфигурированы так, чтобы использовать другой вид среднего, например, гармоническое среднее. В дополнительной реализации детектора С62 совпадений один или более сигналов SB50, SB60 индикатора начальной и конечной области взвешиваются относительно другого до или после отсечения.
Другие реализации детектора С60 совпадений сконфигурированы так, чтобы обнаруживать всплески посредством измерения промежутка времени между начальным и конечным краями. Например, одна такая реализация сконфигурирована так, чтобы идентифицировать всплеск как область между передним краем в сигнале SB50 индикатора начальной области и задним краем в сигнале SB60 индикатора конечной области, которые отстоят друг от друга не более чем на заранее определенную ширину. Заранее определенная ширина базируется на ожидаемой продолжительности высокополосного всплеска, и в одном примере используется ширина примерно 4 миллисекунды.
Дополнительная реализация детектора С60 совпадений сконфигурирована так, чтобы расширять каждый передний край в сигнале SB50 индикатора начальной области в прямом направлении на требуемый период времени (к примеру, на основе ожидаемой продолжительности высокополосного выбора) и чтобы расширять каждый задний край в сигнале SB60 индикатора конечной области в обратном направлении на требуемый период времени (к примеру, на основе ожидаемой продолжительности высокополосного выбора). Данная реализация может быть сконфигурирована так, чтобы формировать соответствующий сигнал SB10, SB20 индикатора всплеска как логическое AND этих двух расширенных сигналов, либо альтернативно формировать соответствующий сигнал SB10, SB20 индикатора всплеска, чтобы указывать относительную интенсивность всплеска в зоне, где области перекрываются (к примеру, посредством вычисления среднего расширенных сигналов). Эта реализация может быть сконфигурирована так, чтобы расширять только края, которые превышают пороговое значение. В одном примере края расширены на период времени примерно 4 миллисекунды.
Генератор С20 управляющих сигналов ослабления выполнен с возможностью формировать управляющий сигнал SB70 ослабления согласно отношению между сигналом SB10 индикатора низкополосного всплеска и сигналом SB20 индикатора высокополосного всплеска. Например, генератор С20 управляющих сигналов ослабления может быть выполнен с возможностью формировать управляющий сигнал SB70 ослабления согласно арифметическому отношению между сигналами SB10
и SB20 индикаторов всплесков, например, разности.
Фиг.16 иллюстрирует блок-схему реализации С22 генератора С20 управляющих сигналов ослабления, который выполнен с возможностью комбинировать сигнал SB10 индикатора низкополосного всплеска и сигнал SB20 индикатора высокополосного всплеска посредством вычитания первого из второго. Результирующий сигнал разности указывает, если всплески имеются в полосе высоких частот, которые не происходят (или слабее) в полосе низких частот. В дополнительной реализации один или оба из сигналов SB10, SB20 индикатора низкополосного и высокополосного всплеска взвешиваются относительно друг друга.
Вычислитель С100 управляющих сигналов ослабления выводит управляющий сигнал SB70 ослабления согласно значению сигнала разности. Например, вычислитель С100 управляющих сигналов ослабления может быть выполнен с возможностью указывать ослабление, которое варьируется согласно степени, в которой сигнал разности превышает пороговое значение.
Может быть желательным выполнить генератор С20 управляющих сигналов ослабления с возможностью выполнять операции для логарифмически масштабированных значений. Например, может быть желательным ослабить высокополосный речевой сигнал S30 согласно отношению между уровнями сигналов индикаторов всплесков (например, согласно значению в децибелах, или дБ), и это отношение может быть легко вычислено как разность логарифмически масштабированных значений. Логарифмическое масштабирование искривляет сигнал по оси амплитуды, но не изменяет его форму каким-либо другим образом. Фиг.17 иллюстрирует реализацию С14 детектора С12 всплесков, который включает в себя экземпляр С130-1, С130-2 вычислителя С130 логарифмов, сконфигурированного так, чтобы логарифмически масштабировать (к примеру, по основанию 10) сглаженную огибающую прямого и обратного путей обработки.
В одном примере вычислитель С100 управляющих сигналов ослабления выполнен с возможностью вычислять значения управляющего сигнала SB70 ослабления в дБ согласно следующей формуле:
dB
dB
dB
dB
где D означает разность между сигналом. SB20 индикатора высокополосного всплеска и сигналом SB10 индикатора низкополосного всплеска, T означает пороговое значение, а A - это соответствующее значение управляющего сигнала SB70 ослабления. В одном конкретном примере порог T имеет значение в 8 дБ.
В другой реализации вычислитель С100 управляющих сигналов ослабления выполнен с возможностью указывать линейное ослабление согласно степени, в которой сигнал разности превышает пороговое значение (к примеру, 3 дБ или 4 дБ). В этом примере управляющий сигнал SB70 ослабления указывает отсутствие ослабления до тех пор, пока сигнал разности не превышает пороговое значение. Когда сигнал разности превышает пороговое значение, управляющий сигнал SB70 ослабления указывает значение ослабления, которое линейно пропорционально величине, на которое в данный момент превышено пороговое значение.
Подавитель С202 высокополосных всплесков включает в себя элемент С150 регулирования усиления, такой как умножитель или усилитель, который выполнен с возможностью ослаблять высокополосный речевой сигнал S30 согласно текущему значению управляющего сигнала SB70 ослабления, чтобы формировать высокополосный речевой сигнал S30a. Типично, управляющий сигнал SB70 ослабления указывает значение отсутствия ослабления (к примеру, усиление в 1,0 или 0 дБ), до тех пор пока не обнаруживается высокополосный всплеск в текущей позиции высокополосного речевого сигнала S30, и при этом типичным значением ослабления является снижение усиления на 0,3 или примерно 10 дБ.
Альтернативная реализация генератора С22 управляющих сигналов ослабления может быть сконфигурирована так, чтобы комбинировать сигнал SB10 индикатора низкополосного всплеска и сигнал SB20 индикатора высокополосного всплеска согласно логическому отношению. В одном таком примере сигналы индикаторов всплесков комбинируются посредством вычисления логического AND сигнала SB20 индикатора высокополосного всплеска и логической инверсии сигнала SB10 индикатора низкополосного всплеска. В этом случае каждый из сигналов индикаторов всплесков может сначала быть ограничен порогом, чтобы получить сигнал двоичной логики, и вычислитель С100 управляющих сигналов ослабления может быть выполнен с возможностью указывать соответствующее одно из двух состояний ослабления (к примеру, одно состояние указывает отсутствие ослабления) согласно состоянию комбинированного сигнала.
До выполнения вычисления огибающей может, быть желательным сформировать спектр одного или обоих речевых сигналов S20 и S30, чтобы сгладить спектр и/или усилить либо ослабить одну или более конкретных частотных областей. Низкополосный речевой сигнал S20, например, зачастую имеет больше энергии на низких частотах и может быть желательным снизить эту энергию. Также может быть желательным снизить высокочастотные компоненты низкополосного речевого сигнала S20 с тем, чтобы обнаружение всплесков базировалось в первую очередь на средних частотах. Формирование спектра является необязательной операцией, которая может улучшить производительность подавителя С200 всплесков.
Фиг.18 иллюстрирует блок-схему реализации С16 детектора С14 всплесков, который включает в себя формирующий фильтр С110. В одном примере фильтр С110 выполнен с возможностью фильтровать низкополосный речевой сигнал S20 согласно полосовой передаточной функции, к примеру, следующим образом:
которая ослабляет очень низкие и высокие частоты.
Может быть желательным ослаблять низкие частоты высокополосного речевого сигнала S30 и/или усиливать более высокие частоты. В одном примере фильтр С110 выполнен с возможностью фильтровать высокополосный речевой сигнал S20 согласно высокополосной передаточной функции, к примеру, следующим образом:
которая ослабляет частоты в районе 4 кГц.
В практическом смысле может быть лишним выполнять, по меньшей мере, некоторые из операций обнаружения всплесков на полной частоте дискретизации соответствующего речевого сигнала S20, S30. Фиг.19 иллюстрирует блок-схему реализации С18 детектора С16 всплесков, который включает в себя экземпляр С120-1 понижающего дискретизатора С120, сконфигурированный так, чтобы выполнять понижающую дискретизацию сглаженной огибающей прямого пути обработки и экземпляр С120-2 понижающего дискретизатора С120, сконфигурированный так, чтобы выполнять понижающую дискретизацию сглаженной огибающей обратного пути обработки. В одном примере каждый экземпляр понижающего дискретизатора С120 выполнен с возможностью выполнять понижающую дискретизацию огибающей на коэффициент 8. В конкретном примере 20-миллисекундного кадра, дискретизированного при 8 кГц (160 выборок), этот понижающий дискретизатор понижает огибающую до частоты дискретизации 1 кГц, или 20 выборок на кадр. Понижающая дискретизация может существенно снижать вычислительную сложность операции подавления высокополосных всплесков без значительного влияния на производительность.
Может быть желательным установить для сигнала ослабления, применяемого посредством элемента С150 регулирования усиления, такую же частоту дискретизации, что и высокополосный речевой сигнал S30. Фиг.20 иллюстрирует блок-схему реализации С24 генератора С22 управляющего сигнала ослабления, которая может быть использована в связи с версией для понижающей дискретизации детектора С10 всплесков. Генератор С24 управляющих сигналов ослабления включает в себя повышающий дискретизатор С140, сконфигурированный так, чтобы выполнять повышающую дискретизацию управляющего сигнала SB70 ослабления до сигнала SB70a, имеющего частоту дискретизации, равную частоте дискретизации высокополосного речевого сигнала S30.
В одном примере повышающий дискретизатор С140 выполнен с возможностью выполнять повышающую дискретизацию посредством интерполяции нулевого порядка управляющего сигнала SB70 ослабления. В другом примере повышающий дискретизатор С140 выполнен с возможностью выполнять повышающую дискретизацию посредством иной интерполяции значений управляющего сигнала SB70 ослабления (к примеру, посредством прохождения управляющего сигнала SB70 ослабления через FIR-фильтр), чтобы получить менее резкие переходы. В дополнительном примере повышающий дискретизатор С140 выполнен с возможностью выполнять повышающую дискретизацию с помощью кадрированных синусоидальных функций.
В некоторых случаях, к примеру, в устройстве с питанием от аккумулятора (например, сотовый телефон) подавитель С200 высокополосных всплесков может быть выполнен с возможностью выборочно отключаться. Например, может быть желательным отключить такую операцию, как подавление высокополосных всплесков в энергосберегающем режиме устройства.
Как упоминалось выше, варианты осуществления, описанные в данном документе, включают в себя реализации, которые могут быть использованы для того, чтобы выполнять встроенное кодирование, поддерживая совместимость с узкополосными системами и устраняя потребность в перекодировке. Поддержка высокополосного кодирования также может служить для того, чтобы проводить различия на основе затрат между микросхемами, наборами микросхем, устройствами и/или сетями, имеющими широкополосную поддержку с обратной совместимостью, а также имеющими только узкополосную поддержку. Поддержка высокополосного кодирования, описанная в данном документе, также может быть использована в связи с методикой поддержки низкополосного кодирования, и система, способ либо устройство согласно этому варианту осуществления могут поддерживать кодирование частотных компонентов, например, от примерно 50 или 100 Гц до примерно 7 или 8 кГц.
Как упоминалось выше, добавление высокополосной поддержки в речевой кодер позволяет повысить разборчивость, особенно в отношении различения фрикативных звуков. Хотя это различение обычно может быть извлечено слушающей стороной из конкретного содержимого, поддержка полосы высоких частот может выступать в качестве разрешающего признака в распознавании речи и других приложениях машинной интерпретации, например систем автоматической речевой навигации по меню и/или автоматической обработки вызовов. Подавление высокополосных всплесков может повысить точность в машиноинтерпретируемом приложении, и это предусматривает то, что реализация подавителя С200 высокополосных всплесков может быть использована в одном или более таких приложений с или без речевого кодирования.
Устройство согласно варианту осуществления может быть встроено в портативное устройство мобильной связи, например сотовый телефон или личное цифровое устройство (PDA). Альтернативно, это устройство может быть включено в другие устройства связи, такие как телефонная трубка VoIP, персональная вычислительная машина, сконфигурированная так, чтобы поддерживать VoIP-связь, либо сетевое устройство, сконфигурированное так, чтобы маршрутизировать телефонную или VoIP-связь. Например, устройство согласно варианту осуществления может быть реализовано в микросхеме или наборе микросхем для устройства связи. В зависимости от конкретного варианта применения, это устройство также может включать в себя такие признаки, как аналого-цифровое и/или цифроаналоговое преобразование речевого сигнала, схема для осуществления усиления и/или других операций обработки речевого сигнала и/или радиочастотная схема для передачи и/или приема кодированного речевого сигнала.
Явно предполагается и раскрывается, что варианты осуществления могут включать в себя и/или быть использованы с одним или более других признаков, раскрытых в упомянутых в настоящем описании патентных заявках. Эти признаки могут включать в себя формирование высокополосного сигнала возбуждения из низкополосного сигнала возбуждения, которое может включать в себя другие признаки, например устраняющую разреженность фильтрацию, гармоническое продолжение с помощью нелинейной функции, смешивание модулированного сигнала шума со спектрально расширенным сигналом и/или адаптивное отбеливание. Эти признаки включают в себя преобразование временного масштаба высокополосного речевого сигнала согласно регуляризации, выполняемой в низкополосном кодере. Эти признаки включают в себя кодирование огибающей усиления согласно отношению между исходным речевым сигналом и синтезированным речевым сигналом. Эти признаки включают в себя использование перекрывающихся гребенок фильтров, чтобы получить низкополосный и высокополосный речевой сигнал из широкополосного речевого сигнала. Эти признаки включают в себя сдвиг высокополосного сигнала 330 и/или высокополосного сигнала возбуждения согласно регуляризации или другому сдвигу низкополосного сигнала S50. Такие признаки включают в себя фиксированное или адаптивное сглаживание представлений коэффициентов, например высокополосных LSF. Такие признаки включают в себя фиксированное или адаптивное формирование шума, ассоциативно связанного с квантованием представлений коэффициентов, таких как LSF. Такие признаки также включают в себя фиксированное или адаптивное сглаживание огибающей усиления и адаптивное ослабление огибающей усиления.
Вышеприведенное представление описанных вариантов осуществления предоставлено для того, чтобы дать возможность любому специалисту в данной области техники.. создавать или использовать настоящее изобретение. Различные модификации в этих вариантах осуществления допускаются, а представленные в данном документе общие принципы могут быть применены также к другим вариантам осуществления. Например, вариант осуществления может быть реализован частично или как проводная схема, как схемная конфигурация, изготовленная в специализированной интегральной схеме, либо как микропрограммное обеспечение, загруженное в энергонезависимое запоминающее устройство, либо программное приложение, загруженное с или в носитель хранения данных в качестве машиночитаемого кода, причем таким кодом являются инструкции, приводимые в исполнение посредством матрицы логических элементов, такой как микропроцессор или другой блок обработки цифровых сигналов. Носителем хранения данных может быть матрица элементов хранения, например полупроводниковое запоминающее устройство (которое может включать в себя, без ограничений, динамическое или статическое ОЗУ (оперативное. запоминающее устройство), ПЗУ (постоянное запоминающее устройство) и/или флэш-ОЗУ) либо сегнетоэлектрическое, магниторезистивное, на аморфных полупроводниках, полимерное или фазосдвигающее запоминающее устройство; либо дисковый носитель, например магнитный или оптический диск. Термин "программное обеспечение" должен пониматься так, чтобы включать в себя исходный код, код языка ассемблера, машинный код, двоичный код, микропрограммное обеспечение, макрокод, микрокод, любой один или более наборов или последовательностей инструкций, приводимых в исполнение посредством матрицы логических элементов, и любое сочетание вышеозначенных примеров.
Различные элементы реализации высокополосного речевого кодера А200, широкополосных речевых кодеров А100, А102 и А104 и.подавителя С200 высокополосных всплесков, а также компоновок, включающих в себя одно или более устройств, могут быть реализованы как электронные и/или оптические устройства, постоянно размещающиеся, например, на одной микросхеме или на двух или более микросхемах в наборе микросхем, хотя другие компоновки без ограничения также подразумеваются. Один или более элементов такого устройства могут быть реализованы полностью или частично как один или более наборов инструкций, выполненных с возможностью приводиться в исполнение на одной или более фиксированных или программируемых матриц логических элементов (к примеру, транзисторов, логических схем), таких как микропроцессоры, встроенные процессоры, IP-сердечники, процессоры цифровых сигналов, FPGA (программируемые пользователем матричные БИС), ASSP (специализированные стандартные продукты) и A31C (специализированные интегрированные схемы). Также возможно для одного или более таких элементов иметь общую структуру (к примеру, процессор, используемый для того, чтобы приводить в исполнение части кода, соответствующие различным элементам в различные моменты времени, набор инструкций, приводимый в исполнение для того, чтобы выполнять задачи, соответствующие различным элементам в различные моменты времени, или компоновку электронных и/или оптических устройств, выполняющих операции для различных элементов в различные моменты времени). Более того, возможно для одного или более таких элементов выполнять задачи или приводить в исполнение другие наборы инструкций, которые не связаны непосредственно с работой устройства, например задачу, связанную с другой операцией устройства или системы, в которую встроено устройство.
Варианты осуществления также включают в себя дополнительные способы речевой обработки, речевого кодирования и подавления высокополосных всплесков как явно раскрытые в данном документе, к примеру, посредством описания структурных вариантов осуществления, сконфигурированных так, чтобы выполнять эти способы. Каждый из этих способов также может быть материально осуществлен (например, на одном или более носителей хранения данных, перечисленных выше) как один или более наборов инструкций, читаемых и/или приводимых в исполнение посредством машины, включающей в себя матрицу логических элементов (к примеру, процессор, микропроцессор, микроконтроллер или другой конечный автомат). Таким образом, настоящее изобретение не предназначено, чтобы быть ограниченным показанными выше вариантами осуществления, а должно удовлетворять самой широкой области применения, согласованной с принципами и новыми признаками, раскрытыми в любой форме в данном документе.