BRPI0715063A2 - sistemas,mÉtodos e equipamentos para detecÇço de mudanÇa de sinal - Google Patents

sistemas,mÉtodos e equipamentos para detecÇço de mudanÇa de sinal Download PDF

Info

Publication number
BRPI0715063A2
BRPI0715063A2 BRPI0715063-6A BRPI0715063A BRPI0715063A2 BR PI0715063 A2 BRPI0715063 A2 BR PI0715063A2 BR PI0715063 A BRPI0715063 A BR PI0715063A BR PI0715063 A2 BRPI0715063 A2 BR PI0715063A2
Authority
BR
Brazil
Prior art keywords
frame
sequence
spectral
values
speech signal
Prior art date
Application number
BRPI0715063-6A
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38812761&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0715063(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0715063A2 publication Critical patent/BRPI0715063A2/pt
Publication of BRPI0715063B1 publication Critical patent/BRPI0715063B1/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/012Comfort noise or silence coding
    • 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
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L2025/783Detection of presence or absence of voice signals based on threshold decision
    • G10L2025/786Adaptive threshold

Landscapes

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

Abstract

SISTEMAS, MÉTODOS E EQUIPAMENTOS PARA DETECÇçO DE MUDANÇA DE SINAL. As modalidades descritas incluem sistemas, métodos e equipamentos dispostos para gerar uma sequência de valores de inclinação espectral que é baseada em quadros inativos de um sinal de fala. Para cada um dentre uma pluralidade de quadros inativos do sinal de fala é realizada uma decisão de transmissão de acordo com uma mudança calculada entre pelo menos dois valores correspondentes da sequência. O resultado da decisão de transmissão determina se uma descrição de silêncio é transmitida para o quadro inativo correspondente.

Description

"SISTEMAS, MÉTODOS E EQUIPAMENTOS PARA DETECÇÃO DE MUDANÇA DE SINAL"
CAMPO
A presente invenção está relacionada ao processamento de sinais. FUNDAMENTOS
A transmissão de voz por técnicas digitais se tornou comum, particularmente na telefonia de longa distância, na telefonia comutada por pacotes, tal como por voz sobre protocolo Internet (VoIP) e na rádio telefonia digital, tal como na telefonia celular. Tal proliferação criou interesse na redução da quantidade de informações usadas para transferir uma comunicação de voz através de um canal de transmissão, enquanto mantém a qualidade percebida da fala reconstruída.
Os dispositivos que são configurados para comprimir fala através da extração de parâmetros relacionados a um modelo de geração de fala humana são designados como "codificadores de fala". Um codificador de fala geralmente inclui um encodificador e um decodificador. 0 encodificador de fala tipicamente divide o sinal de fala que chega (um sinal digital representando informações de áudio) em segmentos de tempo denominados "quadros", analisa cada quadro para extrair certos parâmetros relevantes e quantiza os parâmetros em uma representação binária, tal como um conjunto de bits ou um pacote de dados binários. Os pacotes de dados são transmitidos através de um canal de transmissão (isto é, uma conexão de rede por cabos ou sem fio) para um receptor que inclui um decodificador. 0 decodificador recebe e processa pacotes de dados, dequantiza os mesmos para produção dos parâmetros e recria quadros de fala usando os parâmetros dequantizados.
Em uma conversação típica, cada locutor fica em silêncio durante cerca de 60% do tempo. Os encodificadores de fala são usualmente configurados para distinguir os quadros do sinal de fala que contêm fala ("quadros ativos") dos quadros do sinal de fala que contêm apenas silêncio ou ruido de fundo ("quadros inativos"). Tal encodificador pode ser configurado para usar diferentes modos e/ou taxas de codificação para encodificar quadros ativos e inativos. Como exemplo, os encodificadores de fala são tipicamente configurados para transmitir quadros inativos encodifiçados (também designados como "descritores de silêncio", "descrições de silêncio", ou SIDs) em uma taxa de bits mais baixa do que os quadros ativos encodifiçados.
Em qualquer momento durante uma comunicação telefônica "full-duplex" pode se esperar que a inserção para pelo menos um dentre os encodif icadores de fala será um quadro inativo. Pode ser desejável que um encodificador transmita SIDs para um número menor do que a totalidade dos quadros inativos. Tal operação é também designada como transmissão descontínua (DTX). Como exemplo, um encodif icador de fala realiza DTX pela transmissão de um SID para cada cadeia (string) de 32 quadros inativos consecutivos. 0 decodificador correspondente aplica as informações no SID para atualizar um modelo de geração de ruido que é usado por um algoritmo de geração de ruido de conforto para sintetizar quadros inativos. SUMÁRIO
Um método para processamento de um sinal de fala de acordo com uma configuração inclui gerar uma seqüência de valores de inclinação (tilt) espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala. Tal 3 0 método inclui calcular uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral e, para um quadro inativo entre a pluralidade de quadros inativos, decidir se se transmite uma descrição para o quadro. Em tal método, o decidir se se transmite uma descrição para o quadro é baseado na mudança calculada. Um produto de programa de computador de acordo com outra modalidade inclui um meio legível por computador, tal meio compreendendo um código para fazer com que pelo menos um computador gere uma seqüência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala. Tal meio inclui um código para fazer com que pelo menos um computador calcule uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral; e um código para fazer com que pelo menos um computador decida, para um quadro inativo entre a pluralidade de quadros inativos e com base na mudança calculada, se se transmite uma descrição para o quadro.
Um equipamento para processar um sinal de fala de acordo com outra configuração inclui um gerador de seqüência configurado para gerar uma seqüência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala. Tal equipamento inclui um calculador configurado para calcular uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral; e um comparador configurado para decidir, para um quadro inativo entre a pluralidade de quadros inativos e com base na mudança calculada, se se transmite uma descrição para o quadro. Um equipamento para processar um sinal de fala de
acordo com outra configuração inclui mecanismos para gerar uma seqüência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala. Tal equipamento compreende mecanismos para calcular uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral; e mecanismos para decidir, para um quadro inativo entre a pluralidade de quadros inativos e com base na mudança calculada, se se transmite uma descrição para o quadro. BREVE DESCRIÇÃO DOS DESENHOS
A Figura IA apresenta um fluxograma de um método MlOO de acordo com uma configuração.
A Figura IB apresenta um diagrama de blocos de um equipamento AlOO de acordo com uma modalidade.
A Figura IC apresenta um fluxograma de uma implementação MlOl do método M100.
A Figura ID apresenta um diagrama de blocos de uma implementação AlOl do equipamento A100. A Figura 2 apresenta um diagrama de blocos de uma
implementação 132 do uniformizador (smoother) 130.
A Figura 3 apresenta um exemplo ilustrativo em que cada circulo representa um dentre uma série de quadros consecutivos de um sinal de fala ao longo do tempo. A Figura 4 apresenta um diagrama de blocos de uma
implementação 142 do calculador 140.
A Figura 5 apresenta um diagrama de blocos de uma implementação 152 do comparador 150.
A Figura 6 apresenta um diagrama de blocos de uma implementação 154 do comparador 150.
A Figura 7A apresenta um diagrama de blocos de uma implementação A102 do equipamento A100.
A Figura 7B apresenta um exemplo em que várias indicações de transmissão diferentes são combinadas em uma indicação de transmissão composta.
A Figura 8A apresenta uma listagem de códigos fonte para um conjunto de instruções que podem ser executadas para realizar uma implementação do método M100.
A Figura 8B apresenta uma listagem de códigos fonte para um conjunto de instruções que podem ser executados para realizar uma outra implementação do método M100.
A Figura 9 apresenta um fluxograma de um método que compreende uma combinação do método MlOl com um método de encodificação de fala. A Figura 10 apresenta um diagrama de blocos de um equipamento que compreende uma combinação do equipamento AlOl com um encodificador de fala.
A Figura IlA apresenta um implementação M200 do método MlOO.
A Figura IlB apresenta um implementação A200 do equipamento AlOO.
A Figura 12A apresenta um implementação M100 do método MlOl. A Figura 12B apresenta um
implementação M210 do método M200.
A Figura 12C apresenta um implementação M120 do método MlOl.
A Figura 12D apresenta um implementação M220 do método M200.
As Figuras 13A e 13B apresentam exemplos de um contorno de inclinação espectral uniformizado com e sem a aplicação de um hangover, respectivamente.
A Figura 14 apresenta uma listagem de códigos fonte para um conjunto de instruções que podem ser executadas para realizar outra implementação do método MlOO.
A Figura 15 apresenta um diagrama de blocos de um exemplo de um circuito lógico de hangover. A Figura 16A apresenta um diagrama de blocos de
uma implementação 134 do uniformizador 132.
A Figura 16B apresenta um diagrama de blocos de uma implementação 136 do uniformizador 132.
A Figura 17A apresenta um diagrama de blocos de um exemplo 62 de um gerador de sinais de controle 60 configurado para gerar um sinal de controle de atualização com base em um ganho de predição.
A Figura 17B apresenta um diagrama de blocos de um exemplo 64 de um gerador de sinais de controle 62 configurado para aplicar um hangover.
fluxograma de uma
fluxograma de uma
fluxograma de uma
fluxograma de uma
fluxograma de uma
fluxograma de uma β/55 A Figura 18 apresenta um diagrama de blocos de uma implementação 66 do gerador de sinais de controle 64 que também inclui um circuito lógico de hangover 52.
A Figura 19A apresenta um diagrama de blocos de um exemplo 72 de um circuito de controle de indicação de transmissão 70.
A Figura 19B apresenta um diagrama de blocos de uma implementação 156 do comparador 152.
A Figura 20 apresenta um diagrama de blocos de um exemplo 82 de um circuito de controle 80 configurado para gerar um sinal de controle de atualização e para processar por porta (gate) uma indicação de transmissão SID.
A Figura 21 apresenta uma listagem de códigos fonte para um conjunto de instruções que podem ser executadas para realizar uma outra implementação do método MlOO.
DESCRIÇÃO DETALHADA
As configurações aqui descritas incluem sistemas, métodos e equipamentos para detecção de uma mudança em um sinal de fala. Como exemplo, são descritas configurações para detecção de uma mudança durante um período inativo do sinal e, com base em tal detecção, iniciar uma atualização para uma descrição do sinal. Tais configurações se destinam tipicamente ao uso em redes comutadas por pacotes (por exemplo, redes cabeadas e/ou sem fio dispostas para portar transmissões de voz de acordo com protocolos tais como Voz sobre Protocolo Internet (VoIP), apesar de o uso em redes comutadas por circuito ser também expressamente contemplado e aqui descrito.
A não ser por uma limitação expressa por seu
contexto, o termo "calcular" e suas derivações é aqui utilizado para indicar quaisquer de seus significados normais, tais como computar, avaliar, uniformizar e selecionar a partir de uma pluralidade de valores. Quando o termo "compreender" é usado na presente descrição e nas reivindicações, ele não exclui outros elementos ou operações. A expressão "A está baseado em B" é usada para indicar quaisquer de seus siqnificados normais, incluindo os casos (i) "A está baseado em pelo menos B" e (ii) "A é igual a B" (se apropriado no contexto em questão).
Um encodif icador que realiza DTX pode ser configurado para descartar (ou "apagar" (blank)) a maioria dos quadros inativos de acordo com um esquema de apagamento. Um exemplo de um esquema de apagamento emite atualizações para a descrição de silêncio em intervalos regulares (por exemplo, uma vez a cada 16° ou 32° quadro inativo consecutivo). Outros esquemas de apagamento (também designados como esquemas de "apagamento inteligente") são configurados para emitir atualizações para a descrição de silêncio ao detectar flutuações de energia e/ou características espectrais que possam indicar mudanças no ruído de fundo.
Um esquema de apagamento que se baseia apenas em flutuações de energia pode algumas vezes falhar na detecção de mudanças perceptivamente significativas no ruído de fundo. Em alguns casos, os quadros inativos que são perceptivamente diferentes possuirão características de energia similares (tipicamente encodifiçadas como valores de ganho). Apesar de o ruído de fundo em uma rua ("ruído de rua") poder possuir uma distribuição de energia ao longo do tempo que é similar àquela do ruído de fundo em um local com muitas pessoas ("ruído de falatório"), por exemplo, estes dois tipos de ruído serão normalmente percebidos de forma muito diferente. Um esquema de apagamento que falhe em distinguir entre tipos perceptivamente diferentes de ruídos pode produzir artefatos audíveis no decodificador. Dado que os quadros ativos incluem também o ruído de fundo, por exemplo, uma descontinuidade audível pode ocorrer quando o decodificador se comuta de um quadro ativo decodificado para o ruído de conforto que é gerado a partir de um SID inapropriado.
É desejável que um esquema de apagamento detecte mudanças no ruído de fundo que possam ser perceptivamente significativas. Como exemplo, pode ser desejável que um esquema de apagamento detecte uma mudança súbita em uma ou mais características espectrais do ruído de fundo (por exemplo, inclinação (tilt) espectral). Um método ou equipamento tal como aqui descrito pode ser usado para implementar tal esquema de apagamento. Alternativamente, um método ou equipamento tal como aqui descrito pode ser usado para suplementar outro esquema de apagamento. Como exemplo, um encodificador de fala ou um método de encodificação de fala pode combinar um método ou equipamento tal como aqui descrito com um esquema de apagamento conforme descrito na publicação de Pedido de Patente U.S. N2 de Série 2006/0 171 419 (Spindola et al., publicada em 3 de agosto de 2006), ou com outro esquema de apagamento que esteja configurado para detectar uma mudança na energia de quadro e/ou uma mudança em uma característica espectral do sinal de fala, tal como uma diferença entre vetores de pares de linha espectral.
A Figura IA apresenta um fluxograma de um método M100 de acordo com uma configuração geral. Com base em uma pluralidade de quadros inativos de um sinal de fala, a tarefa T200 gera uma seqüência de valores de inclinação espectral. A tarefa T400 calcula uma mudança dentro da seqüência de valores de inclinação espectral (por exemplo, uma mudança entre pelo menos dois valores da seqüência). Para um quadro inativo do sinal de fala, a tarefa T500 decide se se transmite uma descrição para o quadro, em que a decisão se baseia na mudança calculada. Como exemplo, a decisão de se transmitir uma descrição pode se basear em uma relação entre (a) uma magnitude da mudança calculada e (b) um valor limite. Em uma implementação típica do método MlOO, cada um dentre a seqüência de valores de inclinação espectral está baseado em uma inclinação espectral de um quadro inativo correspondente. A inclinação espectral de um quadro de um sinal de fala constitui um valor que descreve uma distribuição da energia dentro do quadro através de uma faixa de freqüências. Tipicamente, a inclinação espectral indica uma inclinação do espectro do sinal através do quadro correspondente e pode ser positiva ou negativa. O ato de gerar o próximo valor da seqüência de valores de inclinação espectral é também designado como "atualização" da seqüência.
Os valores da seqüência de valores de inclinação espectral são usualmente dispostos para serem seqüenciais no tempo, de tal forma que valores sucessivos da seqüência correspondam a segmentos do sinal que são sucessivos no tempo. Uma seqüência de valores de inclinação espectral disposta desta forma pode ser dita como representando um contorno que descreve mudanças na inclinação do espectro de energia do sinal de fala ao longo do tempo (isto é, um contorno de inclinação espectral).
A tarefa T200 pode ser implementada para a geração da seqüência de valores de inclinação espectral em qualquer de diversas maneiras. Como exemplo, a tarefa T200 pode ser configurada para recepção de tal seqüência a partir de um arranjo ou elemento de armazenamento (por exemplo, um arranjo ou unidade de memória de semicondutor), a partir de outra tarefa de um processo maior, tal como um método de encodificação de fala, ou a partir de um elemento de um equipamento tal como um encodif icador de fala. Alternativamente, a tarefa T200 pode ser configurada para calcular tal seqüência conforme aqui descrito.
A tarefa T200 pode ser configurada para emitir a seqüência recebida ou calculada (aqui também denotada como x) como a seqüência gerada de valores de inclinação espectral. Alternativamente, a tarefa T200 pode ser configurada para gerar uma seqüência de valores de inclinação espectral y pela realização de uma ou mais outras operações sobre tal seqüência x. Estas outras operações podem incluir selecionar outra seqüência dentre os valores da seqüência x, por exemplo selecionar cada n- ésimo valor, em que η é um número inteiro maior do que um e/ou selecionar apenas aqueles valores que correspondam a quadros inativos. Estas outras operações podem também incluir uniformizar a seqüência recebida, calculada, ou selecionada, tal como aqui descrito.
A duração de cada segmento no tempo (também designado como "segmento" ou "quadro") do sinal de fala é tipicamente selecionada de modo a ser curta o suficiente para que o envelope espectral do sinal possa permanecer relativamente estacionário. Como exemplo, um comprimento de quadro típico é de vinte milissegundos, o que corresponde a 160 amostras, a uma taxa de amostragem de oito kHz, apesar de poderem ser usados quaisquer comprimentos de quadro ou taxas de amostragem considerados adequados para a aplicação especifica. Em algumas aplicações, os quadros não se sobrepõem, enquanto em outras aplicações é usado um esquema de quadros com sobreposição. Como exemplo, é comum que um codificador de fala utilize um esquema de quadros com sobreposição no encodificador e um esquema de quadros sem sobreposição no decodificador.
Em uma aplicação típica, um arranjo de portas lógicas é configurado para realizar uma, mais de uma, ou mesmo a totalidade das várias tarefas do método M100. Como 3 0 exemplo, tais tarefas podem ser implementadas na forma de código executável por máquina a ser executado por um arranjo programável, tal como um processador. As tarefas do método M100 podem também ser realizadas por mais de um de tais arranjos. Nestas ou outras implementações, as tarefas podem ser realizadas em um dispositivo para comunicação sem fio, tal como um telefone celular ou outro dispositivo possuindo tal capacidade de comunicação. Tal dispositivo pode ser configurado para se comunicar com redes comutadas por circuito e/ou comutadas por pacotes (por exemplo, usando um ou mais protocolos tais como o VoIP) . Como exemplo, tal dispositivo pode incluir conjunto de circuitos de RF configurados para transmitir quadros ativos encodifiçados e SIDs. 0 método MlOO pode também ser implementado na forma de código legível por máquina incorporado em um produto de programa de computador (por exemplo, um ou mais meios para armazenamento de dados, tais como discos, memória flash ou outras placas de memória não volátil, chips de memória de semicondutores, etc.).
Em uma aplicação típica do método M100, a tarefa T400 iterage sobre a seqüência de valores de inclinação espectral gerada pela tarefa T200 para calcular uma série de mudanças com base em pares sucessivos dos valores de inclinação espectral, e a tarefa T500 iterage sobre a série de mudanças para realizar uma série de decisões de transmissão. De um modo geral, a tarefa T200 é executada na forma de um processo progressivo e as tarefas T400 e T500 iteragem em série ou em paralelo, de tal forma a que sejam gerados um valor de inclinação espectral e uma mudança calculada e indicação de transmissão correspondentes para cada quadro inativo do sinal de fala (por exemplo, possivelmente após um período de inicialização de um ou mais quadros inativos). É também possível a implementação do método MlOO de tal forma que a tarefa T200 gere um valor de inclinação espectral menos freqüentemente do que cada 3 0 quadro inativo (por exemplo, para cada segundo ou terceiro quadro) de tal forma que a tarefa T400 seja realizada tão freqüentemente, ou menos freqüentemente, quanto a tarefa T400 (por exemplo, para cada segunda ou terceira iteração da tarefa T400). A Figura IB apresenta um diagrama de blocos de um equipamento Δ100 de acordo com uma configuração geral. O gerador de seqüência 120 é configurado para gerar uma seqüência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos de um sinal de fala. Como exemplo, o gerador de seqüência 120 pode ser configurado para realizar uma implementação da tarefa T200 tal como aqui descrita. 0 calculador 140 é configurado para calcular uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral. Como exemplo, o calculador 140 pode ser configurado para realizar uma implementação da tarefa T400 tal como aqui descrita. O comparador 150 é configurado para decidir se se transmite uma descrição para um segmento inativo do sinal de fala, em que a decisão é baseada na mudança calculada (por exemplo, em uma relação entre (a) uma magnitude da mudança calculada e (b) um valor limite). Como exemplo, o comparador 150 pode ser configurado para realizar uma implementação da tarefa T500 conforme aqui descrita. Em uma aplicação tipica, uma implementação do equipamento A100 é disposta para processar uma seqüência de valores de inclinação espectral e produzir uma série de decisões de transmissão com base na seqüência.
Os vários elementos do equipamento A100 podem ser implementados em qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação pretendida. Como exemplo, quaisquer de tais elementos podem ser implementados como um ou mais arranjos de portas lógicas. Quaisquer dois ou mais, ou mesmo a totalidade, de tais elementos podem ser implementados dentro do mesmo arranjo ou arranjos. Tal arranjo ou arranjos pode ser implementado dentro de um ou mais chips (por exemplo, em um conjunto de chips (chipset) incluindo dois ou mais chips). Quaisquer dos vários elementos do equipamento A100 podem também ser implementados na forma de um ou mais computadores (por exemplo, arranjos programados para execução de um ou mais conjuntos ou seqüências de instruções, também designados como "processadores") e quaisquer dois ou mais, ou mesmo a totalidade, de tais elementos podem ser implementados no mesmo computador ou em computadores. Os vários elementos do equipamento AlOO podem ser incluídos em um dispositivo para comunicação sem fio, tal como um telefone celular ou outro dispositivo possuindo tal capacidade de comunicação. Tal dispositivo pode ser configurado para se comunicar com redes comutadas por circuito e/ou comutadas por pacotes (por exemplo, usando um ou mais protocolo tais como o VoIP) . Como exemplo, tal dispositivo pode incluir um encodificador de fala configurado para transmitir SIDs de acordo com os resultados das correspondentes decisões de transmissão e/ou conjunto de circuitos de RF configurados para transmitir quadros ativos encodifiçados e SIDs.
Um exemplo de um parâmetro cujo valor pode ser usado para indicar a inclinação espectral de um quadro consiste do primeiro coeficiente de reflexão k0 e outros de tais parâmetros serão descritos mais adiante. A tarefa T200 pode ser disposta para receber uma seqüência de valores de inclinação espectral provenientes de outra tarefa de um procedimento maior, tal como um método para encodificação de fala. Alternativamente, a tarefa T200 pode ser implementada para incluir uma tarefa T210 que é configurada para calcular tais valores conforme descrito mais adiante. De forma similar, o gerador de seqüência 120 pode ser disposto para receber uma seqüência de valores de inclinação espectral provenientes de outro elemento de um equipamento maior, tal como um encodificador de fala ou um dispositivo de comunicação. Alternativamente, o gerador de seqüência 120 pode ser implementado de modo a incluir um calculador 128 que é configurado para calcular tais valores conforme descrito mais adiante. A tarefa T200 pode ser implementada para incluir uma tarefa T300 que uniformiza uma seqüência de valores de inclinação espectral. Uma implementação típica da tarefa T300 é configurada para filtrar uma seqüência de valores de inclinação espectral de acordo com um modelo auto- regressivo, tal como um filtro de resposta a impulso infinita (IIR). Um exemplo específico da tarefa T300 realiza a operação de filtragem IIR de primeira ordem a seguir para calcular cada valor da seqüência uniformizada y na forma de uma média ponderada de um valor atual de uma seqüência de entrada de valores de inclinação espectral χ e um valor anterior da seqüência uniformizada y:
y\n\= ax[w] + (l-a)y[«-l], (1)
em que η denota um índice seqüencial. Dependendo do grau desejado de uniformização, o fator de ganho a pode apresentar qualquer valor de 0 a 1. De um modo geral, o fator de ganho a possui um valor não maior do que 0,6. Como exemplo, o fator de ganho a pode apresentar um valor em uma faixa de 0,1 (ou de 0,15) a 0,4 (ou a 0,5). Em um exemplo específico, a seqüência χ consiste de uma série de valores do primeiro coeficiente de reflexão k0 e o fator de ganho a possui o valor de 0,2. A Figura IC apresenta um fluxograma de uma implementação MlOl do método M100 em que a tarefa T200 é implementada como a tarefa T300. A Figura ID apresenta um diagrama de blocos de uma implementação AlOl do equipamento A100 em que o gerador de seqüência 120 é implementado como um uniformizador 130 que é configurado para realizar uma implementação da tarefa T300.
A Figura 2 apresenta um diagrama de blocos de uma implementação 132 do uniformizador 130. O uniformizador 132 inclui um primeiro multiplicador disposto para aplicar um fator de ganho GlO ao valor atual x\n\ da seqüência de entrada de valores de inclinação espectral; um segundo multiplicador disposto para aplicar um fator de ganho G20 ao valor anterior >{«-l] da seqüência uniformizada de valores de inclinação espectral, tal como obtida a partir do elemento de retardo D; e um somador disposto para emitir y\n\ como a soma dos dois produtos. Pode ser desejável (por exemplo, para estabilidade) que o fator de ganho GlO possua um valor a tal como acima descrito com referência à tarefa T300, e que o fator de ganho G20 possua o valor (l-tf). Em um exemplo especifico, a seqüência χ consiste de uma série de valores do primeiro coeficiente de reflexão k0, o fator de ganho GlO possui o valor 0,2 e o fator de ganho G20 possui o valor 0,8. Como foi acima mencionado, o uniformizador 132 pode ser implementado por meio de qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação pretendida. Alternativa ou adicionalmente, a tarefa T300 pode
ser configurada para calcular um valor da seqüência uniformizada de valores de inclinação espectral y efetuando-se uma ou mais outras operações de cálculo de média, integração e/ou filtragem em passagem baixa sobre a seqüência de valores de inclinação espectral χ (ou o resultado da realização de uma operação de uniformização sobre a seqüência x) . Em uma implementação alternativa do método MlOO, por exemplo, a tarefa T300 é configurada para filtrar a seqüência χ de acordo com um modelo de média móvel, tal como um filtro de resposta a impulso finita (FIR) . Em uma outra implementação alternativa do método M100, a tarefa T300 é configurada para filtrar a seqüência χ de acordo com um modelo de média móvel auto-regressiva (ARMA). De forma similar, o uniformizador 130 pode ser 3 0 implementado na forma de um integrador ou outro filtro de passagem baixa (tal como um filtro FIR ou ARMA) configurado para produzir um valor uniformizado com base em dois ou mais valores de entrada. O método MlOO é tipicamente implementado de forma que cada valor da seqüência de valores de inclinação espectral χ que é uniformizado na tarefa T300 corresponda a um dentre uma pluralidade de quadros sucessivos do sinal de fala. De forma similar, o equipamento AlOO é tipicamente implementado de tal forma que cada valor da seqüência χ que é uniformizado pelo uniformizador 130 corresponda a um dentre uma pluralidade de quadros sucessivos do sinal de fala. Deve ser notado que tais quadros sucessivos não necessitam ser consecutivos, conforme descrito em maiores detalhes mais adiante.
Um sinal de fala irá conter tipicamente quadros ativos e quadros inativos. No entanto, a distribuição de energia durante um quadro ativo será provavelmente devida principalmente a fatores que não o ruido de fundo, de forma que os valores de distribuição de energia dos quadros ativos provavelmente não proverão informações confiáveis sobre mudanças no ruido de fundo. Portanto, pode ser desejável que a seqüência de valores de inclinação espectral χ inclua apenas valores que correspondam a quadros inativos. Em tal caso, os valores da seqüência χ podem corresponder a quadros (inativos) sucessivos que não são consecutivos no sinal de fala.
Para ilustrar tal principio, a Figura 3 apresenta um exemplo em que cada circulo representa um dentre uma série de quadros consecutivos de um sinal de fala ao longo do tempo. Os círculos que representam quadros inativos estão, cada um, marcados com o número de índice do valor correspondente na seqüência de valores de inclinação espectral x. Em tal exemplo, os valores 74 e 75 são consecutivos na seqüência. Apesar de os quadros inativos que correspondem aos valores 74 e 75 serem sucessivos no sinal de fala, eles estão separados por um bloco de quadros ativos e, portanto, não são consecutivos um ao outro. O método MlOO pode ser configurado de tal forma que a tarefa T300 receba apenas valores de inclinação espectral da seqüência χ que correspondam a quadros inativos. Alternativamente, a tarefa T300 pode ser implementada para selecionar, dentre uma seqüência de valores de inclinação espectral correspondentes a quadros consecutivos, apenas aqueles valores que correspondam a quadros inativos. Como exemplo, tal implementação da tarefa T300 pode ser configurada para selecionar valores de inclinação espectral correspondentes a quadros inativos (e/ou rejeitar valores correspondentes a quadros ativos) com base em uma indicação de atividade de voz recebida proveniente de um encodificador de fala, um método de encodificação de fala, ou uma tarefa de detecção de atividade de voz T100 conforme descrito mais adiante.
De forma similar, o equipamento A100 pode ser disposto de tal forma que o uniformizador 130 receba apenas valores de inclinação espectral da seqüência χ que correspondam a quadros inativos. Alternativamente, o uniformizador 130 pode ser implementado para selecionar, dentre uma seqüência de valores de inclinação espectral correspondentes a quadros consecutivos, apenas aqueles valores que correspondam a quadros inativos. Como exemplo, tal implementação do unif ormizador 130 pode estar configurada para selecionar valores de inclinação espectral correspondentes a quadros inativos (e/ou rejeitar valores correspondentes a quadros ativos) com base em uma indicação de atividade de voz recebida de um encodif icador de fala, um método de encodificação de fala, ou um detector de atividade de voz 110, conforme descrito mais adiante.
A tarefa T400 calcula uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral gerada pela tarefa T200. Como exemplo, a tarefa T400 pode ser configurada para calcular uma diferença (também designada como um "delta") entre valores consecutivos da seqüência uniformizada y de acordo com uma expressão tal como a seguinte:
z[n] = y[n]-by[n-\], (2)
onde ζ denota a saida e b denota um fator de ganho. A Figura 4 apresenta uma implementação 142 do calculador 140 que pode ser usada para realizar um caso particular de tal exemplo da tarefa T400, em que b é igual a um (isto é, de acordo com a operação de filtragem em passagem alta FIR de primeira ordem z[«] = y\n\- by[n -1]) . Outras implementações do calculador 140 e/ou tarefa T400 podem ser configuradas para aplicação de tal operação de filtragem usando um valor diferente de b. Como exemplo, o valor de b pode ser selecionado de acordo com uma resposta em freqüência desejada. Para um caso em que a tarefa T200 é configurada para gerar uma seqüência x, tal implementação da tarefa T400 ou do calculador 142 pode estar disposta para calcular uma diferença de acordo com uma expressão tal como z\n\ = x[ft]-x[«-l]. Como foi acima mencionado, o calculador 142 pode ser implementado em qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação pretendida.
Alternativa ou adicionalmente, a tarefa T400 pode ser configurada para realizar uma ou mais outras operações de diferenciação sobre a seqüência gerada de valores de inclinação espectral, tais como uma operação de filtragem de passagem alta diferente (por exemplo, a aplicação de um filtro de passagem alta IIR de primeira ordem à seqüência gerada) , ou de outra forma calcular uma distância ou outra mudança entre valores da seqüência gerada. De forma similar, o calculador 14 0 pode ser implementado como um diferenciador, um calculador de diferença, ou outro filtro de passagem alta IIR ou FIR configurado para calcular uma diferença ou outra distância ou mudança entre dois ou mais valores de entrada. A mudança calculada pela tarefa T400 pode ser usada para indicar uma taxa de mudança da seqüência gerada de valores de inclinação espectral. Como exemplo, a magnitude de z[«] como acima descrito pode ser usada para indicar o quanto o contorno da inclinação espectral do ruido de fundo mudou de um quadro inativo para o próximo. A tarefa T400 está tipicamente disposta para calcular iterativamente uma série de distâncias cujas magnitudes representam uma taxa de mudança do contorno uniformizado nos respectivos períodos de quadros.
A tarefa T500 decide se se transmite uma descrição para um segmento inativo do sinal de fala, em que a decisão é baseada em uma mudança correspondente calculada pela tarefa T400. Como exemplo, a tarefa T500 pode ser configurada para decidir se se transmite uma descrição por comparação de uma magnitude da mudança calculada com um valor limite T. Tal implementação da tarefa T500 pode ser configurada para ajustar um flag binário de acordo com o resultado de tal comparação:
r, íi, IzM > t\
p[n] = \ 'ILJIf (3)
[0, caso contrário
em que o valor do indicador (flag) p\n\ indica o resultado da decisão de transmissão. Neste caso, um valor de p\n\ de um ou TRUE lógico constitui uma indicação de transmissão (isto é, uma indicação de transmissão possuindo um estado positivo, uma indicação de habilitar transmissão, uma indicação de uma decisão de transmitir), indicando que uma atualização para a descrição de silêncio deve ser transmitida para o quadro atual; e um valor p\n\ de zero ou FALSE lógico constitui uma indicação de transmissão negativa (isto é, uma indicação de transmissão possuindo um estado negativo, uma indicação de desabilitar a transmissão, uma indicação de uma decisão de não transmitir), indicando que nenhuma atualização para a descrição de silêncio deve ser transmitida para o quadro atual. Como exemplo, o limite T possui um valor de 0,2. Um valor limite mais baixo pode ser usado para prover maior sensibilidade a variações na seqüência gerada de valores de inclinação espectral, enquanto um valor limite mais alto pode ser usado para propiciar maior rejeição de transientes na seqüência gerada de valores de inclinação espectral.
Os técnicos na área notarão que em uma modalidade alternativa do método M100, a tarefa T400 pode ser configurada para calcular a mudança como uma magnitude de acordo com uma expressão tal como a que se segue:
Φ] = H"]- by[n-1] ,
e que a tarefa T500 pode ser configurada para ajustar um indicador binário de acordo com o resultado de uma comparação tal como a que se segue:
p[n]4· Á"]>T ■
[0, caso contrário
0 método MlOO pode também ser implementado para incluir uma variação diferente da tarefa T500, tal como uma 2 0 implementação que compara um valor limite com uma magnitude média de duas ou mais dentre as mudanças calculadas (por exemplo, uma magnitude média das mudanças calculadas para os quadros atual e anterior).
A Figura 5 apresenta um diagrama de blocos de uma implementação 152 do comparador 150 que pode ser usada para realizar uma implementação da tarefa T500. Em tal exemplo, o comparador 152 é configurado para realizar a decisão de transmissão através do cálculo da magnitude da mudança calculada e comparação da magnitude com um valor limite TIO. Em um exemplo especifico, o limite TlO possui um valor de 0,2. A Figura 6 apresenta um diagrama de blocos de uma outra implementação 154 do comparador 150 que pode ser usada para realizar uma implementação da tarefa T500. Em tal exemplo, o comparador 154 é configurado para comparar um valor sinalizado da mudança calculada com valores limite positivo e negativo TlO e T20, respectivamente, e para emitir uma indicação de transmissão positiva caso a mudança calculada seja maior que (alternativamente, não menor que) o valor limite TIO, ou menor que (alternativamente, não maior que) o valor limite T20. Como exemplo, o valor limite T20 possui um valor que é o negativo do valor limite TIO, de tal forma que os comparadores 152 e 154 sejam configurados para produzir o mesmo resultado. No entanto, o comparador 154 pode também ser implementado de tal forma que o valor limite T20 possua uma magnitude diferente do valor limite TlO caso desejado.
Outra implementação do comparador 150 está disposta para receber a mudança calculada proveniente do calculador 140 como uma magnitude e para comparar tal magnitude com o limite TIO. Como foi acima mencionado, tais implementações do comparador 150 (isto é, incluindo os comparadores 152 e 154) podem ser implementadas em qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação pretendida. A Figura 7A apresenta um diagrama de blocos de uma implementação A102 do equipamento A100 que é configurado para realizar várias operações tal como acima descrito no sinal de entrada x[«] para produzir uma indicação de transmissão
correspondente.
A Figura 8A apresenta um exemplo de uma listagem de códigos fonte para um conjunto de instruções que podem ser executadas por um arranjo programável de elementos lógicos ou outra máquina de estado (por exemplo, um computador ou processador) para realizar uma implementação do método MlOl que inclui implementações das tarefas T300, T400 e T500. Neste exemplo, a variável k0 contém o valor de inclinação espectral x[n] para o quadro atual, a variável y current contém inicialmente o valor mais recente da seqüência uniformizada de valores de inclinação espectral y e o indicador ρ contém o estado da indicação de transmissão. A parte 1 realiza a tarefa T300 através do cálculo de um valor atual da seqüência uniformizada y de acordo com a expressão (1) acima, usando um valor de 0,2 para o fator de ganho a. A parte 2 realiza a tarefa T400 através do cálculo de uma mudança entre os valores atual e mais recente da seqüência uniformizada y de acordo com a expressão (2) acima, usando um valor de um para o fator de ganho b. A parte 3 realiza a tarefa T500 ajustando o indicador ρ de acordo com o resultado de uma comparação entre a mudança calculada e um valor limite, usando um valor limite de 0,2. Em uma aplicação típica, o conjunto de instruções é executado iterativamente (por exemplo, para cada quadro inativo) de tal forma que o valor inicial da variável y_current para cada iteração seja o valor final da variável y_current conforme calculada durante a prévia iteração.
Como foi acima descrito, a tarefa T300 pode ser
configurada para calcular um valor atual da seqüência uniformizada de valores de inclinação espectral y com base em um ou mais valores anteriores de uma seqüência de valores de inclinação espectral χ e/ou um ou mais valores anteriores da seqüência uniformizada y. No entanto, para um valor inicial da seqüência uniformizada y, pode não existir um valor anterior da seqüência χ e/ou da seqüência uniformizada y. Caso a tarefa T300 calcule um valor da seqüência uniformizada y usando um valor arbitrário ou um valor de zero em lugar de um valor anterior, o resultado pode levar a tarefa T4 00 a emitir uma mudança calculada que é inapropriadamente elevada, o que, por sua vez, leva a tarefa T500 a emitir uma indicação de transmissão positiva, mesmo em um caso onde o contorno de inclinação espectral é na realidade constante.
Pode ser desejável inicializar uma ou mais variáveis (por exemplo, localizações de armazenamento de dados) que são configuradas para conter valores anteriores da seqüência χ e/ou da seqüência uniformizada y. Tal inicialização pode ser realizada antes que a tarefa T300 seja primeiramente executada e/ou pode ser realizada dentro da tarefa T300. Como exemplo, uma ou mais dentre tais variáveis podem ser inicializadas com o valor atual da seqüência x. Em um exemplo especifico, uma variável configurada para armazenar o valor anterior da seqüência uniformizada (>{«-l], na expressão (1) acima) é inicializada com o valor atual da seqüência de entrada (x\n\ na expressão (1) acima) . Para um exemplo diferente, em que a tarefa T400 está disposta para calcular uma mudança com base nos valores e x[«-l], uma variável configurada
para armazenar o valor anterior da seqüência de entrada je[«-l] é inicializada com o valor atual da seqüência de entrada x[n]. Alternativa ou adicionalmente, o método MlOO pode ser configurado para evitar a emissão de indicações de transmissão positivas para os primeiros poucos quadros inativos (por exemplo, forçando a tarefa T500 a emitir indicações de transmissão possuindo estados negativos para tais quadros) . Em tal caso, a tarefa T200 (possivelmente incluindo a tarefa T300) pode ser configurada para usar um valor inicial arbitrário ou de zero para cada dentre um ou mais valores anteriores em lugar de inicializar tais variáveis conforme aqui descrito. 3 0 A Figura 8B apresenta outro exemplo de uma
listagem de códigos fonte para um conjunto de instruções que podem ser executadas por um arranjo programável de elementos lógicos ou outra máquina de estado (por exemplo, um processador) para realizar uma implementação do método MlOl que inclui uma implementação T310 da tarefa T300, bem como implementações das tarefas T400 e T500. Em tal exemplo, a tarefa T310 inclui uma operação de inicialização que usa uma variável Y_VALID para indicar se o conjunto de instruções foi invocado anteriormente e, portanto, se o valor armazenado na variável y_current é válido. Em tal caso, a rotina de invocação (por exemplo, um procedimento maior, tal como um método de encodificação de fala) , seria configurada para inicializar o valor de Y_VALID como FALSE antes de invocar o conjunto de instruções. Caso o conjunto de instruções determine que o valor de Y_VALID é FALSE (isto é, caso o conjunto de instruções esteja sendo executado pela primeira vez), então a variável y_current é inicializada no valor atual da variável k0.
Uma descrição de silêncio (SID) inclui tipicamente uma descrição de um envelope espectral de um quadro e/ou uma descrição de um envelope de energia de um quadro. Tais descrições podem ser derivadas a partir do quadro inativo atual e/ou a partir de um ou mais quadros inativos prévios. Um SID pode também ser designado por outros nomes, tais como "atualização para a descrição de silêncio", "descritor de silêncio", "descritor de inserção de silêncio", "quadro descritor de ruido de conforto" e "parâmetros de ruido de conforto". No exemplo especifico de um Codec de taxa variável Melhorado (EVRC - Enhanced Variable Rate C0DEC), conforme descrito no documento 3GPP2 C.S0014-C versão 1.0, "ENHANCED VARIABLE RATE CODEC, SPEECH SERVICE OPTIONS 3, 68 & 70 FOR WIDEBAND SPREAD SPECTRUM DIGITAL SYSTEMS", os SIDs são encodifiçados em um oitavo de taxa (dezesseis bits por quadro) usando um modo de codificação por predição linear excitada por ruido (NELP), enquanto os quadros ativos são encodifiçados na taxa total (171 bits por quadro), meia taxa (80 bits por quadro), ou um quarto de taxa (40 bits por quadro) usando-se modo de codificação por predição linear excitada por código (CELP), período de pitch protótipo (PPP) ou NELP.
Uma descrição de envelope espectral geralmente inclui um conjunto de parâmetros de codificação, tais como coeficientes de filtro, coeficientes de reflexão, freqüências de linha espectrais (LSF), pares de linha espectrais (LSP), freqüências espectrais de imitância (ISF), pares espectrais de imitância (ISP) , coeficientes cepstrais, ou razões de log-área. 0 conjunto de parâmetros de codificação, que podem ser dispostos como um ou mais vetores, é tipicamente quantizado como um ou mais índices em tabelas de consulta ou livros-código correspondentes.
Os comprimentos típicos de uma descrição de envelope espectral dentro de um SID atualmente variam de oito a 28 bits. No exemplo específico de um EVRC conforme descrito na 3GPP2 C.S0014-C versão 1.0 acima mencionada, cada SID de dezesseis bits inclui um índice de quatro bits LSPIDX1 em um livro código para informações de baixa freqüência do envelope espectral e um índice de quatro bits LSPIDX2 em um livro código para informações de alta freqüência do envelope espectral. No exemplo específico do CODEC de fala MultiTaxa Adaptativo (AMR), conforme descrito no documento ETSI TS 126 092 V6.0.0 (European Telecommunications Standards Institute - ETSI - Sophia Antipolis Cedex, FR, de dezembro de 2004), cada SID de 35 bits inclui um índice com comprimento de oito ou nove bits para cada um de três sub-vetores LSF. No exemplo específico do CODEC de fala AMR de banda larga, conforme descrito no documento ETSI TS 126 192 V6.0.0 (ETSI, de dezembro de 2004), cada SID de 35 bits inclui um índice com comprimento de cinco ou seis bits para cada um de cinco sub-vetores ISF.
Uma descrição de envelope de energia pode incluir um valor de ganho a ser aplicado ao quadro (também designado como um "quadro de ganho"). Alternativa ou adicionalmente, uma descrição de envelope de energia pode incluir valores de ganho a serem aplicados a cada um dentre vários sub-quadros do quadro (coletivamente designados como um "perfil de ganho"). Tipicamente, o quadro de ganho e/ou o perfil de ganho são quantizados como um ou mais Índices para livros código correspondentes, apesar de que, em alguns casos, poder ser usado um algoritmo para quantizar e/ou dequantizar o quadro de ganho e/ou perfil de ganho sem a utilização de um livro código. Os comprimentos típicos de uma descrição de envelope de energia dentro de um SID atualmente variam de cinco a oito bits. No exemplo específico de um EVRC conforme descrito na 3GPP2 C.S0014-C versão 1.0 acima mencionada, cada SID de dezesseis bits inclui um índice de energia de oito bits FGIDX. Nos exemplos específicos do codec de fala AMR conforme descrito na ETSI TS 126 092 V6.0.0 acima mencionada e do codec de fala AMR de banda larga conforme descrito na ETSI TS 126 192 V6.0.0 acima mencionada, cada SID de 35 bits inclui um índice de energia de seis bits. 0 método M100 ou o equipamento A100 podem ser
usados como um esquema de apagamento para suportar DTX. Como exemplo, um procedimento incluindo o método MlOO ou um dispositivo incluindo o equipamento A100 pode ser configurado para realizar a transmissão de um SID somente quando o estado da indicação de transmissão produzida pela tarefa T500 for positivo. Outros esquemas de apagamento também podem ser usados para suportar DTX. Um de tais exemplos consiste de um método ou equipamento que emite uma indicação de transmissão SID positiva sempre que o número de quadros inativos consecutivos que ocorreram desde a transmissão SID mais recente alcança (alternativamente, excede) um limite DTX_MAX. Os valores típicos para DTX_MAX incluem 16 e 32. Um outro exemplo de um esquema de apagamento emite uma indicação de transmissão SID positiva sempre que o número de quadros inativos consecutivos que ocorreram desde o quadro ativo mais recente alcança (alternativamente, excede) um limite.
Outros esquemas de apagamento que podem ser usados para suportar DTX incluem esquemas que são configurados para emitir uma indicação de transmissão SID positiva quando da detecção de uma mudança nas descrições de envelope espectral e/ou de energia do sinal de fala. Como exemplo, tal esquema pode ser configurado para emitir uma indicação de transmissão SID positiva, indicando uma decisão para transmitir uma descrição para o quadro inativo atual, ao detectar que uma distância entre as descrições de envelope espectral (por exemplo, os vetores LSF, LSP, ISF, ou ISP) do quadro e do último SID transmitido excede um valor limite (alternativamente, não seja menor do que um valor limite). Pode ser desejável filtrar (por exemplo, uniformizar) as descrições de envelope espectral antes de calcular as distâncias. Uma variação de tal esquema é configurada para emitir uma indicação de transmissão SID positiva caso também seja detectado que uma distância entre as descrições de envelope de energia do quadro inativo atual e o último SID transmitido exceda um valor limite (alternativamente, não seja menor do que um valor limite). Outra variação é configurada para emitir uma indicação de transmissão SID positiva caso ela detecte que qualquer de tais condições é atendida. Outros esquemas de apagamento que podem ser usados incluem esquemas configurados para emitir uma indicação de transmissão SID positiva de acordo com uma comparação entre um valor limite e um valor tal como um valor absoluto médio do quadro ou um valor de energia do quadro (por exemplo, uma soma dos quadrados das amostras), valor este que pode ser filtrado e/ou ponderado.
Outro exemplo de um esquema de apagamento que pode ser usado para suportar DTX, é configurado para emitir uma indicação de transmissão SID positiva ao detectar que a distância Itakura entre o último SID transmitido e o quadro inativo atual excede um valor limite (alternativamente, não seja menor do que um valor limite) . Uma variação de tal esquema é configurada para emitir uma indicação de transmissão SID positiva ao detectar que a distância Itakura entre (a) o último SID transmitido e (b) uma média do quadro inativo atual e do quadro inativo anterior excede um valor limite (alternativamente, não seja menor do que um valor limite). A distância Itakura é uma medida de mudança espectral baseada em valores de energia residuais e de autocorrelação, e uma descrição de tal esquema pode ser encontrada na ITU-T Recommendation G.729, Annex B (International Telecommunication Union, Genebra, CH, de outubro de 1996) .
Uma implementação do método MllO ou do equipamento AlOO pode ser combinada com um ou mais OUTROS esquemas de apagamento, tais como um ou mais daqueles acima descritos. Como exemplo, um equipamento incluindo ou realizando tal implementação pode ser configurado para transmitir um SID caso qualquer de seus esquemas de apagamento emita uma indicação de transmissão SID positiva para tal quadro. A Figura 7B apresenta uma implementação de tal exemplo, em que várias indicações de transmissão diferentes são combinadas em uma indicação de transmissão composta utilizando uma operação lógica OU (OR). Como foi acima mencionado, um SID pode ser
derivado a partir de um ou mais quadros inativos. Como exemplo, pode ser desejável para um dispositivo incluindo o equipamento AlOO, ou um procedimento incluindo o método MlOO, calcular e transmitir um SID que represente uma média de vários quadros inativos encodifiçados em lugar de transmitir o SID como um único quadro inativo encodifiçado. Tal média pode ser calculada usando-se uma operação de filtragem FIR ou IIR e/ou através do uso de um método estatístico, tal como filtragem de mediana, que pode incluir o descarte de valores discrepantes (outliers) ou a substituição de valores discrepantes por um valor médio. Como exemplo, o dispositivo ou procedimento pode ser configurado para calcular o SID por uniformização estatística das descrições de envelope espectral e de energia do quadro atual com aquelas de um ou mais quadros inativos prévios, de forma a que o SID resultante contenha valores de ganho e freqüência que tenham ocorrido mais freqüentemente no passado recente.
0 número de quadros através dos quais é calculada a média pode ser fixo ou pode variar de acordo com, por exemplo, uma medida de imobilidade. Um exemplo de tal medida é uma distância (por exemplo, a distância Itakura) entre médias espectrais tomadas através de dois conjuntos diferentes de quadros. Em um exemplo conforme descrito na G.729 Anexo B acima mencionada, a média é calculada através dos seis quadros anteriores (incluindo o quadro atual) e através dos dois quadros anteriores. Caso a distância entre essas duas médias exceda um valor limite (alternativamente, não seja menor do que um valor limite), então o SID inclui uma descrição espectral calculada em média através de dois quadros (por exemplo, presume-se que o sinal seja não estacionário localmente). Caso contrário, o SID inclui uma descrição espectral calculada em média através de seis quadros (por exemplo, presume-se que o sinal seja localmente estacionário). No exemplo específico do codec AMR de banda larga, conforme descrito na ETSI TS 126 192 V6.0.0 acima mencionada, o SID inclui uma indicação de excitação (dithering) cujo estado é ajustado de acordo com a soma de distâncias espectrais entre o quadro atual e os sete quadros prévios ou de acordo com uma distância entre a energia do quadro atual e um valor médio de energia através de quadros anteriores.
0 método MlOO pode ser implementado de tal forma que a tarefa T200 receba a seqüência de valores de inclinação espectral a partir de outro processo, tal como um processo de encodificação de fala. Como exemplo, um dispositivo ou sistema configurado para executar uma implementação do método MlOO tipicamente será também configurado para realizar um método para encodificação de fala sobre o sinal de fala. Um método para encodificação de fala pode incluir uma análise de codificação de predição linear (LPC), que calcula um conjunto de coeficientes que modelam uma amostra de um sinal de fala no instante t na forma de uma combinação linear de amostras do sinal de fala em momentos anteriores a t. Uma análise LPC realizada por um encodificador de fala de um dispositivo de comunicação (por exemplo, um telefone celular) possui tipicamente uma ordem de quatro, seis, oito, dez, 12, 16, 20, 24, 28, ou 32. Para um caso em que análises LPC separadas são realizadas sobre diferentes bandas de freqüências do sinal de fala, a tarefa T200 pode ser disposta para receber a seqüência de valores de inclinação espectral com base na análise de uma banda de baixas freqüências (por exemplo, incluindo freqüências abaixo de 1 kHz), ou uma banda de freqüências intermediárias (por exemplo, incluindo pelo menos freqüências entre 1 e 2 kHz).
A tarefa T200 pode ser disposta para receber a seqüência de valores de inclinação espectral como uma seqüência de coeficientes de reflexão, tal como uma seqüência de primeiros ou segundos coeficientes de reflexão. A gama de configurações aqui descrita inclui métodos que compreendem uma combinação do método M100 e um método para encodif icação de fala (por exemplo, tal como apresentado na Figura 9) , bem como métodos para encodificação de fala que incluem o método M100.
0 equipamento A100 pode ser implementado de tal forma que o gerador de seqüência 120 receba a seqüência de valores de inclinação espectral proveniente de outros equipamentos, tais como um encodificador de fala. Como exemplo, um dispositivo ou sistema que inclua uma implementação do equipamento AlOO tipicamente irá também incluir um encodif icador de fala, o qual pode ser confiqurado para realizar uma análise LPC sobre o sinal de fala. Em tal caso, o gerador de seqüência 120 pode ser disposto para receber a seqüência de valores de inclinação espectral como uma seqüência de coeficientes de reflexão. A gama de configurações aqui descrita inclui um equipamento que compreende uma combinação do equipamento A100 e um encodificador de fala (por exemplo, tal como apresentado na Figura 10), bem como encodificadores de fala que incluem o equipamento A100.
Alternativamente, a tarefa T200 pode ser implementada para incluir uma tarefa T210 que calcula a seqüência de valores de inclinação espectral com base em uma pluralidade de quadros inativos do sinal de fala. A tarefa T210 pode ser configurada, por exemplo, para avaliar a inclinação espectral do sinal através de cada um dentre uma série de quadros de acordo com um ou mais dentre várias técnicas diferentes, conforme descrito mais adiante. A Figura IlA apresenta um fluxograma de uma implementação M200 do método M100 que inclui tal implementação T202 da tarefa T200. A tarefa T210 pode também ser disposta para prover a seqüência calculada de valores de inclinação espectral para outras tarefas de um processo maior, tal como um método para encodificação de fala. O método M100 pode também ser implementado de tal forma que a tarefa T200 seja implementada como a tarefa T210.
A Figura IlB apresenta um diagrama de blocos de uma implementação A200 do equipamento A100 que inclui uma implementação 122 do gerador de seqüência 120. 0 gerador de seqüência 120 inclui um calculador 128 que é configurado para calcular a seqüência de valores de inclinação espectral com base em uma pluralidade de quadros inativos do sinal de fala. Como exemplo, o calculador 128 pode ser configurado para realizar uma implementação da tarefa T210 tal como aqui descrita. Como os outros elementos do equipamento A200, o calculador 128 pode ser implementado em qualquer combinação de hardware, software e/ou firmware que seja considerada adequada para a aplicação pretendida. 0 calculador 128 pode também ser disposto para prover a seqüência calculada de valores de inclinação espectral para outras tarefas de um equipamento maior, tal como um encodificador de fala. 0 equipamento AlOO pode também ser implementado de tal forma que o gerador de seqüência 120 seja implementado como o calculador 128.
Uma implementação típica da tarefa T210 é configurada para calcular uma inclinação espectral como o primeiro coeficiente de reflexão de um quadro correspondente do sinal de fala. 0 primeiro coeficiente de reflexão de um quadro (tipicamente denotado como ko) pode ser calculado como a razão i?(l)/i?(o) (isto é, o primeiro valor de autocorrelação normalizado do quadro), que possui um valor escalar entre -1 e +1 para valores de amostra na faixa de -1 a +1. Em tal expressão, i?(l) denota o primeiro coeficiente de autocorrelação do quadro (isto é, o valor da função de autocorrelação para o quadro em um atraso (Iag) de uma amostra) e i?(0) denota o 0o coeficiente de autocorrelação do quadro (isto é, o valor da função de autocorrelação para o quadro com um atraso de zero). Em outras implementações, a tarefa T210 é
configurada para calcular uma inclinação espectral como o segundo coeficiente de reflexão de um quadro correspondente do sinal de fala. 0 segundo coeficiente de reflexão de um quadro (tipicamente denotado como ki) pode ser calculado 3 0 por:
_ i?(2)-A:1i?(l) _ R(0)r(2)~ R(lf 1 " M12MO) ~ R(O)2-R(\f Em que i?(2) denota o segundo coeficiente de autocorrelação do quadro (isto é, o valor da função de autocorrelação para o quadro em um atraso de duas amostras). A tarefa T210 pode também ser implementada para calcular um ou mais coeficientes de reflexão de um quadro correspondente (por exemplo, o primeiro e/ou segundo coeficiente de reflexão) com base em um ou mais outros parâmetros, tal como um ou mais coeficientes de filtro LPC.
A gama de implementações da tarefa T210 não fica limitada àquelas que calculam a inclinação espectral como um coeficiente de reflexão. Alternativa ou adicionalmente, a tarefa T210 pode ser configurada para realizar uma ou mais outras técnicas de avaliação espectral para calcular uma inclinação espectral de um quadro ou quadros. Tais técnicas de avaliação espectral podem incluir o cálculo de uma inclinação espectral para cada quadro como uma razão entre a energia de uma banda de altas freqüências e a energia de uma banda de baixas freqüências. Tal cálculo pode incluir a realização de uma transformada de freqüência sobre o segmento, tal como uma transformada de Fourier discreta (DFT). Tais técnicas de avaliação espectral podem incluir calcular a inclinação espectral como o número de passagens por zero dentro de cada segmento. Em tal caso, um número maior de passagens por zero pode ser considerado como indicando uma maior quantidade de energia de alta freqüência.
No cálculo da seqüência de valores de inclinação espectral, a tarefa T210 pode ser configurada para realizar um cálculo com base em valores da função de autocorrelação, tal como o cálculo de um ou mais coeficientes de reflexão conforme acima descrito. Um método de autocorrelação para calcular parâmetros de modelo LPC, tais como coeficientes de reflexão ou de filtro, envolve realizar uma série de iterações para solucionar uma equação que inclui uma matriz de Toeplitz. Em algumas implementações, a tarefa T210 é configurada para realizar um método de autocorrelação de acordo com os algoritmos recursivos bem conhecidos de Levinson e/ou Durbin para solução de uma equação. Tal algoritmo tipicamente calcula coeficientes de reflexão (também designados como coeficientes de correlação parcial (PARCOR), coeficientes PARCOR negativos, ou parâmetros de Schur-Szego) como intermediários no processo de produção de um conjunto de coeficientes de filtro LPC. Em outras implementações, a tarefa T210 é
configurada para realizar uma série de iterações para calcular um ou mais coeficientes de reflexão em lugar de um conjunto de coeficientes de filtro. Como exemplo, a tarefa T210 pode ser configurada para utilizar uma implementação do algoritmo de Leroux-Gueguen para obtenção de um ou mais coeficientes de reflexão. Alternativamente, a tarefa T210 pode estar configurada para usar uma implementação de outro método iterativo bem conhecido para obtenção de um ou mais coeficientes de reflexão a partir dos valores de autocorrelação, tal como o algoritmo recursivo de Schur (o qual pode ser configurado para computação paralela eficiente), ou o algoritmo recursivo de Burg.
A tarefa T210 pode ser configurada para calcular um ou mais valores da função de autocorrelação para um quadro correspondente do sinal de fala. Como exemplo, a tarefa T210 pode ser configurada para avaliar a função de autocorrelação de um quadro para um valor de atraso especifico m (em que m é um número inteiro não menor do que zero) de acordo com uma expressão tal como:
N-l-m
R(m)= V s\i]s[i + m],
;=0
3 0 onde N denota o número de amostras no quadro. Alternativamente, a tarefa T210 pode ser configurada para receber valores da função de autocorrelação (por exemplo, a partir de um encodificador de fala ou de um método para encodificação de fala ou outro processo).
Um encodificador de fala ou um método para encodificação de fala pode ser configurado para usar valores da função de autocorrelação em uma operação de codificação tal como o cálculo dos parâmetros de um modelo LPC (por exemplo, coeficientes de reflexão e/ou de filtro). Pode ser desejável que tal encodificador de fala ou método para encodif icação de fala realizem uma ou mais operações de pré-processamento sobre os valores de autocorrelação. Como exemplo, os valores de autocorrelação R(m) podem ser uniformizados espectralmente realizando-se uma operação tal como:
'1,00003 R(m), m = 0;
Rw(m) =
21 8000
^{m), m> 0.
Em tal contexto, a tarefa T210 pode ser configurada para realizar a uniformização espectral ou outra operação de pré-processamento sobre os valores de autocorrelação e/ou para calcular valores do parâmetro de inclinação espectral usando valores de autocorrelação que foram uniformizados espectralmente ou pré-processados de outra forma.
Antes que a função de autocorrelação seja aplicada ao sinal de fala (por exemplo, pela tarefa T210 ou por um encodificador de fala ou método para encodificação de fala) , pode ser desejável a aplicação de uma função de janela (windowing) w\n\ ao sinal. Como exemplo, pode ser desejável zerar o sinal de fala fora do quadro ao qual a função de autocorrelação está sendo correntemente aplicada. Em alguns casos, a função de janela w\n\ é retangular ou triangular. Pode ser desejável usar uma função de janela afunilada, possuindo pesos de amostras baixos em cada extremidade da janela, o que pode auxiliar a reduzir o efeito de componentes fora da janela. Como exemplo, pode ser desejável utilizar uma janela de cosseno levantado, tal como a seguinte função de janela de Hammig:
w\
W=
0,54 — 0,46 cos ^iILH. 0<n<N-l N-I
0, para outro valor
onde N é o número de amostras no quadro.
Outras janelas afuniladas que podem ser usadas
incluem as janelas de Hanning, Blackman, Kaiser e Bartlett. O quadro de janela sw[«] pode ser calculado de acordo com uma expressão como se segue:
Sw [«] = j[w]w>[w]; 0<n<N-1.
A função de janela não necessita ser simétrica, de forma que uma metade da janela pode ser ponderada diferentemente da outra metade. Também pode ser usada uma janela híbrida, tal como uma janela de cosseno de Hamming, ou uma janela possuindo duas metades de janelas diferentes (por exemplo, duas janelas de Hamming de tamanhos diferentes). Uma ou mais outras operações de pré-processamento, tais como uma ponderação perceptual, podem ser realizadas sobre os valores de amostra e/ou sobre os valores de janela (por exemplo, pela tarefa T210 ou um encodifiçador de fala ou método para encodificação de fala) antes que eles sejam usados para avaliar a função de autocorrelação.
A função de janela w\n\ pode ser configurada para inclusão das amostras do quadro atual, bem como de amostras provenientes de um ou mais quadros adjacentes. Em alguns casos, a janela inclui amostras provenientes do quadro atual e dos quadros anterior e futuro adjacentes (por exemplo, uma janela 5-2 0-5 que inclui os 5 milissegundos imediatamente anteriores e posteriores a um quadro de 20 milissegundos). Em outros casos a janela inclui amostras provenientes apenas do quadro atual e do quadro anterior adjacente (por exemplo, uma janela 10-20 que inclui o quadro atual de 20 milissegundos e os últimos 10 milissegundos do quadro precedente). Para um caso em que é aplicada uma função de janela ao sinal de fala (por exemplo, pela tarefa T210 ou um encodificador de fala ou método para encodificação de fala), a função de autocorrelação de um quadro pode ser calculada de acordo com uma expressão tal como:
N-l-m
R(m)= Σ Jw [/JsJi+ wI-
/=0
Como foi acima mencionado, pode ser desejável que a tarefa T300 ou o uniformizador 130 uniformizem uma seqüência que inclui apenas valores que correspondem a quadros inativos. Em tal caso, o método MlOO ou o equipamento A100 pode ser disposto para receber uma indicação do nível de atividade de voz em um quadro (por exemplo, a partir de um encodif icador de fala ou método para encodificação de fala). Como exemplo, tal indicação (também designada como uma "indicação de atividade de voz") pode possuir a forma de um indicador ou variável binária cujo estado indica se um quadro correspondente está ativo ou inativo.
Uma indicação de atividade de voz pode ser usada para controlar uma operação da tarefa T300 de uniformização. Como exemplo, a indicação de atividade de voz pode ser usada para permitir a geração de um valor de inclinação espectral uniformizado a partir de um quadro inativo correspondente e/ou para impedir a geração de um valor de inclinação espectral uniformizado a partir de um quadro ativo correspondente. Como exemplo, um computador ou processador é configurado para controlar a tarefa T300 para uniformizar um valor de inclinação espectral somente se a indicação de atividade de voz indicar que o quadro correspondente é um quadro inativo. Alternativamente, a tarefa T300 pode incluir uma decisão sobre se se gera ou não um valor de inclinação espectral uniformizado, ou se se aceita ou rejeita um valor de inclinação espectral, de acordo com o valor de uma detecção de atividade de voz correspondente. A Figura 12A apresenta um fluxograma de uma implementação MllO do método MlOl que inclui tal implementação T320 da tarefa T300.
Uma indicação de atividade de voz pode ser usada para controlar uma operação da tarefa de cálculo T210. Como exemplo, a indicação de atividade de voz pode ser usada para permitir a geração de uma inclinação espectral para um quadro inativo correspondente e/ou impedir a geração de uma inclinação espectral para um quadro ativo correspondente. Como exemplo, um processador é configurado para controlar a tarefa T210 para calcular uma inclinação espectral somente se a indicação de atividade de voz indicar que o quadro atual é um quadro inativo. Alternativamente, a tarefa T210 pode ser configurada para incluir uma decisão sobre se se gera uma inclinação espectral para um dado quadro, ou pode ser configurada para controlar sua entrada (por exemplo, para aceitar ou rejeitar um quadro) e/ou sua saida (por exemplo, para emitir um valor de inclinação espectral), de acordo com o valor de uma indicação de atividade de voz correspondente. A Figura 12B apresenta um fluxograma de uma implementação M210 do método M200 que inclui uma implementação T204 da tarefa T202, em que a tarefa T204 inclui tal implementação T220 da tarefa' T210.
Como uma alternativa à recepção de uma indicação de atividade de voz, o método M100 pode ser implementado de modo a incluir uma tarefa T100 que é configurada para indicar se um quadro está ativo ou inativo. Como exemplo, a tarefa T100 pode ser configurada para calcular uma indicação de atividade de voz (VAI) conforme acima 3 0 descrito. A Figura 12C apresenta um fluxograma de uma implementação M120 do método MlOl que inclui a tarefa T100, enquanto a Figura 12D apresenta um fluxograma de uma implementação M220 do método M200 que inclui a tarefa T100. A tarefa T100 pode ser configurada para classificar um quadro como ativo ou inativo com base em um ou mais fatores tais como a energia da banda total, energia de banda baixa, energia de banda alta, parâmetros espectrais (por exemplo, uma ou mais LSF e/ou coeficientes de reflexão) , periodicidade e taxa de passagens por zero. Como exemplo, tal classificação pode incluir a comparação de um valor de tal característica com um valor limite fixo ou adaptável e/ou o cálculo da magnitude de uma mudança no valor de tal característica (por exemplo, a magnitude de uma diferença entre dois valores, ou a magnitude de uma diferença entre um valor e uma média corrente) e a comparação da magnitude com um valor limite fixo ou adaptável.
A tarefa TlOO pode ser configurada para avaliar a energia do quadro atual em cada uma dentre uma banda de baixas freqüências e uma banda de altas freqüências e para indicar que o quadro está inativo caso a energia em cada banda seja menor do que (alternativamente, não maior do que) um respectivo limite. Tais limites podem ser fixos ou adaptáveis. Como exemplo, cada limite pode ser baseado em uma taxa de encodificação desejada. Um exemplo de um par de limites adaptáveis está descrito na seção 4.7 da C.S0014-C v.1.0 acima mencionada. Em tal exemplo/ o limite para cada banda está baseado em um ponto de operação "âncora" (tal como derivado a partir de uma taxa de dados média desejada), uma estimativa do nível de ruído de fundo em tal banda para o quadro anterior e uma relação sinal/ruído em tal banda para o quadro anterior.
Uma transição de fala ativa para fala inativa ocorre tipicamente durante um período de vários quadros e os vários primeiros quadros inativos após uma transição a partir da fala ativa pode incluir restos de voz em adição ao ruído de fundo. Os restos de voz podem fazer com que tais quadros inativos pós-transição possuam inclinações espectrais diferentes daquelas do ruído de fundo, e tais diferenças podem corromper a seqüência de valores de inclinação espectral gerada pela tarefa T200 e levar a uma transmissão de SID desnecessária.
Como foi acima mencionado, pode ser desejável que a tarefa T200 produza um valor da seqüência χ que está baseado apenas em quadros inativos. De forma similar, pode ser desejável que a tarefa T300 produza um valor da seqüência uniformizada y que está baseado em um ou mais valores de inclinação espectral provenientes apenas de quadros inativos. Pode também ser desejável que uma implementação do método MlOO evite o uso de valores de inclinação espectral provenientes de um ou mais quadros de pós-transição para atualizar o contorno da inclinação espectral. Tal limitação pode auxiliar a reduzir uma probabilidade de falsos positivos pela tarefa de decisão T500.
A tarefa T200 pode ser configurada para gerar um ou mais valores da seqüência gerada de valores de inclinação espectral de acordo com uma distância no tempo entre o quadro inativo correspondente e o quadro ativo precedente. Como exemplo, tal implementação da tarefa T200 ou da tarefa T300 pode ser configurada para retardar ou suspender, por um ou mais quadros inativos, o inicio da atualização do contorno de inclinação espectral que se segue a uma transição a partir da fala ativa. As Figuras 13A e 13B apresentam exemplos dos efeitos de tal transição e de tal retardo ou suspensão, respectivamente. A Figura 13A apresenta uma mudança rápida na amplitude de um contorno de inclinação espectral uniformizado causado por restos de voz nos quadros pós-transição. Tal mudança pode levar a uma decisão de transmissão de SID positiva indesejável. Em tal exemplo especifico, o parâmetro de inclinação espectral é o primeiro coeficiente de reflexão ko, de tal forma que os restos de voz causem uma elevação aguda da amplitude do contorno de inclinação espectral uniformizado, apesar de os restos de voz poderem causar uma diminuição aguda de amplitude em seu lugar, para um caso em que é usado outro parâmetro de inclinação espectral. Como comparação, a Figura 13B apresenta um exemplo em que um retardo (também designado como um "hangover") é aplicado para desabilitar a atualização do contorno uniformizado durante os quadros pós-transição. Em tal caso, não ocorre a elevação aguda observada na Figura 13A. Em um exemplo especifico, é usado um hangover de cinco quadros após uma transição de fala ativa para inativa. A Figura 14 apresenta um exemplo de uma listagem
de códigos fonte para um conjunto de instruções que podem ser executadas por um arranjo programável de elementos lógicos ou outra máquina de estado (por exemplo, um processador) para realizar uma implementação do método MlOO que inclui uma implementação T312 da tarefa T310, bem como implementações das tarefas T400 e T500. Neste exemplo, a tarefa T312 lê uma variável FRAME_ACTIVE que armazena o estado atual da indicação de atividade de voz. Caso o valor de FRAME_ACTIVE seja TRUE, indicando que o quadro atual está ativo, então é armazenada uma contagem de hangover na variável hangover_l e o conjunto de instruções termina. Em tal exemplo especifico, a contagem de hangover é de cinco, apesar de poder ser usado qualquer outro valor inteiro positivo. Quando o valor de FRAME_ACTIVE se torna FALSE, indicando que o quadro atual está inativo, cada iteração subsequente do conjunto de instruções decrementa o valor da variável hangover_l e termina mais cedo, até que o valor da variável hangover_l chegue a zero. Neste exemplo, as tarefas T400 e T500 são implementadas usando-se instruções tal como acima descrito com referência à Figura 8B.
Os exemplos do método MlOO e do equipamento A100 incluem implementações configuradas para controlar a atualização do contorno de inclinação espectral de acordo com o estado de um sinal de controle de atualização. Tal sinal pode ser baseado em uma indicação de atividade de voz tal como foi acima descrito. A variável FRAME_ACTIVE apresentada na Figura 14 constitui um exemplo de um sinal de controle de atualização (especificamente, um sinal de desabilitação de atualização). Um circuito lógico de hangover 50 pode ser usado para calcular um sinal de controle de atualização retardando-se uma transição ativo- inativo na indicação de atividade de voz. A Figura 15 apresenta uma implementação 52 do circuito lógico de hangover 50 que é configurada para gerar um sinal de controle de atualização (especificamente, um sinal de habilitação de atualização). Em tal figura, o estado da indicação de atividade de voz é baixo para um quadro inativo e alto para um quadro ativo, uma linha de retardo com derivações possuindo três elementos de retardo é usada para implementação de um hangover de três quadros, e uma operação lógica NÃO-OU (NOR) é usada para combinar as indicações de atividade de voz atuais e retardadas. Como outros exemplos, o estado da indicação de atividade de voz pode ser alto para um quadro inativo e baixo para um quadro ativo e, neste caso, as indicações atual e retardada de atividade de voz podem ser combinadas usando uma operação lógica E (AND) . Tal como para a linha de retardo com derivações, outros exemplos de tal circuito podem usar qualquer número de elementos de retardo de acordo com a duração desejada do hangover. Alternativamente, pode ser implementado um circuito lógico de hangover 50 para uso de um contador de retardo para contar para trás (ou para frente) a partir de uma transição ativo-inativo e/ou para calcular um sinal de desabilitação de atualização em lugar de um sinal de habilitação de atualização.
0 gerador de seqüência 120 pode ser configurado para gerar um ou mais valores da seqüência gerada de valores de inclinação espectral de acordo com uma distância no tempo entre o quadro inativo correspondente e o quadro ativo precedente. Como exemplo, o gerador de seqüência 120 ou o uniformizador 130 podem ser configurados para suspender o inicio da atualização do contorno de inclinação espectral após uma transição ativo-inativo de acordo com um hangover desejado. Tal implementação do gerador de seqüência 120 ou do uniformizador 130 pode ser configurada para incluir uma implementação do circuito lógico de hangover 50 tal como foi acima descrito. A Figura 16A apresenta tal implementação 134 do uniformizador 132. Neste exemplo, um seletor (por exemplo, um multiplexador) comuta a entrada do uniformizador entre o valor atual da seqüência (isto é, x\n\) e o valor prévio do contorno de inclinação espectral (isto é, >{m-1]) de acordo com o estado do sinal de controle de atualização. Alternativamente, uma implementação do uniformizador 110 pode ser configurada para armazenar o valor atual de x\n\ quando o sinal de controle de atualização estiver alto e para usar tal valor armazenado como entrada quando o sinal de controle de atualização estiver baixo.
A Figura 16B apresenta outra implementação 136 do uniformizador 132 que inclui uma implementação do circuito lógico de hangover 50 tal como foi acima descrito. Este exemplo inclui dois seletores (por exemplo, multiplexadores) que são configurados para emitir diferentes fatores de ganho de acordo com o estado do sinal de controle de atualização. O primeiro seletor emite o fator de ganho a ser aplicado a x\n\. Quando o estado do sinal de controle de atualização está alto, tal seletor emite o fator de ganho FlO e quando o estado do sinal de controle de atualização está baixo, tal seletor emite o fator de ganho F12. 0 segundo seletor emite o fator de ganho a ser aplicado a _y[«-l]. Quando o estado do sinal de controle de atualização está alto, tal seletor emite o fator de ganho F20 e quando o estado do sinal de controle de atualização está baixo, tal seletor emite o fator de ganho F22. Como exemplo, os fatores de ganho FlO e F12 possuem os valores 0,2 e 0, respectivamente, enquanto os fatores de ganho F20 e F22 possuem os valores 0,8 e 1,0, respectivamente.
Outra implementação do uniformizador 136 pode ser
configurada para selecionar entre mais de dois valores para cada fator de ganho, de tal forma que a transição da operação suspensa para a operação normal do uniformizador seja mais gradual. Em lugar de um circuito lógico de hangover que gera um sinal de controle binário, por exemplo, tal uniformizador pode incluir uma implementação do circuito lógico de hangover 50 que é configurada para gerar um sinal de controle que possui mais do que dois estados. Tal exemplo do circuito lógico de hangover 50 pode ser configurado para gerar um sinal de controle de atualização que passa por c estados em resposta a uma transição ativo-inativo, em que c é um número inteiro maior do que dois. Em tal caso, os dois seletores do uniformizador 136 podem ser configurados de tal forma que, em resposta à transição e durante uma série de c quadros, o fator de ganho aplicado a x\n\ passe por c valores do mínimo ao máximo (por exemplo, de 0,0 a 0,2) enquanto o fator de ganho aplicado a >{η-ΐ] passe através de c valores do máximo ao mínimo (por exemplo, de 1,0 a 0,8). Uma medida do ganho de codificação descreve uma
relação entre a energia de um sinal tal como recebido por um encodificador de fala (ou método para encodificação de fala) e a energia de um erro de codificação correspondente. Tipicamente, um encodif icador de fala ou um método para encodificação de fala irá codificar quadros ativos de forma mais eficiente do que quadros inativos, de tal forma que a medida de ganho de codificação será mais alta para quadros ativos do que para quadros inativos. Um exemplo de uma medida de ganho de codificação para um quadro consiste da razão da energia de sinal inicial Ein (por exemplo, a energia do quadro de janela) pela energia do residual de codificação Eerr . Em tais casos, a energia de cada sinal é tipicamente calculada como a soma das magnitudes das amostras. Outra medida comum de ganho de codificação para análise LPC consiste do ganho de predição, que pode ser
calculado como o reciproco do produto de (l-£(2) para todos os i<j (alternativamente, para todos os i, 1<i<j), em que j é a ordem da análise LPC e Jci indica o i-ésimo coeficiente de reflexão.
0 grau de ganho de codificação alcançado por um encodificador de fala ou um método para encodificação de fala tende a variar de quadro a quadro a medida que mudam as estatísticas de sinal. No entanto, durante uma série de quadros inativos pode ser esperado que o sinal seja relativamente estacionário, de tal forma que suas estatísticas não variarão significativamente. Dessa forma, pode-se esperar que o valor Gc de uma medida do ganho de codificação permaneça relativamente constante, mesmo durante mudanças perceptivamente significativas no ruído de fundo.
Uma grande mudança no valor Gc de uma medida de ganho de codificação pode indicar que o sinal de fala mudou devido a um fator que não uma mudança no ruído de fundo. Um fator que pode causar tal mudança no valor Gc consiste de
uma atividade de voz que está abaixo do limite de detecção do detector de atividade de voz do encodif icador. Em tal caso, pode também ocorrer uma grande mudança no valor de inclinação espectral, levando a uma decisão positiva de transmissão de SID pela tarefa T500, mesmo que o ruído de fundo não tenha se modificado de forma significativa.
Pode ser desejável a implementação do método M100 de forma a considerar mudanças na inclinação espectral que estejam associadas a mudanças no valor Gc de uma medida de ganho de codificação. Como exemplo, uma implementação T230 da tarefa T200, ou uma implementação T330 da tarefa T300 podem ser configurada para habilitar ou desabilitar a atualização de contorno com base na magnitude de uma variação no valor Gc de uma medida do ganho de codificação.
Em alguns casos, a medida de ganho de codificação pode ser calculada em termos de um erro de codificação, tal como em uma expressão como se segue:
De forma similar, o ganho de predição pode ser calculado na forma de um erro de predição, tal como na expressão:
Gc = jQ (l - kf) para todo i<j (alternativamente, i
para todo 1 <i<j).
A medida do ganho de codificação pode também ser calculada de acordo com outras expressões que, por exemplo, compreendem também o produto:
JTJ (l — kf) para todo i<j (alternativamente, para /
todo 1 <i< j ) ,
ou uma razão entre Ejn e Eerrf como um fator ou termo. A medida do ganho de codificação pode ser
expressa em uma escala linear ou em outro domínio, tal como uma escala logaritmica. Os exemplos de tais expressões incluem os seguintes:
A medida de ganho de codificação é tipicamente avaliada para cada quadro, porém pode também ser avaliada menos freqüentemente (por exemplo, para cada segundo ou terceiro quadro) e/ou durante um intervalo mais longo (por exemplo, durante um par ou trinca de quadros).
Em uma disposição típica, as tarefas T230 ou T330 são configuradas para desabilitar a atualização do contorno de inclinação espectral gerado quando o valor Gc muda por mais do que uma quantidade limite (alternativamente, por não menos do que uma quantidade limite) de um quadro inativo para o próximo. Em um exemplo específico, a tarefa T330 é configurada para desabilitar a atualização do contorno uniformizado quando o valor do ganho de predição muda por mais do que 0,72 dB do quadro inativo prévio para o quadro inativo atual. Uma implementação da tarefa T230 ou da tarefa T330 pode ser configurada para a aplicação de um hangover para estender tal desabilitação para um ou mais quadros subsequentes. Outra implementação da tarefa T230 ou da tarefa T330 pode também estar configurada para aplicar um hangover após uma transição da fala ativa conforme acima descrito (por exemplo, com referência às Figuras 13A a 16B) .
Pode ser desejável implementar o equipamento AlOO
de modo a considerar mudanças em um contorno de inclinação espectral que estejam associadas a mudanças no valor Gc de uma medida de ganho de codificação (tal como um dos exemplos acima descritos). Como exemplo, o equipamento A100 pode ser implementado para incluir um gerador de sinal de controle 60 configurado para gerar um sinal de controle de atualização cujo estado está baseado na magnitude de uma variação no ganho de predição. A Figura 17A apresenta um diagrama de blocos de um exemplo 62 de um gerador de sinais de controle 60. 0 gerador de sinais de controle 60 pode também ser implementado para aplicar um hangover, tal como no exemplo do gerador de sinais de controle 64 apresentado na Figura 17B. Em um exemplo específico, o valor do limite T30 é de 0,72 dB. Uma implementação do uniformizador 134 ou 136 pode incluir uma implementação do gerador de sinais de controle 60 em lugar de, ou em adição a, um circuito que é configurado para retardar uma transição ativo-inativo em uma indicação de atividade de voz. Como exemplo, tal implementação pode incluir um gerador de sinais de controle 66 tal como apresentado na Figura 18, que combina as operações do circuito lógico de hangover 62 e do gerador de sinais de controle 64.
Uma implementação do método MlOO pode ser configurada para controlar geração de uma indicação de transmissão SID de acordo com uma mudança no valor de uma medida do ganho de codificação. Como exemplo, uma implementação do método MlOO pode incluir uma implementação da tarefa T400 que é configurada para emitir uma distância de zero caso o valor da medida de ganho de codificação (por exemplo, o ganho de predição) mude por mais do que uma quantidade limite (alternativamente, por não menos do que uma quantidade limite) de um quadro inativo para o próximo. Adicionalmente, ou como alternativa, uma implementação do método M100 pode incluir uma implementação da tarefa T500 que é configurada para habilitar ou desabilitar a geração de uma indicação de transmissão SID positiva de acordo com a magnitude de uma variação do ganho de predição. Tal implementação T510 da tarefa T500 é configurada para desabilitar a geração de uma indicação de transmissão SID positiva a menos que o ganho de predição mude por menos que (alternativamente, por não mais que) um valor limite do quadro inativo anterior ao quadro inativo atual. Em um exemplo especifico, o valor limite é de 0,65 dB. O controle da geração da indicação de transmissão pode ser realizado em adição, ou como uma alternativa, ao controle da atualização de um contorno de inclinação espectral.
Uma implementação do equipamento A100 pode ser configurada para controlar a geração da indicação de transmissão SID de acordo com uma mudança no valor Gc de uma medida do ganho de codificação. A Figura 19A apresenta um diagrama de blocos de um exemplo 72 de um circuito de controle de indicação de transmissão 70 que é configurado para processar por porta uma indicação de transmissão SID positiva de acordo com uma relação entre um limite T40 e a magnitude de uma mudança no ganho de predição. Em um exemplo especifico, o valor do limite T40 é de 0,65 dB. A Figura 19B apresenta um diagrama de blocos de uma implementação 156 do comparador 152 que inclui o circuito de controle de indicação de transmissão 72.
Uma implementação do equipamento AlOO pode ser configurada para controlar a geração de um sinal de controle de atualização e uma indicação de transmissão SID, com base em uma mudança no valor Gc de uma medida do ganho
de codificação. A Figura 20 apresenta um diagrama de blocos de um exemplo 82 de um circuito de controle 80 configurado para realizar tais operações. Tal circuito pode ser disposto para receber uma indicação de transmissão SID proveniente do comparador 150 e para prover um sinal de controle de atualização para o uniformizador 130. Tal circuito pode também ser implementado no interior do uniformizador 130 ou do comparador 150. No uniformizador 134 ou 136, por exemplo, o circuito de controle 82 pode ser disposto para substituir o circuito lógico de hangover 52 e para processar por porta uma indicação de transmissão SID proveniente do comparador 150 de acordo com o ganho de predição. Em outro exemplo, o circuito de controle 82 pode ser disposto dentro do comparador 152 para processar por porta a indicação de transmissão SID de acordo com o ganho de predição e também para prover um sinal de controle de atualização para o uniformizador 130.
A Figura 21 apresenta um exemplo de uma listagem de códigos fonte para um conjunto de instruções que podem ser executadas por um arranjo programável de elementos lógicos ou outra máquina de estado (por exemplo, um processador) para realizar uma implementação do método MlOO que inclui uma implementação T332 das tarefas T312 e T330, uma implementação T510 da tarefa T500 e uma implementação da tarefa T400. Neste exemplo, o estado da variável FRAME_ACTIVE indica se o quadro atual está ativo ou inativo, o estado da variável Y_VALID indica se o conjunto de instruções foi invocado anteriormente (e, portanto, se o valor armazenado na variável y_current é válido) e o valor da variável Gc indica o ganho de predição para o quadro atual.
Caso o conjunto de instruções determine que o valor de Y_VALID é FALSE (isto é, se o conjunto de instruções estiver em execução pela primeira vez), então a variável Gc_current é inicializada com o valor atual da variável Gc . A diferença absoluta entre os valores de Gc atual e anterior é armazenada na variável Gc_diff e, caso tal diferença seja maior do que um valor limite, um hangover de dois quadros é aplicado. Na Parte 3, o indicador ρ é ajustado apenas caso o valor de Gc_diff seja menor do que um valor limite.
Os exemplos específicos de implementações lógicas aqui descritos são apresentados para explanar a invenção e não para limitá-la. Os técnicos na área notarão prontamente que implementações lógicas alternativas estão incluídas no escopo da presente invenção. Como exemplo, a lógica de seleção implementada em um contexto como uma porta E (AND) disposta para produzir um sinal alto ativo somente quando todas as suas entradas forem altas pode ser implementada em outro contexto na forma de uma porta OU (OR) disposta para produzir um sinal baixo ativo somente quando todas as suas entradas forem baixas. Uma contagem regressiva a partir de um primeiro valor para um segundo valor pode também ser implementada como uma contagem crescente a partir do segundo valor para o primeiro valor e vice versa. Uma indicação positiva ou TRUE pode ser expressa usando um valor binário alto em um contexto e um valor binário baixo em outro contexto. É considerado e aqui descrito que essas e outras equivalências de implementação estão incluídas no escopo da presente invenção.
Nos exemplos acima descritos é presumido que a seqüência de valores de inclinação espectral inclui um valor para cada um dentre uma série de quadros inativos consecutivos. No entanto, é também considerado que o método MlOO e o equipamento Δ100 podem ser implementados de tal forma que a seqüência de valores de inclinação espectral inclua menos do que um valor para cada um de uma série de quadros inativos consecutivos. Como exemplo, a seqüência pode incluir um valor para cada outro quadro (ou para cada terceiro quadro, etc.) na série. Tal seqüência pode ser obtida ignorando-se quadros intermediários ou descartando- se valores de tais quadros, ou calculando-se a média dos valores de cada par (trinca, etc.) de quadros. Alternativa ou adicionalmente, tais princípios podem ser aplicados a outras seqüências, tais como uma seqüência de valores de uma medida de ganho de codificação.
Os técnicos na área notarão que as informações e sinais podem ser representados usando-se quaisquer dentre uma diversidade de diferentes tecnologias e técnicas. Como exemplo, dados, instruções, comandos, informações, sinais, bits e símbolos que possam ter sido mencionados por toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, campos ou partículas magnéticas, campos ou partículas ópticas, ou quaisquer combinações de tais. Apesar de o sinal a partir do qual é derivada a seqüência gerada de valores de inclinação espectral ser designado como um "sinal de fala", é também contemplado e aqui descrito que tal sinal pode portar música ou outras informações que não de fala durante os quadros ativos.
Os elementos das várias implementações do equipamento 100 tal como aqui descrito podem ser fabricados na forma de dispositivos ópticos e/ou eletrônicos residentes, por exemplo, no mesmo chip ou entre dois ou mais chips em um conjunto de chips. Um exemplo de tal dispositivo consiste de um arranjo fixo ou programável de elementos lógicos, tais como transistores ou portas. Um ou mais elementos das várias implementações do equipamento 100 tal como aqui descrito podem também ser implementados no todo ou em parte na forma de um ou mais conjuntos de instruções dispostos para execução em um ou mais arranjos fixos ou programáveis de elementos lógicos, tais como microprocessadores, processadores embutidos, núcleos IP, processadores de sinais digitais, FPGAs (arranjos de porta programáveis no campo), ASSPs (produtos padrão de aplicação especifica) e circuitos integrados de aplicação especifica (ASICs).
É possível que um ou mais elementos de uma
implementação do equipamento 100 sejam usados para realizar tarefas ou executar outros conjuntos de instruções que não estão diretamente relacionados com uma operação do equipamento, tal como uma tarefa relacionada a outra operação de um dispositivo ou sistema em que o equipamento está embutido. É também possível que um ou mais elementos de uma implementação do equipamento AlOO possua uma estrutura em comum (por exemplo, um processador usado para executar partes de um código correspondente a diferentes elementos em diferentes momentos, um conjunto de instruções executadas para realizar tarefas correspondentes a diferentes elementos em momentos diferentes, ou uma disposição de dispositivos ópticos e/ou eletrônicos realizando operações para diferentes elementos em momentos diferentes). Como exemplo, o uniformizador 130, o calculador 140 e o comparador 150 são implementados na forma de conjuntos de instruções dispostos para execução no mesmo processador. Como outro exemplo, o gerador de seqüência 120 ou mesmo um encodificador de fala (que pode incluir o equipamento A100) é implementado na forma de um ou mais conjuntos de instruções dispostos para execução em tal processador.
A apresentação acima das configurações descritas é provida para permitir que os técnicos na área efetuem ou façam uso dos métodos e outras estruturas aqui descritos. Os fluxogramas e outras estruturas apresentados e aqui descritos constituem apenas exemplos e outras variações de tais estruturas também se inserem no escopo da invenção. Várias modificações são possíveis para tais configurações e os princípios genéricos agui apresentados podem ser também aplicados a outras configurações.
As configurações aqui descritas podem ser implementadas, em parte ou na totalidade, na forma de um circuito conectado (hard-wired), na forma de uma configuração de circuito produzida em um circuito integrado de aplicação específica, ou um programa de firmware carregado em armazenamento não volátil, ou um programa de software carregado proveniente de, ou para, um meio para armazenamento de dados como um código legível por máquina, tal código consistindo de instruções executáveis por um arranjo de elementos lógicos, tal como um microprocessador ou outra unidade de processamento de sinais digitais. 0 meio para armazenamento de dados pode ser um arranjo de elementos de armazenamento, tais como uma memória de semicondutor (a qual pode incluir, sem qualquer limitação, uma RAM (memória de acesso aleatório) dinâmica ou estática, ROM (memória somente para leitura) e/ou RAM flash) , ou uma memória ferro-elétrica, magneto-resistiva, ovônica, polimérica, ou de mudança de fase; ou um meio de disco, tal como um disco magnético ou óptico. 0 termo "software" deve ser considerado como incluindo um código fonte, um código de linguagem Assembly, um código de máquina, um código binário, firmware, macro código, micro código, qualquer um dentre um ou mais conjuntos ou seqüências de instruções executáveis por um arranjo de elementos lógicos, bem como quaisquer combinações de tais exemplos.
Os métodos aqui descritos podem também ser incorporados de forma tangível (por exemplo, em um ou mais meios para armazenamento de dados tal como acima descritos) como um ou mais conjuntos de instruções legíveis e/ou executáveis por uma máquina incluindo um arranjo de elementos lógicos (por exemplo, um processador, microprocessador, microcontrolador, ou outra máquina de estado finito). Dessa forma, a presente invenção não deve ficar limitada às configurações apresentadas acima, mas deve receber o escopo mais amplo consistente com os princípios e características novas aqui descritos de qualquer forma, incluindo nas reivindicações anexas tal como depositadas, que fazem parte da descrição original. Os técnicos na área notarão também que os vários
exemplos de blocos lógicos, módulos, circuitos e operações descritos em conexão às configurações aqui descritas podem ser implementados na forma de hardware eletrônico, software de computador, ou combinações de tais. Tais blocos lógicos, módulos, circuitos e operações podem ser implementados ou realizados com um processador de uso geral, processadores de sinais digitais (DSP), um ASIC, um FPGA ou outros dispositivos lógicos programáveis, portas discretas, ou lógica de transistores, componentes de hardware discretos, ou qualquer combinação de tais projetada para realizar as funções aqui descritas. Um processador de uso geral pode ser um microprocessador, porém como alternativa, o processador pode ser qualquer processador, controlador, micro controlador ou máquina de estado convencionais. Um processador pode também ser implementado na forma de uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra configuração similar.
As etapas dos métodos ou algoritmos descritas aqui podem ser incorporadas diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação de ambos. 0 módulo de software pode residir em uma memória RAM, memória flash, memória ROM, memória EPROM, memória EEPROM, registradores, disco rígido, um disco removível, um CD-ROM, ou qualquer outra forma de meio de armazenamento conhecido pelos técnicos na área. Um exemplo de um meio de armazenamento pode estar acoplado ao processador de tal forma que o processador possa ler informações a partir do, e gravar informações no, meio de armazenamento. Como alternativa, o meio de armazenamento pode estar integrado ao processador. O processador e o meio de armazenamento podem residir em um ASIC. 0 ASIC pode residir em um terminal de usuário. Como alternativa, o processador e o meio de armazenamento podem residir na forma de componentes individuais em um terminal de usuário.

Claims (15)

1. Método para processar um sinal de fala, o método compreendendo: gerar uma seqüência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala; calcular uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral; e para um quadro inativo entre a pluralidade de quadros inativos, decidir se se transmite uma descrição para o quadro; em que o decidir se se transmite uma descrição para o quadro baseia-se na mudança calculada.
2. Método para processar um sinal de fala, de acordo com a reivindicação 1, no qual cada um dentre os valores de inclinação espectral é baseado em pelo menos um dentre: a) uniformização de outra seqüência de valores de inclinação espectral para gerar a seqüência de valores de inclinação espectral, no qual cada um dentre os valores de inclinação espectral da outra seqüência indica uma inclinação espectral de um quadro correspondente dentre a pluralidade de quadros inativos; b) pelo menos um coeficiente de reflexão de um quadro inativo correspondente do sinal de fala; c) pelo menos um dentre os outros valores de inclinação espectral na seqüência de valores de inclinação espectral; d) uma inclinação espectral de um quadro correspondente dentre a pluralidade de quadros inativos; e) uma distância no tempo entre um quadro inativo e um quadro ativo precedente do sinal de fala; e f) uma medida de ganho de codificação para um quadro inativo.
3. Método para processar um sinal de fala, de acordo com a reivindicação 1, no qual o calcular uma mudança compreende calcular uma distância entre valores adjacentes na seqüência de valores de inclinação espectral.
4. Método para processar um sinal de fala, de acordo com a reivindicação 1, no qual o decidir se se transmite uma descrição para o quadro baseia-se em pelo menos um dentre: a) uma relação entre a mudança calculada e um valor limite; b) um vetor que descreve um envelope espectral do quadro; c) uma energia residual do quadro; d) uma distância no tempo até a transmissão mais recente de uma descrição para um quadro inativo; e) uma distância no tempo até o quadro ativo mais recente; f) uma descrição de um envelope de energia do quadro; g) um valor médio absoluto do quadro; h) um valor de energia do quadro; e i) uma mudança em uma medida de ganho de codificação.
5. Método para processar um sinal de fala, de acordo com a reivindicação 1, 2, 3 ou 4, no qual o método compreende, caso o resultado da decisão se se transmite uma descrição para o quadro seja uma decisão para transmitir uma descrição para o quadro, transmitir uma descrição de silêncio que inclui pelo menos uma dentre uma descrição de envelope espectral e uma descrição de envelope de energia.
6. Método para processar um sinal de fala, de acordo com a reivindicação 2 ou 4, no qual cada valor da medida de ganho de codificação baseia-se nos valores de uma pluralidade de coeficientes de reflexão de um quadro inativo correspondente do sinal de fala.
7. Método para processar um sinal de fala, de acordo com a reivindicação 1, 2, 3, 4, 5 ou 6, no qual o método compreende calcular, para cada um dentre uma pluralidade dos valores de inclinação espectral na seqüência de valores de inclinação espectral, uma mudança entre o valor de inclinação espectral e pelo menos ou outro valor de inclinação espectral na seqüência de valores de inclinação espectral; e em que o método compreende, para cada um dentre outra pluralidade de quadros inativos do sinal de fala, decidir se se transmite uma descrição para o quadro; e em que, para cada um dentre a outra pluralidade de quadros inativos, o resultado da decisão se se transmite uma descrição para o quadro baseia-se em pelo menos uma dentre as mudanças calculadas.
8. Método para processar um sinal de fala, de acordo com a reivindicação 7, no qual para cada um dentre a outra pluralidade de quadros inativos, a mudança em uma medida de ganho de codificação baseia-se em (a) um valor para a medida de ganho de codificação para um primeiro quadro inativo do sinal de fala que precede o quadro e (b) um valor para a medida de ganho de codificação para um segundo quadro inativo do sinal de fala que precede o quadro e é diferente do primeiro quadro inativo.
9. Programa de computador compreendendo códigos para implementar quaisquer dos métodos das reivindicações 1 a 8.
10. Equipamento para processar um sinal de fala, o equipamento compreendendo: mecanismos para gerar uma seqüência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala; mecanismos para calcular uma mudança entre pelo menos dois valores da seqüência de valores de inclinação espectral; e mecanismos para decidir, para um quadro inativo entre a pluralidade de quadros inativos e com base na mudança calculada, se se transmite uma descrição para o quadro.
11. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10, no qual: os mecanismos para gerar compreendem um gerador de seqüência; os mecanismos para calcular compreendem um calculador; e os mecanismos para decidir compreendem um comparador.
12. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10 ou 11, no qual o equipamento compreende mecanismos para transmitir, em resposta a uma decisão pelos mecanismos para decidir se se transmite uma descrição para o quadro, uma descrição de silêncio que inclui pelo menos uma dentre uma descrição de envelope espectral e uma descrição de envelope de energia.
13. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10 ou 11, no qual os mecanismos para gerar uma seqüência de valores de inclinação espectral são configurados para gerar, para cada um dentre pelo menos alguns da pluralidade de quadros inativos, um valor correspondente dentre a seqüência de valores de inclinação espectral de acordo com uma distância no tempo entre o quadro inativo e um quadro ativo precedente do sinal de fala.
14. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10 ou 11, no qual os mecanismos para gerar uma seqüência de valores de inclinação espectral são configurados, para cada um dentre pelo menos um da seqüência de valores de inclinação espectral, para ajustar o valor de inclinação espectral para o valor anterior entre a seqüência de valores de inclinação espectral em resposta à detecção de que uma mudança em uma medida de ganho de codificação excede um valor limite.
15. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10 ou 11, no qual os mecanismos para gerar uma seqüência de valores de inclinação espectral são configurados para gerar a seqüência de valores de inclinação espectral por uniformização de outra seqüência de valores de inclinação espectral; em que cada um dos valores de inclinação espectral da outra seqüência indica um inclinação espectral de um quadro correspondente dentre a pluralidade de quadros inativos.
BRPI0715063A 2006-07-31 2007-07-31 sistemas, métodos e equipamentos para detecção de mudança de sinal BRPI0715063B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US83468906P 2006-07-31 2006-07-31
US60834689 2006-07-31
US11830548 2007-07-30
US11/830,548 US8725499B2 (en) 2006-07-31 2007-07-30 Systems, methods, and apparatus for signal change detection
PCT/US2007/074895 WO2008016942A2 (en) 2006-07-31 2007-07-31 Systems, methods, and apparatus for signal change detection

