• Nenhum resultado encontrado

Processamento no Domínio Temporal

No documento UNIVERSIDADE DO PORTO FACULDADE DE ENGENHARIA (páginas 121-127)

DETERMINAÇÃO AUTOMÁTICA DOS PARÂMETROS DOS SINAIS DE FALA

7.2 Determinação da Frequência Fundamental 1 Introdução

7.2.4 Processamento no Domínio Temporal

Para o sistema da figura 7.2 as amostras do sinal de fala s(n) estão relacionadas com o sinal de excitação u(n) pela equação diferencial

s n a s nk k Gu n k p ( ) = ( − )+ ( ) =

1 (7.3)

A saída do sistema de predição linear com os coeficientes αk é

~( )s n ks n( k) k p = − =

α 1 (7.4)

Sendo o erro residual de predição definido por

e n s n s n s n ks n k k p ( )= ( )−~( )= ( )− ( − ) =

α 1 (7.5)

Se o sinal de fala obedece ao modelo e αk=ak, então substituindo ak por αk em 7.3 e

substituindo s(n) em 7.5 fica

e n( )= Gu n( ) (7.6)

Então a determinação da frequência fundamental no sinal de erro residual para a fala vocalizada consiste em detectar os picos mais salientes dentro de um espaçamento considerado razoável para o período fundamental. O correcto espaçamento entre picos corresponde ao período fundamental e o seu inverso à frequência fundamental.

7.2.4 Processamento no Domínio Temporal

Apesar de já terem sido apresentados dois métodos para a determinação da frequência fundamental, nunca é demais a discussão de outro, já que não se conhecem esquemas sem limitações e, como afirma [Rowden 92] não se pode esperar presentemente um detector de frequência fundamental com resultados perfeitamente satisfatórios para um grande número de falantes, aplicações e ambientes de recolha do sinal.

Este método para determinação da frequência fundamental, recorre a um processamento exclusivamente no domínio temporal. Os seus resultados podem ser bons para diferentes falantes e ambientes de recolha do sinal.

O esquema de processamento deste método pode ser facilmente implementado em "hardware" levando a uma solução com resultados em tempo real.

Este algoritmo proposto por [Gold 69] baseia-se nos seguintes princípios:

1. O sinal de fala é tratado para criar um número de sequências de impulsos que retenham a periodicidade do sinal original e se descarte das características irrelevantes para o processo de detecção do período fundamental.

2. Este processamento permite que simples detectores do período fundamental possam ser usados para estimar o período de cada sequência de impulsos. 3. A estimativa de vários destes detectores simples do período fundamental é logicamente combinada para determinar o período da forma de onda da fala. O esquema usado é representado pela figura 7.3.

Filtro Processamento dos

picos do sinal m3 m1 m2 m6 m5 m4 Determinação final do período fundamental fala período fundamental Estimadores individuais do período fundamental

Figura 7.3 - Diagrama de blocos do processamento paralelo no domínio temporal do detector de frequência fundamental.

A forma de onda da fala deve ser amostrada a uma frequência suficiente para dar uma resolução temporal para o período fundamental adequada. A amostragem a 11.025 Khz usada permite uma resolução do período fundamental de 0,09 ms.

O primeiro bloco consiste num filtro passa baixo para alisar o sinal de fala com uma frequência de corte cerca dos 900 Hz. Em alguns casos é necessário um filtro passa banda com frequências de passagem entre os 100 e os 900 Hz para remover a componente DC e possível ruído da rede (50 Hz) do sinal. Este bloco é implementado recorrendo mais uma vez à amplitude média deslizante com uma janela de sensivelmente metade do período fundamental previsto e um espaçamento de 1 amostra (quanto maior for o espaçamento, menor será a resolução do período fundamental), seguido pela passagem do sinal pela função detrend() do Matlab para eliminar a componente DC residual.

A seguir à filtragem são localizados os "picos e vales" (máximos e mínimos locais) bem como as suas amplitudes, e derivadas algumas sequências de impulsos do sinal filtrado. Cada sequência é composta por impulsos de amplitude positiva na localização dos picos e vales. Os seis casos propostos e usados são:

