• Nenhum resultado encontrado

Análise Síncrona Com o Período Fundamental

No documento UNIVERSIDADE DO PORTO FACULDADE DE ENGENHARIA (páginas 143-148)

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

7.3 Determinação Automática dos Parâmetros Para a Fala Vocalizada

7.3.2 Análise Síncrona Com o Período Fundamental

O método de análise síncrona com o período fundamental já discutido no capítulo 4, baseia-se na análise de segmentos de fala vocalizada com a duração de 1 período e com início no impulso glotal ou um pouco mais à frente com o intuito de que no segmento analisado estejam presentes apenas as características do trato vocal.

Como se compreende, este método segue uma segmentação diferente da usada nos métodos anteriores, com uma duração variável e síncrona com o período fundamental. Razão pela qual se separa este método dos anteriores pois está sujeito a um processamento distinto do imposto pelo corpo principal do programa principal de análise discutido anteriormente.

O número de amostras do segmento a analisar depende da duração do período fundamental, sabendo-se à partida que será sempre pequeno. Isto impõe algumas limitações quanto ao método usado para analisar cada segmento de um período fundamental de fala. Assim, foi implementado o método de análise por predição linear pela matriz covariância, por ter um melhor comportamento, que os outros métodos, quando usado com um sinal de tamanho mais reduzido. A utilização da análise síncrona com o período fundamental obriga a um qualquer procedimento que reconheça exactamente o início de cada impulso glotal para precisamente realizar o sincronismo.

O processo mais preciso para um total conhecimento do impulso glotal recorre ao uso de um electroglotógrafo, já referido no capítulo 2, com o qual se pode ter uma "imagem" do impulso glotal pela medição da variação da impedância eléctrica entre os extremos da glote.

Contudo, há outros métodos mais ou menos sofisticados para determinação do sincronismo com o período fundamental recorrendo apenas ao sinal de fala [McAulay 86].

Neste trabalho também foi desenvolvido um algoritmo para detecção do sincronismo do período fundamental da fala vocalizada.

O algoritmo é implementado na função fdetsinc() em Matlab e apresentada no anexo B18. 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 -2 .5 -2 -1 .5 -1 -0 .5 0 0 .5 1 1 .5 x 1 0 n

Figura 7.18 - Detecção de sincronismo realizada com a função fdetsinc() aplicada ao sinal [a]. A traço fino o sinal de fala, a traço médio a média deslizante e a traço grosso

O algoritmo muito simplesmente determina a média deslizante do sinal com um espaçamento unitário, para uma maior precisão, e com um comprimento de janela de 50 amostras. O resultado é um sinal alisado do qual se determinam os picos. Estes picos, quando o comprimento da janela média é correctamente escolhido, coincidem com o início do impulso glotal.

A figura 7.18 mostra um exemplo da detecção de sincronismo marcada com picos no suposto início do impulso glotal realizada pela função fdetsinc().

Este algoritmo tem resultados bons quando aplicado a sinais de fala nitidamente vocalizados. Uma escolha acertada do comprimento da janela que realiza a média deslizante é muito importante para a obtenção de bons resultados. Infelizmente, o que é um bom comprimento desta janela para um sinal nem sempre o é para outro, podendo este aspecto ser visto como o "calcanhar de Aquiles" deste procedimento básico.

O algoritmo desenvolvido para a análise síncrona com o período fundamental é apresentado na figura 7.19. Este algoritmo foi implementado no programa falasinc.m em Matlab (anexo B19).

