Em continuidade ao trabalho desenvolvidos nos relatórios anteriores sobre estimação de formantes, aproveitando a, até então, abordagem bem sucedida para a remoção da influência da frequência fundamental, foquei por um instante numa definição mais coerente para a ordem do preditor linear aplicado. Para isso, o objetivo foi de empregar o critério de Akaike [1] para definir a ordem. Porém, após ter me livrado dos tomates1 no último relatório, parece que estou novamente na mira deles. Após alguns novos testes com a abordagem proposta no último relatório, encontrei alguns problemas que apresentarei a seguir.

Eita! Mas já tem um tempinho esse relatório…

Bem, já imaginei que diria isso2 vou fazer uma breve revisão do problema da “influência da frequência fundamental” e da abordagem que propus para resolver o problema.

Spoiler (não abra se não quiser antecipar informações):
Veremos mais pra frente que não se trata de uma simples influência da f_0

O “problema da frequência fundamental”

Figura 1 – Contorno espectral de um sinal exemplo. Aqui é possível observar um pico maior no valor da frequência fundamental.

 

Inicialmente, no primeiro relatório, pretendia-se uma estimação de formantes utilizando preditor linear de ordem variável. Entretanto, foi observado que a estimação para a primeira formante muitas vezes resultava em valores próximos à frequência fundamental. Esse comportamento é ilustrado na Figura 1. Assim, no segundo relatório, propus uma abordagem para resolver esse problema.

A abordagem proposta

Primeiramente, a frequência fundamental (f_0) era estimada por autocorrelação. Em seguida, o sinal era filtrado em banda estreita centrada na f_0. Um preditor linear de ordem 2 ficava responsável por estimar os coeficientes que era utilizado para aplicar uma filtragem inversa no sinal original. Após a filtragem inversa, a predição linear de ordem ajustável era executada para a estimação das formantes. Todo esse processo é ilustrado pelo diagrama de blocos apresentado na Figura 2.

Figura 2 – Diagrama de blocos da abordagem proposta.

Nas Figura 3 e Figura 4, é ilustrado o resultado obtido a partir da aplicação da abordagem proposta no sinal exemplo da Figura 1.

Figura 4 – Contorno espectral do sinal exemplo, após a filtragem inversa.
Figura 3 – Contorno espectral obtido pelos coeficientes do preditor linear de ordem 2.

 

