BRPI0715064B1 - sistemas, métodos e equipamentos para encodificação e decodificação em banda larga de quadros inativos - Google Patents

sistemas, métodos e equipamentos para encodificação e decodificação em banda larga de quadros inativos Download PDF

Info

Publication number
BRPI0715064B1
BRPI0715064B1 BRPI0715064A BRPI0715064B1 BR PI0715064 B1 BRPI0715064 B1 BR PI0715064B1 BR PI0715064 A BRPI0715064 A BR PI0715064A BR PI0715064 B1 BRPI0715064 B1 BR PI0715064B1
Authority
BR
Brazil
Prior art keywords
frame
description
encoded
frequency band
frames
Prior art date
Application number
Other languages
English (en)
Inventor
A Kandhadai Ananthapadmanabhan
Rajendran Vivek
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0715064A2 publication Critical patent/BRPI0715064A2/pt
Publication of BRPI0715064B1 publication Critical patent/BRPI0715064B1/pt

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/038Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

sistemas, métodos e equipamentos para encodificação e decodificação em banda larga de quadros inativos. encodificadores de fala e métodos para encodificação de fala que codificam quadros inativos com diferentes taxas são descritos. equipamentos e métodos para processar um sinal de fala encodificando são descritos, os quais calculam um quadro decodificado com base em uma descrição de um envelope espectral através de uma primeira banda de freqüencia e na descrição de um enveloipe espectral através de uma segunda banda de freqüencia, em que a descrição para a primeira banda de freqüência é baseada nas informações provenientes de um quadro encodificado correspondente e a descrição para a segunda banda de freqüência é baseada nas informações provenientes de pelo menos um quadro encodificado precedente. o cálculo do quadro decodificado pode ser também baseado em uma descrição de informação temporal para a segunda banda de freqüência que é baseada nas informações provenientes de pelo menos um quadro encodificado precedente.

Description

