Sunteți pe pagina 1din 4

BioChaves

Relatório n. 4 de atividades

Autor: Jugurta Montalvão. São Cristóvão, 27 de setembro de 2018

No relatório anterior, foi estudada uma abordagem de estimação de pulso glotal pelo método da análise
pela síntese, que tem um viés mais intuitivo. Neste relatório, ainda se mantém o foco na análise pela
síntese, mas agora com base em conceitos mais abstratos de Processamento Digital de Sinais, e com uma
meta mais modesta, a de estimar apenas os parâmetros N1 e N2 do pulso glotal de Rosenberg. Para tanto,
foi usado o modelo de pulso, cuja síntese é implementada pela seguinte rotina computacional:
function p=rosenberg(N1,N2,N)
if N<N1+N2+1
N=N1+N2+1;
end
p=zeros(1,N);
p(1,1:N1+1)=0.5*(1-cos(%pi*(0:N1)/N1));
p(1,N1+2:N1+N2+1)=cos(%pi*((N1+1:N1+N2)-(N1))/(2*N2));
endfunction

Vale observar que os parâmetros N1 e N2 (juntamente com o período N+1) definem unicamente os
parâmetros glotais que são importantes na qualidade acústica do pulso, a saber: open quotient (OQ =
(N1+N2)/(N+1)), e o speed quotient (SQ=N1/N2), como pode ser lido mais detalhadamente no link
http://www.haskins.yale.edu/facilities/GLOTTAL/glottal.html.
Assim, dados os parâmetros do pulso p, e assumindo que N foi corretamente estimado (pois N+1 é o
período de repetição), foquei a minha atenção nos ‘zeros’ do filtro digital hipotético cuja resposta ao impulso
seria o próprio p. Por exemplo, para N1=19, N2=17 e N=38, temos o pulso e os zeros representados abaixo:

1.0

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.0
0 5 10 15 20 25 30 35 40

Pulso glotal
BioChaves

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0
-1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Zeros da função de transferência, obtidos no Scilab com os comandos Pz=poly(p,'z','coeff');


raizes=roots(Pz); clf, plot(real(raizes),imag(raizes),'o'), square(-1,-1,1,1)

De acordo com o modelo linear de produção de fala, esses zeros do pulso glotal também devem
fazer parte da estrutura do filtro digital que modela a composição [pulso glotal]→[trato vocal]→ [lábios]. Por
exemplo, se a resposta do trato e dos lábios fosse modelada como um filtro FIR qualquer com, digamos, 9
memórias (o rand aqui traduz o ‘qualquer’ para o Scilab),
h_trato_labios=rand(1,10);
então o sinal resultante de apenas uma pulsação glotal seria:
s=convol(p,h);
e os zeros respectivos poderiam ser calculados assim:
Sz=poly(s,'z','coeff');
raizes=roots(Sz);
plot(real(raizes),imag(raizes),'r.'), square(-1,-1,1,1)
Comparando visualmente os zeros devidos apenas ao pulso com os zeros do sistema todo, temos que os
zeros do pulso (pontos azuis, na figura abaixo) são mantidos, e que a convolução apenas acrescenta 9
zeros (pontos vermelhos), devido às 9 memórias do FIR.
BioChaves

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0
-1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

→ Ideia (ainda na lógica da análise pela síntese): dado um segmento de sinal de voz, analisar os zeros
correspondentes (como se esse sinal representasse a resposta ao impulso do filtro digital que modela a
composição [pulso glotal]→[trato vocal]→ [lábios]) e compará-los a uma base de zeros de pulsos glotais
previamente computados, para diversos valores de N1 e N2. O modelo de pulso associado ao maior número
de zeros coincidentes seria tomado como pulso glotal estimado.
Ilustração: Seja o sinal sintético de voz /a/ ilustrado na figura abaixo.

1.0

0.8

0.6

0.4

0.2

0.0

-0.2
0 10 20 30 40 50 60 70 80 90 100 110

Ele foi sintetizado com N1=19 e N2=17, e quando comparados os mapas de zeros nos dois casos, é
perceptível a quase coincidência de alguns zeros, sobretudo nas baixas frequências.
Importante: Como o trato vocal tem resposta infinita ao impulso, então o número de zeros acrescentados é
(teoricamente) infinito, e a manutenção dos zeros do pulso glotal só seria esperada para uma janela de
observações infinitamente longa. No Caso, foram tomadas apenas 100 amostras na janela de observação, o
que provoca o deslocamento dos zeros das suas posições originais, para compensar a quantidade finita de
zeros que foi imposta no janelamento.
BioChaves

1.0

0.8 Quase-coincidência
0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0
-1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Para comparação, se substituirmos os zeros de pulso glotal acima (pontos azuis), sob parâmetros
N1=19 e N2=17, pelos zeros do pulso sob parâmetros N1=19 e N2=15 (figura da esquerda), ou por N1=15 e
N2=10 (figura da direita), notaremos um descolamento cada vez maior dos zeros associados ao sinal
observado, em relação aos zeros associados ao pulso sintético de referência.

1.0 1.0

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0.0 0.0

-0.2 -0.2

-0.4 -0.4

-0.6 -0.6

-0.8 -0.8

-1.0 -1.0
-1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0 -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Essa análise proposta não considera apenas o que é tradicionalmente usado, que é o módulo da
resposta espectral, e que corresponderia a uma medida tomada em pontos distribuídos sobre o círculo
unitário. Em outras palavras, a comparação direta de zeros se descola da análise baseada apenas em
senóides (pois se desprende do círculo unitário) e, mais importante, considera simultaneamente (e
implicitamente) tanto o quanto a fase dos sinais comparados.

S-ar putea să vă placă și