Os resultados obtidos nos testes com sinais sintetizados indicaram uma melhora significativa na estimação. Porém, para uma melhor verificação dos resultados, foi utilizada a base de Hillenbrand et al. [2] (disponível em: https://homepages.wmich.edu/~hillenbr/voweldata.html).

Base de HillenQUEM? Que base é essa?

A base disponibilizada por Hillenbrand3 et al. [2] é uma base de dados em que foram registrada vozes de 45 homens, 48 mulheres e 46 crianças4 (27 meninos e 19 meninas) pronunciando 12 palavras, escolhidas para evidenciar determinadas vogais (Ex: /i/=heed; /e/=hayed; /ʊ/=hood; etc.). Nessa base, as 3 primeiras frequências formantes das vozes emitidas foram rotuladas manualmente e disponibilizadas em um arquivo a parte. Os valores foram rotulados para uma quantidade igual de instantes de tempos em cada voz, com base no tempo de duração da vogal em cada gravação, de modo que os valores foram rotulados de 10% em 10% da duração da vogal, até 80% (i.e. 10%, 20%, 30%, …, 80%). Na Figura 5 é ilustrada os valores das formantes ao longo do tempo de duração da vogal para um sinal exemplo.

Figura 5 – Ilustração de Formantes da Base de Hillenbrand [2] para o sinal ‘w01oo.wav’ – Voz Femina, pronunciando hood:

E o que aconteceu quando você usou essa base?

Bem… para não criar expectativas, já antecipo que não muito bem. Quando comecei a testar o método nos sinais da base, observei que os resultados estavam muito aquém do esperado. Analisando mais detalhadamente, percebi o que já estava ilustrado (disfarçadamente) nas Figura 1, Figura 3 e Figura 4. A primeira formante estava sofrendo uma redução no contorno espectral após a filtragem inversa. Essa redução, que não parecia muito grande, era capaz de “matar” a primeira formante em alguns dos sinais da base5.

Dessa forma, seria necessário usar um filtro que removesse a f_0 com uma banda mais estreita. Para realizar tal filtragem de banda estreita, pensei em utilizar um filtro notch.

Spoiler (não abra se não quiser antecipar informações):
Na verdade, isso não vai dar nada certo. Talvez você já tenha notado o motivo e esteja querendo me perguntar:
Porque você se deu ao trabalho de propôr e explicar como é implementado o filtro notch?
– Bem… Primeiramente por eu ter implementado o filtro notch antes de concluir qual o verdadeiro problema e, segundamente, por ser interessante rever e explicar um conceito de PDS que havia ficado perdido na minha memória*.

*(Isso é ainda mais válido ao se considerar que estou fazendo meu estágio docência justamente em PDS).

Vish, como é mesmo o Filtro Notch?

Confesso que eu também tinha me esquecido e fui dar uma revisada no livro do Proakis e Manolakis [3]. O filtro Notch é um filtro que possui um ou mais valores nulos na resposta de frequência e são comumente utilizados para remover componentes de frequência indesejados de um sinal6. De maneira simples, em um sinal amostrado com f_a amostras por segundo, para que haja um valor nulo numa frequência (f_0) desejada, basta inserir um par de zeros em z=e^{\pm j2\pi \frac{f_0}{f_a}}. Assim, temos um filtro FIR com a seguinte função de transferência:

(1)   \begin{equation*} H(z)=a\left(1-e^{j2\pi \frac{f_0}{f_a}}z^{-1}\right)\left(1-e^{-j2\pi \frac{f_0}{f_a}}z^{-1}\right) = a \left(1-2\cos\left(2\pi \frac{f_0}{f_a}\right)z^{-1}+z^{-2}\right) \end{equation*}

Porém, para que o corte seja em uma banda estreita, é necessário acrescentar um par de polos na mesma frequência, porém com um raio r<1 no círculo unitário. Assim, é acrescentado um par de polos em z=re^{\pm j2\pi f_0}, de forma que obtemos um filtro IIR com a seguinte função de transferência:

(2)   \begin{equation*} H(z)=a\frac{\left(1-2\cos\left(2\pi \frac{f_0}{f_a}\right)z^{-1}+z^{-2}\right)}{\left(1-2r\cos\left(2\pi \frac{f_0}{f_a}\right)z^{-1}+r^2z^{-2}\right)} \end{equation*}

Para implementar esse filtro, podemos utilizar a Transformada Z inversa em (2) e obter a seguinte equação a diferenças (assumindo a=1):

(3)   \begin{equation*} y[n]=x[n]-2\cos\left(2\pi \frac{f_0}{f_a}\right)x[n-1]+x[n-2]+2r\cos\left(2\pi \frac{f_0}{f_a}\right)y[n-1]-r^2y[n-2] \end{equation*}

Na Figura 6 a resposta de magnitude do filtro notch é ilustrada para diferentes valores de r.

Figura 6 – Módulo da Resposta em Frequência do Filtro Notch. É possível observar que um maior valor de r torna a banda mais estreita.

E aí, deu certo usá-lo?

Se você leu os spoilers, já sabe que não deu certo7. Já nos primeiros testes (utilizando r=0.95) utilizando o filtro notch foi possível observar que, mesmo removendo a f_0 com banda estreita, outras componentes de frequência próximas à f_0 passavam a ser detectadas como picos espectrais. Ora, isso se deu pelo fato de que na verdade, desde o início, a influência não era da frequência fundamental em si e sim do sinal do pulso glotal.

Ué, e agora? Se nada deu certo, o que você vai fazer? Devo pegar meus tomates?

Apesar dos resultados que não foram dos melhores, a grande sacada é notar que não o problema não é uma influência da f_0 no contorno espectral e sim uma influência da fonte glótica8. Dessa forma, para bons resultados na estimação das formantes utilizando predição linear de ordem ajustável, é necessária uma boa separação Fonte-Filtro, o que me leva a convergir para o trabalho que já sigo desenvolvendo com João e Magno9. Esse estudo de abordagens para a estimação do pulso glotal10 será crucial para bons resultados futuros na estimação de formantes. Logo, creio que dá pra guardar um pouco os tomates, não?

Acho que sim, mas estou de olho! Quais foram as referências citadas aqui?

[1] H. Akaike, “A new look at the statistical model identification,” Ieee transactions on automatic control, vol. 19, p. 716–723, 1974.
[Bibtex]
@article{akaike1974new,
title={A new look at the statistical model identification},
author={Akaike, H},
journal={IEEE Transactions on Automatic Control},
volume={19},
pages={716--723},
year={1974}
}
[2] J. Hillenbrand, L. A. Getty, M. J. Clark, and K. Wheeler, “Acoustic characteristics of american english vowels,” The journal of the acoustical society of america, vol. 97, iss. 5, p. 3099–3111, 1995.
[Bibtex]
@article{hillenbrand1995acoustic,
title={Acoustic characteristics of American English vowels},
author={Hillenbrand, James and Getty, Laura A and Clark, Michael J and Wheeler, Kimberlee},
journal={The Journal of the Acoustical society of America},
volume={97},
number={5},
pages={3099--3111},
year={1995},
publisher={ASA}
}
[3] J. G. Proakis and D. G. Manolakis, Digital signal processing: principles algorithms and applications, Prentice Hall, 4th edition, 2007.
[Bibtex]
@book{proakis2007digital,
title={Digital signal processing: principles algorithms and applications},
author={Proakis, John G and Manolakis, Dimitris G},
year={2007},
publisher={Prentice Hall, 4th edition}
}
Sobre o Autor

Mestrando em Engenharia Elétrica e Bacharel em Engenharia Eletrônica pela Universidade Federal de Sergipe. Interessado nas áreas de Processamento Digital de Sinais, Processamento Digital da Fala e Reconhecimento de Padrões. Atualmente desenvolve pesquisa no campo de processamento digital de sinais de fala aplicados à fonoaudiologia e à saúde vocal.

Áreas de Pesquisa: Processamento Digital de Sinais, Reconhecimento de Padrões, Processamento de Sinais de Voz e Fala, Qualidade Vocal.

  1. Que seriam jogados em mim
  2. Até porque, eu escrevo suas falas
  3. James M. Hillenbrand (Site)
  4. De 10 a 12 anos
  5. Em especial os sinais cuja primeira formante tinha um valor mais próximo da f_0
  6. Como a f_0 nesse caso
  7. E se não leu: SURPRESA!!!
  8. a.k.a. Pulso Glotal
  9. Deu pra pegar a referência da imagem destacada no início do relatório?
  10. E por consequência, separação Fonte-Filtro

Deixe uma resposta

O seu endereço de e-mail não será publicado.