"SISTEMAS, MÉTODOS E EQUIPAMENTOS PARA ENCODIFICAÇÃO E DECODIFICAÇÃO EM BANDA LARGA DE QUADROS INATIVOS”.
Campo da Invenção A presente invenção relaciona ao processamento de sinais de fala.
Descrição da Técnica Anterior A transmissão de voz por técnicas digitais está completamente disseminada, particularmente na telefonia de longa distância, na telefonia comutada por pacotes, tal como voz sobre IP (também designada como VOIP, em que IP denota o protocolo Internet) e na telefonia de rádio digital, tal como telefonia celular. Tal proliferação tem interesse na redução da quantidade de informações usada para transferir uma comunicação de voz através de um canal de transmissão, mantendo porém a qualidade percebida da fala reconstruída.
Os dispositivos que são confiqurados para comprimir a fala ao extrair os parâmetros que estão relacionados a um modelo de geração da fala humana são denominados como "codificadores de fala”. Um codificador de fala geralmente inclui um encodificador e um decodificador. 0 encodificador divide tipicamente o sinal de fala recebido (um sinal digital representando informações de áudio) em segmentos de tempo designados como "quadros”, analisa cada quadro para extrair certos parâmetros relevantes, e quantifica os parâmetros em um quadro encodifiçado. Os quadros encodifiçados são transmitidos através de um canal de transmissão (isto é, uma conexão de rede a cabo ou sem fio) para um receptor que inclui um decodificador. 0 decodificador recebe e processa os quadros encodificados, os dequantiza para produzir os parâmetros, e recria os quadros de fala usando os parâmetros dequantizados.
Em uma conversação típica, cada locutor fica em silêncio por cerca de 60% do tempo. Os encodificadores de fala são usualmente configurados para distinguir quadros do sinal de fala que contêm fala ("quadros ativos") de quadros do sinal de fala que contêm apenas silêncio ou ruído de fundo ("quadros inativos"). Tal encodificador pode ser configurado para usar diferentes taxas e/ou modos de codificação para encodificar quadros ativos e inativos. Como exemplo, os encodificadores de fala são tipicamente configurados para utilizar menos bits para encodificar um quadro inativo do que para encodificar um quadro ativo. Um codificador de fala pode usar uma taxa de bits mais baixa para quadros inativos para dar suporte à transferência do sinal de fala a uma taxa de bits média mais baixa com pouca ou nenhuma perda de qualidade percebida. A Figura 1 ilustra o resultado de encodificação de uma região de um sinal de fala que inclui transições entre quadros ativos e quadros inativos. Cada barra na figura indica um quadro correspondente, com a altura da barra indicando a taxa de bits na qual o quadro é encodifiçado, enquanto o eixo horizontal indica o tempo. Neste caso, os quadros ativos são encodifiçados a uma taxa de bits mais alta rH e os quadros inativos são encodifiçados a uma taxa de bits mais baixa rL.
Os exemplos da taxa de bits rH incluem 171 bits por quadro, 8 bits por quadro, e 40 bits por quadro, e os exemplos da taxa de bits rL incluem 16 bits por quadro. No contexto dos sistemas de telefonia celular (especialmente os sistemas de acordo com o Padrão ínterim (IS) 95, tal como promulgada pela Telecommunications Industry Association, Arlington, VA, ou outro padrão industrial similar), estas quatro taxa de bits são também designadas como "taxa máxima", "meia taxa", "um quarto de taxa" e "um oitavo de taxa", respectivamente. Em um exemplo específico do resultado apresentado na Figura 1, a taxa rH é a taxa máxima e a taxa rL é um oitavo de taxa.
As comunicações de voz através da rede de telefonia comutada pública (PSTN) foram tradicionalmente limitadas na largura de banda para a faixa de freqüência de 300 a 3400 quilohertzes (kHz). As redes mais recentes para comunicações de voz, tais como as redes que utilizam telefonia celular e/ou VOIP, podem não apresentar os mesmos limites de largura de banda, podendo ser desejável que os equipamentos que utilizam tais redes tenham a capacidade de transmitir e receber comunicações de voz que incluem uma faixa de freqüência de banda larga. Por exemplo, pode ser desejável para tais equipamentos que eles dêem suporte a uma faixa de freqüência de áudio que se estende para abaixo de 50 Hz e/ou acima de 7 a 8 kHz. Pode também ser desejável que tais equipamentos suportem outras aplicações, tais como áudio de alta qualidade ou conferência de áudio/vídeo, entrega de serviços de multimídia, tais como música e/ou televisão, etc., que possam ter conteúdo de fala de áudio em faixas fora dos limites tradicionais da PSTN. A extensão da faixa suportada por um codificador de fala para freqüências mais elevadas pode melhorar a inteligibilidade. Por exemplo, as informações em um sinal de fala que diferenciam fricativos tais como "s" e "f" estão predominantemente nas freqüências elevadas. A extensão de banda alta pode também melhorar outras qualidades do sinal de fala decodifiçado, tal como presença. Por exemplo, mesmo uma vogal vocalizada pode apresentar energia espectral muito acima da faixa de freqüências da PSTN.
Apesar de poder ser desejável para um codificador de fala suportar uma faixa de freqüências de banda larga, é também desejável limitar a quantidade de informação usada para transferir uma comunicação de voz através do canal de transmissão. Um codificador de fala pode ser configurado para efetuar a transmissão descontínua (DTX), por exemplo, de forma que descrições sejam transmitidas para menos do que a totalidade dos quadros inativos de um sinal de fala.
Resumo da Invenção Um método para encodificar quadros de um sinal de fala de acordo com uma configuração inclui: produzir um primeiro quadro encodificado que é baseado em um primeiro quadro do sinal de fala e possui um comprimento de p bits, p sendo um inteiro positivo diferente de zero; produzir um segundo quadro encodificado que é baseado em um segundo quadro do sinal de fala e possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero diferente de p; e produzir um terceiro quadro encodificado que é baseado em um terceiro quadro do sinal de fala e possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q. Neste método, o segundo quadro é um quadro inativo que ocorre após o primeiro quadro no sinal de fala, o terceiro quadro é um quadro inativo que ocorre após o segundo quadro no sinal de fala, e todos os quadros do sinal de fala entre o primeiro e terceiro quadros são inativos.
Um método para encodificar quadros de um sinal de fala de acordo com outra configuração compreende: produzir um primeiro quadro encodificado que é baseado em um primeiro quadro do sinal de fala e possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero. Este método também inclui produzir um segundo quadro encodificado que é baseado em um segundo quadro do sinal de fala e possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q. Neste método, o primeiro e segundo quadros são quadros inativos. Neste método, o primeiro quadro encodificado inclui (A) uma descrição de um envelope espectral através de uma primeira banda de freqüência de uma parte do sinal de fala que inclui o primeiro quadro e (B) uma descrição de um envelope espectral através de uma segunda banda de freqüência, diferente da primeira banda de freqüência, de uma parte do sinal de fala que inclui o primeiro quadro, o segundo quadro encodificado inclui (A) uma descrição de um envelope espectral através da primeira banda de freqüência de uma parte do sinal de fala que inclui o segundo quadro e (B) não inclui uma descrição de um envelope espectral através da segunda banda de freqüência. Mecanismos para efetuar tais operações são também expressamente contemplados e descritos aqui. Um produto de programa de computador compreendendo um meio legível por computador, em que o meio compreende um código para fazer com que pelo menos um computador efetue tais operações, é também expressamente contemplado e descrito aqui. Um equipamento incluindo um detector de atividade de fala, um seletor de esquema de codificação, e um encodif icador de fala que são configurados para efetuar tais operações é também expressamente contemplado e descrito aqui.
Um equipamento para encodificar quadros de um sinal de fala de acordo com outra configuração compreende mecanismos para produzir, com base em um primeiro quadro do sinal de fala, um primeiro quadro encodificado que possui um comprimento de p bits, p sendo um inteiro positivo diferente de zero; mecanismos para produzir, com base em um segundo quadro do sinal de fala, um segundo quadro encodificado que possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero diferente de p; e mecanismos para produzir, com base em um terceiro quadro do sinal de fala, um terceiro quadro encodificado que possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q. Neste equipamento, o segundo quadro é um quadro inativo que ocorre após o primeiro quadro no sinal de fala, o terceiro quadro é um quadro inativo que ocorre após o segundo quadro no sinal de fala, e todos os quadros do sinal de fala entre o primeiro e terceiro quadros são inativos.
Um produto de programa de computador de acordo com outra configuração compreende um meio legível por computador. 0 meio compreendendo um código para fazer com que pelo menos um computador opere para produzir um primeiro quadro encodificado que é baseado em um primeiro quadro do sinal de fala e possui um comprimento de p bits, p sendo um inteiro positivo diferente de zero; um código para fazer com que pelo menos um computador opere para produzir um segundo quadro encodificado que é baseado em um segundo quadro do sinal de fala e possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero diferente de p; e um código para fazer com que pelo menos um computador opere para produzir um terceiro quadro encodificado que é baseado em um terceiro quadro do sinal de fala e possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q. Neste produto, o segundo quadro é um quadro inativo que ocorre após o primeiro quadro, o terceiro quadro é um quadro inativo que ocorre após o segundo quadro no sinal de fala, e todos os quadros do sinal de fala entre o primeiro e terceiro quadros são inativos.
Um equipamento para encodificar quadros de um sinal de fala de acordo com outra configuração compreende um detector de atividade de fala configurado para indicar, para cada um dentre uma pluralidade de quadros do sinal de fala, se o quadro é ativo ou inativo; um seletor de esquema de codificação; e um codificador de fala. 0 seletor de esquema de codificação é configurado para selecionar (A) em resposta a uma indicação do detector de atividade de fala para um primeiro quadro do sinal de fala, um primeiro esquema de codificação; (B) para um segundo quadro, que é um dentre uma série consecutiva de quadros inativos que ocorre após o primeiro quadro no sinal de fala, e em resposta a uma indicação do detector de atividade de fala de que o segundo quadro é inativo, um segundo esquema de codificação; e (C) para um terceiro quadro que segue ao segundo quadro no sinal de fala e que é outro dentre a série consecutiva de quadros inativos que ocorrem após o primeiro quadro no sinal de fala, e em resposta a uma indicação do detector de atividade de fala de que o terceiro quadro é inativo, um terceiro esquema de codificação. 0 codificador de fala é configurado para produzir (D) de acordo com o primeiro esquema de codificação, um primeiro quadro encodificado que é baseado no primeiro quadro e possui um comprimento de p bits, p sendo um inteiro positivo diferente de zero; (E) de acordo com o segundo esquema de codificação, um segundo quadro encodificado que é baseado no segundo quadro e possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero e diferente de p; e (F) de acordo com o terceiro esquema de codificação, um terceiro quadro encodificado que é baseado no terceiro quadro e possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q.
Um método para processar um sinal de fala encodificado de acordo com uma configuração compreende, com base em informações provenientes de um primeiro quadro codificado do sinal de fala encodificado, obter uma descrição de um envelope espectral de um primeiro quadro de um sinal de fala através de (A) uma primeira banda de freqüência e (B) uma segunda banda de freqüência diferente da primeira banda de freqüência. Este método também inclui, com base em informações provenientes de um segundo quadro do sinal de fala encodificado, obter uma descrição de um envelope espectral de um segundo quadro do sinal de fala através da primeira banda de freqüência. Este método também inclui, com base em informações provenientes do primeiro quadro encodificado, obter uma descrição de um envelope espectral do segundo quadro através da segunda banda de freqüência.
Um equipamento para processar um sinal de fala encodificado de acordo com outra configuração compreende mecanismos para obter, com base em informações provenientes de um primeiro quadro encodificado do sinal de fala encodificado, uma descrição de um envelope espectral de um primeiro quadro de um sinal de fala através de (A) uma primeira banda de freqüência e (B) uma segunda banda de freqüência diferente da primeira banda de freqüência. Este equipamento também inclui mecanismos para obter, com base em informações provenientes de um segundo quadro encodificado do sinal de fala codificado, uma descrição de um envelope espectral de um segundo quadro do sinal de fala através da primeira banda de freqüência. Este equipamento também inclui mecanismos para obter, com base em informações provenientes do primeiro quadro encodificado, uma descrição de um envelope espectral do segundo quadro através da segunda banda de freqüência.
Um produto de programa de computador de acordo com outra configuração compreende um meio legível por computador. 0 meio compreende um código para fazer com que pelo menos um computador opere para obter, com base em informações provenientes de um primeiro quadro encodificado do sinal de fala encodificado, uma descrição de um envelope espectral de um primeiro quadro de um sinal de fala através de (A) uma primeira banda de freqüência e (B) uma segunda banda de freqüência diferente da primeira banda de freqüência. Este meio também inclui um código para fazer com que pelo menos um computador opere para obter, com base em informações provenientes de um segundo quadro encodificado do sinal de fala encodificado, uma descrição de um envelope espectral de um segundo quadro do sinal de fala através da primeira banda de freqüência. Este meio também inclui um código para fazer com que pelo menos um computador opere para obter, com base em informações provenientes do primeiro quadro encodificado, uma descrição de um envelope espectral do segundo quadro através da segunda banda de freqüência.
Um equipamento para processar um sinal de fala encodificado de acordo com outra configuração compreende uma lógica de controle configurada para gerar um sinal de controle compreendendo uma seqüência de valores que é baseada nos índices de codificação dos quadros encodifiçados do sinal de fala encodificado, cada valor da seqüência correspondendo a um quadro encodificado do sinal de fala encodificado. 0 equipamento também inclui um decodificador de fala configurado para calcular, em resposta a um valor do sinal de controle possuindo um primeiro estado, um quadro decodificado com base em uma descrição de um envelope espectral através da primeira e segunda bandas de freqüência, a descrição sendo baseada em informações do quadro encodificado correspondente. 0 decodificador de fala é também configurado para calcular, em resposta a um valor do sinal de controle possuindo um segundo estado diferente do primeiro estado, um quadro decodificado com base em (1) uma descrição de um envelope espectral através da primeira banda de freqüência, a descrição sendo baseada em informações do quadro encodificado correspondente, e (2) uma descrição de um envelope espectral através da segunda banda de freqüência, a descrição sendo baseada em informações de pelo menos um quadro encodificado que ocorre no sinal de fala encodificado antes do quadro encodificado correspondente.
Breve Descrição das Figuras Figura 1 - ilustra um resultado de encodificação de uma região de um sinal de fala que inclui transições entre quadros ativos e quadros inativos.
Figura 2 - apresenta um exemplo de uma árvore de decisão que um encodif icador de fala ou método de encodificação de fala pode utilizar para selecionar uma taxa de bits.
Figura 3 - ilustra um resultado de encodificação de uma região de um sinal de fala que inclui um hangover de quatro quadros.
Figura 4A - apresenta um gráfico de uma função de janela trapezoidal que pode ser usada para calcular valores de formato de ganho.
Figura 4B - apresenta uma aplicação da função de janela da Figura 4A para cada um dentre cinco sub-quadros de um quadro.
Figura 5A - apresenta um exemplo de um esquema de bandas de freqüência não-sobrepostas que pode ser usado por um encodificador de divisão de bandas para encodificar o conteúdo de fala de banda larga.
Figura 5B - apresenta um exemplo de um esquema de bandas de freqüência sobrepostas que pode ser usado por um encodificador de divisão de banda para encodificar o conteúdo de fala de banda larga.
Figuras 6A, 6B, 7A, 7B, 8A e 8B - ilustram resultados de encodificação de uma transição de quadros ativos para quadros inativos em um sinal de fala usando várias abordagens diferentes.
Figura 9 - apresenta uma operação de encodificação de três quadros sucessivos de um sinal de fala usando um método M100 de acordo com uma configuração geral.
Figuras 10A, 10B, 11A, 11B, 12A e 12B - ilustram os resultados de encodificação de transições de quadros ativos para quadros inativos usando diferentes implementações do método M100.
Figura 13A - apresenta um resultado de encodificação de uma seqüência de quadros de acordo com outra implementação do método M100.
Figura 13B - apresenta um resultado de encodificação de uma série de quadros inativos usando outra implementação do método M100.
Figura 14 - apresenta uma aplicação de uma implementação M110 do método M100.
Figura 15 - apresenta uma aplicação de uma implementação M120 do método M110.
Figura 16 - apresenta uma aplicação de uma implementação M130 do método M120.
Figura 17A - apresenta um resultado de encodificação de uma transição de quadros ativos para quadros inativos usando uma implementação do método M130.
Figura 17B - apresenta o resultado de encodificação de uma transição de quadros ativos para quadros inativos usando outra implementação do método M130.
Figura 18A - é uma tabela que apresenta um conjunto de três esquemas de codificação diferentes que um encodificador de fala pode utilizar para produzir um resultado tal como mostrado na Figura 17B.
Figura 18B - apresenta uma operação de encodificação de dois quadros sucessivos de um sinal de fala usando um método M300 de acordo com uma configuração geral.
Figura 18C - apresenta uma aplicação de uma implementação M310 do método M300.
Figura 19A - apresenta um diagrama em blocos de um equipamento 100 de acordo com uma configuração geral.
Figura 19B - apresenta um diagrama em blocos de uma implementação 132 do encodificador de fala 130.
Figura 19C - apresenta um diagrama em blocos de uma implementação 142 do calculador de descrição de envelope espectral 140.
Figura 20A - apresenta um fluxograma de testes que podem ser efetuados por uma implementação do seletor de esquema de codificação 120.
Figura 20B - apresenta um diagrama de estado de acordo com o qual outra implementação do seletor de esquema de codificação 120 pode ser configurada para operar.
Figuras 21A, 21B e 21C - apresentam diagramas de estado de acordo com os quais outras implementações do seletor de esquema de codificação 120 podem ser configuradas para operar.
Figura 22A - apresenta um diagrama em blocos de uma implementação 134 do encodificador de fala 132.
Figura 22B - apresenta um diagrama em blocos de uma implementação 154 do calculador de descrição de informação temporal 152.
Figura 23A - apresenta um diagrama em blocos de uma implementação 102 do equipamento 100 que é configurado para encodificar um sinal de fala de banda larga de acordo com um esquema de codificação de divisão de banda.
Figura 23B - apresenta um diagrama em blocos de uma implementação 138 do encodificador de fala 136.
Figura 24A - apresenta um diagrama em blocos de uma implementação 139 do encodif icador de fala de banda larga 136.
Figura 24B - apresenta um diagrama em blocos de uma implementação 158 do calculador de descrição temporal 156.
Figura 25A - apresenta um fluxograma de um método M200 de processamento de um sinal de fala encodificado de acordo com uma configuração geral.
Figura 25B - apresenta um fluxograma de uma implementação M210 do método M200.
Figura 25C - apresenta um fluxograma de uma implementação M220 do método M210.
Figura 26 - apresenta uma aplicação do método M200.
Figura 27A - apresenta uma relação entre os métodos M100 e M200.
Figura 27B - apresenta uma relação entre os métodos M300 e M200.
Figura 28 - apresenta uma aplicação do método M210.
Figura 29 - apresenta uma aplicação do método M220.
Figura 30A - apresenta um resultado de interação de uma implementação da tarefa T230.
Figura 30B - apresenta um resultado de interação de outra implementação da tarefa T230.
Figura 30C - apresenta um resultado de interação de outra implementação da tarefa T230.
Figura 31 - apresenta uma parte de um diagrama de estado para um decodificador de fala configurado para efetuar uma implementação do método M200.
Figura 32A - apresenta um diagrama em blocos de um equipamento 200 para processar um sinal de fala encodificado de acordo com uma configuração geral.
Figura 32B - apresenta um diagrama em blocos de uma implementação 202 do equipamento 200.
Figura 32C - apresenta um diagrama em blocos de uma implementação 204 do equipamento 200.
Figura 33A - apresenta um diagrama em blocos de uma implementação 232 do primeiro módulo 230.
Figura 33B - apresenta um diagrama em blocos de uma implementação 272 do decodificador de descrição de envelope espectral 270.
Figura 34A - apresenta um diagrama em blocos de uma implementação 242 do segundo módulo 240.
Figura 34B - apresenta um diagrama em blocos de uma implementação 244 do segundo módulo 240.
Figura 34C - apresenta um diagrama em blocos de uma implementação 246 do segundo módulo 242.
Figura 35A - apresenta um diagrama de estado de acordo com o qual uma implementação da lógica de controle 210 pode ser configurada para operar.
Figura 35B - apresenta um resultado de um exemplo da combinação do método M100 com DTX.
Nas figuras e na descrição anexa, as mesmas referências numéricas são usadas para elementos ou sinais iguais ou similares.
Descrição Detalhada da Invenção As configurações aqui descritas podem ser aplicadas em um sistema de codificação de fala de banda larga para suportar o uso de uma taxa de bits mais baixa para quadros inativos do que para quadros ativos e/ou para melhorar a qualidade percebida de um sinal de fala transferido. É expressamente contemplado e aqui descrito que tais configurações podem ser adaptadas para uso em redes que são comutadas por pacotes (por exemplo, redes a cabo e/ou sem fio configuradas para portar transmissões de voz de acordo com os protocolos tais como VOIP) e/ou comutadas por circuito. A menos que expressamente limitado por seu contexto, o termo "calcular" é aqui utilizado para indicar quaisquer de seus significados normais, tais como computar, avaliar, gerar e/ou selecionar dentre um conjunto de valores. A menos que expressamente limitado por seu contexto, o termo "obter" é aqui utilizado para indicar quaisquer de seus significados normais, tais como calcular, derivar, receber (por exemplo, de um dispositivo externo), e/ou recuperar (por exemplo, de um arranjo de elementos de armazenagem). Quando o termo "compreende" for usado na presente descrição e nas reivindicações, ele não exclui outros elementos ou operações. A expressão "A é baseado em B" é usada para indicar quaisquer de seus significados normais, incluindo os casos (i) "A é baseado em pelo menos B" e (ii) "A é igual a B" (se apropriado no contexto em questão). A menos que indicado em contrário, qualquer descrição de um encodificador de fala possuindo um recurso específico é também expressamente pretendido para descrever um método para encodificação de fala possuindo um recurso análogo (e vice versa), e qualquer descrição de um encodificador de fala de acordo com uma configuração particular é também expressamente pretendido para descrever um método para encodif icação de fala de acordo com uma configuração análoga (e vice versa). A menos que indicado o contrário, qualquer descrição de um decodificador de fala possuindo um recurso é também expressamente entendido para descrever um método para decodificação de fala possuindo recursos análogos (e vice versa), e qualquer descrição de um decodif icador de fala de acordo com uma configuração particular é também expressamente entendido para descrever um método para decodificação de fala possuindo recursos análogos (e vice versa).
Os quadros de um sinal de fala são tipicamente curtos o suficiente para que o envelope espectral do sinal possa permanecer relativamente estacionário durante o quadro. Um comprimento de quadro típico é de vinte milissegundos, embora qualquer comprimento de quadro considerado adequado para a aplicação específica possa ser utilizado. Um comprimento de quadro de vinte milissegundos corresponde a 140 amostras a uma taxa de amostragem de sete kHz, 160 amostras a uma taxa de amostragem de oito kHz, e 320 amostras a uma taxa de amostragem de 16 kHz, embora qualquer taxa de amostragem considerada adequada para a aplicação específica possa ser usada. Outro exemplo de uma taxa de amostragem que pode ser usada para a codificação de fala é de 12,8 kHz, e outros exemplos incluem outras taxas na faixa de 12,8 kHz a 38,4 kHz.
Tipicamente, todos os quadros possuem o mesmo comprimento, e um comprimento de quadro uniforme é presumido nos exemplos específicos aqui descritos. No entanto, é também expressamente contemplado e aqui descrito que comprimentos de quadro não-uniformes podem ser usados.
Como exemplo, as implementações dos métodos M100 e M200 podem também ser usadas em aplicações que empregam diferentes comprimentos de quadros para quadros ativos e inativos e/ou para quadros vozeados e não-vozeados.
Em algumas aplicações, os quadros são não-sobrepostos, enquanto em outras aplicações, um esquema de quadros sobrepostos é usado. Como exemplo, é comum o uso por um codificador de fala de um esquema de quadros sobrepostos no codificador e um esquema de quadros não-sobrepostos no decodificador. É também possível que um encodificador use diferentes esquemas de quadro para diferentes tarefas. Como exemplo, um encodificador de fala ou método para encodificação de fala podem usar um esquema de quadro sobrepostos para encodificar uma descrição de um envelope espectral de um quadro e um esquema de quadros sobrepostos diferente para encodificar uma descrição de informação temporal do quadro.
Como mencionado acima, pode ser desejável configurar um encodificador de fala para utilizar diferentes taxas e/ou modos de codificação para encodificar quadros ativos e quadros inativos. Para distinguir os quadros ativos de quadros inativos, um encodificador de fala inclui tipicamente um detector de atividade de fala ou, como alternativa, efetua um método para detecção de atividade de fala. Tal detector ou método pode ser configurado para classificar um quadro como ativo ou inativo com base em um ou mais fatores, tais como a energia do quadro, a razão de sinal para ruído, a periodicidade e a taxa de cruzamento de zero. Tal classificação pode incluir comparar um valor ou magnitude de tal fator com um valor limite e/ou comparar a magnitude de uma mudança em tal fator com um valor limite.
Um detector de atividade de fala ou método para detectar atividade de fala pode também ser configurado para classificar um quadro ativo como um dentre dois ou mais tipos diferentes, tais como vozeado (por exemplo representando um som de vogal), não-vozeado (por exemplo, representando um som fricativo), ou de transição (por exemplo, representando o início ou final de uma palavra). Pode ser desejável que, um encodif icador de fala utilize diferentes taxas de bits para encodificar diferentes tipos de quadros ativos. Embora o exemplo específico da Figura 1 apresente uma série de quadros ativos, todos codificados na mesma taxa de bits, os técnicos na área notarão que os métodos e equipamentos aqui descritos podem ser também usados nos encodificadores e métodos de codificação de fala que são configurados para codificar quadros ativos em diferentes taxas de bits. A Figura 2 apresenta um exemplo de uma árvore de decisão que um encodif icador de fala ou método de encodificação de fala pode utilizar para selecionar uma taxa de bits com a qual encodificar um quadro específico de acordo com o tipo de fala que o quadro contém. Em outros casos, a taxa de bits selecionada para um quadro específico pode também depender de critérios tais como uma taxa de bits média desejada, um padrão desejado de taxas de bits através de uma série de quadros (que pode ser usado para suportar uma taxa de bits média desejada) e/ou a taxa de bits selecionada para um quadro anterior.
Pode ser desejável usar diferentes modos de codificação para encodificar diferentes tipos de quadros de fala. Os quadros de fala vozeados tendem a possuir uma estrutura periódica que é de longo prazo (isto é, que continua por mais de um período de quadro) e é relacionada ao passo, sendo tipicamente mais eficiente encodificar um quadro vozeado (ou uma seqüência de quadros vozeados) usando um modo de codificação que encodifica uma descrição de tal característica espectral de longo prazo. Os exemplos de tais modos de codificação incluem predição linear excitada por código (CELP) e período de passo de protótipo (PPP). Quadros não-vozeados e quadros inativos, por outro lado, usualmente não apresentam qualquer característica espectral significativa de longo prazo, e um encodificador de fala pode ser configurado para encodificar estes quadros usando um modo de codificação que não tenta descrever tal característica. A predição linear excitada por ruído (NELP) constitui um exemplo de tal modo de codificação.
Um encodif icador de fala ou método para encodificação de fala pode ser configurado para selecionar dentre diferentes combinações de taxas de bits e modos de codificação (também designados como "esquemas de codificação") . Como exemplo, um encodificador de fala configurado para efetuar uma implementação do método M100 pode utilizar um esquema CELP de taxa máxima para os quadros contendo fala vozeada e quadros de transição, um esquema NELP de meia taxa para quadros contendo fala não-vozeada, e um esquema NELP de um oitavo de taxa para quadros inativos. Outros exemplos de tal encodificador de fala suportam múltiplas taxas de codificação para um ou mais esquemas de codificação, tais como esquemas CELP de taxa máxima e meia taxa e/ou esquemas PPP de taxa máxima ou um quarto de taxa.
Uma transição de fala ativa para fala inativa ocorre tipicamente através de um período de vários quadros. Como conseqüência, os vários primeiros quadros de um sinal de fala após uma transição de quadros ativos para quadros inativos podem incluir remanescentes de fala ativa, tais como remanescentes de voz. Se um encodif icador de fala codificar um quadro possuindo tais remanescentes usando um esquema de codificação que se destina a quadros inativos, o resultado encodificado pode não representar exatamente o quadro original. Dessa forma, pode ser desejável continuar com uma taxa de bits mais alta e/ou um modo de codificação ativo para um ou mais dos quadros que seguem a uma transição de quadros ativos para quadros inativos. A Figura 3 ilustra um resultado da encodificação de uma região de um sinal de fala em que a taxa de bits mais elevada rH é mantida por vários quadros após uma transição de quadros ativos para quadros inativos. 0 comprimento de tal continuação (também designado como "hangover") pode ser selecionado de acordo com um comprimento esperado da transição e pode ser fixo ou variável. Por exemplo, o comprimento do hangover pode ser baseado em uma ou mais características, tais como a razão de sinal para ruído, de um ou mais dos quadros ativos que precedem a transição. A Figura 3 ilustra um hangover de quatro quadros.
Um quadro codificado contém tipicamente um conjunto de parâmetros de fala dos quais um quadro correspondente do sinal de fala pode ser reconstruído. Tal conjunto de parâmetros de fala tipicamente inclui informações espectrais, tais como uma descrição da distribuição de energia dentro do quadro através de um espectro de freqüência. Tal distribuição de energia é também designada como um "envelope de freqüência" ou "envelope espectral" do quadro. Um codificador de fala é tipicamente configurado para calcular uma descrição de um envelope espectral de um quadro na forma de uma seqüência de valores ordenada. Em alguns casos, o codificador de fala é configurado para calcular a seqüência ordenada tal que cada valor indique uma amplitude ou magnitude do sinal em uma freqüência correspondente ou através de uma região espectral correspondente. Um exemplo de tal descrição consiste de uma seqüência ordenada de coeficientes de transformada de Fourier.
Em outros casos, o codificador de fala é configurado para calcular a descrição de um envelope espectral como uma seqüência ordenada de valores de parâmetros de um modelo de codificação, tal como um conjunto de valores de coeficientes de uma análise de codificação de predição linear (LPC). Uma seqüência ordenada de valores de coeficientes LPC é tipicamente disposta como um ou mais vetores, e o codificador de fala pode ser implementado para calcular tais valores como coeficientes de filtro ou como coeficientes de reflexão. 0 número de valores de coeficientes no conjunto é também denominado de "ordem" da análise LPC, e exemplos de uma ordem típica de uma análise LPC como efetuada por um codificador de fala de um dispositivo de comunicação (tal como um telefone celular) inclui quatro, seis, oito, dez, doze, dezesseis, vinte, vinte e quatro, vinte e oito e trinta e dois.
Um codificador de fala é tipicamente configurado para transmitir a descrição de um envelope espectral através de um canal de transmissão na forma quantizada (por exemplo, como um ou mais índices para tabelas de consulta ou "livros-código" correspondentes) . Assim sendo, pode ser desejável que um codificador de fala calcule um conjunto de valores de coeficientes LPC de forma que possa ser quantizada eficientemente, tal como um conjunto de valores de pares espectrais de linha (LSPs), freqüências espectrais de linha (LSFs), pares espectrais de imitância (ISPs), freqüências espectrais de imitância (ISFs), coeficientes cepstral, ou razões de área logarítmica. Um codificador de fala pode ser também configurado para efetuar outras operações, tais como ponderação perceptiva, na seqüência de valores ordenada antes da conversão e/ou quantização.
Em alguns casos, uma descrição de um envelope espectral de um quadro também inclui uma descrição de informação temporal do quadro (por exemplo, tal como em uma seqüência ordenada de coeficientes de transformada de Fourier). Em outros casos, o conjunto de parâmetros de fala de um quadro codificado pode também incluir uma descrição de informação temporal do quadro. A forma da descrição da informação temporal pode depender do modo de codificação específico usado para codificar o quadro. Para alguns modos de codificação (por exemplo, para um modo de codificação CELP), a descrição da informação temporal pode incluir uma descrição de um sinal de excitação a ser usado por um decodificador de fala para excitar um modelo LPC (por exemplo, como definido pela descrição do envelope espectral). Uma descrição de um sinal de excitação aparece tipicamente em um quadro codificado na forma quantizada (por exemplo, como um ou mais índices para livros-códigos correspondentes). A descrição de informação temporal pode também incluir informação relacionada a um componente de passo do sinal de excitação. Para um modo de codificação PPP, por exemplo, a informação temporal codificada pode incluir uma descrição de um protótipo a ser usada por um decodificador de fala para reproduzir um componente de passo do sinal de excitação. Uma descrição de informação relacionada a um componente de passo aparece tipicamente em um quadro codificado na forma quantizada (por exemplo, como um ou mais índices para livros-códigos correspondentes).
Para outros modos de codificação (por exemplo, para um modo de codificação NELP) , a descrição da informação temporal pode incluir uma descrição de um envelope temporal do quadro (também designado como um "envelope de energia" ou "envelope de ganho" do quadro). Uma descrição de um envelope temporal pode incluir um valor que é baseado na energia média do quadro. Tal valor é tipicamente apresentado como um valor de ganho a ser aplicado ao quadro durante a decodificação e é também designado como um "quadro de ganho". Em alguns casos, o quadro de ganho consiste de um fator de normalização com base em uma razão entre (A) a energia do quadro original Eorig θ (B) a energia de um quadro sintetizado de outros parâmetros do quadro encodificado (por exemplo, incluindo a descrição de um envelope espectral) ESint. Como exemplo, o quadro de ganho pode ser expresso como Eorig/ESint °u como a raiz quadrada de Eorig/ESint· Os quadros de ganho e outros aspectos dos envelopes temporais são descritos em maiores detalhes, por exemplo, na publicação do Pedido de Patente U.S. 2006/0282262 (Vos et al.), "SYSTEMS, METHODS, AND APPARATUS FOR GAIN FACTOR ATTENUATION", publicado em 14 de dezembro de 2006.
Alternativa ou adicionalmente, uma descrição de um envelope temporal pode incluir valores de energia relativos para cada um de um número de sub-quadros do quadro. Tais valores são tipicamente apresentados como valores de ganho a serem aplicados aos respectivos sub-quadros durante a decodificação e são coletivamente denominados como um "perfil de ganho" ou "formato de ganho". Em alguns casos, os valores de formato de ganho são fatores de normalização, cada qual baseado em uma razão entre (A) a energia do sub-quadro original i Eorig.i e (B) a energia do sub-quadro i correspondente de um quadro sintetizado de outros parâmetros do quadro encodificado (por exemplo, incluindo a descrição de um envelope espectral) Esint.i. Em tais casos, a energia Esint.i pode ser usada para normalizar a energia Eorig.i. Como exemplo, um valor de formato de ganho pode ser expresso como Eorig.i/ Esint.i, ou como a raiz quadrada de EOrig.i/ESint.i· Um exemplo de uma descrição de um envelope temporal inclui um quadro de ganho e um formato de ganho, em que o formato de ganho inclui um valor para cada um dentre cinco sub-quadros de quatro milissegundos de um quadro de vinte milissegundos. Os valores de ganho podem ser expressos em uma escala linear ou em uma escala logarítmica (por exemplo, decibel). Tais características são descritas em maiores detalhes, por exemplo, na publicação de Pedido de Patente U.S. 2006/0282 262 acima mencionada.
Ao calcular o valor de um quadro de ganho (ou valores de um formato de ganho), pode ser desejável aplicar uma função de janela que sobreponha quadros adjacentes (ou sub-quadros). Os valores de ganho produzidos desta forma são tipicamente aplicados de maneira a sobrepor-adicionar no decodif icador de fala, o que pode ajudar a reduzir ou evitar descontinuidades entre quadros ou sub-quadros. A Figura 4A apresenta um gráfico de uma função de janela trapezoidal que pode ser usada para calcular cada um dos valores de formato de ganho. Em tal exemplo, a janela se sobrepõe a cada dois sub-quadros adjacentes em um milissegundo. A Figura 4B apresenta uma aplicação de tal função de janela para cada um dos cinco sub-quadros de um quadro de vinte milissegundos. Outros exemplos de funções de janela incluem funções possuindo diferentes períodos de sobreposição e/ou diferentes formatos de janela (por exemplo, retangulares ou de Hamming), que podem ser simétricas ou assimétricas. É também possível calcular valores de um formato de ganho ao aplicar diferentes funções de janela a diferentes sub-quadros e/ou ao calcular diferentes valores do formato de ganho através de sub-quadros de diferentes comprimentos.
Um quadro encodificado que inclui uma descrição de um envelope temporal inclui tipicamente tal descrição na forma quantizada como um ou mais índices nos livros-código correspondentes, apesar de, em alguns casos, um algoritmo poder ser usado para quantizar e/ou dequantizar o quadro de ganho e/ou o formato de ganho sem utilizar um livro-código. Um exemplo de uma descrição de um envelope temporal inclui um índice quantizado de oito a doze bits que especifica cinco valores de formato de ganho para o quadro (por exemplo, um para cada um dos cinco sub-quadros consecutivos). Tal descrição pode também incluir outro índice quantizado que especifica um valor de quadro de ganho para o quadro.
Como acima mencionado, pode ser desejável transmitir e receber um sinal de fala possuindo uma faixa de freqüência que supera a faixa de freqüência da PSTN de 300 a 3400 kHz. Uma abordagem para codificar tal sinal consiste em codificar toda a faixa de freqüência estendida como uma única banda de freqüência. Tal abordagem pode ser implementada ao escalonar uma técnica de codificação de fala de banda estreita (por exemplo, uma configurada para encodificar uma faixa de freqüência de qualidade PSTN, tal como 0 a 4 kHz ou 300 a 3400 Hz) para cobrir uma faixa de freqüência de banda larga, tal como 0 a 8 kHz. Como exemplo, tal abordagem pode incluir (A) amostrar o sinal de fala a uma taxa mais elevada para incluir componentes em altas freqüências e (B) re-configurar uma técnica de codificação de banda estreita para representar tal sinal de banda larga com um grau de precisão desejado. Um de tais métodos de reconfiguração de uma técnica de codificação de banda estreita consiste em usar uma análise LPC de ordem superior (isto é, produzir um vetor de coeficiente possuindo mais valores). Um codificador de fala de banda larga que codifica um sinal de banda larga como uma banda de freqüência única é também designado como um codificador de "banda-máxima".
Pode ser desejável implementar um codificador de fala de banda larga tal que pelo menos uma parte de banda estreita do sinal codificado possa ser enviada através de um canal de banda estreita (tal como um canal PSTN) sem a necessidade de transcodificar ou de outra forma modificar significativamente o sinal encodificado. Tal característica pode facilitar a retro-compatibilidade com redes e/ou equipamentos que reconhecem apenas sinais de banda estreita. Pode ser também desejável implementar um codificador de fala de banda larga que usa diferentes modos e/ou taxas de codificação para diferentes bandas de freqüência do sinal de fala. Tal característica pode ser usada para suportar uma maior eficiência de codificação e/ou qualidade percebida. Um codificador de fala de banda larga que é configurado para produzir quadros encodifiçados possuindo partes que representam diferentes bandas de freqüências do sinal de fala de banda larga (por exemplo, conjuntos separados de parâmetros de fala, cada conjunto representando uma banda de freqüência diferente do sinal de fala de banda larga) é também designado como um codificador de "divisão de banda". A Figura 5A apresenta um exemplo de um esquema de banda de freqüência sem sobreposição que pode ser usado por um codificador de divisão de banda para encodificar conteúdo de fala de banda larga através de uma faixa de 0 a 8 kHz. Tal esquema inclui uma primeira banda de freqüência que se estende de 0 Hz a 4 kHz (também designada como uma faixa de banda estreita) e uma segunda banda de freqüência que se estende de 4 a 8 kHz (também designada como uma faixa de banda alta, superior, ou estendida) . A Figura 5B apresenta um exemplo de um esquema de banda de freqüência com sobreposição que pode ser usado por um encodificador de divisão de banda para encodificar conteúdo de fala de banda larga através de uma faixa de 0 a 7 kHz. Tal esquema inclui uma primeira banda de freqüência que se estende de 0 Hz a 4 kHz (a faixa de banda estreita) e uma segunda banda de freqüência que se estende de 3,5 a 7 kHz (a faixa de banda alta, estendida, ou superior).
Um exemplo específico de um codificador de divisão de banda é configurado para efetuar uma análise LPC de décima ordem para a faixa de banda estreita e uma análise LPC de sexta ordem para a faixa de banda alta. Outros exemplos de esquemas de banda de freqüência incluem estes em que a faixa de banda estreita se estende apenas para baixo de 300 Hz. Tal esquema pode também incluir outra banda de freqüência que cobre uma faixa de banda baixa de cerca de 0 ou 50 Hz até cerca de 300 ou 350 Hz.
Pode ser desejável reduzir a taxa de bits média usada para encodificar um sinal de fala de banda larga. Como exemplo, a redução da taxa de bits média necessária para suportar um serviço específico pode permitir um aumento no número de usuários que uma rede pode servir de cada vez. No entanto, é também desejável efetuar tal redução sem degradar excessivamente a qualidade percebida do sinal de fala decodificado correspondente.
Uma possível abordagem para reduzir a taxa de bits média de um sinal de fala de banda larga consiste em encodificar os quadros inativos usando um esquema de codificação de banda larga de banda-máxima a uma baixa taxa de bits. A Figura 6A ilustra um resultado da encodificação de uma transição de quadros ativos para quadros inativos em que os quadros ativos são encodificados em uma taxa de bits mais alta rH e os quadros inativos são codificados a uma taxa de bits mais baixa rL. 0 rótulo F indica um quadro encodificado usando um esquema de codificação de banda larga de banda-máxima.
Para obter uma redução suficiente na taxa de bits média, pode ser desejável encodificar os quadros inativos usando uma taxa de bits muito baixa. Como exemplo, pode ser desejável usar uma taxa de bits que é comparável a uma taxa usada para encodificar quadros inativos em um codificador de banda estreita, tal como dezesseis bits por quadro ("um oitavo de taxa"). Infelizmente, tal número de bits menor é tipicamente insuficiente para encodificar até mesmo um quadro inativo de um sinal de banda larga com um grau aceitável de qualidade percebida através da faixa de banda larga, um codificador de banda larga de banda-máxima que codifica quadros inativos com tal taxa provavelmente produzirá um sinal decodificado possuindo uma qualidade de som ruim durante os quadros inativos. Tal sinal não apresentará suavidade durante os quadros inativos, por exemplo, na sonoridade e/ou distribuição espectral percebidas do sinal decodificado podem mudar excessivamente de um quadro para o próximo. A suavidade é tipicamente importante perceptivamente para o ruído de fundo decodificado. A Figura 6B ilustra outro resultado da encodificação de uma transição de quadros ativos para quadros inativos. Neste caso, um esquema de codificação de banda larga de divisão de banda é usado para encodificar os quadros ativos a uma taxa de bits mais elevada e um esquema de codificação de banda larga de banda-máxima é usado para encodificar os quadros inativos a uma taxa de bits mais baixa. Os rótulos H e N indicam partes de um quadro encodificado de divisão de banda que foram encodifiçadas usando um esquema de codificação de banda alta e um esquema de codificação de banda estreita, respectivamente. Como mencionado acima, encodificar quadros inativos usando um esquema de codificação de banda larga de banda-máxima e uma taxa de bits baixa provavelmente irá produzir um sinal decodificado possuindo baixa qualidade de som durante os quadros inativos. A mistura de esquemas de codificação de divisão de banda e de banda-máxima provavelmente também irá aumentar a complexidade do codificador, apesar de tal complexidade poder ou não influenciar a praticidade da implementação resultante. Adicionalmente, apesar de informações históricas de quadros passados serem algumas vezes usadas para aumentar significativamente a eficiência de codificação, (especialmente para codificar quadros vozeados), pode não ser viável aplicar informações históricas geradas por um esquema de codificação de divisão de banda durante a operação de um esquema de codificação de banda-máxima e vice versa.
Outra abordagem possível para reduzir a taxa de bits média de um sinal de banda larga consiste em encodificar os quadros inativos usando um esquema de codificação de banda larga de divisão de banda a uma taxa de bits baixa. A Figura 7A ilustra o resultado da encodificação de uma transição de quadros ativos para quadros inativos em que um esquema de codificação de banda larga de banda-máxima é usado para encodificar os quadros ativos a uma taxa de bits mais alta rH e um esquema de codificação de banda larga de divisão de banda é usado para encodificar os quadros inativos a uma taxa de bits mais baixa rL. A Figura 7B ilustra um exemplo relacionado em que um esquema de codificação de banda larga de divisão de banda é usado para encodificar os quadros ativos. Como acima mencionado com referência às Figuras 6A e 6B, pode ser desejável encodificar os quadros inativos usando uma taxa de bits comparável a uma taxa de bits usada para encodificar quadros inativos em um codificador de banda estreita, tal como dezesseis bits por quadro ("um oitavo de taxa"). Infelizmente, um menor número de bits é tipicamente insuficiente para um esquema de divisão de banda dividir entre as diferentes bandas de freqüências tal que um sinal de banda larga decodificado de qualidade aceitável possa ser alcançado.
Outra possível abordagem para reduzir a taxa de bits média de um sinal de banda larga consiste em encodificar os quadros inativos como banda estreita a uma taxa de bits baixa. As Figuras 8A e 8B ilustram os resultados da encodificação de uma transição de quadros ativos para quadros inativos em que um esquema de codificação de banda larga é usado para encodificar os quadros ativos a uma taxa de bits mais alta rH e um esquema de codificação de banda estreita é usado para encodificar os quadros inativos a uma taxa de bits mais baixa rL. No exemplo da Figura 8A, um esquema de codificação de banda larga de banda-máxima é usado para encodificar os quadros ativos, enquanto no exemplo da Figura 8B, um esquema de codificação de banda larga de divisão de banda é usado para codificar os quadros ativos. A codificação de um quadro ativo usando um esquema de codificação de banda larga de alta taxa de bits produz tipicamente um quadro encodificado que contém ruído de fundo de banda larga bem codificado. Encodificar um quadro inativo usando apenas um esquema de codificação de banda estreita, contudo, como nos exemplos das Figuras 8A e 8B, produz um quadro encodificado que não apresenta as freqüências estendidas. Conseqüentemente, uma transição de um quadro ativo de banda larga decodificado para um quadro inativo de banda estreita decodificado provavelmente será bem audível e desagradável, e esta terceira abordagem possivelmente produzirá um resultado sub-ótimo. A Figura 9 apresenta uma operação de encodificação de três quadros sucessivos de um sinal de fala usando um método M100 de acordo com uma configuração geral. A tarefa T110 encodifica o primeiro de três quadros, que pode ser ativo ou inativo, com uma primeira taxa de bits ri (p bits por quadro) . A tarefa T120 encodifica o segundo quadro, que segue ao primeiro quadro e é um quadro inativo, com uma segunda taxa de bits r2 (q bits por quadro) que é diferente de rl. A tarefa T130 encodifica o terceiro quadro, que segue imediatamente ao segundo quadro e é também inativo, a uma terceira taxa de bits r3 (r bits por quadro) que é menor que r2. 0 método M100 é tipicamente efetuado como parte de um método maior de encodificação de fala, e encodificadores de fala e métodos para encodificação de fala que são configurados para efetuar o método M100 são aqui descritos e expressamente contemplados.
Um decodificador de fala correspondente pode ser configurado para usar informações do segundo quadro encodificado para suplementar a decodificação de um quadro inativo a partir do terceiro quadro encodificado. Em outro local da presente descrição, decodificadores de fala e métodos para decodificação de quadros de um sinal de fala são descritos que utilizam informações do segundo quadro encodificado na decodificação de um ou mais quadros inativos subsequentes.
No exemplo específico apresentado na Figura 9, o segundo quadro segue imediatamente o primeiro quadro no sinal de fala, e o terceiro quadro segue imediatamente o segundo quadro no sinal de fala. Em outras aplicações do método M100, o primeiro e segundo quadros podem ser separados por um ou mais quadros inativos no sinal de fala, e o segundo e terceiro quadros podem ser separados por um ou mais quadros inativos no sinal de fala. Em um exemplo específico apresentado na Figura 9, p é maior que q. 0 método M100 pode ser também implementado tal que p seja menor que q. Nos exemplos específicos apresentados nas Figuras 10A a 12B, as taxas de bits rH, rM e rL correspondem às taxas de bits ri, r2 e r3, respectivamente. A Figura 10A ilustra o resultado da encodificação de uma transição de quadros ativos para quadros inativos usando uma implementação do método M100 como acima descrito. Neste exemplo, o último quadro ativo antes da transição é encodificado a uma taxa de bits mais alta rH para produzir o primeiro de três quadros encodifiçados, o primeiro quadro inativo após a transição é encodificado a uma taxa de bits intermediária rM para produzir o segundo de três quadros codificados, e o próximo quadro inativo é encodificado a uma taxa de bits mais baixa rL para produzir o último de três quadros encodifiçados. Em um caso particular deste exemplo, as taxas de bits rH, rM e rL são a taxa máxima, meia taxa e um oitavo de taxa, respectivamente.
Como acima mencionado, uma transição de fala ativa para fala inativa ocorre tipicamente através de um período de vários quadros, e os primeiros vários quadros após uma transição de quadros ativos para quadros inativos pode incluir restantes de fala ativa, tais como restantes de voz. Caso um encodificador de fala encodifica um quadro possuindo tais restantes usando um esquema de codificação que se destina a quadros inativos, o resultado encodificado pode não representar exatamente o quadro original. Dessa forma, pode ser desejável implementar o método M100 de modo a evitar a encodificação de um quadro que possui tais restantes como o segundo quadro encodificado. A Figura 10B ilustra o resultado da encodificação de uma transição de quadros ativos para quadros inativos usando uma implementação do método M100 que inclui um hangover. Este exemplo específico do método M100 mantém o uso da taxa de bits rH para os primeiros três quadros inativos após a transição. De modo geral, um hangover de qualquer comprimento desejado pode ser usado (por exemplo, na faixa de um ou dois até cinco ou dez quadros) . 0 comprimento do hangover pode ser selecionado de acordo com um comprimento esperado da transição e pode ser fixo ou variável. Como exemplo, o comprimento do hangover pode ser baseado em uma ou mais características de um ou mais dos quadros ativos que precedem a transição e/ou um ou mais dos quadros dentro do hangover, tal como a razão de sinal para ruído. De um modo geral, o rótulo "primeiro quadro encodificado" pode ser aplicado ao último quadro ativo antes da transição, ou a qualquer quadro inativo durante o hangover.
Pode ser desejável implementar o método M100 para usar a taxa de bits r2 através de uma série de dois ou mais quadros inativos consecutivos. A Figura 11A ilustra o resultado da encodificação de uma transição de quadros ativos para quadros inativos usando tal implementação do método M100. Neste exemplo, o primeiro e último dos três quadros encodifiçados são separados por mais de um quadro que é encodificado usando a taxa de bits rM, tal que o segundo quadro encodificado não siga imediatamente o primeiro quadro encodificado. Um decodificador de fala correspondente pode ser configurado para usar informação do segundo quadro encodificado para decodificar o terceiro quadro encodificado (e possivelmente decodificar um ou mais quadros inativos subsequentes).
Pode ser desejável que um decodificador de fala utilize informações de mais de um quadro encodificado para decodificar um quadro inativo subseqüente. Com referência a uma série como mostrada na Figura 11A, por exemplo, um decodificador de fala correspondente pode ser configurado para usar informações de ambos os quadros inativos encodificados a uma taxa de bits rM para decodificar o terceiro quadro encodificado (e possivelmente decodificar um ou mais quadros inativos subseqüentes).
Pode ser de modo geral desejável que o segundo quadro encodificado seja representativo dos quadros inativos. Assim sendo, o método M100 pode ser implementado para produzir o segundo quadro encodificado com base nas informações espectrais de mais de um quadro inativo do sinal de fala. A Figura 11B ilustra um resultado da encodificação de uma transição de quadros ativos para quadros inativos usando tal implementação do método M100. Neste exemplo, o segundo quadro encodificado contém informações mediadas através de uma janela de dois quadros do sinal de fala. Em outros casos, a janela da média pode possuir um comprimento na faixa de dois a cerca de seis ou oito quadros. 0 segundo quadro encodificado pode incluir uma descrição de um envelope espectral que é uma média das descrições de envelopes espectrais dos quadros dentro da janela (neste caso, o quadro inativo correspondente do sinal de fala e o quadro inativo que o precede). 0 segundo quadro encodificado pode incluir uma descrição de informação temporal que é baseada principalmente ou exclusivamente no quadro correspondente do sinal de fala. Alternativamente, o método M100 pode ser configurado tal que o segundo quadro encodificado inclua uma descrição de informação temporal que é uma média das descrições da informação temporal dos quadros dentro da janela. A Figura 12A ilustra o resultado da encodificação de uma transição de quadros ativos para quadros inativos usando outra implementação do método M100. Neste exemplo, o segundo quadro encodificado contém informações mediadas através de uma janela de três quadros, com o segundo quadro codificado sendo codificado a uma taxa de bits rM e os dois quadros inativos precedentes sendo encodifiçados a uma taxa de bits diferente rH. Neste exemplo específico, a janela de mediação segue um hangover pós-transição de três quadros. Como outro exemplo, o método M100 pode ser implementado sem tal hangover ou, alternativamente, com um hangover que se sobrepõe à janela de mediação. De modo geral, o rótulo "primeiro quadro encodificado" pode ser aplicado ao último quadro ativo antes da transição, a qualquer quadro inativo durante o hangover, ou a qualquer quadro na janela que seja encodificado a uma taxa de bits diferente do segundo quadro encodificado.
Em alguns casos, pode ser desejável que uma implementação do método M100 utilize a taxa de bits r2 para encodificar um quadro inativo somente se o quadro seguir uma seqüência de quadros ativos consecutivos (também designada como um "surto de voz") que possui pelo menos um comprimento mínimo. A Figura 12B ilustra o resultado da encodificação de uma região de um sinal de fala usando tal implementação do método M100. Neste exemplo, o método M100 é implementado para usar a taxa de bits rM para encodificar o primeiro quadro inativo após uma transição de quadros ativos para quadros inativos, porém apenas se o surto de voz (talk spurt) precedente possuir um comprimento de pelo menos três quadros. Nestes casos, o comprimento mínimo do surto de voz pode ser fixo ou variável. Como exemplo, este pode ser baseado em uma característica de um ou mais dos quadros ativos que precedem a transição, tal como a razão de sinal para ruído. Outras implementações do método M100 podem ser também configuradas para aplicar um hangover e/ou janela de mediação, tal como acima descrito.
As Figuras 10A a 12B apresentam aplicações de implementações do método M100 em que a taxa de bit rl que é usada para encodificar o primeiro quadro encodificado é maior do que a taxa de bits r2 que é usada para encodificar o segundo quadro encodificado. No entanto, a gama de implementações do método M100 inclui também métodos em que a taxa de bits rl é menor do que a taxa de bits r2. Em alguns casos, por exemplo, um quadro ativo tal como um quadro vozeado pode ser em grande parte redundante face a um quadro ativo precedente, podendo ser desejável encodificar tal quadro usando uma taxa de bits que é menor do que r2. A Figura 13A apresenta um resultado de uma encodificação de uma seqüência de quadros de acordo com tal implementação do método M100, em que um quadro ativo é encodificado a uma taxa de bits mais baixa para produzir o primeiro do conjunto de três quadros encodifiçados.
As aplicações potenciais do método M100 não são limitadas a regiões de um sinal de fala que inclui uma transição de quadros ativos para quadros inativos. Em alguns casos, pode ser desejável efetuar o método M100 de acordo com algum intervalo regular. Como exemplo, pode ser desejável codificar cada nesimo quadro em uma série de quadros inativos consecutivos a uma taxa de bit mais alta r2, em que os valores típicos de n incluem 8, 16 e 32. Em outros casos, o método M100 pode ser iniciado em resposta a um evento. Um exemplo de tal evento consiste de uma mudança na qualidade do ruído de fundo, que pode ser indicada por uma mudança em um parâmetro relacionado à inclinação espectral, tal como o valor do primeiro coeficiente de reflexão. A Figura 13B apresenta um resultado da encodificação de uma série de quadros inativos usando tal implementação do método M100.
Como acima mencionado, um quadro de banda larga pode ser encodificado usando um esquema de codificação de banda-máxima ou um esquema de codificação de divisão de banda. Um quadro encodificado como banda-máxima contém uma descrição de um único envelope espectral que se estende por toda a faixa de freqüências de banda larga, enquanto um quadro encodificado como divisão de banda possui duas ou mais partes separadas que representam informações em diferentes bandas de freqüência (por exemplo, uma faixa de banda estreita e uma faixa de banda alta) do sinal de fala de banda larga. Como exemplo, tipicamente cada uma destas partes separadas de um quadro encodificado por divisão de banda contém uma descrição de um envelope espectral do sinal de fala através da banda de freqüência correspondente. Um quadro encodificado por divisão de banda pode conter uma descrição de informação temporal para o quadro para toda a faixa de freqüência de banda larga, ou cada uma das partes separadas do quadro encodificado pode conter uma descrição de informação temporal do sinal de fala para a banda de freqüência correspondente. A Figura 14 apresenta uma aplicação de uma implementação M110 do método M100. 0 método M110 inclui uma implementação T112 da tarefa T110 que produz um primeiro quadro encodificado com base no primeiro de três quadros do sinal de fala. 0 primeiro quadro pode ser ativo ou inativo, e o primeiro quadro encodificado possui um comprimento de p bits. Como mostrado na Figura 14, a tarefa T112 é configurada para produzir o primeiro quadro encodificado para conter uma descrição de um envelope espectral através da primeira e segunda bandas de freqüência. Tal descrição pode ser uma única descrição que se estende através de ambas as bandas de freqüência, ou pode incluir descrições separadas que se estendem, cada uma, através de uma das respectivas bandas de freqüência. A tarefa T112 pode ser também configurada para produzir o primeiro quadro encodificado para conter uma descrição da informação temporal (por exemplo, de um envelope temporal) para a primeira e a segunda bandas de freqüência. Tal descrição pode ser uma única descrição que estende através de ambas as bandas de freqüência, ou pode incluir descrições separadas que se estendem, cada uma, através de uma das respectivas bandas de freqüência. 0 método M110 inclui também uma implementação T122 da tarefa T120 que produz um segundo quadro encodificado com base no segundo dos três quadros. 0 segundo quadro é um quadro inativo, e o segundo quadro encodificado possui um comprimento de q bits (em que p e q não são iguais). Como mostrado na Figura 14, a tarefa T122 é configurada para produzir o segundo quadro encodificado para conter uma descrição de um envelope espectral através da primeira e segunda bandas de freqüência. Tal descrição pode ser uma única descrição que se estende através de ambas as bandas de freqüência, ou pode incluir descrições separadas que se estendem, cada uma, através de uma das respectivas bandas de freqüência. Neste exemplo específico, o comprimento em bits da descrição do envelope espectral contida no segundo quadro encodificado é menor do que o comprimento em bits da descrição de envelope espectral contida no primeiro quadro encodificado. A tarefa T122 pode ser também configurada para produzir o segundo quadro encodificado para conter uma descrição da informação temporal (por exemplo, de um envelope temporal) para a primeira e a segunda bandas de freqüência. Tal descrição pode ser uma única descrição que se estende através de ambas as bandas de freqüência, ou pode incluir descrições separadas que se estendem, cada uma, através de uma das respectivas bandas de freqüência. 0 método M110 inclui também uma implementação T132 da tarefa T130 que produz um terceiro quadro encodificado com base no último dos três quadros. 0 terceiro quadro é um quadro inativo, e o terceiro quadro encodificado possui um comprimento de r bits (em que r é menor do que q) . Como mostrado na Figura 14, a tarefa T132 é configurada para produzir o terceiro quadro encodificado para conter uma descrição de um envelope espectral através da primeira banda de freqüência. Neste exemplo específico, o comprimento (em bits) da descrição do envelope espectral contida no terceiro quadro encodificado é menor do que o comprimento (em bits) da descrição do envelope espectral contida no segundo quadro encodificado. A tarefa T132 pode ser também configurada para produzir o terceiro quadro encodificado para conter uma descrição da informação temporal (por exemplo, de um envelope temporal) para a primeira banda de freqüência. A segunda banda de freqüência é diferente da primeira banda de freqüência, ainda que o método M110 seja configurado de tal forma que as duas bandas de freqüências se sobreponham. Os exemplos de um limite inferior para a primeira banda de freqüência incluem 0, 50, 100, 300 e 500 Hz, e os exemplos de um limite superior para a primeira banda de freqüências incluem 3, 3.5, 4, 4.5 e 5 kHz. Exemplos de um limite inferior para a segunda banda de freqüência incluem 2.5, 3, 3.5, 4 e 4.5 kHz, e os exemplos de um limite superior para a segunda banda de freqüência incluem 7, 7.5, 8 e 8.5 kHz. Todas as quinhentas combinações possíveis dos limites acima são expressamente contempladas e aqui descritas, e a aplicação de qualquer de tais combinações para qualquer implementação do método M110 é também expressamente contemplada e aqui descrita. Em um exemplo específico, a primeira banda de freqüência inclui a faixa de cerca de 50 Hz a cerca de quatro kHz e a segunda banda de freqüência inclui a faixa de cerca de quatro a cerca de sete kHz. Em outro exemplo específico, a primeira banda de freqüência inclui a faixa de cerca de 100 Hz a cerca de quatro kHz e a segunda banda de freqüência inclui a faixa de cerca de 3.5 a cerca de 7 kHz. Em outro exemplo específico, a primeira banda de freqüência inclui a faixa de cerca de 300 Hz a cerca de 4 kHz e a segunda banda de freqüência inclui a faixa de cerca de 3.5 a cerca de 7 kHz. Nestes exemplos, a expressão "cerca de" indica mais ou menos cinco por cento, com os limites das várias bandas de freqüência sendo indicados pelos respectivos pontos de 3 dB.
Como acima mencionado, para aplicações de banda larga um esquema de codificação de divisão de banda pode apresentar vantagens em relação a um esquema de codificação de banda-máxima, tais como maior eficiência de codificação e suporte a retro-compatibilidade. A Figura 15 apresenta uma aplicação de uma implementação M120 do método M110 que usa um esquema de codificação de divisão de banda para produzir o segundo quadro encodificado. O método M120 inclui uma implementação T124 da tarefa T122 que possui duas sub-tarefas T126a e T126b. A tarefa T126a é configurada para calcular uma descrição de um envelope espectral através da primeira banda de freqüência, e a tarefa T126b é configurada para calcular uma descrição separada de um envelope espectral através da segunda banda de freqüência. Um decodificador de fala correspondente (por exemplo, tal como descrito mais adiante) pode ser configurado para calcular um quadro de banda larga decodificado com base na informação das descrições de envelope espectral calculadas pelas tarefas Tl26b e T132.
As tarefas Tl26a e T132 podem ser configuradas para calcular descrições de envelopes espectrais através da primeira banda de freqüência que possuem o mesmo comprimento, ou uma das tarefas Tl26a e T132 podem ser configuradas para calcular uma descrição que é mais longa do que a descrição calculada pela outra tarefa. As tarefas T126a e T126b podem ser também configuradas para calcular descrições separadas de informação temporal através das duas bandas de freqüências. A tarefa T132 pode ser configurada tal que o terceiro quadro encodificado não contenha qualquer descrição de um envelope espectral através da segunda banda de freqüência. Alternativamente, a tarefa T132 pode ser configurada tal que o terceiro quadro encodificado contenha uma descrição abreviada de um envelope espectral através da segunda banda de freqüência. Como exemplo, a tarefa T132 pode ser configurada tal que o terceiro quadro encodificado contenha uma descrição de um envelope espectral através da segunda banda de freqüência que possui substancialmente menos bits do que (por exemplo, não seja maior do que metade) a descrição de um envelope espectral do terceiro quadro através da primeira banda de freqüência. Como outro exemplo, a tarefa T132 é configurada tal que o terceiro quadro encodificado contenha uma descrição de um envelope espectral através da segunda banda de freqüência que possui substancialmente menos bits do que (por exemplo, não seja maior do que metade) a descrição de um envelope espectral através da segunda banda de freqüência calculada pela tarefa T126b. Em tal exemplo, a tarefa T132 é configurada para produzir o terceiro quadro encodificado para conter uma descrição de um envelope espectral através da segunda banda de freqüência que inclui apenas um valor de inclinação espectral (por exemplo, o primeiro coeficiente de reflexão normalizado).
Pode ser desejável implementar o método M110 para produzir o primeiro quadro encodificado usando um esquema de codificação de divisão de banda em lugar de um esquema de codificação de banda máxima. A Figura 16 apresenta uma aplicação de uma implementação M130 do método M120 que usa um esquema de codificação de divisão de banda para produzir o primeiro quadro encodificado. 0 método M130 inclui uma implementação T114 da tarefa T110 que inclui duas sub- tarefas T116a e Tll6b. A tarefa T116a é configurada para calcular uma descrição de um envelope espectral através da primeira banda de freqüência, e a tarefa T116b é configurada para calcular uma descrição separada de um envelope espectral através da segunda banda de freqüência.
As tarefas T116a e T126a podem ser configuradas para calcular descrições de envelopes espectrais através da primeira banda de freqüência que possuem o mesmo comprimento, ou uma das tarefas T116a e T126a pode ser configurada para calcular uma descrição que é mais longa do que a descrição calculada pela outra tarefa. As tarefas T116b e T126b podem ser configuradas para calcular descrições de envelopes espectrais através da segunda banda de freqüência que possuem o mesmo comprimento, ou uma das tarefas T116b e T126b pode ser configurada para calcular uma descrição que é mais longa do que a descrição calculada pela outra tarefa. As tarefas T116a e T126b podem ser também configuradas para calcular descrições separadas de informação temporal através das duas bandas de freqüência. A Figura 17A apresenta um resultado da encodificação de uma transição de quadros ativos para quadros inativos usando uma implementação do método M130. Neste exemplo específico, as partes do primeiro e segundo quadros encodificados que representam a segunda banda de freqüência possuem o mesmo comprimento, e as partes do segundo e terceiro quadros encodificados que representam a primeira banda de freqüência possuem o mesmo comprimento.
Pode ser desejável que a parte do segundo quadro encodificado que representa a segunda banda de freqüência possua um comprimento maior do que uma parte correspondente do primeiro quadro encodificado. As faixas de freqüência baixa e alta de um quadro ativo são mais provavelmente de serem correlacionadas umas com as outras (especialmente se o quadro for vozeado) do que as faixas de freqüência baixa e alta de um quadro inativo que contém ruído de fundo.
Assim sendo, a faixa de alta freqüência do quadro inativo pode transportar relativamente mais informações do quadro quando comparado à faixa de alta freqüência do quadro ativo, podendo ser desejável usar um maior número de bits para encodificar a faixa de alta freqüência do quadro inativo. A Figura 17B apresenta o resultado da encodificação de uma transição de quadros ativos para quadros inativos usando outra implementação do método M130. Neste caso, a parte do segundo quadro encodificado que representa a segunda banda de freqüência é mais longa (isto é, possui mais bits) do que a parte correspondente do primeiro quadro encodificado. Tal exemplo específico mostra também um caso em que a parte do segundo quadro encodificado que representa a primeira banda de freqüência é mais longa do que a parte correspondente do terceiro quadro encodificado, sendo que outra implementação do método M130 pode ser configurada para codificar os quadros tal que estas duas partes possuam o mesmo comprimento (por exemplo, tal como mostrado na Figura 17A).
Um exemplo típico do método M100 é configurado para encodificar o segundo quadro usando o modo NELP de banda larga (que pode ser de banda máxima como mostrado na Figura 14, ou de divisão de banda como mostrado nas Figuras 15 e 16) e para encodificar o terceiro quadro usando o modo NELP de banda estreita. A Tabela da Figura 18 apresenta um conjunto de três esquemas de codificação diferentes que um encodificador de fala pode usar para produzir um resultado como apresentado na Figura 17B. Neste exemplo, um esquema de codificação CELP de banda larga de taxa máxima ("esquema de codificação 1") é usado para encodificar quadros vozeados. Tal esquema de codificação usa 153 bits para encodificar a parte de banda estreita do quadro e 16 bits para encodificar a parte de banda alta. Para a banda estreita, o esquema de codificação 1 usa 28 bits para encodificar uma descrição do envelope espectral (por exemplo, na forma de um ou mais vetores LSP quantizados) e 125 bits para encodificar uma descrição do sinal de excitação. Para a banda alta, o esquema de codificação 1 usa 8 bits para encodificar o envelope espectral (por exemplo, na forma de um ou mais vetores LSP quantizados) e 8 bits para encodificar uma descrição do envelope temporal.
Pode ser desejável configurar o esquema de codificação 1 para derivar o sinal de excitação de banda alta do sinal de excitação de banda estreita, tal que nenhum bit do quadro encodificado seja necessário para portar o sinal de excitação de banda alta. Pode ser também desejável configurar o esquema de codificação 1 para calcular o envelope temporal de banda alta em relação ao envelope temporal do sinal de banda alta como sintetizado a partir de outros parâmetros do quadro encodificado (por exemplo, incluindo a descrição de um envelope espectral através da segunda banda de freqüência). Tais recursos são descritos em maiores detalhes, por exemplo, na publicação do Pedido de Patente US 2006/0282262 acima mencionada.
Em comparação com um sinal de fala vozeado, um sinal de fala não-vozeado tipicamente contém mais da informação que é importante para a compreensão da fala na banda alta. Dessa forma, pode ser desejável usar mais bits para encodificar a parte de banda alta de um quadro não-vozeado do que para encodificar a parte de banda alta de um quadro vozeado, mesmo para o caso em que o quadro vozeado foi codificado usando uma taxa de bits total mais alta. Em um exemplo de acordo com a tabela da Figura 18, um esquema de codificação NELP de banda larga de meia taxa ("esquema de codificação 2") é usado para codificar quadros não-vozeados. Em lugar de 16 bits como usado pelo esquema de codificação 1 para encodificar a parte de banda alta de um quadro vozeado, tal esquema de codificação usa 27 bits para encodificar a parte de banda alta do quadro: 12 bits para encodificar uma descrição do envelope espectral (por exemplo, na forma de um ou mais vetores LSP quantizados) e 15 bits para encodificar uma descrição do envelope temporal (por exemplo, na forma de um quadro de ganho quantizado e/ou formato de ganho) . Para encodificar a parte de banda estreita, o esquema de codificação 2 usa 47 bits: 28 bits para encodificar uma descrição do envelope espectral (por exemplo, na forma de um ou mais vetores LSP quantizados) e 19 bits para encodificar uma descrição do envelope temporal (por exemplo, como um quadro de ganho quantizado e/ou formato de ganho). 0 esquema descrito na Figura 18 usa um esquema de codificação NELP de banda estreita de um oitavo de taxa ("esquema de codificação 3") para encodificar quadros inativos com uma taxa de 16 bits por quadro, com 10 bits para encodificar uma descrição do envelope espectral (por exemplo, como um ou mais vetores LSP quantizados) e 5 bits para encodificar uma descrição do envelope temporal (por exemplo, como um quadro de ganho quantizado e/ou formato de ganho). Outro exemplo do esquema de codificação 3 usa 8 bits para encodificar a descrição do envelope espectral e 6 bits para encodificar a descrição do envelope temporal.
Um encodif icador de fala ou método para encodif icação de fala pode ser configurado para usar um conjunto de esquemas de codificação como apresentado na Figura 18 para efetuar uma implementação do método M130. Como exemplo, tal encodificador ou método pode ser configurado para usar o esquema de codificação 2 em lugar do esquema de codificação 3 para produzir o segundo quadro encodificado. Várias implementações de tal encodificador ou método podem ser configuradas para produzir resultados como apresentados nas Figuras 10A a 13B ao usar o esquema de codificação 1, em que a taxa de bits rH é indicada, o esquema de codificação 2, em que a taxa de bits rM é indicada, e o esquema de codificação 3 em que a taxa de bits rL é indicada.
Para os casos em que um conjunto de esquemas de codificação como mostrado na Figura 18 é usado para efetuar uma implementação do método M130, o encodificador ou método é configurado para usar o mesmo esquema de codificação (esquema 2) para produzir o segundo quadro encodificado e para produzir quadros não-vozeados encodifiçados. Em outros casos, um encodificador ou método configurado para efetuar uma implementação do método M100 pode ser configurado para encodificar o segundo quadro usando um esquema de codificação dedicado (isto é, um esquema de codificação em que o encodificador ou método não utilize também para encodificar quadros ativos).
Uma implementação do método M130 que usa um conjunto de esquemas de codificação como mostrado na Figura 18 é configurado para usar o mesmo modo de codificação (isto é, NELP) para produzir o segundo e terceiro quadros encodifiçados, apesar de ser possível o uso de versões do modo de codificação que diferem (por exemplo, em termos de como os ganhos são computados) para produzir os dois quadros encodifiçados. Outras configurações do método M100 em que o segundo e terceiro quadros encodifiçados são produzidos usando diferentes modos de codificação (por exemplo, usando um modo CELP ao invés de produzir o segundo quadro encodificado) são também expressamente aqui descritas e contempladas. Outras configurações do método M100 em que o segundo quadro encodificado é produzido usando um modo de banda larga de divisão de banda que usa diferentes modos de codificação para diferentes bandas de freqüência (por exemplo, CELP para uma banda inferior e NELP para uma banda superior, ou vice versa) são também expressamente aqui descritas e contempladas. Encodificadores de fala e métodos para encodificação de fala que são configurados para efetuar tais implementações do método M100 são também expressamente aqui descritos e contemplados.
Em uma aplicação típica de uma implementação do método M100, um arranjo de elementos lógicos (por exemplo, portas lógicas) é configurado para efetuar uma, mais de uma, ou mesmo a totalidade das diversas tarefas do método. Uma ou mais (possivelmente todas) das tarefas podem ser também implementadas como código (por exemplo, um ou mais conjuntos de instruções), incorporado em um produto de programa de computador (por exemplo, um ou mais meios para armazenagem de dados, tais como discos, cartões de memória flash ou outras não volátil), chips de memória de semicondutores, etc) que é legível e/ou executável por uma máquina (por exemplo, um computador) incluindo um arranjo de elementos lógicos (por exemplo, um processador, microprocessador, micro-controlador, ou outra máquina de estado finito). As tarefas de uma implementação do método M100 podem ser também efetuadas por mais de um de tais arranjos ou máquinas. Nestas ou em outras implementações, as tarefas podem ser efetuadas dentro de um dispositivo para comunicação sem fio, tal como um telefone celular ou outro dispositivo possuindo tal capacidade de comunicação. Tal dispositivo pode ser configurado para comunicar com redes comutadas por circuito e/ou comutadas por pacotes (por exemplo, usando um ou mais protocolos tais como o VoIP). Por exemplo, tal dispositivo pode incluir circuitos de RF configurados para transmissão dos quadros encodificados. A Figura 18B apresenta uma operação de encodificação de dois quadros sucessivos de um sinal de fala usando o método M300 de acordo com uma configuração geral que inclui as tarefas T120 e T130 como descrito aqui. (Apesar de tal implementação do método M300 processar apenas dois quadros, o uso dos rótulos "segundo quadro" e "terceiro quadro" é mantido por conveniência). No exemplo específico apresentado na Figura 18B, o terceiro quadro segue imediatamente após o segundo quadro. Em outras aplicações do método M300, o segundo e terceiro quadros podem ser separados no sinal de fala por um quadro inativo ou por uma série consecutiva de dois ou mais quadros inativos. Em outras aplicações do método M300, o terceiro quadro pode ser qualquer quadro inativo do sinal de fala que não seja o segundo quadro. Em outra aplicação geral do método M300, o segundo quadro pode ser ativo ou inativo. Em outra aplicação geral do método M300, o segundo quadro pode ser ativo ou inativo, e o terceiro quadro pode ser ativo ou inativo. A Figura 18C apresenta uma aplicação de uma implementação M310 do método M300 em que as tarefas T120 e T130 são implementadas como tarefas T122 e T132, respectivamente, como descrito aqui. Em outra implementação do método M300, a tarefa T120 é implementada como tarefa T124 como descrito aqui. Pode ser desejável configurar a tarefa T132 tal que o terceiro quadro encodificado não contenha qualquer descrição de um envelope espectral através da segunda banda de freqüência. A Figura 19A apresenta um diagrama em blocos de um equipamento 100 configurado para efetuar um método para encodificação de fala que inclui uma implementação do método M100 como aqui descrito e/ou uma implementação do método M300 como aqui descrito. O equipamento 100 inclui um detector de atividade de fala 110, um seletor de esquema de codificação 120, e um encodificador de fala 130. O detector de atividade de fala 110 é configurado para receber quadros de um sinal de fala e para indicar, para cada quadro a ser encodificado, se o quadro é ativo ou inativo. O seletor de esquema de codificação 120 é configurado para selecionar, em resposta às indicações do detector de atividade de fala 110, um esquema de codificação para cada quadro a ser encodificado. O encodificador de fala 130 é configurado para produzir, de acordo com os esquemas de codificação selecionados, quadros encodifiçados que são baseados nos quadros do sinal de fala. Um dispositivo de comunicação que inclui o equipamento 100, tal como um telefone celular, pode ser configurado para efetuar outras operações de processamento nos quadros encodifiçados, tais como correção de erros e/ou codificação de redundância, antes de transmiti-los para um canal de transmissão a cabo, sem fio ou óptico. O detector de atividade de fala 110 é configurado para indicar se cada quadro a ser codificado é ativo ou inativo. Tal indicação pode consistir de um sinal binário, tal que um estado do sinal indique que o quadro está ativo e o outro estado indica que o quadro está inativo. Alternativamente, a indicação pode consistir de um sinal possuindo mais do que dois estados, tal que este possa indicar mais de um tipo de quadro ativo e/ou inativo. Como exemplo, pode ser desejável configurar o detector 110 para indicar se um quadro ativo é vozeado ou não-vozeado, ou classificar os quadros ativos como de transição, vozeados, ou não-vozeados; e, possivelmente, classificar os quadros de transição como de transição ascendente ou transição descendente. Uma implementação correspondente do seletor de esquema de codificação 120 é configurada para selecionar, em resposta a tais indicações, um esquema de codificação para cada quadro a ser codificado. 0 detector de atividade de fala 110 pode ser configurado para indicar se um quadro é ativo ou inativo com base em uma ou mais características do quadro tais como a energia, razão de sinal para ruído, periodicidade, taxa de cruzamento de zero, distribuição espectral (como avaliada usando, por exemplo, um ou mais LSFs, LSPs e/ou coeficientes de reflexão), etc. Para gerar a indicação, o detector 110 pode ser configurado para efetuar, para cada de uma ou mais destas características, uma operação tal como comparar um valor ou magnitude de tal característica com um valor limite e/ou comparar a magnitude de uma mudança no valor ou magnitude de tal característica com um valor limite, em que o valor limite pode ser fixo ou adaptativo.
Uma implementação do detector de atividade de fala 110 pode ser configurada para avaliar a energia do quadro corrente e para indicar que o quadro é inativo se o valor de energia for menor do que (alternativamente, não maior do que) um valor limite. Tal detector pode estar configurado para calcular a energia do quadro como uma soma dos quadrados das amostras do quadro. Outra implementação do detector de atividade de fala 110 pode ser configurada para avaliar a energia do quadro corrente em cada uma dentre uma banda de freqüência baixa e uma banda de freqüência alta, e para indicar que o quadro é inativo se o valor de energia para cada banda for menor do que (alternativamente, não maior do que) um respectivo valor limite. Tal detector pode ser configurado para calcular a energia do quadro em uma banda ao aplicar um filtro passa banda ao quadro e calcular uma soma dos quadrados das amostras do quadro filtrado.
Como acima mencionado, uma implementação do detector de atividade de fala 110 pode ser configurada para usar um ou mais valores limite. Cada um destes valores pode ser fixo ou adaptativo. Um valor limite adaptativo pode ser baseado em um ou mais fatores, tais como o nível de ruído de um quadro ou banda, uma razão de sinal para ruído de um quadro ou banda, uma taxa de encodificação desejada, etc. Como exemplo, os valores limite usados para cada uma dentre uma banda de freqüência baixa (por exemplo, 300 Hz a 2 kHz) e uma banda de freqüência alta (por exemplo, 2 kHz a 4 kHz) são baseados em uma estimativa do nível de ruído de fundo nesta banda para o quadro anterior, uma razão de sinal para ruído nesta banda para o quadro anterior, e uma taxa de dados média desejada. 0 seletor de esquema de codificação 120 é configurado para selecionar, em resposta às indicações do detector de atividade de fala 110, um esquema de codificação para cada quadro a ser codificado. A seleção do esquema de codificação pode ser baseada em uma indicação do detector de atividade de fala 110 para o quadro corrente e/ou na indicação proveniente do detector de atividade de fala 110 para cada um dentre um ou mais quadros anteriores. Em alguns casos, a seleção do esquema de codificação é também baseada na indicação do detector de atividade de fala 110 para cada um dentre um ou mais quadros subseqüentes. A Figura 20A apresenta um fluxograma de testes que podem ser efetuados por uma implementação do seletor de esquema de codificação 120 para obter um resultado como mostrado na Figura 10A. Neste exemplo, o seletor 120 é configurado para selecionar um esquema de codificação 1 de taxa mais alta para quadros vozeados, um esquema de codificação 3 de taxa mais baixa para quadros inativos, e um esquema de codificação 2 de taxa intermediária para quadros não-vozeados e para o primeiro quadro inativo após uma transição de quadros ativos para quadros inativos. Em tal aplicação, os esquemas de codificação 1 a 3 podem estar de acordo com os três esquemas apresentados na Figura 18.
Uma implementação alternativa do seletor de esquema de codificação 120 pode ser configurada para operar de acordo com o diagrama de estado da Figura 20B para obter um resultado equivalente. Nesta figura, o rótulo "A" indica uma transição de estado em resposta a um quadro ativo, o rótulo "I" indica uma transição de estado em resposta a um quadro inativo, e os rótulos dos vários estados indicam o esquema de codificação selecionado para o quadro corrente. Neste caso, o rótulo de estado "esquema 1/2" indica que o esquema de codificação 1 ou o esquema de codificação 2 é selecionado para o quadro ativo corrente, dependendo de se o quadro é vozeado ou não-vozeado. Os técnicos na área notarão que em uma implementação alternativa, tal estado pode ser configurado tal que o seletor de esquema de codificação suporte apenas um esquema de codificação para quadros ativos (por exemplo, o esquema de codificação 1) . Em outra implementação alternativa, tal estado pode ser configurado tal que o seletor de esquema de codificação selecione dentre mais do que dois esquemas de codificação diferentes para quadros ativos (por exemplo, selecione diferentes esquemas de codificação para quadros vozeados, não-vozeados e de transição).
Como acima descrito com referência à Figura 12B, pode ser desejável que um encodif icador de fala codifique um quadro inativo a uma taxa de bits mais alta r2 apenas se o quadro ativo mais recente for parte de um surto de voz possuindo pelo menos um comprimento mínimo. Uma implementação do seletor de esquema de codificação 120 pode ser configurada para operar de acordo com o diagrama de estado da Figura 21A para obter o resultado como mostrado na Figura 12B. Neste exemplo específico, o seletor é configurado para selecionar o esquema de codificação 2 para um quadro inativo apenas se o quadro imediatamente seguinte a uma seqüência de quadros ativos consecutivos possui um comprimento de pelo menos três quadros. Neste caso, os rótulos de estado "esquema 1/2" indicam que o esquema de codificação 1 ou o esquema de codificação 2 é selecionado para o quadro ativo corrente, dependendo de se o quadro é vozeado ou não-vozeado. Os técnicos na área notarão que em uma modalidade alternativa, estes estados podem ser configurados de forma que o seletor de esquema de codificação suporte apenas um esquema de codificação para quadros ativos (por exemplo, esquema de codificação 1) . Em outra modalidade alternativa, tais estados podem ser configurados de forma que o seletor de esquema de codificação seleciona dentre mais do que dois esquemas de codificação diferentes para quadros ativos (por exemplo, seleciona diferentes esquemas para quadros vozeados, não-vozeados e de transição).
Como acima descrito com referência às Figuras 10B e 12A, pode ser desejável que um encodif icador de fala aplique um hangover (isto é, continue com o uso de uma taxa de bits mais alta por um ou mais quadros inativos após uma transição de quadros ativos para quadros inativos). Uma implementação do seletor de esquema de codificação 120 pode ser configurada para operar de acordo com o diagrama de estado da Figura 21B para aplicar um hangover possuindo um comprimento de três quadros. Nesta figura, os estados de hangover são marcados como "esquema 1(2)" para denotar que o esquema de codificação 1 ou o esquema de codificação 2 é indicado para o quadro inativo corrente, dependendo do esquema selecionado para o quadro ativo mais recente. Os técnicos na área notarão que em uma modalidade alternativa, o seletor de esquema de codificação pode suportar apenas um esquema de codificação para quadros ativos (por exemplo, esquema de codificação 1). Em outra modalidade alternativa, os estados de hangover podem ser configurados de modo a continuar indicando um dentre mais do que dois esquemas de codificação diferentes (por exemplo, para um caso em que diferentes esquemas sejam suportados para quadros vozeados, não-vozeados e de transição). Em outra modalidade alternativa, um ou mais dos estados de hangover podem ser configurados para indicar um esquema fixo (por exemplo, esquema 1) mesmo se um esquema diferente (por exemplo, esquema 2) tiver sido selecionado para o quadro ativo mais recente.
Como acima descrito com referência às Figuras 11B e 12A, pode ser desejável que um encodif icador de fala produza o segundo quadro encodificado com base nas informações mediadas entre mais do que um quadro inativo do sinal de fala. Uma implementação do seletor de esquema de codificação 120 pode ser configurada para operar de acordo com o diagrama de estado da Figura 21C para suportar tal resultado. Neste exemplo especifico, o seletor é configurado para ordenar ao codificador para produzir o segundo quadro encodificado com base nas informações mediadas entre três quadros inativos. O estado rotulado como "esquema 2 (start avg)" indica ao encodificador que o quadro corrente deve ser codificado com o esquema 2 e também usado para calcular uma nova média (por exemplo, uma média das descrições de envelopes espectrais). O estado marcado como "esquema 2 (for avg)" indica ao encodificador que o quadro corrente deve ser encodificado com o esquema 2 e também usado para continuar o cálculo da média. O estado marcado como "enviar avg, esquema 2" indica ao encodificador que o quadro corrente deve ser usado para completar a média, que deve ser então enviada usando o esquema 2. Os técnicos na área notarão que modalidades alternativas do seletor de esquema de codificação 120 podem estar configuradas para usar diferentes designações de esquemas e/ou indicar a média de informações através de um número diferente de quadros inativos. A Figura 19B apresenta um diagrama em blocos de uma implementação 132 do encodif icador de fala 130 que inclui um calculador de descrição de envelope espectral 140, um calculador de descrição de informação temporal 150, e um formatador 160. O calculador de descrição de envelope espectral 140 é configurado para calcular uma descrição de um envelope espectral para cada quadro a ser encodificado. O calculador de descrição de informação temporal 150 é configurado para calcular uma descrição de informação temporal para cada quadro a ser codificado. O formatador 160 é configurado para produzir um quadro encodificado que inclui a descrição calculada de um envelope espectral e a descrição calculada de informação temporal. O formatador 160 pode ser configurado para produzir o quadro encodificado de acordo com um formato de pacote desejado, possivelmente usando diferentes formatos para diferentes esquemas de codificação. 0 formatador 160 pode ser configurado para produzir o quadro encodificado para incluir informações adicionais, tais como um conjunto de um ou mais bits que identifica o esquema de codificação, ou a taxa ou modo de codificação, de acordo com o qual o quadro é codificado (também designado como um "índice de codificação"). 0 calculador de descrição de envelope espectral 140 é configurado para calcular, de acordo com o esquema de codificação indicado pelo seletor de esquema de codificação 120, uma descrição de um envelope espectral para cada quadro a ser codificado. A descrição é baseada no quadro corrente e pode ser também baseada em pelo menos uma parte de um ou mais outros quadros. Como exemplo, o calculador 140 pode ser configurado para aplicar uma janela que estende em um ou mais quadros adjacentes e/ou para calcular uma média de descrições (por exemplo, uma média de vetores LSP) de dois ou mais quadros. O calculador 140 pode ser configurado para calcular a descrição de um envelope espectral para o quadro efetuando uma análise espectral, tal como uma análise LPC. A Figura 19C apresenta um diagrama em blocos de uma implementação 142 do calculador de descrição de envelope espectral 140 que inclui um módulo de análise LPC 170, um bloco de transformada 180, e um quantizador 190. O módulo de análise 170 é configurado para efetuar uma análise LPC do quadro e para produzir um conjunto correspondente de parâmetros de modelo. Como exemplo, o módulo de análise 170 pode ser configurado para produzir um vetor de coeficientes LPC, tais como coeficientes de filtro ou coeficientes de reflexão. O módulo de análise 170 pode ser configurado para efetuar a análise através de uma janela que inclui partes de um ou mais quadros vizinhos. Em alguns casos, o módulo de análise 170 é configurado tal que a ordem da análise (por exemplo, o número de elementos no vetor de coeficientes) é selecionada de acordo com o esquema de codificação indicado pelo seletor de esquema de codificação 120. O bloco de transformada 180 é configurado para converter o conjunto de parâmetros de modelo para uma forma que seja mais eficiente para quantização. Como exemplo, o bloco de transformada 180 pode ser configurado para converter um vetor de coeficientes LPC para um conjunto de LSPs. Em alguns casos, o bloco de transformada 180 é configurado para converter o conjunto de coeficientes LPC para uma forma particular de acordo com o esquema de codificação indicado pelo seletor de esquema de codificação 120. O quantizador 190 é configurado para produzir a descrição de um envelope espectral na forma quantizada ao quantizar o conjunto convertido de parâmetros de modelo. O quantizador 190 pode ser configurado para quantizar o conjunto convertido ao truncar elementos do conjunto convertido e/ou ao selecionar um ou mais índices da tabela de quantização para representar o conjunto convertido. Em alguns casos, o quantizador 190 é configurado para quantizar o conjunto convertido para uma forma e/ou comprimento particulares de acordo com o esquema de codificação indicado pelo seletor de esquema de codificação 120 (por exemplo, como descrito acima com referência à Figura 18) . O calculador de descrição de informação temporal 150 é configurado para calcular uma descrição de informação temporal de um quadro. A descrição pode ser também baseada na informação temporal de pelo menos parte de um ou mais outros quadros. Como exemplo, o calculador 150 pode ser configurado para calcular a descrição através de uma janela que estende para um ou mais quadros adjacentes e/ou para calcular uma média de descrições de dois ou mais quadros. 0 calculador de descrição de informação temporal 150 pode ser configurado para calcular a descrição de informação temporal possuindo uma forma e/ou comprimento particulares de acordo com o esquema de codificação indicado pelo seletor de esquema de codificação 120. Como exemplo, o calculador 150 pode ser configurado para calcular, de acordo com o esquema de codificação selecionado, uma descrição de informação temporal que inclui um ou ambos dentre (A) um envelope temporal do quadro e (B) um sinal de excitação do quadro, que pode incluir uma descrição de um componente de passo (por exemplo, intervalo de passo (também designado como retardo), ganho de passo e/ou uma descrição de um protótipo). 0 calculador 150 pode ser configurado para calcular uma descrição de informação temporal que inclui um envelope temporal do quadro (por exemplo, um valor de quadro de ganho e/ou valores de formato de ganho). Como exemplo, o calculador 150 pode ser configurado para emitir tal descrição em resposta a uma indicação de um esquema de codificação NELP. Como descrito aqui, o cálculo de tal descrição pode incluir calcular a energia do sinal durante um quadro ou sub-quadro como uma soma de quadrados das amostras de sinal, o cálculo da energia do sinal durante uma janela que inclui partes de outros quadros e/ou sub-quadros, e/ou a quantização do envelope temporal calculado. O calculador 150 pode ser configurado para calcular uma descrição de informação temporal de um quadro que inclui informação relacionada ao passo ou periodicidade do quadro. Como exemplo, o calculador 150 pode ser configurado para emitir uma descrição que inclui informação de passo do quadro, tais como retardo de passo e/ou ganho de passo, em resposta a uma indicação de um esquema de codificação CELP. Alternativa ou adicionalmente, o calculador 150 pode ser configurado para emitir uma descrição que inclui uma forma de onda periódica (também designada como "protótipo") em resposta a uma indicação de um esquema de codificação PPP. O cálculo de informação de passo e/ou protótipo inclui tipicamente extrair tais informações a partir do residual LPC e pode incluir também a combinação de informações de protótipo e/ou passo provenientes do quadro corrente com tais informações de um ou mais quadros anteriores. 0 calculador 150 pode também ser configurado para quantizar tal descrição de informação temporal (por exemplo, como um ou mais índices da tabela). O calculador 150 pode ser configurado para calcular uma descrição da informação temporal de um quadro que inclui um sinal de excitação. Como exemplo, o calculador 150 pode ser configurado para produzir uma descrição que inclui um sinal de excitação em resposta a uma indicação de um esquema de codificação CELP. Calcular um sinal de excitação tipicamente inclui derivar este sinal do residual LPC e pode também incluir combinar informações provenientes do quadro corrente com tais informações provenientes de um ou mais quadros anteriores. 0 calculador 150 pode ser também configurado para quantizar tal descrição de informação temporal (por exemplo, como um ou mais índices da tabela) . Para os casos em que o encodificador de fala 132 suporta um esquema de codificação CELP relaxado (r-CELP) , o calculador 150 pode ser configurado para regularizar o sinal de excitação. A Figura 22A apresenta um diagrama em blocos de uma implementação 134 do encodif icador de fala 132 que inclui uma implementação 152 do calculador de descrição de informação temporal 150. 0 calculador 152 é configurado para calcular uma descrição de informação temporal para um quadro (por exemplo, um sinal de excitação, passo e/ou informações de protótipo) que é baseada em uma descrição de um envelope espectral do quadro como calculado pelo calculador de descrição de envelope espectral 140. A Figura 22B apresenta um diagrama em blocos de uma implementação 154 do calculador de descrição de informação temporal 152 que é configurado para calcular uma descrição da informação temporal com base em um residual LPC para o quadro. Neste exemplo, o calculador 154 é disposto para receber a descrição de um envelope espectral do quadro como calculada pelo calculador de descrição de envelope espectral 142. O dequantizador A10 é configurado para dequantizar a descrição, e o bloco de transformada inversa A20 é configurado para aplicar uma transformada inversa à descrição dequantizada para obter um conjunto de coeficientes LPC. O filtro branqueador A30 é configurado de acordo com o conjunto de coeficientes LPC e disposto para filtrar o sinal de fala para produzir um residual LPC. O quantizador A40 é configurado para quantizar uma descrição de informação temporal para o quadro (por exemplo, como um ou mais índices da tabela) que é baseada no residual LPC e é também possivelmente baseada nas informações de passo para o quadro e/ou informações temporais de um ou mais quadros anteriores.
Pode ser desejável usar uma implementação do encodif icador de fala 132 para encodificar quadros de um sinal de fala de banda larga de acordo com um esquema de codificação de divisão de banda. Neste caso, o calculador de descrição de envelope espectral 140 pode ser configurado para calcular as várias descrições de envelopes espectrais de um quadro através das respectivas bandas de freqüência de forma serial e/ou em paralelo e possivelmente de acordo com diferentes taxas e/ou modos de codificação. O calculador de descrição de informação temporal 150 pode ser também configurado para calcular descrições de informação temporal do quadro através das várias bandas de freqüências em série e/ou em paralelo e possivelmente de acordo com diferentes taxas e/ou modos de codificação. A Figura 23A apresenta um diagrama em blocos de uma implementação 102 do equipamento 100 que é configurado para encodificar um sinal de fala de banda larga de acordo com um esquema de codificação de divisão de banda. O equipamento 102 inclui um banco de filtros A50 que é configurado para filtrar o sinal de fala para produzir um sinal de sub-banda contendo conteúdo do sinal de fala através da primeira banda de freqüência (por exemplo, um sinal de banda estreita) e um sinal de sub-banda contendo conteúdo do sinal de fala através da segunda banda de freqüência (por exemplo, um sinal de banda alta). Exemplos específicos de tais bancos de filtros são descritos, por exemplo, na publicação de Pedido de Patente US 2007/088558 (Vos et al.), "SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING" publicada em 19 de abril de 2007. Como exemplo, o banco de filtros A50 pode incluir um filtro passa baixa configurado para filtrar o sinal de fala para produzir um sinal de banda estreita e um filtro passa alta configurado para filtrar o sinal de fala para produzir um sinal de banda alta. O banco de filtros A50 pode também incluir um sub-amostrador configurado para reduzir a taxa de amostragem do sinal de banda estreita e/ou do sinal de banda alta de acordo com um respectivo fator de dizimação desejado, tal como descrito, por exemplo, na publicação do Pedido de Patente US 2007/088558 (Vos et al.). O equipamento 102 pode ser também configurado para efetuar uma operação de supressão de ruído em pelo menos no sinal de banda alta, tal como uma operação de supressão de rajadas de banda alta como descrito na publicação de Pedido de Patente US 2007/088541 (Vos et al.), "SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND BURST SUPPRESSION", publicada em 19 de abril de 2007. 0 equipamento 102 inclui também uma implementação 136 do codificador de fala 130 que é configurado para encodificar os sinais de sub-banda separados de acordo com um esquema de codificação selecionado pelo seletor de esquema de codificação 120. A Figura 23B apresenta um diagrama em blocos de uma implementação 138 do encodificador de fala 136. 0 encodificador 138 inclui também um calculador de envelope espectral 140a (por exemplo, um caso do calculador 142) e um calculador de informação temporal 150a (por exemplo, um caso dos calculadores 152 ou 154) que são configurados para calcular descrições de envelopes espectrais e informação temporal, respectivamente, com base em um sinal de banda estreita produzido pela banda de filtro A50 e de acordo com o esquema de codificação selecionado. O encodificador 138 também inclui um calculador de envelope espectral 140b (por exemplo, um caso do calculador 142) e um calculador de informação temporal 150b (por exemplo, um caso dos calculadores 152 ou 154) que são configurados para produzir descrições calculadas de envelopes espectrais e informações temporais, respectivamente, com base em um sinal de banda alta produzido pela banda de filtro A50 e de acordo com o esquema de codificação selecionado. O encodificador 138 também inclui uma implementação 162 do formatador 160 configurada para produzir um quadro encodificado que inclui as descrições calculadas de envelopes espectrais e informações temporais.
Como acima mencionado, uma descrição de informação temporal para a parte de banda alta de um sinal de fala de banda larga pode ser baseada em uma descrição de informação temporal para a parte de banda estreita do sinal. A Figura 24A apresenta um diagrama em blocos de uma implementação correspondente 139 do codificador de fala de banda larga 136. Como o codificador de fala 138 acima descrito, o encodificador 139 inclui calculadores de descrição de envelope espectral 140a e 140b que são dispostos para calcular as respectivas descrições de envelopes espectrais. O codificador de fala 139 inclui também um caso 152a do calculador de descrição de informação temporal 152 (por exemplo, calculador 154) que é disposto para calcular uma descrição de informação temporal com base na descrição calculada de um envelope espectral para o sinal de banda estreita. O encodificador de fala 139 também inclui uma implementação 156 do calculador de descrição de informação temporal 150. O calculador 156 é configurado para calcular uma descrição da informação temporal para o sinal de banda alta que é baseada na descrição de informação temporal para o sinal de banda estreita. A Figura 24B apresenta um diagrama em blocos de uma implementação 158 do calculador de descrição temporal 156. 0 calculador 158 inclui um gerador de sinal de excitação de banda alta A60 que é configurado para gerar um sinal de excitação de banda alta com base em um sinal de excitação de banda estreita como produzido pelo calculador 152a. Como exemplo, o gerador A60 pode ser configurado para efetuar uma operação tal como uma extensão espectral, extensão harmônica, extensão não linear, dobragem espectral, e/ou translação espectral no sinal de excitação de banda estreita (ou um ou mais componentes deste) para gerar o sinal de excitação de banda alta. Adicional ou alternativamente, o gerador A60 pode ser configurado para efetuar a conformação de amplitude e/ou espectral de ruído aleatório (por exemplo, um sinal de ruído Gaussiano pseudo-aleatório) para gerar o sinal de excitação de banda alta. Para um caso em que o gerador A60 usa um sinal de ruído pseudo-aleatório, pode ser desejável sincronizar a geração deste sinal pelo encodificador e o decodificador. Tais métodos e equipamentos para gerar o sinal de excitação de banda alta são descritos em maiores detalhes na publicação de Pedido de Patente US 2007/0088542 (Vos et al. ), "SYSTEMS, METHODS, AND APPARATUS FOR WIDEBAND SPEECH CODING", publicada em 19 de abril de 2007. No exemplo da Figura 24B, o gerador A60 é disposto para receber um sinal de excitação de banda estreita quantizado. Em outro exemplo, o gerador A60 é disposto para receber o sinal de excitação de banda estreita em outra forma (por exemplo, em uma forma de pré-quantização ou dequantizada). O calculador 158 também inclui um filtro de síntese A70 configurado para gerar um sinal de banda alta sintetizado que é baseado no sinal de excitação de banda alta e em uma descrição de um envelope espectral do sinal de banda alta (por exemplo, como produzido pelo calculador 140b). O filtro A70 é tipicamente configurado de acordo com um conjunto de valores dentro da descrição de um envelope espectral do sinal de banda alta (por exemplo, um ou mais vetores de coeficientes LSP ou LPC) para produzir o sinal de banda alta sintetizado em resposta ao sinal de excitação de banda alta. No exemplo da Figura 24B, o filtro de síntese A70 é disposto para receber uma descrição quantizada de um envelope espectral do sinal de banda alta e pode ser adequadamente configurado para incluir um dequantizador e possivelmente um bloco de transformada inversa. Como outro exemplo, o filtro A70 é disposto para receber a descrição de um envelope espectral do sinal de banda alta em outra forma (por exemplo, em uma forma de pré-quantização ou dequantizada). O calculador 158 inclui também um calculador de fator de ganho de banda alta A80 que é configurado para calcular uma descrição de um envelope temporal do sinal de banda alta com base em um envelope temporal do sinal de banda alta sintetizado. 0 calculador A80 pode ser configurado para calcular tal descrição para incluir uma ou mais distâncias entre um envelope temporal do sinal de banda alta e o envelope temporal do sinal de banda alta sintetizado. Como exemplo, o calculador A80 pode ser configurado para calcular tal distância como um valor de quadro de ganho (por exemplo, como uma razão entre medidas de energia de quadros correspondentes dos dois sinais, ou como uma raiz quadrada de tal razão) . Adicionalmente ou como alternativa, o calculador A80 pode ser configurado para calcular o número de tais distâncias como valores de formato de ganho (por exemplo, como razões entre medidas de energia de sub-quadros correspondentes dos dois sinais, ou como raízes quadradas de tais razões). No exemplo da Figura 24B, o calculador 158 inclui também um quantizador A90 configurado para quantizar a descrição calculada de um envelope temporal (por exemplo, como um ou mais índices de livro-código). Vários recursos e implementações dos elementos do calculador 158 são descritos, por exemplo, na publicação de Pedido de Patente US2007/0088542 (Vos et al.) acima mencionada.
Os vários elementos de uma implementação do equipamento 100 podem ser incorporados em qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação desejada. Como exemplo, tais elementos podem ser produzidos como dispositivos eletrônicos e/ou ópticos residentes, por exemplo, no mesmo chip ou em dois ou mais chips em um conjunto de chips (chipset). Um exemplo de tal dispositivo consiste de um arranjo fixo ou programável de elementos lógicos, tais como transistores ou portas lógicas, quaisquer destes elementos podem ser implementados como um ou mais destes arranjos. Quaisquer dois ou mais, ou mesmo todos, esses elementos podem ser implementados dentro do mesmo arranjo ou arranjos. Tal arranjo ou arranjos podem ser implementados em um ou mais chips (por exemplo, dentro de um conjunto de chips incluindo dois ou mais chips).
Um ou mais elementos das várias implementações do equipamento 100 aqui descrito podem ser também implementados no todo ou em parte como um ou mais conjuntos de instruções dispostos para serem executados em um ou mais arranjos fixos ou programáveis de elementos lógicos, tais como microprocessadores, processadores embutidos, núcleos IP, processadores de sinal digital, FPGAs (arranjos de porta programáveis em campo), ASSPs (produtos padrão de aplicação específica) e circuitos integrados de aplicação específica (ASICs) . Qualquer um dos vários elementos de uma implementação do equipamento 100 pode ser também incorporado como um ou mais computadores (por exemplo, máquinas incluindo um ou mais arranjos programados para executar em um ou mais conjuntos ou seqüências de instruções, também designados como "processadores"), e quaisquer dois ou mais, ou mesmo todos, destes elementos podem ser implementados dentro do mesmo computador ou computadores.
Os vários elementos de uma implementação do equipamento 100 podem ser incluídos em um dispositivo para comunicação sem fio, tal como um telefone celular ou outro dispositivo possuindo tal capacidade de comunicação. Tal dispositivo pode ser configurado para comunicação com redes comutadas por circuito e/ou comutadas por pacote (por exemplo, usando um ou mais protocolos tal como VoIP) . Tal dispositivo pode ser configurado para efetuar operações em um sinal portando os quadros encodifiçados, tais como intercalação, puncionamento, codificação convolucional, codificação de correção de erros, codificação de uma ou mais camadas de protocolos de rede (por exemplo, Ethernet, TCP/IP, CDMA 2000), modulação de rádio freqüência (RF) , e/ou transmissão RF. É possível para um ou mais elementos de uma implementação do equipamento 100 ser usado para efetuar tarefas ou executar outros conjuntos de instruções que não estão diretamente relacionados com uma operação do equipamento, tal como uma tarefa relacionada a outra operação de um dispositivo ou sistema em que o equipamento esteja embutido. É também possível que um ou mais elementos de uma implementação do equipamento 100 possuam uma estrutura em comum (por exemplo, um processador usado para executar partes do código correspondentes para diferentes elementos em momentos diferentes, um conjunto de instruções executadas para efetuar tarefas correspondendo a diferentes elementos em diferentes momentos, ou uma disposição de dispositivos eletrônicos e/ou ópticos efetuando operações para diferentes elementos em momentos diferentes). Como exemplo, o detector de atividade de fala 110, o seletor de esquema de codificação 120, e o encodif icador de fala 130 são implementados como conjuntos de instruções dispostos para executar no mesmo processador. Como outro exemplo, os calculadores de descrição de envelope espectral 140a e 140b são implementados como o mesmo conjunto de instruções executado em momentos diferentes. A Figura 25A apresenta um fluxograma de um método M200 de processamento de um sinal de fala encodificado de acordo com uma configuração geral. 0 método M200 é configurado para receber informações provenientes de dois quadros encodificados e para produzir descrições de envelopes espectrais de dois quadros correspondentes de um sinal de fala. Com base nas informações provenientes de um primeiro quadro encodificado (também designado como o quadro encodificado de "referência"), a tarefa T210 obtém uma descrição de um envelope espectral de um primeiro quadro do sinal de fala através da primeira e segunda bandas de freqüência. Com base em informações de um segundo quadro encodificado, a tarefa T220 obtém uma descrição de um envelope espectral de um segundo quadro do sinal de fala (também designado como o quadro "alvo") através da primeira banda de freqüência. Com base nas informações do quadro encodificado de referência, a tarefa T230 obtém uma descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência. A Figura 26 apresenta uma aplicação do método M200 que recebe informações de dois quadros encodifiçados e produz descrições de envelopes espectrais de dois quadros inativos correspondentes de um sinal de fala. Com base nas informações do quadro encodificado de referência, a tarefa T210 obtém uma descrição de um envelope espectral do primeiro quadro inativo através da primeira e segunda bandas de freqüência. Tal descrição pode ser uma única descrição que se estende através de ambas as bandas de freqüência, ou esta pode incluir descrições separadas que se estendem, cada uma, através de uma das respectivas bandas de freqüência. Com base nas informações do segundo quadro encodificado, a tarefa T220 obtém uma descrição de um envelope espectral do quadro inativo alvo através da primeira banda de freqüência (por exemplo, através de uma faixa de banda estreita) . Com base nas informações do quadro encodificado de referência, a tarefa T230 obtém uma descrição de um envelope espectral do quadro inativo alvo através da segunda banda de freqüência (por exemplo, através de uma faixa de banda alta). A Figura 2 6 apresenta um exemplo em que as descrições dos envelopes espectrais possuem ordens LPC, e em que a ordem LPC da descrição do envelope espectral do quadro alvo através da segunda banda de freqüência é menor do que a ordem LPC da descrição do envelope espectral do quadro alvo através da primeira banda de freqüência. Outros exemplos incluem casos em que a ordem LPC da descrição do envelope espectral do quadro alvo através da segunda banda de freqüência é pelo menos 50 %, pelo menos 60 %, não mais do que 75 %, não mais do que 80 %, igual e maior do que a ordem LPC da descrição do envelope espectral do quadro alvo através da primeira banda de freqüência. Em um exemplo específico, as ordens LPC das descrições do envelope espectral do quadro alvo através da primeira e segunda bandas de freqüência são, respectivamente, dez e seis. A Figura 26 também apresenta um exemplo em que a ordem LPC da descrição do envelope espectral do primeiro quadro inativo através da primeira e segunda bandas de freqüência é igual à soma das ordens LPC das descrições do envelope espectral do quadro alvo através da primeira e segunda bandas de freqüência. Como outro exemplo, a ordem LPC da descrição do envelope espectral do primeiro quadro inativo através da primeira e segunda bandas de freqüência pode ser maior ou menor do que a soma das ordens LPC das descrições dos envelopes espectrais do quadro alvo através da primeira e segunda bandas de freqüência.
Cada uma das tarefas T210 e T220 pode ser configurada para incluir uma ou ambas dentre as seguintes duas operações: analisar o quadro encodificado para extrair uma descrição quantizada de um envelope espectral, e dequantizar uma descrição quantizada de um envelope espectral para obter um conjunto de parâmetros de um modelo de codificação para o quadro. As implementações típicas das tarefas T210 e T220 incluem estas duas operações, tal que cada tarefa processa um respectivo quadro encodificado para produzir uma descrição de um envelope espectral na forma de um conjunto de parâmetros de modelo (por exemplo, um ou mais vetores de coeficientes de LSF, LSP, ISF, ISP e/ou LPC). Em um exemplo específico, o quadro encodificado de referência possui um comprimento de 80 bits e o segundo quadro encodificado possui um comprimento de dezesseis bits. Em outros exemplos, o comprimento do segundo quadro encodificado não é maior do que 20, 25, 30, 40, 50, ou 60 % do comprimento do quadro encodificado de referência. O quadro encodificado de referência pode incluir uma descrição quantizada de um envelope espectral através da primeira e segunda bandas de freqüência, e o segundo quadro encodificado pode incluir uma descrição quantizada de um envelope espectral através da primeira banda de freqüência. Em um exemplo particular, a descrição quantizada de um envelope espectral através da primeira e segunda bandas de freqüência incluída no quadro encodificado de referência possui um comprimento de 40 bits, e a descrição quantizada de um envelope espectral através da primeira banda de freqüência incluída no segundo quadro encodificado possui um comprimento de 10 bits. Em outros exemplos, o comprimento da descrição quantizada de um envelope espectral através da primeira banda de freqüência incluída no segundo quadro encodificado não é maior do que 25, 30, 40, 50, ou 60 %, do comprimento da descrição quantizada de um envelope espectral através da primeira e segunda bandas de freqüência incluída no quadro encodificado de referência.
As tarefas T210 e T220 podem ser também implementadas para produzir descrições de informações temporais com base nos respectivos quadros encodificados. Como exemplo, uma ou ambas dentre tais tarefas podem ser configuradas para obtenção, com base nas informações do respectivo quadro encodificado, uma descrição de um envelope temporal, uma descrição de um sinal de excitação, e/ou uma descrição de informação de passo. Como na obtenção da descrição de um envelope espectral, tal tarefa pode incluir analisar uma descrição quantizada de informação temporal do quadro encodificado e/ou dequantizar uma descrição quantizada de informação temporal. As implementações do método M200 podem ser também configuradas tal que a tarefa T210 e/ou a tarefa T220 obtenham também a descrição de um envelope espectral e/ou a descrição de informação temporal com base na informação de um ou mais quadros encodificados, tais como informações de um ou mais quadros encodificados anteriores. Como exemplo, uma descrição de sinal de excitação e/ou a informação de passo de um quadro é tipicamente baseada na informação de quadros anteriores. 0 quadro encodificado de referência pode incluir uma descrição quantizada de informação temporal para a primeira e segunda bandas de freqüência, e o segundo quadro encodificado pode incluir uma descrição quantizada de informação temporal para a primeira banda de freqüência. Como exemplo específico, uma descrição quantizada de informação temporal para a primeira e segunda bandas de freqüência incluída no quadro encodificado de referência possui um comprimento de 34 bits, e uma descrição quantizada de informação temporal para a primeira banda de freqüência incluída no segundo quadro encodificado possui um comprimento de cinco bits. Como outros exemplos, o comprimento da descrição quantizada de informação temporal para a primeira banda de freqüência incluída no segundo quadro encodificado não é maior do que 15, 20, 25, 30, 40, 50, ou 60% do comprimento da descrição quantizada de informação temporal para a primeira e segunda bandas de freqüência incluída no quadro encodificado de referência. O método M200 é tipicamente efetuado como parte de um método maior para decodificação de fala, e os decodificadores de fala e métodos para decodificação de fala que são configurados para efetuar o método M200 são expressamente aqui descritos e contemplados. Um codificador de fala pode ser configurado para efetuar uma implementação do método M100 no encodificador e para efetuar uma implementação do método M200 no decodificador. Neste caso, o "segundo quadro" como encodificado pela tarefa T120 corresponde ao quadro encodificado de referência que fornece a informação processada pelas tarefas T210 e T230, enquanto o "terceiro quadro" como encodificado pela tarefa T130 corresponde ao quadro encodificado que fornece a informação processada pela tarefa T220. A Figura 27A ilustra esta relação entre os métodos M100 e M200 usando o exemplo de uma série de quadros consecutivos encodifiçados usando o método M100 e decodificado usando o método M200. Alternativamente, um codificador de fala pode ser configurado para efetuar uma implementação do método M300 no encodificador e efetuar uma implementação do método M200 no decodificador. A Figura 27B ilustra esta relação entre os métodos M300 e M200 usando o exemplo de um par de quadros consecutivos encodifiçados usando o método M300 e decodificados usando o método M200.
No entanto, deve ser notado que o método M200 pode ser também aplicado para processar informações dos quadros encodifiçados que não são consecutivos. Como exemplo, o método M200 pode ser aplicado tal que as tarefas T220 e T230 processem informações dos respectivos quadros encodifiçados que não são consecutivos. 0 método M200 é tipicamente implementado tal que a tarefa T230 interaja em relação a um quadro encodificado de referência, e a tarefa T220 interaja em uma série de quadros inativos encodifiçados que seguem o quadro encodificado de referência, para produzir uma série de quadros alvo sucessivos correspondente. Tal interação pode continuar, por exemplo, até que um novo quadro encodificado de referência seja recebido, e/ou até que um quadro ativo encodificado seja recebido, e/ou até que um número máximo de quadros alvo tenha sido produzido. A tarefa T220 é configurada para obter a descrição de um envelope espectral do quadro alvo através da primeira banda de freqüência com base, pelo menos principalmente, na informação do segundo quadro encodificado. Como exemplo, a tarefa T220 pode ser configurada para obter a descrição de um envelope espectral do quadro alvo através da primeira banda de freqüência baseada inteiramente na informação do segundo quadro encodificado. Alternativamente, a tarefa T220 pode ser configurada para obter a descrição de um envelope espectral do quadro alvo através da primeira banda de freqüência também com base em outras informações, tais como informações de um ou mais quadros encodificados anteriores. Neste caso, a tarefa T220 é configurada para ponderar as informações do segundo quadro encodificado de forma mais pesada do que as outras informações. Como exemplo, tal implementação da tarefa T220 pode ser configurada para calcular a descrição de um envelope espectral do quadro alvo através da primeira banda de freqüência como uma média da informação do segundo quadro codificado e a informação de um quadro encodificado anterior, em que a informação do segundo quadro encodificado é ponderada mais pesadamente do que a informação do quadro encodificado anterior. De forma similar, a tarefa T220 pode ser configurada para obter uma descrição da informação temporal do quadro alvo para a primeira banda de freqüência com base, pelo menos principalmente, na informação do segundo quadro encodificado.
Com base na informação do quadro encodificado de referência (aqui também designada como "informação espectral de referência"), a tarefa T230 obtém uma descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência. A Figura 25B apresenta um fluxograma de uma implementação M210 do método M2 00 que inclui uma implementação T232 da tarefa T230. Como uma implementação da tarefa T230, a tarefa T232 obtém uma descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência, com base na informação espectral de referência. Neste caso, a informação espectral de referência está incluída dentro de uma descrição de um envelope espectral de um primeiro quadro do sinal de fala. A Figura 28 apresenta uma aplicação do método M210 que recebe informação de dois quadros encodificados e produz descrições de envelopes espectrais de dois quadros inativos correspondentes de um sinal de fala. A tarefa T230 é configurada para obter a descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência com base, pelo menos principalmente, na informação espectral de referência. Como exemplo, a tarefa T230 pode ser configurada para obter a descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência com base inteiramente na informação espectral de referência. Alternativamente, a tarefa T230 pode ser configurada para obter a descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência com base em (A) uma descrição de um envelope espectral através da segunda banda de freqüência que é baseada na informação espectral de referência e (B) uma descrição de um envelope espectral através da segunda banda de freqüência que é baseada na informação do segundo quadro encodificado.
Neste caso, a tarefa T230 pode ser configurada para ponderar a descrição com base na informação espectral de referência mais pesadamente do que a descrição baseada na informação do segundo quadro encodificado. Como exemplo, tal implementação da tarefa T230 pode ser configurada para calcular a descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência como uma média de descrições baseada na informação espectral de referência e informação do segundo quadro encodificado, em que a descrição baseada na informação espectral de referência é ponderada mais pesadamente do que a descrição baseada na informação do segundo quadro encodificado. Em outro caso, uma ordem LPC da descrição com base na informação espectral de referência pode ser maior que uma ordem LPC da descrição baseada na informação do segundo quadro encodificado. Como exemplo, a ordem LPC da descrição baseada na informação do segundo quadro encodificado pode ser um (por exemplo, um valor de inclinação espectral). De forma similar, a tarefa T230 pode ser configurada para obter uma descrição de informação temporal do quadro alvo para a segunda banda de freqüência com base, pelo menos principalmente, na informação temporal de referência (por exemplo, com base inteiramente na informação temporal de referência, ou com base também, e em menor grau, na informação do segundo quadro encodificado). A tarefa T210 pode ser implementada para obter, do quadro encodificado de referência, uma descrição de um envelope espectral que consiste de uma única representação de banda máxima através da primeira e segunda bandas de freqüência. É mais típico, no entanto, implementar a tarefa T210 para obter tal descrição como descrições separadas de um envelope espectral através da primeira banda de freqüência e através da segunda banda de freqüência. Como exemplo, a tarefa T210 pode ser configurada para obter as descrições separadas de um quadro encodificado de referência que foi encodificado usando um esquema de codificação de divisão de banda como descrito aqui (por exemplo, o esquema de codificação 2). A Figura 25C apresenta um fluxograma de uma implementação M220 do método M210 em que a tarefa T210 é implementada como duas tarefas T212a e T212b. Com base na informação do quadro encodificado de referência, a tarefa T212a obtém uma descrição de um envelope espectral do primeiro quadro através da primeira banda de freqüência. Com base na informação do quadro encodificado de referência, a tarefa T212b obtém uma descrição de um envelope espectral do primeiro quadro através da segunda banda de freqüência. Cada uma das tarefas T212a e T212b pode incluir a análise de uma descrição quantizada de um envelope espectral do respectivo quadro encodificado e/ou a dequantização de uma descrição quantizada de um envelope espectral. A Figura 29 apresenta uma aplicação do método M220 que recebe informação de dois quadros encodifiçados e produz descrições de envelopes espectrais de dois quadros inativos correspondentes de um sinal de fala. 0 método M220 compreende também uma implementação T234 da tarefa T232. Como uma implementação da tarefa T230, a tarefa T234 obtém uma descrição de um envelope espectral do quadro alvo através da segunda banda de freqüência que é baseada na informação espectral de referência. Como na tarefa T232, a informação espectral de referência está incluída em uma descrição de um envelope espectral de um primeiro quadro do sinal de fala. No caso específico da tarefa T234, a informação espectral de referência está incluída (e é possivelmente a mesma que) em uma descrição de um envelope espectral do primeiro quadro através da segunda banda de freqüência. A Figura 29 apresenta um exemplo em que as descrições dos envelopes espectrais possuem ordens LPC, e em que as ordens LPC das descrições de envelopes espectrais do primeiro quadro inativo através da primeira e segunda bandas de freqüência são iguais às ordens LPC das descrições de envelopes espectrais do quadro inativo alvo através das respectivas bandas de freqüência. Outros exemplos incluem casos em que uma ou ambas as descrições de envelopes espectrais do primeiro quadro inativo através da primeira e segunda bandas de freqüência são maiores que a descrição correspondente de um envelope espectral do quadro inativo alvo através da respectiva banda de freqüência. 0 quadro encodificado de referência pode incluir uma descrição quantizada de uma descrição de um envelope espectral através da primeira banda de freqüência e uma descrição quantizada de uma descrição de um envelope espectral através da segunda banda de freqüência. Em um exemplo específico, uma descrição quantizada de uma descrição de um envelope espectral através da primeira banda de freqüência incluída no quadro encodificado de referência possui um comprimento de 28 bits, e uma descrição quantizada de uma descrição de um envelope espectral através da segunda banda de freqüência incluída no quadro encodificado de referência possui um comprimento de 12 bits. Em outros exemplos, o comprimento da descrição quantizada de uma descrição de um envelope espectral através da segunda banda de freqüência incluída no quadro encodificado de referência não é maior do que 45, 50, 60, ou 7 0% do comprimento da descrição quantizada de uma descrição de um envelope espectral através da primeira banda de freqüência incluída no quadro encodificado de referência. O quadro encodificado de referência pode incluir uma descrição quantizada de uma descrição de informação temporal para a primeira banda de freqüência e uma descrição quantizada de uma descrição de informação temporal para a segunda banda de freqüência. Em um exemplo específico, uma descrição quantizada de uma descrição de informação temporal para a segunda banda de freqüência incluída no quadro encodificado de referência possui um comprimento de 15 bits, e uma descrição quantizada de uma descrição de informação temporal para a primeira banda de freqüência incluída no quadro encodificado de referência possui um comprimento de 19 bits. Em outros exemplos, o comprimento da descrição quantizada da informação temporal para a segunda banda de freqüência incluída no quadro encodificado de referência não é maior do que 80 ou 90 % do comprimento da descrição quantizada de uma descrição da informação temporal para a primeira banda de freqüência incluída no quadro encodificado de referência. O segundo quadro encodificado pode incluir uma descrição quantizada de um envelope espectral através da primeira banda de freqüência e/ou uma descrição quantizada de informação temporal para a primeira banda de freqüência. Em um exemplo específico, uma descrição quantizada de uma descrição de um envelope espectral através da primeira banda de freqüência incluída no segundo quadro encodificado possui um comprimento de 10 bits. Em outros exemplos, o comprimento da descrição quantizada de uma descrição de um envelope espectral através da primeira banda de freqüência incluída no segundo quadro encodificado não é maior do que 40, 50, 60, 70, ou 75% do comprimento da descrição quantizada de uma descrição de um envelope espectral através da primeira banda de freqüência incluída no quadro encodificado de referência. Em um exemplo específico, uma descrição quantizada de uma descrição de informação temporal para a primeira banda de freqüência incluída no segundo quadro encodificado possui um comprimento de 5 bits. Em outros exemplos, o comprimento da descrição quantizada de uma descrição de informação temporal para a primeira banda de freqüência incluída no segundo quadro encodificado não é maior do que 30, 40, 50, 60, ou 70% do comprimento da descrição quantizada de uma descrição de informação temporal para a primeira banda de freqüência incluída no quadro encodificado de referência.
Em uma típica implementação do método M200, a informação espectral de referência constitui uma descrição de um envelope espectral através da segunda banda de freqüência. Tal descrição pode incluir um conjunto de parâmetros de modelo, por exemplo um ou mais vetores de coeficientes de LSP, LSF, ISP, ISF, ou LPC. De um modo geral, tal descrição é uma descrição de um envelope espectral do primeiro quadro inativo através da segunda banda de freqüência como obtida do quadro encodificado de referência pela tarefa T210. É também possível que a informação espectral de referência inclui uma descrição de um envelope espectral (por exemplo, do primeiro quadro inativo) através da primeira banda de freqüência e/ou através de outra banda de freqüência. A tarefa T230 inclui tipicamente uma operação para recuperar a informação espectral de referência de um arranjo de elementos de armazenagem, tal como uma memória de semicondutor (aqui também designada como um "buffer"). Para o caso em que a informação espectral de referência inclui uma descrição de um envelope espectral através da segunda banda de freqüência, o ato de recuperação da informação espectral de referência pode ser suficiente para completar a tarefa T230. No entanto, mesmo em tal caso, pode ser desejável configurar a tarefa T230 para calcular a descrição de um envelope espectral do quadro alvo através de segunda banda de freqüência (aqui também designada como a "descrição espectral alvo") em lugar de simplesmente recuperá-la. Como exemplo, a tarefa T230 pode ser configurada para calcular a descrição espectral alvo ao adicionar ruído aleatório à informação espectral de referência. Alternativa e/ou adicionalmente, a tarefa T230 pode ser configurada para calcular a descrição com base na informação espectral de um ou mais quadros encodificados adicionais (por exemplo, com base na informação de mais de um quadro encodificado de referência). Como exemplo, a tarefa T230 pode ser configurada para calcular a descrição espectral alvo como uma média de descrições de envelopes espectrais através da segunda banda de freqüência de dois ou mais quadros encodificados de referência, e tal cálculo pode incluir a adição de ruído aleatório à média calculada. A tarefa T230 pode ser configurada para calcular a descrição espectral alvo por extrapolação no tempo a partir da informação espectral de referência ou por interpolação no tempo entre descrições de envelopes espectrais através da segunda banda de freqüência de dois ou mais quadros encodificados de referência. Adicional ou alternativamente, a tarefa T230 pode ser configurada para calcular a descrição espectral alvo por extrapolação em freqüência de uma descrição de um envelope espectral do quadro alvo através de outra banda de freqüência (por exemplo, através da primeira banda de freqüência) e/ou por interpolação em freqüência entre descrições de envelopes espectrais através de outras bandas de freqüência.
Tipicamente, a informação espectral de referência e a descrição espectral alvo são vetores de valores de parâmetros espectrais (ou "vetores espectrais"). Como exemplo, ambos os vetores espectrais alvo e de referência são vetores LSP. Como outro exemplo, ambos os vetores espectrais alvo e de referência são vetores de coeficientes LPC. Como outro exemplo, ambos os vetores espectrais alvo e de referência são vetores de coeficientes de reflexão. A tarefa T230 pode ser configurada para copiar a descrição espectral alvo da informação espectral de referência de acordo com uma expressão tal como stl■= sriVi e {l,2,...,«}, em que st é o valor espectral alvo, sr é o vetor espectral de referência (cujos valores estão tipicamente na faixa de -1 a +1), i é um índice de elemento de vetor e n é o comprimento do vetor st. Em uma variação de tal operação, a tarefa T230 é configurada para aplicar um fator de ponderação (ou um vetor de fatores de ponderação) ao vetor espectral de referência. Em outra variação de tal operação, a tarefa T230 é configurada para calcular o vetor espectral alvo ao adicionar ruído aleatório ao vetor espectral de referência de acordo com uma expressão tal como s,, =£„+z, Vz e{l,2,...,«}, em que z é um vetor de valores aleatórios. Neste caso, cada elemento de z pode ser uma variável aleatória cujos valores são distribuídos (por exemplo, de maneira uniforme) por uma faixa desejada.
Pode ser desejável assegurar que os valores da descrição espectral alvo estejam ligados (por exemplo, dentro da faixa de -1 a +1). Neste caso, a tarefa T230 pode ser configurada para calcular a descrição espectral alvo de acordo com uma expressão tal como stl= wsr[ + zk/i e {1,2,...,/7}, em que w possui um valor entre zero e um (por exemplo, na faixa de 0,3 a 0,9) e os valores de cada elemento de z são distribuídos (por exemplo, de modo uniforme) através da faixa de -(1-w) a + (1-w).
Em outro exemplo, a tarefa T230 é configurada para calcular a descrição espectral alvo com base em uma descrição de um envelope espectral através da segunda banda de freqüência de cada um dentre mais de um quadro encodificado de referência (por exemplo, de cada um dos dois quadros encodifiçados de referência mais recentes). Em tal exemplo, a tarefa T230 é configurada para calcular a descrição espectral alvo como uma média da informação dos quadros encodifiçados de referência de acordo com uma expressão tal como em que sri denota o vetor espectral do quadro encodificado de referência mais recente, e sr2 denota o vetor espectral do próximo quadro encodificado de referência mais recente. Em um exemplo correlacionado, os vetores de referência são ponderados de forma diferente (por exemplo, um vetor de um quadro encodificado de referência mais recente pode ser ponderado mais pesadamente).
Em outro exemplo, a tarefa T230 é configurada para gerar a descrição espectral alvo como um conjunto de valores aleatórios através de uma faixa com base na informação de dois ou mais quadros encodifiçados de referência. Como exemplo, a tarefa T230 pode ser configurada para calcular o vetor espectral alvo st como uma média aleatorizada de vetores espectrais provenientes de cada um dos dois mais recentes quadros encodifiçados de referência de acordo com uma expressão tal como: onde os valores de cada elemento de z estão distribuídos (por exemplo, uniformemente) através da faixa de -1 a +1. A Figura 30A apresenta um resultado (para um dos n valores de i) da interação de tal implementação da tarefa T230 para cada um dentre uma série de quadros alvo consecutivos, o vetor aleatório z sendo reavaliado para cada interação, em que os círculos abertos indicam os valores Su. A tarefa T230 pode ser configurada para calcular a descrição espectral alvo por interpolação entre descrições de envelopes espectrais através da segunda banda de freqüência dos dois quadros de referência mais recentes. Como exemplo, a tarefa T230 pode ser configurada para efetuar uma interpolação linear através de uma série de p quadros alvo, em que p é um parâmetro ajustável. Neste caso, a tarefa T230 pode ser configurada para calcular o vetor espectral alvo para o fstmo quadro alvo na série de acordo com uma expressão tal como: A Figura 30B apresenta (para um dos n valores de zj um resultado da interação de tal implementação da tarefa T230 através de uma série de quadros alvo consecutivos, em que p é igual a oito e cada círculo aberto indica o valor sti para um quadro alvo correspondente. Outros exemplos de valores de p incluem 4, 16 e 32. Pode ser desejável configurar tal implementação da tarefa T230 para adicionar ruído aleatório à descrição interpolada. A Figura 30B mostra também um exemplo em que a tarefa T230 é configurada para copiar o vetor de referência srj para o vetor alvo st para cada quadro alvo subseqüente em uma série mais longa do que p (por exemplo, até ser recebido um novo quadro encodificado de referência ou o próximo quadro ativo). Em um exemplo correlacionado, a série de quadros alvo possui um comprimento mp, em que m é um inteiro maior do que um (por exemplo, dois ou três), e cada um dos p vetores calculados é usado como a descrição espectral alvo para cada um dentre m quadros alvo consecutivos correspondentes na série. A tarefa T230 pode ser implementada de várias formas diferentes para efetuar a interpolação entre descrições de envelopes espectrais através da segunda banda de freqüência a partir dos dois quadros de referência mais recentes. Como outro exemplo, a tarefa T230 é configurada para efetuar uma interpolação linear através de uma série de p quadros alvo ao calcular o vetor alvo para o fstmo quadro alvo na série de acordo com um par de expressões tais como: Para todo inteiro j tal que 0 < j < q, e Para todo inteiro j tal que q < j < p. A Figura 30C apresenta um resultado (para um dos n valores de i) da interação de tal implementação da tarefa T230 para cada um dentre uma série de quadros alvo consecutivos, em que q possui o valor quatro e p possui o valor oito. Tal configuração pode prover uma transição mais suave para o primeiro quadro alvo do que o resultado apresentado na Figura 30B. A tarefa T230 pode ser implementada de maneira similar para quaisquer valores inteiros positivos de q e p; exemplos específicos de valores de (q, p) que podem ser usados incluem (4, 8), (4, 12), (4, 16), (8, 16), (8, 24), (8, 32), e (16, 32). Em um outro exemplo correlacionado como acima descrito, cada um dos p vetores calculados é usado como a descrição espectral alvo para cada um dentre m quadros alvo consecutivos correspondentes em uma série de mp quadros alvo. Pode ser desejável configurar tal implementação da tarefa T230 para adicionar ruído aleatório à descrição interpolada. A Figura 30C apresenta também um exemplo em que a tarefa T230 é configurada para copiar o vetor de referência srj para o vetor alvo st para cada quadro alvo subseqüente em uma série mais longa do que p (por exemplo, até ser recebido um novo quadro encodificado de referência ou o próximo quadro ativo). A tarefa T230 pode ser também implementada para calcular a descrição espectral alvo com base no, em adição a informação espectral de referência, o envelope espectral de um ou mais quadros através de outra banda de freqüência. Como exemplo, tal implementação da tarefa T230 pode ser configurada para calcular a descrição espectral alvo por extrapolação em freqüência do envelope espectral do quadro corrente, e/ou um ou mais quadros anteriores, através de outra banda de freqüência (por exemplo, a primeira banda de freqüência). A tarefa T230 pode ser também configurada para obter uma descrição de informação temporal do quadro inativo alvo através da segunda banda de freqüência, com base na informação do quadro encodificado de referência (aqui também designada como "informação temporal de referência"). A informação temporal de referência consisti tipicamente de uma descrição de informação temporal através da segunda banda de freqüência. Tal descrição pode incluir um ou mais valores de quadro de ganho, valores de perfil de ganho, valores de parâmetro de passo, e/ou índices de livro-código. De um modo geral, tal descrição consiste de uma descrição de informação temporal do primeiro quadro inativo através da segunda banda de freqüência como obtida do quadro codificado de referência pela tarefa T210. É também possível que a informação temporal de referência inclua uma descrição de informação temporal (por exemplo, do primeiro quadro inativo) através da primeira banda de freqüência e/ou através de outra banda de freqüência. A tarefa T230 pode ser configurada para obter uma descrição de informação temporal do quadro alvo através da segunda banda de freqüência (aqui também designada como "descrição temporal alvo") ao copiar a informação temporal de referência. Alternativamente, pode ser desejável configurar a tarefa T230 para obter a descrição temporal alvo ao calcular este com base na informação temporal de referência. Como exemplo, a tarefa T230 pode ser configurada para calcular a descrição temporal alvo ao adicionar ruído aleatório à informação temporal de referência. A tarefa T230 pode ser também configurada para calcular a descrição temporal alvo com base na informação proveniente de mais de um quadro encodificado de referência. Como exemplo, a tarefa T230 pode ser configurada para calcular a descrição temporal alvo como uma média das descrições de informação temporal através da segunda banda de freqüência a partir de dois ou mais quadros encodifiçados de referência, e tal cálculo pode incluir a adição de ruído aleatório à média calculada. A descrição temporal alvo e a informação temporal de referência podem, cada uma, incluir uma descrição de um envelope temporal. Como acima mencionado, uma descrição de um envelope temporal pode incluir um valor de quadro de ganho e/ou um conjunto de valores de formato de ganho. Alternativa ou adicionalmente, a descrição temporal alvo e a informação temporal de referência podem, cada uma, incluir uma descrição de um sinal de excitação. A descrição de um sinal de excitação pode incluir uma descrição de um componente de passo (por exemplo, retardo de passo, ganho de passo, e/ou uma descrição de um protótipo). A tarefa T230 é tipicamente configurada para ajustar um formato de ganho da descrição temporal alvo de modo a ser plano. Como exemplo, a tarefa T230 pode ser configurada para ajustar os valores de formato de ganho da descrição temporal alvo como sendo iguais entre si. Tal implementação da tarefa T230 é configurada para ajustar todos os valores de formato de ganho para um fator de um (por exemplo, zero dB). Outra implementação da tarefa T230 é configurada para ajustar todos os valores de formato de ganho para um fator de 1/n, em que n é o número de valores de formato de ganho na descrição temporal alvo. A tarefa T230 pode interagir para calcular uma descrição temporal alvo para cada um dentre uma série de quadros alvo. Como exemplo, a tarefa T230 pode ser configurada para calcular valores de quadro de ganho para cada um dentre uma série de quadros alvo sucessivos com base em um valor de quadro de ganho do quadro encodificado de referência mais recente. Nestes casos, pode ser desejável configurar a tarefa T230 para adicionar ruído aleatório ao valor de quadro de ganho para cada quadro alvo (alternativamente, para adicionar ruído aleatório ao valor de quadro de ganho para cada quadro alvo após o primeiro na série), uma vez que a série de envelopes temporais poderia, de outra forma, ser percebida como não-naturalmente uniforme. Tal implementação da tarefa T230 pode ser configurada para calcular um valor de quadro de ganho gt para cada quadro alvo na série de acordo com uma expressão tal como gt = zgr ou gt = wgr + (l-w)z, em que gr é um valor de quadro de ganho proveniente do quadro encodificado de referência, z é um valor aleatório que é reavaliado para cada um dentre a série de quadros alvo, e w é um fator de ponderação. As faixas típicas para os valores de z incluem de 0 a 1 e de -1 a +1. As faixas típicas de valores para w incluem de 0,5 (ou 0,6) a 0,9 (ou 1,0). A tarefa T230 pode ser configurada para calcular um valor de quadro de ganho para um quadro alvo com base nos valores de quadro de ganho provenientes de dois ou três quadros encodifiçados de referência mais recentes. Como exemplo, a tarefa T230 é configurada para calcular o valor de quadro de ganho para o quadro alvo como uma média de p- 4~ j? acordo com a expressão g, = H —— onde gri é o valor de quadro de ganho proveniente do quadro encodificado de referência mais recente e gr2 é o valor de quadro de ganho I proveniente do próximo quadro encodificado de referência mais recente. Em um exemplo correlacionado, os valores de quadro de ganho de referência são ponderados diferentemente entre si (por exemplo, um valor mais recente pode ser ponderado mais pesadamente). Pode ser desejável implementar a tarefa T230 para calcular um valor de quadro de ganho para cada um em uma série de quadros alvo com base em tal média. Como exemplo, tal implementação da tarefa T230 pode estar configurada para calcular o valor de quadro de ganho para cada quadro alvo na série (alternativamente, para cada quadro alvo após o primeiro na série) ao adicionar um valor de ruído aleatório diferente ao valor de quadro de ganho médio calculado.
Como outro exemplo, a tarefa T230 é configurada para calcular um valor de quadro de ganho para o quadro alvo como uma média corrente de valores de quadro de ganho provenientes de quadros encodifiçados de referência sucessivos. Tal implementação da tarefa T230 pode ser configurada para calcular o valor de quadro de ganho alvo como o valor corrente de um valor de quadro de ganho médio corrente de acordo com uma expressão auto-regressiva (AR) tal como gCM, = agprev + (1-a) gr, em que gcur e gprev são os valores corrente e anterior da média corrente, respectivamente. Para o fator de uniformização a, pode ser desejável usar um valor entre 0,5 ou 0,75 e 1, tal como 0,8 ou 0,9. Pode ser desejável a implementação da tarefa T230 para calcular um valor gt para cada um de uma série de quadros alvo com base em tal média corrente. Como exemplo, tal implementação da tarefa T230 pode ser configurada para calcular o valor gt para cada quadro alvo na série (alternativamente, para cada quadro alvo após o primeiro na série) ao adicionar um valor de ruído aleatório diferente ao valor de quadro de ganho médio corrente gcur.
Em um exemplo adicional, a tarefa T230 é configurada para aplicar um fator de atenuação à contribuição proveniente da informação temporal de referência. Como exemplo, a tarefa T230 pode ser configurada para calcular o valor de quadro de ganho médio corrente de acordo com uma expressão tal como gcur = agprev + (1-a)figr, em que o fator de atenuação β é um parâmetro ajustável possuindo um valor menor do que um, tal como um valor na faixa de 0,5 a 0,9 (por exemplo, 0,6). Pode ser desejável implementar a tarefa T230 para calcular um valor gt para cada um de uma série de quadros alvo com base em tal média corrente. Como exemplo, tal implementação da tarefa T230 pode ser configurada para calcular o valor gt para cada quadro alvo na série (alternativamente, para cada quadro alvo após o primeiro na série) ao adicionar um valor de ruído aleatório diferente ao valor de quadro de ganho médio corrente gcar· Pode ser desejável interagir a tarefa T230 para calcular descrições temporal e espectral alvo para cada um de uma série de quadros alvo. Neste caso, a tarefa T230 pode ser configurada para atualizar as descrições temporal e espectral alvo em diferentes taxas. Como exemplo, tal implementação da tarefa T230 pode ser configurada para calcular diferentes descrições espectrais alvo para cada quadro alvo porém usar a mesma descrição temporal alvo para mais de um quadro alvo consecutivo.
As implementações do método M200 (incluindo os métodos M210 e M220) são tipicamente configuradas para incluir uma operação que armazena a informação espectral de referência em um buffer. Tal implementação do método M200 pode também incluir uma operação que armazena a informação temporal de referência em um buffer. Alternativamente, tal implementação do método M200 pode incluir uma operação que armazena tanto a informação espectral de referência como a informação temporal de referência em um buffer.
Diferentes implementações do método M200 podem usar diferentes critérios para decidir se armazena informação com base em um quadro encodificado como informação espectral de referência. A decisão de armazenar informações espectrais de referência é tipicamente baseada no esquema de codificação do quadro encodificado e podem também se basear nos esquemas de codificação de um ou mais quadros encodificados anteriores e/ou subseqüentes. Tal implementação do método M200 pode ser configurada para usar os mesmos ou diferentes critérios para decidir se armazena informações temporais de referência.
Pode ser desejável a implementação do método M200 tal que a informação espectral de referência armazenada está disponível para mais de um quadro encodificado de referência de cada vez. Como exemplo, a tarefa T230 pode ser configurada para calcular uma descrição espectral alvo que é baseada nas informações provenientes de mais de um quadro de referência. Nestes casos, o método M200 pode ser configurado para manter em armazenamento, em qualquer momento, informação espectral de referência provenientes do quadro encodificado de referência mais recente, informações provenientes do segundo quadro encodificado de referência mais recente, e possivelmente informações provenientes de um ou mais quadros encodifiçados de referência menos recentes. Tal método pode ser também configurado para manter o mesmo histórico, ou um histórico diferente, para informações temporais de referência. Como exemplo, o método M200 pode ser configurado para reter uma descrição de um envelope espectral proveniente de cada um dos dois quadros encodifiçados de referência mais recentes e uma descrição da informação temporal provenientes apenas do quadro encodificado de referência mais recente.
Como acima mencionado, cada um dos quadros encodifiçados pode incluir um índice de codificação que identifica o esquema de codificação, ou o modo ou taxa de codificação, de acordo com o qual o quadro foi codificado. Alternativamente, um decodificador de fala pode ser configurado para determinar pelo menos parte do índice de codificação do quadro encodificado. Por exemplo, um decodificador de fala pode ser configurado para determinar uma taxa de bits de um quadro encodificado a partir de um ou mais parâmetros, tais como a energia do quadro. De forma similar, para um codificador que suporta mais de um modo de codificação para uma taxa de codificação específica, um decodificador de fala pode ser configurado para determinar o modo de codificação apropriado a partir de um formato do quadro encodificado.
Nem todos os quadros encodifiçados no sinal de fala encodificado estarão qualificados para serem quadros encodifiçados de referência. Como exemplo, um quadro encodificado que não inclui uma descrição de . um envelope espectral através da segunda banda de freqüência seria, de um modo geral, inadequado para uso como um quadro encodificado de referência. Em algumas aplicações, pode ser desejável considerar qualquer quadro encodificado que contenha uma descrição de um envelope espectral através da segunda banda de freqüência como sendo um quadro encodificado de referência.
Uma implementação correspondente do método M200 pode ser configurada para armazenar informação com base no quadro encodificado corrente como informação espectral de referência se o quadro contiver uma descrição de um envelope espectral através da segunda banda de freqüência. No contexto de um conjunto de esquemas de codificação como mostrado na Figura 18, por exemplo, tal implementação do método M200 pode ser configurada para armazenar informações espectrais de referência se o índice de codificação do quadro indicar um dos esquemas de codificação 1 ou 2 (isto é, em lugar do esquema de codificação 3) . De um modo mais geral, tal implementação do método M200 pode ser configurada para armazenar informações espectrais de referência se o índice de codificação do quadro indicar um esquema de codificação de banda larga em lugar de um esquema de codificação de banda estreita.
Pode ser desejável implementar o método M200 para obter descrições espectrais alvo (isto é, para efetuar a tarefa T230) apenas para quadros alvo que estão inativos. Nestes casos, pode ser desejável que as informações espectrais de referência sejam baseadas apenas nos quadros inativos encodifiçados e não nos quadros ativos encodifiçados. Apesar de os quadros ativos incluírem o ruído de fundo, a informação espectral de referência baseada em um quadro ativo encodificado provavelmente incluiría também informações relacionadas a componentes de fala que poderiam corromper a descrição espectral alvo.
Tal implementação do método M200 pode ser configurada para armazenar informações com base no quadro encodificado corrente como informações espectrais de referência se o índice de codificação do quadro indicar um modo de codificação específico (por exemplo, NELP). Outras implementações do método M200 são configuradas para armazenar informações com base no quadro encodificado corrente como informações espectrais de referência se o índice de codificação do quadro indicar uma taxa de codificação específica (por exemplo, meia taxa). Outras implementações do método M200 são configuradas para armazenar informações com base no quadro encodificado corrente como informações espectrais de referência de acordo com uma combinação de critérios: por exemplo, se o índice de codificação do quadro indica que o quadro contém uma descrição de um envelope espectral através da segunda banda de freqüência e também indica um modo e/ou taxa de codificação específicos. Outras implementações do método M200 são configuradas para armazenar informações com base no quadro encodificado corrente como informações espectrais de referência se o índice de codificação do quadro indicar um esquema de codificação específico (por exemplo, o esquema de codificação 2 em um exemplo de acordo com a Figura 18, ou um esquema de codificação de banda larga que é reservado para uso com quadros inativos em outro exemplo).
Pode não ser possível determinar de seu índice de codificação apenas, se um quadro é ativo ou inativo. No conjunto de esquemas de codificação apresentado na Figura 18, por exemplo, o esquema de codificação 2 é usado para quadros ativos e inativos. Neste caso, os índices de codificação de um ou mais quadros subseqüentes pode ajudar a indicar se um quadro encodificado é inativo. A descrição acima, por exemplo, descreve métodos para codificação de fala em que um quadro encodificado usando o esquema de codificação 2 é inativo se o quadro seguinte for encodificado usando o esquema de codificação 3. Uma implementação correspondente do método M200 pode ser configurada para armazenar informações com base no quadro encodificado corrente como informações espectrais de referência se o índice de codificação do quadro indicar o esquema de codificação 2 e o índice de codificação do próximo quadro encodificado indicar o esquema de codificação 3. Em um exemplo relacionado, uma implementação do método M200 é configurada para armazenar informações com base em um quadro encodificado como informação espectral de referência se o quadro for encodificado em meia taxa e o próximo quadro for encodificado em um oitavo de taxa.
Para um caso em que uma decisão de armazenar informações com base em um quadro encodificado como informações espectrais de referência depende de informações provenientes de um quadro encodificado subseqüente, o método M200 pode ser configurado para efetuar a operação de armazenagem das informações espectrais de referência em duas partes. A primeira parte da operação de armazenagem armazena provisoriamente informações baseadas em um quadro encodificado. Tal implementação do método M200 pode ser configurada para armazenar provisoriamente informações para todos os quadros, ou para todos os quadros que atendem a algum critério predeterminado (por exemplo, todos os quadros possuindo um modo, esquema ou taxa de codificação específicos). Três exemplos diferentes de tal critério são: (1) quadros cujo índice de codificação indica um modo de codificação NELP, (2) quadros cujo índice de codificação indica meia taxa, e (3) quadros cujo índice de codificação indica o esquema de codificação 2 (por exemplo, em uma aplicação de um conjunto de esquemas de codificação de acordo com a Figura 18). A segunda parte da operação de armazenagem armazena as informações armazenadas provisoriamente como informações espectrais de referência se uma condição predeterminada for satisfeita. Tal implementação do método M200 pode ser configurada para postergar esta parte da operação até que sejam recebidos um ou mais quadros subseqüentes (por exemplo, até que seja conhecido o modo, taxa, ou esquema do próximo quadro codificado). Há três exemplos diferentes de tal condição: (1) o índice de codificação do próximo quadro codificado indica um oitavo de taxa, (2) o índice de codificação do próximo quadro encodificado indica um modo de codificação usado apenas para quadros inativos e (3) o índice de codificação do próximo quadro encodificado indica o esquema de codificação 3 (por exemplo, em uma aplicação de um conjunto de esquemas de codificação de acordo com a Figura 18) . Se a condição para a segunda parte da operação de armazenamento não for atendida, as informações armazenadas provisoriamente podem ser descartadas ou sobrescritas. A segunda parte de uma operação de duas partes para armazenamento de informações espectrais de referência pode ser implementada de acordo com qualquer uma dentre várias configurações diferentes. Como exemplo, a segunda parte da operação de armazenamento é configurada para mudar o estado de um indicador associado ao local de armazenamento que mantém as informações armazenadas provisoriamente (por exemplo, de um estado indicando "provisório" para um estado indicando "referência") . Como outro exemplo, a segunda parte da operação de armazenamento é configurada para transferir as informações armazenadas provisoriamente em um buffer que é reservado para armazenamento de informações espectrais de referência. Como outro exemplo, a segunda parte da operação de armazenamento é configurada para atualizar um ou mais ponteiros em um buffer (por exemplo, um buffer circular) que mantém as informações espectrais de referência armazenadas provisoriamente. Neste caso, os ponteiros podem incluir um ponteiro de leitura indicando a localização das informações espectrais de referência provenientes do quadro encodificado de referência mais recente e/ou um ponteiro de escrita indicando um local em que devem ser armazenadas informações armazenadas provisoriamente. A Figura 31 apresenta uma parte correspondente de um diagrama de estado para um decodificador de fala configurado para efetuar uma implementação do método M200 em que o esquema de codificação do quadro encodificado seguinte é usado para determinar se devem ser armazenadas informações com base em um quadro encodificado como informações espectrais de referência. Neste diagrama, os rótulos dos caminhos indicam o tipo de quadro associado ao esquema de codificação do quadro corrente, em que A indica um esquema de codificação usado apenas para quadros ativos, I indica um esquema de codificação usado apenas para quadros inativos, e M (para "mixados") indica um esquema de codificação usado para quadros ativos e para quadros inativos. Por exemplo, tal decodificador pode estar incluído em um sistema de codificação que usa um conjunto de esquemas de codificação como apresentado na Figura 18, em que os esquemas 1, 2 e 3 correspondem aos rótulos do caminho A, Mel, respectivamente. Como apresentado na Figura 31, informações são armazenadas provisoriamente para todos os quadros encodificados possuindo um índice de codificação que indica um esquema de codificação "mixado". Se o índice de codificação do próximo quadro indica que o quadro é inativo, então é finalizado o armazenamento das informações armazenadas provisoriamente. Caso contrário, as informações armazenadas podem ser descartadas ou sobrescritas.
Deve ser notado que a descrição acima relacionada ao armazenamento seletivo e ao armazenamento provisório de informações espectrais de referência e o diagrama de estado correspondente da Figura 31, também se aplicam ao armazenamento de informações espectrais de referência em implementações do método M200 que são configurados para armazenar tais informações.
Em uma aplicação típica de uma implementação do método M200, um arranjo de elementos lógicos (por exemplo, portas lógicas) é configurado para efetuar uma, mais de uma, ou mesmo todas as várias tarefas do método. Uma ou mais (possivelmente todas) das tarefas podem ser também implementadas como código (por exemplo, um ou mais conjuntos de instruções), incorporado em um produto de programa de computador (por exemplo, um ou mais meios de armazenamento de dados, tais como discos, cartões de memória flash ou outras não voláteis, chips de memória de semicondutores, etc) , que são lidos e/ou executados por uma máquina (por exemplo, um computador) incluindo um arranjo de elementos lógicos (por exemplo, um processador, microprocessador, micro-controlador, ou outra máquina de estado finito). As tarefas de uma implementação do método M200 podem ser também efetuadas por mais de um de tais arranjos ou máquinas. Nestas ou em outras implementações, as tarefas podem ser efetuadas dentro de um dispositivo para comunicação sem fio, tal como um telefone celular ou outro dispositivo possuindo tal capacidade de comunicação. Tal dispositivo pode ser configurado para comunicar com redes comutadas por circuito e/ou comutadas por pacotes (por exemplo, usando um ou mais protocolos tais como o VoIP). Por exemplo, tal dispositivo pode incluir circuitos de RF configurados para receber quadros encodifiçados. A Figura 32A apresenta um diagrama em blocos de um equipamento 200 para processar um sinal de fala encodificado de acordo com uma configuração geral. Como exemplo, o equipamento 200 pode ser configurado para efetuar um método para decodificação de fala que inclui uma implementação do método M200 como descrito aqui. O equipamento 200 inclui a lógica de controle 210 que é configurada para gerar um sinal de controle possuindo uma seqüência de valores. 0 equipamento 200 compreende também um decodificador de fala 220 que é configurado para calcular quadros decodificados de um sinal de fala com base nos valores do sinal de controle e nos quadros encodifiçados correspondentes do sinal de fala encodificado.
Um dispositivo de comunicação que inclui o equipamento 200, tal como um telefone celular, pode ser configurado para receber o sinal de fala encodificado a partir de um canal de transmissão a cabos, sem fio, ou óptico. Tal dispositivo pode ser configurado para efetuar operações de pré-processamento no sinal de fala encodificado, tal como a decodificação de correção de erros e/ou códigos de redundância. Tal dispositivo pode também incluir implementações do equipamento 100 e do equipamento 200 (por exemplo, em um transreceptor). A lógica de controle 210 é configurada para gerar um sinal de controle incluindo uma seqüência de valores que é baseada nos índices de codificação de quadros encodifiçados do sinal de fala encodificado. Cada valor da seqüência corresponde a um quadro encodificado do sinal de fala encodificado (exceto no caso de um quadro apagado como comentado mais adiante) e possui um dentre uma pluralidade de estados. Em algumas implementações do equipamento 200, como descrito a seguir, a seqüência possui binários-calculados (isto é, uma seqüência de valores altos e baixos). Em outras implementações do equipamento 200, como descrito a seguir, os valores da seqüência podem possuir mais do que dois estados. A lógica de controle 210 pode ser configurada para determinar o índice de codificação para cada quadro encodificado. Como exemplo, a lógica de controle 210 pode ser configurada para ler pelo menos parte do índice de codificação do quadro encodificado, para determinar uma taxa de bits do quadro encodificado a partir de um ou mais parâmetros, tais como a energia do quadro, e/ou para determinar o modo de codificação apropriado a partir de um formato do quadro encodificado. Alternativamente, o equipamento 200 pode ser implementado para incluir outro elemento que é configurado para determinar o índice de codificação para cada quadro encodificado e provê-lo para a lógica de controle 210, ou o equipamento 200 pode ser configurado para receber o índice de codificação de outro módulo de um equipamento que inclui o equipamento 200.
Um quadro encodificado que não foi recebido como esperado, ou que foi recebido com muitos erros a serem recuperados, é designado como um apagamento de quadro. O equipamento 200 pode ser configurado de tal forma que um ou mais estados do índice de codificação sejam usados para indicar um apagamento de quadro ou um apagamento de quadro parcial, tal como a ausência de uma parte do quadro encodificado que porta informações espectrais e temporais para a segunda banda de freqüência. Como exemplo, o equipamento 200 pode ser configurado de tal forma que o índice de codificação para um quadro encodificado que tenha sido encodificado usando o esquema de codificação 2 indica um apagamento da parte de banda alta do quadro. O decodificador de fala 220 é configurado para calcular quadros decodificados com base em valores do sinal de controle e quadros encodificados correspondentes do sinal de fala encodificado. Quando o valor do sinal de controle tem um primeiro estado, o decodificador de fala 220 calcula um quadro decodificado com base em uma descrição de um envelope espectral através da primeira e segunda bandas de freqüência, em que a descrição é baseada em informações provenientes do quadro encodificado correspondente. Quando o valor do sinal de controle tem um segundo estado, o decodificador 220 recupera uma descrição de um envelope espectral através da segunda banda de freqüência e calcula um quadro decodificado com base na descrição recuperada e em uma descrição de um envelope espectral através da primeira banda de freqüência, em que a descrição através da primeira banda de freqüência é baseada em informações provenientes do quadro encodificado correspondente. A Figura 32B apresenta um diagrama em blocos de uma implementação 202 do equipamento 200. O equipamento 202 inclui uma implementação 222 do decodificador de fala 220 que inclui um primeiro módulo 230 e um segundo módulo 240. Os módulos 230 e 240 são configurados para calcular as respectivas partes de sub-banda de quadros decodificados. Especificamente, o primeiro módulo 230 é configurado para calcular uma parte decodificada de um quadro através da primeira banda de freqüência (por exemplo, um sinal de banda estreita), enquanto o segundo módulo 240 é configurado para calcular, com base em um valor do sinal de controle, uma parte decodificada do quadro através da segunda banda de freqüência (por exemplo, um sinal de banda alta). A Figura 32C apresenta um diagrama em blocos de uma implementação 204 do equipamento 200. O analisador 250 é configurado para analisar os bits de um quadro encodificado para prover um índice de codificação para a lógica de controle 210 e pelo menos uma descrição de um envelope espectral para o decodificador de fala 220. Neste exemplo, o decodificador de fala 204 constitui também uma implementação do decodificador de fala 202, de tal forma que o analisador 250 é configurado para prover descrições de envelopes espectrais através das respectivas bandas de freqüência (quando disponíveis) para os módulos 230 e 240. 0 analisador 250 pode ser também configurado para prover pelo menos uma descrição de informações temporais para o decodificador de fala 220. Como exemplo, o analisador 250 pode ser implementado para prover descrições de informações temporais para as respectivas bandas de freqüência (quando disponíveis) para os módulos 230 e 240. O equipamento 204 compreende também um banco de filtros 260 que é configurado para combinar as partes decodificadas dos quadros através da primeira e segunda bandas de freqüência para produzir um sinal de fala de banda larga. Exemplos específicos de tais bancos de filtros são descritos, por exemplo, na publicação do Pedido de Patente US 2007/088558 (Vos et al.), "SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING", publicado em 19 de abril de 2007. Como exemplo, o banco de filtros 260 pode incluir um filtro passa baixa configurado para filtrar o sinal de banda estreita para produzir um primeiro sinal de passa banda e um filtro passa alta configurado para filtrar o sinal de banda alta para produzir um segundo sinal de passa banda. O banco de filtros 260 pode também incluir uma sobre-amostrador (upsampler) configurado para aumentar a taxa de amostragem do sinal de banda estreita e/ou do sinal de banda alta de acordo com um fator de interpolação correspondente desejado, como descrito na publicação do Pedido de Patente US 2007/088558 (Vos et al.). A Figura 33A apresenta um diagrama em blocos de uma implementação 232 do primeiro módulo 230 que inclui um caso 270a de um decodif icador de descrição de envelope espectral 270 e um caso 280a de um decodif icador de descrição de informação temporal 280. O decodificador de descrição de envelope espectral 270a é configurado para decodificar uma descrição de um envelope espectral através da primeira banda de freqüência (por exemplo, tal como recebida a partir do analisador 250) . O decodificador de descrição de informação temporal 280a é configurado para decodificar uma descrição de informação temporal para a primeira banda de freqüência (por exemplo, tal como recebida a partir do analisador 250). Como exemplo, o decodificador de descrição de informação temporal 280a pode ser configurado para decodificar um sinal de excitação para a primeira banda de freqüência. Um caso 290a do filtro de síntese 290 é configurado para gerar uma parte decodificada do quadro através da primeira banda de freqüência (por exemplo, um sinal de banda estreita) que é baseada nas descrições decodificadas de um envelope espectral e informações temporais. Como exemplo, o filtro de síntese 290a pode ser configurado de acordo com um conjunto de valores dentro da descrição de um envelope espectral através da primeira banda de freqüência (por exemplo, um ou mais vetores de coeficientes LSP ou LPC) para produzir a parte decodificada em resposta a um sinal de excitação para a primeira banda de freqüência. A Figura 33B apresenta um diagrama em blocos de uma implementação 272 do decodificador de descrição de envelope espectral 270. O dequantizador 310 é configurado para dequantizar a descrição, e o bloco de transformada inversa 320 é configurado para aplicar uma transformada inversa à descrição dequantizada para obter um conjunto de coeficientes LPC. 0 decodificador de descrição de informação temporal 280 é também configurado tipicamente para incluir um dequantizador. A Figura 34A apresenta um diagrama em blocos de uma implementação 242 do segundo módulo 240. O segundo módulo 242 inclui um caso 270b do decodificador de descrição de envelope espectral 270, um buffer 300, e um seletor 340. 0 decodificador de descrição de envelope espectral 270b é configurado para decodificar uma descrição de um envelope espectral através da segunda banda de freqüência (por exemplo, como recebida do analisador 250) . O buffer 300 é configurado para armazenar uma ou mais descrições de um envelope espectral através da segunda banda de freqüência como informações espectrais de referência, e o seletor 340 é configurado para selecionar, de acordo com o estado de um valor correspondente do sinal de controle gerado pela lógica de controle 210, uma descrição decodificada de um envelope espectral proveniente (A) do buffer 300, ou (B) do decodificador 270b. O segundo módulo 242 compreende também um gerador de sinal de excitação de banda alta 330 e um caso 290b do filtro de síntese 290 que é configurado para gerar uma parte decodificada do quadro através da segunda banda de freqüência (por exemplo, um sinal de banda alta) com base na descrição decodificada de um envelope espectral recebido através do seletor 340. O gerador de sinal de excitação de banda alta 330 é configurado para gerar um sinal de excitação para a segunda banda de freqüência, com base em um sinal de excitação para a primeira banda de freqüência (por exemplo, como produzido pelo decodificador de descrição de informação temporal 280a). Adicional ou alternativamente, o gerador 330 pode ser configurado para efetuar a formação espectral e/ou de amplitude de ruído aleatório para gerar o sinal de excitação de banda alta. O gerador 330 pode ser implementado como um caso do gerador de sinal de excitação de banda alta A60, como acima descrito. O filtro de síntese 290b é configurado de acordo com um conjunto de valores dentro da descrição de um envelope espectral através da segunda banda de freqüência (por exemplo, um ou mais vetores de coeficientes LSP ou LPC) para produzir a parte decodificada do quadro através da segunda banda de freqüência em resposta ao sinal de excitação de banda alta.
Como exemplo de uma implementação do equipamento 202 que inclui uma implementação 242 do segundo módulo 240, a lógica de controle 210 é configurada para produzir um sinal binário para o seletor 340 de tal forma que cada valor da seqüência possua um estado A ou estado B. Neste caso, se o índice de codificação do quadro atual indicar que ele está inativo, a lógica de controle 210 gera um valor possuindo o estado A, o que leva o seletor 340 a selecionar a saída do buffer 300 (isto é, seleção A). Caso contrário, a lógica de controle 210 gera um valor possuindo um estado B, o que leva o seletor 340 a selecionar a saída do decodificador 270b (isto é, seleção B). O equipamento 202 pode ser configurado de tal forma que a lógica de controle 210 controle uma operação do buffer 300. Como exemplo, o buffer 300 pode ser configurado de modo que um valor do sinal de controle que possui o estado B leve o buffer 300 a armazenar a saída correspondente do decodificador 270b. Tal controle pode ser implementado ao aplicar o sinal de controle a uma entrada de habilitação de escrita do buffer 300, em que a entrada é configurada de tal forma que o estado B corresponda a seu estado ativo. Alternativamente, a lógica de controle 210 pode ser implementada para gerar um segundo sinal de controle, incluindo também uma seqüência de valores que é baseada nos índices de codificação de quadros encodifiçados do sinal de fala encodificado, para controlar uma operação do buffer 300. A Figura 34B apresenta um diagrama em blocos de uma implementação 244 de um segundo módulo 240. O segundo módulo 244 inclui o decodificador de descrição de envelope espectral 270b e um caso 280b do decodificador de descrição de informação temporal 280 que é configurado para decodificar uma descrição de informação temporal para a segunda banda de freqüência (por exemplo, como recebida do analisador 250). O segundo módulo 244 compreende também uma implementação 302 de um buffer 300 que é também configurada para armazenar uma ou mais descrições de informação temporal através da segunda banda de freqüência como informação temporal de referência. O segundo módulo 244 inclui uma implementação 342 do seletor 340 que é configurada para selecionar, de acordo com o estado de um valor correspondente do sinal de controle gerado pela lógica de controle 210, uma descrição decodificada de um envelope espectral e uma descrição decodificada de informação temporal proveniente (a) do buffer 302, ou (b) dos decodificadores 270b e 280b. Um caso 290b do filtro de síntese 290 é configurado para gerar uma parte decodificada do quadro através da segunda banda de freqüência (por exemplo, um sinal de banda alta) que é baseado nas descrições decodificadas de um envelope espectral e informações temporais recebidas através do seletor 342. Em uma implementação típica do aparelho 202 que inclui o segundo módulo 244, o decodificador de descrição de informação temporal 280b é configurado para produzir uma descrição decodificada da informação temporal que inclui um sinal de excitação para a segunda banda de freqüência e o filtro de síntese 290b é configurado de acordo com um conjunto de valores dentro da descrição de um envelope espectral através da segunda banda de freqüência (por exemplo, um ou mais vetores de coeficientes LSP ou LPC) para produzir a parte decodificada do quadro através da segunda banda de freqüência em resposta ao sinal de excitação. A Figura 34C apresenta um diagrama em blocos de uma implementação 246 do segundo módulo 242 que inclui o buffer 302 e o seletor 342. O segundo módulo 246 compreende também um caso 280c do decodificador de descrição de informação temporal 280, que é configurado para decodificar uma descrição de um envelope temporal para a segunda banda de freqüência, e um elemento de controle de ganho 350 (por exemplo, um multiplicador ou amplificador) que é configurado para aplicar uma descrição de um envelope temporal recebido através do seletor 342 à parte decodificada do quadro através da segunda banda de freqüência. Para um caso em que a descrição decodificada de um envelope temporal inclui valores de formato de ganho, o elemento de controle de ganho 350 pode incluir uma lógica configurada para aplicar os valores de formato de ganho a respectivos sub-quadros da parte decodificada.
As Figuras 34A-34C apresentam implementações do segundo módulo 240 em que o buffer 300 recebe descrições completamente decodificadas de envelopes espectrais (e, em alguns casos, de informação temporal). Implementações similares podem ser dispostas de forma que o buffer 300 receba descrições que não são totalmente decodificadas. Como exemplo, pode ser desejável reduzir as demandas de armazenamento ao armazenar a descrição na forma quantizada (por exemplo, como recebida do analisador 250). Nestes casos, o caminho de sinal proveniente do buffer 300 para o seletor 340 pode ser configurado para incluir uma lógica de decodificação, tal como um dequantizador e/ou um bloco de transformada inversa. A Figura 35A apresenta um diagrama de estado de acordo com o qual uma implementação da lógica de controle 210 pode ser configurada para operar. Neste diagrama, os rótulos dos caminhos indicam o tipo de quadro associado ao esquema de codificação do quadro atual, em que A indica um esquema de codificação usado apenas para quadros ativos, I indica um esquema de codificação usado apenas para quadros inativos, e M (para "mixados") indica um esquema de codificação usado para quadros ativos e para quadros inativos. Como exemplo, tal decodificador pode estar incluído em um sistema de codificação que usa um conjunto de esquemas de codificação como apresentado na Figura 18, em que os esquemas 1, 2 e 3 correspondem aos rótulos dos caminhos A, M e I, respectivamente. Os rótulos de estado na Figura 35A indicam o estado dos valores correspondentes dos sinais de controle.
Como acima mencionado, o equipamento 202 pode ser configurado de tal forma que a lógica de controle 210 controle uma operação do buffer 300. Para o caso em que o equipamento 202 é configurado para efetuar uma operação de armazenamento de informações espectrais de referência em duas partes, a lógica de controle 210 pode ser configurada para controlar o buffer 300 para efetuar uma tarefa selecionada dentre três tarefas: (1) armazenar provisoriamente informações com base em um quadro encodificado, (2) completar o armazenamento de informações armazenadas provisoriamente como informações espectrais de referência e/ou informações temporais, e (3) emitir informações espectrais de referência e/ou informações temporais armazenadas.
Em tal exemplo, a lógica de controle 210 é implementada para produzir um sinal de controle cujos valores possuem pelo menos quatro estados possíveis, cada um correspondendo a um respectivo estado do diagrama apresentado na Figura 35A, que controla a operação do seletor 340 e do buffer 300. Como outro exemplo, a lógica de controle 210 é implementada para produzir (1) um sinal de controle cujos valores possuem pelo menos dois estados possíveis, para controlar uma operação do seletor 340 e (2) um segundo sinal de controle, incluindo uma seqüência de valores que é baseada nos índices de codificação de quadros encodifiçados do sinal de fala encodificado e cujos valores possuem pelo menos três estados possíveis, para controlar uma operação do buffer 300.
Pode ser desejável configurar o buffer 300 de tal modo que, durante o processamento de um quadro para o qual uma operação para completar o armazenamento das informações armazenadas provisoriamente for selecionada, as informações armazenadas provisoriamente estão também disponíveis para o seletor 340 selecionar. Em tal caso, a lógica de controle 210 pode ser configurada para emitir os valores atuais dos sinais para controlar o seletor 340 e o buffer 300 em momentos ligeiramente diferentes. Como exemplo, a lógica de controle 210 pode ser configurada para controlar o buffer 300 para mover um ponteiro de leitura cedo o suficiente no período de quadro que o buffer 300 emite as informações armazenadas provisoriamente em tempo para que o seletor 340 as selecione.
Como acima descrito com referência à Figura 13B, pode ser desejável algumas vezes que um encodificador de fala efetuando uma implementação do método M100 use uma taxa de bits mais elevada para encodificar um quadro inativo que é circundado por outros quadros inativos. Em tal caso, pode ser desejável que um decodificador de fala correspondente armazene informações com base em tal quadro encodificado como informações espectrais de referência e/ou informações temporais, de forma que as informações possam ser usadas na decodificação de quadros inativos futuros na série.
Os vários elementos de uma implementação do equipamento 200 podem ser incorporados em qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação tencionada. Como exemplo, tais elementos podem ser fabricados como dispositivos eletrônicos e/ou ópticos residentes, por exemplo, no mesmo chip ou entre dois ou mais chips em um conjunto de chips (chipset). Um exemplo de tal dispositivo consiste de um arranjo programável ou fixo de elementos lógicos, tais como transistores ou portas lógicas, quaisquer de tais elementos podem ser implementados como um ou mais de tais arranjos. Quaisquer dois ou mais, ou mesmo a totalidade, de tais elementos podem ser implementados dentro do mesmo arranjo ou arranjos. Tais arranjo ou arranjos podem ser implementados dentro de um ou mais chips (por exemplo, dentro de um conjunto de chips incluindo dois ou mais chips).
Um ou mais elementos das várias implementações do equipamento 200 como aqui descrito podem ser também implementados no todo ou em parte como um ou mais conjuntos de instruções dispostos para execução em um ou mais arranjos fixos ou programáveis de elementos lógicos, tais como microprocessadores, processadores embutidos, núcleos IP, processadores de sinal digital, arranjos de porta programáveis em campo (FPGAs), produtos padrão de aplicação específica (ASSPs) e circuitos integrados de aplicação específica (ASICs). Quaisquer dos vários elementos de uma implementação do equipamento 200 podem ser também incorporados como um ou mais computadores (por exemplo, máquinas incluindo um ou mais arranjos programados para execução em um ou mais conjuntos ou seqüências de instruções, também designados como "processadores") e quaisquer dois ou mais, ou mesmo a totalidade, de tais elementos podem ser implementados dentro do mesmo computador ou computadores.
Os vários elementos de uma implementação do equipamento 200 podem ser incluídos em um dispositivo para comunicação sem fio tal como um telefone celular, ou outro dispositivo possuindo tal capacidade de comunicação. Tal dispositivo pode ser configurado para comunicação com redes comutadas por circuito e/ou comutadas por pacotes (por exemplo, usando um ou mais protocolos tais como o VoIP) . Tal dispositivo pode ser configurado para efetuar operações em um sinal portando os quadros encodifiçados, tais como deintercalação, depuncionamento, decodificação de um ou mais códigos convolucionais, decodificação de um ou mais códigos de correção de erros, decodificação de uma ou mais camadas de protocolos de rede (por exemplo, Ethernet, TCP/IP, CDMA 2000), demodulação de rádio freqüência (RF) , e/ou recepção RF. É possível que um ou mais elementos de uma implementação do equipamento 200 sejam usados para efetuar tarefas ou executar outros conjuntos de instruções que não estão diretamente relacionados a uma operação do equipamento, tal como uma tarefa relacionada a outra operação de um dispositivo ou sistema em que o equipamento esteja embutido. É também possível que um ou mais elementos de uma implementação do equipamento 200 possuam uma estrutura em comum (por exemplo, um processador usado para executar parte de um código correspondendo a diferentes elementos em momentos diferentes, um conjunto de instruções executadas para efetuar tarefas correspondendo a diferentes elementos em momentos diferentes,- ou uma disposição de dispositivos eletrônicos e/ou ópticos efetuando operações para diferentes elementos em momentos diferentes). Como exemplo, a lógica de controle 210, o primeiro módulo 230, e o segundo módulo 240 são implementados como conjuntos de instruções dispostos para execução no mesmo processador. Como outro exemplo, os decodificadores de descrição de envelope espectral 270a e 270b são implementados como o mesmo conjunto de instruções em execução em diferentes momentos.
Um dispositivo para comunicação sem fio, tal como um telefone celular ou outro dispositivo possuindo tal capacidade de comunicação, pode ser configurado para incluir implementações do equipamento 100 e do equipamento 200. Em tal caso, é possível que o equipamento 100 e o equipamento 200 possuam uma estrutura em comum. Como exemplo, o equipamento 100 e o equipamento 200 são implementados de modo a incluir conjuntos de instruções que estão dispostos para execução no mesmo processador.
Em qualquer momento durante uma comunicação telefônica bidirecional, pode se esperar que a entrada para pelo menos um dos encodif icadores de fala será um quadro inativo. Pode ser desejável configurar um encodificador de fala para transmitir quadros encodifiçados para menos do que o total dos quadros em uma série de quadros inativos. Tal operação é também designada como transmissão descontínua (DTX). Como exemplo, um encodificador de fala efetua a DTX ao transmitir um quadro encodificado (também designado como um "descritor de silêncio" ou SID) para cada seqüência de n quadros inativos consecutivos, em que n é 32. O decodificador correspondente aplica as informações no SID para atualizar um modelo de geração de ruído que é usado por um algoritmo de geração de ruído de conforto para sintetizar quadros inativos. Outros valores típicos de n incluem 8 e 16. Outros nomes usados na área para indicar um SID incluem "atualização para a descrição de silêncio", "descrição de inserção de silêncio", "descritor de inserção de silêncio", "quadro descritor de ruído de conforto" e "parâmetros de ruído de conforto".
Pode ser observado que em uma implementação do método M200, os quadros encodificados de referência são similares aos SIDs pelo fato de que eles propiciam atualizações ocasionais para a descrição de silêncio para a parte de banda alta do sinal de fala. Apesar de as vantagens potenciais da DTX serem tipicamente maiores em redes comutadas por pacotes do que em redes comutadas por circuito, deve ser notado que os método M100 e M200 podem ser aplicados tanto a redes comutadas por circuito como a redes comutadas por pacotes.
Uma implementação do método M100 pode ser combinada com DTX (por exemplo, em uma rede comutada por pacotes), de tal forma que os quadros encodificados sejam transmitidos para menos do que o total dos quadros inativos. Um codificador de fala efetuando tal método pode ser configurado para a transmissão de um SID ocasionalmente, em algum intervalo regular (por exemplo, a cada oitavo, décimo sexto, ou trigésimo segundo quadro em uma série de quadros inativos) ou quando de algum evento. A Figura 35B apresenta um exemplo em que um SID é transmitido a cada sexto quadro. Em tal caso, o SID inclui uma descrição de um envelope espectral através da primeira banda de freqüência.
Uma implementação correspondente do método M200 pode ser configurada para gerar, em resposta a uma falha na recepção de um quadro encodificado durante um período de quadros que segue a um quadro inativo, de um quadro que é baseado na informação espectral de referência. Como mostrado na Figura 35B, tal implementação do método M200 pode ser configurada para obter uma descrição de um envelope espectral através da primeira banda de freqüência para cada quadro inativo interveniente, com base em informações provenientes de um ou mais SIDS recebidos. Como exemplo, tal operação pode incluir uma interpolação entre descrições de envelopes espectrais provenientes dos dois SIDs mais recentes, tal como nos exemplos apresentados nas Figuras 30A a 30C. Para a segunda banda de freqüência, o método pode ser configurado para obter uma descrição de um envelope espectral (e possivelmente uma descrição de um envelope temporal) para cada quadro inativo interveniente, com base em informações provenientes de um ou mais quadros encodifiçados de referência recentes (por exemplo, de acordo com qualquer um dos exemplos aqui descritos) . Tal método pode ser também configurado para gerar um sinal de excitação para a segunda banda de freqüência que é baseado em um sinal de excitação para a primeira banda de freqüência proveniente de um ou mais SIDs recentes. A apresentação acima das configurações descritas é provida para permitir que os técnicos na área efetuem ou façam uso dos métodos e outras estruturas aqui descritos. Os fluxogramas, diagramas em blocos e outras estruturas aqui descritas e apresentadas constituem apenas exemplos, e outras variações de tais estruturas também estão dentro do escopo da invenção. Várias modificações são possíveis para tais configurações, e os princípios genéricos aqui apresentados podem ser também aplicados a outras configurações. Como exemplo, os vários elementos e tarefas aqui descritos para o processamento de uma parte de banda alta de um sinal de fala que inclui freqüências acima da faixa de uma parte de banda estreita do sinal de fala podem ser aplicados alternativa ou adicionalmente, e de forma análoga, para o processamento de uma parte de banda baixa de um sinal de fala que inclui freqüências abaixo da faixa de uma parte de banda estreita do sinal de fala. Em tal caso, as técnicas e estruturas descritas para derivar um sinal de excitação de banda alta a partir do sinal de excitação de banda estreita podem ser usadas para derivar um sinal de excitação de banda baixa a partir do sinal de excitação de banda estreita. Dessa forma, a presente invenção não deve ficar limitada às configurações apresentadas acima, mas deve receber o escopo mais amplo consistente com os princípios e as novas características aqui descritos, em qualquer sessão aqui, incluindo nas reivindicações apensas tal como depositadas, as quais fazem parte integral da descrição original.
Os exemplos de CODECs que podem ser usados, ou adaptados para uso, com encodificadores de fala, métodos de encodificação de fala, decodificadores de fala, e/ou métodos para decodificação de fala tal como aqui descritos incluem um codec de taxa variável aperfeiçoado (EVRC -Enhanced Variable Rate CODEC), como descrito no documento 3GPP2 C.S0014-C versão 1.0, "ENHANCED VARIABLE RATE CODEC, SPEECH SERVICE OPTIONS 3, 68 e 70 FOR WIDEBAND SPREAD SPECTRUM DIGITAL SYSTEMS" (3rd Generation Partnership Project 2, Arlington, VA, Janeiro de 2007); o CODEC de fala de múltiplas taxas adaptativo (AMR), como descrito no documento ETSI TS 126 092 V6.0.0 (European Telecommunications Standards Institute, Sophia Antipolis Cedex, FR, de dezembro de 2004); e o CODEC de fala AMR de banda larga, como descrito no documento ETSI TS 126 192 V6.0.0 (ETSI, dezembro de 2004).
Os técnicos na área notarão que as informações e sinais podem ser representados usando qualquer uma dentre uma diversidade de tecnologias e técnicas diferentes. Como exemplo, dados, instruções, comandos, informações, sinais, bits e símbolos que possam ter sido mencionados por toda a descrição acima podem ser representados por voltagens, correntes, ondas eletromagnéticas, campos ou partículas magnéticos, campos ou partículas ópticos, ou quaisquer combinações destes. Apesar de o sinal a partir do qual são derivados os quadros encodifiçados é designado como um "sinal de fala", é também contemplado e aqui descrito que este sinal pode portar música ou outro conteúdo de informação que não-fala durante os quadros ativos.
Os técnicos na área notarão também que os vários exemplos de blocos lógicos, módulos, circuitos e operações descritos em conexão às configurações aqui descritas podem ser implementados como hardware eletrônico, software de computador, ou combinações destes. Tais blocos lógicos, módulos, circuitos, e operações podem ser implementados ou efetuados com um processador de propósito geral, processadores de sinal digital (DSP), ASIC, FPGA ou outros dispositivos lógicos programáveis, portas individuais ou lógica de transistores, componentes de hardware individuais, ou qualquer combinação destes projetada para efetuar as funções aqui descritas. Um processador de propósito geral pode ser um microprocessador, porém como alternativa, o processador pode ser qualquer processador, controlador, micro-controlador ou máquina de estado convencionais. Um processador pode ser também implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra configuração similar.
As tarefas dos métodos ou algoritmos descritas em conexão com as modalidades aqui descritas podem ser incorporadas diretamente em hardware, em um módulo de software executado· por um processador, ou em uma combinação de ambos. 0 módulo de software poderia residir em uma memória RAM, memória flash, memória ROM, memória EPROM, memória EEPROM, registradores, disco rígido, um disco removível, um CD-ROM, ou qualquer outra forma de meio de armazenagem conhecido pelos técnicos na área. Um exemplo de um meio de armazenamento é acoplado ao processador de tal forma que o processador possa ler informações a partir do, e gravar informações no, meio de armazenamento. Como alternativa, o meio de armazenamento pode ser integrado ao processador. 0 processador e o meio de armazenamento podem residir em um ASIC. 0 ASIC pode residir em um terminal de usuário. Como alternativa, o processador e o meio de armazenamento podem residir como componentes individuais em um terminal de usuário.
Cada uma das configurações aqui descritas pode ser implementada, pelo menos em parte, como um circuito "hard-wired", como uma configuração de circuito fabricada em um circuito integrado de aplicação específica, ou na forma de um programa de firmware carregado em um armazenamento não-volátil ou um programa de software carregado a partir de, ou para, um meio para armazenamento de dados como um código legível por máquina, tal código consistindo de instruções para execução por um arranjo de elementos lógicos, tal como um microprocessador ou outra unidade de processamento de sinal digital. 0 meio de armazenagem de dados pode ser um arranjo de elementos de armazenagem, tal como, uma memória de semicondutor (a qual pode incluir, sem qualquer limitação, uma RAM dinâmica ou estática), ROM (memória apenas para leitura) e/ou RAM flash), ou uma memória ferro elétrica, magneto resistiva, ovônica, polimérica, ou de mudança de fase; ou um meio de disco, tal como um disco magnético ou óptico. 0 termo "software" deve ser considerado como incluindo um código fonte, um código de linguagem de baixo nível, um código de máquina, um código binário, firmware, macro código, micro código, qualquer um dentre um ou mais conjuntos ou seqüências de instruções executáveis por um arranjo de elementos lógicos, bem como quaisquer combinações destes exemplos.
REIVINDICAÇÕES

Claims (14)

1. Método para codificar quadros de um sinal de fala, o método caracterizado por compreender: produzir (T110) um primeiro quadro codificado que é baseado em um primeiro quadro do sinal de fala e possui um comprimento de p bits, p sendo um inteiro positivo diferente de zero; produzir (T120) um segundo quadro codificado que é baseado em um segundo quadro do sinal de fala e possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero menor do que p; produzir (T130) um terceiro quadro codificado que é baseado em um terceiro quadro do sinal de fala e possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q; em que o segundo quadro é um quadro inativo que ocorre após o primeiro quadro, em que o terceiro quadro é um quadro inativo que ocorre após o segundo quadro, em que todos os quadros do sinal de fala entre os primeiro e terceiro quadros são inativos, e em que o segundo quadro inclui (A) uma descrição de um envelope espectral, através de uma primeira banda de frequência, de uma parte do sinal de fala que inclui o segundo quadro e (B) uma descrição de um envelope espectral, através de uma segunda banda de frequência diferente da primeira banda de frequência, de uma parte do sinal de fala que inclui o segundo quadro.
2. Método, de acordo com a reivindicação 1, caracterizado por pelo menos parte da segundo banda de frequência ser maior do que a primeira banda de frequência.
3. Método, de acordo com a reivindicação 1, caracterizado pela primeira e a segunda bandas de frequência se sobreporem por pelo menos duzentos Hertz.
4. Método, de acordo com a reivindicação 1, caracterizado por pelo menos uma dentre a descrição de um envelope espectral através de uma primeira banda de frequência e a descrição de um envelope espectral através de uma segunda banda de frequência ser baseada em uma média de pelo menos duas descrições de envelopes espectrais de partes correspondentes do sinal de fala, cada parte correspondente incluindo um quadro inativo do sinal de fala.
5. Método, de acordo com a reivindicação 1, caracterizado pelo segundo quadro codificado ser baseado em informações provenientes de pelo menos dois quadros inativos do sinal de fala.
6. Método, de acordo com a reivindicação 1, caracterizado pelo terceiro quadro codificado (A) incluir uma descrição de um envelope espectral, através de uma primeira banda de frequência, de uma parte do sinal de fala que inclui o terceiro quadro e (B) não incluir uma descrição de um envelope espectral através da segunda banda de frequência.
7. Método, de acordo com a reivindicação 1, caracterizado pelo segundo quadro codificado incluir uma descrição de um envelope temporal de uma parte do sinal de fala que inclui o segundo quadro, e em que o terceiro quadro codificado inclui uma descrição de um envelope temporal de uma parte do sinal de fala que inclui o terceiro quadro.
8. Método, de acordo com a reivindicação 1, caracterizado pelo segundo quadro codificado incluir (A) uma descrição de um envelope temporal, para uma primeira banda de frequência, de uma parte do sinal de fala que inclui o segundo quadro e (B) uma descrição de um envelope espectral, para uma segunda banda de frequência diferente da primeira banda de frequência, de uma parte do sinal de fala que inclui o segundo quadro; e em que o terceiro quadro codificado não inclui uma descrição de um envelope temporal para a segunda banda de frequência.
9. Método, de acordo com a reivindicação 1, caracterizado pelo comprimento da sequência mais recente de quadros ativos consecutivos em relação ao segundo quadro ser pelo menos igual a um valor limite predeterminado.
10. Equipamento para codificar quadros de um sinal de fala, o equipamento caracterizado por compreender: meios (T110) para produzir, com base em um primeiro quadro do sinal de fala, um primeiro quadro codificado que possui um comprimento de p bits, p sendo um inteiro positivo diferente de zero; meios (T120) para produzir, com base em um segundo quadro do sinal de fala, um segundo quadro codificado que possui um comprimento de q bits, q sendo um inteiro positivo diferente de zero menor do que p; meios (T130) para produzir, com base em um terceiro quadro do sinal de fala, um terceiro quadro codificado que possui um comprimento de r bits, r sendo um inteiro positivo diferente de zero menor do que q; em que o segundo quadro é um quadro inativo que ocorre após o primeiro quadro, em que o terceiro quadro é um quadro inativo que ocorre após o segundo quadro, em que todos os quadros do sinal de fala entre os primeiro e terceiro quadros são inativos, e em que os meios para produzir um segundo quadro codificado são configurados para produzir o segundo quadro para incluir (A) uma descrição de um envelope espectral, através de uma primeira banda de frequência, de uma parte do sinal de fala que inclui o segundo quadro e (B) uma descrição de um envelope espectral, através de uma segunda banda de frequência diferente da primeira banda de frequência, de uma parte do sinal de fala que inclui o segundo quadro.
11. Equipamento, de acordo com a reivindicação 10, caracterizado pelos meios para produzir um terceiro quadro codificado serem configurados para produzir o terceiro quadro codificado (A) para incluir uma descrição de um envelope espectral através da primeira banda de frequência e (B) para não incluir uma descrição de um envelope espectral através da segunda banda de frequência.
12. Memória caracterizada por compreender instruções para fazer com que um computador realize um método conforme definido em qualquer uma das reivindicações 1 a 9.
13. Método para processar um sinal de fala codificado, o método caracterizado por compreender: com base em informações do primeiro quadro codificado do sinal de fala codificado, obter (T210) uma descrição de um envelope espectral de um primeiro quadro de um sinal de fala através de (A) uma primeira banda de frequência e (B) a segunda banda de frequência diferente da primeira banda de frequência; com base em informações do segundo quadro codificado do sinal de fala codificado, obter (T220) uma descrição de um envelope espectral de um segundo quadro do sinal de fala através da primeira banda de frequência; e com base em informações do primeiro quadro codificado, obter uma descrição de um envelope espectral do segundo quadro através da segunda banda de frequência, e em que o primeiro quadro codificado é codificado de acordo com um esquema de codificação de banda larga, e em que o segundo quadro codificado é codificado de acordo com um esquema de codificação de banda estreita.
14. Equipamento para processar um sinal de fala codificado, o equipamento caracterizado por compreender: meios (T210) para obter, com base em informações do primeiro quadro codificado do sinal de fala codificado, uma descrição de um envelope espectral de um primeiro quadro de um sinal de fala através de (A) uma primeira banda de frequência e (B) a segunda banda de frequência diferente da primeira banda de frequência; meios (T220) para obter, com base em informações do segundo quadro codificado do sinal de fala codificado, uma descrição de um envelope espectral de um segundo quadro do sinal de fala através da primeira banda de frequência; e meios (T230) para obter, com base em informações do primeiro quadro codificado, uma descrição de um envelope espectral do segundo quadro através da segunda banda de frequência, e em que o primeiro quadro codificado é codificado de acordo com um esquema de codificação de banda larga, e em que o segundo quadro codificado é codificado de acordo com um esquema de codificação de banda estreita.
BRPI0715064-4 2006-07-31 2007-07-31 sistemas, métodos e equipamentos para encodificação e decodificação em banda larga de quadros inativos BRPI0715064B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US83468806P 2006-07-31 2006-07-31
US60834688 2006-07-31
US11830812 2007-07-30
US11/830,812 US8260609B2 (en) 2006-07-31 2007-07-30 Systems, methods, and apparatus for wideband encoding and decoding of inactive frames
PCT/US2007/074886 WO2008016935A2 (en) 2006-07-31 2007-07-31 Systems, methods, and apparatus for wideband encoding and decoding of inactive frames

Publications (2)

Publication Number Publication Date
BRPI0715064A2 BRPI0715064A2 (pt) 2013-05-28
BRPI0715064B1 true BRPI0715064B1 (pt) 2019-12-10

Family

ID=38692069

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0715064-4 BRPI0715064B1 (pt) 2006-07-31 2007-07-31 sistemas, métodos e equipamentos para encodificação e decodificação em banda larga de quadros inativos

Country Status (11)

Country Link
US (2) US8260609B2 (pt)
EP (1) EP2047465B1 (pt)
JP (3) JP2009545778A (pt)
KR (1) KR101034453B1 (pt)
CN (2) CN103151048B (pt)
BR (1) BRPI0715064B1 (pt)
CA (2) CA2778790C (pt)
ES (1) ES2406681T3 (pt)
HK (1) HK1184589A1 (pt)
RU (1) RU2428747C2 (pt)
WO (1) WO2008016935A2 (pt)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260609B2 (en) * 2006-07-31 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of inactive frames
US8639500B2 (en) * 2006-11-17 2014-01-28 Samsung Electronics Co., Ltd. Method, medium, and apparatus with bandwidth extension encoding and/or decoding
KR101565919B1 (ko) * 2006-11-17 2015-11-05 삼성전자주식회사 고주파수 신호 부호화 및 복호화 방법 및 장치
KR20080059881A (ko) * 2006-12-26 2008-07-01 삼성전자주식회사 음성 신호의 전처리 장치 및 방법
KR101379263B1 (ko) * 2007-01-12 2014-03-28 삼성전자주식회사 대역폭 확장 복호화 방법 및 장치
US8392198B1 (en) * 2007-04-03 2013-03-05 Arizona Board Of Regents For And On Behalf Of Arizona State University Split-band speech compression based on loudness estimation
US8064390B2 (en) * 2007-04-27 2011-11-22 Research In Motion Limited Uplink scheduling and resource allocation with fast indication
US9495971B2 (en) * 2007-08-27 2016-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Transient detector and method for supporting encoding of an audio signal
CN100524462C (zh) 2007-09-15 2009-08-05 华为技术有限公司 对高带信号进行帧错误隐藏的方法及装置
CN100555414C (zh) * 2007-11-02 2009-10-28 华为技术有限公司 一种dtx判决方法和装置
CN101868821B (zh) * 2007-11-21 2015-09-23 Lg电子株式会社 用于处理信号的方法和装置
US8688441B2 (en) * 2007-11-29 2014-04-01 Motorola Mobility Llc Method and apparatus to facilitate provision and use of an energy value to determine a spectral envelope shape for out-of-signal bandwidth content
US20090168673A1 (en) * 2007-12-31 2009-07-02 Lampros Kalampoukas Method and apparatus for detecting and suppressing echo in packet networks
US8433582B2 (en) * 2008-02-01 2013-04-30 Motorola Mobility Llc Method and apparatus for estimating high-band energy in a bandwidth extension system
US20090201983A1 (en) * 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
DE102008009718A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
DE102008009719A1 (de) 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
DE102008009720A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Dekodierung von Hintergrundrauschinformationen
CN101335000B (zh) 2008-03-26 2010-04-21 华为技术有限公司 编码的方法及装置
TWI395976B (zh) * 2008-06-13 2013-05-11 Teco Image Sys Co Ltd 掃描模組之光源投射裝置及其光源排列方法
US20090319263A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US8768690B2 (en) * 2008-06-20 2014-07-01 Qualcomm Incorporated Coding scheme selection for low-bit-rate applications
AU2009267529B2 (en) * 2008-07-11 2011-03-03 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for calculating bandwidth extension data using a spectral tilt controlling framing
US8463412B2 (en) * 2008-08-21 2013-06-11 Motorola Mobility Llc Method and apparatus to facilitate determining signal bounding frequencies
CN101751926B (zh) 2008-12-10 2012-07-04 华为技术有限公司 信号编码、解码方法及装置、编解码系统
KR101622950B1 (ko) * 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
US8463599B2 (en) * 2009-02-04 2013-06-11 Motorola Mobility Llc Bandwidth extension method and apparatus for a modified discrete cosine transform audio coder
JP5754899B2 (ja) 2009-10-07 2015-07-29 ソニー株式会社 復号装置および方法、並びにプログラム
KR101137652B1 (ko) * 2009-10-14 2012-04-23 광운대학교 산학협력단 천이 구간에 기초하여 윈도우의 오버랩 영역을 조절하는 통합 음성/오디오 부호화/복호화 장치 및 방법
US8428209B2 (en) * 2010-03-02 2013-04-23 Vt Idirect, Inc. System, apparatus, and method of frequency offset estimation and correction for mobile remotes in a communication network
JP5850216B2 (ja) 2010-04-13 2016-02-03 ソニー株式会社 信号処理装置および方法、符号化装置および方法、復号装置および方法、並びにプログラム
JP5609737B2 (ja) 2010-04-13 2014-10-22 ソニー株式会社 信号処理装置および方法、符号化装置および方法、復号装置および方法、並びにプログラム
MX2012011802A (es) * 2010-04-13 2013-02-26 Fraunhofer Ges Forschung Metodo y codificador y descodificador para la presentacion precisa de muestra de una señal de audio.
KR20140026229A (ko) * 2010-04-22 2014-03-05 퀄컴 인코포레이티드 음성 액티비티 검출
US8600737B2 (en) 2010-06-01 2013-12-03 Qualcomm Incorporated Systems, methods, apparatus, and computer program products for wideband speech coding
JP6075743B2 (ja) 2010-08-03 2017-02-08 ソニー株式会社 信号処理装置および方法、並びにプログラム
US8990094B2 (en) * 2010-09-13 2015-03-24 Qualcomm Incorporated Coding and decoding a transient frame
KR101826331B1 (ko) * 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
JP5707842B2 (ja) 2010-10-15 2015-04-30 ソニー株式会社 符号化装置および方法、復号装置および方法、並びにプログラム
US8898058B2 (en) 2010-10-25 2014-11-25 Qualcomm Incorporated Systems, methods, and apparatus for voice activity detection
WO2012083554A1 (en) * 2010-12-24 2012-06-28 Huawei Technologies Co., Ltd. A method and an apparatus for performing a voice activity detection
US8751223B2 (en) * 2011-05-24 2014-06-10 Alcatel Lucent Encoded packet selection from a first voice stream to create a second voice stream
CN102800317B (zh) * 2011-05-25 2014-09-17 华为技术有限公司 信号分类方法及设备、编解码方法及设备
US8994882B2 (en) * 2011-12-09 2015-03-31 Intel Corporation Control of video processing algorithms based on measured perceptual quality characteristics
CN103187065B (zh) 2011-12-30 2015-12-16 华为技术有限公司 音频数据的处理方法、装置和系统
US9208798B2 (en) 2012-04-09 2015-12-08 Board Of Regents, The University Of Texas System Dynamic control of voice codec data rate
JP5997592B2 (ja) * 2012-04-27 2016-09-28 株式会社Nttドコモ 音声復号装置
JP6200034B2 (ja) * 2012-04-27 2017-09-20 株式会社Nttドコモ 音声復号装置
CN102723968B (zh) * 2012-05-30 2017-01-18 中兴通讯股份有限公司 一种提升空口容量的方法及装置
WO2014118159A1 (en) * 2013-01-29 2014-08-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for generating a frequency enhanced signal using shaping of the enhancement signal
CA2985115C (en) * 2013-01-29 2019-02-19 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for providing an encoded audio information, method for providing a decoded audio information, computer program and encoded representation using a signal-adaptive bandwidth extension
US9336789B2 (en) * 2013-02-21 2016-05-10 Qualcomm Incorporated Systems and methods for determining an interpolation factor set for synthesizing a speech signal
EP3086319B1 (en) * 2013-02-22 2019-06-12 Telefonaktiebolaget LM Ericsson (publ) Methods and apparatuses for dtx hangover in audio coding
FR3008533A1 (fr) 2013-07-12 2015-01-16 Orange Facteur d'echelle optimise pour l'extension de bande de frequence dans un decodeur de signaux audiofrequences
EP2830055A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Context-based entropy coding of sample values of a spectral envelope
EP2830063A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for decoding an encoded audio signal
GB201316575D0 (en) * 2013-09-18 2013-10-30 Hellosoft Inc Voice data transmission with adaptive redundancy
EP3048609A4 (en) 2013-09-19 2017-05-03 Sony Corporation Encoding device and method, decoding device and method, and program
JP5981408B2 (ja) * 2013-10-29 2016-08-31 株式会社Nttドコモ 音声信号処理装置、音声信号処理方法、及び音声信号処理プログラム
US20150149157A1 (en) * 2013-11-22 2015-05-28 Qualcomm Incorporated Frequency domain gain shape estimation
KR102513009B1 (ko) 2013-12-27 2023-03-22 소니그룹주식회사 복호화 장치 및 방법, 및 프로그램
JP6035270B2 (ja) * 2014-03-24 2016-11-30 株式会社Nttドコモ 音声復号装置、音声符号化装置、音声復号方法、音声符号化方法、音声復号プログラム、および音声符号化プログラム
US9697843B2 (en) * 2014-04-30 2017-07-04 Qualcomm Incorporated High band excitation signal generation
EP2950474B1 (en) * 2014-05-30 2018-01-31 Alcatel Lucent Method and devices for controlling signal transmission during a change of data rate
CN105336336B (zh) * 2014-06-12 2016-12-28 华为技术有限公司 一种音频信号的时域包络处理方法及装置、编码器
EP2980797A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder, method and computer program using a zero-input-response to obtain a smooth transition
CN112992165A (zh) * 2014-07-28 2021-06-18 日本电信电话株式会社 编码方法、装置、程序以及记录介质
US10847170B2 (en) 2015-06-18 2020-11-24 Qualcomm Incorporated Device and method for generating a high-band signal from non-linearly processed sub-ranges
US9837089B2 (en) * 2015-06-18 2017-12-05 Qualcomm Incorporated High-band signal generation
JP2017150146A (ja) 2016-02-22 2017-08-31 積水化学工業株式会社 対象物を補強または補修する方法
CN106067847B (zh) * 2016-05-25 2019-10-22 腾讯科技(深圳)有限公司 一种语音数据传输方法及装置
US10573326B2 (en) * 2017-04-05 2020-02-25 Qualcomm Incorporated Inter-channel bandwidth extension
CA3098064A1 (en) 2018-04-25 2019-10-31 Dolby International Ab Integration of high frequency audio reconstruction techniques
WO2019210068A1 (en) 2018-04-25 2019-10-31 Dolby Laboratories Licensing Corporation Integration of high frequency reconstruction techniques with reduced post-processing delay
TWI740655B (zh) * 2020-09-21 2021-09-21 友達光電股份有限公司 顯示裝置的驅動方法
CN118230703A (zh) * 2022-12-21 2024-06-21 北京字跳网络技术有限公司 一种语音处理方法、装置和电子设备

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511073A (en) * 1990-06-25 1996-04-23 Qualcomm Incorporated Method and apparatus for the formatting of data for transmission
EP0588932B1 (en) 1991-06-11 2001-11-14 QUALCOMM Incorporated Variable rate vocoder
JP2779886B2 (ja) 1992-10-05 1998-07-23 日本電信電話株式会社 広帯域音声信号復元方法
GB2294614B (en) * 1994-10-28 1999-07-14 Int Maritime Satellite Organiz Communication method and apparatus
US5704003A (en) * 1995-09-19 1997-12-30 Lucent Technologies Inc. RCELP coder
US6049537A (en) * 1997-09-05 2000-04-11 Motorola, Inc. Method and system for controlling speech encoding in a communication system
JP3352406B2 (ja) * 1998-09-17 2002-12-03 松下電器産業株式会社 オーディオ信号の符号化及び復号方法及び装置
KR20010087393A (ko) 1998-11-13 2001-09-15 러셀 비. 밀러 폐루프 가변-레이트 다중모드 예측 음성 코더
US6456964B2 (en) * 1998-12-21 2002-09-24 Qualcomm, Incorporated Encoding of periodic speech using prototype waveforms
US6691084B2 (en) * 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
US6973140B2 (en) * 1999-03-05 2005-12-06 Ipr Licensing, Inc. Maximizing data rate by adjusting codes and code rates in CDMA system
KR100297875B1 (ko) * 1999-03-08 2001-09-26 윤종용 가변 속도 보코더를 사용하는 코드 분할 다중 접속 시스템의 음질 향상을 위한 방법
JP4438127B2 (ja) 1999-06-18 2010-03-24 ソニー株式会社 音声符号化装置及び方法、音声復号装置及び方法、並びに記録媒体
US6330532B1 (en) * 1999-07-19 2001-12-11 Qualcomm Incorporated Method and apparatus for maintaining a target bit rate in a speech coder
FI115329B (fi) 2000-05-08 2005-04-15 Nokia Corp Menetelmä ja järjestely lähdesignaalin kaistanleveyden vaihtamiseksi tietoliikenneyhteydessä, jossa on valmiudet useisiin kaistanleveyksiin
JP2003534578A (ja) 2000-05-26 2003-11-18 セロン フランス エスアーエス 狭帯域で符号化される信号を送信する送信器、受信側において符号化信号の帯域を拡大する受信器、対応する送信及び受信方法、及び、そのシステム
US6807525B1 (en) * 2000-10-31 2004-10-19 Telogy Networks, Inc. SID frame detection with human auditory perception compensation
US6879955B2 (en) * 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
DE60212696T2 (de) * 2001-11-23 2007-02-22 Koninklijke Philips Electronics N.V. Bandbreitenvergrösserung für audiosignale
CA2365203A1 (en) * 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
JP4272897B2 (ja) 2002-01-30 2009-06-03 パナソニック株式会社 符号化装置、復号化装置およびその方法
EP1470550B1 (en) * 2002-01-30 2008-09-03 Matsushita Electric Industrial Co., Ltd. Audio encoding and decoding device and methods thereof
CA2392640A1 (en) 2002-07-05 2004-01-05 Voiceage Corporation A method and device for efficient in-based dim-and-burst signaling and half-rate max operation in variable bit-rate wideband speech coding for cdma wireless systems
EP1550108A2 (en) 2002-10-11 2005-07-06 Nokia Corporation Methods and devices for source controlled variable bit-rate wideband speech coding
US20040098255A1 (en) * 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
KR100524065B1 (ko) 2002-12-23 2005-10-26 삼성전자주식회사 시간-주파수 상관성을 이용한 개선된 오디오 부호화및/또는 복호화 방법과 그 장치
US20050091044A1 (en) 2003-10-23 2005-04-28 Nokia Corporation Method and system for pitch contour quantization in audio coding
KR100587953B1 (ko) * 2003-12-26 2006-06-08 한국전자통신연구원 대역-분할 광대역 음성 코덱에서의 고대역 오류 은닉 장치 및 그를 이용한 비트스트림 복호화 시스템
FI119533B (fi) 2004-04-15 2008-12-15 Nokia Corp Audiosignaalien koodaus
TWI246256B (en) 2004-07-02 2005-12-21 Univ Nat Central Apparatus for audio compression using mixed wavelet packets and discrete cosine transformation
EP1788556B1 (en) 2004-09-06 2014-06-04 Panasonic Corporation Scalable decoding device and signal loss concealment method
US7983904B2 (en) 2004-11-05 2011-07-19 Panasonic Corporation Scalable decoding apparatus and scalable encoding apparatus
CN101076853B (zh) * 2004-12-10 2010-10-13 松下电器产业株式会社 宽带编码装置、宽带线谱对预测装置、频带可扩展编码装置以及宽带编码方法
US8102872B2 (en) * 2005-02-01 2012-01-24 Qualcomm Incorporated Method for discontinuous transmission and accurate reproduction of background noise information
RU2381572C2 (ru) * 2005-04-01 2010-02-10 Квэлкомм Инкорпорейтед Системы, способы и устройство широкополосного речевого кодирования
EP1875464B9 (en) * 2005-04-22 2020-10-28 Qualcomm Incorporated Method, storage medium and apparatus for gain factor attenuation
US8032369B2 (en) * 2006-01-20 2011-10-04 Qualcomm Incorporated Arbitrary average data rates for variable rate coders
JP4649351B2 (ja) 2006-03-09 2011-03-09 シャープ株式会社 デジタルデータ復号化装置
US8260609B2 (en) * 2006-07-31 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of inactive frames
US8532984B2 (en) * 2006-07-31 2013-09-10 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of active frames

Also Published As

Publication number Publication date
RU2009107043A (ru) 2010-09-10
WO2008016935A2 (en) 2008-02-07
CA2778790C (en) 2015-12-15
EP2047465B1 (en) 2013-04-10
JP2012098735A (ja) 2012-05-24
CN103151048B (zh) 2016-02-24
US8260609B2 (en) 2012-09-04
CA2657412C (en) 2014-06-10
ES2406681T3 (es) 2013-06-07
CN103151048A (zh) 2013-06-12
KR20090035719A (ko) 2009-04-10
WO2008016935A3 (en) 2008-06-12
JP5237428B2 (ja) 2013-07-17
CA2657412A1 (en) 2008-02-07
BRPI0715064A2 (pt) 2013-05-28
CA2778790A1 (en) 2008-02-07
RU2428747C2 (ru) 2011-09-10
JP2013137557A (ja) 2013-07-11
CN101496100A (zh) 2009-07-29
US9324333B2 (en) 2016-04-26
EP2047465A2 (en) 2009-04-15
JP5596189B2 (ja) 2014-09-24
HK1184589A1 (zh) 2014-01-24
CN101496100B (zh) 2013-09-04
JP2009545778A (ja) 2009-12-24
US20120296641A1 (en) 2012-11-22
KR101034453B1 (ko) 2011-05-17
US20080027717A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
BRPI0715064B1 (pt) sistemas, métodos e equipamentos para encodificação e decodificação em banda larga de quadros inativos
US10885926B2 (en) Classification between time-domain coding and frequency domain coding for high bit rates
US8532984B2 (en) Systems, methods, and apparatus for wideband encoding and decoding of active frames
CA2603219C (en) Method and apparatus for vector quantizing of a spectral envelope representation
RU2419167C2 (ru) Система, способы и устройство для восстановления при стирании кадра
RU2641224C2 (ru) Адаптивное расширение полосы пропускания и устройство для этого
US20080312914A1 (en) Systems, methods, and apparatus for signal encoding using pitch-regularizing and non-pitch-regularizing coding
BRPI0715516A2 (pt) sistemas, mÉtodos e equipamentos para limitar fator de ganho
US20130317811A1 (en) Efficient Encoding/Decoding of Audio Signals
US9418671B2 (en) Adaptive high-pass post-filter
TWI353752B (en) Systems, methods, and apparatus for wideband encod
Berisha et al. Dual-mode wideband speech compression

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: G10L 19/24 (2013.01), G10L 21/038 (2013.01)

B06F Objections, documents and/or translations needed after an examination request according art. 34 industrial property law
B06T Formal requirements before examination
B09A Decision: intention to grant
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 10/12/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 10/12/2019, OBSERVADAS AS CONDICOES LEGAIS