1. m1(n): Ocorrência de um impulso na localização de cada pico com a mesma amplitude deste.

2. m2(n): Ocorrência de um impulso na localização de cada pico com amplitude igual à diferença de amplitudes entre o pico e o vale anterior.

3. m3(n): Ocorrência de um impulso na localização de cada pico com amplitude igual à diferença entre as amplitudes do próprio pico e do pico anterior. Se esta diferença for negativa o impulso terá amplitude nula.

4. m4(n): Ocorrência de um impulso na localização de cada vale com amplitude simétrica da amplitude do vale.

5. m5(n): Ocorrência de um impulso na localização de cada vale com amplitude igual ao simétrico da amplitude do próprio vale, mais a amplitude do pico anterior.

6. m6(n): Ocorrência de um impulso na localização de cada vale com amplitude igual ao simétrico da amplitude do próprio vale, mais a amplitude do vale anterior. Se esta diferença for negativa o impulso terá amplitude nula. A figura 7.4 mostra um exemplo para as seis sequências m1 a m6 aplicadas ao sinal [i] alisado.

Figura 7.4 - As seis sequências m1 a m6 de impulsos obtidas a partir do sinal [i] alisado com uma janela de média de 80 amostras e espaçamento unitário.

O propósito destas seis sequências de impulsos é realizar estimativas simples do período numa curta duração do sinal. Seguidamente, algumas sequências de impulsos são processadas por um sistema não linear variante no tempo. Quando um impulso de amplitude suficiente é detectado na entrada do sistema a sua saída toma o valor da amplitude do impulso e mantém-se durante um intervalo τ durante o qual nenhum

impulso pode ser detectado. No final do intervalo τ a saída inicia um decaimento exponencial. Quando um impulso excede o nível do decaimento da saída o processo é repetido. A razão do decaimento e o intervalo τ são dependentes da estimativa do último período fundamental. Estes valores são críticos para um bom funcionamento do sistema. O intervalo τ foi estabelecido como sendo 1/3 da duração do último período estimado. O resultado deste processo é uma espécie de alisamento da sequência de impulsos produzindo uma sequência quase periódica de impulsos, como mostra a figura 7.5. A média da largura de cada impulso é estimada como sendo o período fundamental estimado pelo estimador em causa.

intervalo τ decaimento exponencial

Figura 7.5 - Operação básica de cada estimador individual do período fundamental no domínio temporal.

Na implementação deste algoritmo, esta técnica foi aplicada a 4 estimadores (m1, m2, m4 e m5).

Aos estimadores m3 e m6 foi aplicada uma operação diferente. A partir da posição de cada estimativa de impulso é procurado novo impulso no intervalo entre sensivelmente 85% e 115% do último período fundamental estimado, para diante. A média da largura destes impulsos é também estimada como sendo o novo período fundamental estimado pelo estimador em causa.

Os resultados dos estimadores m3 e m6 são normalmente idênticos aos dos outros estimadores. Mas crê-se que a riqueza de variação de estimadores é salutar, pois quando alguns falham em sinais menos claros, estimadores diferentes podem dar bons resultados. Isto acontece para estes estimadores com operações diferentes em alguns sinais.

Na figura 7.6 apresentam-se resultados dos seis estimadores para a vogal [i] pronunciada pelo locutor 2. Os valores obtidos pela frequência fundamental são confirmados quando se utiliza o método do cepstro tanto para este exemplo como para outros sinais.

A função desenvolvida em Matlab que implementa este método apresenta-se no anexo B11 com o nome fpitch3().

Conhecidas as seis estimativas para a frequência fundamental e o seu valor anterior, basta agora criar um processo de decisão para chegar ao valor mais provável da frequência fundamental, quando as estimativas diferem umas das outras. Este processo de decisão não foi no entanto implementado nem usado neste trabalho por imposições de tempo.

No documento UNIVERSIDADE DO PORTO FACULDADE DE ENGENHARIA (páginas 121-127)