1 / 25

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 15 Janeiro 2005. Obtenção de F0 e Formante. Aula 13. Obtenção da Frequência Fundamental. Determinação de F0. F0 é uma propriedade fundamental dos sons vozeados

diep
Download Presentation

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 15 Janeiro 2005

  2. Obtenção de F0 e Formante Aula 13

  3. Obtenção da Frequência Fundamental

  4. Determinação de F0 • F0 é uma propriedade fundamental dos sons vozeados • Estimar F0 é muito mais difícil do que se possa imaginar !! • A excitação é apenas quase-periódica • Alguns Métodos • Método da autocorrelação • Método usando predição linear • Método cepstral

  5. Pitch e frequência • Pitch é a qualidade subjectiva relacionada com a frequência • No entanto, outros factores afectam a percepção de pitch • por exemplo: o pitch depende em certa medida da intensidade com que um tom é apresentado ao ouvinte

  6. Determinação do pitch pelo método da autocorrelação close all;clear all [x,fs]=wavread('seg4'); t=(1:length(x))/fs*1000; plot(t,x) %Defina janela de observaçao de 20ms N=floor(0.02*fs); t1=(1:N)/fs*1000; rx=xcorr(x,N,'coeff'); figure(2) plot(t1,rx(N+1:2*N)) %determine o maximo da autocorrelaçao para %desvios superiores a 2ms(500Hz) N1=floor(0.002*fs); [x0,imax]=max(rx(N+N1:2*N+1)); imax=imax+N1; t0=imax/fs*1000; f0=1/t0*1000; fprintf(1,'O pitch e´: %6.2f ms\n',t0) fprintf(1,'A frequencia fundamental e´: %6.1f Hz\n',f0) O pitch e´: 8.00 ms A frequencia fundamental e´: 125.0 Hz A janela deve conter pelo menos dois períodos de pitch

  7. Estimativa biased Estimativa unbiased Determinação da autocorrelação

  8. A utilização directa da autocorrelação pode resultar em múltiplos máximos • Tornando difícil a decisão • Um método para tentar resolver o problema é utilizar “center-clipping” • Colocando a zero as amostras que se situem abaixo de um certa percentagem da amplitude máxima (por exemplo Sondhi usou 30 %)

  9. exemplo autocorrelação Center-clipped 50 % O pitch e´: 4.60 ms A frequencia fundamental e´: 217.4 Hz

  10. Determinação do pitch pelo cepstrum

  11. Determinação do pitch pelo cepstrum close all;clear all [x,fs]=wavread('seg4'); N=length(x); t=(1:length(x))/fs*1000; plot(t,x) z=rceps(x); figure(2) plot(z(1:length(x)/2)) N1=0.02*N [z0,imax]=max(z(N1:N/2)); imax=imax+N1 t0=imax/fs*1000; f0=1/t0*1000; fprintf(1,'O pitch e´: %6.2f ms\n',t0) fprintf(1,'A frequencia fundamental e´: %6.1f Hz\n',f0) O pitch e´: 7.88 ms A frequencia fundamental e´: 127.0 Hz

  12. Outro exemplo • Mesmo sinal usado em center-clipped O pitch e´: 4.59 ms A frequencia fundamental e´: 218.1 Hz

  13. O cepstrum contém harmónicos da frequência fundamental • Os valores baixos de quefrency representam a forma do tracto • Os valores elevados de quefrency representam a excitação • E no caso de sinais vozeados a frequência fundamental

  14. AMDF • AMDF – Average Magnitude Difference Function • Mais rápido, em especial quando se utiliza aritmética inteira • Não necessita de multiplicações

  15. Filtro passa baixo Filtro inverso Autocorrelação Janela Análise LPC Determinação do pitch por filtragem inversa O pitch e´: 8.13 ms A frequencia fundamental e´: 123.1 Hz

  16. close all;clear all [x,fs]=wavread('seg1'); t=(1:length(x))/fs*1000; plot(t,x) %filtragem passa baixo [b,a]=butter(3,0.25); x=filter(b,a,x); %Defina janela de observaçao de 20ms N=floor(0.02*fs); y=x(1:N).*hamming(N); t=(1:N)/fs*1000; %Determine o modelo LPC de ordem 16 p=16; a=real(lpc(y,p)); %determinação do residuo por filtragem %inversa e=filter(a,1,y); figure(2) plot(t,e) ry=xcorr(y,N,'coeff'); figure(3) plot(t,ry(N+1:2*N)) %determine o maximo da autocorrelaçao para %desvios superiores a 2ms(500Hz) N1=floor(0.002*fs); [x0,imax]=max(ry(N+N1:2*N+1)); imax=imax+N1; t0=imax/fs*1000; f0=1/t0*1000; fprintf(1,'O pitch e´: %6.2f ms\n',t0) fprintf(1,'A frequencia fundamental e´: %6.1f Hz\n',f0) Determinação do pitch por filtragem inversa

  17. Pós-processamento • Os métodos expostos podem cometer erros • Produzindo variações bruscas do valor do pitch que são incorrectas • Muitas vezes recorre-se a pós-processamento • Filtro de mediana • Filtro de comprimento L (3 ou 5) • entrada L valores de pitch • saída a mediana (L-1)/2 valores abaixo, (L-1)/2 valores acima • Pode usar-se um filtro passa baixo depois do filtro de mediana • Programação dinâmica • Algoritmo de optimização

  18. F0 usando SFS

  19. Formantes

  20. Porquê calcular as formantes ? • As formantes são definidas perceptualmente • A propriedade física correspondente é a frequência de ressonância do tracto vocal • Análise de formantes é útil para posicionar os fonemas em termos das primeiras 2 ou 3 formantes • As duas primeiras formantes identificam/caracterizam bastante bem as vogais

  21. Obter valores candidatos • Procura de picos no espectro • Designado em Inglês de “peak picking” • Procura de picos no espectro obtido de análise LPC • Várias alternativas: • Reter os N maiores picos, • Os N picos com menores frequências • Todos os picos • Pontos onde a segunda derivada é mais negativa • Factorização das raízes do polinómio resultante da análise LPC

  22. Processos habituais Peak picking Melhorado pela utilização de Interpolação Parabólica (Boite et al. P 92)

  23. Cálculo de Fk e Bk • Uma raiz • Próxima do circulo unitário corresponde a uma formante, com:

  24. Exemplo “seg6” close all;clear all [x,fs]=wavread('seg6'); t=(1:length(x))/fs*1000; %Defina janela de observaçao de 20ms N=floor(0.02*fs); y=x(1:N).*hamming(N); t=(1:N)/fs*1000; %Determine o modelo LPC de ordem 12 p=12;a=real(lpc(y,p)); % raizes zplane(1,a);rs=roots(a); Miuk=abs(rs);tetak=angle(rs) % eliminar metade ind=find(tetak<=0);miuk(ind)=[];tetak(ind)=[]; % Fk fk=tetak/(2*pi)*fs; [fk,ind]=sort(fk); % mostar resultados fprintf(1,'F1 = %6.2f Hz\n',fk(1)) fprintf(1,'F2 = %6.2f Hz\n',fk(2)) fprintf(1,'F3 = %6.2f Hz\n',fk(3)) fprintf(1,'F4 = %6.2f Hz\n',fk(4)) F1 = 326.40 Hz F2 = 1133.75 Hz F3 = 2824.89 Hz F4 = 4039.82 Hz

  25. No SFS F1= 355 F2=1168 F3=2809

More Related