domingo, 19 de agosto de 2012

Neste Blog eu pretendo colocar algumas ideias de contribuições que os alunos da disciplina Codificação de Voz do curso de Telecom Oi 2011/2012 poderão fazer.

A 1a. poderia ser: as relações existentes entre o CELP e o LPC conforme visto ao longo do curso.

Abçs, até a próxima,

Ricardo

25 comentários:

  1. Metodologia empregada pelo Professor, na comparação do LPC e os outros codificadores. ACC

    ResponderExcluir
  2. Respostas
    1. Alex, vc poderia acrescentar no blog o comentário mais inteligível que vc fez por mail? Assim vc estaria contribuindo com todos e não só comigo... e poderia estar dando uma bola dentro...
      Abç,
      Ricardo

      Excluir
  3. Professor,
    o filtro LPC é um codificador paramétrico, porem está relacionado com a quantização e já o CELP apresenta características tanto de codificador de forma de onda e quanto de codificadores paramétricos. Sendo assim usa-se quantização dos parâmetros do filtro LPC na codificação CELP.

    ResponderExcluir
  4. Então no LPC as características do sinal de voz (tais parametros perceptuais e de excitação do trato vocal)são identificadas na codificação e usadas na decodificação, junto a um sintetizador de voz, para gerar o áudio final, sendo o som gerado de forma metalizado.
    Já o CELP é um codificador híbrido por utilizar uma combinação de análise da forma do sinal e a modelagem da fonte. Ou seja, no CELP tanto os parâmetros LPC do modelo do trato vocal quanto uma representação comprimida dos erros (erros entre a fala original e a fala gerada pelo modelo sintético) são codificados.

    ResponderExcluir
  5. O algoritmo de codificação CELP é o mais utilizado atualmente em sistemas de telecomunicações que exigem um sinal de voz sintetizado de boa qualidade e baixas taxas de bits.
    O LPC, por exemplo, é capaz de garantir boa inteligibilidade da voz a taxas menores do que 2,4 kbits/s.
    Os codificadores CELP ("Code-Excited Linear Predictive") pertencem a uma família de
    codificadores capazes de gerar sinais de voz de boa qualidade a baixas taxas (entre 4 e 16 kbits/s).
    A codificação CELP (assim como outras) baseia-se no tratamento de blocos de amostras, conhecidos
    como quadros. Em um período de tempo (quadro) suficientemente curto, o sinal de voz não apresenta
    variação significativa em suas estatísticas, podendo ser considerado estacionário dentro deste período.
    O CELP operando a 4,8 kbits/sapresentava uma qualidade de voz bem superior ao do LPC.

    Informações tiradas da Internet

    ResponderExcluir
  6. A idéia de Codificação por Predição Linear (LPC) é reduzir o numero de bits por segundo que precisamos transmitir. Enquanto codificadores como o PCM transformam em bits cada amostra do sinal na entrada, o LPC calcula amostra atual e amostras anteriores.
    Com isso, ao invés de enviar bits a cada amostra, reúnem um grupo de algo como 200 amostras para ser enviado.
    Os codificadores preditivos excitados por códigos (CELP) são descritos de forma variante no tempo com base em uma abordagem vetorial do método de análise mediante síntese, suscitando as questões da propagação dos estados e da busca do sinal de excitação.

    ResponderExcluir
    Respostas
    1. Vc tem razão qdo diz que o objetivo de uma codificação é diminuir o no. de bits transmitidos/gravados. Tem razão tb no que diz sobre o PCM... que pode ser considerado um padrão em cima do qual os outros vão apresentar "ganhos".
      No entanto seria melhor dizer que o LPC USA uma fórmula de predição para gerar símbolos (chamados de parâmetros do LPC) que codificam conjuntos de amostras ao invés de codificar amostra por amostra. O GSM, por exemplo, codifica 160 amostras através de 10 parâmetros... e a gente sabe que funciona bem...
      Esta "mágica" acontece pq o LPC calcula, por exemplo, 10 parâmetros, fazendo várias médias das 160 amostras. Acaba que os 10 caras carregam a informação de todas as amostras.

      Excluir
    2. Concordo com seu comentário, encontrei a seguinte informação também:

      Sobre LPC
      O LPC (Codificação Por Predição Linear) é um codificador paramétrico de sinais de voz muito utilizado
      e que, extrai os parâmetros para o modelo do trato vocal diretamente da forma de onda no tempo, obtendo um resultado melhor que outros tipos de vocoders que obtêm seus parâmetros a partir do espectro de freqüência. Fundamentalmente, um LPC analisa a forma de onda para produzir um filtro de síntese variante no tempo que modela o trato vocal, reproduzindo sua função de transferência, um sintetizador recria o sinal de voz pela passagem de uma excitação específica pelo mesmo modelo matemático do trato vocal, que é atualizado periodicamente.
      A excitação ideal a ser aplicada no filtro de síntese é o sinal residual obtido na saída do filtro inverso,
      quando na sua entrada é aplicado o próprio sinal de voz. Porém, no LPC essa excitação é modelada
      parametricamente, sem que se busque reproduzir sua forma de onda, mas somente as características mais
      marcantes do seu espectro de amplitude. É a modelagem “trem de impulsos/ruído”, onde a
      excitação, que é amplificada com um ganho G relativo à amplitude do sinal de voz, pode ser uma fonte de ruído branco (para segmentos surdos) ou um trem de pulsos separados pelo período de pitch (para segmentos sonoros).

      Sobre CELP
      A codificação preditiva linear excitada por dicionário de códigos, ou CELP, é um algoritmo híbrido, que
      trabalha com um modelo matemático do trato vocal ao mesmo tempo em que tenta aproximar o sinal gerado
      ao sinal de voz original, conseguindo assim reproduções de boa qualidade a taxas de até 4 kbit/s, consideradas relativamente baixas.
      A maioria das técnicas de codificação de voz aplicadas na telefonia celular derivam do CELP, se
      distinguindo deste basicamente por modificações nos dicionários de código que dão origem à excitação.

      A diferença básica entre o CELP e os vocoders está na fonte de excitação, que é não é do tipo trem de
      pulsos/ruído como no LPC, mas sim constituído por um esquema de quantização vetorial de dois estágios
      em paralelo.
      O primeiro estágio possui um dicionário adaptativo que é constituído por K1 sequências retiradas da excitação passada e é responsável pela reprodução da periodicidade dos segmentos sonoros do sinal de voz, substituindo o filtro correlato a longo termo empregado nos primeiros codificadores CELP. Valores típicos para K1 são 128 e 256. O segundo estágio possui um dicionário fixo constituído por K2 sequências estocásticas, determinísticas, ou obtidas por meio de um procedimento de treinamento. Valores usuais de K2 são 128, 256, 512 e 1024. Para uma frequência de amostragem de 8 kHz e período de atualização do predito de pitch de 5ms, estas sequências devem ter 40 amostras cada. Os parâmetros do filtro síntese, que são em geral 10, são por sua vez atualizados a cada 20ms. A sequência de excitação com a qual se deseja reproduzir o segmento de voz é obtida como uma combinação linear de duas sequências obtidas uma de cada dicionário, que são escolhidas por um procedimento onde são testadas diversas excitações possíveis para sintetizar o segmento de voz corrente, escolhendo-se aquela que minimiza a medida de erro ponderado na saída do filtro de ponderação.

      Abraço,

      Fonte: http://pgea.unb.br/~joaoluiz/pdf/carvalho-dias2000_vocoders.pdf (dia 25/09/2012 ás 19:12)

      Excluir
  7. Mestre a informacao apresentada pelo nosso Professor Ossione Quardos é valida, porém para adicionar informação aos seu conteúdo, seria importante frizar que no calculo das amostras no LPC, não devemos nos atentar somente ao valor a ser previsto posteriormente ou anteriormente a cada amostra, pois no LPC o calculo dos parametros é de suma importancia, quando comparadas as amostras a serem previstas.

    ResponderExcluir
    Respostas
    1. Márcio, não há dúvida de que o professor Ossione é um mestre. Porém, haveria que fazer algumas correções de vocabulário. Como vcs sabem a previsão é, na realidade, uma "previsão"... pq os valores são conhecidos. Apesar disto usa-se uma fórmula de previsão para os aproximar... com a finalidade de obter os tais parâmetros do LPC. E eles é que são transmitidos, economizando banda...(se eles são "previstos" usando valores anteriores ou posteriores é indiferente).
      Vc saberia dizer onde está a economia de banda?

      Excluir
  8. Durante a explicacao do Mestre Rhomberg, foi possivel aprender que o GSM utiliza 160 parametros, e que durante o calculo matricial realizado no LPC, as amostras anteriores e posteriores a estes parametros, sao desconsideradas, isto é, tem seu valor igual a zero. Com isto, podemos exemplificar que se possuimos 1000 parametros, utilizamos somente 160 destes para realizarmos o calculo matricial. Se forem escolhidos aleatoriamente os valores compreendidos entre 200 e 360, os parametros de 1 ate 199, e de 361 até 1000 sao zerados no calculo matricial.

    ResponderExcluir
    Respostas
    1. Márcio, algumas correções: o número de AMOSTRAS é igual a 160, representadas (para efeito de gravação ou de transmissão) por 10 parâmetros... O cálculo matricial, como vc chama, é feito para se calcularem os 10 parâmetros... levando em consideração as 160 amostras nos cálculos das médias.
      Acho que isto ajuda na resposta à pergunta que te fiz há pouco, valendo agora 2 pontos...

      Excluir
    2. Então a economia de banda ocorre pelo fato do algoritmo do LPC assumir que cada amostra de voz é uma combinação linear de amostras anteriores. A voz é amostrada, armazenada e analisada. O sinal é transmitido para o receptor, onde são processados os coeficientes calculados da amostra. Com correlação de longo prazo de amostras, o receptor processa e categoriza com precisão os sons vocálicos e não vocálicos da voz.
      Então a economia de banda está em justamente em não transmitir as amostras e sim a diferença em relação a amostra anterior.

      Excluir
    3. Parabéns! Bola dentro!
      Com o ponto que vc ganhou passou do conceito D para C, ou seja, de re-provado para a-provado.
      Vc poderia ganhar mais um se corrigisse a frase "a economia de banda está em justamente em não transmitir as amostras e sim a diferença em relação a amostra anterior". Ela se aplica mais ao DPCM (Diferential...) no caso do LPC que é um codificador paramétrico não é a diferença que é transmitida/gravada... são os ....
      Abç,
      Ricardo

      Excluir
    4. Apenas os parâmetros descritos no modelo sintético são transmitidos ao decodificador.

      Excluir
  9. Valeu meu chefe. Passou de D para B direto. Usando os nos do GSM, transmitem-se apenas 10 parâmetros que representam 160 amostras... daí o grande ganho de banda (ou de espaço em disco se estivermos falando de gravação) e o nome de codificador paramétrico...
    Parabéns! Abç,
    Ricardo

    ResponderExcluir
    Respostas
    1. Este comentário foi removido pelo autor.

      Excluir
    2. Dr Paiva, muito rica a tabela de comparação dos vários tipos de compressão para transmissão/gravação que vc arranjou.
      Ponto pra vc como diz a propaganda do BB.
      CONCEITO A!
      Abç,
      Ricardo

      Excluir
    3. Ok. Professor.
      Obrigado pelo reconhecimento. o Assunto "compressão" e muito extenso, complexo e interessante.
      Caso encontre mais alguma coisa que julgue interessante encaminharei aos demais atraves deste Blog.
      Abraços,

      Excluir
  10. Com a comunicação de voz sobre Ip aumentando de forma exponencial nos últimos anos, as redes que possibilitam essa comunicação estão cada vez mais congestionadas, refletindo em perdas de pacotes e latência, o que prejudica diretamente a comunicação de voz, pois necessitam da inteligibilidade do sinal em tempo real.
    Pela necessidade da implementação de mecanismos de controle que possa otimizar o uso destas redes e ao mesmo tempo garantir a qualidade do sinal de voz transmitido é que vem sendo desenvolvido e empregado o uso de codificadores multitaxas na comunicação de voz. Vários padrões tem sido desenvolvidos, dentre eles podemos destacar o LPC(Codificação por Predição Linear) e o CELP(Codificadores preditivos excitados por códigos). Por isso a importância do estudo entre a relação destes dois tipos de codificadores.
    Márcio.

    ResponderExcluir
  11. Caro Márcio, de fato a comunicação de voz por IP vem aumentando, do ponto de vista do gde público e internamente nas redes das próprias Telcos. A GVT, por exemplo, oferece telefonia por "puro sangue IP" roubando banda da "banda larga" (nome comercial) que ela oferece para o pobre idiota que nem percebe que está pagando por um serviço que está incluído em outro que já pagou.
    Porém a compressão de dados é feita através dos sistemas normatizados pelas RFCs correspondentes qdo o cara usa a internet para se comunicar (pq senão o receptor pode não ter como descomprimir o sinal recebido) ou através de métodos próprios qdo feita dentro da rede da empresa que usa o IP para transporte. Gostei de saber que tb se usam codificadores paramétricos. De que fonte vc tirou esta informação? Bola dentro.
    Abç,
    Ricardo

    ResponderExcluir
    Respostas
    1. Linear Prediction Coding: LPC
      O LPC (Codificação Por Predição Linear) é um codificador paramétrico de sinais de voz utilizado para extrair os parâmetros para o modelo do trato vocal diretamente da forma de onda no tempo. O seu resultado é melhor que o dos outros tipos de vocoders que obtêm seus parâmetros a partir do espectro de frequência.
      Um codificador LPC analisa a forma de onda para produzir um filtro de síntese variante no tempo que modela o trato vocal e reproduz sua função de transferência. No receptor um sintetizador recria o sinal de voz pela passagem de uma excitação específica pelo mesmo modelo matemático do trato vocal, que é atualizado periodicamente.

      Excluir
  12. Márcio, desculpe a demora.
    Como te disse na última 6af a tua postagem foi muito parecida com uma das anteriores. Isto não invalida tua participação, apenas revela que vc não deve estar acompanhando o que disseram seus colegas.
    Vc ganhou um ponto pelo que disse acima. No entanto, daria para me ajudar a entender a relação entre trato vocal e modelo matemático a que fez referência?
    Abç,
    Ricardo

    ResponderExcluir
  13. Codificadores CELP e LPC
    Função de um CODEC:
    • A finalidade de um CODEC é converter sinais analógicos em sinais digitais para transmissão de dados na rede. Neste blog tratamos especificamente de dois tipos, o LPC10 que tem taxa de 2.5 Kbps e o CELP com taxa de 4.8 Kbps
    Descritivo de operação de cada um destes CODECs:
    Codificador/Decodificador LTP (Long-Term Prediction):
    Este CODEC de voz é utilizado no sistema GSM900, utilizam-se amostras do passado
    para obter uma predição linear da amostra atual. Como resultado final o sinal de voz é codificado com um débito de 13 kbit/s. É implementada ainda uma funcionalidade de transmissão descontínua DTX (Discontinuous Transmission) na qual se suspende a transmissão rádio durante os períodos de silêncio durante o tempo de uma conversação. Estes períodos correspondem a aproximadamente 50 a 60% do tempo de conversação.
    Este método ajuda a reduzir ainda mais a interferência entre canais na interface rádio e também contribui para melhorar a autonomia do terminal móvel. No entanto, durante estes períodos a saída de áudio produzida no terminal móvel seria o silêncio o que poderia dar ao usuário a impressão de que a ligação tenha sido terminada. Para resolver este problema o terminal gera localmente durante os períodos de silêncio um ruído, denominado ruído de conforto, para que o usuário não tenha a impressão de que a ligação foi terminada.

    Codificador/Decodificador CELP (Code-Excited Linear Prediction):
    Predição linear com excitação por código é um Codec que utiliza procedimento de análise-por-síntese (cadeia fechada) baseada em predição linear (LPAS). Proposto em 1985 por M.R. Schroeder e B.S. é o algoritmo de codificação de fala mais utilizado atualmente. Ele contém 4 idéias principais:
    • Usa o modelo de fonte-filtro de produção da fala, através de predição linear (LP).
    • Usa um conjunto de códigos fixos e adaptáveis para a entrada do modelo LP.
    • Executa uma busca em circuito fechado.
    • Aplica quantização vetorial.
    Basicamente, a codificação CELP é feita da seguinte forma:
    • Os coeficientes da codificação linear preditiva (LPC) são computados e quantizados.
    • O dicionário de códigos adaptativo é procurado e sua contribuição retirada.
    • O dicionário de códigos fixo é procurado.
    O princípio seguido é o de que o resíduo de dupla predição se aproxima de ruído branco, pelo que inicialmente foi designada por codificação estocástica. O codificador proposto utilizava um dicionário com 1024 palavras de código de duração 5 ms, sendo também quantificado um fator de escala para toda a palavra de código, correspondendo a um total de cerca de 3000 bits/s. Inicialmente, o algoritmo original demorava 100 segundos para codificar 1 segundo de fala. Desde então, maneiras mais eficientes de codificação foram implementadas, tornando o processo mais rápido e podendo ser utilizados até em telefonia móvel, tais como os celulares GSM.

    Fontes:
    http://www.hardware.com.br
    http://www.gsmworld.com/index1.html
    http://www.umts-forum.org
    http://www.wirelessbrasil.org/
    http://www.wikipedia.org/


    ResponderExcluir