BRPI0714825A2 - Sistemas e métodos para incluir um identificador a um pacote associado a um sinal de fala - Google Patents

Sistemas e métodos para incluir um identificador a um pacote associado a um sinal de fala Download PDF

Info

Publication number
BRPI0714825A2
BRPI0714825A2 BRPI0714825-9A BRPI0714825A BRPI0714825A2 BR PI0714825 A2 BRPI0714825 A2 BR PI0714825A2 BR PI0714825 A BRPI0714825 A BR PI0714825A BR PI0714825 A2 BRPI0714825 A2 BR PI0714825A2
Authority
BR
Brazil
Prior art keywords
signal
packet
encoder
narrowband
speech
Prior art date
Application number
BRPI0714825-9A
Other languages
English (en)
Inventor
Vivek Rajendran
Ananthapadmanabhan A Kandhadai
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 BRPI0714825A2 publication Critical patent/BRPI0714825A2/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/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

SISTEMAS E MÉTODOS PARA INCLUIR UM IDENTIFICADOR COM UM PACOTE ASSOCIADO A UM SINAL DE FALA. É descrito um método para incluir um identificador a um pacote associado a um sinal de fala. Um sinal é recebido. O sinal é particionado em uma pluralidade de quadros. Um quadro do sinal é codificado em um pacote. E determinado se o pacote é codificado como um pacote de banda larga ou um pacote de banda estreita. Um identificador é empacotado no pacote com base na determinação. O pacote é transmitido. Pelo menos dois valores ilegais são fornecidos por um parâmetro de N bits, em que pelo menos um bit do parâmetro de N bits é utilizado para portar informações, O número de bits do parâmetro de N bits que são utilizados para portar informações é igual a 10g~ 2~ (X), onde X é o número de valores ilegais obtidos do parâmetro de N bits.

Description

