Compressão de fala - No LPC, como o filtro preditivo linear funciona em um nível geral?

7

Olá, estou fazendo um curso de sistemas multimídia e me preparando para o exame na terça-feira. Estou tentando entender a compressão LPC em um nível geral, mas estou tendo problemas com o que está acontecendo com a parte do filtro preditivo linear. Este é o meu entendimento até agora:

O LPC funciona digitalizando o sinal analógico e dividindo-o em segmentos. Para cada um dos segmentos, determinamos os principais recursos do sinal e tentamos codificá-los com a maior precisão possível. As principais características são a afinação do sinal (ou seja, a frequência básica do formante), a intensidade do sinal e se o som é sonoro ou sonoro. Também são determinados parâmetros chamados parâmetros de excitação do trato vocal, que são usados ​​no modelo do trato vocal para modelar melhor o estado do trato vocal que gerou o som. Esses dados são transmitidos pela rede e decodificados no receptor. A afinação do sinal é usada como entrada para um sintetizador sonoro ou sonoro, e os dados de intensidade sonora são usados ​​para aumentar a amplitude desse sinal resultante.

Nas minhas anotações, diz que o modelo do trato vocal usa um filtro preditivo linear e que a enésima amostra é uma combinação linear das amostras p anteriores e um termo de erro, proveniente do sintetizador.

  • isso significa que mantemos uma média contínua das últimas p amostras no codificador e no decodificador? Para que no codificador transmitamos apenas dados que correspondam à diferença entre esse sinal médio e o real?

  • Por que é uma combinação linear dessas amostras anteriores? Meu entendimento é que extraímos a sonoridade, a frequência e a natureza sonora / sonora do som e, em seguida, geramos esses parâmetros de excitação do trato vocal escolhendo-os para que a diferença entre o sinal real e o sinal previsto seja o menor possível. Certamente uma MÉDIA dessas amostras anteriores seria uma indicação melhor da próxima amostra?

Se houver algum buraco no meu entendimento, se você pudesse apontá-lo, seria ótimo! Desde já, obrigado!

user1058210
fonte

Respostas:

13

Os codificadores de voz LPC (começando com o antigo padrão LPC10, que parece ser o que você se refere aqui) são baseados no modelo de produção de fala com filtro de fonte. A fala pode ser caracterizada pelas seguintes propriedades:

  • O som bruto emitido pela laringe (através da vibração das pregas vocais, ou apenas do ar que flui através dela, as pregas vocais são abertas).
  • A função de transferência do filtro alcançada pelo sistema articulatório, filtrando ainda mais esse som bruto.

Os primeiros codificadores LPC (LPC10) adotam o seguinte modelo dessas duas etapas:

  • A laringe emite um ruído branco, caracterizado por uma amplitude ; ou um trem de impulsão periódico, caracterizado por uma amplitude e uma frequênciaσσf0
  • A função de transferência do sistema articulatório tem a forma e, portanto, é inteiramente caracterizada pelos coeficientes11kakzkak

O princípio dos primeiros codificadores LPC (como o LPC10) é, portanto, estimar esses parâmetros a partir de pedaços do sinal de áudio recebido; transmiti-los pela rede; e faça com que um gerador de som reproduza um som desses parâmetros no receptor. Observe que, nesse processo, nada das amostras de áudio originais é realmente transmitido. Para fazer uma analogia musical, é como ouvir uma performance de piano, transcrevê-la, enviar a partitura e conseguir que alguém a toque do outro lado ... O resultado do outro lado será próximo da performance original, mas apenas uma representação foi enviada.

isso significa que mantemos uma média contínua das últimas p amostras no codificador e no decodificador?

Não, não é assim que funciona. No lado do codificador, executamos um processo conhecido como estimativa AR (auto-regressiva), para estimar o conjunto de coeficientes do filtro AR que melhor corresponde ao envelope espectral do sinal de entrada. Esta é uma tentativa de recuperar os coeficientes da filtragem realizada pelo sistema articulatório.

Esses coeficientes são enviados pela rede (junto com a afinação, a bandeira de voz / não sonorizada e a sonoridade). O decodificador usa esses coeficientes para filtrar um sinal de excitação sintético, que pode ser ruído branco (quadro não sonoro) ou um pente de impulsões periódicas (quadro sonoro). Esses coeficientes são usados ​​da seguinte maneira no decodificador para recuperar o sinal de saída :y(n)

y(n)=excitation(n)kaky(nk)

Observe que, como se trata de um filtro IIR de todos os pólos, as amostras combinadas linearmente são amostras anteriores produzidas pelo filtro.

Para que no codificador transmitamos apenas dados que correspondam à diferença entre esse sinal médio e o real?

Não há "média" e não há transmissão de um sinal de diferença. O decodificador é um sintetizador de som com alguns parâmetros; e o codificador procura o conjunto de parâmetros para este sintetizador que mais se aproxima do sinal de entrada.

Por que é uma combinação linear dessas amostras anteriores?

Outras opções seriam possíveis aqui, mas a vantagem de usar um modelo auto-regressivo é a seguinte:

  • Neste modelo, usamos um filtro IIR de todos os pólos para simular o sistema articulatório. Este é um bom modelo, pois pode capturar fortes quedas e picos espectrais com um pequeno número de coeficientes; e o sistema articulatório é realmente capaz de enfatizar / atenuar faixas estreitas de frequências (ver formantes ). Se tivéssemos usado um filtro FIR com todos os zeros, precisaríamos de muito mais coeficientes para capturar com precisão o tipo de resposta do filtro que o sistema articulatório pode alcançar.
  • Na extremidade do codificador, o problema de estimar os coeficientes do filtro é computacionalmente eficiente - isso pode ser feito usando a recursão de Levinson-Durbin nas primeiras amostras da autocorrelação. Modelos lineares mais complexos (ARMA) ou não lineares são mais caros em termos de computação ou intratáveis.
  • No final do decodificador, a síntese é muito simples - precisamos de memória suficiente para acompanhar as n amostras anteriores emitidas pelo decodificador.

Certamente uma MÉDIA dessas amostras anteriores seria uma indicação melhor da próxima amostra?

Isso não é verdade. Por exemplo, suponha que o sinal de entrada seja uma onda senoidal. A previsão tem erro zero, enquanto está errado na maior parte do tempo (em particular, não captura o fato de que a onda senoidal está aumentando estritamente na metade do tempo, diminuindo estritamente o resto do tempo, então não deve estar "entre" os valores anteriores). Os sinais de fala não são ondas senoidais, é claro - mas você pode extrair muito mais poder de modelagem de um modelo com parâmetros (ordem p AR) do que de um modelo com zero (média).y^(n)=(2ω2)y(n1)y(n2)y^(n)=y(n1)+y(n2)2y(n)p

Além disso, vale lembrar que existe uma definição matemática de "melhor" (minimizando o valor esperado do quadrado do erro), que gera um procedimento para encontrar o valor ideal dos coeficientes.

pichenettes
fonte