BRPI0715063B1 - 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 PDFInfo
- Publication number
- BRPI0715063B1 BRPI0715063B1 BRPI0715063A BRPI0715063A BRPI0715063B1 BR PI0715063 B1 BRPI0715063 B1 BR PI0715063B1 BR PI0715063 A BRPI0715063 A BR PI0715063A BR PI0715063 A BRPI0715063 A BR PI0715063A BR PI0715063 B1 BRPI0715063 B1 BR PI0715063B1
- Authority
- BR
- Brazil
- Prior art keywords
- sequence
- spectral slope
- frame
- values
- spectral
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 133
- 230000008859 change Effects 0.000 title claims abstract description 65
- 238000001514 detection method Methods 0.000 title claims description 8
- 230000003595 spectral effect Effects 0.000 claims abstract description 174
- 230000005540 biological transmission Effects 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 14
- 238000003780 insertion Methods 0.000 claims description 11
- 230000037431 insertion Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 238000009499 grossing Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 28
- 206010019133 Hangover Diseases 0.000 description 25
- 230000014509 gene expression Effects 0.000 description 16
- 230000007704 transition Effects 0.000 description 13
- 238000005311 autocorrelation function Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000001914 filtration Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001154 acute effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/012—Comfort noise or silence coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
- G10L2025/783—Detection of presence or absence of voice signals based on threshold decision
- G10L2025/786—Adaptive 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Telephonic Communication Services (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. O 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
2/55 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 ruído 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 encodificadores 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 encodificador de fala realiza DTX pela transmissão de um SID para cada cadeia (string) de 32 quadros inativos consecutivos. O decodificador correspondente aplica as informações no SID para atualizar um modelo de geração de ruído que é usado por um algoritmo de geração de ruído de conforto para sintetizar quadros inativos.
SUMÁRIO
Um método para processamento de um sinal de fala de acordo com uma configuração inclui gerar uma sequência de valores de inclinação (tilt) espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala. Tal método inclui calcular uma mudança entre pelo menos dois valores da sequê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.
3/55
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 sequê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 sequê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 sequência configurado para gerar uma sequê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 sequê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 sequê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 sequê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.
4/55
BREVE DESCRIÇÃO DOS DESENHOS
A Figura IA apresenta um fluxograma de um método M100 de acordo com uma configuração.
A Figura 1B apresenta um diagrama de blocos de um equipamento A100 de acordo com uma modalidade.
A Figura 1C apresenta um fluxograma de uma implementação M101 do método M100.
A Figura 1D apresenta um diagrama de blocos de uma implementação A101 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 MIDI com um método de encodificação de fala.
5/55
A Figura 10 apresenta um diagrama de blocos de um equipamento que compreende uma combinação do equipamento
| A101 com um encodificador de fala. A Figura 11A apresenta | um | fluxograma | de | uma |
| implementação M200 do método M100. | ||||
| A Figura 11B apresenta | um | fluxograma | de | uma |
| implementação A200 do equipamento A100. | ||||
| A Figura 12A apresenta | um | fluxograma | de | uma |
| implementação M100 do método M101. | ||||
| A Figura 12B apresenta | um | fluxograma | de | uma |
| implementação M210 do método M200. | ||||
| A Figura 12C apresenta | um | fluxograma | de | uma |
| implementação M120 do método M101. | ||||
| A Figura 12D apresenta | um | fluxograma | de | uma |
| 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 M100.
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.
6/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 M100.
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 periodo 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
7/55 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 significados 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
8/55 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. N- 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 sequência de valores de inclinação espectral. A tarefa T400 calcula uma mudança dentro da sequência de valores de inclinação espectral (por exemplo, uma mudança entre pelo menos dois valores da sequê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.
9/55
Em uma implementação típica do método M100, cada um dentre a sequê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 frequê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 sequência de valores de inclinação espectral é também designado como atualização da sequência.
Os valores da sequência de valores de inclinação espectral são usualmente dispostos para serem sequenciais no tempo, de tal forma que valores sucessivos da sequência correspondam a segmentos do sinal que são sucessivos no tempo. Uma sequê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 sequê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 sequê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 sequência conforme aqui descrito.
A tarefa T200 pode ser configurada para emitir a sequência recebida ou calculada (aqui também denotada como x) como a sequência gerada de valores de inclinação
10/55 espectral. Alternativamente, a tarefa T200 pode ser configurada para gerar uma sequência de valores de inclinação espectral y pela realização de uma ou mais outras operações sobre tal sequência x. Estas outras operações podem incluir selecionar outra sequência dentre os valores da sequência x, por exemplo selecionar cada nésimo valor, em que n é 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 sequê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 específica. 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 tipica, 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 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
11/55 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. O método M100 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 tipica do método M100, a tarefa T400 iterage sobre a sequê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 periodo de inicialização de um ou mais quadros inativos). É também possível a implementação do método M100 de tal forma que a tarefa T200 gere um valor de inclinação espectral menos frequentemente do que cada quadro inativo (por exemplo, para cada segundo ou terceiro quadro) de tal forma que a tarefa T400 seja realizada tão frequentemente, ou menos frequentemente, quanto a tarefa T400 (por exemplo, para cada segunda ou terceira iteração da tarefa T400).
12/55
A Figura IB apresenta um diagrama de blocos de um equipamento A100 de acordo com uma configuração geral. Ο gerador de sequência 120 é configurado para gerar uma sequê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 sequência 120 pode ser configurado para realizar uma implementação da tarefa T200 tal como aqui descrita. O calculador 140 é configurado para calcular uma mudança entre pelo menos dois valores da sequê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 sequência de valores de inclinação espectral e produzir uma série de decisões de transmissão com base na sequê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
13/55 para execução de um ou mais conjuntos ou sequê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 5 computadores. Os vários elementos do equipamento A100 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 10 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 15 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 ko e outros de 20 tais parâmetros serão descritos mais adiante. Ά tarefa T200 pode ser disposta para receber uma sequê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 25 implementada para incluir uma tarefa T210 que é configurada para calcular tais valores conforme descrito mais adiante. De forma similar, o gerador de sequência 120 pode ser disposto para receber uma sequência de valores de inclinação espectral provenientes de outro elemento de um 30 equipamento maior, tal como um encodificador de fala ou um dispositivo de comunicação. Alternativamente, o gerador de sequência 120 pode ser implementado de modo a incluir um calculador 128 que é configurado para calcular tais valores conforme descrito mais adiante.
14/55
A tarefa T200 pode ser implementada para incluir uma tarefa T300 que uniformiza uma sequência de valores de inclinação espectral. Uma implementação típica da tarefa T300 é configurada para filtrar uma sequência de valores de inclinação espectral de acordo com um modelo autoregressive, 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 sequência uniformizada y na forma de uma média ponderada de um valor atual de uma sequência de entrada de valores de inclinação espectral x e um valor anterior da sequência uniformizada y:
= ax[n] + (1 - a)y[n -1], (1) em que n denota um índice sequencial. 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 sequência x 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 1C apresenta um fluxograma de uma implementação M101 do método M100 em que a tarefa T200 é implementada como a tarefa T300. A Figura 1D apresenta um diagrama de blocos de uma implementação A101 do equipamento A100 em que o gerador de sequê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 G10 ao valor atual x[h] da sequência de entrada de valores de inclinação espectral; um segundo multiplicador disposto para aplicar um fator de ganho G20
15/55 ao valor anterior 4-1] da sequê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 G10 possua um valor a tal como acima descrito com referência à tarefa T300, e que o fator de ganho G20 possua o valor (l-α). Em um exemplo específico, a sequência x consiste de uma série de valores do primeiro coeficiente de reflexão k0, o fator de qanho G10 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 sequê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 sequência de valores de inclinação espectral x (ou o resultado da realização de uma operação de uniformização sobre a sequência x) . Em uma implementação alternativa do método M100, por exemplo, a tarefa T300 é configurada para filtrar a sequência x 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 sequência x de acordo com um modelo de média móvel auto-regressiva (ARMA) . De forma similar, o uniformizador 130 pode ser 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.
16/55
O método Μ100 é tipicamente implementado de forma que cada valor da sequência de valores de inclinação espectral x que é uniformizado na tarefa T300 corresponda a um dentre uma pluralidade de quadros sucessivos do sinal de fala. De forma similar, o equipamento Ά100 é tipicamente implementado de tal forma que cada valor da sequência x 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 sequência de valores de inclinação espectral x inclua apenas valores que correspondam a quadros inativos. Em tal caso, os valores da sequência x 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 sequência de valores de inclinação espectral x. Em tal exemplo, os valores 74 e 75 são consecutivos na sequê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.
17/55
O método Μ100 pode ser configurado de tal forma que a tarefa T300 receba apenas valores de inclinação espectral da sequência x que correspondam a quadros inativos. Alternativamente, a tarefa T300 pode ser implementada para selecionar, dentre uma sequê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 sequência x que correspondam a quadros inativos. Alternativamente, o uniformizador 130 pode ser implementado para selecionar, dentre uma sequê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 encodificador 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 sequê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
18/55 consecutivos da sequência uniformizada y de acordo com uma expressão tal como a seguinte:
z[«] = y[«] - by\n -1], (2) onde z denota a saída 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[n] = y[h]- 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 frequência desejada. Para um caso em que a tarefa T200 é configurada para gerar uma sequê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[«] = x[«]-x[n-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 sequê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 à sequência gerada) , ou de outra forma calcular uma distância ou outra mudança entre valores da sequência gerada. De forma similar, o calculador 140 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.
19/55
A mudança calculada pela tarefa T400 pode ser usada para indicar uma taxa de mudança da sequência gerada de valores de inclinação espectral. Como exemplo, a magnitude de z[n] como acima descrito pode ser usada para indicar o quanto o contorno da inclinação espectral do ruído 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:
Η»]/1’ Ιψ1>Γ| , (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\p\ 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
20/55 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 sequê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 sequência
Os alternativa gerada de valores de inclinação espectral, técnicos na área notarão que do método M100, a tarefa em uma modalidade configurada para calcular a mudança como acordo com uma expressão tal como a que se
T400 pode ser uma magnitude de segue:
e que a tarefa T500 pode ser configurada indicador binário de acordo com o comparação tal como a que se segue:
0, caso contrário para ajustar um resultado de uma
O método M100 pode também ser implementado para incluir variação diferente da tarefa T500, tal como implementação que compara um valor limite com uma magnitude média de duas ou mais dentre as uma uma exemplo, uma magnitude média das os quadros atual e anterior).
A Figura 5 apresenta um mudanças mudanças calculadas (por calculadas para de blocos de uma diagrama implementação 152 do comparador 150 que pode ser usada para realizar uma o comparador transmissão implementação da tarefa 152 é configurado para através do cálculo da
T500. Em tal exemplo, realizar a decisão de magnitude da mudança com um valor limite comparação da magnitude
T10. Em um exemplo específico, o limite T10 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 usada para realizar uma implementação da tarefa T500.
calculada e ser
Em
21/55 tal exemplo, o comparador 154 é configurado para comparar um valor sinalizado da mudança calculada com valores limite positivo e negativo T10 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 TIO 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 T10. 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[w] 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 M101 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[«] para o quadro atual, a variável
22/55 y current contém inicialmente o valor mais recente da sequência uniformizada de valores de inclinação espectral y e o indicador p 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 sequê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 sequê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 p 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 tipica, 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 sequência uniformizada de valores de inclinação espectral y com base em um ou mais valores anteriores de uma sequência de valores de inclinação espectral x e/ou um ou mais valores anteriores da sequência uniformizada y. No entanto, para um valor inicial da sequência uniformizada y, pode não existir um valor anterior da sequência x e/ou da sequência uniformizada y. Caso a tarefa T300 calcule um valor da sequê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 T400 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,
23/55 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 sequência x e/ou da sequê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 sequência x. Em um exemplo especifico, uma variável configurada para armazenar o valor anterior da sequência uniformizada (y\n -1], na expressão (1) acima) é inicializada com o valor atual da sequência de entrada (x[«] 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 x[n] e x[rc-l], uma variável configurada para armazenar o valor anterior da sequência de entrada x [«-1] é inicializada com o valor atual da sequência de entrada x[w]. Alternativa ou adicionalmente, o método M100 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.
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,
24/55 um processador) para realizar uma implementação do método M101 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 ruído de conforto e parâmetros de ruído de conforto. No exemplo especifico de um Codec de taxa variável Melhorado (EVRC - Enhanced
Variable Rate CODEC), 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 ruído (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
25/55 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, frequências de linha espectrais (LSF), pares de linha espectrais (LSP), frequências espectrais de imitância (ISF), pares espectrais de imitância (ISP), coeficientes cepstrais, ou razões de log-área. O 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 frequência do envelope espectral e um índice de quatro bits LSPIDX2 em um livro código para informações de alta frequê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
26/55 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 5 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 quantizer 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 10 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 15 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.
O 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 M100 ou um dispositivo incluindo o equipamento A100 pode ser configurado para realizar a transmissão de um SID somente 25 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 30 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 35 sempre que o número de quadros inativos consecutivos que
27/55 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
28/55 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 M110 ou do equipamento A100 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 A100, ou um procedimento incluindo o método M100, 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
29/55 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 frequência que tenham ocorrido mais frequentemente no passado recente.
O 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.
O método M100 pode ser implementado de tal forma que a tarefa T200 receba a sequência de valores de inclinação espectral a partir de outro processo, tal como
30/55 um processo de encodificação de fala. Como exemplo, um dispositivo ou sistema configurado para executar uma implementação do método M100 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 frequências do sinal de fala, a tarefa T200 pode ser disposta para receber a sequência de valores de inclinação espectral com base na análise de uma banda de baixas frequências (por exemplo, incluindo frequências abaixo de 1 kHz), ou uma banda de frequências intermediárias (por exemplo, incluindo pelo menos frequências entre 1 e 2 kHz).
A tarefa T200 pode ser disposta para receber a sequência de valores de inclinação espectral como uma sequência de coeficientes de reflexão, tal como uma sequê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 encodificaçã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.
O equipamento A100 pode ser implementado de tal forma que o gerador de sequência 120 receba a sequê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
31/55 implementação do equipamento A100 tipicamente irá também incluir um encodif icador de fala, o qual pode ser configurado para realizar uma análise LPC sobre o sinal de fala. Em tal caso, o gerador de sequência 120 pode ser disposto para receber a sequência de valores de inclinação espectral como uma sequê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 sequê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 11A 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 sequê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 11B apresenta um diagrama de blocos de uma implementação A200 do equipamento A100 que inclui uma implementação 122 do gerador de sequência 120. O gerador de sequência 120 inclui um calculador 128 que é configurado para calcular a sequê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
32/55 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. O calculador 128 pode também ser disposto para prover a sequência calculada de valores de inclinação espectral para outras tarefas de um equipamento maior, tal como um encodificador de fala. O equipamento A100 pode também ser implementado de tal forma que o gerador de sequê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. O primeiro coeficiente de reflexão de um quadro (tipicamente denotado como ko) pode ser calculado como a razão Λ(1)/Λ(0) (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, J?(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 (lag) de uma amostra) e 7?(θ) 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 por:
1(2)-M(l) 7?(0>(2)-^(1); 1 (1 - )λ(ο) /í(o)2 -λ(ι)2
33/55
Em que 7?(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 frequências e a energia de uma banda de baixas frequências. Tal cálculo pode incluir a realização de uma transformada de frequê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 frequência.
No cálculo da sequê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
34/55 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 recursive de Schur (o qual pode ser configurado para computação paralela eficiente), ou o algoritmo recursive 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 específico m (em que ia é um número inteiro não menor do que zero) de acordo com uma expressão tal como:
W-l-m *W= + z i=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
35/55 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 encodificaçã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 podem ser uniformizados espectralmente realizando-se uma operação tal como:
m = Q;
'1,00003 R(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[«] ao sinal. Como exemplo, pode ser desejável zerar o sinal de fala fora do guadro ao qual a função de autocorrelação está sendo correntemente aplicada. Em alguns casos, a função de janela w[h] é 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
36/55 w[h] = <
ser desejável utilizar uma janela de cosseno levantado, tal como a seguinte função de janela de Hammig:
2πη 0,54-0,46cos----, 0<«<N-l
N-\
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 ^[n] pode ser calculado de acordo com uma expressão como se segue:
[π] = 0<n<N-l.
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 encodificador 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[«] 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-20-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).
37/55
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)= X5w[íK[? + w] · /=0
Como foi acima mencionado, pode ser desejável que a tarefa T300 ou o uniformizador 130 uniformizem uma sequência que inclui apenas valores que correspondem a quadros inativos. Em tal caso, o método M100 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 encodificador 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
38/55 correspondente. A Figura 12A apresenta um fluxograma de uma implementação M110 do método M101 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 descrito. A Figura 12C apresenta um fluxograma de uma implementação M120 do método M101 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
39/55 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 T100 pode ser configurada para avaliar a energia do quadro atual em cada uma dentre uma banda de baixas frequências e uma banda de altas frequê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 sequência de valores de
40/55 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 sequência x que está baseado apenas em quadros inativos. De forma similar, pode ser desejável que a tarefa T300 produza um valor da sequê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 M100 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 sequê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
41/55 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 M100 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 específico, 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 M100 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
42/55 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 ativoinativo 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.
O gerador de sequência 120 pode ser configurado para gerar um ou mais valores da sequê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 sequência 120
43/55 ou o uniformizador 130 podem ser configurados para suspender o início 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 sequê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 sequência (isto é, x[«]) e o valor prévio do contorno de inclinação espectral (isto é, 4”-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[h] 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[m] . Quando o estado do sinal de controle de atualização está alto, tal seletor emite o fator de ganho F10 e quando o estado do sinal de controle de atualização está baixo, tal seletor emite o fator de ganho F12. O segundo seletor emite o fator de ganho a ser aplicado a y[n -1]. 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
44/55 ganho F22. Como exemplo, os fatores de ganho FIO 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[h] passe por c valores do minimo 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 minimo (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 encodificador 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
45/55 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 (1-A/) para todos os i < j (alternativamente, para todos os i, 1<z<j), em que j é a ordem da análise LPC e kt indica o i-ésimo coeficiente de reflexão.
O 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 encodificador. 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
46/55 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 configurada para de contorno com podem ser atualização habilitar ou desabilitar a base na magnitude de uma variação no valor Gr de uma medida do ganho de codificação .
alguns casos, a medida
Em 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:
F f-, err in
De forma similar, o ganho de forma de um erro de predição, predição pode ser calculado na tal como na expressão:
para todo (alternativamente para todo 1
A medida do de acordo compreendem ganho de codificação pode também ser calculada com outras expressões que, por exemplo, o produto:
também para todo (alternativamente, para ou uma razão entre Ein θ
Eerr, como um fator ou termo.
medida do expressa em uma escala ganho de codificação pode uma escala linear ou em outro domínio, tal ser como logaritmica. Os exemplos de tais expressões incluem os seguintes:
A medida de ganho para cada quadro, frequentemente (por de codificação é tipicamente avaliada porém pode também ser avaliada menos exemplo, para cada segundo ou terceiro
47/55 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 A100 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. O 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
48/55
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 M100 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 M100 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 é confiqurada 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
49/55 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 específico, 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 A100 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
50/55 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 M100 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 p é 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
51/55 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 sequê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 M100 e o equipamento A100 podem ser implementados de tal forma que a sequê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 sequência pode incluir um valor para cada outro quadro (ou para cada terceiro quadro, etc.) na série. Tal sequência pode ser obtida ignorando-se quadros intermediários ou descartandose 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 sequências, tais como uma sequê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 sequê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
52/55 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 específica) e circuitos integrados de aplicação específica (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 A100 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
53/55 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 sequê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 aqui 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. O 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. O termo software deve
54/55 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 sequê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
55/55 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. O 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. O 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 (13)
1. Método para processar um sinal de fala, o método caracterizado por compreender:
gerar uma sequência de valores de inclinação espectral que é baseada em uma pluralidade de quadros inativos do sinal de fala, em que cada um dos valores de inclinação espectral é baseado em pelo menos um coeficiente de reflexão de um quadro inativo correspondente do sinal de fala;
calcular uma mudança entre pelo menos dois valores da sequência de valores de inclinação espectral baseados em coeficiente de reflexão;
para um quadro inativo entre a pluralidade de quadros inativos, decidir se se transmite um quadro de descrição de inserção de silêncio, SID; e em que decidir se se transmite o quadro de descrição de inserção de silêncio, SID, baseia-se na mudança calculada.
2. Método para processar um sinal de fala, de acordo com a reivindicação 1, caracterizado por gerar uma sequência de valores de inclinação espectral compreender suavizar uma sequência de entrada de valores de inclinação espectral para gerar a sequência de valores de inclinação espectral, em que cada um dos valores de inclinação espectral da sequência de entrada indica uma inclinação espectral de um quadro correspondente da pluralidade de quadros inativos.
3. Método para processar um sinal de fala, de acordo com a reivindicação 1, caracterizado por cada um dentre uma pluralidade dos valores de inclinação espectral estar baseado em pelo menos um dos valores de inclinação espectral em uma sequência de entrada de valores de inclinação espectral.
Petição 870190081963, de 22/08/2019, pág. 6/10
2/4
4. Método para processar um sinal de fala, de acordo com a reivindicação 1, caracterizado por cada um dentre uma pluralidade dos valores de inclinação espectral estar baseado em (A) uma inclinação espectral de um quadro correspondente da pluralidade de quadros inativos e (B) pelo menos um dos valores de inclinação espectral anteriores em uma sequência de entrada de valores de inclinação espectral.
5. Método para processar um sinal de fala, de acordo com a reivindicação 1, caracterizado pela mudança calculada estar baseada em uma diferença entre valores consecutivos na sequência de valores de inclinação espectral.
6. Método para processar um sinal de fala, de acordo com a reivindicação 1, caracterizado pelo resultado da decisão sobre a transmissão de um quadro de descrição de inserção de silêncio, SID, para o quadro estar baseada em uma relação entre (A) uma magnitude da mudança calculada e
quadro de descrição de inserção de silêncio, SID, transmitir o um quadro de descrição de inserção de silêncio, SID, que inclui pelo menos um dentre uma descrição de envelope espectral e uma descrição de envelope de energia.
8. Método para processar um sinal de fala, de acordo com a reivindicação 7, caracterizado por compreender calcular a descrição de inserção de silêncio, SID, com base em pelo menos um dentre (A) descrições de envelope
Petição 870190081963, de 22/08/2019, pág. 7/10
3/4 espectral de cada um de uma pluralidade de quadros inativos e (B) descrições de envelope de energia de cada um de uma pluralidade de quadros inativos.
9. Método para processar um sinal de fala, de acordo com a reivindicação 1, caracterizado por compreender calcular, para cada um de uma pluralidade dos valores de inclinação espectral na sequência de valores de inclinação espectral, uma mudança entre o valor de inclinação espectral e pelo menos um valor de inclinação espectral anterior na sequência de valores de inclinação espectral; e em que o método compreende, para cada um dos
para o quadro está baseado em pelo menos uma das mudanças calculadas.
10. Equipamento para processar um sinal de fala, o equipamento caracterizado por compreender:
meios para gerar uma sequência de valores de inclinação espectral que está baseada em uma pluralidade de quadros inativos do sinal de fala, em que cada um dos valores de inclinação espectral é baseado em pelo menos um coeficiente de reflexão de um quadro inativo correspondente do sinal de fala;
meios para calcular uma mudança entre pelo menos dois valores da sequência de valores de inclinação espectral baseados em coeficiente de reflexão; e meios para decidir, para um quadro inativo entre a pluralidade de quadros inativos e com base na mudança calculada, se deve ser transmitido o quadro de descrição de inserção de silêncio, SID.
Petição 870190081963, de 22/08/2019, pág. 8/10
4/4
11. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10, caracterizado pelo equipamento compreender meios para transmissão, em resposta a uma decisão pelos meios para decidir sobre uma transmissão de um quadro de descrição de inserção de silêncio, SID, que inclui pelo menos uma dentre uma descrição de envelope espectral e uma descrição de envelope de energia.
12. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10, caracterizado pelos meios para gerar uma sequência de valores de inclinação espectral estarem configurados para gerar 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.
13. Equipamento para processar um sinal de fala, de acordo com a reivindicação 10, caracterizado pelos meios para gerar uma sequência de valores de inclinação espectral estarem configurados, para cada um dentre a sequência de valores de inclinação espectral, para ajustar o valor de inclinação espectral para o valor anterior entre a sequê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.
14. Memória caracterizada por compreender instruções para realizar o método conforme definido em qualquer uma das reivindicações 1 a 9.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US83468906P | 2006-07-31 | 2006-07-31 | |
| US60834689 | 2006-07-31 | ||
| US11/830,548 US8725499B2 (en) | 2006-07-31 | 2007-07-30 | Systems, methods, and apparatus for signal change detection |
| US11830548 | 2007-07-30 | ||
| 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 BRPI0715063A2 (pt) | 2013-05-28 |
| BRPI0715063B1 true 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 (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101565919B1 (ko) * | 2006-11-17 | 2015-11-05 | 삼성전자주식회사 | 고주파수 신호 부호화 및 복호화 방법 및 장치 |
| CN101246688B (zh) * | 2007-02-14 | 2011-01-12 | 华为技术有限公司 | 一种对背景噪声信号进行编解码的方法、系统和装置 |
| US8032359B2 (en) | 2007-02-14 | 2011-10-04 | Mindspeed Technologies, Inc. | Embedded silence and background noise compression |
| WO2008103087A1 (en) * | 2007-02-21 | 2008-08-28 | Telefonaktiebolaget L M 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 | 삼성전자주식회사 | 잔차 신호 부호화 방법 및 장치와 잔차 신호 복호화 방법및 장치 |
| DE102008009718A1 (de) * | 2008-02-19 | 2009-08-20 | Siemens Enterprise Communications Gmbh & Co. Kg | Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen |
| DE102008009719A1 (de) * | 2008-02-19 | 2009-08-20 | Siemens Enterprise Communications Gmbh & Co. Kg | Verfahren und Mittel zur Enkodierung von Hintergrundrauschinformationen |
| US8463603B2 (en) * | 2008-09-06 | 2013-06-11 | Huawei Technologies Co., Ltd. | Spectral envelope coding of energy attack signal |
| ES2410259T3 (es) * | 2008-10-16 | 2013-07-01 | Telefonaktiebolaget L M Ericsson (Publ) | Aparato y método para controlar transmisiones esporádicas de Descriptor de Inserción de Silencio (SID) |
| WO2010146711A1 (ja) * | 2009-06-19 | 2010-12-23 | 富士通株式会社 | 音声信号処理装置及び音声信号処理方法 |
| JP5870476B2 (ja) * | 2010-08-04 | 2016-03-01 | 富士通株式会社 | 雑音推定装置、雑音推定方法および雑音推定プログラム |
| CN103187065B (zh) | 2011-12-30 | 2015-12-16 | 华为技术有限公司 | 音频数据的处理方法、装置和系统 |
| CN103325386B (zh) | 2012-03-23 | 2016-12-21 | 杜比实验室特许公司 | 用于信号传输控制的方法和系统 |
| ES2799773T3 (es) * | 2013-01-29 | 2020-12-21 | Fraunhofer Ges Forschung | Llenado de ruido sin información secundaria para codificadores tipo CELP |
| JP6082126B2 (ja) | 2013-01-29 | 2017-02-15 | フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. | 音声信号を合成するための装置及び方法、デコーダ、エンコーダ、システム及びコンピュータプログラム |
| US9711156B2 (en) * | 2013-02-08 | 2017-07-18 | Qualcomm Incorporated | Systems and methods of performing filtering for gain determination |
| US9741350B2 (en) | 2013-02-08 | 2017-08-22 | Qualcomm Incorporated | Systems and methods of performing gain control |
| US9179404B2 (en) | 2013-03-25 | 2015-11-03 | Qualcomm Incorporated | Method and apparatus for UE-only discontinuous-TX smart blanking |
| EP3671738B1 (en) * | 2013-04-05 | 2024-06-05 | Dolby International AB | Audio encoder and decoder |
| US9263061B2 (en) * | 2013-05-21 | 2016-02-16 | Google Inc. | Detection of chopped speech |
| CN105225668B (zh) | 2013-05-30 | 2017-05-10 | 华为技术有限公司 | 信号编码方法及设备 |
| 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 | 上海艾为电子技术股份有限公司 | 无限冲激响应滤波器及其控制方法 |
| EP3382703A1 (en) | 2017-03-31 | 2018-10-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and methods for processing an audio signal |
| WO2020002448A1 (en) * | 2018-06-28 | 2020-01-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive comfort noise parameter determination |
| BR112021012753A2 (pt) * | 2019-01-13 | 2021-09-08 | Huawei Technologies Co., Ltd. | Método implementado por computador para codificação de áudio, dispositivo eletrônico e meio legível por computador não transitório |
| CN117436712B (zh) * | 2023-12-21 | 2024-04-12 | 山东铁鹰建设工程有限公司 | 一种施工挂篮运行风险实时监测方法及系统 |
Family Cites Families (29)
| 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 |
| CA2483324C (en) * | 1991-06-11 | 2008-05-06 | Qualcomm Incorporated | Estimation of background noise in a variable rate vocoder |
| 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 |
| WO1999010719A1 (en) * | 1997-08-29 | 1999-03-04 | 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 |
| EP1164580B1 (en) * | 2000-01-11 | 2015-10-28 | Panasonic Intellectual Property Management 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 |
| CN1703736A (zh) | 2002-10-11 | 2005-11-30 | 诺基亚有限公司 | 用于源控制可变比特率宽带语音编码的方法和装置 |
| 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 |
| US8260611B2 (en) | 2005-04-01 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for highband excitation generation |
| PT1875463T (pt) | 2005-04-22 | 2019-01-24 | Qualcomm Inc | Sistemas, métodos e aparelho para nivelamento de fator de ganho |
| US8032369B2 (en) | 2006-01-20 | 2011-10-04 | Qualcomm Incorporated | Arbitrary average data rates for variable rate coders |
-
2007
- 2007-07-30 US US11/830,548 patent/US8725499B2/en active Active
- 2007-07-31 WO PCT/US2007/074895 patent/WO2008016942A2/en not_active Ceased
- 2007-07-31 ES ES07813616T patent/ES2733099T3/es active Active
- 2007-07-31 EP EP07813616.5A patent/EP2047457B1/en active Active
- 2007-07-31 JP JP2009523024A patent/JP4995913B2/ja active Active
- 2007-07-31 HU HUE07813616A patent/HUE042959T2/hu unknown
- 2007-07-31 CA CA2657420A patent/CA2657420C/en active Active
- 2007-07-31 RU RU2009107181/09A patent/RU2417456C2/ru active
- 2007-07-31 KR KR1020097001886A patent/KR101060533B1/ko active Active
- 2007-07-31 BR BRPI0715063A patent/BRPI0715063B1/pt active IP Right Grant
Also Published As
| Publication number | Publication date |
|---|---|
| US20080027716A1 (en) | 2008-01-31 |
| ES2733099T3 (es) | 2019-11-27 |
| JP4995913B2 (ja) | 2012-08-08 |
| JP2009545779A (ja) | 2009-12-24 |
| BRPI0715063A2 (pt) | 2013-05-28 |
| KR20090033461A (ko) | 2009-04-03 |
| RU2009107181A (ru) | 2010-09-10 |
| CA2657420A1 (en) | 2008-02-07 |
| CA2657420C (en) | 2015-12-15 |
| WO2008016942A2 (en) | 2008-02-07 |
| HUE042959T2 (hu) | 2019-07-29 |
| US8725499B2 (en) | 2014-05-13 |
| RU2417456C2 (ru) | 2011-04-27 |
| WO2008016942A3 (en) | 2008-04-10 |
| EP2047457A2 (en) | 2009-04-15 |
| KR101060533B1 (ko) | 2011-08-30 |
| EP2047457B1 (en) | 2019-03-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0715063B1 (pt) | sistemas, métodos e equipamentos para detecção de mudança de sinal | |
| JP6698792B2 (ja) | オーディオフレーム損失のコンシールメントを制御する方法及び装置 | |
| US10535358B2 (en) | Method and apparatus for encoding/decoding speech signal using coding mode | |
| JP6334808B2 (ja) | 時間ドメイン符号化と周波数ドメイン符号化の間の分類の改善 | |
| US11328739B2 (en) | Unvoiced voiced decision for speech processing cross reference to related applications | |
| AU2013377884B2 (en) | Systems and methods of performing gain control | |
| TWI467979B (zh) | 用於信號改變偵測之系統、方法及裝置 | |
| WO2008157296A1 (en) | Signal encoding using pitch-regularizing and non-pitch-regularizing coding | |
| US10950251B2 (en) | Coding of harmonic signals in transform-based audio codecs | |
| RU2682851C2 (ru) | Усовершенствованная коррекция потери кадров с помощью речевой информации | |
| RU2408088C2 (ru) | Способ векторного квантования параметров линейного предсказания | |
| HK40103944A (zh) | 用於声音信号的统一时域/频域编码的方法和装置 |
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. |