"SISTEMAS E MÉTODOS PARA INCLUIR UM IDENTIFICADOR COM UM PACOTE ASSOCIADO A UM SINAL DE FALA" CAMPO TÉCNICO
Os presentes sistemas e métodos referem-se de maneira geral à tecnologia de processamento de fala. Mais especificamente, os presentes sistemas e métodos referem-se à inclusão de um identificador com um pacote associado a um sinal de fala.
FUNDAMENTOS
A transmissão de voz por meio de técnicas
digitais tornou-se disseminada, sobretudo em aplicações rádio-telefônicas de longa distância e digitais. Isto, por sua vez, criou interesse na determinação da quantidade mínima de informações que pode ser enviada através de um canal com a manutenção simultânea da qualidade percebida da fala reconstruída. Os equipamentos para empacotar fala encontram uso em muitos campos das telecomunicações. Um exemplo de telecomunicação são as comunicações sem fio. 0 campo das comunicações sem fio tem muitas aplicações, que incluem, por exemplo, telefones sem fio, pagers, loops locais sem fio, telefonia sem fio, como, por exemplo, o sistema de comunicação celular e portátil (PCS), sistemas telefônicos, telefonia de Protocolo Internet (IP) móvel e sistemas de comunicação por satélite. Uma aplicação particularmente importante é a telefonia sem fio para assinantes.
BREVE DESCRIÇÃO DOS DESENHOS
A Figura Ia mostra um diagrama de blocos de um codificador de fala de banda larga AlOO de acordo com uma configuração;
A Figura Ib mostra um diagrama de blocos de uma implementação A102 do codificador de fala de banda larga AlOO; A Figura 2a mostra um diagrama de blocos de um decodificador de fala de banda larga BlOO de acordo com uma configuração;
A Figura 2b mostra um diagrama de blocos de uma implementação B102 do codificador de fala de banda larga B10 0;
A Figura 3a de um diagrama de blocos de uma implementação A112 do banco de filtros AllO;
A Figura 3b mostra um diagrama de blocos de uma implementação B112 do banco de filtros B120;
A Figura 4a mostra a cobertura de largura de banda das bandas baixa e alta para um exemplo do banco de filtros A110;
A Figura 4b mostra a cobertura de largura de banda das bandas baixa e alta para outro exemplo do banco de filtros A110;
A Figura 4c mostra um diagrama de blocos de uma implementação A114 do banco de filtros A112;
A Figura 4d mostra um diagrama de blocos de uma implementação B124 do banco de filtros B122;
A Figura 5a mostra um exemplo de um esquema de freqüência versus log-amplitude para um sinal de fala;
A Figura 5b mostra um diagrama de blocos de um sistema de codificação de predição linear básico; A Figura 6 mostra um diagrama de blocos de uma
implementação A122 do codificador de banda estreita A120;
A Figura 7 mostra um diagrama de blocos de uma implementação B112 do decodificador de banda estreita BllO;
A Figura 8a mostra um exemplo de um esquema de freqüência versus log-amplitude para um sinal residual para fala vocalizada; A Figura 8b mostra um exemplo de um esquema de tempo versus log-amplitude para um sinal residual para fala vocalizada;
A Figura 9 mostra um diagrama de blocos de um sistema de codificação de predição linear básico que também efetua predição de longo prazo;
A Figura 10 mostra um diagrama de blocos de uma implementação A202 do codificador de banda alta A200;
A Figura 11 mostra um diagrama de blocos de uma implementação A302 do gerador de excitação de banda alta A300;
A Figura 12 mostra um diagrama de blocos de uma implementação A402 do extensor de espectro A400;
A Figura 12a mostra esquemas de espectros de sinal em diversos pontos em um exemplo de operação de extensão espectral;
A Figura 12b mostra esquemas de espectros de sinal em diversos pontos em outro exemplo de operação de extensão espectral; A Figura 13 mostra um diagrama de blocos de uma
implementação A304 do gerador de excitação de banda alta A302 ;
A Figura 14 mostra um diagrama de blocos de uma implementação A306 do gerador de excitação de banda alta; A Figura 15 mostra um diagrama de fluxos para uma
tarefa de cálculo de envelopes T100;
A Figura 16 mostra um diagrama de blocos de uma implementação 4 92 do combinador 4 90;
A Figura 17 mostra uma abordagem para calcular a medida de periodicidade do sinal de banda alta S30;
A Figura 18 mostra um diagrama de blocos de uma implementação A312 do gerador de excitação de banda alta A302; A Figura 19 mostra um diagrama de blocos de uma implementação A314 do gerador de excitação de banda alta A3 02 ;
A Figura 20 mostra um diagrama de blocos de uma implementação A316 do gerador de excitação de banda alta A302;
A Figura 21 mostra um diagrama de fluxos para uma tarefa de cálculo de ganho T200;
A Figura 22 mostra um diagrama de fluxos para uma implementação T219 da tarefa de cálculo de ganho T200;
A Figura 23a mostra um diagrama de uma função de
j anela;
A Figura 23b mostra uma aplicação da função de janela mostrada na Figura 23a a sub-quadros de um sinal de fala;
A Figura 24 mostra um diagrama de blocos de uma implementação B202 do decodificador de alta banda B200;
A Figura 25 mostra um diagrama de blocos de uma implementação ADIO do codificador de fala de banda larga AlOO;
A Figura 26a mostra um diagrama esquemático de uma implementação D122 da linha de atraso D120; A Figura 26b mostra um diagrama esquemático de uma implementação D124 da linha de atraso D120; A Figura 27 mostra um diagrama de blocos de uma
implementação D130 da linha de atraso D120;
A Figura 28 mostra um diagrama de blocos de uma implementação AD12 do codificador de fala de banda larga ADIO;
A Figura 2 9 mostra um diagrama de fluxos de um
método de processamento de sinais MD100 de acordo com uma configuração; A Figura 30 mostra um diagrama de fluxos para um método MlOO de acordo com uma configuração;
A Figura 31a mostra um diagrama de fluxos para um método M200 de acordo com uma configuração;
A Figura 31b mostra um diagrama de fluxos para
uma implementação M210 do método M200;
A Figura 32 mostra um diagrama de fluxos para um método M300 de acordo com uma configuração;
A Figura 33 mostra uma configuração de um sistema de comunicação sem fio;
A Figura 34 é um diagrama de blocos que mostra uma configuração de um ambiente de transmissão de sinais;
A Figura 35 é um diagrama de fluxos que mostra uma configuração de um método para incluir um identificador com um pacote associado a um sinal de fala;
A Figura 36 é um diagrama de fluxos que mostra uma configuração de um método para decodificar um pacote;
A Figura 37 é um diagrama de blocos que mostra uma configuração de um codificador multimodal que se comunica com um decodificador multimodal;
A Figura 38 é um diagrama de fluxos que mostra uma configuração de um método de codificação de fala de taxa variável;
A Figura 39 é um diagrama de blocos que mostra uma configuração de um pacote de meia-taxa de banda estreita regular e de um pacote de meia-taxa de banda larga;
A Figura 40 é um gráfico que mostra o número de bits alocados para diversos tipos de pacote; e A Figura 41 é um diagrama de blocos de
determinados componentes em uma configuração de equipamento de comunicação.
DESCRIÇÃO DETALHADA β/106 É descrito um método para incluir um identificador com um pacote associado a um sinal de fala. Um sinal é recebido. 0 sinal é particionado em uma pluralidade de quadros. Um quadro do sinal é codificado sob a forma de um pacote. Determina-se então se o pacote está codificado como um pacote de banda larga ou um pacote de banda estreita. Um identificador é empacotado no pacote com base na determinação. 0 pacote é transmitido. São apresentados pelo menos dois valores ilegais de um parâmetro de N bits, em que pelo menos um bit do parâmetro de N bits é utilizado para portar informações. O número de bits do parâmetro de N bits utilizado para portar informações é igual a Iog2(X), onde X é o número de valores ilegais fornecidos pelo parâmetro de N bits. É também descrito um equipamento para incluir um
identificador com um pacote associado a um sinal de fala. 0 equipamento inclui um processador e uma memória em comunicação eletrônica com o processador. Instruções são armazenadas na memória. As instruções são executáveis para: receber um sinal; particionar o sinal em uma pluralidade de quadros; codificar um quadro do sinal sob a forma de um pacote; determinar se o pacote está codificado como um pacote de banda larga ou um pacote de banda estreita; empacotar um identificador no pacote com base na determinação; e transmitir o pacote.
É também descrito um sistema que é configurado para incluir um identificador com um pacote associado a um sinal de fala. 0 sistema inclui um dispositivo para processar e um dispositivo para receber um sinal. São descritos um dispositivo para particionar o sinal em uma pluralidade de quadros e um dispositivo para codificar um quadro do sinal sob a forma de um pacote. É descrito um dispositivo para determinar se o pacote está codificado como um pacote de banda larga ou um pacote de banda estreita. São descritos um dispositivo para empacotar um identificador no pacote com base na determinação e um dispositivo para transmitir o pacote.
É também descrito um meio legível por computador.
O meio é configurado para armazenar um conjunto de instruções executáveis para: receber um sinal; particionar o sinal em uma pluralidade de quadros; codificar um quadro do sinal sob a forma de um pacote; determinar se o pacote está codificado como um pacote de banda larga ou um pacote de banda estreita; empacotar um identificador no pacote com base na determinação; e transmitir o pacote.
É também descrito um método para decodificar um pacote. Um pacote é recebido. O identificador incluído no pacote é analisado. Determina-se se o pacote foi codificado por um codificador de banda larga ou um codificador de banda estreita. Um modo de decodificação é selecionado para o pacote com base na determinação.
É também descrito um equipamento para decodificar um pacote. 0 equipamento inclui um processador e uma memória em comunicação eletrônica com o processador. Instruções são armazenadas na memória. As instruções são executáveis para: receber um pacote; analisar o identificador incluído no pacote; determinar se o pacote foi codificado por um codificador de banda larga ou um codificador de banda estreita; e selecionar um modo de decodificação para o pacote com base na determinação.
É também descrito um sistema que é configurado para decodificar um pacote. O sistema inclui um dispositivo para processar e um dispositivo para receber um pacote. São descritos um dispositivo para analisar um identificador incluído no pacote e um dispositivo para determinar se o pacote foi codificado por um codificador de banda larga ou um codificador de banda estreita. É descrito um dispositivo para selecionar um modo de decodificação para o pacote com base na determinação.
É descrito um meio legivel por computador. O meio é configurado para armazenar um conjunto de instruções executáveis para: receber um pacote; analisar o identificador incluído no pacote; determinar se o pacote foi codificado por um codificador de banda larga ou um codificador de banda estreita; e selecionar um modo de decodificação para o pacote com base na determinação.
Diversas configurações dos sistemas e métodos são agora descritas com referência às Figuras, onde os mesmos números de referência indicam elementos idênticos ou funcionalmente semelhantes. Os aspectos dos presentes sistemas e métodos, conforme geralmente descritos e mostrados nas presentes Figuras, podem ser dispostos em projetados em uma ampla variedade de configurações diferentes. Assim, a descrição detalhada seguinte não pretende limitar o alcance dos sistemas e métodos reivindicados, mas representa meramente as configurações dos sistemas e métodos.
Muitos aspectos das configurações aqui reveladas podem ser implementados como software de computador, hardware eletrônico ou combinações de ambos. Para se ilustrar claramente esta intercambialidade de hardware e software, diversos componentes serão descritos geralmente em termos de sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software depende da aplicação específica e das restrições de desenho impostas ao sistema como um todo. Os versados na técnica podem implementar a funcionalidade descrita de maneiras variadas para cada aplicação específica, mas tais decisões de implementação não devem ser interpretadas como provocando um afastamento do alcance da presente invenção.
No caso de a funcionalidade descrita ser implementada como software de computador, tal software pode incluir qualquer tipo de instrução de computador ou código executável por computador localizado dentro de um equipamento de memória e/ou transmitido como sinais eletrônicos através de um barramento ou rede do sistema. 0 software que implementa a funcionalidade associada aos componentes aqui descritos pode compreender uma única instrução ou muitas instruções e pode ser distribuído através de vários segmentos de código diferentes, entre programas diferentes e através de vários equipamentos de memória.
Conforme aqui utilizados, os termos "uma
configuração", "configuração", "configurações", "a configuração", "as configurações", "uma ou mais configurações", "algumas configurações", "determinadas configurações", "outra configuração" e semelhantes significam "uma ou mais (mas não necessariamente todas) configurações dos sistemas e métodos revelados", a menos que expressamente especificado de outro modo.
0 termo "determinar" (e variações gramaticais dele) é utilizado em um sentido extremamente amplo. O termo "determinar" abrange uma ampla variedade de ações e, portanto, "determinar" pode incluir calcular, computar, processar, derivar, investigar, procurar (como, por exemplo, procurar em uma tabela, em um banco de dados ou em outra estrutura de dados), verificar e semelhantes. Além disto, "determinar" pode incluir receber (receber informações, por exemplo), acessar (acessar dados em uma memória, por exemplo) e semelhantes. Além disto, "determinar" pode incluir resolver, selecionar, escolher, estabelecer e semelhante.
A locução "com base em" não significa "com base apenas em", a menos que expressamente especificado de outro modo. Em outras palavras, a locução "com base em" descreve tanto "com base apenas em" quanto "com base pelo menos em".
Uma rede celular pode incluir uma rede de rádio constituída por várias células que são, cada uma delas, servidas por um transmissor fixo. Estes vários transmissores podem ser referidos como locais de célula ou estações base. Uma célula pode comunicar-se com outras células na rede transmitindo um sinal de fala para uma estação base através de um canal de comunicação. A célula pode dividir o sinal de fala em vários quadros (20 milissegundos (mseg) do sinal de fala, por exemplo) . Cada quadro pode ser codificado sob a forma de um pacote. O pacote pode incluir uma determinada quantidade de bits, que são então transmitidos através do canal de comunicação para uma estação base receptora ou uma célula receptora. A estação base receptora ou célula receptora pode desempacotar o pacote e decodificar os diversos quadros para reconstruir o sinal.
Os pacotes podem ser codificados como um pacote de taxa total (171 bits), um pacote de meia-taxa (80 bits), um pacote de um quarto de taxa (40 bits) ou um pacote de um oitavo de taxa (16 bits). Além disto, os pacotes podem ser codificados utilizando-se um codificador de banda estreita ou um codificador de banda larga. Pacotes codificados por um codificador de banda larga podem ser codificados como um pacote de taxa total, um pacote de meia-taxa ou um pacote de um oitavo de taxa. Pacotes codificados por um codificador de banda estreita podem ser codificados como um pacote de taxa total, um pacote de meia-taxa, um pacote de um quarto de taxa ou um pacote de um oitavo de taxa. Codificadores de banda larga podem ser implementados para diversos tipos de pacote, inclusive pacotes de predição linear excitados por código (CELP) e pacotes de predição linear excitados por ruído (NELP), pacotes de período de pitch de protótipo (PPP) e pacotes NELP.
Após a codificação de um pacote, um identificador pode ser incluído no pacote de modo a indicar ao decodificador se o pacote foi codificado por um codificador de banda larga ou por um codificador de banda estreita. As informações incluídas com o identificador podem indicar ao decodificador se o pacote deve ser decodificado utilizando- se um decodificador de banda larga ou um decodificador de banda estreita. Por exemplo, um codificador de banda larga - (WB) de vocoder de quarta geração (4GV) pode codificar um pacote de meia-taxa (80 bits) . 0 pacote pode não ter bits explícitos para identificar mais tipos de pacote. Sendo assim, um padrão de bits inválido que inclui um defasagem de pitch de 7 bits pode ser utilizado para identificar um ou mais pacotes que incluem 73 bits (ou menos). Entretanto, um pacote de meia-taxa 4GV-WB pode necessitar de 74 bits e, sendo assim, a utilização de um identificador de defasagem de pitch de 7 bits para um pacote de meia-taxa 4GV-WB pode não ser possível (uma vez que o número total de bits disponíveis para meia-taxa neste exemplo é 80) . Sob um aspecto, dois padrões inválidos do identificador de defasagem de pitch de 7 bits que diferem um do outro em um bit podem ser utilizados para identificar um pacote de meia-taxa 4GV-WB. Seis (dos sete) bits podem ser utilizados como o identificador, liberando-se, portanto, o bit diferente para ser utilizado pelo pacote de meia-taxa 4GV- WB além dos 73 bits, o que produz 74 bits para o pacote de meia-taxa 4GV-WB. As configurações aqui descritas incluem sistemas, métodos e um equipamento que podem ser configurados para proporcionar uma extensão a um codificador de fala de banda estreita para suportar a transmissão e/ou armazenamento de sinais de fala de banda larga a um aumento de largura de banda de cerca de 800 a 1000 bps (bits por segundo) . Vantagens potenciais de tais implementações incluem codificação embutida para suportar compatibilidade com sistemas de banda estreita, a alocação e a realocação relativamente fáceis de bits entre os canais de codificação de banda estreita e banda alta, evitando-se uma operação de síntese de banda larga computacionalmente intensiva e mantendo-se uma taxa de amostragem baixa para sinais a serem processados por rotinas de codificação de formas de onda computacionalmente intensivas.
A menos que expressamente limitado por seu contexto, o termo "calcular" é aqui utilizado para indicar qualquer um dos seus significados ordinários, tais como computar, gerar e selecionar a partir de uma lista de valores. No caso de o termo "compreender" ser utilizado na presente descrição e nas reivindicações, ele não exclui outros elementos ou operações. O termo "A é baseado em B" é utilizado para indicar qualquer um dos seus sentidos ordinários, inclusive os casos (i) "A é igual a B" e (ii) "A é baseado em pelo menos Β". 0 termo "Protocolo Internet" inclui a versão 4, conforme descrita na RFC (Solicitação de Comentários) 791 da IETF (Força-Tarefa de Engenharia da Internet), e versões subseqüentes, como a versão 6.
A Figura Ia mostra um diagrama de blocos de um codificador de fala de banda larga A100 de acordo com uma configuração. O banco de filtros AllO é configurado para filtrar um sinal de fala de banda larga SlO de modo a se produzir um sinal de banda estreita S20 e um sinal de banda alta S30. O codificador de banda estreita A120 é configurado para codificar o sinal de banda estreita S20 de modo a produzir parâmetros de filtro de banda estreita (NB) S40 e um sinal residual de banda estreita S50. Conforme aqui descrito mais detalhadamente, o codificador de banda estreita A120 é tipicamente configurado para produzir parâmetros de filtro de banda estreita S40 e um sinal de excitação de banda estreita codificado S50 como Índices de código cifrado ou sob outra forma quantificada. O codificador de banda alta A200 é configurado para codificar o sinal de banda alta S30 de acordo com as informações no sinal de excitação de banda estreita codificado S50 para produzir parâmetros de codificação de banda alta S60. Conforme aqui descrito mais detalhadamente, o codificador de banda alta A200 é tipicamente configurado para produzir parâmetros de codificação de banda estreita S60 como índices de código cifrado ou sob outra forma quantificada. Um exemplo específico de codificador de fala de banda larga AlOO é configurado para codificar o sinal de fala de banda larga SlO a uma taxa de cerca de 8,55 kbps (quilobits por segundo), com cerca de 7,55 kbps sendo utilizados para os parâmetros de filtro de banda estreita S40 e para o sinal de excitação de banda estreita codificado S50, e cerca de 1 kbps sendo utilizado para os parâmetros de codificação de banda alta S60.
Pode ser desejável combinar os sinais de banda estreita e banda alta codificados em um único fluxo de bits. Por exemplo, pode ser desejável multiplexar os sinais codificados em conjunto para transmissão (através de um canal de transmissão cabeado, óptico ou sem fio, por exemplo) ou para armazenamento, como um sinal de fala de banda larga codificado. A Figura Ib mostra um diagrama de blocos de uma implementação A102 do codificador de fala de banda larga A100, que inclui um multiplexador A130 configurado para combinar parâmetros de filtro de banda estreita S40, o sinal de excitação de banda estreita codificado S50 e os parâmetros de filtro de banda alta S60 em um sinal multiplexado S70.
Um equipamento que inclui um codificador A102 pode incluir também um conjunto de circuitos configurado para transmitir um sinal multiplexado S70 em um canal de transmissão, tal como um canal cabeado, óptico ou sem fio. Tal equipamento pode ser também configurado para executar uma ou mais operações de codificação de sinal no sinal, como uma codificação com correção de erros (codificação convolucional compatível com taxa, por exemplo) e/ou codificação com detecção de erros (codificação de redundância cíclica, por exemplo) e/ou uma ou mais camadas de codificação de protocolo de rede (Ethernet, TCP/IP, cdm2000, por exemplo).
Pode ser desejável configurar o multiplexador A130 de modo a embutir o sinal de banda estreita codificado (que inclui parâmetros de filtro de banda estreita S40 e o sinal de excitação de banda estreita codificado S50) como um sub-fluxo separável do sinal multiplexado S70, de modo que o sinal de banda estreita codificado possa ser recuperado e decodificado independentemente da outra parte do sinal multiplexado S170, tal como um sinal de banda alta e/ou banda baixa. Por exemplo, o sinal multiplexado S70 pode ser disposto de modo que o sinal de banda estreita possa ser recuperado desfazendo-se dos parâmetros de filtro de banda alta S60. Uma vantagem potencial de tal recurso é a de evitar a necessidade de transcodificar o sinal de banda larga codificado antes de passá-lo para um sistema que suporta a decodificação do sinal de banda estreita, mas não suporta a decodificação da parte de banda alta. Δ Figura 2a é um diagrama de blocos de um decodificador de fala de banda larga BlOO de acordo com uma configuração. O decodificador de banda estreita BllO é configurado para decodificar parâmetros de filtro de banda estreita S40 e o sinal de excitação de banda estreita codificado S50 para produzir um sinal de banda estreita S90. 0 decodificador de banda alta B200 é configurado para decodificar parâmetros de codificação de banda alta S60 de acordo com um sinal de excitação de banda estreita S80, com base no sinal de excitação de banda estreita codificado S50, de modo a se produzir um sinal de banda alta S100. Neste exemplo, o decodificador de banda estreita BllO é configurado para fornecer um sinal de excitação de banda estreita S80 ao decodificador de banda alta B200. O banco de filtros B120 é configurado para combinar o sinal de banda estreita S90 e o sinal de banda alta S100 de modo a se produzir um sinal de fala de banda larga SllO.
A Figura 2b é um diagrama de blocos de uma implementação B102 do decodificador de fala de banda larga B100, que inclui um demultiplexador B130 configurado para produzir sinais codificados S40, S50 e S60 a partir do sinal multiplexado S70. Um equipamento que inclui o decodificador B102 pode incluir um conjunto de circuitos configurado para receber o sinal multiplexado S70 de um canal de transmissão, tal como um canal cabeado, óptico ou sem fio. Tal equipamento pode ser também configurado para executar uma ou mais operações de decodificação de canal no sinal, tais como decodificação por correção de erros (decodificação convolucional compatível com taxa, por exemplo) e/ou decodificação com detecção de erros (decodificação de redundância cíclica, por exemplo) e/ou uma ou mais camadas de decodif icação de protocolo de rede (Ethernet, TCP/IP, cdm2000, por exemplo). O banco de filtros AllO é configurado para filtrar um sinal de entrada de acordo com um esquema de banda dividida de modo a se produzir uma sub-banda de baixa freqüência e uma sub-banda de alta freqüência. Dependendo dos critérios de desenho para a aplicação especifica, as sub-bandas de saída podem ter larguras de banda iguais ou desiguais e podem ser superpostas ou não superpostas. Uma configuração do banco de filtros AllO que produza mais de duas sub-bandas é também possível. Por exemplo, tal banco de filtros pode ser configurado para produzir um ou mais sinais de banda estreita que incluem componentes em uma faixa de freqüências abaixo da do sinal de banda estreita S20 (tal como a faixa de 50-300 Hz). É também possível que tal banco de filtros seja configurado para produzir um ou mais sinais de banda alta adicionais que incluem componentes em uma faixa de freqüências acima da do sinal de banda alta S30 (tal como uma faixa de 14-20, 16-20 ou 16-32 kHz) . Em tal caso, o codificador de fala de banda larga A100 pode ser implementado para codificar este sinal ou sinais separadamente, e o multiplexador A130 pode ser configurado para incluir o sinal ou sinais codificados adicionais no sinal multiplexado S70 (como uma parte separável, por exemplo).
A Figura 3a mostra um diagrama de blocos de uma implementação A112 do banco de filtros A110, que é configurado para produzir dois sinais de sub-banda que têm taxas de amostragem reduzidas. O banco de filtros AllO é disposto de modo a receber um sinal de fala de banda larga SlO que tem uma parte de alta freqüência (ou banda alta) e uma parte de baixa freqüência (ou banda baixa). 0 banco de filtros A112 inclui um percurso de processamento de banda baixa configurado para receber o sinal de fala de banda larga SlO e para produzir o sinal de fala de banda estreita S20, e um percurso de processamento de banda alta configurado para receber o sinal de fala de banda larga SlO e para produzir o sinal de fala de banda alta S30. O filtro passa-baixa 110 filtra o sinal de fala de banda larga SlO de modo a fazer passar uma sub-banda de baixa freqüência selecionada, e o filtro passa-alta 130 filtra o sinal de fala de banda larga SlO de modo a fazer passar uma sub- banda de alta freqüência selecionada. Uma vez que ambos os sinais de sub-banda têm mais larguras de banda estreitas do que o sinal de fala de banda larga S10, suas taxas de amostragem podem ser reduzidas em alguma medida sem perda de informação. O downsampler 120 reduz a taxa de amostragem do sinal passa-baixa de acordo com o fator de dizimação desejado (como, por exemplo, pela remoção das amostras do sinal e/ou pela substituição das amostras por valores médios), e o downsampler 140 igualmente reduz a taxa de amostragem do sinal passa alta de acordo com outro fator de dizimação desejado.
A Figura 3b mostra um diagrama de blocos de uma implementação B122 correspondente do banco de filtros B120. O upsampler 150 aumenta a taxa de amostragem do sinal de banda estreita S90 (pelo enchimento com zero e/ou pela duplicação das amostras, por exemplo), e o filtro passa- baixa 160 filtra o sinal amostrado para mais para fazer passar uma parte de banda baixa (para prevenir formação de nomes alternativos, por exemplo). Da mesma maneira, o upsampler 170 aumenta a taxa de amostragem do sinal de banda alta S100, e o filtro passa-alta 180 filtra o sinal amostrado para mais de modo a fazer passar uma parte de banda alta. Os dois sinais de banda passante são então somados de modo a se formar o sinal de fala de banda larga SllO. Em algumas implementações do decodificador B100, o banco de filtros B120 é configurado para produzir uma soma ponderada dos dois sinais de banda passante de acordo com um ou mais pesos recebidos e/ou calculados pelo decodificador de banda alta B200. Uma configuração do banco de filtros B120 que combine mais de dois sinais de banda passante é também contemplada.
Cada um dos filtros 110, 130, 160, 180 pode ser implementado como um filtro de resposta ao impulso finita (FIR) ou como um filtro de resposta ao impulso infinita (IIR). As respostas à freqüência dos filtros de codificador 110 e 130 podem ter regiões de transição de formatação simétrica ou dessemelhante entre rejeita-faixa e banda passante. Pode ser desejável que o filtro passa-baixa 110 tenha a mesma resposta do filtro de passa-baixa 160, e que o filtro passa-alta 130 tenha a mesma resposta do filtro passa-alta 180. Em um exemplo, os dois pares de filtros 110, 130 e 160, 180 são bancos de filtros espelhados de quadratura (QMF) , com o par de filtros 110, 130 tendo os mesmos coeficientes do par de filtros 160, 180.
Em um exemplo típico, o filtro passa-baixa 110 tem um banda passante que inclui a faixa PSTN limitada de 300-3400 Hz (a banda de 0 a 4 kHz, por exemplo). As Figuras 4a e 4b mostram larguras de banda relativas do sinal de fala de banda larga S10, do sinal de banda estreita S20 e do sinal de banda alta S30 em dois exemplos de implementação diferentes. Em ambos estes exemplos específicos, o sinal de fala de banda larga SlO tem uma taxa de amostragem de 16 kHz (que representa componentes de freqüência dentro da faixa de 0 a 8 kHz), e o sinal de banda estreita S20 tem uma taxa de amostragem de 8 kHz (que representa componentes de freqüência dentro da faixa de 0 a 4kHz).
No exemplo da Figura 4a, não há superposição significativa entre as duas sub-bandas. O sinal de banda alta S30 mostrado neste exemplo pode ser obtido utilizando- se um filtro passa-alta 130 com uma banda passante de 4-8 kHz. Em tal caso, pode ser desejável reduzir a taxa de amostragem a 8 kHz pela amostragem descendente do sinal filtrado em um fator de dois. Tal operação, que se espera que reduza significativamente a complexidade computacional de outras operações de processamento no sinal, moverá a energia da banda passante para baixo até a faixa de 0 a 4 kHz sem perda de informação. No exemplo alternativo da Figura 4b, as sub-
bandas superior e inferior têm uma superposição apreciável, de modo que a região de 3,5 a 4 kHz é descrita por ambos os sinais de sub-banda. Um sinal de banda alta S30 como neste exemplo pode ser obtido utilizando-se um filtro passa-alta 130 com uma banda passante de 3,5-7 kHz. Em tal caso, pode ser desejável reduzir a taxa de amostragem até 7 kHz pela amostragem descendente do sinal filtrado em um fator de 16/7. Tal operação, que se espera que possa reduzir significativamente a complexidade computacional de outras operações de processamento no sinal, moverá a energia da banda passante para baixo até a faixa de 0 a 3,5 kHz sem perda de informação.
Em um equipamento telefônico tipico para comunicação telefônica, falta a um ou mais dos transdutores (isto é, o microfone e a auricula de fonte ou alto-falante) uma resposta apreciável através da faixa de freqüência de 7-8 kHz. No exemplo da Figura 4b, a parte do sinal de fala de banda larga SlO entre 7 e 8 kHz não é incluída no sinal codificado. Outros exemplos específicos de filtro passa- alta 130 têm bandas passantes de 3,5-7,5 kHz e 3,5-8 kHz.
Em algumas implementações, a existência de uma superposição entre sub-bandas como neste exemplo da Figura 4b proporciona a utilização de um filtro passa-baixa e/ou passa-alta que tem uma rolagem suave por sobre a região de superposição. Tais filtros são tipicamente mais fáceis de projetar, menos complexos computacionalmente e/ou introduzem menos retardo que os filtros com respostas mais agudas ou mais espessas. Filtros com regiões de transição aguda tendem a ter lobos laterais mais elevados (o que pode provocar aliasing) do que os filtros de ordem semelhante que têm rolagens suaves. Filtros com regiões de transição aguda podem ter também respostas ao impulso longas, o que pode provocar artefatos soantes. Para implementações de banco de filtros que têm um ou mais filtros IIR, proporcionar uma rolagem suave por sobre a região de superposição pode permitir a utilização de um filtro ou filtros cujos pólos estão mais afastados do circulo unitário, o que pode ser importante para assegurar uma implementação com pontos fixos estáveis.
A superposição de sub-bandas permite uma mistura uniforme de banda baixa e banda alta que pode levar a menos artefatos audíveis, aliasing reduzido e/ou uma transição menos notável de uma banda para a outra. Além do mais, a eficácia de codificação do codificador de banda estreita A120 (um codificador de formas de onda, por exemplo) pode cair com o aumento da freqüência. Por exemplo, a qualidade de codificação do codificador de banda estreita pode ser reduzida a taxas de bits baixas, sobretudo na presença de ruído de fundo. Em tais casos, a obtenção de uma superposição das sub-bandas pode aumentar a qualidade dos componentes de freqüência reproduzidos na região de superposição.
Além do mais, a superposição de sub-bandas
permite uma mistura uniforme de banda baixa e banda alta que pode levar a menos artefatos audíveis, aliasing reduzido e/ou uma transição menos notável de uma banda para a outra. Tal recurso pode ser especialmente desejável para uma implementação na qual o codificador de banda estreita A120 e o codificador de banda alta A200 funcionam de acordo com metodologias de codificação diferentes. Por exemplo, técnicas de codificação diferentes podem produzir sinais que soam de maneira bem diferente. Um codificador que codifica um envelope espectral sob a forma de índices de código cifrado pode produzir um sinal que tem um som diferente do de um codificador que codifica, em vez disso, o espectro de amplitude. Um codificador no domínio do tempo (uma modulação por código de pulso ou codificador PCM, por exemplo) pode produzir um sinal que tem um som diferente do de um codificador no domínio da freqüência. Um codificador que codifica um sinal com uma representação do envelope espectral e do sinal residual correspondente pode produzir um sinal que tem um som diferente do de um codificador que codifica um sinal com uma representação do envelope espectral. Um codificador que codifica um sinal como uma representação de sua forma de onda pode produzir uma saída que tem um som diferente do de um codificador senoidal. Em tais casos, a utilização de filtros com regiões de transição aguda para definir sub-bandas não superpostas pode levar a uma transição abrupta e perceptivamente notável entre as sub-bandas no sinal de banda larga sintetizado.
Embora os bancos de filtros QMF que têm respostas à freqüência superpostas complementares sejam freqüentemente utilizados em técnicas de sub-banda, tais filtros são inadequados para pelo menos algumas das implementações de codificação de banda larga aqui descritas. Um banco de filtros QMF no codificador é configurado para criar um grau significativo de aliasing que é cancelado no banco de filtros QMF correspondente no decodificador. Tal disposição pode não ser apropriada para uma aplicação na qual o sinal incorre em um grau significativo de distorção entre os bancos de filtros, uma vez que a distorção pode reduzir a eficácia da propriedade de cancelamento de alias. Por exemplo, as aplicações aqui descritas incluem implementações de codificação configuradas para funcionar a taxas de bits muito baixas. Em conseqüência da taxa de bits muito baixa, é provável que o sinal decodificado apareça significativamente distorcido comparado com o sinal original, de modo que a utilização de bancos de filtros QMF pode levar a um aliasing não cancelado. Aplicativos que utilizam bancos de filtros QMF têm tipicamente taxas de bits mais elevadas (acima de 12 kbps para AMR e 64 kbps para G.722, por exemplo). Além disso, um codificador pode ser configurado
para produzir um sinal sintetizado que é perceptivamente semelhante ao sinal original, mas que difere realmente de maneira significativa do sinal original. Por exemplo, um codificador que derive a excitação de banda alta do sinal residual de banda estreita conforme aqui descrito pode produzir tal sinal, uma vez que o sinal residual de banda alta real pode estar completamente ausente do sinal decodificado. A utilização de bancos de filtros QMF em tais aplicações pode levar a um grau significativo de distorção causado por aliasing não cancelado.
O grau de distorção causado por aliasing QMF pode ser reduzido se a sub-banda afetada for estreita, uma vez que o efeito da aliasing é limitado a uma largura de banda igual à largura da sub-banda. Para os exemplos aqui descritos, nos quais cada sub-banda inclui cerca da metade da largura de banda de banda larga, contudo, a distorção causada pelo aliasing não cancelado pode afetar uma parte significativa do sinal. A qualidade do sinal pode ser também afetada pela localização da banda de freqüência através da qual o aliasing não cancelado ocorre. Por exemplo, a distorção criada perto do centro de um sinal de fala de banda larga (entre 3 e 4 kHz, por exemplo) pode ter muito mais objeções que a distorção que ocorre perto da borda do sinal (acima de 6 kHz, por exemplo).
Embora as respostas dos filtros de um banco de filtros QMF estejam estritamente relacionadas umas com as outras, os percursos de banda baixa e banda alta dos bancos de filtros AllO e B120 podem ser configurados para ter espectros que estejam completamente não relacionados com a superposição das duas sub-bandas. A superposição das duas sub-bandas é definida como a distância do ponto no qual a resposta à freqüência do filtro de banda larga cai para -20 dB até o ponto no qual a resposta à freqüência do filtro de banda baixa cai para -20 dB. Em diversos exemplos do banco de filtros AllO e/ou B120, esta superposição varia na faixa de cerca de 200 kHz a cerca de 1 kHz. A faixa de cerca de 400 a cerca de 600 Hz pode representar uma compensação desejável entre a eficácia de codificação e a suavidade perceptiva. Em um exemplo especifico mencionado acima, a superposição é de cerca de 500 Hz.
Pode ser desejável implementar o banco de filtros A112 e/ou B122 para executar as operações mostradas nas Figuras 4a e 4b em vários estágios. Por exemplo, a Figura 4C mostra um diagrama de blocos de uma implementação A114 do banco de filtros A112 que desempenha um equivalente funcional das operações de filtragem e amostragem descendente de banda alta utilizando uma pluralidade de operações de interpolação, re-amostragem, dizimação e outras. Tal implementação pode ser mais fácil de projetar e/ou pode permitir a reutilização de blocos funcionais de lógica e código. Por exemplo, o mesmo bloco funcional pode ser utilizado para executar as operações de dizimação até 14 kHz e de dizimação até 7 kHz, conforme mostrado na Figura 4c. A operação de inversão espectral pode ser implementada multiplicando-se o sinal pela função ejnπ ou pela seqüência (-1)", cujos valores se alternam entre +1 e -1. A operação de formatação espectral pode ser implementada como um filtro passa-baixa configurado para conformar o sinal de modo a se obter a resposta total desejada do filtro. Observa-se que, em conseqüência da operação de
inversão espectral, o espectro do sinal de banda alta S30 é invertido. Operações subseqüentes no codificador e no decodificador correspondente podem ser, por conseguinte, configuradas. Por exemplo, o gerador de excitação de banda alta S120 A300 aqui descrito pode ser configurado para produzir um sinal de excitação de banda alta S120, que tem também uma forma espectralmente invertida.
A Figura 4d mostra um diagrama de blocos de uma implementação B124 do banco de filtros B122 que desempenha um equivalente funcional de operações de amostragem ascendente e filtragem de passa-alta utilizando uma pluralidade de operações de interpolação, re-amostragem e outras operações. O banco de filtros B124 inclui uma operação de inversão espectral na banda alta que inverte uma operação semelhante conforme executada, por exemplo, em um banco de filtros do codificador, tal como o banco de filtros A114. Neste exemplo especifico, o banco de filtros B124 inclui também filtros de encaixe na banda baixa e na banda alta que atenuam um componente do sinal a 7100 Hz, embora tais filtros sejam opcionais e não seja necessário inclui-los.
O codificador de banda estreita A120 é implementado de acordo com um modelo de filtro de origem que codifica o sinal de fala de entrada como (A) um conjunto de parâmetros que descrevem um filtro e (B) um sinal de excitação que aciona o filtro descrito para que produza uma reprodução sintetizada do sinal de fala de entrada. A Figura 5a mostra um exemplo de um envelope espectral de um sinal de fala. Os picos que caracterizam este envelope espectral representam ressonâncias do trato vocal e são chamados formandos. A maioria dos codificadores de fala codifica pelo menos esta estrutura espectral grosseira como um conjunto de parâmetros, tais como coeficientes de filtro.
A Figura 5b mostra um exemplo de uma disposição de filtro de origem básica aplicada à codificação do envelope espectral do sinal de banda estreita S20. Um módulo de análise calcula um conjunto de parâmetros que caracterizam um filtro que corresponde ao som de fala ao longo de um período de tempo (tipicamente 20 mseg) . Um filtro de embranquecimento (também chamado de filtro de análise ou erro de predição) configurado de acordo com esses parâmetros de filtro remove o envelope espectral de modo a nivelar espectralmente o sinal. 0 sinal embranquecido resultante (também chamado residual) tem menos energia e, portanto, menos variância e é mais fácil de codificar que o sinal de fala original. Os erros que resultam da codificação do sinal residual podem ser também espalhados de maneira mais uniforme através do espectro. Os parâmetros de filtro e o residual são tipicamente quantificados para transmissão eficaz através do canal. No decodificador, um filtro de síntese configurado de acordo com os parâmetros de filtro é excitado por um sinal com base no residual de modo a se produzir uma versão sintetizada do som de fala original. 0 filtro de síntese é tipicamente configurado para ter uma função de transferência que é o inverso da função de transferência do filtro de embranquecimento.
A Figura 6 mostra um diagrama de blocos de uma implementação básica A122 do codificador de banda estreita A120. Neste exemplo, um módulo de análise de codificação de predição linear (LPC) 210 codifica o envelope espectral do sinal de banda estreita S20 como um conjunto de coeficientes de predição linear (LP) (coeficientes de um filtro com todos os pólos 1/A(z), por exemplo). O módulo de análise processa tipicamente o sinal de entrada como uma pluralidade de quadros não superpostos, com um novo conjunto de coeficientes sendo calculado para cada quadro. O período de quadros é geralmente um período ao longo do qual se pode esperar que o sinal seja localmente estacionário; um exemplo é de 20 milissegundos (equivalente a 160 amostras a uma taxa de amostragem de 8 kHz) . Em um exemplo, o módulo de análise LPC 210 é configurado para calcular um conjunto de dez coeficientes de filtro LP de modo a se caracterizar a estrutura de formando de cada quadro de 20 milissegundos. É também possível implementar o módulo de análise para processar o sinal de entrada como uma pluralidade de quadros superpostos.
O módulo de análise pode ser configurado para analisar as amostras de cada quadro diretamente, ou as amostras podem ser pesadas primeiro de acordo com uma função de janela (uma janela de Hamming, por exemplo). A análise pode ser também realizada através de uma janela que é maior que o quadro, tal como uma janela de 30 mseg. Esta janela pode ser simétrica (como, por exemplo, 5-20-5, de modo que inclua os 5 milissegundos imediatamente antes e depois do quadro de 20 milissegundos) ou assimétrica (como, por exemplo, 10-20, de modo que inclua os últimos 10 milissegundos do quadro precedente). Um módulo de análise LPC é tipicamente configurado para calcular os coeficientes de filtro LP utilizando uma recursão de Levinson-Durbin ou o algoritmo de Leroux-Gueguem. Em outra implementação, o módulo de análise pode ser configurado para calcular um conjunto de coeficientes cepstrais para cada quadro em vez de um conjunto de coeficientes de filtro LP.
A taxa de saída do codificador A120 pode ser reduzida de maneira significativa, com relativamente pouco efeito sobre a qualidade de reprodução, pela quantificação dos parâmetros de filtro. Os coeficientes de filtro de predição linear são difíceis de quantificar de maneira eficaz e são usualmente mapeados em outra representação, como, por exemplo, pares espectrais de linha (LSPs) ou freqüências espectrais de linha (LSFs), para quantificação e/ou codificação de entropia. No exemplo da Figura 6, uma transformada coeficiente de filtro LP-LSF 200 transforma o conjunto de coeficientes de filtro LP em um conjunto correspondente de LSFs. Outras representações de um a um de coeficientes de filtro LP incluem coeficientes parcor; valores de razão registro-área; pares espectrais de imitância (ISPs); e freqüências espectrais de imitância (ISFs), que são utilizados no codec AMR-WB (De Várias Taxas Adaptativas-Banda Larga) do GSM (Sistema Global para Comunicações Móveis). Tipicamente, uma transformada entre um conjunto de coeficientes de filtro LP e um conjunto correspondente de LSFs é reversível, mas as configurações incluem também implementações do codificador A120 nas quais a transformada não é reversível sem erro.
0 quantizador 230 é configurado para quantificar o conjunto de LSFs de banda estreita (ou outra representação de coeficiente), e o codificador de banda estreita A122 é configurado para transmitir o resultado desta quantificação como os parâmetros de filtro de banda estreita S40. Tal quantizador inclui tipicamente um quantizador de vetor que codifica o vetor de entrada como um indice para uma entrada de vetor correspondente em uma tabela ou código cifrado.
Conforme visto na Figura 6, o codificador de
banda estreita A122 gera também um sinal residual fazendo o sinal de banda estreita S20 passar através de um filtro de embranquecimento 260 (também chamado filtro de análise ou de erro de predição) que é configurado de acordo com o conjunto de coeficientes de filtro. Neste exemplo específico, o filtro de embranquecimento 260 é implementado como um filtro FIR, embora implementações IIR possam ser também utilizadas. Este sinal residual conterá tipicamente informações perceptivamente importantes do quadro de fala, como, por exemplo, uma estrutura de longo prazo referente à pitch, que não é representada nos parâmetros de filtro de banda estreita S40. O quantizador 270 é configurado para calcular uma representação quantificada deste sinal residual para transmissão como sinal de excitação de banda estreita codificado S50. Tal quantizador inclui tipicamente um quantizador de vetor que codifica o vetor de entrada como um índice para uma entrada de vetor correspondente em uma tabela ou código cifrado. Alternativamente, tal quantizador pode ser configurado para enviar um ou mais parâmetros a partir dos quais o vetor pode ser gerado dinamicamente no decodificador, em vez de ser recuperado do armazenamento, como em um método de código cifrado esparso. Tal método é utilizado em esquemas de codificação como, por exemplo, a CELP (predição linear por excitação de código cifrado) algébrica e codecs como, por exemplo, o EVRC (Codec de Taxa Variável Aperfeiçoado) 3GPP2 (Projeto de Parcerias de Terceira Geração 2). É desejável que o codificador de banda estreita A120 gere o sinal de excitação de banda estreita codificado de acordo com os mesmos valores de filtro de parâmetro que estarão disponíveis para o decodificador de banda estreita correspondente. Desta maneira, o sinal de excitação de banda estreita codificado resultante já pode dar conta em alguma medida das não idealidades nesses valores de parâmetro, como, por exemplo, um erro de quantificação. Por conseguinte, é desejável configurar o filtro de embranquecimento utilizando-se os mesmos valores de coeficientes que estarão disponíveis no decodificador. No exemplo básico do codificador A122 mostrado na Figura 6, o quantizador inverso 240 desquantifica os parâmetros de codificação de banda estreita S40, a transformada LSF- coeficiente de filtro LP 250 mapeia os valores resultantes de volta em um conjunto correspondente de coeficientes de filtro LP, e este conjunto de coeficientes é utilizado para configurar o filtro de embranquecimento 260 para que ele gere o sinal residual que é quantificado pelo quantizador 270.
Algumas implementações do codificador de banda estreita A120 são configuradas para calcular o sinal de excitação de banda estreita codificado S50 pela identificação de um dentre um conjunto de vetores de código cifrado que melhor corresponda ao sinal residual. Nota-se, contudo, que o codificador de banda estreita A120 pode ser também implementado para calcular uma representação quantificada do sinal residual sem gerar realmente o sinal residual. Por exemplo, o codificador de banda estreita A120 pode ser configurado para utilizar vários vetores de código cifrado para gerar sinais sintetizados correspondentes (como, por exemplo, de acordo com um conjunto atual de parâmetros de filtro) e para selecionar o vetor de código cifrado associado ao sinal gerado que melhor corresponda ao sinal de banda estreita original S20 em um domínio perceptivamente ponderado.
A Figura 7 mostra um diagrama de blocos de uma implementação B112 do decodificador de banda estreita BllO. O quantizador inverso 310 desquantifica os parâmetros de filtro de banda estreita S40 (neste caso, para um conjunto de LSFs (por exemplo, conforme descrito acima com referência ao quantizador inverso 240 e à transformada 250 do codificador de banda estreita A122). O quantizador inverso 340 desquantifica o sinal residual de banda estreita S40 de modo a produzir um sinal de excitação de banda estreita S80. Com base nos coeficientes de filtro e no sinal de excitação de banda estreita S80, o filtro de síntese de banda estreita 330 sintetiza o sinal de banda estreita S90. Em outras palavras, o filtro de síntese de banda estreita 330 é configurado para conformar espectralmente o sinal de excitação de banda estreita S80 de acordo com os coeficientes de filtro desquantfiçados de modo a se produzir um sinal de banda estreita S90. O decodificador de banda estreita B112 também envia o sinal de excitação de banda estreita S80 ao codificador de banda alta A200, que o utiliza para derivar o sinal de excitação de banda alta S120, conforme aqui descrito. Em algumas implementações descritas a seguir, o decodificador de banda estreita BllO pode ser configurado para fornecer informações adicionais ao decodificador de banda alta B200 que se referem ao sinal de banda estreita, tal como uma inclinação espectral, ao ganho de pitch e retardo e ao modo de fala.
O sistema do codificador de banda estreita A122 e do decodificador de banda estreita B112 é um exemplo básico de um codec de fala de análise por síntese. A codificação de predição linear por excitação de código cifrado (CELP) é uma familia de codificação de análise por síntese, e implementações de tais codificadores podem efetuar codificação de forma de onda do residual, inclusive operações tais como a seleção de entradas de códigos cifrados fixos e adaptativos, operações de redução de erros ao mínimo e/ou operações de ponderação perceptiva. Outras implementações de codificação de análise por síntese incluem codificação de predição linear por excitação mista (MELP), codificação CELP algébrica (ACELP), codificação CELP por relaxamento (RECELP), codificação por excitação de pulso regular (RPE), codificação CELP de vários pulsos (MPE) e codificação de predição linear excitada por soma de vetores (VSELP). Métodos de codificação afins incluem codificação por excitação de várias bandas (MBE) e codificação por interpolação de formas de protótipo (PWI). Exemplos de codecs de fala de análise por síntese padronizados incluem o codec de taxa completa GSM do ETSI (Instituto Europeu de Padrões de Telecomunicações) (GSM 06.10), que utiliza predição linear excitada por residual (RELP); o codec de taxa total aperfeiçoado GSM (ETSI-GSM 0 6.60); o codec do G.729 Anexo E de 11,8 kb/s do padrão ITU (Sindicato Internacional de Telecomunicações); os codecs IS (Padrão Interino)-641 para o IS-136 (um esquema de acesso múltiplo por divisão de tempo); os codecs de várias taxas adaptativos GSM (GSM-AMR); e o codec 4GVTM (Vocoder de Quarta Geração™) (QUALCOMM Incorporated, San Diego, CA) . O codificador de banda estreita A120 e o decodificador BllO correspondente podem ser implementados de acordo com qualquer uma destas tecnologias, ou qualquer outra tecnologia de codificação de fala (seja conhecida ou a ser desenvolvida) que represente um sinal de fala como (A) um conjunto de parâmetros que descreve um filtro e (B) um sinal de excitação utilizado para acionar o filtro descrito para que este reproduza o sinal de fala.
Mesmo depois que o filtro de embranquecimento tiver removido o envelope espectral grosseiro do sinal de banda estreita S20, um grau considerável da estrutura harmônica precisa pode permanecer, sobretudo para fala vocalizada. A Figura 8a mostra um esquema espectral de um exemplo de sinal residual, conforme pode ser reproduzido por um filtro de embranquecimento, para um sinal vocalizado, tal como uma vogai. A estrutura periódica visível neste exemplo está relacionada com pitch, e sons vocalizados diferentes falados pelo mesmo falante podem ter estruturas de formando diferentes, mas estruturas de pitch semelhantes. A Figura 8b mostra um esquema no domínio do tempo de um exemplo de tal sinal residual que mostra uma seqüência de pulsos de pitch no tempo.
A eficácia de codificação e/ou a qualidade da fala podem ser aumentadas utilizando-se um ou mais parâmetros de valor para codificar as características da estrutura de pitch. Uma característica importante da estrutura de pitch é a freqüência do primeiro harmônico (também chamado de freqüência fundamental), que está tipicamente na faixa de 60 a 400 Hz. Esta característica é tipicamente codificada como o inverso da freqüência fundamental, também chamada defasagem de pitch. O defasagem de pitch indica o número de amostras em um período de pitch e pode ser codificado como um ou mais índices de código cifrado. Sinais de fala de falantes masculinos tendem a ter retardos de pitch maiores que os de sinais de fala de falantes femininas.
Outra característica de sinal relativa à estrutura de pitch é a periodicidade, que indica a intensidade da estrutura harmônica ou, em outras palavras, o grau no qual o sinal é harmônico ou não harmônico. Dois indicadores típicos de periodicidade são cruzamentos zero e funções de autocorrelação normalizadas (NACFs). A periodicidade pode ser também indicada pelo ganho de pitch, que é codificado como um ganho de código cifrado (como, por exemplo, um ganho de código cifrado adaptativo quantificado).
O codificador de banda estreita A120 pode incluir um ou mais módulos configurados para codificar a estrutura harmônica de longo prazo do sinal de banda estreita S20. Conforme mostrado na Figura 9, um paradigma CELP típico que pode ser utilizado inclui um módulo de análise LPC de malha aberta, que codifica as características de curto prazo ou envelope espectral grosseiro, seguido de um estágio de análise de predição de longo prazo de malha fechada, que codifica a pitch ou estrutura harmônica precisa. As características de curto prazo são codificadas como coeficientes de filtro, e as características de longo prazo são codificadas como valores para parâmetros tais como defasagem de pitch e ganho de pitch. Por exemplo, o codificador de banda estreita A120 pode ser configurado para transmitir o sinal de excitação de banda estreita codificado sob uma forma que inclui um ou mais índices de código cifrado (como, por exemplo, um índice de código cifrado fixo e um índice de código cifrado adaptativo) e valores de ganho correspondentes. O cálculo desta representação quantificada do sinal . residual de banda estreita (pelo quantizador 270, por exemplo) pode incluir selecionar tais índices e calcular tais valores. A codificação da estrutura de pitch pode incluir também a interpolação entre pulsos de pitch sucessivos. A modelação da estrutura de longo prazo pode ser desabilitada para quadros que correspondem à fala não vocalizada, que é tipicamente do tipo de ruido e não estruturada.
Uma implementação do decodificador de banda estreita BllO de acordo com um paradigma conforme mostrado na Figura 9 pode ser configurada para transmitir o sinal de excitação de banda estreita S80 para o decodificador de banda alta B200 depois de a estrutura de longo prazo (estrutura de pitch ou de harmônico) ter sido restaurada. Por exemplo, tal decodificador pode ser configurado para transmitir o sinal de excitação de banda estreita codificado S50. Evidentemente, é também possível implementar o decodificador de banda estreita BllO de modo que o decodificador de banda alta B200 desquantifique o sinal de excitação de banda estreita codificado S50 de modo a se obter o sinal de excitação de banda estreita S80.
Em uma implementação do codificador de fala de banda larga A100 de acordo com o paradigma mostrado na Figura 9, o codificador de banda alta A200 pode ser configurado para receber o sinal de excitação de banda estreita produzido pela análise de curto prazo ou filtro de embranquecimento. Em outras palavras, o codificador de banda estreita A120 pode ser configurado para transmitir o sinal de excitação de banda estreita para o codificador de banda alta A200 antes da codificação da estrutura de longo prazo. É desejável, contudo, que o codificador de banda alta A200 receba do canal de banda estreita as mesmas informações de codificação que serão recebidas pelo decodificador de banda alta B200, de modo que os parâmetros de codificação produzidos pelo codificador de banda alta A200 já possam dar conta em alguma medida das não idealidades nessas informações. Assim, pode ser preferível que o codificador de banda alta A200 reconstrua o sinal de excitação de banda estreita S80 a partir do mesmo sinal de excitação de banda estreita codificado transformado em parâmetro e/ou quantificado S50 a ser transmitido pelo codificador de fala de banda larga AlOO. Uma vantagem potencial desta abordagem é o cálculo mais preciso dos fatores de ganho de banda alta S60b descritos a seguir.
Além dos parâmetros que caracterizam a estrutura de curto prazo e/ou longo prazo do sinal de banda estreita S20, o codificador de banda estreita A120 pode produzir valores de parâmetro que se referem a outras características do sinal de banda estreita S20. Estes valores, que podem ser adequadamente quantificados para transmissão pelo codificador de fala de banda larga A100, podem ser incluídos entre os parâmetros de filtro de banda estreita S40 ou transmitidos separadamente. O codificador de banda alta A200 pode ser também configurado para calcular os parâmetros de codificação de banda alta S60 de acordo com um ou mais destes parâmetros adicionais (após a quantificação, por exemplo). No decodificador de fala de banda larga B100, o decodif icador de banda alta B200 pode ser configurado para receber os valores de parâmetro por meio do decodificador de banda estreita B110 (após a desquantificação, por exemplo). Alternativamente, o decodificador de banda alta B200 pode ser configurado para receber (e possivelmente desquantificar) os valores de parâmetro diretamente.
Em um exemplo de parâmetros de codificação de banda estreita adicionais, o codificador de banda estreita A120 produz valores para parâmetros de inclinação espectral e modo de fala para cada quadro. A inclinação espectral refere-se à formatação do envelope espectral através da banda passante e é tipicamente representada pelo primeiro coeficiente de reflexão espectral. Para a maioria dos sons vocalizados, a energia espectral diminui com o aumento da freqüência, de modo que o primeiro coeficiente de reflexão é negativo e pode aproximar-se de -1. A maioria dos sons não vocalizados tem um espectro que é ou plano, de modo que o primeiro coeficiente de reflexão esteja próximo de zero, ou tem mais energia a freqüências elevadas, de modo que o primeiro coeficiente de reflexão seja positivo e possa aproximar-se de +1.
0 modo de fala (também chamado modo de
vocalização) indica se o quadro atual representa fala
vocalizada ou não vocalizada. Este parâmetro pode ter um
valor binário baseado em uma ou mais medidas de
periodicidade (cruzamentos zero, NACFs, ganho de pitch, por
exemplo) e/ou atividade vocal para o quadro, tal como uma
/
relação entre tal medida e um valor de limite. Em outras implementações, o parâmetro de modo de fala tem um ou mais outros estados para indicar modos tais como silêncio ou ruido de fundo, ou uma transição entre silêncio e fala vocalizada.
0 codificador de banda alta A200 é configurado para codificar o sinal de banda alta S30 de acordo com um modelo de filtro de origem, com a excitação para este filtro sendo baseada no sinal de excitação de banda estreita codificado. A Figura 10 mostra um diagrama de blocos de uma implementação A202 do codificador de banda alta A200 que é configurado para produzir um fluxo de parâmetros de codificação de banda alta S60, que inclui os parâmetros de filtro de banda alta S60a e os fatores de ganho de banda alta S60b. O gerador de excitação de banda alta A300 deriva um sinal de excitação de banda alta S120 do sinal de excitação de banda estreita codificado S50. O módulo de análise A210 produz um conjunto de valores de parâmetro que caracterizam o envelope espectral do sinal de banda alta S30. Neste exemplo especifico, o módulo de análise A210 é configurado para efetuar análise LPC de modo a produzir um conjunto de coeficientes de filtro LPC para cada quadro do sinal de banda alta S30. A transformada coeficiente de filtro de predição linear-LSF 410 transforma o conjunto de coeficientes de filtro LP em um conjunto correspondente de LSFs. Conforme observado acima com referência ao módulo de análise 210 e à transformada 220, o módulo de análise A210 e/ou a transformada 410 podem ser configurados para utilizar outros conjuntos de coeficientes (coeficientes cepstrais, por exemplo) e/ou representações de coeficiente (ISPs, por exemplo).
O quantizador 420 é configurado para quantificar o conjunto de LSFs de banda alta (ou outra representação de coeficiente, como, por exemplo, ISPs), e o codificador de banda alta A202 é configurado para transmitir o resultado desta quantificação como os parâmetros de filtro de banda alta S60s. Tal quantizador inclui tipicamente um quantizador de vetores que codifica o vetor de entrada como um indice para uma entrada de vetor correspondente em uma tabela ou código cifrado.
O codificador de banda alta A202 inclui também um filtro de síntese A220 configurado para produzir um sinal de banda alta sintetizado S130 de acordo com o sinal de excitação de banda alta S120 e com o envelope espectral sintetizado (o conjunto de coeficientes de filtro LP, por exemplo) produzido pelo módulo de análise A210. O filtro de síntese A220 é tipicamente incluído como um filtro IIR, embora implementações FIR possam ser também utilizadas. Em um exemplo, o filtro de síntese A220 é implementado como um filtro auto-regressivo linear de sexta ordem.
O calculador de fatores de ganho de banda alta A230 calcula uma ou mais diferenças entre os níveis do sinal de banda alta original S30 e do sinal de banda alta sintetizado S130 de modo a especificar um envelope de ganho para o quadro. O quantizador 430, que pode ser implementado como um quantizador de vetores que codifica o vetor de entrada como um índice para uma entrada de vetor correspondente em uma tabela ou código cifrado, quantifica o valor ou valores que especificam o envelope de ganho, e o codificador de banda alta A202 é configurado para transmitir o resultado desta quantificação como fatores de ganho de banda alta S60b. Em uma implementação mostrada na Figura 10, o
filtro de síntese A220 é disposto de modo a receber os coeficientes de filtro do módulo de análise A210. Uma implementação alternativa do codificador de alta banda A202 inclui um quantizador inversa e uma transformada inversa configurados para decodificar os coeficientes de filtro dos parâmetros de banda alta S60a, e neste caso o filtro de síntese A220 é disposto de modo a receber, em vez disso, os coeficientes de filtro decodificados. Tal disposição alternativa pode suportar um cálculo mais preciso do envelope de ganho pelo calculador de ganhos de alta banda A230.
Em um exemplo específico, o módulo de análise A210 e o calculador de ganhos de banda alta A230 transmitem um conjunto de seis LSFs e um conjunto de cinco valores de ganho por quadro, respectivamente, de modo que uma extensão de banda larga do sinal de banda estreita S20 possa ser obtida com onze valores adicionais por quadro. O ouvido tende a ser menos sensível a erros de freqüência a freqüências elevadas, de modo que a codificação de banda estreita a uma ordem LPC baixa possa produzir um sinal que tem uma qualidade perceptiva comparável com a codificação de banda estreita a uma ordem LPC mais elevada. Uma implementação do codificador de banda alta A200 pode ser configurada para transmitir de 8 a 12 bits por quadro para a reconstrução de alta qualidade do envelope espectral e outros 8 a 12 bits por quadro para a reconstrução de alta qualidade do envelope temporal. Em outro exemplo especifico, o módulo de análise A210 transmite um conjunto de oito LSFs por quadro.
Algumas implementações do codificador de banda alta A200 são configuradas para produzir o sinal de excitação de banda alta S120 pela geração de um sinal de ruído aleatório que tem componentes de freqüência de banda alta e pela modulação pela amplitude do sinal de ruído de acordo com o envelope no domínio do tempo do sinal de banda estreita S20, do sinal de excitação de banda estreita S80 ou do sinal de banda alta S30. Embora tal método baseado em ruído possa produzir resultados adequados para sons não vocalizados, pode, contudo, não ser desejável para sons vocalizados, cujos residuais são usualmente harmônicos e, conseqüentemente, têm alguma estrutura periódica.
0 gerador de excitação de banda alta A300 é configurado para gerar o sinal de excitação de banda alta S120 estendendo o espectro do sinal de excitação de banda estreita S80 para dentro da faixa de freqüências de banda alta. A Figura 11 mostra um diagrama de blocos de uma implementação A302 do gerador de excitação de banda alta A300. 0 quantizador inverso 450 é configurado para desquantificar o sinal de excitação de banda estreita codificado S50 de modo a se produzir o sinal de excitação de banda estreita S80. O extensor de espectro A400 é configurado para produzir um sinal harmônico estendido S160 com base no sinal de excitação de banda estreita S80. O combinador 470 é configurado para combinar um sinal de ruído aleatório gerado pelo gerador de ruído 480 e um envelope no domínio do tempo calculado pelo calculador de envelopes 4 60 de modo a se produzir um sinal de ruído modulado S170. O combinador 490 é configurado para misturar o sinal harmônico estendido S60 e o sinal de ruído modulado S170 de modo a se produzir o sinal de excitação de banda alta S120.
Em um exemplo, o extensor de espectro A400 é configurado para executar uma operação de dobramento espectral (também chamada espelhamento) no sinal de excitação de banda estreita S80 de modo a se produzir o sinal harmônico estendido S160. O dobramento espectral pode ser efetuado enchendo-se com zero o sinal de excitação S80 e em seguida aplicando-se um filtro de passa-alta de modo a reter o alias. Em outro exemplo, o extensor de espectro A400 é configurado para produzir o sinal harmônico estendido S160 traduzindo-se espectralmente o sinal de excitação de banda estreita S80 para a banda alta (por meio de amostragem ascendente seguida de multiplicação por um sinal de co-seno de freqüência constante, por exemplo).
Os métodos de dobramento e tradução espectrais podem produzir sinais espectralmente estendidos cuja estrutura harmônica é descontínua com a estrutura harmônica original do sinal de excitação de banda estreita S80 em fase e/ou freqüência. Por exemplo, tais métodos podem produzir sinais que têm picos que não são geralmente localizados a múltiplos da freqüência fundamental, o que pode causar artefatos de som metálico no sinal de fala reconstruído. Estes métodos também tendem a produzir harmônicos de alta freqüência que têm características tonais artificialmente intensas. Além do mais, uma vez que um sinal PSTN pode ser amostrado a 8 kHz, mas com limitação de banda a não mais de 3400 Hz, o espectro superior do sinal de excitação de banda estreita S80 pode conter pouca ou nenhuma energia, de modo que um sinal estendido gerado de acordo com uma operação de dobramento espectral ou tradução espectral possa ter um orifício espectral acima de 3400 Hz.
Outros métodos de geração do sinal harmônico estendido S160 incluem identificar uma ou mais freqüências fundamentais do sinal de excitação de banda estreita S80 e gerar tons harmônicos de acordo com essa informação. Por exemplo, a estrutura harmônica de um sinal de excitação pode ser caracterizada pela freqüência fundamental juntamente com informações sobre amplitude e fase. Outra implementação do gerador de excitação de banda alta Δ300 gera um sinal harmônico estendido S160 com base na freqüência e na amplitude fundamentais (indicadas, por exemplo, pelo defasagem de pitch e pelo ganho de pitch). Δ menos que o sinal harmônico estendido seja coerente em fase com o sinal de excitação de banda estreita S80, contudo, a qualidade da fala decodificada resultante pode não ser aceitável.
Uma função não-linear pode ser utilizada para criar um sinal de excitação de banda alta que é coerente em fase com a excitação de banda estreita e preserva a estrutura harmônica sem descontinuidade de fase. Uma função não-linear pode também proporcionar um nível de ruído maior entre harmônicos de alta freqüência, o qual tende a soar mais natural que os harmônicos tonais de alta freqüência produzidos por métodos tais como o dobramento espectral e a tradução espectral. Funções não-lineares sem memória que podem ser aplicadas por diversas implementações do extensor de espectro A400 incluem a função de valor absoluto (também chamada retificação de onda total), retificação de meia- onda, elevação ao quadrado, elevação ao cubo e recorte. Outras implementações do extensor de espectro A400 podem ser configuradas para aplicar uma função não-linear com memória.
A Figura 12 é um diagrama de blocos de uma implementação A402 do extensor de espectro A400, que é configurado para aplicar uma função não-linear de modo a estender o espectro do sinal de excitação de banda estreita S80. O upsampler 510 é configurado para amostrar de maneira ascendente o sinal de excitação de banda estreita S80. Pode ser desejável amostrar de maneira ascendente o sinal o suficiente para reduzir ao mínimo o aliasing mediante a aplicação da função não-linear. Em um exemplo específico, o upsampler 519 amostra de maneira ascendente o sinal em um fator de oito. O upsampler 510 pode ser configurado para executar a operação de amostragem ascendente pelo enchimento com zero do sinal de entrada pela filtragem passa-baixa do resultado. O calculador de função não-linear 520 é configurado para aplicar uma função não-linear ao sinal amostrado de maneira ascendente. Uma vantagem potencial da função de valor absoluto sobre outras funções não-lineares para extensão espectral, como, por exemplo, elevação ao quadro, é que a normalização da energia não é necessária. Em algumas implementações, a função de valor absoluto pode ser aplicada de maneira eficaz pela eliminação ou liberação do bit de sinal de cada amostra. O calculador de função não-linear 520 pode ser também configurado para executar uma deformação da amplitude do sinal amostrado de maneira ascendente ou espectralmente estendido.
O downsampler 530 é configurado para amostrar de maneira descendente o resultado espectralmente estendido da aplicação da função não-linear. Pode ser desejável que o downsampler 530 execute uma operação de filtragem de banda passante de modo a selecionar uma banda de freqüência desejada do sinal espectralmente estendido antes da redução da taxa de amostragem (como, por exemplo, para reduzir ou evitar aliasing ou corrupção por uma imagem indesejável). Pode ser também desejável que o downsampler 530 reduza a taxa de amostragem em mais de um estágio.
A Figura 12a é um diagrama que mostra os espectros de sinal em diversos pontos em um exemplo de operação de extensão espectral, onde a escala de freqüência é a mesma através dos diversos esquemas. O esquema (a) mostra o espectro de um exemplo de sinal de excitação de banda estreita S80. O esquema (b) mostra o espectro depois de o sinal S80 ter sido amostrado de maneira ascendente em um fator de oito. O esquema (c) mostra um exemplo do espectro estendido após a aplicação de uma função não- linear. O esquema (d) mostra o espectro após a filtragem passa-baixa. Neste exemplo, a banda passante estende-se até o limite de freqüência superior do sinal de banda alta S30 (7 kHz ou 8 kHz, por exemplo).
O esquema (e) mostra o espectro depois de um primeiro estágio de amostragem descendente, no qual a taxa de amostragem é reduzida em um fato de quatro de modo a se obter um sinal de banda larga. O esquema (f) mostra o espectro após uma operação de filtragem passa-alta para selecionar a parte de banda alta do sinal estendido, e o esquema (g) mostra o espectro após um segundo estágio de amostragem descendente, no qual a taxa de amostragem é reduzida em um fator de dois. Em um exemplo especifico, o downsampler 530 efetua a filtragem passa-alta e o segundo estágio de amostragem descendente pela passagem do sinal de banda larga através do filtro passa-alta 130 e do downsampler 140 do banco de filtros A112 (ou outras estruturas ou rotinas que têm a mesma resposta) de modo a se produzir um sinal espectralmente estendido que tem a faixa de freqüências e a taxa de amostragem do sinal de banda alta S30.
Conforme pode ser visto no esquema (g), a amostragem descendente do sinal passa-alta mostrado no esquema (f) causa uma inversão do seu espectro. Neste exemplo, o downsampler 530 é também configurado para executar uma operação de recorte espectral no sinal. O esquema (h) mostra o resultado da aplicação da operação de recorte espectral, que pode ser executada multiplicando-se o sinal pela função ejn7t ou pela seqüência (-l)n, cujos valores se alternam entre +1 e -1. Tal operação é equivalente ao deslocamento do espectro digital do sinal no dominio da freqüência por uma pitch de π. Observa-se que o mesmo resultado pode ser também obtido pela aplicação das operações de amostragem descendente e de recorte espectral em uma ordem diferente. As operações de amostragem ascendente e/ou amostragem descendente podem ser também configuradas para incluir a re-amostragem para obter um sinal espectralmente estendido que tem a taxa de amostragem do sinal de banda alta S30 (7 kHz, por exemplo).
Conforme observado acima, os bancos de filtros AllO e B120 podem ser implementados de modo que um ou ambos os sinais de banda estreita e banda alta S20, S30 tenham uma forma espectralmente invertida na saida do banco de filtros A110, sejam codificados e decodificados na forma espectralmente invertida e sejam espectralmente invertidos novamente no banco de filtros B120 antes de serem transmitidos no sinal de fala de banda larga SllO. Em tal caso, evidentemente, uma operação de recorte espectral mostrada na Figura 12a pode não ser implementada, como seria desejável para que o sinal de excitação de banda alta S120 tivesse uma forma espectralmente invertida também. As diversas tarefas de amostragem ascendente e amostragem descendente de uma operação de extensão espectral executada pelo extensor de espectro A401 podem ser configuradas e dispostas de muitas maneiras diferentes.
Por exemplo, a Figura 12b é um diagrama que mostra os espectros de sinal em diversos pontos em outro exemplo de uma operação de extensão espectral, onde a escala de freqüência é a mesma através dos diversos esquemas. O esquema (a) mostra o espectro de um exemplo do sinal de excitação de banda estreita S80. 0 esquema (b) mostra o espectro depois de o sinal S80 ter sido amostrado de maneira ascendente em um fator de dois. O esquema (c) mostra um exemplo do espectro estendido após a aplicação de uma função não-linear. Neste caso, o aliasing que pode ocorrer nas freqüências mais elevadas é aceito.
O esquema (d) mostra o espectro após uma operação de inversão espectral. O esquema (c) mostra o espectro após um único estágio de amostragem descendente, no qual a taxa de amostragem é reduzida em um fator de dois de modo a se obter o sinal espectralmente estendido desejado. Neste exemplo, o sinal está em uma forma espectralmente invertida e pode ser utilizado em uma implementação de codificador de banda alta A200, que processou o sinal de banda alta S30 em tal forma.
0 sinal espectralmente estendido produzido pelo
calculador de função não-linear 520 terá provavelmente uma queda pronunciada na amplitude à medida que a freqüência aumenta. O extensor espectral A402 inclui um nivelador espectral 540 configurado para executar uma operação de embranquecimento no sinal amostrado de maneira descendente. O nivelador espectral 540 pode ser configurado para executar uma operação de embranquecimento fixo ou para executar uma operação de embranquecimento adaptativo. Em um exemplo específico de embranquecimento adaptativo, o nivelador espectral 540 inclui um módulo de análise LPC configurado para calcular um conjunto de quatro coeficientes de filtro a partir do sinal amostrado de maneira descendente e um filtro de análise de quarta ordem configurado para embranquecer o sinal de acordo com esses coeficientes. Outras implementações do extensor de espectro A400 incluem configurações nas quais o nivelador espectral 540 opera no sinal espectralmente estendido antes do downsampler 530.
O gerador de excitação de banda alta A300 pode ser implementado para transmitir o sinal harmônico estendido S160 como o sinal de excitação de banda alta S120. Em alguns casos, contudo, a utilização de um sinal harmônico estendido como a excitação de banda alta pode resultar em artefatos audíveis. A estrutura harmônica da fala é geralmente menos pronunciada na banda alta do que na banda baixa, e a utilização de uma estrutura harmônica demais no sinal de excitação de banda alta pode resultar em um som de zumbido. Este artefato pode ser especialmente notável em sinais de fala de falantes femininos.
As configurações incluem implementações do gerador de excitação de banda alta A300 que são configuradas para misturar o sinal estendido harmônico S160 com um sinal de ruído. Conforme mostrado na Figura 11, o gerador de excitação de banda alta A302 inclui um gerador de ruído 480 que é configurado para produzir um sinal de ruído aleatório. Em um exemplo, o gerador de ruído 480 é configurado para produzir um sinal de ruído pseudo- aleatório branco de variância unitária, embora em outras implementações não seja necessário que o sinal de ruído seja branco e ele pode ter uma densidade de potência que varia com a freqüência. Pode ser desejável que o gerador de ruído 480 seja configurado para transmitir o sinal de ruído como uma função determinística de modo que seu estado possa ser duplicado no decodificador. Por exemplo, o gerador de ruído 480 pode ser configurado para transmitir o sinal de ruído como uma função determinística das informações codificadas anteriormente dentro do mesmo quadro, tais como os parâmetros de filtro de banda estreita S40 e/ou o sinal de excitação de banda estreita codificado S50.
Antes de ser misturado com o sinal harmônico estendido S160, o sinal de ruído aleatório produzido pelo gerador de ruído 480 pode modulado na amplitude de modo a ter um envelope no domínio do tempo que se aproxime da distribuição de energia ao longo do tempo do sinal de banda estreita S20, do sinal de banda alta S30, do sinal de excitação de banda estreita S80 ou do sinal harmônico estendido S160. Conforme mostrado na Figura 11, o gerador de excitação de banda alta A302 inclui um combinador 470 configurado para modular pela amplitude o sinal de ruído produzido pelo gerador de ruído 480 de acordo com um envelope no domínio do tempo calculado pelo calculador de envelope 4 60. Por exemplo, o combinador 470 pode ser implementado como um multiplicador disposto para escalonar a saída do gerador de ruído 480 de acordo com o envelope no domínio do tempo calculado pelo calculador de envelope 460 de modo a se produzir o sinal de ruído modulado S170.
Em uma implementação A304 do gerador de excitação de banda alta A302, conforme mostrado no diagrama de blocos da Figura 13, o calculador de envelope 4 60 é disposto de modo a calcular o envelope do sinal harmônico estendido S160. Em uma implementação A306 do gerador de excitação de banda alta A302, conforme mostrado no diagrama de blocos da Figura 14, o calculador de envelope 4 60 é disposto de modo a calcular o envelope do sinal de excitação de banda estreita S80. Outras implementações do gerador de excitação de banda alta A302 pode ser de outro modo configurado para adicionar ruido ao sinal harmônico estendido S160 de acordo com as localizações dos pulsos de pitch de banda estreita no tempo.
O calculador de envelope 460 pode ser configurado para efetuar um cálculo de envelope como uma tarefa que inclui uma pluralidade de sub-tarefas. A Figura 15 mostra um diagrama de fluxos de um exemplo TlOO de tal tarefa. A sub-tarefa TllO calcula o quadrado de cada amostra do quadro do sinal cujo envelope será modelado como, por exemplo, o sinal de excitação de banda estreita S80 ou o sinal harmônico estendido S160), de modo a se produzir uma seqüência de valores elevados ao quadrado. A sub-tarefa T120 executa uma operação de suavização na seqüência de valores elevados ao quadrado. Em um exemplo, a sub-tarefa T120 aplica um filtro passa-baixa IIR de primeira ordem à seqüência de acordo com a expressão
y(n) = ax(n) + (l-a) y(n-l), (1)
onde χ é a entrada do filtro, y é saida do filtro, η é um índice no domínio do tempo e a é um coeficiente de suavização que tem um valor entre 0,5 e 1. O valor do coeficiente de suavização a pode ser fixo ou, em uma implementação alternativa, pode ser adaptativo de acordo com uma indicação de ruído no sinal de entrada, de modo que a esteja mais próximo de 1 na ausência de ruído e mais próximo de 0,5 na presença de ruído. A sub-tarefa T130 aplica uma função de raiz quadrada a cada amostra da seqüência suavizada, de modo a se produzir o envelope no domínio do tempo.
Tal implementação do calculador de envelope 4 60 pode ser configurada para desempenhar as diversas sub- tarefas da tarefa T100 à maneira serial e/ou em paralelo. Em outras implementações da tarefa T100, a sub-tarefa TllO pode ser precedida por uma operação de banda passante configurada para selecionar uma parte de freqüência desejada do sinal cujo envelope será modelado, tal como a faixa de 3-4 kHz.
O combinador 4 90 é configurado para misturar o sinal harmônico estendido S160 e o sinal de ruido modulado S170 de modo a produzir o sinal de excitação de banda alta S120. As implementações do combinador 4 90 podem ser configuradas, por exemplo, para calcular o sinal de excitação de banda alta S120 como uma soma do sinal harmônico estendido S160 e do sinal de ruido modulado S170. Tal implementação do combinador 490 pode ser configurada para calcular o sinal de excitação de banda alta S120 como uma soma ponderada aplicando-se um fator de ponderação ao sinal harmônico estendido S160 e/ou ao sinal de ruido modulado S170 antes da soma. Cada fator de ponderação que tal pode ser calculado de acordo com um ou mais critérios e pode ser um valor fixo ou, alternativamente, um valor adaptativo que é calculado em uma base de quadro por quadro ou de sub-quadro por sub-quadro.
A Figura 16 mostra um diagrama de blocos de uma implementação 4 92 do combinador 4 90 que é configurada para calcular o sinal de excitação de banda alta S120 como uma soma ponderada do sinal harmônico estendido S160 e do sinal de ruido modulado S170. O combinador 4 92 é configurado para pesar o sinal harmônico estendido S160 de acordo com o fator de ponderação de harmônico S180, para pesar o sinal de ruido modulado SlO de acordo com o fator de ponderação de ruido S190 e para transmitir o sinal de excitação de banda alta S120 como uma soma dos sinais ponderados. Neste exemplo, o combinador 492 inclui um calculador de fatores de ponderação 550 que é configurado para calcular o fator de ponderação de harmônico S180 e o fator de ponderação de ruído S190.
O calculador de fatores de ponderação 550 pode ser configurado para calcular os fatores de ponderação S180 e S190 de acordo com a relação desejada teor harmônico-teor de ruído no sinal de excitação de banda alta S120. Por exemplo, pode ser desejável que o combinador 492 produza o sinal de excitação de banda alta S120 de modo a ter uma relação energia harmônica-energia de ruído semelhante à do sinal de banda alta S30. Em algumas implementações do calculador de fatores de ponderação 550, os fatores de ponderação S180, S190 são calculados de acordo com um ou mais parâmetros referentes a uma periodicidade do sinal de banda estreita S20 ou do sinal residual de banda estreita, tais como ganho de pitch e/ou modo de fala. Tal implementação do calculador de fatores de ponderação 550 pode ser configurada para atribuir um valor ao fator de ponderação de harmônico S180 que é proporcional ao ganho de pitch, por exemplo, e/ou para atribuir um valor mais elevado ao fator de ponderação de ruído sl90 para sinais de fala não vocalizada do que para sinais de fala vocalizada.
Em outras implementações, o calculador de fatores de ponderação 550 é configurado para calcular valores para o fator de ponderação de harmônico S180 e/ou para o fator de ponderação de ruído S190 de acordo com uma medida de periodicidade do sinal de banda alta S30. Em um exemplo que tal, o calculador de fatores de ponderação 550 calcula o fator de ponderação de harmônico S180 como o valor máximo dos coeficientes de autocorrelação do sinal de banda alta S30 para ou quadro ou sub-quadro atual, onde a autocorrelação é efetuada dentro de uma faixa de busca que inclui um defasagem de pitch e não inclui um retardo de zero amostra. A Figura 17 mostra um exemplo de tal faixa de busca de η amostras de comprimento que é centralizada em volta de um defasagem de pitch e tem uma largura não superior a um defasagem de pitch.
A Figura 17 mostra também um exemplo de outra abordagem na qual o calculador de fatores de ponderação 550 calcula uma medida de periodicidade do sinal de banda alta S30 em vários estágios. Em um primeiro estágio, o quadro atual é dividido em vários sub-quadros, e o retardo para o qual o coeficiente de autocorrelação é máximo é identificado separadamente para cada sub-quadro. Conforme mencionado acima, a autocorrelação é efetuada dentro de uma faixa de busca que inclui um defasagem de pitch de um e não inclui um retardo de amostras zero.
Em um segundo estágio, um quadro retardado é construído aplicando-se o retardo identificado correspondente a cada sub-quadro, concatenando-se os sub- quadros resultantes para construir um quadro otimamente retardado e calculando-se o fator de ponderação de harmônico S180 como o coeficiente de correlação entre o quadro original e o quadro otimamente retardado. Em outra alternativa, o calculador de fatores de ponderação 550 calcula o fator de ponderação de harmônico S180 como a média dos coeficientes de autocorrelação máximos obtidos no primeiro estágio para cada sub-quadro. Implementações do calculador de fatores de ponderação 550 podem ser também configuradas para escalonar o coeficiente de correlação, e/ou para combiná-lo com outro valor, de modo a se calcular o valor para o fator de ponderação de harmônico S180.
Pode ser desejável que o calculador de fatores de ponderação 550 calcule uma medida de periodicidade do sinal de banda alta S30 nos casos em que a presença de periodicidade no quadro é indicada de outro modo. Por exemplo, o calculador de fatores de ponderação 550 pode ser configurado para calcular uma medida de periodicidade do sinal de banda alta S30 de acordo com a relação entre outro indicador de periodicidade do quadro atual, tal como um ganho de pitch, e um valor de limite. Em um exemplo, o calculador de fatores de ponderação 550 é configurado para executar uma operação de autocorrelação no sinal de banda alta se o ganho de pitch do quadro (como, por exemplo, o ganho de código cifrado adaptativo do residual de banda estreita) tem um valor de mais de 0,5 (alternativamente, pelo menos 0,5). Em outro exemplo, o calculador de fatores de ponderação 550 é configurado para executar uma operação de autocorrelação no sinal de banda alta S30 para quatros que têm estados específicos do modo de fala (para sinais vocalizados, por exemplo) . Em tais casos, o calculador de fatores de ponderação 550 pode ser configurado para atribuir um fator de ponderação pré-definido para quadros que têm outros estados do modo de fala e/ou valores menores de ganho de pitch.
As configurações incluem outras implementações do calculador de fatores de ponderação 550 que são configuradas para calcular fatores de ponderação de acordo com características outras que não ou além da periodicidade. Por exemplo, tal implementação pode ser configurada para atribuir um valor mais elevado ao fator de ganho de ruído S190 para sinais de fala que têm um defasagem de pitch grande do que para sinais de fala que têm um defasagem de pitch pequeno. Outra implementação que tal do calculador de fatores de ponderação 550 é configurada para determinar a medida da qualidade de harmônico do sinal de fala de banda larga S10, ou do sinal de banda alta S30, de acordo com a medida da energia do sinal a múltiplos da freqüência fundamental com relação à energia do sinal a outros componentes de freqüência. Algumas implementações do codificador de fala de banda larga AlOO são configuradas para transmitir uma indicação de periodicidade ou qualidade de harmônico (como, por exemplo, um indicador de um bit indicando se o quadro é harmônico ou não harmônico) com base no ganho de pitch e/ou em outra medida de periodicidade ou qualidade de harmônico aqui descrita. Em um exemplo, um decodificador de fala de banda larga BlOO correspondente utiliza esta indicação para configurar uma operação tal como o cálculo de fatores de ponderação. Em outro exemplo, tal indicação é utilizada no codificador e/ou no decodif icador no cálculo de um valor para um parâmetro de modo de fala.
Pode ser desejável que o gerador de excitação de banda alta A302 gere o sinal de excitação de banda alta S120 de modo que a energia do sinal de excitação não seja substancialmente afetado pelos valores específicos dos fatores de ponderação S180 e S190. Em tal caso, o calculador de fatores de ponderação 550 pode ser configurado para calcular o valor do fator de ponderação de harmônico S180 ou do fator de ponderação de ruído S190 (ou para receber tal valor do armazenamento ou de outro elemento do codificador de banda alta A200) e para derivar um valor para o outro fator de ponderação de acordo com uma expressão tal como (Wharm0nico)2 + (Wruldo)2 = 1, (2)
onde WharmSnico denota o fator de ponderação de harmônico S180 e Wruido denota o fator de ponderação de ruído S190. Alternativamente, o calculador de fatores de ponderação 550 pode ser configurado para selecionar, de acordo com o valor da medida de periodicidade do quadro ou sub-quadro atual, um par correspondente dentre uma pluralidade de pares de fatores de ponderação S18, S190, onde os pares são pré- calculados de modo a satisfazerem a razão de energia constante, tal como a expressão (2). Para uma implementação do calculador de fatores de ponderação 550 na qual a expressão (2) é observada, os valores típicos para o fator de ponderação de harmônico S180 variam na faixa de cerca de 0,7 a cerca de 1,0, e os valores típicos para o fator de ponderação de ruído S190 variam na faixa de cerca de 0,1 a cerca de 0,7. Outras implementações do calculador de fatores de ponderação 550 podem ser configuradas para funcionar de acordo com uma versão da expressão (2) que é modificada com a ponderação de linha base desejada entre o sinal harmônico estendido S160 e o sinal de ruído modulado S17 0.
Artefatos podem ocorrer em um sinal de fala sintetizado quando um código cifrado esparso (um cujas entradas são em sua maioria valores de zero) tiver sido utilizado para calcular a representação quantificada do residual. A característica de esparso do código cifrado ocorre especialmente quando o sinal de banda estreita é codificado a uma taxa de bits baixa. Os artefatos ,causados pela característica de esparso do código cifrado são tipicamente quase periódicos no tempo e ocorrer em sua maioria acima de 3 kHz. Uma vez que o ouvido humano tem melhor resolução temporal a freqüências mais elevadas, estes artefatos podem ser mais notáveis na banda alta. As configurações incluem implementações do
gerador de excitação de banda alta A300 que são configuradas para efetuar filtragem anti-dispersão. A Figura 18 mostra um diagrama de blocos de uma implementação A312 do gerador de excitação de banda alta A302 que inclui um filtro anti-dispersão 600 disposto de modo a filtrar o sinal de excitação de banda estreita desquantifiçado produzido pelo quantizador inverso 450. A Figura 19 mostra um diagrama de blocos de uma implementadas A314 do gerador de excitação de banda alta A302, que inclui um filtro anti- dispersão 600 disposto de modo a filtrar o sinal espectralmente estendido produzido pelo extensor de espectro A400. A Figura 20 mostra um diagrama de blocos de uma implementação A316 do gerador de excitação de banda alta A302, que inclui um filtro anti-dispersão 600 disposto de modo a filtrar a saida do combinador 4 90 para produzir o sinal de excitação de banda alta S120. Evidentemente, implementações do gerador de excitação de banda alta A300 que combinem os recursos de qualquer uma das implementações A304 e A306 com os recursos de qualquer uma das implementações A312, A314 e A136 são contempladas e aqui expressamente reveladas. 0 filtro anti-dispersão 600 pode ser também disposto dentro do extensor de espectro A400: por exemplo, depois de qualquer um dos elementos 510, 520, 530 e 540 no extensor de espectro A402. Nota-se expressamente que o filtro anti-dispersão 600 pode ser também utilizado com implementações do extensor de espectro A400 que executam dobramento espectral, tradução espectral ou extensão harmônica.
O filtro anti-dispersão 600 pode ser configurado para alterar a fase de seu sinal de entrada. Por exemplo, pode ser desejável que o filtro anti-dispersão 600 seja configurado e disposto de modo que a fase do sinal de excitação de banda alta S120 seja aleatorizada, ou senão distribuída de maneira mais uniforme, ao longo do tempo. Pode ser também desejável que a resposta do filtro anti- dispersão 600 seja espectralmente plano, de modo que o espectro de magnitude do sinal filtrado não seja alterado de maneira apreciável. Em um exemplo, o filtro anti- dispersão 600 é implementado como um filtro passa-tudo que tem uma função de transferência de acordo com a seguinte expressão: (3)
Um efeito de tal filtro pode ser espalhar para fora a energia do sinal de entrada de modo que não fique mais concentrada em algumas amostras.
cifrado são usualmente mais notáveis sinais do tipo de ruído, onde o residual inclui menos informações sobre pitch e também para fala no ruido de fundo. A dispersão causa tipicamente menos artefatos nos casos em que a excitação tem uma estrutura de longo prazo, e de fato uma modificação de fase pode causar ruido em sinais vocalizados. Assim, pode ser desejável configurar o filtro anti-dispersão 600 para filtrar sinais não vocalizados e para passar pelo menos alguns sinais vocalizados sem alteração. Os sinais não vocalizados são caracterizados por um ganho de pitch baixo (ganho de código cifrado adaptativo de banda estreita quantificado, por exemplo) e uma inclinação espectral (um primeiro coeficiente de reflexão quantificado, por exemplo) que está próxima de zero ou é positiva, indicando um envelope espectral que é plano ou inclinado para com o aumento da freqüência. Implementações típicas do filtro anti-dispersão 600 são configuradas para filtrar sons não vocalizados (conforme indicado pelo valor da inclinação espectral, por exemplo), para filtrar sons vocalizados quando o ganho de pitch estiver abaixo de um valor de limite (alternativamente, não superior ao valor de limite) e de outro modo para fazer passar o sinal sem alteração.
600 incluem dois ou mais filtros que são configurados para ter ângulos de modificação de fase máximos diferentes (de até 180 graus, por exemplo) . Em tal caso, o filtro anti- dispersão 600 pode ser configurado para selecionar entre
5
Os artefatos causados pela dispersão do código
Outras implementações do filtro anti-dispersão estes filtros componentes de acordo com o valor do ganho de pitch (o ganho de código cifrado adaptativo ou LTP quantificado, por exemplo), de modo que um ângulo de modificação de fase máximo maior seja utilizado para quadros que têm valores de ganho de pitch mais baixos. Uma implementação do filtro anti-dispersão 600 pode incluir também filtros componentes diferentes que são configurados para modificar a fase através mais ou menos do espectro de freqüência, de modo que um filtro configurado para modificar a fase através de uma faixa de freqüência mais larga do sinal de entrada seja utilizado para quadros que têm valores de ganho de pitch mais baixos.
Para a reprodução exata do sinal de fala codificado, pode ser desejável que a razão entre os niveis das partes de banda alta e banda estreita do sinal de fala de banda larga sintetizado SlOO seja semelhante à existente no sinal de fala de banda larga original SlO. Além de um envelope espectral representado pelos parâmetros de codificação de banda alta S60a, o codificador de banda alta A200 pode ser configurado para caracterizar o sinal de banda alta S30 pela especificação de um envelope temporal ou de ganho. Conforme mostrado na Figura 10, o codificador de banda alta A202 inclui um calculador de fatores de ganho de banda alta A230, que é configurado e disposto de modo a calcular um ou mais fatores de ganho de acordo com a relação entre o sinal de banda alta S30 e o sinal de banda alta sintetizado S130, tal como a diferença ou razão entre as energias dos dois sinais através de um quadro ou de alguma parte dele. Em outras implementações do codificador de banda alta A202, o calculador de ganhos de banda alta A230 pode ser igualmente configurado, mas disposto em vez disso para calcular o envelope de ganho de acordo com tal relação variável no tempo entre o sinal de banda alta S30 e o sinal de excitação de banda estreita S80 ou o sinal de excitação de banda alta S120.
É provável que os envelopes temporais do sinal de excitação de banda estreita S80 e o sinal de banda alta S30 sejam semelhantes. Portanto, a codificação de um envelope de ganho que é baseada na relação entre o sinal de banda alta S30 e o sinal de excitação de banda estreita S80 (ou um sinal derivado dele, tal como o sinal de excitação de banda alta S120 ou o sinal de banda alta sintetizado S130) será geralmente mais eficaz que a codificação de um envelope de ganho baseada no sinal de banda alta S30. Em uma implementação típica, o codificador de banda alta A202 é configurado para transmitir um índice quantificado de oito a doze bits que especifica cinco fatores de ganho para cada quadro.
O calculador de fatores de ganho de banda alta A230 pode ser configurado para efetuar cálculo de fatores de ganho como uma tarefa que inclui uma ou mais pluralidades de sub-tarefas. A Figura 21 mostra um diagrama de fluxos de um exemplo T200 de tal tarefa, que calcula um valor de ganho para um sub-quadro correspondente de acordo com as energias relativas do sinal de banda alta S30 e do sinal de banda alta sintetizado S130. As tarefas 220a e 220b calculam as energias dos sub-quadros correspondentes dos respectivos sinais. Por exemplo, as tarefas 220a e 220b podem ser configuradas para calcular a energia como a soma dos quadrados das amostras do respectivo sub-quadro. A tarefa T230 calcula o fator de ganho para o sub-quadro como a raiz quadrada da razão dessas energias. Neste exemplo, a tarefa T230 calcula o fator de ganho como a raiz quadrada da razão da energia do sinal de banda alta S30 para a energia do sinal de banda alta sintetizado S130 através do sub-quadro. Pode ser desejável que o calculador de fatores de ganho de banda alta A230 seja configurado para calcular as energias de sub-quadro de acordo com uma função de janela. A Figura 22 mostra um diagrama de fluxos de tal implementação T210 da tarefa de cálculo de fatores de ganho T200. A tarefa T215a aplica uma função de janela ao sinal de banda alta S30, e a tarefa T215b aplica a mesma função de janela ao sinal de banda alta sintetizado S130. As implementações 222a e 222b das tarefas 220a e 220b calculam as energias das respectivas janelas, e a tarefa T230 calcula o fator de ganho para o sub-quadro como a raiz quadrada da razão das energias.
Pode ser desejável aplicar uma função de janela que se superponha a sub-quadros adjacentes. Por exemplo, uma função de janela que produza fatores de ganho que podem ser aplicados à maneira de superposição-adição pode ajudar a reduzir ou evitar descontinuidade entre os sub-quadros. Em um exemplo, o calculador de fatores de ganho de banda alta A230 é configurado para aplicar uma função de janela trapezoidal, conforme mostrada na Figura 23a, na qual a janela se superpõe a cada um dos dois sub-quadros adjacentes em um milissegundo. A Figura 23b mostra uma aplicação desta função de janela a cada um dos cinco sub- quadros de um quadro de 20 milissegundos. Outras implementações do calculador de fatores de ganho de banda alta A230 podem ser configuradas para aplicar funções de janela que têm períodos de superposição diferentes e/ou conformações de janela diferentes (retangular, de Hammming, por exemplo), que podem ser simétricas ou assimétricas. É também possível que uma implementação do calculador de fatores de ganho de banda alta A230 seja configurada para aplicar funções de janela diferentes a sub-quadros diferentes dentro de um quadro e/ou que um quadro inclua sub-quadros de comprimentos diferentes.
Sem limitação, os valores seguintes são
apresentados como exemplos de implementações especificas.
Um quadro de 20 mseg é presumido para estes casos, embora qualquer outra duração possa ser utilizada. Para um sinal de banda alta amostrado a 7 kHz, cada quadro tem 140 amostras. Se tal quadro for dividido em cinco sub-quadros de comprimento igual, cada sub-quadro terá 28 amostras, e a janela mostrada na Figura 23a será de 42 amostras de largura. Para um sinal de banda alta amostrado a8 kHz, cada quadro tem 160 amostras. Se tal quadro for dividido em cinco sub-quadros de comprimento igual, cada sub-quadro terá 32 amostras, e a janela mostrada na Figura 23a será de 48 amostras de largura. Em outras implementações, sub- quadros de qualquer largura podem ser utilizados, e é até possível configurar uma implementação do calculador de ganhos de banda alta A230 para produzir um fator de ganho diferente para cada amostra de um quadro. A Figura 24 mostra um diagrama de blocos de uma
implementação B202 do decodificador de banda alta B200. O decodificador de banda alta B202 inclui um gerador de excitação de banda alta B300, que é configurado para produzir o sinal de excitação de banda alta S120 com base no sinal de excitação de banda estreita S80. Dependendo das escolhas de desenho de sistema específicas, o gerador de excitação de banda alta B300 pode ser implementado de acordo com qualquer uma das implementações do gerador de excitação de banda alta A300 aqui descrito. Tipicamente é desejável implementar o gerador de excitação de banda alta B300 para ter a mesma resposta do gerador de excitação de banda alta do codificador de banda alta do sistema de codificação específico. Uma vez que o decodificador de banda estreita BllO efetuará tipicamente a desquantificação do sinal de excitação de banda estreita S50, na maioria dos casos, contudo, o gerador de excitação de banda alta B300 pode ser implementado para receber o sinal de excitação de banda estreita S80 do decodificador de banda estreita BllO e não precisa incluir um quantizador inverso configurado para desquantificar o sinal de excitação de banda estreita descodifiçado S50. É também possível implementar o decodificador de banda estreita BllO para incluir uma ocorrência do filtro anti-dispersão 600 disposto de modo a filtrar o sinal de excitação de banda estreita desquantifiçado antes de ser introduzido em um filtro de síntese de banda estreita, como o filtro 330.
0 quantizador inverso 560 é configurado para desquantificar os parâmetros de filtro de banda alta S60a (neste exemplo, para um conjunto de LSFs), e a transformada LSF-coeficiente de filtro LP 570 é configurada para transformar as LSFs em um conjunto de coeficientes de filtro (como, por exemplo, conforme descrito acima com referência ao quantizador inverso 240 e à transformada 250 do codificador de banda estreita A122). Em outras implementações, conforme mencionado acima, diferentes conjuntos de coeficientes (coeficientes cepstrais, por exemplo) e/ou representações de coeficiente) (ISPs, por exemplo) podem ser utilizados. O filtro de síntese de banda alta B200 é configurado para produzir um sinal de banda alta sintetizado de acordo com o sinal de excitação de banda alta S120 e o conjunto de coeficientes de filtro. Para um sistema no qual o codificador de banda alta inclui um filtro de síntese (como no exemplo do codificador A202 descrito acima), pode ser desejável implementar o filtro de síntese de banda alta B200 para ter a mesma resposta (a mesma função de transferência, por exemplo) desse filtro de síntese.
O decodificador de banda alta B202 inclui também um quantizador inverso 580 configurado para desquantificar os fatores de ganho de banda alta S60b, e um elemento de controle de ganho 590 (um multiplicador ou amplificador, por exemplo) configurado e disposto para aplicar os fatores de ganho desquantifiçados ao sinal de banda alta sintetizado de modo a se produzir o sinal de banda alta SlOO. Para o caso de o envelope de ganho de um quadro ser especificado por mais de um fator de ganho, o elemento de controle de ganho 590 pode incluir uma lógica configurada para aplicar os fatores de ganho aos respectivos sub- quadros, possivelmente de acordo com uma função de janela que pode ser a mesma função de janela ou uma função de janela diferente aplicada por um calculador de ganho (o calculador de ganhos de banda alta A230, por exemplo) do codificador de banda alta correspondente. Em outras implementações do decodificador de banda alta B202, o elemento de controle de ganho 590 é igualmente configurado, mas é disposto em vez disso de modo a aplicar os fatores de ganho desquantifiçados ao sinal de excitação de banda estreita S80 ou ao sinal de excitação de banda alta S120.
Conforme mencionado acima, pode ser desejável obter o mesmo estado no codificador de banda alta e no decodificador de banda alta (utilizando-se valores desquantifiçados durante a codificação, por exemplo). Assim, pode ser desejável em um sistema de codificação de acordo com tal implementação assegurar o mesmo estado para os geradores de ruído correspondentes nos geradores de excitação de banda alta A300 e B300. Por exemplo, os geradores de excitação de banda alta A300 e B300 de tal implementação podem ser configurados de modo que o estado do gerador de ruído seja uma função determinística de informações já codificadas dentro do mesmo quadro (como, por exemplo, os parâmetros de filtro de banda estreita S40 ou uma parte deles e/ou o sinal de excitação de banda estreita codificado S50 ou uma parte dele).
Um ou mais dos quantizadores dos elementos aqui descritos (o quantizador 230, 420 ou 430, por exemplo) podem ser configurados para efetuar a quantificação dos vetores classificados. Por exemplo, tal quantizador pode ser configurado para selecionar um de um conjunto de códigos cifrados com base nas informações que já foram codificados dentro do mesmo quadro no canal de banda estreita e/ou no canal de banda alta. Tal técnica proporciona tipicamente maior eficácia de codificação à custa de armazenamento de códigos cifrados adicionais.
Conforme discutido acima com referência às Figuras 8 e 9, por exemplo, uma quantidade da estrutura periódica pode permanecer no sinal residual após a remoção do envelope espectral grosseiro do sinal de fala de banda estreita S20. Por exemplo, o sinal residual pode conter uma seqüência de pulsos ou picos mais ou menos periódicos ao longo do tempo. É provável que tal estrutura, que está tipicamente relacionada com a pitch, ocorra em sinais de fala vocalizados. O cálculo de uma representação quantificada do sinal residual de banda estreita pode incluir a codificação desta estrutura de pitch de acordo com um modelo de periodicidade de longo prazo representado por um ou mais códigos cifrados, por exemplo.
A estrutura de pitch de um sinal residual real pode não corresponder exatamente ao modelo de periodicidade. Por exemplo, o sinal residual pode incluir pequenas flutuações de fase na regularidade das localizações dos pulsos de pitch, de modo que as distâncias entre pulsos de pitch sucessivos em um quadro não sejam exatamente iguais e a estrutura não seja bastante regular.
Algumas implementações do codificador de banda estreita A120 são configuradas para efetuar a regularização da estrutura de pitch aplicando uma deformação temporal adaptativa ao residual antes ou durante a quantificação ou senão incluindo uma deformação temporal adaptativa no sinal de excitação codificado. Por exemplo, tal codificador pode ser configurado para selecionar ou então calcular o grau de deformação no tempo (como, por exemplo, de acordo com um ou mais critérios de ponderação perceptiva e/ou redução de erros ao mínimo) de modo que o sinal de excitação resultante se encaixe otimamente no modelo de periodicidade de longo prazo. A regularização da estrutura de pitch é efetuada por um sub-conjunto de codificadores CELP chamados codificadores de Predição Linear Excitados por Código de Relaxamento (RCELP).
Um codificador RCELP é tipicamente configurado para efetuar a deformação temporal como um deslocamento de tempo adaptativo. Este deslocamento de tempo pode ser um retardo que varia na faixa de alguns milissegundos negativos a alguns milissegundos positivos, e usualmente varia suavemente de modo a evitar descontinuidades audíveis. Em algumas implementações, tal codificador é configurado para aplicar a regularização de maneira sucessiva, em que cada quadro ou sub-quadro é deformado por um deslocamento de tempo fixo correspondente. Em outras implementações, o codificador é configurado para aplicar a regularização como uma função de deformação contínua, de modo que um quadro ou sub-quadro é deformado de acordo com um contorno de pitch (também chamado de trajetória de pitch). Em alguns casos, o codificador é configurado para incluir uma deformação de tempo no sinal de excitação codificado pela aplicação do deslocamento a um sinal de entrada perceptivamente ponderado que é utilizado para calcular o sinal de excitação codificado.
0 codificador calcula um sinal de excitação codificado que é regularizado e quantificado, e o decodificador desquantifica o sinal de excitação codificado de modo a se obter um sinal de excitação que é utilizado para sintetizar o sinal de fala decodificado. O sinal de saida decodificado apresenta assim o mesmo retardo variável que foi incluído no sinal de excitação codificado pela regularização. Tipicamente, nenhuma informação que especifica os graus de regularização é transmitida ao decodificador.
A regularização tende a tornar o sinal residual mais fácil de codificar, o que aperfeiçoa o ganho de codificação do preditor de longo prazo e intensifica assim a eficácia de codificação total, geralmente sem gerar artefatos. Pode ser desejável efetuar a regularização nos quadros que são vocalizados. Por exemplo, o codificador de banda estreita A124 pode ser configurado para deslocar os quadros ou sub-quadros que têm uma estrutura de longo prazo, tal como de sinais vocalizados. Pode até ser desejável efetuar a regularização em sub-quadros que incluem energia de pulso de pitch. As implementações existentes dos codificadores RCELP incluem o Codec de Taxa Variável Aperfeiçoado (EVRC), conforme descrito no IS-127 da Associação das Indústrias de Telecomunicações (TIA), e o Vocoder de Modo Selecionável (SMV) do Projeto de Parcerias de Terceira Geração 2 (3GPP2). Infelizmente, a regularização pode causar
problemas para um codificador de fala de banda larga no qual a excitação de banda alta é derivada do sinal de excitação de banda estreita codificado (tal como um sistema que inclui o codificador de fala de banda larga AlOO e o decodificador de fala de banda larga B100) . Devido à sua derivação de um sinal deformado temporalmente, o sinal de excitação de banda alta terá geralmente um perfil de tempo que é diferente do do sinal de fala de banda alta original. Em outras palavras, o sinal de excitação de banda alta não será mais sincrono com o sinal de fala de banda alta original.
Um desalinhamento no tempo entre o sinal de excitação de banda alta deformado e o sinal de fala de banda alta original pode causar vários problemas. Poe exemplo, o sinal de excitação de banda alta deformado pode não proporcionar mais uma excitação de origem adequada para um filtro de síntese que é configurado de acordo com os parâmetros de filtro extraídos do sinal de fala de banda alta original. Conseqüentemente, o sinal de banda alta sintetizado pode conter artefatos audíveis que reduzem a qualidade percebida do sinal de fala de banda larga decodificado.
0 desalinhamento no tempo pode também causar
ineficácias na codificação de envelopes de ganho. Conforme mencionado acima, é provável que uma correlação exista entre os envelopes temporais do sinal de excitação de banda estreita S80 e do sinal de banda alta S30. Pela codificação do envelope de ganho do sinal de banda alta de acordo com a relação entre estes dois envelopes temporais, um aumento na eficácia de codificação pode ser obtido comparado com a codificação direta do envelope de ganho. Quando o sinal de excitação de banda estreita codificado é regularizado, contudo, esta correlação pode ser enfraquecida. O desalinhamento no tempo entre o sinal de excitação de banda estreita S80 e o sinal de banda alta S30 pode fazer com que flutuações apareçam nos fatores de ganho de banda alta S60b, e a eficácia de codificação pode cair.
As configurações incluem métodos de codificação de fala de banda larga que efetuam deformação temporal de um sinal de fala de banda alta de acordo com uma deformação temporal incluído em um sinal de excitação de banda estreita codificado correspondente. Vantagens potenciais de tais métodos incluem o aperfeiçoamento da qualidade de um sinal de fala de banda larga decodificado e/ou o aperfeiçoamento da eficácia de codificação de um envelope de ganho de banda alta.
A Figura 25 mostra um diagrama de blocos de uma implementação ADlO do codificador de fala de banda larga AlOO. 0 codificador ADIO inclui uma implementação A124 do codificador de banda estreita A120, que é configurado para efetuar a regularização durante o cálculo do sinal de excitação de banda estreita codificado S50. Por exemplo, o codificador de banda estreita A124 pode ser configurado de acordo com uma ou mais das implementações RCELP discutidas acima.
0 codificador de banda estreita A124 é também configurado para transmitir um sinal de dados de regularização SD10, que especifica o grau de deformação temporal aplicado. Para diversos casos em que o codificador de banda estreita A124 é configurado para aplicar um deslocamento de tempo fixo a cada quadro ou sub-quadro, o sinal de dados de regularização SD10 pode incluir uma pluralidade de valores que indicam cada grau de deslocamento temporal como um valor de número inteiro ou de número não inteiro em termos de amostras, milissegundos ou algum outro incremento de tempo. Para o caso de o codificador de banda estreita A124 ser configurado para modificar a escala de tempo de um quadro ou outra seqüência de amostras (como, por exemplo, empacotando-se uma parte e expandindo-se outra parte), o sinal de informações de regularização SDlO pode incluir uma descrição correspondente da modificação, tal como um conjunto de parâmetros de função. Em um exemplo especifico, o codificador de banda estreita A124 é configurado para dividir um quadro em três sub-quadros e para calcular o deslocamento de tempo fixo para cada sub-quadro, de modo que o sinal de dados de regularização SDlO indica três graus de deslocamento de tempo para cada quadro regularizado do sinal de banda estreita codificado.
O codificador de fala de banda larga ADIO inclui uma linha de atraso D120 configurada para adiantar ou retardar partes do sinal de fala de banda alta S30, de acordo com quantidades de retardo indicadas por um sinal de entrada, de modo a se produzir um sinal de fala de banda alta deformado no tempo S30a. No exemplo mostrado na Figura 25, a linha de atraso D120 é configurada para deformar no tempo o sinal de fala de banda alta S30 de acordo com a deformação indicada pelo sinal de dados de regularização SDlO. Dessa maneira, o mesmo grau de deformação temporal que foi incluído no sinal de excitação de banda estreita S50 é também aplicado à parte correspondente do sinal de fala de banda alta S30 antes da análise. Embora este exemplo mostre a linha de atraso D120 como um elemento separado do codificador de banda alta A200, em outras implementações a linha de atraso D120 é disposta como parte do codificador de banda alta.
Outras implementações do codificador de banda alta A200 podem ser configuradas para efetuar análise espectral (análise LPC, por exemplo) do sinal de fala de banda alta não deformado S30 e para efetuar deformação temporal do sinal de fala de banda alta S30 antes do cálculo dos parâmetros de ganho de banda alta S60b. Tal codificador pode incluir, por exemplo, uma implementação da linha de atraso D120 disposta para efetuar a deformação temporal. Em tal caso, contudo, os parâmetros de filtro de banda alta S60a baseados na análise do sinal não deformado S30 podem descrever um envelope espectral que é desalinhado no tempo com o sinal de excitação de banda alta S120.
A linha de atraso D120 pode ser configurada de acordo com qualquer combinação de elementos lógicos e elementos de armazenamento adequados para aplicar as operações de deformação temporal desejadas ao sinal de fala de banda alta S30. Por exemplo, a linha de atraso D120 pode ser configurada para ler o sinal de fala de banda alta S30 a partir de um buffer de acordo com os deslocamentos de tempo. A Figura 2 6a mostra um diagrama esquemático de tal implementação D122 da linha de atraso D120, que inclui um registrador de desvios SRl. O registrador de desvios SRl é um buffer de alguma extensão m que é configurado para receber e armazenar a maioria m de amostras recentes do sinal de fala de banda alta S30. O valor m é igual pelo menos à soma dos deslocamentos de tempo positivo máximo (ou de "avanço") e negativo (ou de "retardo") a serem suportados. Pode ser conveniente que o valor m seja igual ao comprimento de um quadro ou sub-quadro do sinal de banda alta S30.
A linha de atraso D122 é configurada para transmitir o sinal de banda alta deformado no tempo S30a a partir de um local de deslocamento OL do registrador de desvios SRl. A posição do local de deslocamento OL varia em volta de uma posição de referência (deslocamento temporal zero) de acordo com o deslocamento temporal atual indicado, por exemplo, pelo sinal de dados de regularização SDlO. A linha de atraso D122 pode ser configurada para suportar limites de avanço e retardo iguais ou, alternativamente, um limite maior que o outro, de modo que um deslocamento maior possa ser efetuado em uma direção do que na outra. A Figura 26a mostra um exemplo especifico que suporta um deslocamento de tempo positivo maior que o negativo. A linha de atraso D122 pode ser configurada para transmitir uma ou mais amostras de uma vez (dependendo da largura do barramento de saída, por exemplo).
Um deslocamento de tempo de regularização que tem uma magnitude de mais de alguns milissegundos pode causar artefatos audíveis no sinal decodificado. Tipicamente, a magnitude de um deslocamento de tempo de regularização executado por um codificador de banda estreita A124 não ultrapassará alguns milissegundos, de modo que os deslocamentos de tempo indicados pelo sinal de dados de regularização SDlO serão limitados. Entretanto, pode ser desejável em tais casos configurar a linha de atraso D122 para que ela imponha um limite máximo aos deslocamentos de tempo na direção positiva e/ou negativa (como, por exemplo, para se observar um limite mais rigoroso do que o imposto pelo codificador de banda estreita).
A Figura 26b mostra um diagrama esquemático de uma implementação D124 da linha de atraso D122, que inclui uma janela de desvio SW. Neste exemplo, a posição do local de deslocamento OL é limitada pela janela de desvio SW. Embora a Figura 26b mostre uma caixa na qual o comprimento m do buffer é maior que a largura da janela de desvio SW, a linha de atraso D124 pode ser também implementada de modo que a largura da janela de desvio SW seja igual a m. Em outras implementações, a linha de atraso D120
é configurada para gravar o sinal de fala de banda alta S30 em um buffer de acordo com os deslocamentos de tempo desejados. A Figura 27 mostra um diagrama esquemático de tal implementação D130 da linha de atraso D120, que inclui dois registradores de deslocamentos SR2 e SR# configurados para receber e armazenar o sinal de fala de banda alta S30. A linha de atraso D130 é configurada para gravar um quadro ou sub-quadro do registrador de desvios SR2 no registrador de desvios SR3 de acordo com um deslocamento de tempo indicado, por exemplo, pelo sinal de dados de regularização SDlO. O registrador de desvios SR3 é configurado como um buffer FIFO disposto para transmitir o sinal de banda alta temporalmente deformado S30.
No exemplo especifico mostrado na Figura 27, o registrador de desvios SR2 inclui uma parte de buffer de quadros FBl e uma parte de buffer de atrasos DB, e o registrador de desvios SR3 inclui uma parte de buffer de quadros FB2, uma parte de buffer de avanço AB e uma parte de buffer de atraso RB. Os comprimentos do buffer de avanço AB e do buffer de atraso RB podem ser iguais, ou um pode ser maior que o outro, de modo que um deslocamento maior em uma direção seja mais suportado do que na outra. 0 buffer de atraso DB e a parte de buffer de atraso RB podem ser configurados para ter o mesmo comprimento. Alternativamente, o buffer de atraso DB pode ser mais curto que o buffer de atraso RB de modo a dar conta do intervalo de tempo utilizado para transferir amostras do buffer de quadros FBl para o registrador de desvios SR3, que pode incluir outras operações de processamento, como, por exemplo, a deformação das amostras antes do armazenamento no registrador de desvios SR3.
No exemplo da Figura 27, o buffer de quadros FBl é configurado para ter um comprimento igual ao de um quadro do sinal de banda alta S30. Em outro exemplo, o buffer de quadros FBl é configurado para ter um comprimento igual ao de um sub-quadro do sinal de banda alta S30. Em tal caso, a linha de atraso D130 pode ser configurado para incluir uma lógica para aplicar o mesmo (uma média, por exemplo) retardo a sub-quadros de um quadro a ser deslocado. A linha de atraso D130 pode incluir também uma lógica para dividir proporcionalmente os valores do buffer de quadros FBl com os valores a serem sobrescritos no buffer de atraso RB ou no buffer de avanço AB. Em outro exemplo, o registrador de desvios SR3 pode ser configurado para receber valores do sinal de banda alta S30 por meio do buffer de quadros FBI, e em tal caso a linha de atraso D130 pode incluir uma lógica para interpolar através de intervalos entre quadros ou sub-quadros sucessivos gravados no registrador de desvios SR3. Em outras implementações, a linha de atraso D130 pode ser configurada para executar uma operação de deformação nas amostras do buffer de quadros FBl antes de gravá-las no registrador de desvios SR3 (como, por exemplo, de acordo com uma função descrita pelo sinal de dados de regularização SD10).
Pode ser desejável que a linha de atraso D120 aplique uma deformação temporal que é baseada na, mas não é idêntica à, deformação especificada pelo sinal de dados de regularização SDlO. A Figura 28 mostra um diagrama de blocos de uma implementação AD12 do codificador de fala de banda larga ADIO, que inclui um mapeador em valores de atraso DllO. 0 mapeador em valores de atraso DllO é configurado para mapear a deformação indicada pelo sinal de dados de regularização SDlO em valores de atraso mapeados SDlOa. A linha de atraso D120 é disposta de modo a produzir o sinal de fala de banda alta temporalmente deformado S30a de acordo com a deformação indicada pelos valores de atraso mapeados SDlOa.
Pode-se esperar que o deslocamento temporal aplicado pelo codificador de banda estreita evolua de maneira uniforme ao longo do tempo. Portanto, é tipicamente suficiente computar o deslocamento temporal de banda estreita médio aplicado aos sub-quadros durante um quadro de fala, e deslocar um quadro correspondente do sinal de fala de banda alta S30 de acordo com esta média. Em um exemplo que tal, o mapeador em valores de atraso DllO é configurado para calcular a média dos valores de atraso de sub-quadro(s) para cada quadro, e a linha de atraso D120 é configurada para aplicar a média calculada a um quadro correspondente do sinal de banda alta S30. Em outros exemplos, a média ao longo de um período mais curto (tal como de dois sub-quadros, ou metade de um quadro) ou um período mais longo (tal como de dois quadros) pode ser calculada e aplicada. No caso de a média ser um valor de número não inteiro, o mapeador em valores de atraso DlO pode ser configurado para arredondar o valor para um número inteiro de amostras antes de sua transmissão à linha de atraso D120.
0 codificador de banda estreita A124 pode ser configurado para incluir um deslocamento de tempo de regularização de um número não inteiro de amostras no sinal de excitação de banda estreita codificado. Em tal caso, pode ser desejável que o mapeador em valores de atraso DllO seja configurado para arredondar o deslocamento de tempo de banda estreita para um número inteiro de amostras e que a linha de atraso D120 aplique o deslocamento de tempo arredondado ao sinal de fala de banda alta S30.
Em algumas implementações do codificador de fala de banda larga ADIO, as taxas de amostragem do sinal de fala de banda estreita S20 e do sinal de fala de banda alta S30 podem diferir. Em tais casos, o mapeador em valores de atraso DllO pode ser configurado para ajustar os graus de deslocamento de tempo indicados no sinal de dados de regularização SDlO de modo a dar conta da diferença entre as taxas de amostragem do sinal de fala de banda estreita S20 (ou sinal de excitação de banda estreita S80) e do sinal de fala de banda alta S30. Por exemplo, o mapeador em valores de atraso DllO pode ser configurado para escalonar os graus de deslocamento de tempo de acordo com a razão das taxas de amostragem. Em um exemplo especifico, conforme mencionado acima, o sinal de fala de banda estreita S20 é amostrado a 8 kHz, e o sinal de fala de banda alta S30 é amostrado a 7 kHz. Neste caso, o mapeador em valores de atraso DllO é configurado para multiplicar cada grau de deslocamento por 7/8. Implementações do mapeador em valores de atraso DllO podem ser também configuradas para executar tal operação de escalonamento juntamente com arredondamento de número inteiro e/ou uma operação de divisão proporcional dos deslocamentos de tempo, conforme aqui descrito.
Em outras implementações, a linha de atraso D120 é configurada para modificar de outro modo a escala de tempo de um quadro ou outra seqüência de amostras (pela empacotação de uma parte e a expansão de outra parte, por exemplo). Por exemplo, o codificador de banda estreita A124 pode ser configurado para efetuar a regularização de acordo com uma função, tal como contorno ou trajetória de pitch). Em tal caso, o sinal de dados de regularização SDlO pode incluir uma descrição correspondente da função, como, por exemplo, um conjunto de parâmetros, e a linha de atraso D120 pode incluir uma lógica configurada para dividir proporcionalmente, escalonar e/u arredondar a função antes que ela seja aplicada ao sinal de fala de banda alta S30 pela linha de atraso D120. Por exemplo, o mapeador em valores de atraso DllO pode ser configurado para calcular um ou mais valores de atraso de acordo com a função, dada valor de retardo indicando um número de amostras, que são então aplicadas pela linha de atraso D120 à deformação temporal de um ou mais quadros ou sub-quadros correspondentes do sinal de fala de banda alta S30.
A Figura 29 mostra um diagrama de fluxos para um método MD100 de deformação temporal de um sinal de fala de banda alta de acordo com uma deformação temporal incluída em um sinal de excitação de banda estreita codificado correspondente. A tarefa TD100 processa um sinal de fala de banda larga de modo a se obter um sinal de fala de banda estreita e um sinal de fala de banda alta. Por exemplo, a tarefa TD100 pode ser configurada para filtrar o sinal de fala de banda larga utilizando-se um banco de filtros que têm filtros passa-baixa e passa-alta, como, por exemplo, uma implementação do banco de filtros AllO. A tarefa TD200 codifica o sinal de fala de banda estreita em pelo menos um sinal de excitação de banda estreita codificado e uma pluralidade de parâmetros de filtro de banda estreita. O sinal de excitação de banda estreita codificado e/ou parâmetros de filtro podem ser quantificados, e o sinal de fala de banda estreita codificado pode incluir também outros parâmetros, como, por exemplo, um parâmetro do modo de fala. A tarefa TD200 inclui também uma deformação temporal no sinal de excitação de banda estreita codificado.
A tarefa TD300 gera um sinal de excitação de
banda alta baseado em um sinal de excitação de banda estreita. Neste caso, o sinal de excitação de banda estreita é baseado no sinal de excitação de banda estreita codificado. De acordo com pelo menos o sinal de excitação de banda alta, a tarefa TD400 codifica o sinal de fala de banda alta em pelo menos uma pluralidade de parâmetros de filtro de banda larga. Por exemplo, a tarefa TD400 pode ser configurada para codificar o sinal de fala de banda alta em uma pluralidade de LSFs quantificadas. A tarefa TD500 aplica um deslocamento de tempo ao sinal de fala de banda alta que é baseado em informações referentes a uma deformação temporal incluída no sinal de excitação de banda estreita codificado.
A tarefa TD400 pode ser configurada para efetuar uma análise espectral (tal como uma análise LPC) no sinal de fala de banda alta e/ou para calcular o envelope de ganho do sinal de fala de banda alta. Em tais casos, a tarefa TD500 pode ser configurada para aplicar o deslocamento de tempo ao sinal de fala de banda alta antes da análise e/ou o cálculo do envelope de ganho.
Outras implementações do codificador de fala de banda larga AlOO são configuradas para inverter a deformação temporal do sinal de excitação de banda alta S120 causada por uma deformação temporal incluída no sinal de excitação de banda estreita codificado. Por exemplo, o gerador de excitação de banda alta A300 pode ser implementado para incluir uma implementação da linha de atraso D120, que é configurada para receber o sinal de dados de regularização SDlO ou os valores de atraso mapeados SDlOa e para aplicar um deslocamento de tempo inverso correspondente ao sinal de excitação de banda estreita e/ou a um sinal subseqüente baseado nele, tal como o sinal harmônico estendido S160 ou o sinal de excitação de banda alta S120.
Outras implementações do codificador de fala de banda larga podem ser configuradas para codificar o sinal de fala de banda estreita S20 e o sinal de fala de banda alta S30 independentemente um do outro, de modo que o sinal de fala da banda alta S30 seja codificado como uma representação de um envelope espectral de banda alta e um sinal de excitação de banda alta. Tal implementação pode ser configurada para efetuar a deformação temporal do sinal residual de banda alta ou senão incluir uma deformação temporal em sinal de excitação de banda alta codificado, de acordo com informações referentes a uma deformação temporal incluída no sinal de excitação de banda estreita codificado. Por exemplo, o codificador de banda alta pode incluir uma implementação da linha de atraso D120 e/ou do mapeador em valores de atraso DllO conforme aqui descrito, que são configurados para aplicar uma deformação temporal ao sinal residual de banda alta. Vantagens potenciais de tal operação incluem uma codificação mais eficaz do sinal residual de banda alta e uma melhor correspondência entre os sinais de fala de banda estreita e banda alta sintetizados.
Conforme mencionado acima, as configurações aqui
descritas incluem implementações que podem ser utilizadas para efetuar codificação embutida, suportando
compatibilidade com sistemas de banda estreita e evitando a necessidade de transcodificação. 0 suporte para a codificação de banda alta pode servir também para diferenciar em uma base de custos entre chips, conjuntos de chips, equipamentos e/ou redes que têm suporte de banda larga com retro-compatibilidade, e as que têm suporte de banda estreita. 0 suporte para codificação de banda alta conforme aqui descrito pode ser também utilizado em conjunto com uma técnica para suportar codificação de banda baixa, e um sistema, um método ou equipamento de acordo com tal configuração podem suportar codificação de componentes de freqüência de, por exemplo, cerca de 50 ou 100 Hz até cerca de 7 ou 8 kHz.
Conforme mencionado acima, o acréscimo de suporte de banda alta a um codificador de fala pode aperfeiçoar a inteligibilidade, sobretudo no que se refere à diferenciação das fricativas. Embora tal diferenciação possa ser usualmente derivada por um ouvinte humano a partir do contexto especifico, o suporte de banda alta pode servir como recurso habilitador no reconhecimento da fala e outras aplicações de interpretação mecânica, tais como sistemas para navegação em menus de voz automatizada e/ou processamento automático de chamadas.
Um equipamento de acordo com uma configuração pode ser embutido em um equipamento portátil para comunicações sem fio, tais como um telefone celular ou assistente digital pessoal (PDA). Alternativamente, tal equipamento pode ser incluído em outro equipamento de comunicação, tal como um equipamento telefônico VoIP, um computador pessoal configurado para suportar comunicações VoIP ou um equipamento de rede configurado para rotear comunicações telefônicas ou VoIP. Por exemplo, um equipamento de acordo com uma configuração pode ser implementado em um chip ou conjunto de chips para um equipamento de comunicação. Dependendo da aplicação específica, tal equipamento pode incluir também recursos tais como conversão analógico-digital e/ou digital- analógico de um sinal de fala, um conjunto de circuitos para efetuar amplificação e/ou operações de processamento de sinais em um sinal de fala e/ou um conjunto de circuitos de radiofreqüência para transmissão e/ou recepção do sinal de fala codificado.
É explicitamente contemplado e revelado que as configurações podem incluir e/ou ser utilizadas com qualquer um ou mais dos outros recursos revelados nos pedidos de patente provisórios norte-americanos Nos. 60/667 901 e 60/673 965. Tais recursos incluem a remoção de rajadas de alta energia de curta duração que ocorrem na banda alta e estão substancialmente ausentes da banda estreita. Tais recursos incluem a suavização fixa ou adaptativa de representações de coeficiente tais como LSFs de banda alta. Tais recursos incluem a formatação fixa ou adaptativa do ruido associado à quantificação de representações de coeficientes tais como LSFs. Tais recursos incluem também a suavização fixa ou adaptativa de um envelope de ganho e a atenuação adaptativa de um envelope de ganho.
Os diversos elementos das implementações dos geradores de excitação de banda alta A300 e B300, do codificador de banda alta AlOO, do decodificador de banda BlOO podem ser implementados como equipamentos eletrônicos e/ou ópticos que residem, por exemplo, no mesmo chip ou entre dois ou mais chips em um conjunto de chips, embora outras disposições sem tal limitação sejam também contempladas. Um ou mais elementos de tal equipamento podem ser 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 (transistores, portas, por exemplo), tais como microprocessadores, processadores embutidos, núcleos de IP, processadores de sinais digitais, FPGAs (arranjos de portas programáveis no campo), ASSPs (produtos padrão específicos de aplicativo) e ASICs (circuitos integrados específicos de aplicativo) . É também possível que um ou mais de tais elementos tenham uma estrutura em comum (como, por exemplo, um processador utilizado para executar partes de código correspondentes a diferentes elementos em tempos diferentes, um conjunto de instruções executadas para desempenhar tarefas que correspondem a diferentes elementos em tempos diferentes ou uma disposição de equipamentos eletrônicos e/ou ópticos que executam operações para elementos diferentes em momentos diferentes). Além do mais, é possível utilizar um ou mais de tais elementos para desempenhar 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 referente a outra operação de um equipamento ou sistema no qual o equipamento é embutido.
A Figura 30 mostra um diagrama de fluxos de um método MlOO, de acordo com uma configuração, para codificar uma parte de banda alta de um sinal de fala que tem uma parte de banda estreita e a parte de banda alta. A tarefa X100 calcula um conjunto de parâmetros de filtro que caracterizam um envelope espectral da parte de banda alta. A tarefa X200 calcula um sinal espectralmente estendido aplicando uma função linear a um sinal derivado da parte de banda estreita. A tarefa X300 gera um sinal de banda alta sintetizado de acordo com (A) o conjunto de parâmetros de filtro e (B) um sinal de excitação de banda alta baseado no sinal espectralmente estendido. A tarefa X400 calcula um envelope de ganho com base na relação entre (C) a energia da parte de banda alta e (D) a energia de um sinal derivado da parte de banda estreita.
A Figura 31a mostra um diagrama de fluxos de um método M200 para gerar um sinal de excitação de banda alta de acordo com uma configuração. A tarefa Y100 calcula um sinal harmônico estendido aplicando uma função não-linear a um sinal de excitação de banda estreita derivado da parte de banda estreita de um sinal de fala. A tarefa Y200 mistura o sinal harmônico estendido com um sinal de ruído modulado de modo a gerar um sinal de excitação de banda alta. A Figura 31b mostra um diagrama de fluxos de um método M210 para gerar um sinal de excitação de banda alta de acordo com outra configuração, que inclui as tarefas Y300 e Y400. A tarefa Y300 calcula um envelope no domínio do tempo de acordo com a energia ao longo do tempo de um entre o sinal de excitação de banda estreita e o sinal harmônico estendido. A tarefa Y400 modula um sinal de ruído de acordo com o envelope no domínio do tempo de modo a se produzir um sinal de ruído modulado.
A Figura 32 mostra um diagrama de fluxos de um método M300 de acordo com uma configuração, para decodificar uma parte de banda alta de um sinal de fala que tem uma parte de banda estreita e a parte de banda alta. A tarefa ZlOO recebe um conjunto de parâmetros de filtro que caracterizam um envelope espectral da parte de banda alta e um conjunto de fatores de ganho que caracterizam um envelope temporal da parte de banda alta. A tarefa Z200 calcula um sinal espectralmente estendido aplicando uma função não-linear a um sinal derivado da parte de banda estreita. A tarefa Z300 gera um sinal de banda alta sintetizado de acordo com (A) o conjunto de parâmetros de filtro e (B) um sinal de excitação de banda alta baseado no sinal espectralmente estendido. A tarefa Z400 modula um envelope de ganho do sinal de banda alta sintetizado baseado no conjunto de fatores de ganho. Por exemplo, a tarefa Z400 pode ser configurada para modular o envelope de ganho do sinal de banda alta sintetizado aplicando o conjunto de fatores de ganho a um sinal de excitação derivado da parte de banda estreita, ao sinal espectralmente estendido, ao sinal de excitação de banda alta ou ao sinal de banda alta sintetizado.
A Figura 33 mostra um sistema telefônico sem fio de acesso múltiplo por divisão de código (CDMA) 3300, que pode incluir uma pluralidade de estações móveis 3302, uma pluralidade de estações base 3304, um controlador de estação base (BSC) 3306 e um centro de comutação móvel (MSC) 3308. O MSC 3308 pode ser configurado para formar interface com uma rede telefônica pública comutada (PSTN) 3310. O MSC 3308 pode ser também configurado para formar interface com o BSC 3306. Pode haver mais de um BSC 3306 no sistema 3300. Cada estrutura magnética 3304 pode incluir pelo menos um setor (não mostrado) , em que cada setor pode ter uma antena onidirecional e uma antena apontada em uma direção especifica em afastamento no sentido radial das estações base 3304. Alternativamente, cada setor pode incluir duas antenas para recepção de diversidade. Cada estação base 3304 pode ser projetada para suportar uma pluralidade de atribuições de freqüência. A interseção de um setor e uma atribuição de freqüência pode ser referida como um canal CDMA. As estações móveis 3302 podem incluir telefones de sistema de comunicação celular ou portátil (PCS) .
Durante o funcionamento do sistema telefônico celular 3300, as estações base 3304 podem receber conjuntos de sinais de link reverso de conjuntos de estações móveis 3302. As estações móveis 3302 podem estar realizando chamadas telefônicas ou outras comunicações. Cada sinal de link reverso recebido por uma dada estação base 3304 pode ser processado dentro dessa estação base 3304. Os dados resultantes podem ser emitidos para o BSC 3306. 0 BSC 3306 pode proporcionar funcionalidade de alocação de recursos de chamada e gerenciamento de mobilidade, inclusive a orquestração de soft handoffs entre as estações base 3304. 0 BSC 3306 pode também rotear os dados recebidos para o MSC 3308, que provê serviços de roteamento adicionais para interface com a PSTN 3310. De maneira semelhante, a PSTN 3310 pode formar interface com o MSC 3308, e o MSC 3308 pode formar interface com o BSC 3306, que por sua vez pode controlar as estações base 3304 para transmitir conjuntos de sinais de link direto para conjuntos de estações móveis 3302.
A Figura 34 mostra um ambiente de transmissão de sinais 3400, que inclui um codificador 3402, um decodificador 3404 e um meio de transmissão 3406. 0 codificador 34 02 pode ser implementado dentro de uma estação móvel 3302 ou em uma estação base 3304. O decodificador 3404 pode ser implementado na estação base 3304 ou na estação móvel 3302. 0 codificador 3402 pode codificar um sinal de fala s(n) 3410, formando um sinal de fala codificado Senc (n) 3412. O sinal de fala codificado 3412 pode ser transmitido através do meio de transmissão 3406 para o decodificador 3404. 0 decodificador 3404 pode decodifi car o senc (n) 3412, gerando assim um sinal de fala sintetizado s(n) 3416.
0 termo "codificação" conforme aqui utilizado pode referir-se de maneira geral a métodos que abrangem tanto a codificação quanto a decodificação. Geralmente, sistemas, métodos e equipamentos de codificação procuram reduzir ao mínimo o número de bits transmitidos por meio do meio de transmissão 3406 (isto é, reduzir ao mínimo a largura de banda do senc(n) 3412) mantendo ao mesmo tempo uma reprodução da fala aceitável (isto é, s (n) 3410 « s (n) 3416). O equipamento pode ser um telefone móvel, um assistente digital pessoal (PDA), um computador laptop, uma câmera digital, um tocador de música, um equipamento de jogos, uma estação base ou qualquer outro equipamento com um processador. A composição do sinal de fala codificado 3412 pode variar de acordo com o modo de codificação de fala específico utilizado pelo codificador 3402. Diversos modos de codificação são descritos a seguir. Os componentes do codificador 3402 e do decodificador 3404 descritos a seguir podem ser implementados como hardware eletrônico, como software de computador ou combinag5es de ambos. Estes componentes sa〇 descritos a seguir em termos de sua funcionalidade. Se a funcionalidade e implementada como hardware ou software pode depender na aplicagao especifica e nas restrigSes de desenho impostas ao sistema como um todo.〇 meio de transmissao 3406 pode representar muitos meios de transmissao diferentes, que incluem, mas nao se limitam a, uma linha de comunicagao terrestre, um link entre uma estagao base e um sat elite, comunicagao sem f io entre um telefone celular e uma estagao base ou entre um telefone celular e um satelite.
Cada parte de uma comunicagao pode transmitir dados assim como receber dados. Cada parte pode utilizer um codificador 3402 e um decodificador 3404. Entretanto, ο ambiente de transmissao de sinais 3400 sera descrito a seguir como incluindo ο codificador 3402 em uma extremidade do meio de transmissao 3406 e ο decodif icador 3404 na outra.
Para os fins desta descrigao, ο s (η) 3410 pode incluir um sinal de fala digital obtido durante uma conversa tipica, que inclui diferentes sons vocais e periodos de silencio.〇 sinal de fala s (n) 3410 pode ser particionado em quadros, e cada quadro pode ser tambem particionado em sub-quadros· Estas fronteiras de quadro/sub-quadrο escolhidas arbitrariamente podem ser utilizadas no caso de algum processamento de bloco ser executado. As operagoes descritas como sendo executadas em quadros podem ser tambem executadas em sub-quadros, e neste sentido quadro e sub—quadro sao utilizados intercambiavelmente aqui. Entretant〇,ο s (η) 3410 pode nao ser particionado em quadros/sub-quadros for implementado em
um processamento continuo em vez de um processamento de bloco. Sendo assim, as tecnicas de bloco descritas a seguir podem ser estendidas ao processamento continuo.
〇 codificador 3402 pode ser implementado como um codificador de banda estreita (NB) ou um codificador de banda larga (WB) · Um codificador NB pode amostrar digitalmente ο sinal s(η) 3410 a 8 kHz e as informag5es de sinal de codigo presentes em uma largura de banda de 50 Hz -4 kHz. Um exemplo de codificador NB pode incluir um codificador de taxa variavel aperfeigoado (EVRC-B). Um codificador WB poder amostrar digitalmente ο sinal s (n) 3410 a 16 kHz e as inf ormagoes de c0digo presentes na largura de banda do codificador NB ruais entre as faixas de 4-8 kHz. Um exemplo de codificador WB pode incluir um codificador EVRC-WB. Sob um aspecto, ο EVRC-WB e uma extensao de banda larga do EVRC-WB. Cada quadro particionado a partir do sinal s (n) 3410 pode incluir 20 mi lissegundos (mseg) de dados ou 160 amostras· Cada sub— quadro pode incluir 53ou 54 amostras de dados. Embora estes parametros possam ser apropriados para codificagao de fala, eles sao meramente exemplos e outros parametros alternatives adequados podem ser utilizados.
Se ο codificador 3402 for implementado como um codificador NB, um quadro pode ser empacotado como um pacote de banda estreita 3418.〇 pacote de banda estreita
\
3418 pode incluir um identificador de banda estreita 3422. 〇 identificador 3422 pode indicar ao decodificador 3404 que ο pacote de banda estreita 3418 foi codificado utilizando- se um codificador NB. Se ο codificador 3402 for implementado como um codificador WB, um quadro pode ser empacotado como um pacote de banda larga 3420.〇 pacote de banda larga 3420 pode incluir um identif icador de banda larga 3424. 〇 identif icador 3424 pode indicar ao
decodif icador 3404 que ο pacote de banda larga 3420 foi codificado utilizando—se um codificador WB.〇 decodificador 3404 pode incluir um modulo de identificagao de pacote 3414 que pode reconhecer ο identificador 3422 ou 3424 e determinar se um decociificador NB ou um decodificador WB deve ser implement ado para decodif icar ο pacote 3418 ou 3420.
A Figura 35 e um diagrama de fluxos que mostra uma configuragao de um metodo 3500 para incluir um identificador com um pacote associado a um sinal de fala. Sob um aspecto, ο identif icador pode inciicar se ο pacote foi codificado por um codificador NB ou um codificador WB. 〇 metodo 3500 pode ser implementado por um codificador, tal como ο codificador 3402.
Um sinal pode ser recebido 3502 pelo codificador 3402. Sob um aspecto, ο sinal e um tipo de sinal de fala.〇 sinal pode ser analisado e particionado 3504 em uma pluralidade de quadros. Um quadro particionado do sinal pode ser codificado 3506 em metade da taxa utilizando-se um esquema de codificagao especifico (CELP, PPP, NELP, por exemplo). Sob um aspecto, ο pacote pode ser codificado com 80 bits. 〇 termo 、、meia taxa" pode ser utilizado para representar um pacote com 80 bits. E determinado 3508 se ο quadro e um quadro de meia taxa de banda larga que inclui 80 bits. Em outras palavras7 e determinado 3508 se ο codificador 3402 atuou como um codificador WB e codificou ο quadro como um quadro de meia taxa de banda larga (WB-HR). Se ο quadro for um quadro WB-HR, um identificador de banda larga pode ser empacotado 3510 em um pacote. Sob um aspecto, ο identificador de banda larga inclui os seis primeiros digitos dos niimeros decimals "126〃 e 、、127〃 sob forma binaria.〇 numero decimal 、、126〃 sob forma bin^ria e
"1111110" e a forma binaria de "127" e 、、:Lllllll〃. Sendo assim, ο identificador de banda larga pode incluir uma cadeia de seis uns (、、111111〃, por exemplo).
Se for determinado em 3508 que ο quadro nao e um quadro WB—HR, um identificador de banda estreita pode ser empacotado 3512 em um pacote. Sob um aspecto ο identificador de banda estreita pode estar associado a um parametro de retardo. Por exemplo, os bits utilizados para representar um parametro de retardo podem ser tambem utilizados como 〇 identificador de banda estreita.〇 pacote pode ser transmitido 3514, Sob um aspecto, ο pacote e transmitido 3514 a um decodificador.
A Figura 36 e um diagrama de fluxos que mostra uma c〇nfiguragao de um metodo 3404. Sob um aspecto, um pacote de meia taxa e recebido 3602. Um identif icador incluido no pacote de meia taxa pode ser analisado 3604.〇 identif icador pode indicar se ο pacote de meia taxa foi codificado por um codificador WB ou um codificador NB. Sob um aspecto, ο identificador e um identificador (ID) de pacote especial, que e um retardo invalido/ilegal· E determinado 3606 se ο pacote e um pacote WB-HR com base na analise do identificador. Se ο pacote for um pacote WB-HR, ο pacote pode ser decodificado 3608 utilizando—se esquemas de decodificagao de banda larga. Em uma configuragao, ο decodif icador 3404 atua como um decodif icador WB. Entretanto, se for determinado 3606 que ο pacote nao e um WB-HRr ο pacote pode ser decodificado 3610 utilizando一se esquemas de decodificagao de banda estreita. 〇 decodificador 3404 pode atuar como um decodificador NB. Um sinal pode ser reconstruido 3612 a partir de um ou ma is pacotes decodificados.
A Figura 37 e um diagrama de blocos que mostra uma configuragao de um codificador multimodal 3702 que se
comunica com um decodificador multimodal 3704 atraves de um canal de comunicagao 3706.〇 canal de comunicagao 3706 pode incluir uma interface de radiofreqiiencia (RF). 〇 codificador 3702 e seu decodificador afim podem former um primeiro codificador de fala.〇 decodificador 3704 pode incluir um codificador afim (nao mostrado).〇 decodificador 3704 e seu codificador afim podem formar um segundo codificador de fala.
〇 codificador 3702 pode incluir um modulo de calculo de parametros 3718, um modulo de determinagao de taxa 3720, um modulo de classificagao de modo 3722, uma pluralidade de modos de codificagao 3724, 3726, 3728 e um modulo de formatagao de pacotes 3730. 〇 modulo de formatagao de pacotes 3730 pode inserir um identificador de pacotes 3708.〇 niimero de modos de codificagao 3724, 3726, 3728 e mostrado como N, que pode significar qualquer nUmero de modos de codificagao 3724, 3726, 3728. Por simplificagao, tres modos de codificagao 3724, 3726, 3728 sao mostrados com uma linha pontilhada indicando a existencia de outros modos de codificagao. 〇 decodificador 3704 pode incluir um modulo
desmontador de pacotes 3732f uma pluralidade de modos de decodificagao 3734, 3736, 3738 e um pos-filtro 3740· 〇 modulo desmontador de pacotes 3732 pode incluir um modulo de identif icagao de pacotes 3714. 〇 niimero de modos de decodificagao 3734, 3736, 3738. Para simplificar, tres modos de decodificagao 3734, 3736, 3738 sao mostrados, com uma linha pontilhada indicando a existencia de outros modos de decodificagao.
Um sinal de fala, s (n) 3710), pode ser enviado ao modulo de calculo de parametros iniciais 3718.〇 sinal de fala 3710 pode ser dividido em blocos de amostras referidos como quadros. O valor η pode designar ο nuimero de quadros
ou ο valor η pode designar um η lime r ο de amostras em um quadro. Em uma configuragao alternative, um sinal de err ο de predigao linear residual de predigao linear (LP) pode ser utilizado no lugar do sinal de fala 3710.〇 sinal de erro residual LP pode ser utilizado por codificadores de fala, tal como um codificador de predigao linear excitado por codigo (CELP).
〇 modulo de calculo de parametros iniciais 3718 pode derivar diversos parametros com base no quadro atual. Sob um aspecto, estes parametros incluem pelo menos um d〇s seguintes: coeficientes de filtro de codificagao de preciigao linear (LPC) , coeficientes de pares espectrais de linha (LSP)r fungoes de autocorrelagao normalizadas (NACFs), retardo de malha aberta, taxas de cruzamento zero, energia de banda e ο sinal residual formando. 〇 modulo de calculo de parametros iniciais 3718
pode ser acoplado ao modulo de classificagao de modos 3722. 〇 modulo de classificagao de modo 3722 pode comutar dinamicamente entre os modos de codificagao 3724, 3726, 3728.〇 modulo de calculo de parametros iniciais 3718 pode enviar parametros iniciais ao modulo de classificagao de modo 3722.〇 modulo de classificagao de modo 3722 pode ser acoplado ao modulo de determinagao de taxa 3720.〇 modulo de cieterminagao de taxa 3720 pode aceitar um sinal de comando de taxa.〇 sinal de comando de taxa pode orientar ο codificador 3701 para codificar ο sinal de fala 3710 a uma taxa especifica. Sob um aspecto, a taxa especifica inclui uma taxa completa, que pode indicar que ο sinal de fala 3710 sera codificado utilizando—se 171 bits. Em outro exemplo, a taxa especifica inclui uma meia taxa, que pode indicar que ο sinal de fala 3710 sera codif icado utilizando—se 80 bits. Em outro exemplo, a taxa especifica inclui um oitavo de taxa, que pode indicar que ο sinal de
fala 3710 sera codificado utilizando—se 16 bits· Conforme afirmado anteriormente, ο modulo de classif icagao de modo 3722 pode ser acoplado de modo a comutar dinamicamente entre os modos de codificador 3724, 3726, 3728 em uma base de quadro por quadro de modo a selecionar ο modo de codificador 3724, 3726, 3728 mais apropriado para ο quadro atual.〇 modulo de classificagao de modo 3722 pode selecionar um modo de codificador 3424, 3726, 3728 especifico para ο quadro atual comparando os parametros com valores de limite e/ou teto pre-definidos. Alem disto, ο modulo de class if icagao de modo 3722 pode selecionar um modo de codificador 3724, 3726, 3728 especifico com base no sinal de comando de taxa recebido do modulo de determinagao de taxa 3720. Por exemplo, ο modo de codif icagao A 3724 pode codificar ο sinal de fala 3710 utilizando 171 bits, enquanto ο modo de codificagao B 3726 pode codificar 〇 sinal de fala 3710 utilizando 80 bits.
Com base no teor de energia do quadro, ο modulo de classificagao de modo 3722 pode classificar ο quadro como nao fala ou fala inativa (com〇, por exemplo, ο silencio, ruido de fundo ou pausas entre as palavras) ou fala. Com base na periodicidade do quadro, ο modulo de classificagao de modo 3722 pode classificar quadros de fala como um tipo especifico de fala, como, por exemplo, vocalizada, nao vocalizada ou transitoria. A fala vocalizada pode incluir uma fala que
apresenta um grau relativamente alto de periodicidade e pode incluir sons vocalicos. Um periodo de pitch pode ser um componente de um quadro de fala que pode ser utilizado para analisar e reconstruir ο conteiido do quadro · A fala nao vocalizada pode incluir sons consonantais. Quadros de fala transitoria podem incluir transigoes entre uma fala
vocalizada e nao vocalizada. Quadros que nao sao classificados nem como fala vocalizada nem como fala nao vocalizada podem ser classificados como fala transitoria.
〇 modo de fala (tambem chamado modo de vocalizagao) indica se ο quadro atual represents fala vocalizada ou nao vocalizada· Este parametro pode ter um valor binario baseado em uma ou ma is medidas de periodicidade (como, por exemplo, cruzamentos zero, NACFs, ganho de pitch) e/ou atividade vocal para ο quadro, tal como a relagao entre tal medida e um valor de limite. Em outras implementagoes, ο parametro de modo de fala tem um ou ma is outros estados para indicar modos tais como silencio 〇u ruido de fundo, ou uma transigao entre silencio e fala vocalizada.
A classificagao dos quadros de fala pode permitir que os modos de codificagao 3724, 3726, 3728 diferentes sejam utilizados para codificar tipos diferentes de fala, do que results uma utilizagao mais eficaz da largura de banda em um canal compart i lhado, tal como ο canal de comunicagao 3706. Por exemplo, uma. vez que a fala vocalizada e peri6dica e, portanto, altamente preditiva, um modo de codif icagao altamente preditiva, de taxa de bits baixa, 3724, 3726, 3728 pode ser utilizado para codificar fala vocalizada.
〇 modulo de classificagao de modo 3722 pode selecionar um modo de codificagao 3724, 3726, 3728 para ο quadro atual com base na classificagao do quadro. Os diversos modos de codificagao 3724, 3726, 3728 podem ser acoplados em paralelo. Um ou mais dos modos de codificagao 3724, 3726, 3728 podem ser operacionais em qualquer dado momento. Em uma configuragao, um modo de codificagao 3724, 3726, 3728 e selecionado de acordo com a classificagao do
quadro atual. Os diferentes modos de codificagao 3724, 3726, 3728 podem funcionar de acordo com diferentes taxas de bits de codificagao, diferentes esquemas de codificagao ou diferentes combinagoes de taxa de bits de codificagao ou esquema de codificagao. Conforme dito anteriormente, as diversas taxas de codificagao utilizadas podem ser taxa completa, meia taxa, um quarto de taxa e/ou um oitavo de taxa. Os divers〇s esquemas de codificagao utilizados podem ser codificagao CELPf codificagao por periodo de pitch de prototipo (PPP) (ou codificagao por interpolagao de formas de onda (WI) e/ou codificagao de predigao linear excitada por ruido (NELP) . Assimf por exemplo, um modo de codificagao 3724, 3726, 3728 especifico pode ser ο CELP de taxa completa, outro modo de codificagao 3724, 3726, 3728 pode ser ο CELP de meia taxa, outro modo de codificagao 3724, 3726, 3728 pode ser ο PPP de taxa completa e outro modo de codificagao 3724, 3726, 3728 pode ser ο NELP.
De acordo com um modo de codificador 3724, 3726, 3728 CELPf um modelo de trato vocal preditivo linear pode ser excitado com uma versao quantificada do sinal residual LP. No modo de codif icador CELP, todo ο quadro atual pode ser quantificado.〇 modo de codificagao 3724, 3726, 3728 CELP pode proporcionar a reprodugao relativamente exata da fa la, mas a custa de uma taxa de bits de codif icagao relativamente alta.〇 modo de codificagao 3724, 3726, 3728 CELP pode ser utilizado para codificar quadros classificados como fala transitoria.
De acordo com um modo de codificagao 3724, 3726, 3728 NELP, um sinal de ruido pseudo-aleatorio, filtrado, pode ser utilizado para modelar ο sinal residual LP.〇 modo de codificagao 3724, 3726, 3728 NELP pode ser uma tecnica relativamente simples que obtem uma baixa taxa de bits.〇
modo de codificagao 3724, 3726, 3728 NELP pode ser utilizado para codificar quadros classificados como fala nao vocalizada.
De acordo com um modo de codificagao 3724, 3726, 3728 PPP, um subconjunto dos periodos de pitch dentro de cada quadro pode ser codificado. Os periodos restantes do sinal de fala podem ser reconstruidos por interpolagao entre estes periodos de prototipo. Em uma implementagao no dominio do tempo da codificagao PPP, pode ser calculado um primeiro conjunto de parametros que descreve como modificar um periodo de prototipo anterior para aproximar-se do periodo de prototipo atual. Podem ser selecionados um ou mais vetores de codigo que, quando somados, se aproximam da diferenga entre ο periodo de prototipo atual e ο periodo de prototipo anterior modificado. Em uma implementagao no dominio da frequencia da codificagao PPP7 um conjunto de parametros pode ser calculado para descrever os espectros de amplitude e fase do prototipo. De acordo com a implementagao da codificagao PPP, ο decodificador 3704 pode sintetizar um sinal de fala de saida 3716 reconstruindo um prototipo atual com base nos conjuntos de parametros que descrevem a amplitude e a fase.〇 periodo de prototipo passado pode ser utilizado como um preciitor da amplitude e da fase do periodo de prototipo atual·〇 sinal de fala pode ser interpolado atraves da regiao entre 〇 periodo de 2 5 pr〇t0tip〇 reconstruido atual e um periodo de pr〇t0tipo reconstruido anterior·〇 prototipo pode incluir uma parte do quadro atual que sera linearmente interpolada com prototipos de quadros anteriores foram posicionados de maneira semelhante dentro do quadro de modo a se reconstruir ο sinal de fala 3710 ou 〇 sinal residual LP no decodificadoi: 3704 .
A codificagao do periodo de prototipo em vez do
quadro de fala inteiro pode reduzir a taxa de bits de codificagao. Quadros classificados como f ala vocalizada podem ser codif icados com um modo de codif icagao 3724, 3726, 3728 PPP. Pela exploragao da periodicidade da f ala vocalizada, ο modo de codificagao 3724, 3726, 3728 PPP pode obter uma taxa de bits mais baixa do que a do modo de codificagao 3724, 372 6, 3728 CELP.
〇 modo de codificagao 3724, 3726, 3728 selecionado pode ser acoplado ao modulo de formatagao de pacotes 37 30.〇 modo de codificagao 3724, 3726, 3728 selecionado pode codificar, ou quantificar, ο quadro atual e fornecer os parametros de quadro quantificados 3712 ao modulo de formatagao de pacotes 3730. 〇 modulo de formatagao de pacotes 3730 pode montar os parametros de quadro quantificados 3710 em um pacote formatad〇 3713.〇 modulo de formatagao de pacotes 3730 pode formatar ο pacote como um pacote de banda larga ou um pacote de banda estreita. Um identificador de pacote 3708 pode ser incluido no pacote. Conforme explicado anteriormente, ο identificador de pacote 3708 pode indicar ao decodificador 3704 se 〇 pacote e um pacote de banda larga ou um pacote de banda estreita.〇 modulo de formatagao de pacotes 3730 pode enviar 〇 pacote formatado 3713 a um receptor (nao mostrado) atraves de um canal de comunicagao 3706.〇 receptor pode receber, demodular e digitalizar ο pacote formatado 3713 e enviar ο pacote 3713 ao decodificador 3704.
No decodificador 3704, ο modulo desmontador de pacotes 3732 recebe ο pacote 3713 do receptor. 〇 modulo desmontador de pacotes 3732 pode desempacotar ο pacote 3713 e ο modulo de identificagao de pacote 3714 pode reconhecer ο identif土cador de pacote 3708 incluido no pacote 3713·〇 modulo de identificagao de pacote 3714 pode descobrir que ο pacote 3713 e um pacote WB-HR ou um pacote de meia taxa de
banda estreita.〇 modulo de desmontador de pacotes 3732 pode ser tambem configurado para comutar dinamicamente entre os modos de decodificagao 3734, 3736, 3738 em uma base de pacote por pacote. 〇 ηύιτίΘΓΟ de modos de decodificagao 3734, 3736, 3738 pode ser ο mesmo niamero de modos de codificagao 3724, 3726, 3728 · Cada modo de decodificagao numerado 3734, 3736, 3738 e configurado para util izar a mesma taxa de bits de codif icagao e ο mesmo esquema de codificagao.
Se ο modulo desmontador de pacotes 3732 detectar ο pacote 3713, ο pacote 3713 e desmontado e enviado ao modo de decodificagao 3734, 3736, 3738 pertinente.〇 modo de decodificagao 3734, 3736, 3738 pertinente pode implementar tecriicas de decodificagao de banda larga ou banda estreita baseadas na analise do identificador de pacote 3708. Se ο modulo desmontador de pacotes 3732 nao detectar um pacote, uma perda de pacote e declarada e um decodificador de apagamento (nao mostrado) pode executar 〇 processamento de apagamento de quadros.〇 arranj ο em paralelo dos modos de decodificagao 3734, 3736, 3738 pode ser acoplado ao pos- filtro 3740.〇 modo de decodificagao 3734, 3736, 3738 pertinente pode decodificar, ou desquantificarΛ ο pacote 3713 e fornecer as informag5es ao p6s — filtro 3740.〇 pos- filtro 3740 pode reconstruir, ou sintetizar, ο quadro de fa la, transmitindo um quadro de fala sintetizado, s(n) 3716.
Em uma configuragao, os parametros quantificados propriamente ditos nao sao transmitidos. Em vez disso, sao transmitidos indices de codigo cifrado, indices que especificam enderegos em diversas tabelas de busca (LUTs) (nao mostradas) no decodificador 3704.〇 decodificador 3704 pode receber os indices de codigo cifrado e busca nas diversas LUTs de c0dig〇 cifrado os valores de parametro
apropriaclos. Por conseguinte, os indices de codigo cifrado para parametros tais c〇m〇,por exemplo, defasagem de pitch, ganho de c0dig〇 cifrado adaptativo e LSP podem ser transmitidos, e tres LUTs de codigo cifrado afins podem ser buscadas pelo decodificador 3704 .
De acordo com ο modo de codif icagao CELP, ο
defasagem de pitch, ο ganho de pitch, 〇s parametros de c0digo cifrado e os parametros LSP podem ser transmitidos. Os indices de codigo cifrado LSP sao transmitidos porque ο sinal residual LP pode ser sintetizado no decodificador 3704. Alem disto, a diferenga entre 〇 valor de defasagem de pitch para ο quadro atual e ο valor de defasagem de pitch para ο quadro anterior podem ser transmitidos.
De acordo com um modo de codificagao PPP, no qual ο sinal de fala 3710 sera sintetizado no decodificador 3704, os parametros de defasagem de pitch, amplitude e fase sao transmitidos. A taxa de bits mais baixa utilizada pelas tecnicas de codif icagao de fala PPP pode nao permit ir a transmissao tanto das informagoes sobre defasagem de pitch absolute» quant ο dos valores de diferenga de defasagem de pitch relativos.
De acordo com um exemplo, quadros altamente periodicos, tais como os quadros de fala vocalizada, sao transmitidos com um modo de codificagao PPP de baixa taxa de bits que quantifica a diferenga entre ο valor de defasagem de pitch para ο quadro atual e 〇 valor de defasagem de pitch para ο quadro anterior para transmissao, e nao quantifica ο valor de defasagem de pitch para ο quadro atual para transmissao. Uma vez que os quadros vocalizados sao de natureζa altamente periodica, a transmissao do valor de diferenga em oposigao ao valor de defasagem de pitch absoluto pode permitir que seja obtida uma taxa de bits mais baixa. Sob um aspecto, est a
quantificagao e generalizada de modo que a soma ponderada dos valores de parametro para os quadros anteriores seja computada, onde a soma dos pesos e um, e a soma ponderada e subtraida do valor de parametro para ο quadro atual· Ά diferenga pode ser entao quantificada.
A Figura 38 e um diagrama de fluxos que mostra um
exemplo de um metodo de codificagao de fala de taxa variavel 3800. Sob um aspecto, ο metodo 3800 e implementado por uma iinica estagao movel 3302, que pode ser habilitada para codificar um pacote como um pacote de banda larga ou um pacote de banda estreita· Sob outros aspectos, ο metodo 3800 pode ser implementado por mais de uma estagao movel 3302. Em outras palavras, uma estagao movel 3302 pode incluir um codificador para codificar um pacote de banda larga ou banda estreita, enquanto uma estagao movel 3302 separada pode incluir um decodificador para decodificar ο pacote utilizando tecnicas de decodificagao de banda larga ou banda estreita· Podem ser calculados 3802 parametros iniciais de um quadro atual. Em uma configuragao^ ο modulo de calculo de parametros iniciais 3718 calcula 3802 os parametros. Os parametros podem incluir um ou mais dois seguintes: coeficientes de filtro de codificagao de predigao linear (LPC), coeficientes de pares espectrais de linha (LSPs), as fung5es de autocorrelagao normalizadas (NACFs)^ ο retardo de malha aberta, energies de banda, a taxa de cruzamento zero e ο sinal residual formando.
〇 quadro atual pode ser classificado 3804 como ativo ou inativo. Em uma configuragao, ο modulo de classificagao 3722 classifica ο quadro atual como incluindo uma fala ou 、、ativa" ou "inativa". Conforme descrito acima, ο s (n) 3710 pode incluir periodos de fala e periodos de silencio. A fala ativa pode incluir palavras faladas, ao passo que a fala inativa pode incluir ruido de fundo,
silencio, pauses, etc· E determinado 3806 se ο quadro atual f oi classificado como ativo ou inativo. Se ο quadro atual for classificado como ativo, a fala ativa e tambem classificada 3808 ou como vocalizada, nao vocalizada ou quadros transitorios. A fala humana pode ser classificada de muitas maneiras diferentes. A fala que nao e vocalizada ou nao vocalizada pode ser classificada como fala transit0ria.
Um mod〇 de codificador/decodificador pode ser selecionado 3810 com base na classificagao de quadros feita nas etapas 3806 e 3808. Os diversos modos de codificador/decodificador podem ser conectados em paralelo, conforme mostrado na Figure 37. Os diferentes modos de codificador/decodificador funcionam de acordo com diferentes esquemas de codificagao. Determinados modos podem ser mais eficazes nas partes de codificagao do sinal de fala s (n) 3710 que apresentam determinadas propriedades.
Conforme explicado anteriormente, 〇 modo CELP pode ser escolhido para quadros de codigo classificados como fala transit0rio.〇 modo PPP pode ser escolhido para quadros de codigo classificados como fala nao vocalizada. A mesma tecnica de codif icagao pode ser f reqiientemente acionada a diferentes taxas de bits, com niveis variaveis de desempenho. Os diferentes modos de
codificador/decodificador da Figura 37 podem representar diferentes tecnicas de codificagao, ou a mesma tecnica de codificagao que funciona a diferentes taxas de bits, ou combinag5es deles .
〇 modo de codificador selecionado pode codificar 3812 ο quadro atual e formatar 3814 ο quadro codificado em um pacote de acordo com uma taxa de bits. Um identificador de pacote pode ser incluido 3816 no pacote.〇 identificador
de pacote pode indicar se ο pacote f oi codif icado como um pacote de banda larga ou banda estreita.〇 pacote pode ser enviado 3818 a um decodificador.
A Figura 39 e um diagrama de blocos que mostra uma c〇nfiguragao de um pacote de meia taxa de banda estreita regular 3902 e um pacote de meia taxa de banda larga 3904. Sob um aspecto, cada pacote pode incluir um identificador de pacote, como ο identificador de pacote A 3906 e ο identificador de pacote B 3907.〇 identificador de pacote A 3906 pode incluir um valor de def asagem legal 3908, e ο identif icador de pacote B 3907 pode incluir um valor de defasagem ilegal 3914.〇 valor de defasagem ilegal 3914 pode ser um valor que indica a um decodificador se um determinado pacote e um pacote de meia taxa de banda larga 3904 ou um pacote de meia taxa de banda estreita especial. 〇 valor de defasagem legal pode indicar a um decodificador se um determinado pacote e um pacote CELP de meia taxa de banda estreita regular (nao especial) 3902. Em outras configuragoes,〇 valor de defasagem legal pode indicar a um decodificador se um determinado pacote e qualquer outro pacote de meia taxa que inclui um valor de defasagem de pitch na faixa de [0:100].〇 valor de defasagem de pitch na faixa de [0:100] e utilizado meramente como um exemplo. Os presentes sistemas e metodos podem aplicar-se a um dado campο de N bits, com um conjunto de valores que sao validos (associados a um esquema de codificagao especifico) e outro conjunto de valores que sao ilegais/invalidos.
Em uma conf iguragao, ο pacote de meia taxa de banda estreita regular 3902 utiliza cada um dos 80 bits incluidos no pacote 3902. Sendo assim, um parametro de retardo pode ser utilizado para armazenar um valor de defasagem legal 3908, que pode indicar ao decodificador que 〇 pacote entrante e um CELP de meia taxa de banda estreita
regular (nao especial). Sob um aspecto, ο parametro de retardo incluiu 7 bits.〇 parametro de retardo pode nao ser um valor 3910 entre os niimeros decimals de "101" e "127". Valores de atraso legal (valido) neste campο de 7 bits podem ser um valor 3910 entre os niimeros decimals de 、、0〃 e 、、:L00〃.〇 valor 3910 entre 、、0〃 e "100" pode ser incluido no pacote CELP de meia taxa de banda estreita regular (nao especial) 3902 em sua forma binaria (um niimero binario de 7 bits, p〇r exemplo).
Sob um aspecto, um codif icador de banda larga implementa ο esquema de codif icagao NELP para sons nao vocalizados de c0dig〇.〇 sinal para sons nao vocalizados pode ser empacotado no pacote de meia taxa de banda larga 3904 como um pacote com 80 bits. Entretanto7 pacotes com sons nao vocalizados podem nao incluir um retardo. Em uma c〇nfiguragao, os retardos podem nao ser analisados por um codificador para sons nao vocalizados porque a reprodugao aceitavel do sinal para sons nao vocalizados pode ser obtida sem um retardo.〇 pacote de meia taxa de banda larga 3904 pode utilizar 7 4 dos 80 bits, deixando β bits livres. 〇 identif icador de pacote B 3907 associado ao pacote de meia taxa de banda larga 3904 pode incluir uma cadeia 3912 de seis uns (isto e, 、、:Llll 11〃)· Em uma configuragao, isto pode ser mapeado nos niameros decimais de 、λ126" e λλ127" (em 7 bits) e pode ser reservado como um identificador para ο pacote de meia taxa de banda larga 3904.
Em uma conf iguragao, pelo menos do is va lores ilegais de um parametro de N bits podem ser utilizados. Se dois valores ilegais forem utilizados, um bit do parametro de N bits pode ser liberado para portar informag5es. Em outra configuragao, ο ηύπίθΓο de bits do parametro de N bits que pode ser liberado para portar inf ormag5es pode ser igual a l〇g2(X), onde Xeo niamero de valores ilegais
fornecidos do parametro de N bits. Por exemplo, oito valores ilegais podem liberar tres bits para portar outras informag5es .
A Figura 40 e um grafico 4000 que mostra ο niamero de bits alocados para varios tipos de pacote,〇 grafico 4000 土nclui uma pluralidade de parametros 4002. Cada parametro dentrο da pluralidade de parametros 4002 pode utilizar um determinado nuimero de bits. Os diver so s tipos de pacote mostrados no grafico 4000 podem ter sido codificados com a utilizagao de um dos diversos modos de codificagao discutidos anteriormente. Os tipos de pacote podem incluir um CELP de taxa completa (FCELP) 4004, um CELP de meia taxa (HCELP) 4 00 6, um CELP de meia taxa especial (SPHCELP) 4 007, um PPP de taxa completa (FPPP) 4010, um PPP de meia taxa especial (SPLHPP) 4012, um PPP de um quarto de taxa (QPPP) 4014, um NELP de meia taxa especial (SPHNELP) 4016, um NELP de um quarto de taxa (QNELP) 4018 e um codificador de silencio 4020.
〇 FCELP 4004 e ο FPPP 4010 podem ser pacotes com um total de 171 bits. 〇 pacote FCELP 4004 pode ser convertido em um pacote SPLHCELP 4008. Sob um aspecto, ο pacote FCELP 4004 aloca bits para parametros tais como um indice de codigo cifrado fixo (Indice FCB) e um ganho de c0dig〇 cifrado fixo (Ganho FCB). Conforme mostrado, quando ο pacote FCELP 4004 e convertido em um pacote SPLHCELP 4008, zero bits sao alocados para parametros tais como ο indice FCBf ο Ganho FCB e um retardo delta. Em outras palavras, ο pacote SPLHCELP 4008 e transmitido para um decodificador sem estes bits.〇 pacote SPLHCELP 4008 inclui bits que sao alocados para parametros tais como um par espectral de linha (LSP), um ganho de c6dig〇 cifrado adaptativ〇 (ACB)r uma (ID) identificagao de meia taxa especial, um ID de pacote especial e informagoes sobre
defasagem de pitch e bits de modo.〇 niimero total de bits transmitidos para um decodificador pode ser reciuzido de 171 para 80.
De maneira seme lhant e, ο pacote FPPP 4010 pode ser convertido em um pacote SPLHPPP 4012. Conforme mostrado, ο pacote FPPP 4010 aloca bits para parametros de alinhamento na banda · 〇 pacote FPPP 4010 pode ser c〇nvertid〇 em um pacote FPPP 4010 pode ser convertido em um pacote SPLHPPP 4012. Os bits alocados para os alinhamentos de banda podem ser descartados. Em outras palavras, ο pacote SPLHPPP 4012 e transmitido para um decodificador sem estes bits.〇 mimer〇 total de bits transmitidos para um decodif icador pode ser reduzido de 171 para 80. Em uma configuragao, os bits alocados para os parametros de amplitude e alinhamento global sao incluidos no pacote SPLHPPP 4012.〇 parametro de amplitude pode indicar a amplitude do espectro do sinal s (n) 3710 e ο parametro de alinhamento global pode representar ο deslocamento de fase linear que pode assegurar alinhamento maximo.
Alem disso, diversos tipos de pacote podem incluir bits alocados para um parametro de ID de pacote de retardo/especial. 〇 parametro de ID de pacote de retardo/especial pode representar ο identificador de pacote que permite que um decodificador reconhega se um pacote especific〇 f〇i codificado utilizando-se tecnicas de codificagao de banda estreita ou tecnicas de codificagao de banda larga.
Diversas configurag5es sao aqui mostradas com diferentes nilmeros de bits para diferentes parametros e pacote s. 〇 ηύπίθΓο especif ico de bits associados a cada parametro destes e a titulo de exemplo e nao pretende ser limitador. Os parametros podem incluir ma is ou menos bits
que nos exemplos aqui utilizados. A Figura 41 mostra diversos componentes que podem ser utilizados em um equipamento de comunicagao 4108 de acordo com uma configuragao.〇 equipamento de comunicagao 4108 pode incluir um processador 412, que controla ο funcionamento do equipamento 4108.〇 processador 4102 pode ser tambem referido como CPU. Uma memoria 4104, que pode incluir tanto uma memoria so de leitura (ROM) quant〇 uma mem0ria de acesso aleatorio (RAM)r fornece instru?5es e dados ao processador 4102. Uma parte da memoria 4104 pode incluir tambem uma memoria de acesso aleatorio nao volatil (NVRAM).
〇 equipamento de comunicagao 4108 pode incluir tambem um alojamento 4122 que contem um transmissor 4110 e um receptor 4112 para permitir a transmissao e a recepgao de dados entre ο terminal de acesso 4108 e um local remoto. 〇 transmissor 4110 e ο receptor 4112 podem ser combinados em um transceptor 4120. Uma antena 4418 e presa ao alojamento 4122 e eletricamente acoplada ao transceptor 4120.
〇 equipamento de comunicagao 4108 inclui tambem
um detector de sinais 4106 utilizado para detectar e quantificar ο nivel dos sinais recebidos pelo transceptor 4120 ·〇 detector de sinais 4106 detect a sinais tais como energia total, energia-piloto por chips de pseudo-ruido (PN), densidade espectral de energia e outros sinais,
Um alterador de estado 4114 do equipamento de comunicagao 4108 controla ο estado do equipamento de comunicagao 4108 com base no estado atual e nos sinais adicionais recebidos pelo transceptor 4120 e detectados pelo detector de sinais 4106. 〇 equipamento 4108 pode funcionar em qualquer um de varios estados.
〇 equipamento de comunicagao 4108 inclui tambem
um determinador de sistema 4124 utilizado para controlar ο equipamento 4108 e determinal: para qual sistema de provedor de servigos ο equipamento 4108 deve transferir-se quando determinar que 〇 sistema de provedor de servigos atual e inadequado.
Os divers〇s componentes do equipamento de
comunicagao 4108 sao acoplados uns aos outros por um sistema de barramento 4118 que pode incluir um barramento de forga, um barramento de sinal de controle e um barramento de sinal de condigao alem de um barramento de dados. Entretanto, para abreviar a exposigao, os diversos barramentos sao mostrados na Figura 41 como ο sistema de barramento 4118. O equipamento de comunicagao 4108 pode incluir tambem um processador de sinais digitais (DSP) 416 para uso no processamento de sinais. As inf orma?5es e os sinais podem ser
representados utilizand〇一se qualquer uma de diversas tecnologias e tecnicas diferentes. Por exemplo, os dados, instrugdes, comandos, Informagoesr sinais, bits, simbolos e chips referidos em toda a descrigao acima podem ser representados por tensoes, correntes, ondas
eletromagneticas, campos ou particulas magneticasf campos ou particulas opticas ou qualquer combinagao deles·
Os diversos blocos, modulos, circuitos logicos e etapas de algoritmo ilustrativos descritos em conexao com as configuragoes aqui reveladas podem ser implementados como hardware eletronico, software de comutador ou combinagoes de ambos. Para se ilustrar claramente esta intercambialidade de hardware e software, diversos componentes, blocos, circuitos e etapas ilustrativos foram descritos acima geralmente em termos de sua funcionalidade. Se tal funcionalidade e implementada como hardware ou software depende da aplicagao especifica e das restrigoes
de desenho impostas ao sistema como um todo. Os versados na tecnica podem implementar a funcionalidade descrita de maneiras variaveis para cada aplicagao especifica, mas tais decisoes de implementagao nao devem ser interpretadas como provocando um afastamento do alcance da presente invengao.
Os diversos blocos, modulos e circuitos 16gic〇s
ilustrativos descritos em conexao com as configurag5es aqui reveladas podem ser implementados ou executados com um processador para fins gerais, um processador de sinais digitais (DSP), um circuito integrado especifico de aplicagao (ASIC), um arranjo de portas programavel no campο (FPGA) ou outro dispositive 10gic〇 programavel, porta discrete ou 16gica de transistor, componentes de hardware discretos ou qualquer combinagao deles projetada para executar as fungoes aqui descritas. Um processador para fins gerais podem ser um microprocessador, mas alternativamente ο processador pode ser qualquer processador, controlador, microcontrolador ou maquina de estado. Um processador pode ser tambem implementado como uma combinagao de dispositivos de computagao, como, por exemplo, uma combinagao de DSP e microprocessador, uma pluralidade de micr〇pr〇cessad〇res, um ou mais microprocessadores em conjunto com um nucleo de DSP ou qualquer outra configuragao que tal ·
As etapas de metodo ou algoritmo descritas em conexao com as configura?5es aqui reveladas podem ser corporificadas diretamente em hardware, em um modulo de software executado por um processador ou em uma combinagao dos dois. Um modulo de software pode residir em uma mem0ria de acesso aleatorio (RAM), uma memoria flash, uma memoria exclusiva de leitura (ROM), uma ROM eletricamente programavel (EPROM) , uma ROM programavel eletricamente apagavel (EEPROM), em registrad〇res, disco rigid〇, disco
removivel, CD-ROM ou qualquer outra forma de meio de armazenamento conhecida na tecnica. Um meio de armazenamento exemplar e acoplado ao processador de modo que ο processador possa Ier informagoes do, e gravar informagdes no, meio de armazenamento. Alternativamente, 〇 meio de armazenamento pode ser integrante com ο processador.〇 processador e ο meio de armazenamento podem residir em um ASIC.〇 ASIC pode residir em um terminal de usuario. Alternativamente, ο processador e ο meio de armazenamento podem residir como componentes discretos em um terminal de usuario. Os metodos aqui revelados compreendem uma ou mais
etapas ou ag5es apara executar ο metodo descrito. As etapas e/ou agoes de metodo podem ser intercamabiadas umas com as outras sem que se abandone ο alcance dos presentes sistemas e metodos. Em outras palavras, a menos que uma ordem especifica de etapas ou agoes seja especificada para ο funcionamento apropriado da configuragao, a ordem e/ou a utilizagao de etapas e/ou ag5es especificas podem ser modificadas sem que se abandone ο alcance dos presentes sistemas e metodos. Os metodos aqui revelados podem ser implementados em hardware, software ou em ambos· Exemplos de hardware e memoria podem incluir RAM, ROM, EPROM, EEPROM, memoria flash, disco 6ptic〇, registradores, disco rigidof disco removivel, CD-ROM ou quaisquer outros tipos de hardware e memoria. Embora configura?5es e aplicag5es especificas dos
presentes sistemas e metodos tenham sido mostradas e descritas, deve ficar entendido que os sistemas e metodos nao estao limitados a configuragao e aos componentes precisos aqui revelados. Diversas modificagoes, alterag5es e variagoes que serao evidentes aos versados na tecnica podem ser feitas na disposigao, funcionamento e detalhes dos metodos e sistemas aqui revelados sem que se abandonem ο
espirito e ο alcance dos sistemas e metodos reivindicados.

Claims (15)

1. Metodo para incluir um identificador com um pacote associado a um sinal de fala, ο metodo compreendendo: receber um sinal; particionar ο sinal em uma pluralidade de quadros; codificar um quadro do sinal em um pacote; determinar se ο pacote e codif icado como um pacote de banda larga ou um pacote de banda estreita; empacotar um identificador no pacote com base na determinagao; e transmitir ο pacote.
2. Metodo, de acordo com a reivindicagao 1, no qual ο pacote de meia taxa de banda larga e codif icado usando um esquema de codificagao de predi^ao linear excitada por ruido (NELP).
3. Metodo, de acordo com a reivindicagao 1, no qual ο quadro e codif icado por um codif icador de banda larga em uma estagao movel.
4. Metodo, de acordo com a reivindicagao 1, compreendendo adicionalmente decodificar ο quadro atraves de um decodificador de banda larga em uma estagao movel.
5. Metodo, de acordo com a reivindicagao 1, compreendendo adicionalmente prover pelo menos dois valores ilegais a partir de um parametro de N bits, no qual pelo menos um bit a partir do parametro de N bits e usado para portar informagao.
6. Metodo, de acordo com a reivindicagao 5, no qual um niimero de bits a partir do parametro de N bits usado para portar informagao e igual a l〇g2 (X) , no qual X e ο niimero de valores ilegais providos a partir do parametro de N bits.
7. Metodo, de acordo com a reivindicagao 1, no qual ο pacote e codificado como um pacote de banda larga de meia taxa.
8. Sistema que e conf igurado para incluir um identificador com um pacote associado a um sinal de fala compreendendo: mecanismos para processar; mecanismos para receber um sinal,· mecanismos para particionar ο sinal em uma pluralidade de quadros; mecanismos para codificar um quadro do sinal em um pacote; mecanismos para determiner se ο pacote e codificado como um pacote de banda larga ou um pacote de banda estreita; mecanismos para empacotar um identificador no pacote com base na determinagao; e mecanismos para transmitir ο pacote.
9. Sistema, de acordo com a reivindicagao 8, no qual ο pacote e codificado como um pacote de banda larga de meia taxa.
10. Sistema compreendendo um processador, uma memoria em comunicagao eletronica com ο processador e instrugSes armazenadas em memoriaf as instrugoes sendo executaveis para desempenhar ο metodo de acordo com a reivindicagao 1.
11. Programa de computador, compreendendo instrugoes executaveis para: receber um sinal; particionar ο sinal em uma pluralidade de quadros; codificar ο quadro do sinal em um pacote; empacotar um identificador no pacote, no qual ο identificador e um valor ilegal para um parametro de N bits; e transmitir 〇 pacote
12. Metodo para decodificar um pacote, ο metodo compreendendo: receber um pacote; analizar um identificador incluido no pacote, no qual ο identificador indica se ο pacote foi codificado com um primeiro codificador ou um segundo codificador, no qual ο identificador e um valor ilegal para um parametro de N bits; determiner se ο pacote f oi codificado pelo primeiro codificador ou 〇 segundo codificador; e selecionar um modo de decodificagao para ο pacote com base na determinagao.
13. Equipamento para decodificar um pacote compreendendo: um processador; memoria em comunicagao eletronica com ο processador; instrugoes armazenadas na memoria, as instrugoes sendo executaveis para: receber um pacote; analizar um identificador incluido no pacote, no qual ο identificador indica se ο pacote foi codificado com um primeiro codificador ou um segundo codificadorΛ no qual ο identificador e um valor ilegal para um parametro de N bits; determinar se ο pacote foi codificado pelo primeiro codificador ou ο segundo codificador; e selecionar um modo de decodificagao para ο pacote com base na determinagao·
14. Sistema que e configurado para decodificar um pacote compreenciendo : mecanismos para processar; mecanism〇s para receber um pacote; mecanismos para analisar um identificador incluido no pacote, no qual ο identificador indica se ο pacote f oi codificado com um primeiro codificador ou um segundo codif icador, no qual ο identif icador e um valor ilegal para um parametro de N bits; mecanismos para determiner se ο pacote foi codificado pelo primeiro codificador ou pelo segundo codif icador,· e mecanismos para selecionar um modo de decodificagao para ο pacote com base na determinagao·
15. Programs de computador compreenciendo instrugoes executaveis para: receber um pacote; analizar um identificador incluido no pacote, no qual ο identificador indica se ο pacote foi codificado com um primeiro codificador ou um segundo codificador, no qual ο identificador e um valor ilegal para um parametro de N bits; determinar se ο pacote foi codificado pelo primeiro codificador ou pelo segundo codificador; e selecionar um modo de decodificagao para ο pacote com base na determinagao.
BRPI0714825-9A 2006-07-31 2007-07-31 Sistemas e métodos para incluir um identificador a um pacote associado a um sinal de fala BRPI0714825A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US83461706P 2006-07-31 2006-07-31
US60/834,617 2006-07-31
US11/677,173 US8135047B2 (en) 2006-07-31 2007-02-21 Systems and methods for including an identifier with a packet associated with a speech signal
US11/677,173 2007-02-21
PCT/US2007/074900 WO2008016947A2 (en) 2006-07-31 2007-07-31 Systems and methods for including an identifier with a packet associated with a speech signal

Publications (1)

Publication Number Publication Date
BRPI0714825A2 true BRPI0714825A2 (pt) 2013-05-21

Family

ID=38920744

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0714825-9A BRPI0714825A2 (pt) 2006-07-31 2007-07-31 Sistemas e métodos para incluir um identificador a um pacote associado a um sinal de fala

Country Status (10)

Country Link
US (1) US8135047B2 (pt)
EP (1) EP2047461B1 (pt)
JP (2) JP5437067B2 (pt)
KR (1) KR101058760B1 (pt)
CN (1) CN104123946B (pt)
BR (1) BRPI0714825A2 (pt)
CA (1) CA2657424C (pt)
RU (1) RU2421828C2 (pt)
TW (1) TWI384807B (pt)
WO (1) WO2008016947A2 (pt)

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7460990B2 (en) * 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US8725501B2 (en) * 2004-07-20 2014-05-13 Panasonic Corporation Audio decoding device and compensation frame generation method
KR100883652B1 (ko) * 2006-08-03 2009-02-18 삼성전자주식회사 음성 구간 검출 방법 및 장치, 및 이를 이용한 음성 인식시스템
US8024192B2 (en) * 2006-08-15 2011-09-20 Broadcom Corporation Time-warping of decoded audio signal after packet loss
GB0704622D0 (en) * 2007-03-09 2007-04-18 Skype Ltd Speech coding system and method
GB0705328D0 (en) 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
CN101325537B (zh) * 2007-06-15 2012-04-04 华为技术有限公司 一种丢帧隐藏的方法和设备
US8046214B2 (en) * 2007-06-22 2011-10-25 Microsoft Corporation Low complexity decoder for complex transform coding of multi-channel sound
US7885819B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
DK2571024T3 (en) * 2007-08-27 2015-01-05 Ericsson Telefon Ab L M Adaptive transition frequency between the noise filling and bandwidth extension
KR100921867B1 (ko) * 2007-10-17 2009-10-13 광주과학기술원 광대역 오디오 신호 부호화 복호화 장치 및 그 방법
US8249883B2 (en) * 2007-10-26 2012-08-21 Microsoft Corporation Channel extension coding for multi-channel source
EP2218068A4 (en) * 2007-11-21 2010-11-24 Lg Electronics Inc METHOD AND APPARATUS FOR SIGNAL PROCESSING
JP5229234B2 (ja) * 2007-12-18 2013-07-03 富士通株式会社 非音声区間検出方法及び非音声区間検出装置
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
KR101413968B1 (ko) * 2008-01-29 2014-07-01 삼성전자주식회사 오디오 신호의 부호화, 복호화 방법 및 장치
US8326641B2 (en) * 2008-03-20 2012-12-04 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding using bandwidth extension in portable terminal
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
USRE47180E1 (en) * 2008-07-11 2018-12-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for generating a bandwidth extended signal
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US7911975B2 (en) * 2008-08-26 2011-03-22 International Business Machines Corporation System and method for network flow traffic rate encoding
WO2010028292A1 (en) * 2008-09-06 2010-03-11 Huawei Technologies Co., Ltd. Adaptive frequency prediction
US8532998B2 (en) * 2008-09-06 2013-09-10 Huawei Technologies Co., Ltd. Selective bandwidth extension for encoding/decoding audio/speech signal
WO2010028301A1 (en) * 2008-09-06 2010-03-11 GH Innovation, Inc. Spectrum harmonic/noise sharpness control
WO2010028299A1 (en) * 2008-09-06 2010-03-11 Huawei Technologies Co., Ltd. Noise-feedback for spectral envelope quantization
WO2010031003A1 (en) 2008-09-15 2010-03-18 Huawei Technologies Co., Ltd. Adding second enhancement layer to celp based core layer
US8577673B2 (en) * 2008-09-15 2013-11-05 Huawei Technologies Co., Ltd. CELP post-processing for music signals
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
JP5423684B2 (ja) * 2008-12-19 2014-02-19 富士通株式会社 音声帯域拡張装置及び音声帯域拡張方法
CN101604525B (zh) * 2008-12-31 2011-04-06 华为技术有限公司 基音增益获取方法、装置及编码器、解码器
PL3751570T3 (pl) 2009-01-28 2022-03-07 Dolby International Ab Ulepszona transpozycja harmonicznych
WO2010086461A1 (en) 2009-01-28 2010-08-05 Dolby International Ab Improved harmonic transposition
CN102460574A (zh) * 2009-05-19 2012-05-16 韩国电子通信研究院 用于使用层级正弦脉冲编码对音频信号进行编码和解码的方法和设备
KR101405022B1 (ko) 2009-09-18 2014-06-10 돌비 인터네셔널 에이비 입력 신호를 전위시키기 위한 시스템 및 방법, 상기 방법을 수행하는 소프트웨어 프로그램 및 컴퓨터 프로그램 제품을 포함하는 저장 매체
RU2510974C2 (ru) * 2010-01-08 2014-04-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования, способ декодирования, устройство кодера, устройство декодера, программа и носитель записи
JP5602769B2 (ja) * 2010-01-14 2014-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
JP5651980B2 (ja) * 2010-03-31 2015-01-14 ソニー株式会社 復号装置、復号方法、およびプログラム
US12002476B2 (en) 2010-07-19 2024-06-04 Dolby International Ab Processing of audio signals during high frequency reconstruction
JP5593244B2 (ja) * 2011-01-28 2014-09-17 日本放送協会 話速変換倍率決定装置、話速変換装置、プログラム、及び記録媒体
US9767823B2 (en) 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and detecting a watermarked signal
US9767822B2 (en) * 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
US8880404B2 (en) 2011-02-07 2014-11-04 Qualcomm Incorporated Devices for adaptively encoding and decoding a watermarked signal
WO2012112357A1 (en) * 2011-02-16 2012-08-23 Dolby Laboratories Licensing Corporation Methods and systems for generating filter coefficients and configuring filters
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US9117455B2 (en) * 2011-07-29 2015-08-25 Dts Llc Adaptive voice intelligibility processor
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
RU2504790C1 (ru) * 2012-05-24 2014-01-20 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы") Способ и устройство поиска и обнаружения сигналов
KR101340048B1 (ko) * 2012-06-12 2013-12-11 (주)에프씨아이 스펙트럼 반전 검출 장치 및 방법
CN105551497B (zh) 2013-01-15 2019-03-19 华为技术有限公司 编码方法、解码方法、编码装置和解码装置
WO2014209434A1 (en) * 2013-02-15 2014-12-31 Max Sound Corporation Voice enhancement methods and systems
US9236058B2 (en) * 2013-02-21 2016-01-12 Qualcomm Incorporated Systems and methods for quantizing and dequantizing phase information
EP3671738B1 (en) * 2013-04-05 2024-06-05 Dolby International AB Audio encoder and decoder
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101959188B1 (ko) 2013-06-09 2019-07-02 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
EP2830054A1 (en) 2013-07-22 2015-01-28 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder and related methods using two-channel processing within an intelligent gap filling framework
US9418671B2 (en) * 2013-08-15 2016-08-16 Huawei Technologies Co., Ltd. Adaptive high-pass post-filter
US20150149157A1 (en) * 2013-11-22 2015-05-28 Qualcomm Incorporated Frequency domain gain shape estimation
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10163447B2 (en) * 2013-12-16 2018-12-25 Qualcomm Incorporated High-band signal modeling
FR3020732A1 (fr) * 2014-04-30 2015-11-06 Orange Correction de perte de trame perfectionnee avec information de voisement
US9697843B2 (en) * 2014-04-30 2017-07-04 Qualcomm Incorporated High band excitation signal generation
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9583115B2 (en) * 2014-06-26 2017-02-28 Qualcomm Incorporated Temporal gain adjustment based on high-band signal characteristic
CN106486129B (zh) * 2014-06-27 2019-10-25 华为技术有限公司 一种音频编码方法和装置
EP2960903A1 (en) 2014-06-27 2015-12-30 Thomson Licensing Method and apparatus for determining for the compression of an HOA data frame representation a lowest integer number of bits required for representing non-differential gain values
JP5892395B2 (ja) * 2014-08-06 2016-03-23 ソニー株式会社 符号化装置、符号化方法、およびプログラム
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
WO2016142002A1 (en) 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio signal and method for decoding an encoded audio signal
US10061554B2 (en) * 2015-03-10 2018-08-28 GM Global Technology Operations LLC Adjusting audio sampling used with wideband audio
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20170069306A1 (en) * 2015-09-04 2017-03-09 Foundation of the Idiap Research Institute (IDIAP) Signal processing method and apparatus based on structured sparsity of phonological features
CN107924683B (zh) * 2015-10-15 2021-03-30 华为技术有限公司 正弦编码和解码的方法和装置
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
PL4134953T3 (pl) 2016-04-12 2025-04-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder audio do kodowania sygnału audio, sposób kodowania sygnału audio i program komputerowy, z uwzględnieniem wykrytego szczytowego obszaru widmowego w paśmie wyższej częstotliwości
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10264116B2 (en) * 2016-11-02 2019-04-16 Nokia Technologies Oy Virtual duplex operation
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
TWI594231B (zh) * 2016-12-23 2017-08-01 瑞軒科技股份有限公司 分頻壓縮電路,音訊處理方法以及音訊處理系統
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10825467B2 (en) * 2017-04-21 2020-11-03 Qualcomm Incorporated Non-harmonic speech detection and bandwidth extension in a multi-source environment
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US11876659B2 (en) 2017-10-27 2024-01-16 Terawave, Llc Communication system using shape-shifted sinusoidal waveforms
CA3184758A1 (en) * 2017-10-27 2019-05-02 Terawave, Llc Receiver for high spectral efficiency data communications system using encoded sinusoidal waveforms
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
EP4095855B1 (en) * 2018-01-17 2023-10-04 Nippon Telegraph And Telephone Corporation Decoding apparatus, encoding apparatus, and methods and programs therefor
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
CN110365615A (zh) * 2018-03-26 2019-10-22 晨星半导体股份有限公司 载波频偏估测装置与载波频偏估测方法
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
CN110660402B (zh) 2018-06-29 2022-03-29 华为技术有限公司 立体声信号编码过程中确定加权系数的方法和装置
EP3671741A1 (en) * 2018-12-21 2020-06-24 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Audio processor and method for generating a frequency-enhanced audio signal using pulse processing
RU2713750C1 (ru) * 2019-07-26 2020-02-07 Федеральное государственное автономное образовательное учреждение высшего образования "Дальневосточный федеральный университет" (ДВФУ) Способ когерентной разнесенной передачи сигнала
US11380343B2 (en) 2019-09-12 2022-07-05 Immersion Networks, Inc. Systems and methods for processing high frequency audio signal
KR102201169B1 (ko) * 2019-10-23 2021-01-11 성균관대학교 산학협력단 메타 표면의 반사 계수를 제어하기 위한 시간 부호 생성 방법, 메타 표면의 반사 계수를 제어하기 위한 시공간 부호 생성 방법, 이를 실행하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 기록매체, 및 이를 이용한 메타 표면의 신호 변조 방법
CN111510555B (zh) * 2020-04-03 2021-04-02 厦门亿联网络技术股份有限公司 一种dect基站通信方法、装置及系统
CN111769901B (zh) * 2020-05-12 2023-04-14 厦门亿联网络技术股份有限公司 一种传输数据帧的dect基站、移动终端及系统
CN113270105B (zh) * 2021-05-20 2022-05-10 东南大学 一种基于混合调制的类语音数据传输方法
EP4120256A1 (en) * 2021-07-14 2023-01-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Processor for generating a prediction spectrum based on long-term prediction and/or harmonic post-filtering
CN114333862B (zh) * 2021-11-10 2024-05-03 腾讯科技(深圳)有限公司 音频编码方法、解码方法、装置、设备、存储介质及产品

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2483324C (en) 1991-06-11 2008-05-06 Qualcomm Incorporated Estimation of background noise in a variable rate vocoder
JPH06337153A (ja) 1993-05-28 1994-12-06 Toshiba Corp 空気調和機
KR100560712B1 (ko) * 1997-06-19 2006-03-16 가부시끼가이샤 도시바 정보데이터 다중화 전송시스템과 그 다중화장치 및 분리장치와,에러정정 부호화장치 및 복호장치
KR100273288B1 (ko) * 1998-04-09 2000-12-15 김영환 디스플레이 패널용 데이터 제어 장치
FI991605L (fi) * 1999-07-14 2001-01-15 Nokia Networks Oy Menetelmä puhekodaukseen ja puhekoodaukseen tarvittavan laskentakapasi teetin vähentämiseksi ja verkkoelementti
US6567876B1 (en) * 1999-12-03 2003-05-20 Hewlett-Packard Development Company, L.P. Docking PCI to PCI bridge using IEEE 1394 link
US6584438B1 (en) 2000-04-24 2003-06-24 Qualcomm Incorporated Frame erasure compensation method in a variable rate speech coder
US7330814B2 (en) * 2000-05-22 2008-02-12 Texas Instruments Incorporated Wideband speech coding with modulated noise highband excitation system and method
US6631139B2 (en) * 2001-01-31 2003-10-07 Qualcomm Incorporated Method and apparatus for interoperability between voice transmission systems during speech inactivity
US6804340B2 (en) * 2001-05-03 2004-10-12 Raytheon Company Teleconferencing system
US20030172114A1 (en) 2001-10-24 2003-09-11 Leung Nikolai K. N. Method and apparatus for data packet transport in a wireless communication system using an internet protocol
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
US7657427B2 (en) * 2002-10-11 2010-02-02 Nokia Corporation Methods and devices for source controlled variable bit-rate wideband speech coding
CN1703736A (zh) 2002-10-11 2005-11-30 诺基亚有限公司 用于源控制可变比特率宽带语音编码的方法和装置
US7254533B1 (en) * 2002-10-17 2007-08-07 Dilithium Networks Pty Ltd. Method and apparatus for a thin CELP voice codec
WO2004090870A1 (ja) * 2003-04-04 2004-10-21 Kabushiki Kaisha Toshiba 広帯域音声を符号化または復号化するための方法及び装置
JP4047296B2 (ja) 2004-03-12 2008-02-13 株式会社東芝 音声復号化方法及び音声復号化装置
EP1810146B1 (de) * 2004-10-25 2009-03-18 Robert Bosch Gmbh Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US8260611B2 (en) 2005-04-01 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for highband excitation generation
CN2800435Y (zh) * 2005-05-24 2006-07-26 鸿富锦精密工业(深圳)有限公司 一种便携式光盘播放器
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
US7747669B2 (en) * 2006-03-31 2010-06-29 Intel Corporation Rounding of binary integers

Also Published As

Publication number Publication date
CA2657424C (en) 2013-05-28
TW200816716A (en) 2008-04-01
JP5437067B2 (ja) 2014-03-12
JP2013210659A (ja) 2013-10-10
RU2421828C2 (ru) 2011-06-20
JP2010501080A (ja) 2010-01-14
WO2008016947A2 (en) 2008-02-07
US8135047B2 (en) 2012-03-13
KR20090035727A (ko) 2009-04-10
CA2657424A1 (en) 2008-02-07
CN104123946B (zh) 2019-04-12
EP2047461B1 (en) 2013-04-17
KR101058760B1 (ko) 2011-08-24
WO2008016947A3 (en) 2008-03-20
EP2047461A2 (en) 2009-04-15
CN104123946A (zh) 2014-10-29
TWI384807B (zh) 2013-02-01
RU2009107164A (ru) 2010-09-10
US20080027711A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
BRPI0714825A2 (pt) Sistemas e métodos para incluir um identificador a um pacote associado a um sinal de fala
ES2350494T3 (es) Procedimiento y aparatos para codificar y decodificar una parte de banda alta de una señal de habla.
KR100956525B1 (ko) 스피치 신호의 스플릿 대역 인코딩을 위한 방법 및 장치
ES2705589T3 (es) Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia
CN101496097A (zh) 用于在与语音信号相关联的包中包含识别符的系统及方法

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 8A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2317 DE 02-06-2015 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.