Publications (2)

Publication Number Publication Date
BRPI0715063A2 true BRPI0715063A2 (pt) 2013-05-28
BRPI0715063B1 BRPI0715063B1 (pt) 2019-12-24

Family

ID=38812761

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0715063A BRPI0715063B1 (pt) 2006-07-31 2007-07-31 sistemas, métodos e equipamentos para detecção de mudança de sinal

Country Status (10)

Country Link
US (1) US8725499B2 (pt)
EP (1) EP2047457B1 (pt)
JP (1) JP4995913B2 (pt)
KR (1) KR101060533B1 (pt)
BR (1) BRPI0715063B1 (pt)
CA (1) CA2657420C (pt)
ES (1) ES2733099T3 (pt)
HU (1) HUE042959T2 (pt)
RU (1) RU2417456C2 (pt)
WO (1) WO2008016942A2 (pt)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101565919B1 (ko) * 2006-11-17 2015-11-05 삼성전자주식회사 고주파수 신호 부호화 및 복호화 방법 및 장치
US8032359B2 (en) 2007-02-14 2011-10-04 Mindspeed Technologies, Inc. Embedded silence and background noise compression
CN101246688B (zh) * 2007-02-14 2011-01-12 华为技术有限公司 一种对背景噪声信号进行编解码的方法、系统和装置
EP2153439B1 (en) * 2007-02-21 2018-01-17 Telefonaktiebolaget LM Ericsson (publ) Double talk detector
CN100555414C (zh) * 2007-11-02 2009-10-28 华为技术有限公司 一种dtx判决方法和装置
KR101235830B1 (ko) * 2007-12-06 2013-02-21 한국전자통신연구원 음성코덱의 품질향상장치 및 그 방법
KR101441897B1 (ko) * 2008-01-31 2014-09-23 삼성전자주식회사 잔차 신호 부호화 방법 및 장치와 잔차 신호 복호화 방법및 장치
DE102008009719A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
DE102008009718A1 (de) * 2008-02-19 2009-08-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen
US8463603B2 (en) * 2008-09-06 2013-06-11 Huawei Technologies Co., Ltd. Spectral envelope coding of energy attack signal
US8913512B2 (en) * 2008-10-16 2014-12-16 Telefonaktiebolaget Lm Ericsson (Publ) Telecommunication apparatus, method, and computer program controlling sporadic data transmissions
EP2444966B1 (en) * 2009-06-19 2019-07-10 Fujitsu Limited Audio signal processing device and audio signal processing method
JP5870476B2 (ja) * 2010-08-04 2016-03-01 富士通株式会社 雑音推定装置、雑音推定方法および雑音推定プログラム
CN103187065B (zh) 2011-12-30 2015-12-16 华为技术有限公司 音频数据的处理方法、装置和系统
CN103325386B (zh) 2012-03-23 2016-12-21 杜比实验室特许公司 用于信号传输控制的方法和系统
ES2732560T3 (es) * 2013-01-29 2019-11-25 Fraunhofer Ges Forschung Llenado de ruido sin información secundaria para codificadores tipo celp
JP6082126B2 (ja) 2013-01-29 2017-02-15 フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. 音声信号を合成するための装置及び方法、デコーダ、エンコーダ、システム及びコンピュータプログラム
US9741350B2 (en) 2013-02-08 2017-08-22 Qualcomm Incorporated Systems and methods of performing gain control
US9711156B2 (en) * 2013-02-08 2017-07-18 Qualcomm Incorporated Systems and methods of performing filtering for gain determination
US9179404B2 (en) 2013-03-25 2015-11-03 Qualcomm Incorporated Method and apparatus for UE-only discontinuous-TX smart blanking
US9263061B2 (en) * 2013-05-21 2016-02-16 Google Inc. Detection of chopped speech
CN104217723B (zh) 2013-05-30 2016-11-09 华为技术有限公司 信号编码方法及设备
US9570093B2 (en) * 2013-09-09 2017-02-14 Huawei Technologies Co., Ltd. Unvoiced/voiced decision for speech processing
US9479272B2 (en) 2014-05-14 2016-10-25 Samsung Electronics Co., Ltd Method and apparatus for processing a transmission signal in communication system
CN106533391A (zh) * 2016-11-16 2017-03-22 上海艾为电子技术股份有限公司 无限冲激响应滤波器及其控制方法
EP3382702A1 (en) * 2017-03-31 2018-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for determining a predetermined characteristic related to an artificial bandwidth limitation processing of an audio signal
EP3815082B1 (en) 2018-06-28 2023-08-02 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive comfort noise parameter determination
JP7130878B2 (ja) * 2019-01-13 2022-09-05 華為技術有限公司 高分解能オーディオコーディング
CN117436712B (zh) * 2023-12-21 2024-04-12 山东铁鹰建设工程有限公司 一种施工挂篮运行风险实时监测方法及系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511073A (en) 1990-06-25 1996-04-23 Qualcomm Incorporated Method and apparatus for the formatting of data for transmission
US5341456A (en) * 1992-12-02 1994-08-23 Qualcomm Incorporated Method for determining speech encoding rate in a variable rate vocoder
US5704003A (en) 1995-09-19 1997-12-30 Lucent Technologies Inc. RCELP coder
JPH09152894A (ja) * 1995-11-30 1997-06-10 Denso Corp 有音無音判別器
US5960389A (en) * 1996-11-15 1999-09-28 Nokia Mobile Phones Limited Methods for generating comfort noise during discontinuous transmission
US6233550B1 (en) * 1997-08-29 2001-05-15 The Regents Of The University Of California Method and apparatus for hybrid coding of speech at 4kbps
US5991718A (en) 1998-02-27 1999-11-23 At&T Corp. System and method for noise threshold adaptation for voice activity detection in nonstationary noise environments
US6415252B1 (en) * 1998-05-28 2002-07-02 Motorola, Inc. Method and apparatus for coding and decoding speech
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
AU1524300A (en) 1998-11-13 2000-06-05 Qualcomm Incorporated Closed-loop variable-rate multimode predictive speech coder
US6691084B2 (en) 1998-12-21 2004-02-10 Qualcomm Incorporated Multiple mode variable rate speech coding
JP4438127B2 (ja) 1999-06-18 2010-03-24 ソニー株式会社 音声符号化装置及び方法、音声復号装置及び方法、並びに記録媒体
US6330532B1 (en) 1999-07-19 2001-12-11 Qualcomm Incorporated Method and apparatus for maintaining a target bit rate in a speech coder
US6687668B2 (en) * 1999-12-31 2004-02-03 C & S Technology Co., Ltd. Method for improvement of G.723.1 processing time and speech quality and for reduction of bit rate in CELP vocoder and CELP vococer using the same
WO2001052241A1 (en) * 2000-01-11 2001-07-19 Matsushita Electric Industrial Co., Ltd. Multi-mode voice encoding device and decoding device
US6889186B1 (en) * 2000-06-01 2005-05-03 Avaya Technology Corp. Method and apparatus for improving the intelligibility of digitally compressed speech
US6807525B1 (en) 2000-10-31 2004-10-19 Telogy Networks, Inc. SID frame detection with human auditory perception compensation
US7013269B1 (en) * 2001-02-13 2006-03-14 Hughes Electronics Corporation Voicing measure for a speech CODEC system
US20030028386A1 (en) * 2001-04-02 2003-02-06 Zinser Richard L. Compressed domain universal transcoder
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
RU2331933C2 (ru) 2002-10-11 2008-08-20 Нокиа Корпорейшн Способы и устройства управляемого источником широкополосного кодирования речи с переменной скоростью в битах
US20040098255A1 (en) 2002-11-14 2004-05-20 France Telecom Generalized analysis-by-synthesis speech coding method, and coder implementing such method
KR20050049103A (ko) 2003-11-21 2005-05-25 삼성전자주식회사 포만트 대역을 이용한 다이얼로그 인핸싱 방법 및 장치
US8102872B2 (en) 2005-02-01 2012-01-24 Qualcomm Incorporated Method for discontinuous transmission and accurate reproduction of background noise information
US7231348B1 (en) * 2005-03-24 2007-06-12 Mindspeed Technologies, Inc. Tone detection algorithm for a voice activity detector
NZ562182A (en) 2005-04-01 2010-03-26 Qualcomm Inc Method and apparatus for anti-sparseness filtering of a bandwidth extended speech prediction excitation signal
DK1875463T3 (en) 2005-04-22 2019-01-28 Qualcomm Inc SYSTEMS, PROCEDURES AND APPARATUS FOR AMPLIFIER FACTOR GLOSSARY
US8032369B2 (en) 2006-01-20 2011-10-04 Qualcomm Incorporated Arbitrary average data rates for variable rate coders

