1 / 38

Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição

Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição. António Teixeira 8 Janeiro 2005. Análise LPC Análise Cepstral Obtenção de F0 e Formante MATLAB lpc() rceps() xcorr(). Aula 12. Análise LPC. Uma introdução.

Télécharger la présentation

Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Conceitos de Sinais e SistemasMestrado em Ciências da Fala e da Audição António Teixeira 8 Janeiro 2005

  2. Análise LPC Análise Cepstral Obtenção de F0 e Formante MATLAB lpc() rceps() xcorr() Aula 12

  3. Análise LPC Uma introdução

  4. A análise de Fourier não é a única forma de determinar o espectro de um sinal • Uma técnica muito utilizada na área do processamento de voz e Fonética envolve determinar os chamados coeficientes de predição linear (Linear Predictive Coding Coeefficients) • Este procedimento é conhecido por análise LPC • é um processo mais complexo que a DFT • mas é possível compreender os princípios sem entrar nos detalhes matemáticos mais complexos

  5. Segundo a teoria-fonte filtro produz-se um som pela passagem de uma excitação por um filtro “Entrada nula”  cordas vocais  tracto vocal  rad  voz isto é “Entrada nula”  sistema (cordas vocais + tracto + rad) voz • A noção base da análise LPC baseia-se no processo inverso • voz  sistema inverso (filtro LPC)  “saída zero” a saída será zero se o filtro LPC for exactamente o inverso do sistema • No primeiro caso temos “síntese” ou produção, no segundo “análise”

  6. Na abordagem LPC as características espectrais da fonte glotal e radiação são incluídas conjuntamente com as relativas ao tracto vocal num mesmo filtro

  7. A análise LPC envolve determinar um filtro cujas características em termos de resposta em frequência seja o inverso do espectro do sinal de voz • Como já vimos os filtros digitais são definidos por um conjunto de coeficientes • lembra-se dos vectores usados no comando filter ? • Também é possível usar um conjunto de coeficientes para “prever” o valor de uma amostra do sinal com base em amostras anteriores • y[n]= função de y[n-1], y[n-2], y[n-3] ... • O algoritmo LPC faz uma previsão desta forma usando um número reduzido de pontos anteriores, multiplicando cada por um coeficiente

  8. O princípio básico da análise LPC é a de que uma amostra pode ser considerado como simplesmente a a soma de um número de amostras anteriores, cada multiplicada por um número adequado • os números são denominados coeficientes de predição linear • y[n]= a1 y[n-1] + a2 y[n-2] ....

  9. Para um sinal y, a análise LPC calcula os coeficientes a[1] ... a[p] tais que y[n]= a[1] y[n-1] +a[2] y[n-2]+ ... +a[p] y[n-p] +erro

  10. Relação com a produção de voz • A produção pode ser descrito pela equação de convolução y * a = b * x onde x é ma fonte, a e b coeficientes. • Para sons sem anti-ressonâncias (exemplo: as vogais) b=1 e a equação reduz-se • y * a = x y[n] + a[1] y[n-1] +a[2] y[n-2] + ... +a[k]y[n-k]=x[n] ou rearranjando y[n] = -a[1] y[n-1]-a[2] y[n-2]- ... -a[k]y[n-k]+x[n] • Ou seja, num modelo sem anti-ressonâncias, a amostra actual é igual a uma combinação linear de amostras anteriores da saída mais a entrada • O modelo proposto antes é, portanto, adequado

  11. Um exemplo de como determinar os coeficientes • Consideremos um sinal • tomemos 12 amostras (uma janela) • designados por s1, s2, ..., s12 • a estimativa para s5 considerando as 4 amostras anteriores • s^5= a1 x s4 + a2 x s3 + a3 x s2 + a4 x s1 • num caso concreto teríamos algo como • s^5 = -42 a1 + 17 a2 + 5 a3 + 90 a4

  12. continuando... • s^6= - 71 a1 – 42 a2 + 17 a3 + 50 a4 • s^7= .... • s^8= .... • s^9= .... • Se cada amostra fosse correctamente predicto, não haveria diferença entre s e s^ 0=sn – s^n

  13. isto é s6 – s^6 = 0 = -40 – (-71 a1 –42 +17 a3 + 50 a4) s7-s^7=0 = -4 –(-74 a1 –54 a2 + 16 a3 + 97 a4) s8- s^8=0 = 22 – (-40 a1 – 79 a2 – 54 a3 + 16 a4) s9-s^9=0 =49 – (-4 a1 –59 a2 – 79 a3 – 54 a4) temos um sistema de 4 equações com 4 incógnitas facilmente se obtem a1,a2,a3 e a4 neste caso: a1=0.5, a2=-0.6, a3=0.4 e a4=-0.7

  14. generalizando • No entanto pretendemos obter os coeficientes que sejam adequados não apenas a este conjunto restrito e específico de pontos mas para qualquer amostra • como vimos resolvendo a equação anterior obtemos coeficientes adequados para s6 a s9 • mas darão um erro se aplicados a outras amostras • o erro para cada ponto é designado por en • en=(s^n – sn)2 • usa-se o quadrado para que seja sempre positivo

  15. teremos: e6=(s^6 – s6)2 (a1 s5 + a2 s4 + a3 s3 + a4 s2 – s6)2 e7=(s^7 – s7)2 (a1 s6 + a2 s6 + a3 s4 + a4 s3 – s7)2 ... e12=(s^12 – s12)2 (a1 s11 + a2 s10 + a3 s9 + a4 s8 – s7)2 • o algoritmo resolve este conjunto de equações tentando minimizar o erro • Usando o Matlab obtêm-se rapidamente usando o comando lpc() • Os coeficientes são uma forma eficiente de descrever o sinal de voz

  16. Matlab – lpc() • A = LPC(X,N) finds the coefficients, A=[ 1 A(2) ... A(N+1) ], of an Nth order forward linear predictor • Xp(n) = -A(2)*X(n-1) - A(3)*X(n-2) - ... - A(N+1)*X(n-N) • such that the sum of the squares of the errors err(n) = X(n) - Xp(n) is minimized. • [A,E] = LPC(X,N) returns the variance (power) of the prediction error. • LPC uses the Levinson-Durbin recursion to solve the normal equations that arise from the least-squares formulation. • This computation of the linear prediction coefficients is often referred to as the autocorrelation method.

  17. Métodos de obtenção dos coef. • Existem várias formas de obter os coeficientes • Sem entrar nos detalhes, refiram-se: • método da autocorrelação • método da covariância • método da “lattice” • Consultar livros como Rabiner & Schafer 1978 para os detalhes

  18. Demo lpclearn

  19. Exemplo • Consideremos um segmento de sinal (de uma vogal) • ak=lpc(frame,12) • resultado 1.0000 -2.3994 2.0545 -0.5626 -0.1950 0.0965 -0.0118 -0.1951 0.7283 -0.5366 -0.4562 0.8068 -0.3069

  20. Resposta em frequência • Como após a determinação dos coeficientes temos um filtro (em que a saída depende de valores da saída em instantes anteriores) podemos obter a sua resposta em frequência

  21. Como o filtro obtido será o inverso do filtro de produção, as características espectrais do segmento analisado serão:

  22. Análise na frequência com LPC • Tendo os coeficientes a1...ak facilmente se obtém o espectro • Exemplo: • Material analisado: pequeno segmento de uma vogal a0= 1.0000 a1= -0.1155 a2= -0.4197 a3= 0.1063 a4= 0.2854 a5= 0.6263 a6= -0.2841 a7= -0.2171 a8= -0.0904 a9= 0.2207 a10= 0.2150 a11= -0.2755 a12= -0.3004 Raiz1 878 Raiz2 1420 Raiz3 2729 Raiz4 3446

  23. LPC vs FFT para obter espectro

  24. A análise LPC separa os componentes relativos à fonte e ao filtro • É importante para a determinação da frequência fundamental e as formantes

  25. Questões práticas • Ordem a utilizar • Regra prática • Frequência de amostragem em kHz + 2 • Exemplo: 10000 Hz => 10+2=12 • Aplicar janelas • Usar pré-ênfase • O espectro da fala decai com o aumento da frequência • Para facilitar a análise LPC tenta-se corrigir esse efeito • y(n)=x(n) – a x(n-1), a~0.98

  26. Pré-ênfase • As primeiras formantes têm maior energia e são preferencialmente modeladas • A maior energia deve-se ao efeito combinado da excitação glotal e da radiação • Geralmente utiliza-se um filtro de pré-ênfase • s’(n)=s(n) – a1 s(s-1) • Tipicamente 0.96<= a1 <= 0.99 • Para reconstruir o sinal deve usar-se o filtro inverso • s(n)= s’(n) + a1 s(n-1)

  27. Leitura adicional • Capítulo 11 do livro “Elements of Acoustic Phonetics” de Peter Ladefoged, 2ª ed., University of Chicago Press. • SDUA 801.4 17 2ed • Capítulo 8 do livro “Techniques in Speech Acoustics” de J. Harrington e S. Cassidy, Kluwer Academic Press, 1999 • SDUA 800H 664 • Apresenta: • informação sobre a forma como são calculados os coeficientes LPC (secção 8.2) • Obtenção do espectro com base nos coeficientes (sec. 8.4)

  28. Exercícios Matlab • Obter um pequeno segmento (frame) de uma vogal • Obter os coeficientes com a ajuda do Matlab • Obter a resposta em frequência do filtro e do filtro inverso • comparar com o espectro obtido pela DFT/FTT • Obter o sinal de erro • Verificar o efeito de alterar o número de coeficientes • Repetir o processo para outro tipo de som (fricativa por exemplo)

  29. Análise Cepstral

  30. Motivação • Como o sinal de voz pode ser obtido pela convolução da excitação glotal com a resposta impulsional do filtro constituído pelo tracto torna-se necessário muitas vezes efectuar a operação inversa (desconvolução) • A análise cepstral é uma das técnicas que permite estimar uma separação da fonte do filtro • Uma das motivações é que os harmónicos da frequência fundamental podem dificultar a análise das formantes • uma muito melhor estimativa das formantes poderia ser obtida se os harmónicos forem removidos de alguma forma

  31. Propriedades importantes • Para compreender a análise cepstral interessa perceber como são representados no espectro a fonte e o filtro • Uma das propriedades da DFT é que se dois sinais x (a fonte) e h (o filtro) são convoluidos a sua DFT é igual ao produto da DFT de x pela DFT de h • Quando se representa o espectro em dBs temos uma escala logaritmica • logaritmo(a x b) = logaritmo(a) + logaritmo (b) • Portanto, o espectro em dBs representa a SOMA do espectro da fonte com o do filtro • o que nos fornece um caminho para os separar ...

  32. Uma pequena revisão: • se tivermos um sinal composto por duas sinusóides, uma variando lentamente no tempo, outra rapidamente, • isto é uma de baixa frequência e outra de frequência elevada • onde apareceriam as riscas no espectro ? • A correspondente à baixa frequência apareceria na parte “baixa” do espectro; a outra na parte “alta”

  33. O cepstro • É esta lógica que está na base da separação das variações rápidas do espectro devido à fonte das variações lentas do filtro • Se considerarmos o espectro como um sinal (no tempo) e aplicarmos a DFT então a parte devida à fonte deverá aparecer nas frequências elevadas e a relativa ao filtro nas frequências baixas • Na prática não se aplica a DFT para a inversa (IDFT) para converter da frequência para o tempo • o caminho inverso da DFT • Curiosamente, apesar de inversas a DFT e a IDFT resultam no mesmo efeito de separação • com a DFT ou IDFT a parte de variação rápida é separada da parte de variação lenta

  34. Cepstro real Definição:

  35. Origem do nome • Como se trata de um espectro de outro espectro, os seus “inventores” criaram uma variação da palavra “spectrum” chegado a “cepstrum” • adaptado ao Portugês: “espectro”  “cepstro” • Já agora: • filtering  liftering • frequency  quefrency

  36. Em Matlab z=rceps(x); x zx

  37. Espectro suave • Depois de separados podemos eliminar cada uma das partes por um processo de filtragem • Se eliminarmos a parte de frequências mais elevadas e voltarmos a efectuar uma DFT teremos um espectro “suave” com “apenas” as características devidas ao filtro (tracto)

  38. Cepstro de sinal periódico • Se o sinal original é periódico então a fonte manifesta-se como “picos” espaços da duração do período fundamental

More Related