A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

António Teixeira 15 Janeiro 2005

Apresentações semelhantes


Apresentação em tema: "António Teixeira 15 Janeiro 2005"— Transcrição da apresentação:

1 António Teixeira 15 Janeiro 2005
Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira 15 Janeiro 2005

2 Aula 13 Obtenção de F0 e Formante

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´: ms A frequencia fundamental e´: Hz A janela deve conter pelo menos dois períodos de pitch

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

8 Um método para tentar resolver o problema é utilizar “center-clipping”
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 A frequencia fundamental e´: 217.4 Hz
exemplo autocorrelação Center-clipped 50 % O pitch e´: ms A frequencia fundamental e´: 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´: ms A frequencia fundamental e´: Hz

12 Outro exemplo Mesmo sinal usado em center-clipped O pitch e´: 4.59 ms
A frequencia fundamental e´: 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 Determinação do pitch por filtragem inversa
Filtro passa baixo Janela Filtro inverso Análise LPC Autocorrelação O pitch e´: ms A frequencia fundamental e´: Hz

16 Determinação do pitch por filtragem inversa
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)

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” F1 = 326.40 Hz F2 = 1133.75 Hz F3 = 2824.89 Hz
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))

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


Carregar ppt "António Teixeira 15 Janeiro 2005"

Apresentações semelhantes


Anúncios Google