Also Published As

Publication number Publication date
WO2008016942A3 (en) 2008-04-10
KR101060533B1 (ko) 2011-08-30
US8725499B2 (en) 2014-05-13
RU2417456C2 (ru) 2011-04-27
EP2047457B1 (en) 2019-03-27
KR20090033461A (ko) 2009-04-03
RU2009107181A (ru) 2010-09-10
ES2733099T3 (es) 2019-11-27
CA2657420A1 (en) 2008-02-07
JP2009545779A (ja) 2009-12-24
EP2047457A2 (en) 2009-04-15
HUE042959T2 (hu) 2019-07-29
CA2657420C (en) 2015-12-15
BRPI0715063B1 (pt) 2019-12-24
US20080027716A1 (en) 2008-01-31
JP4995913B2 (ja) 2012-08-08
WO2008016942A2 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
BRPI0715063A2 (pt) sistemas,mÉtodos e equipamentos para detecÇço de mudanÇa de sinal
US10586547B2 (en) Classification between time-domain coding and frequency domain coding
KR101034453B1 (ko) 비활성 프레임들의 광대역 인코딩 및 디코딩을 위한 시스템, 방법, 및 장치
JP5265553B2 (ja) フレーム消去回復のシステム、方法、および装置
JP2019061254A (ja) オーディオフレーム損失のコンシールメントを制御する方法及び装置
TWI467979B (zh) 用於信號改變偵測之系統、方法及裝置
ES2687249T3 (es) Decisión no sonora/sonora para el procesamiento de la voz
WO2008157296A1 (en) Signal encoding using pitch-regularizing and non-pitch-regularizing coding
BR112014017708B1 (pt) Método e aparelho para detectar atividade de voz na presença de ruído de fundo, e, memória legível por computador
EP1958187A2 (en) Systems, methods, and apparatus for detection of tonal components
JP6148810B2 (ja) 第1の符号化アルゴリズム及び第2の符号化アルゴリズムのうちの1つを選択するための装置及び方法
BR112013026333B1 (pt) método de classificação de sinal de áudio baseada em quadro, classificador de áudio, dispositivo de comunicação de áudio, e, disposição de codec de áudio
BRPI0808202A2 (pt) Dispositivo de codificação e método de codificação.
RU2682851C2 (ru) Усовершенствованная коррекция потери кадров с помощью речевой информации
JP2023166423A (ja) Mdct係数からのスペクトル形状予測
US10950251B2 (en) Coding of harmonic signals in transform-based audio codecs
JPH1124692A (ja) 音声波の有音/休止区間判定方法およびその装置
MOATTAR et al. A Robust Voice Activity Detection Based on Short Time Features of Audio Frames and Spectral Pattern of Vowel Sounds

Legal Events

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

Ipc: G10L 19/012 (2013.01), G10L 25/78 (2013.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06T Formal requirements before examination [chapter 6.20 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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