Este programa, tal como o falacont, permite ao utilizador escolher o sinal de fala a analisar de entre um dos sinais previamente armazenados. Se a frequência desse sinal for superior a 20 Khz (caso dos sinais recolhidos a 22.05 Khz) realiza uma decimação 2:1 com filtragem anti-aliasing, cuja função do filtro foi analisada no capítulo 3. O sinal é então apresentado ao utilizador para que este escolha o início e fim da análise. Seguidamente, com recurso à função fdetsinc() é determinado o vector M contendo os picos correspondentes ao início dos impulsos glotais. Carrega apontador, ini, com o índice do vector do sinal de fala correspondente ao início do primeiro impulso glotal. Este, corresponde ao índice do primeiro elemento não nulo do vector M. Depois, e repetidamente até ao último período fundamental da parte do sinal escolhido é realizada ciclicamente a sequência de operações iniciada pela atribuição ao apontador fim, do índice do vector do sinal de fala correspondente ao início do próximo impulso glotal e portanto fim do impulso glotal actual. Este corresponde ao próximo, depois de ini, elemento não nulo do vector m. Assim está definido o segmento a analisar que será desde o início, ini, ao índice fim. Alguns autores [Miyoshi 87] segmentam o sinal, não desde o início do impulso glotal, mas sim mais à frente, supostamente depois do sinal do impulso glotal (ver figura 6.16) se anular, com a intenção de não haver qualquer efeito deste na análise do trato vocal. Contudo, a solução para determinação do sincronismo com o período fundamental não permite o conhecimento do fim do impulso glotal. Ainda assim, foi testada a análise com início do segmento progressivamente mais adiante do início do impulso glotal mas com resultados cada vez menos bons. Esta deterioração da qualidade dos parâmetros obtidos à medida que o início do segmento avança em relação ao início do impulso glotal pode dever-se ao facto de simultaneamente haver uma diminuição do comprimento do segmento com repercussões na estabilidade e precisão do modelo usado na análise.

Cada segmento do sinal é então submetido à função fcovpr2() para extracção dos parâmetros (frequência fundamental, 4 formantes, 4 larguras de banda) e respectiva função de transferência pelo método de predição linear, matriz covariância. É também determinada a energia do sinal recorrendo à expressão 7.7.

Seguidamente, são armazenados os parâmetros do segmento nos vectores de parâmetros na posição correspondente ao segmento. O apontador, ini, para o segmento seguinte é igualado ao apontador fim do segmento actual. Se o segmento actual ainda não corresponde ao último impulso glotal então é repetido este ciclo.

Escolha e leitura do sinal a analisar

decimação 2:1 do sinal garantindo Fs=11025 Hz

escolha da parte do sinal que se pretende analisar

estabelecimento de sincronismo com o impulso glotal recorrendo à função fdetsinc().

M - vector com picos correspondentes ao início dos impulsos glotais

carrega apontador ini com o índice do início do primeiro impulso glotal

(primeiro pico do vector M)

carrega apontador fim com o índice do próximo pico do vector M (início do próximo impulso glotal)

segmento do sinal a analisar = sinal desde apontador inicio até apontador fim

extrai frequência fundamental, 4 formantes, 4 larguras de banda,

e função de transferência H(z) pelo método LPC matriz covariância

determina energia do segmento

armazena parâmetros extraídos

iguala apontador ini do segmento seguinte ao apontador fim do segmento actual

fim do sinal

apresentação de resultados

espectrograma aplica alisamento não linear à freq. fundamental, formantes

e larguras de banda estimadas S

N

Figura 7.19 - Fluxograma do algoritmo desenvolvido para extracção automática dos parâmetros do modelo de fala vocalizada por um processo de análise síncrona com o

período fundamental.

Finalmente, para a sequência de cada parâmetro extraído automaticamente ao longo do sinal é aplicado um alisamento não linear para corrigir eventuais pontos fora da

trajectória estimada para esse parâmetro. Este alisamento é discutido na secção seguinte.

Uma vez concluída a análise do sinal de fala são apresentados graficamente ao longo do tempo os valores para a frequência fundamental, formantes e larguras de banda, bem como o espectrograma determinado pela sequência de funções de transferência e apresentado pela função espectro() já anteriormente apresentada.

Remete-se para o próximo capítulo uma análise dos testes e resultados deste algoritmo. No entanto, apresenta-se na figura 7.20 a função de transferência obtida com este processamento para um segmento do sinal da vogal [a]. Para este segmento os parâmetros obtidos foram F1=746Hz, F2=1157Hz, F3=2464Hz, F4=3692Hz, B1=287Hz, B2=182Hz, B3=-72Hz, B4=61Hz. O valor negativo de B3, indica que o 3º formante tem os pólos fora do circulo unitário. Isto evidencia a estabilidade crítica a que está sujeito este sistema quando o número de amostras do segmento é reduzido.

Figura 7.20 - Função de transferência do trato vocal para um segmento de fala da vogal [a] obtida pelo algoritmo descrito para análise síncrona.

No documento UNIVERSIDADE DO PORTO FACULDADE DE ENGENHARIA (páginas 143-148)