MÉTODO E SISTEMA PARA REDUZIR EFEITOS DE ARTEFATOS QUE PRODUZEM RUÍDO EM UM CODEC DE VOZ
FUNDAMENTOS DA INVENÇÃO
1. CAMPO DA INVENÇÃO
A presente invenção se refere geralmente à codificação de fala. Mais particularmente, a presente invenção se refere a redução de efeitos de artefatos que produzem ruído em um codec de voz.
2. TÉCNICA ANTERIOR
A redução da fala pode ser usada para reduzir o número de bits que representa o sinal de fala que reduz desse modo a largura da banda necessária para transmissão. Entretanto, a redução da fala pode resultar em degradação da qualidade da fala descomprimida. Geralmente, uma taxa de bit mais elevada conduzirá em alta qualidade, quando uma taxa de bit mais baixa resultará em má qualidade. Entretanto, as técnicas de redução de fala modernas, tais como técnicas de codificação, podem produzir a fala descomprimida de qualidade relativamente alta em taxas de bit relativamente baixas. Geralmente, as técnicas de codificação modernas tentam representar as características importantes perceptualmente do sinal de fala, sem preservar a forma de onda real da fala. Os sistemas de redução de fala, chamados geralmente codec, incluem um codificador e um decodificador e podem ser usados para reduzir a taxa de bit de sinais de fala digitais. Os algoritmos numerosos foram desenvolvidos para os codecs de fala que reduzem o número de bits exigido para codificar digitalmente a fala original ao tentar manter a alta qualidade de fala reconstruída.
FIG. 1 ilustra sistema de decodificação de fala convencional 100, que inclui o decodificador de excitação 110, filtro de síntese 120 e pós-processador 130. Como mostrado, o sistema de decodificação 100 recebe o fluxo de bits de fala codificado 102 sobre um meio de comunicação (não mostrado) de um codificador, onde o sistema de decodificação 100 possa ser parte de um dispositivo de comunicação móvel, uma estação base ou outro dispositivo de comunicação sem fio ou com fio que é capaz de receber o fluxo de bit de fala codificado 102. O sistema de decodificação 100 opera para decodificar o fluxo de bit de fala codificado 102 e gerar o sinal de fala 132 na forma de um sinal digital. O sinal de fala 132 pode então ser convertido a um sinal análogo por um conversor numérico-analógico (não mostrado). A saída análoga do conversor numérico-analógico pode ser recebida por um 10 receptor (não mostrado) que possa ser uma orelha humana, um registrador de banda magnética, ou qualquer outro dispositivo capaz de receber um sinal análogo. Alternativamente, um dispositivo de gravação digital, um dispositivo de reconhecimento de fala, ou qualquer outro dispositivo capaz de receber um sinal digital pode receber sinal de fala 132. O decodificador de excitação 110 decodifica o fluxo de bit de fala codificado 102 de acordo com o algoritmo de codificação e taxa de bit de fluxo de bit de fala codificado 102, e gera a excitação decodificada 112. O filtro de síntese 120 pode ser um filtro de predição a curto prazo que gera fala sintetizada 122 baseada na excitação decodificada 112. O pós-processador 130 pode incluir a filtração, o realce do sinal, a redução de ruído, a amplificação, a correção da inclinação e outras técnicas similares capazes de melhorar a qualidade perceptual da fala sintetizada 122. O pós-processador 130 pode diminuir o ruído audível sem visivelmente degradar a fala sintetizada 122. Diminuir o ruído audível pode ser realizado enfatizando a estrutura formadora da fala sintetizada 122 ou suprimindo o ruído nas regiões de freqüência que não são perceptualmente relevantes para a fala sintetizada 122.
Em codificadores de fala de taxas variáveis, as partes perceptualmente importantes da fala (por exemplo, fala expressa, plosivos, ou inícios expressos) são codificadas com um número mais elevado de bits, e as partes menos importantes da fala (por exemplo, partes não expressas ou palavras entre silêncio) são codificadas com um número mais baixo de bits. A supressão do ruído melhora a qualidade do sinal reconstruído de voz e ajuda os codificadores de fala de taxas variáveis distinguirem as partes de vozes das peças de ruído. A supressão do ruído igualmente ajuda baixos codificadores de fala bit-taxa a produzir uma saída de alta qualidade melhorando a qualidade de fala perceptual. Tipicamente, as técnicas da supressão do ruído removem o ruído por métodos de subtração espectrais no domínio de freqüência. Um detector da atividade da voz (VAD) determina no tempodomínio se uma estrutura do sinal inclui fala ou ruído. As estruturas do ruído são analisadas no domínio de freqüências para determinar características do sinal de ruído. Destas características, os espectros das estruturas do ruído são subtraídos dos espectros das estruturas de fala, fornecendo um sinal de fala limpo nas estruturas de fala.
Também, a atenuação do ruído tempo-domínio pode ser aplicada para melhorar a qualidade de um sinal de fala. Por exemplo, em um sistema de codificação de fala com a atenuação do ruído tempo-domínio, descrito no Pedido E.U.A. n° de série 09/782.791, depositado em 13 de Fevereiro de 2001, que é incorporado por este meio pela referência em sua totalidade, os ganhos da codificação de fala de predição linear são ajustados por um fator de ganho para suprimir o ruído de fundo. Como descrito aqui, o sistema de codificação de fala usa supressão de ruído domínio-freqüência junto com a atenuação de voz tempo- domínio para reduzir mais o ruído de fundo. Depois que um sinal análogo é convertido em um sinal digitado, um pré-processor suprime o ruído no sinal digitado usando uma supressão de ruído domínio-freqüência VAD. Quando o VAD identificar uma estrutura associada com somente o ruído (nenhum fala), uma estrutura de janela que inclui a estrutura identificada de aproximadamente ms que é transformada no domínio de freqüência. As magnitudes espectrais do sinal de fala ruidoso são modificadas para reduzir o nível de ruído de acordo com um SNR estimado, e os valores espectrais modificados são combinados com as fases espectrais não modificadas. O espectro modificado é transformado então de volta ao tempo-domínio. Um esquema de análise por síntese escolhe a melhor representação para diversos parâmetros tais como um ganho de livro de código fixo ajustado, um índice fixo de livro de código, um parâmetro de retardação, e parâmetro ajustado de ganho do preditor à longo prazo. Os ganhos podem ser ajustados por um fator de ganho antes da quantização. O fator de ganho Gf pode suprimir o ruído de fundo no domínio de tempo ao manter o sinal de fala, onde Gf é definido por Gf= 1 - C.NSR, onde NSR é a relação ruído para sinal baseado na estrutura, e C é uma constante na escala de 0 a 1 e controla o grau de redução de ruído. NSR tem um valor de aproximadamente 1 quando somente o ruído de fundo está detectado na estrutura, e quando a fala está detectada na estrutura, NSR é a raiz quadrada da energia de ruído de fundo dividida pela energia de sinal na estrutura.
Entretanto, as aproximações existentes não endereçam corretamente a diminuição de efeitos de artefatos que produzem ruídos nas áreas silenciosas de um sinal de fala, e especialmente quando um VAD não está disponível. Em áreas silenciosas, os valores da amostra são completamente pequenos e seus erros de quantização são relativamente muito grandes. Os efeitos destes erros são agravados mais pela execução de ponto fixo de um algoritmo de codificação de fala com sua exatidão limitada por meio dos valores de número inteiro que conduzem aos erros de quantização relativos das áreas silenciosas para se tornar muito maior, que faz com que uma energia de saída mais elevada comparada à energia de 5 entrada de silêncio original, e de um ruído mais audível.
Conformemente, há uma necessidade intensa na técnica para os métodos e os sistemas de codificação de fala de baixa complexidade que podem eficazmente reduzir efeitos de artefatos em um sinal de fala, e especialmente em áreas silenciosas do sinal de fala e/ou sem utilizar um VAD.
SUMÁRIO DA INVENÇÃO
A presente invenção é dirigida a um método de reduzir o efeito de artefatos que produzem ruído em áreas silenciosas de um sinal de fala para uso por um sistema de decodificação de fala. Em um aspecto, o método compreende a obtenção de uma pluralidade de amostras entrantes de uma subestrutura de fala; somando um valor absoluto de um nível de energia para cada um dentre a pluralidade de amostras entrantes para gerar um nível de entrada total (gainjn); atenuando o nível de entrada total para gerar um nível atenuado (Leveljn_sm)·, determinando que a subestrutura de fala está em uma área silenciosa baseada no nível de entrada total, no nível atenuado e em um parâmetro de inclinação espectral; definindo um ganho usando k1 *(Level_in_sm/1024) + (1-k1), onde K1é uma função do parâmetro de inclinação espectral; e modificando um nível de energia da subestrutura de fala usando o ganho.
Em um aspecto mais adicional, a atenuação é executada usando (Level_in_sm= 0,75* Level_in_sm + 0,25* gainjn), e a determinação é executada usando (Level_in_sm< 1024) && (gainjn < 2* Leveljn_sm) && (parcorO <512./32768).
Em um outro aspecto, o método ainda compreende atribuição Level_in_sm to againjn (gain_in= Level_in_sm) if Level_in_sm < gain_in. Contudo, em um outro aspecto, o método igualmente compreende a soma de um valor absoluto de um nível de energia para cada um dentre a pluralidade de amostras de saída, antes da alteração, para gerar um nível de saída total (gain_out)\ determinando um ganho inicial usando (gain_in/gain_out); e modificando o ganho usando o ganho inicial para gerar um ganho modificado (gO), onde a alteração compreende a multiplicação sig_out para cada um dentre a pluralidade de amostras de saída por um ganho atenuado (g_sm), onde o g_sm é obtido usando iterações de 0 a n-1 de (g_sm anterior* 0,95 g0*0,05), onde η é o número de amostras, e o g_sm anterior é zero (0) antes da primeira iteração.
Em um aspecto separado, é fornecido um método de reduzir efeitos de artefatos que produzem ruído em um sinal de fala. O método compreende obter uma pluralidade representante de amostras entrantes de uma subestrutura de fala; somar um nível de energia para cada um dentre a pluralidade de amostras para gerar um nível de entrada total; comparar o nível de entrada total com um limiar predeterminado; ajustar um valor de ganho como uma função do nível de entrada total, onde o valor do ganho está entre zero (0) e um (1), e onde a função resulta em um valor mais baixo de ganho quando o nível de entrada total for indicativo de uma área silenciosa do que quando o nível de entrada total for indicativo de uma área não silenciosa; multiplicar a pluralidade de representante das amostras de subestrutura de fala pelo valor de ganho.
Em um aspecto relacionado, o ajuste divide o nível de entrada total pelo limiar 25 predeterminado se o nível de entrada total não for maior do que o limiar predeterminado, e o ajuste ajusta o valor de ganho a um (1) se o nível de entrada total for maior do que o limiar predeterminado.
Em um aspecto mais adicional, o somatório soma um valor absoluto do nível de energia para cada um dentre a pluralidade de amostras para gerar o nível de entrada total.
Em um aspecto, o método é executado por um sistema de decodificação de fala. Contudo, em um outro aspecto, o método é executado por um sistema de decodificação de fala.
Em um aspecto adicional, o método mais adicional compreende determinar se o sinal de fala é um sinal de banda estreita ou um sinal de banda larga; e executar a obtenção, a soma, a comparação, o ajuste e a multiplicação somente se a determinação determina que o sinal de fala é o sinal de banda estreita.
Contudo, em um outro aspecto adicional, o método mais adicional compreende a detectar uma transição do sinal de fala entre um sinal de banda 15 estreita e um sinal de banda larga; e gradualmente mudar o valor de ganho baseado na transição.
Outras características e vantagens da presente invenção tornar-se-ão mais prontamente aparentes àquelas de versados na técnica após ter revisto a seguinte descrição detalhada e desenhos em anexo.
BREVE DESCRIÇÃO DOS DESENHOS
As características e as vantagens da presente invenção tornar-se-ão mais prontamente aparentes àquelas de versados na técnica após ter revisto a seguinte descrição detalhada e desenhos em anexo, onde:
FIG. 1 ilustra um diagrama em bloco de um sistema de decodificação convencional para decodificar e pós-processar fluxo de bits de fala codificado; FIG. 2 ilustra um diagrama em bloco de um pós-processador de fala, de acordo com uma modalidade do presente pedido; e
FIG. 3 ilustra um diagrama de fluxo de um método de pós-processar para uso pelo pós-processador de fala da FIG. 2, de acordo com uma modalidade do presente pedido.
DESCRIÇÃO DETALHADA DA INVENÇÃO
Embora a invenção seja descrita no que diz respeito às modalidades específicas, os princípios da invenção, como definidos pelas reivindicações adicionadas aqui, podem obviamente ser aplicados além das modalidades especificamente descritas da invenção descrita aqui. Além disso, na descrição da presente invenção, certos detalhes foram deixados a fim de não obscurecer os aspectos inventivos da invenção. Os detalhes deixados estão dentro do conhecimento de uma pessoa versada na técnica.
Os desenhos no presente pedido e sua descrição detalhada de acompanhamento são dirigidos meramente às modalidades de exemplo da invenção. Para manter a brevidade, outras modalidades da invenção que usam os princípios da presente invenção não são descritas especificamente no presente pedido e não são ilustradas especificamente pelos desenhos atuais. Deve-se ter que, a menos que notáveis de outra maneira, como ou os elementos correspondentes entre as figuras podem ser indicados por ou numerais de referência correspondentes.
FIG. 2 ilustra um diagrama em bloco do pós-processador de fala 220, de acordo com uma modalidade do presente pedido. Como mostrado, o pós-processador de fala 220 recebe o sinal entrante (sig_in) 210 e gera sinal de saída (sig_out) 230 após pós-processamento de sigjn 210 para reduzir os efeitos audíveis de artefatos em áreas silenciosas de sigjn 210. Com referência à FIG. 3, que ilustra um diagrama de fluxo de exemplo do método de pós-processamento 300 para uso pelo pós-processador de fala 220, o calculador de nível de energia de subestrutura 222 recebe sigjn 210, na etapa 310, e calcula uma soma do nível de energia absoluto de cada amostra de uma subestrutura de sigjn 210, que podem ser definidos por:
<formula>formula see original document page 10</formula>
Equação 1,
onde L é o nível de energia de subestrutura, S(n) designa sig_n 210, e (n) é o número de amostras.
Em seguida, o comparador de nível de energia de subestrutura 224 recebe o nível de energia de subestrutura (L) do calculador de nível de energia de subestrutura 222, e na etapa 320, o comparador de nível de energia de subestrutura 224 compara o nível de energia de subestrutura (L) com um limiar predeterminado (TH), por exemplo, 1.024, para uma determinação se o nível de energia de subestrutura (L) for indicativo de uma área silenciosa.
A saída do comparador de nível de energia de subestrutura 224 é recebida então pelo modificador de nível de energia de subestrutura 226. Se o modificador de nível de energia de subestrutura 226 determina que o nível de energia de subestrutura (L) é maior do que o limiar predeterminado (TH), na etapa 320, o método de pós-processamento 300 move-se para etapa 330, que é indicativa da área não silenciosa de fala. Na etapa 330, um valor de ganho (g) é ajustado a um (1). De um lado, se o modificador de nível de energia de subestrutura 226 determina que o nível de energia de subestrutura (L) não é maior do que o limiar predeterminado (TH), na etapa 320, o método de pós-processamento 300 move-se para etapa 340, que é indicativa da área silenciosa de fala. Na etapa 340, o valor de ganho (g) é ajustado de acordo com o resultado do nível de energia de subestrutura (L) dividido pelo limiar predeterminado (TH), onde 0 < g < 1, como mostrado abaixo:
<formula>formula see original document page 11</formula>
Equaçao 2.
Em seguida, o método de pós-processamento300 move-se para etapa 350, onde o modificador de nível de energia de subestrutura 226 modifica o nível de energia de subestrutura (L), para reduzir efeitos de artefatos nas áreas silenciosas de sinal de saída de pós-processador (sig_out) 230, por exemplo, multiplicando o nível de energia de subestrutura (L) pelo limiar predeterminado (TH), como mostrado 10 na etapa 350, que é definida por:
Equação 3.
Em uma modalidade preferida da presente invenção, as modalidades de FIG. 2 e FIG. 3 são executadas em um decodificador de fala; entretanto, em outras modalidades, a presente invenção pode igualmente ser executada por um 15 codificador. Mais, embora a equação 2 mostre que g é uma função de L para áreas silenciosas, g pode igualmente ser uma função L nas áreas não silenciosas (L>TH) em outras modalidades. Por exemplo, nas modalidades de FIG. 2 e FIG. 3, g é ajustado a um (1) nas áreas não silenciosas (L>TH), de modo que S(n) permaneça não modificado após a operação da Equação 3 em áreas não silenciosas. Em 20 adição, embora a equação 2 mostre que g é definido pela função de L/TH, outras funções de L/TH, outras funções de L podem ser utilizadas por outras modalidades.
Os apêndices AeB mostram uma execução de uma modalidade da presente invenção usando linguagem de programação "C" em ponto fixo e em ponto flutuante, respectivamente. Em uma modalidade, no lado do decodificador, a energia do sinal é reduzida após detectar o sinal de baixo nível de silêncio. Por exemplo, o nível de sinal anterior ao pós-processamento de fala puder ser definido como:
<formula>formula see original document page 12</formula>
Equação 4,
onde Lsub é o tamanho de subestrutura ou o número de amostras de fala para cada subestrutura, e sig_in () é o sinal antes do desempenho do pós-processamento de fala. Em seguida, o nível atenuado de sig_in é calculado por:
Levei_in_sm= 0,75*Level_in_sm + 0,25*gainjn Equação 5,
onde o valor inicial do Level_in_sm é zero (0). Em uma modalidade, as equações 4 e podem ser executadas pelo calculador do nível de energia de subestrutura 222 do pós-processador 200 na FIG. 2.
Em tal modalidade, a detecção de silêncio é baseada no nível de sinal e parâmetro de inclinação espectral, que é referido igualmente como o primeiro coeficiente de reflexão (parcorO)), como mostrado abaixo: Sil_Deci = (Level_in_sm< 1024) && (gain_in < 2* Level_in_sm) && (parcorO <512./32768);
Equação 6,
onde, Sil_Deci = 1 é indicativo da detecção de baixo nível de silêncio. Em uma modalidade, o comparador de nível de energia de subestrutura 224 pode determinar Sil_Deci, de acordo com a equação 6.
Mais, se a seguinte circunstância for satisfatória, o gainjn (ou o nível de sinal de referência) é substituído com o nível de sinal atenuado, que pode ser executado pelo modificador de nível de energia de subestrutura 226: Se ((Sil_Deci = 1) && (Level_in_sm< gainjn))
gain_in = Leveljn_sm; Equação 7, Onde, (Level_in_sm< gain_in) é indicativo de inexistência de picos grandes no sinal. Agora, sig_out presumido (i), i=0, 1,..., Lsub-1, é o sinal pós-filtrado antes do ajuste de ganho discutido abaixo, o nível de sinal pós-filtrado inicial pode ser calculado pelo calculador de nível de energia de subestrutura 222, como segue:
<formula>formula see original document page 13</formula>
Equação 8,
onde, o ganho inicial para ajustar a energia de sinal pós-filtrada pode ser determinado pelo modificador de nível de energia de subestrutura 226 como:
<formula>formula see original document page 13</formula> Equação 9,
Uma vez que o silêncio de baixo nível é detectado, isto é Sil_Deci= I, modificador de nível de energia de subestrutura 226 pode reduzir ainda o ganho inicial aplicando o seguinte fator de ganho (gain), como mostrado abaixo:
gain = kl*(Levcl in smJ1024) + (14:1):
Equaçao 10,
onde <formula>formula see original document page 13</formula> é uma função de parcorO, e:
<formula>formula see original document page 13</formula>
Finalmente, o modificador de nível de energia de subestrutura 226 aplicará um ajuste de ganho ao sinal pós-filtrado, como segue, onde g_sm é o ganho atenuado: <formula>formula see original document page 14</formula>
Em outras palavras, sig_out é modificado multiplicando sig_out para cada um dentre a pluralidade de amostras de saída por um ganho atenuado (g_sm), onde g_sm é obtido usando iterações de 0 a n-1 de (g_sm anterior * 0,95 + g0*0,05), onde η é o número de amostras ou o tamanho de subestrutura, e g_sm anterior é zero (0) antes da primeira iteração.
Em uma modalidade preferida da presente invenção, a redução de ganho de silêncio descrita acima é executada somente para o sinal de fala (0-4 KHz) de banda estreita no decodificador, mas não para o sinal de fala (4-8 KHz) de banda larga. Entretanto, outras modalidades da presente invenção podem incluir execuções de codificador e/ou de banda larga. Mais, quando uma transição de/para sinal de fala de banda estreita de/para sinal de fala de banda larga é detectada, o ganho pode gradualmente ser mudado ou ajustado um pouco do que uma aplicação abrupta (transição de banda larga à banda estreita) ou não aplicação (transição de banda estreita à banda larga) do ganho reduzindo os efeitos de artefatos nas áreas silenciosas, onde comutar entre a banda estreita e a banda larga é ainda descrito no
Pedido de Patente dos E.U.A. N0 de série_depositado
N0 do procurador 0160148, intitulado "Seamless Switching
Between Narrowband and Wideband Speech", o qual é incorporado por este meio pela referência em sua totalidade.
Da descrição acima da invenção manifesta-se que várias técnicas podem ser usadas executando os conceitos da presente invenção sem partir de seu escopo. Além disso, quando a invenção for descrita com referência específica a determinadas modalidades, uma pessoa versada na técnica reconheceria que as mudanças podem ser feitas na forma e no detalhe sem partir do espírito e do escopo da invenção. Por exemplo, contempla-se que os circuitos divulgados aqui podem ser executados em software, ou vice-versa. As modalidades descritas devem ser consideradas em todos os respeitos como ilustrativas e não restritivas. Deve-se igualmente compreender que a invenção não está limitada às modalidades particulares descritas aqui, mas é capaz de muitos rearranjos, modificações, e substituições sem partir do escopo da invenção.
ANEXO A
<table>table see original document page 15</column></row><table> <table>table see original document page 16</column></row><table> for (i = 0; i < G729EV_G729JL_SUBFR; ί++)
L_temp = L_abs(L_deposit_1(sig_out[i])); L_acc — L_add(L_ãcc, Ljtemp);
}
MdefWMOPS
test();;
tfendíf
if(Lacc=OL) (
*gai«j>rcc = 0;
ffifdef WMOPS
movei 6Q;
#endif
retiim;
}
scal_out - nonnJ{L_acc); L_acc = LjshI(LjKcs scaljout);
s_g_out = extractJi(L_acc); /* nonrialízed */ sh_gQ = addfscaljn, 1);
ShjgO = subfshjgO, scaljout); /* scaljn - scal_out + 1 */ #ifdefWMOPS
tcstO;
fejidif
if (sub(s_g_in, s_g_OBt) < 0) {
gO = dív_s(s_g jn, s g_oat); ί* s_g_in/s_g_out in Ql5 */
}
else
í
íemp = sub(s_g_in, Sj6_out); /* sufficient since normalized */ gO - shr(div s(temp5 s_g_out)) 1);
gO = add(go7(WorcI16) 0x4000); /* s_g_in/s_g_out inQ14 */ sh gO = sub(sh_gO, 1);
}
(* L^ainJu/L_gain_out in Q14 */
(* overflows if LjgainJn >2* L_g3Ín_oirt */
gO = shr(gO, sh_gÕ); /* sh_gO may be >0, <0, or =0 */
«fdef SILENCE JXEANÍNG
if ( Cond=I )
{ /* Apply a gato reduction for silence; the gain is defined as
gala - Cteveyb_saiyMAX_SlLBN(^_LB\^)%l + (I-M);
kl (0=<k1<—1) is a function of PÀRCORQ '*!
/*kl ia Q15*/
temp=sub(512, parcorO):
if (temp>2047) temp=2047;
temp=shl(temp, 4); <formula>formula see original document page 18</formula> <formula>formula see original document page 19</formula> <formula>formula see original document page 20</formula> <formula>formula see original document page 21</formula>