• Nenhum resultado encontrado

Reconhecimento do Orador

N/A
N/A
Protected

Academic year: 2021

Share "Reconhecimento do Orador"

Copied!
43
0
0

Texto

(1)

Licenciatura em Engenharia Electrotécnica e de Computadores

Ramo de Telecomunicações, Electrónica e Computadores

Projecto de fim de curso 2001

Reconhecimento do Orador

Orientador

Prof. Pedro Guedes de Oliveira

Alunos

Ricardo Veloso Gonçalve s de Oliveira Carlos Firmino Vaz de Faria

(2)

Conteúdos

1

Introdução...4

1.1 Objectivos...4

1.2 Formulação do problema...4

1.3 Motivação ...5

1.4 O que é o reconhecimento do orador?...5

1.5 Si stema genérico de verificação do orador ...6

1.6 Trabalhos anteriores ...6

2

Métodos de análise de voz...9

2.1 Produção da fala...9

2.2 Segmentação da fala – Vozeado / Não -vozeado / Silêncio ...10

2.3 Análise LPC...12

2.3.1 Divisão do sinal em segmentos ... 13

2.3.2 Aplicação de uma janela... 13

2.3.3 Análise LPC através do método da Autocorrelação ... 13

2.3.4 Algoritmo de Durbin... 14

2.4 Extracção de parâmetros...15

2.4.1 LSPs (Line Spectrum Pairs)... 15

2.4.2 Coeficientes Cepstrais ... 16

2.4.3 Frequência Fundamental (pitch)... 16

2.5 Estimação da média e covariância...18

2.6 Medidas de distância...18

2.6.1 Divergência... 19

2.6.2 Bhattacharyya... 19

2.7 Síntese preliminar...19

3

Descrição do sistema desenvolvido ...20

3.1 Ambiente de programação...20

3.2 Etapas de implementação...20

3.3 Reconhecimento do orador utilizando uma base de dados ...20

3.3.1 Cálculo dos coeficientes LPC ... 21

3.3.2 Separação em segmentos vozeados / não-vozeados / silêncio ... 21

3.3.3 Extracção de parâmetros ... 22

3.3.4 Estimação da média e covariância dos parâmetros ... 22

3.3.5 Armazenamento dos dados de referência... 23

3.3.6 Cálculo da distância entre oradores... 24

3.3.7 Algoritmo de decisão (classificação da identificação)... 24

3.4 Classificação não-supervisionada de oradores numa conversa ...26

3.4.1 Extracção de parâmetros ... 26 3.4.2 Algoritmo de Lloyd ... 27

4

Resultados...29

4.1 Reconhecimento do orador ...29 4.1.1 Base de dados... 29 4.1.2 Nomenclatura utilizada... 29

4.1.3 Resultados dos testes... 29

(3)

5

Software de demonstração ...35

5.1 Registo na base de dados...35

5.2 Reconhecimento do orador em tempo real ...36

5.3 Separação de oradores numa conversa...37

6

Conclusões ...39

6.1 Tamanho da base de dados...39

6.2 Condições de gravação ...39

6.3 Ordem da análise LPC...39

6.4 Algoritmo de decisão...40

6.5 Variação dos tempos de aprendizagem e de teste ...40

6.6 Parâmetros do orador e operadores de distância ...40

6.7 Tipos de erro...40

6.8 Classificação não-supervisonada de oradores...40

7

Futuros desenvolvimentos...41

7.1 Novos parâmetros de voz e novos operadores de distância ...41

7.2 Outros métodos de reconhecimento...41

7.3 Algoritmos de “clustering”...41

7.4 Aplicações...41

(4)

Lista de figuras

Figura 1.1– Tipos de reconhecimento do orador ...5

Figura 1.2 – Sistema genérico de verificação automática do orador ...6

Figura 1.3 – Cronologia do progresso dos sistemas de reconhecimento do orador ...7

Figura 2.1 – Vista esquemática do mecanismo vocal humano ...9

Figura 2.2 – Separação da fala em segmentos sobrepostos ... 13

Figura 2.3 – Exemplo das frequências dos LSPs e pólos do modelo LPC ... 15

Figura 2.4 – Representação dos sinais x(n), X(n) e Y(n) respectivamente ... 17

Figura 2.5 – Função de “clipping” e exemplo ... 18

Figura 3.1 – Esquema geral do sistema desenvolvido ... 20

Figura 3.2 – Algoritmo de classificação de segmentos ... 21

Figura 3.3 – Espectrograma de uma amostra de voz a ser segmentada... 22

Figura 3.4 – Tempo de identificação e tempo de interlaçamento ... 23

Figura 3.5 – Distâncias do teste às referências(baixo) e respectivo histograma(cima) ... 24

Figura 3.6 – Diagrama de blocos do algoritmo de classificação implementado ... 26

Figura 3.7 – Exemplo da aplicação do algoritmo de Lloyd ... 27

Figura 3.8 – Exemplo da separação de oradores numa conversa... 28

Figura 4.1 – Interface gráfico de testes ... 30

Figura 4.2 – Interface de testes para o algoritmo de “clustering” ... 34

Figura 5.1 – Interface de gravação da voz do orador para registo na base de dados ... 35

Figura 5.2 – Escolha da base de dados com a qual o orador quer ser comparado... 36

Figura 5.3 – Reconhecimento do orador em tempo real ... 37

Figura 5.4 – Número de oradores na conversa e número de iterações do algoritmo de Lloyd ... 38

(5)

1 Introdução

1.1 Objectivos

O estudo de métodos de caracterização de oradores através da parametrização de características do sinal, permitindo a exploração de medidas de distância entre oradores diferentes. O projecto visa explorar estas noções com vista à indexação e pesquisa de um arquivo de segmentos de fala afins.

O algoritmo desenvolvido tem as seguintes características: • Baseia-se em métodos estatísticos

• Não depende do texto

• Requer um ambiente de baixo ruído e com apenas um orador activo

• Possibilita a identificação em tempo real por comparação com uma base de dados pré--analisada

• Permite o teste de oradores fora da base de dados, dando-os por não reconhecidos O objectivo não era, nesta fase, desenvolver algoritmos, mas sim procurá-los na literatura, escolhê-los de acordo com os resultados reportados e implementá-los.

1.2 Formulação do problema

O problema que visámos abordar no presente projecto é o de, através de sinais de fala, sem corresponder a um texto pré-definido, proceder à identificação do orador, de entre os elementos de uma base de dados pré-analisada.

A fala é um sinal complicado e a sua análise pode ocorrer a diferentes níveis: semântico, linguístico, articulatório e acústico. Em última instância, todas as diferenças aparecem como diferenças nas propriedades acústicas do sinal de voz. As características relacionadas com o orador são o resultado de uma combinação de diferenças anatómicas inerentes ao tracto vocal e os hábitos de fala dos diferentes indivíduos e são em geral susceptíveis de serem extraídas do próprio sinal. Um tal sistema de análise está, porém longe do que os seres humanos realizam, já que, para estes, as outras características acrescentam elementos fundamentais de identificação.

Refira-se desde já que, ao longo do próprio projecto resolveu introduzir-se um outro requisito que correspondeu a, conhecido o número de intervenientes numa dada conversa, proceder à sua separação, pela simples extracção das características do sinal mas sem aprendizagem prévia.

(6)

1.3 Motivação

A principal motivação para o presente projecto correspondeu à possibilidade de segmentação e identificação automática de oradores, com vista à classificação de segmentos do sinal áudio e eventual separação de cenas de conteúdo distinto.

1.4 O que é o reconhecimento do orador?

De acordo com [4], o processamento da fala pode ser classificado de conforme é indicado na Figura 1.1. Nessa classificação, o reconhecimento do orador abrange duas áreas :

verificação e identificação.

Figura 1.1– Tipos de reconhecimento do orador

A verificação automática do orador é feita usando uma máquina para verificar a identidade de uma pessoa a partir da sua voz. Na identificação automática do orador não existe nenhuma informação à priori sobre a identidade do orador e o sistema decide quem a pessoa é, a que grupo a que pertence ou ignora a identidade da pessoa no caso de uma análise em conjunto aberto (a pessoa a ser reconhecida não se encontra na base de dados).

Na verificação do orador a pessoa faz uma afirmação de identidade (por ex. introduzir um número ou mostrar um cartão). No reconhecimento dependente do texto o sistema conhece à priori a frase dita pelo orador. O seu sinal de voz é analisado pelo sistema, que faz uma decisão binária sobre aceitar ou rejeitar a identidade da pessoa (ou não decidir por falta de informação suficiente acerca do orador).

Muitos factores podem contribuir para erros de identificação e verificação. Alguns destes erros podem advir de :

• Frases mal pronunciadas ou mal lidas • Estados emocionais extremos

• Posicionamento do microfone variável no tempo • Multipercursos e ruídos devido à má acústica do local • Uso de diferentes microfones

• Doenças que afectem o trato vocal • Envelhecimento

(7)

1.5 Sistema genérico de verificação do orador

A aproximação mais usual para os sistemas de verificação automática do orador consiste em 5 etapas:

• Aquisição digital do sinal de voz e eventual pré -processamento • Extracção de características

• Reconhecimento de padrões • Decisão aceitar/rejeitar o orador

• Geração de modelos de referência do orador

Figura 1.2 – Sistema genérico de verificação automática do orador

A extracção de características mapeia cada intervalo de fala (tipicamente entre 10 a 30 ms) para um vector multidimensional de características. A sequência de vectores X(i) é então comparada com o modelo do orador através de técnicas de reconhecimento de padrões. Isto resulta numa classificação Z(i) para cada vector ou sequência de vectores. Esta classificação mede a semelhança entre o vector de características e o vector modelo do orador. Por último é feita uma decisão de aceitar ou rejeitar a identidade do orador dependendo da classificação.

Para o reconhecimento do orador, as características que têm grande poder de discriminação entre oradores, grande variedade entre o radores e pouca variação dentro do mesmo orador são desejáveis. Algumas formas de reconhecimento de padrões podem recorrer a métodos diferentes, tais como DTW (Dynamic Time Warping), HMM (Hidden Markov Models), Redes Neuronais e VQ (Vector Quantization).

1.6 Trabalhos anteriores

Apresenta-se a seguir, uma tabela em que está listado um conjunto de trabalhos realizados nesta área e respectivas características e performance (ver [4] para mais detalhes ):

(8)

Figura 1.3 – Cronologia do progresso dos sistemas de reconhecimento do orador

Os seguintes termos são usados na definição das colunas da tabela : • “source” – nome do artigo

• “org” – companhia ou escola onde foi realizado o trabalho • “features” – características extraídas da voz

o Cepstrum: coeficientes cepstrais o LP: coeficientes LPC

o LAR: “Log Area Ratio” (extraídos a partir dos coeficientes de reflexão) o Mel-Cepstrum: escala de Mel aplicada aos coeficientes cepstrais o dCep: derivadas temporais dos coeficientes cepstrais

(9)

• “input” – qualidade da entrada de som

• “text” – indica se o reconhecimento é dependente do texto ou não • “pop” – número de oradores de teste

• “error” – percentagem de erro do sistema de verificação do orador (‘v’) ou percentagem de erro do sistema de identificação do orador (‘i’) dado o tempo de teste em segundos

(10)

2 Métodos de análise de voz

2.1 Produção da fala

Existem duas fontes principais de características de voz que são específicas de um orador: as fontes físicas e o resultado de aprendizagem. A forma do trato vocal é uma característica física importante da voz do orador. O trato é geralmente considerado o órgão de produção da fala, localizado acima das cordas vocais. Como indicado na figura, o trato vocal é constituído por:

Figura 2.1 – Vista esquemática do mecanismo vocal humano

Faringe Laringeal (abaixo da epiglote)

Faringe Oral (atrás da língua, entre a epiglote e o palato (“velum”)

Cavidade Oral (a seguir ao palato e rodeada dos lábios e língua)

Faringe Nasal (acima do palato, ao fundo da cavidade nasal)

Cavidade Nasal (estende-se desde a faringe até às narinas)

O trato vocal de um homem adulto tem o comprimento aproximado de 17cm.

À medida que as ondas acústicas passam pelo trato vocal o seu conteúdo espectral é alterado pelas ressonâncias do trato vocal. Estas ressonâncias são chamadas formantes. Assim, a fo rma do trato vocal pode ser estimada a partir da envolvente espectral (localização das formantes e declive espectral).

Os sistemas de verificação de voz usam normalmente características derivadas de um modelo do trato vocal. O mecanismo vocal humano é induzido por uma fonte de excitação que também contém informação dependente do orador. Esta fonte de excitação é gerada pelo fluxo de ar nos pulmões conduzido pela traqueia através das cordas vocais.

(11)

• Fonemas • Murmúrios • Fricativas • Compressão • Vibração • Combinação de todas

A excitação por fonemas ocorre quando o fluxo de ar é modulado pelas cordas vocais. A frequência de oscilação das cordas vocais é chamada frequência fundamental e depende do seu comprimento, tensão e massa. Por isso, a frequência fundamental é outra característica física que distingue os oradores.

Os murmúrios resultam de um fluxo de ar turbulento que tem características de um ruído de banda larga.

As fricativas são produzidas por constrições do trato vocal. A localização, a forma e o grau de constrição determinam a forma do ruído de excitação de banda larga.

A excitação por compressão resulta da libertação do trato vocal anteriormente completamente fechado e pressurizado. Isto resulta num curto silêncio (durante a fase de acumulação de pressão) seguido de uma rajada de ruído de curta duração.

A excitação por vibração é causada pelo ar ser forçado a atravessar uma constrição que não seja formada pelas cordas vocais (língua).

A produção de fala através da excitação por fonemas é chamada vozeada. A fala produzida pelos outros tipos de excitação é chamada não-vozeada.

Outros aspectos da produção da fala que podem discriminar oradores são as características aprendidas, que incluem o ritmo de fala, efeitos de prosódia e o dialecto(que pode ser capturado espectralmente como um desvio sistemático da frequência das formantes).

2.2 Segmentação da fala – Vozeado / Não-vozeado / Silêncio

A necessidade de decidir se um dado segmento de fala é clas sificado como vozeado,

não-vozeado ou silêncio aparece em muitos sistemas de análise de voz. Existe uma variedade

de métodos para fazer esta separação.

Foram estudados vários métodos extraídos da literatura e de informação na Web, sendo o método utilizad o [1] aquele que reportou os melhores resultados. Este método usa técnicas de reconhecimento de padrões para a classificação dos segmentos permitindo combinar a contribuição de um número de medidas de fala(que individualmente não são suficientes para fazer a discriminação) numa única medida capaz de fazer a separação entre as 3 classes. O método é essencialmente um método de teste de hipóteses baseado na teoria de decisão estatística. Para cada uma das classes é calculada uma medida de distância não-Euclidiana que é calculada a partir de um conjunto de parâmetros extraídos do segmento de fala a ser classificado e o segmento é atribuído à classe com a menor distância.

O sucesso deste teste de hipóteses depende das medidas que são usadas para o critério de decisão. O problema está em seleccionar características que são simples de derivar a partir dos segmentos de voz e que são eficientes em diferenciar as 3 classes. As seguintes

5 medidas foram usadas na implementação deste sistema: 1. Passagens por zero (NZ)

O número de passagens por zero é um indicador da frequência em que a energia do sinal está concentrada. A fala vozeada é produzida pela excitação do trato vocal

(12)

através de um fluxo de ar periódico que normalmente tem um baixo número de passagens por zero. A fala não-vozeada é produzida devido à excitação do trato vocal por uma fonte do tipo ruído e que tem um número de passagens por zero elevado. Durante o silêncio é de esperar que o número de passagens por zero seja inferior à fala não -vozeada mas semelhante à fala vozeada.

2. Logaritmo da energia do sinal ( ES)

Definido como:       + =

= N n s s n N E 1 2( ) 1 log 10 ε Equação 2.1

ε é uma constante positiva muito pequena para evitar o cálculo do logaritmo de zero.

A energia do sinal para segmentos de fala é muito maior do que a energia de um segmento de silêncio. A energia da fala não -vozeada é normalmente menor do que a

vozeada mas superior à do silêncio .

3. Coeficiente de autocorrelação normalizado para o atraso de uma amostra (C1)

É definido como:             − ⋅ =

− = = = ) ( ) ( ) 1 ( ) ( 1 0 2 1 2 1 1 n s n s n s n s C N n N n N n Equação 2.2

Este parâmetro é a correlação entre amostras de voz consecutivas. Devido à concentração de energia nas baixas frequências para os segmentos vozeados, as amostras adjacentes de voz são altamente correlacionadas, sendo este parâmetro próximo de 1. Ao contrário, para segmentos não -vozeados é próximo de zero.

4. Primeiro coeficiente de predição (a1)

Este é o primeiro coeficiente de um codificador de predição linear (LPC) de ordem 10. Pode ser demonstrado que este parâmetro é o simétrico do primeiro coeficiente do espectro de Fourier.

5. Erro de predição normalizado (Ep)

É definido como:





+

=

0

log

10

R

E

E

i p

ε

      − + − + = = m p k k i s n m a s n m k E 2 1 ) ( ) (

=− = 1 0 2 0 ( ) 1 N n n s N R Equação 2.3

(13)

Em que p é a ordem do codificador LPC (usou-se ordem 10 conforme é proposto em [1]), ak são os coeficientes LPC e N é o número de amostras do segmento.

Para cada segmento é construído um vector

[

]

T p s

Z E C a E

N

X = 1 1 .

Este vector vai ser usado no cálculo da distância a cada uma das 3 classes. A distância à classe i é dada por:

(

)

i

(

i

)

T i i X M W X M d = − −1 −

− = = 1 0 ) ( 1 Ni n i i i X n N M

(

)(

)

− = − − − = 1 0 ) ( ) ( ) 1 ( 1 Ni n T i i i i i i X n M X n M N W Equação 2.4

Em que Ni é o número de vectores de teste da classe i que foram usados para construir a

média Mi e a covariância Wi da classe. Estes vectores de teste foram criados a partir de

uma segmentação manual de várias amostras de voz em regiões vozeadas, não-vozeadas e silêncio.

Depois de calculadas as 3 distâncias di para um vector X , é escolhida a classe que

apresenta a menor distância .

2.3 Análise LPC

A técnica de predição linear modela o sinal s(n) como uma combinação linear dos seus valores passados e uma entrada escalada:

) ( ) ( ) ( 1 n u G k n s a n s p k k − + ⋅ − =

= Equação 2.5

Em que s(n) é a saída actual, p é a ordem da predição, ak são os coeficientes de predição

do modelo, s(n-k) são as saídas passadas, G é um factor de escala e u(n) é a entrada actual(fonte de excitação). Em aplicações de voz a entrada u(n) é desconhecida, por isso é ignorada:

= − − = p k ks n k a n s 1 ) ( ) ( ˆ Equação 2.6

A definição de erro de predição en é a diferença entre o valor actual s(n) e o valor predito

) ( ˆ n s :

= − + = − = p k ks n k a n s n s n s n e 1 ) ( ) ( ) ( ˆ ) ( ) ( Equação 2.7

(14)

2.3.1 Divisão do sinal em segmentos

Nesta fase, o sinal s(n) é agrupado em segmentos de N amostras em que os segmentos adjacentes são separados por M amostras.

Figura 2.2 – Separação da fala em segmentos sobrepostos

É fácil de ver que se M ≤ N os segmentos adjacentes irão sobrepor-se e o espectro LPC

resultante irá ser correlacionado de segmento para segmento. Se M << N o espectro LPC estimado será suave de um segmento para outro. Por outro lado, se M > N não haverá sobreposição entre segmentos adjacentes, parte do sinal de fala será totalmente perdido e o espectro LPC estimado entre segmentos adjacentes irá conter uma componente ruidosa que aumenta com M.

Como a divisão é arbitrária e descontínua, sobrepor segmentos é uma maneira de não criar pontos de descontinuidade no espectro LPC.

2.3.2 Aplicação de uma janela

O próximo passo no processamento consiste em aplicar uma janela para cada segmento individual de forma a minimizar as descontinuidades do sinal no início e no fim de cada segmento. Uma janela típica usada no método da autocorrelação é a janela de Hamming :

1 0 1 2 cos 46 . 0 54 . 0 ) ( ∨ ≤ ≤ −      − ⋅ − = n N N n n w π Equação 2.8

2.3.3 Análise LPC através do método da Autocorrelação O erro quadrático médio entre o sinal e o seu modelo é definido como:

      + = = = n p k k n k n s a n s n e E 2 1 2 ) ( ) ( ) ( Equação 2.9

um modo de estimar o modelo é através da minimização do erro quadrático médio que resulta de fazer: 0 = ∂ ∂ i a E

(

) (

)

⋅ − ⋅ − =− ⋅ − = n n p k k sn k sn i s n s n i a ( ) ( ) 1 para i=1..p Equação 2.10

(15)

Isto resulta no método da autocorrelação da análise LPC. A autocorrelação para um atraso τ é expressa como:

−− = + ⋅ = τ τ τ 1 0 ) ( ) ( ) ( N i i s i s R Equação 2.11

A Equação 2.10 pode ser expressa como o sistema de equações seguinte:

                − =                 ⋅                 − − − − − − ) ( ... ) 3 ( ) 2 ( ) 1 ( ... ) 0 ( ... ) 3 ( ) 2 ( ) 1 ( ... ... ... ... ... ) 3 ( ... ) 0 ( ) 1 ( ) 2 ( ) 2 ( ... ) 1 ( ) 0 ( ) 1 ( ) 1 ( ... ) 2 ( ) 1 ( ) 0 ( 3 2 1 p R R R R a a a a R p R p R p R p R R R R p R R R R p R R R R p Equação 2.12 2.3.4 Algoritmo de Durbin

O algoritmo recursivo de Durbin é o método mais eficiente para resolver este sistema de equações. No processo de resolução dos coeficientes de predição ak de ordem p, os ak para

todas as ordens inferiores a p são obtidos, assim como o correspondente erro médio de predição. Em cada recursão do algoritmo de Durbin, a ordem de predição é incrementada e o correspondente erro é determinado. Isto pode ser um critério de paragem para se encontrar a melhor ordem de predição:

p j a a p i i j E k E a k a a k a p i E j i R a i R k R E p j j i i i i j i i i j i j i i i i i j i j i ≤ ≤ ∨ = = ∨            − ≤ ≤ ∨      ⋅ − = ⋅ + = = ≤ ≤ ∨       − ⋅ + − = = − − − − − − = −

1 .. 1 1 1 ) 1 ( 1 ) ( ) ( ) 0 ( ) ( 1 2 ) 1 ( 1 ) ( ) ( 1 1 1 ) 1 ( 0 Equação 2.13

O fundamento da predição linear implica que qualquer sinal é definido por uma predição linear e o correspondente erro residual. Este resíduo contém toda a informação que se perdeu na predição: ) ( ) ( ) ( 1 n e k n s a n s p k k − + − =

= Equação 2.14

(16)

Partindo da Equação 2.5, a função de transferência do modelo LPC é definida como:

)

(

1

)

(

)

(

)

(

1

z

A

G

z

a

G

z

U

z

S

z

H

p k k k

=

+

=

=

= − Equação 2.15

Em que A(z) é o filtro inverso de ordem p.

2.4 Extracção de parâmetros

2.4.1 LSPs (Line Spectrum Pairs)

Os LSPs são uma representação dos coeficientes de predição do filtro inverso A(z), em que os p zeros de A(z) são mapeados para o círculo unitário do plano Z a partir de um par de polinómios auxiliares de ordem p+1 : P(z) e Q(z)

[

]

) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 2 1 ) ( 1 ) 1 ( 1 ) 1 ( − + − − + − ⋅ − = ⋅ + = + = z A z z A z Q z A z z A z P z Q z P z A p p Equação 2.16

onde os LSPs são as frequências dos zeros de P(z) e Q(z).

Como os coeficientes de predição são reais, o teorema fundamental da álgebra garante que as raízes de A(z), P(z) e Q(z) vão aparecer em pares complexos conjugados. Esta propriedade garante que a metade inferior do plano Z é redundante. Os LSPs às frequências 0 e +π estão sempre presentes devido à construção de P(z) e Q(z). Assim, os coeficientes de predição podem ser representados por um número de LSPs igual à ordem de predição p e são representados pelas frequências dos zeros de P e Q da metade superior do plano Z.

Os LSPs satisfazem uma propriedad e de entrelaçamento dos zeros dos polinómios P e Q. Cada zero complexo de A(z) é mapeado para um zero em P(z) e outro em Q(z):

(17)

2.4.2 Coeficientes Cepstrais

Os coeficientes cepstrais cm podem ser derivados directamente a partir dos coeficientes

LPC: p m a c m k c p m a c m k a c m p m k k m k m m k k m k m m > ∨ ⋅       = ≤ ≤ ∨ ⋅       + =

− − = − − = − 1 1 1 1 Equação 2.17

Os coeficientes cepstrais são os coeficientes da transformada de Fourier do logaritmo da amplitude do espectro S(w) :

+∞=−∞ − = m jwm m e c w S( ) log Equação 2.18

O número de coeficientes cepstrais deve ser superior à ordem de predição, tipicamente igual a Q=p x 3/2.

Por causa da sensibilidade dos coeficientes cepstrais de baixa ordem à envolvente espectral e a sensibilidade dos coeficientes de ordem alta ao ruído (ou outras formas de variação semelhantes a ruído, adoptou-se uma técnica de pesar os coeficientes cepstrais utilizando uma janela para minimizar estas sensibilidades [5]:

m m m m w c c Q m Q m Q w ⋅ = ≤ ≤ ∨           + = ˆ 1 sin 2 1 π Equação 2.19

2.4.3 Frequência Fundamental (pitch)

A estimação da frequência fundamental da voz foi feita no domínio das frequências [3], ao contrário dos outros parâmetros cuja extracção foi feita no domínio do tempo.

Assumindo que o sinal a analisar – x(n) - é harmónico, a magnitude logarítmica do espectro - X(n) - (obtida através de uma FFT) pode ser aproximada por um trem de impulsos no domínio das frequências. O período deste trem de impulsos pode ser facilmente medido considerando este sinal como pertencendo ao domínio dos tempos e realizar uma nova transformada de Fourier – Y(n):

(18)

(

)

(

( )

)

log ) ( ) ( log ) ( n X FFT n Y n x FFT n X = = Equação 2.20

Figura 2.4 – Representação dos sinais x(n), X(n) e Y(n) respectivamente

O máximo do sinal Y(n), localizado no índice m, corresponde à frequência fundamental do sinal. Sendo n o índice do primeiro máximo do sinal X(n), pode-se relacionar com m através de N=n x m, onde N é o número de pontos da segunda FFT Y(n ) (256 no caso da Figura 2.4). Sendo assim, a frequência fundamental f0 é dada por:

2 1 2 2 0 amostr amostr amostr f m f N m N f N n f = ⋅ = = Equação 2.21

Para melhorar o resultado deste método , utilizou-se uma técnica de clipping [2] sobre o sinal original x(n). Esta técnica consiste em passar o sinal original por uma função não-

(19)

-linear que tem como resultado uma versão “cortada” do sinal. Isto permite eliminar as oscilações ruidosas de baixa amplitude do sinal original, melhorando assim o resultado da detecção do pitch . O limiar de corte que apresentou os melhores resultados situa-se em 70% da máxima amplitude do sinal do segmento analisado.

Figura 2.5 – Função de “clipping” e exemplo

2.5 Estimação da média e covariância

Sendo X um vector de características extraídas da voz, a sua média e covariância são dadas por :

(

) (

)

= = − ⋅ − − = = N i T i i N i i X X N C X N 1 1 1 1 ˆ 1 ˆ µ µ µ Equação 2.22

De forma a estimar a média e covariância quando ainda não estão disponíveis todas as amostras ou quando se está a lidar com um grande número de amostras, é necessário recorrer a métodos de computação recursivos [4]:

(

)

(

) (

)

(

) (

)

T N N N N N N k T N k N k N N N N N k k N X X N C N N X X N C X N X N µ µ µ µ µ µ µ ˆ ˆ 1 1 ˆ 1 ˆ ˆ 1 ˆ ˆ 1 1 ˆ 1 1 ˆ 1 1 1 1 1 1 1 1 1 1 1 − ⋅ − ⋅ + + ⋅ − = − ⋅ − = − ⋅ + + = + = + + + = + + + + + = +

Equação 2.23

2.6 Medidas de distância

Para a obtenção da classificação de um elemento, como pertencente ou não a uma dada classe (identificar um orador com um dos segmentos previamente analisados e constituindo a base de dados) é necessário usar medidas de distância. De entre as várias medidas referidas na literatura, houve duas que foram implementadas e testadas nos nossos algoritmos: a divergência e a distância de Bhattacharyya.

(20)

2.6.1 Divergência

A Divergência é uma medida de distância ou desigualdade entre duas classes baseada na teoria da informação. Fornece um meio de avaliar parâmetros e a eficiência de discriminação entre classes. A sua equação é dada por :

(

)

(

)

[

]

[

(

)

(

) (

)

T

]

j i j i i j i j j i j i trace C C C C trace C C J, = − ⋅ −1− −1 + −1+ −1 ⋅ µµµµ 2 1 2 1 Equação 2.24

O primeiro termo da soma é a Forma da Divergência (“Divergence Shape”):

(

)

(

)

[

1 1

]

) , ( = ij ⋅ −jiD i j trace C C C C d Equação 2.25 2.6.2 Bhattacharyya

A distância de Bhattacharyya está intimamente ligada à probabilidade de erro como um limite superior no erro de Bayes para classes com a distribuição normal. Para um função de densidade de probabilidade normal, a distância de Bhattacharyya entre duas classes é dada por :

(

)

(

i j

)

j i T j i j i j i j i C C C C C C B µ µ µµ      + ⋅ − +               ⋅ + = −1 2 , 2 8 1 2 ln 2 1 Equação 2.26

O primeiro termo da soma é chamado Forma de Bhattacharyya (“Bhattacharyya Shape”):

              ⋅ + = j i j i B C C C C j i d (, ) ln 2 Equação 2.27

2.7 Síntese preliminar

Em resumo, com o pré-processamento e segmentação dos sinais de fala, seguida da identificação dos segmentos vozeados, podemos proceder à extracção dos parâmetros característicos desses segmentos. Os métodos que implementámos determinam quer os parâmetros LP C quer os Coeficientes Cepstrais. Simultaneamente, implementámos duas medidas de distância e estamos, portanto, em condições de proceder a testes que permitam, para as várias situações, escolher qual das quatro combinações (dois conjuntos de parâmetros e d uas medidas de distância) conduz a melhores resultados.

(21)

3 Descrição do sistema desenvolvido

3.1 Ambiente de programação

A linguagem de programação utilizada neste projecto foi o C++. Optou-se pelo ambiente de programação Borland C++Builder v5.0 uma vez que apresenta um bom compromisso entre facilidade de programação e versatilidade. Todas as rotinas foram programadas de raiz, incluindo alguns componentes e bibliotecas necessários à optimização do programa (leitura e escrita de ficheiros de som .wav, interface com a placa de som, escrita de tabelas em ficheiros Excel,etc.).

3.2 Etapas de implementação

Numa primeira fase, começou-se por investigar na literatura e na Web trabalhos já efectuados nesta área, reunindo aqueles que apresentavam os melhores resultados e cuja implementação em software fosse viável .

Numa segunda fase construiu-se uma pequena base de dados recolhida a partir de programas televisivos que serviu para testar alguns algoritmos, nomeadamente a análise LPC, algoritmo de segmentação e extracção de alguns parâmetros.

Na terceira fase alargou-se a base de dados de forma a ser possível realizar um conjunto de testes significativos que indicassem quais seriam os melhores parâmetros, distâncias, tempos de aprendizagem, tempos de teste,etc., de modo a obter uma taxa de erros de identificação mínima. Nesta fase os algoritmos foram melhorados de forma a ser possível efectuar o reconhecimento do orador em tempo real.

A última fase consistiu em adicionar uma nova funcionalidade ao programa que permitisse a aprendizagem não-supervisionada a partir de um conjunto de oradores numa conversa.

3.3 Reconhecimento do orador utilizando uma base de dados

O esquema geral do sistema implementado está representado a seguir:

(22)

As características da forma de onda de entrada foram fixadas em: frequência de amostragem de 22050 Hz ,16bit , mono . Esta frequência foi considerada suficiente para manter a qualidade de percepção das amostras de voz, sem contudo tornar o processamento demasiado pesado.

3.3.1 Cálculo dos coeficientes LPC

É usada uma janela de Hamming em cada segmento de 20ms (441 amostras) do sinal de entrada. Para facilitar o cálculo da FFT, esta janela foi alargada para 512 amostras, que são aproximadamente 23.2 ms. A sobreposição entre segmentos adjacentes é de 50% (256 amostras=11.6 ms) .

É feita de seguida uma análise LPC de ordem 10 em que os coeficientes são calculados usando o algoritmo de Durbin. Depois de calculados os coeficientes é efectuada uma expansão da largura de banda das formantes [4], em que os coeficientes ak são

substituídos por ak x gk sendo g=0.994 para uma expansão de 15 Hz.

3.3.2 Separação em segmentos vozeados / não-vozeados / silêncio

Neste bloco são calculados os 5 parâmetros que serão usados no algoritmo de decisão do segmento:

Figura 3.2 – Algoritmo de classificação de segmentos

O segmento só é utilizado no processamento seguinte se for do tipo vozeado. Isto é necessário porque a análise LPC parte do princípio que o sinal de fala apresenta um elevado grau de correlação, o que acontece apenas nos segmentos vozeados.

Dos resultados experimentais que obtivemos, a percentagem de segmentos vozeados em relação ao número de segmentos total é aproximadamente 50% para um discurso fluído. A construção dos vectores modelo das 3 classes (V/NV/S) foi feita a partir da segmentação manual de extractos de fala usando o interface gráfico representado na Figura 3.3 onde se pode visualizar o espectrograma do sinal e onde cada cor da barra superior corresponde a um tipo de segmento . Na barra de estado da janela é também possível visualizar os valores dos 5 parâmetros usados no algoritmo de separação de segmentos.

Na Figura 3.3 é usado o seguinte código de cores: azul→segmento não-vozeado;

(23)

Figura 3.3 – Espectrograma de uma amostra de voz a ser segmentada

3.3.3 Extracção de parâmetros

Nesta fase são calculados os parâmetros relevantes para posterior processamento. Eles são os LSPs, os coeficientes cepstrais e a frequência fundamental.

O vector dos LSPs tem um comprimento igual à ordem dos coeficientes LPC que é 10. O vector dos coeficientes cepstrais tem um comprimento igual a 3/2 x 10 = 15 elementos. Ambos os parâmetros são calculados a partir dos coeficientes LPC.

Para o cálculo da frequência fundamental é calculada uma primeira FFT de 512 pontos seguida de outra FFT de 256 pontos. Nesta última FFT, o valor do pitch é procurado no intervalo de frequências entre 86.8 Hz e 300 Hz. Para suavizar o contorno do pitch ao longo de segmentos adjacentes, o pitch do segmento actual é aceite se diferir menos de 40 Hz em relação ao pitch do segmento anterior. Os valores de pitch considerados válidos são agrupados num vector para posterior análise. Estes limites foram obtidos empiricamente de modo a optimizar o cálculo final do pitch .

3.3.4 Estimação da média e covariância dos parâmetros

A estimação da média e covariância dos parâmetros é feita durante um intervalo de tempo que varia de acordo com o modo de análise:

Registo na base de dados – neste modo, a média e a covariância são calculadas

recursivamente para a totalidade do tempo de fala do orador (tempo de aprendizagem), por ex. 2 minutos. Durante este tempo o número de segmentos analisado é 10336 sendo de esperar que metade destes segmentos sejam vozeados.

A frequência fundamental resulta do cálculo da mediana do conjunto de valores do pitch extraídos de cada segmento. Optou-se pela mediana porque é uma operação menos sensível a grandes variações dos valores (ao contrário da média).

Reconhecimento do orad or – neste modo a média e a covariância são calculadas para

(24)

de aprendizagem. Durante este tempo o número de segmentos analisados é 861 . Neste modo existe um entrelaçamento dos conjuntos dos pequenos segmentos de ~20ms em que cada conjunto tem a duração do tempo de identificação (10 segundos). Isto significa que a cada 1s é feita uma nova identificação:

Figura 3.4 – Tempo de identificação e tempo de interlaçamento

Para o cálculo do pitch, é iniciado um novo conjunto de valores a cada segundo (intervalo de interlaçamento).

Se durante o tempo de identificação, o número de segmentos vozeados for inferior a 20% do número total de segmentos, considera-se que os dados recolhidos não são suficientes para se fazer uma boa identificação do orador sendo por isso rejeitados.

Depois de calculadas, as matrizes de covariância dos parâmetros são normalizadas de forma a que a diagonal da matriz contenha apenas 1’s. Isto é obtido através da divisão de cada elemento (i,j) pela raiz do elemento(i,i) e pela raiz do elemento (j,j):

) , ( ) , ( ) , ( ) , ( j j x i i x j i x j i x ⋅ → Equação 3.1

Esta normalização é necessária para ter uma medida de distância absoluta, sendo possível atribuir uma classificação à identificação de acordo com o valor normalizado da distância.

3.3.5 Armazenamento dos dados de referência

Esta etapa apenas é atingida no caso do orador pretender registar-se na base de dados. São armazenados num ficheiro .ref os seguintes dados:

• Média dos LSPs – vector com 10 elementos • Covariância dos LSPs – matriz de 10 x 10 elementos • Média dos coeficientes cepstrais – vector com 15 elementos • Covariância dos coeficientes ceptrais – matriz de 15 x 15 elementos

(25)

• Frequência fundamental – 1 elemento • Percentagem de segmentos vozeados – 1 elemento

Devido ao facto das matrizes de covariância serem simétricas podem ser guardadas apenas com uma das metades triangulares (superior ou inferior), ficando a ocupar aproximadamente metade do espaço.

Desta forma, cada orador fica representado na base de dados por um ficheiro .ref de 1.57KB . Juntamente com o ficheiro .ref é criado um ficheiro .csv que pode ser aberto no Excel para visualização dos parâmetros.

3.3.6 Cálculo da distância entre oradores

Nesta fase é calculada a distância entre o orador a ser reconhecido e todos os oradores da base de dados.

Para cada orador é calculada a forma de Bhattach aryya e/ou a forma da divergência para as matrizes de covariância dos LSPs e/ou coeficientes cepstrais. Estas distâncias são passadas ao algoritmo de decisão que é descrito a seguir.

3.3.7 Algoritmo de decisão (classificação da identificação)

Neste algoritmo é calculado um histograma em que no eixo horizontal estão representadas as distâncias do orador que está a ser reconhecido aos oradores da base de dados. Este eixo é dividido em intervalos de distância com uma largura de 0.2. No eixo vertical está representada a frequência absoluta (número de oradores) de cada classe:

(26)

Foram criados 5 tipos de classificação : • Excelente • Muito Boa • Boa • Fraca • Rejeitado

Um orador que tenha uma classificação de Excelente apresenta um valor de distância muito pequeno correspondente a um intervalo de histograma apenas com esse orador (muito pouco provável haver mais do que um orador numa classe de distâncias baixas) . Um orador Rejeitado é um orador que apresenta um valor de distância demasiado elevado em relação a qualquer referência da base de dados . O limite de distância que define se o orador pertence ou não à base de dados foi definido de form a a equilibrar a percentagem de erros de falsos negativos e falsos positivos (erros do tipo II e I respectivamente) . É considerado um falso negativo aquele orador que pertence à base de dados e no entanto é classificado como Rejeitado . Um falso positivo é um orador que não pertence à base de

dados e no entanto não é Rejeitado.

Para diminuir o número de falsos positivos utilizou-se um critério baseado no pitch que consiste em baixar a classificação de um orador cujo pitch se afasta mais de 30 Hz em relação ao pitch do orador de referência com o qual está a ser comparado. Com esta alteração, o número de falsos positivos baixou aproximadamente para metade, sem haver um aumento significativo de falsos negativos.

Os intervalos de distâncias que constam da Tabela 3.1 foram obtidos empiricamente depois de um conjunto de testes efectuados com uma base de dados de elevada dimensão. Classificação Distâncias Excelente 0.0 - 0.4 Muito boa 0.4 - 0.8 Boa 0.8 - 1.2 Media 1.2 - 1.6 Fraca 1.6 - 2.0 Rejeitado > 2.0

Tabela 3.1 – Classificação da identificação de acordo com a distância (válidos para

tempos de aprendizagem de 2 minutos e tempos de teste de 10 segundos)

Os valores da distância apresentados na Tabela 3.1 foram obtidos utilizando os LSPs com o operador de distância divergência. Para outras combinações de parâmetros e distâncias, é necessário afectar o valor da distância por um factor multiplicativo de forma a se ajustarem aos intervalos estabelecidos:

Parâmetros Distância Factor

Divergência 1 LSPs Bhattacharyya 8 Divergência 1/4 Coeficientes cepstrais Bhattacharyya 8/3.7

(27)

3.4 Classificação não-supervisionada de oradores numa conversa

A classificação não-supervisionada de oradores é independente da base de dados existente, sendo feita a separação dos diferentes oradores sem qualquer conhecimento prévio das suas vozes. Esta classificação torna-se útil para obter amostras de voz de oradores não cooperantes que ainda não estejam registados na base de dados. A conversa a ser analisada não pode ter mais do que um orador activo simultaneamente e tem as mesmas exigências em termos de ruído que a classificação supervisionada.

O diagrama geral do sistema implementado está apresentado a seguir :

Figura 3.6 – Diagrama de blocos do algoritmo de classificação implementado

3.4.1 Extracção de parâmetros

No bloco de extracção de parâmetros, o processamento do sinal da voz é feito de modo semelhante à classificação supervisionada. As diferenças estão nos tempos de identificação e no tempo de interlaçame nto. Neste caso, o tempo de identificação é tipicamente de 2 segundos e o tempo de interlaçamento de 0.5 segundos. Estes valores apresentam um bom compromisso entre o número de vectores necessários para o algoritmo de “clustering” e a frequência com que existem mudanças de oradores numa conversa.

Devido ao facto de ser preciso um grande número de vectores para realizar a classificação, este procedimento não pode ser feito em tempo real. Deste modo, os parâmetros do orador que são extraídos durante o tempo de identificação são guardados num ficheiro .fmc até a conversa terminar. Devido ao tempo de interlaçamento ser muito curto, a cada 0.5 segundo será escrito nesse ficheiro 1.57 KB de dados (os parâmetros do orador), o que origina um débito de dados de 3.14 KB/s.

(28)

3.4.2 Algoritmo de Lloyd

O agrupamento de um conjunto de L vectores num conjunto de M centróides pode ser feito através do algoritmo de Lloyd [5] (ou algoritmo “K -means”), que é descrito a seguir :

1. Inicialização – Escolher arbitrariamente M vectores do conjunto de L vectores,

que serão os centróides iniciais.

2. Procura do vector mais próximo – Para cada vector, é necessário encontrar o

centróide que está mais próximo (utilizando uma medida de distância à escolha) e associar o vector a esse centróide.

3. Actualização dos centróide – Para cada centróide, utilizar todos os vectores que

pertencem a esse centróide para calcular um novo centróide, que será a média de todos os vectores.

4. Iteração – Repetir os passos 2 e 3 até a distância média ser inferior a um certo

limiar ou o número de iterações esgotar-se.

Na Figura 3.7 está representado um exemplo da aplicação do algoritmo de Lloyd para o caso de vectores bidimensionais X=[x1 x2] onde se representa a trajectória de 3 centróides

(M=3) . Os centróides iniciais estão rodeados por uma circunferência azul e os centróides finais por uma vermelha. Neste caso a convergência foi atingida ao fim de 3 iterações. Em cada iteração os centróides são o centro de uma célula de Voronoi [6]:

Figura 3.7 – Exemplo da aplicação do algoritmo de Lloyd

No nosso caso, o conjunto inicial de L vectores são as L matrizes de covariância (dos LSPs ou dos coeficientes cepstrais) existentes no ficheiro .fmc a analisar. O número de centróides M é igual ao número de oradores diferentes presentes na conversa a analisar. O operador de distância a utilizar no passo 2 do algoritmo de Lloyd pode ser a forma da divergência ou a forma de Bhattacharyya.

No desenvolvimento do algoritmo, utilizou-se uma interface visual do tipo linha temporal, em que cada linha corresponde a um orad or (centróide). Deste modo é possível visualizar o resultado da classificação ao mesmo tempo que se ouve o orador activo na conversa:

(29)

Figura 3.8 – Exemplo da separação de oradores numa conversa

A so breposição entre barras adjacentes de oradores diferentes deve-se ao facto do tempo de identificação (2 segundos) ser muito superior ao tempo de interlaçamento (0.5 segundos), podendo haver segmentos em que está mais do que um orador activo (transição entre oradores).

(30)

4 Resultados

4.1 Reconhecimento do orador

4.1.1 Base de dados

A base de dados de oradores é constituída por gravações feitas a partir de canais de televisão, a maior parte em ambiente de estúdio de baixo ruído, sendo a grande maioria dos oradores jornalistas e figuras públicas. Para ter uma boa representação estatística na base de dados, cada orador deve ter associado um discurso de pelo menos 2 minutos (o que corresponde a um discurso efectivo de 1 minuto de fala vozeada – ver secção 3.3.2). A base de dados é neste momento formada por 67 oradores, dos quais 17 são do sexo

feminino.

4.1.2 Nomenclatura utilizada

De modo a simplificar a definição dos tipos de erros, usou-se a seguinte nomenclatura : ovelha - é um orador de teste que está registado na base de dados

lobo - é um orador de teste que não está registado na base de dados Foram definidos 3 tipos de erros :

Erro Tipo I - quando um lobo é identificado como uma ovelha

Erro Tipo II - quando uma ovelha obtém a classificação de Rejeitado

Erro Tipo III - quando uma ovelha é confundida com outra

Para facilitar a apresentação de resultados usou-se também a seguinte nomenclatura:

TA – Tempo de aprendizagem: tempo correspondente ao registo do orador na base de

dados (ficheiro .ref)

TT – Tempo de teste: duração de cada ficheiro de teste

p – ordem da análise LPC

4.1.3 Resultados dos testes

Os discursos de teste têm a duração máxima de 10 segundos e podem pertencer a oradores que não estejam na base de dados. A maior parte dos ficheiros de teste foram extraídos a partir da mesma sessão de gravação que o ficheiro de referência correspondente, tendo por isso o mesmo ambiente de gravação e mesma data.

O número total de testes neste momento é de 372, dos quais 76 são de oradores que não pertencem à base de dados.

(31)

Para determinar os erros de identificação, utilizou-se uma interface gráfica (Figura 4.1) em que se pode visualizar :

• Número de erros de cada tipo. • Número total de erros.

• Número de ovelhas e lobos.

• Percentagem de lobos cuja classificação é diferente de Rejeitado - “lobos felizes” • Percentagem de ovelhas mal classificadas(rejeitadas e confundidas) - “ovelhas tristes” • Identificação dos oradores de teste que originaram erros.

• Tabela com todas as combinações de oradores de teste / oradores de referência e respectivas distâncias. Para cada orador de teste é também indicada a classificação, menor distância e os oradores de referência que mais se aproximaram dentro da mesma classe de distância.

Figura 4.1 – Interface gráfico de testes

4.1.3.1 Tempos de teste e aprendizagem variáveis para várias combinações parâmetro / operador de distância

As tabelas seguintes mostram os resultados de várias experiências com tempos de teste e aprendizagem variáveis a partir de um conjunto de 372 ficheiros de teste dos quais 77

(32)

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 9 21 1 31 (8.33%) 11.69% 7.46% LSP Bhattacharyya 10 16 1 27 (7.26%) 12.99% 5.76% Divergência 2 12 1 15 (4.03%) 2.60% 4.41% Cepstro Bhattacharyya 3 10 0 13 (3.49%) 3.90% 3.39%

Tabela 4.1 - TA = 2 minutos , TT = 10 segundos, p=10

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 13 24 8 45 (12.10%) 16.88% 10.85% LSP Bhattacharyya 14 17 8 39 (10.48%) 18.18% 8.47%

Divergência 5 14 1 20 (5.38%) 6.49% 5.08% Cepstro Bhattacharyya 3 17 0 20 (5.38%) 3.90% 5.76%

Tabela 4.2 - TA = 1 minuto , TT = 10 segundos, p=10

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 16 38 13 67 (18.01%) 20.78% 17.29% LSP Bhattacharyya 15 35 13 63 (16.94%) 19.48% 16.27% Divergência 10 20 2 32 (8.60%) 12.99% 7.46% Cepstro Bhattacharyya 6 22 1 29 (7.80%) 7.79% 7.80%

Tabela 4.3 - TA = 30 segundos , TT = 10 segundos, p=10

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 16 48 15 79 (21.24%) 20.78% 21.36% LSP Bhattacharyya 16 44 15 75 (20.16%) 20.78% 20.00% Divergência 7 23 4 34 (9.14%) 9.09% 9.15% Cepstro Bhattacharyya 6 23 2 31 (8.33%) 7.79% 8.47%

Tabela 4.4 - TA = 2 minutos , TT = 5 segundos, p=10

4.1.3.2 Variação da ordem da análise LPC

Embora se tenha optado por uma análise LPC de ordem 10, depois de análise da literatura e tendo em conta que se pretendia que o sistema funcionasse em tempo real, fez-se análises com ordens 6 e 14 para avaliar a sensibilidade do método.

Os resultados apresentados na Tabela 4.1 à Tabela 4.4 são para uma análise LPC de ordem 10. A seguir estão apresentadas duas tabelas que correspondem a uma análise LPC de

(33)

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 16 64 25 105 (28.30%) 21.05% 30.17% LSP Bhattacharyya 17 60 26 103 (27.76%) 22.37% 29.15% Divergência 20 28 8 56 (15.09%) 26.32% 12.20% Cepstro Bhattacharyya 20 23 8 51 (13.75%) 26.32% 10.51%

Tabela 4.5 - TA = 2 minutos , TT = 10 segundos , p=6

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 6 20 0 26 (7.01%) 7.89% 6.78% LSP Bhattacharyya 5 20 0 25 (6.74%) 6.58% 6.78%

Divergência 1 7 1 9 (2.43%) 1.32% 2.71%

Cepstro Bhattacharyya 1 6 1 8 (2.10%) 1.32% 2.37%

Tabela 4.6 - TA = 2 minutos , TT = 10 segundos , p=14

Parâmetro distância Tipo de Tipo I Erro Tipo II Erro Tipo III Erro Total de Erros % Lobos J % Ovelhas L Divergência 3 19 0 22 (5.93%) 3.95% 6.44% LSP Bhattacharyya 3 19 0 22 (5.93%) 3.95% 6.44% Divergência 3 7 0 10 (2.70%) 3.95% 2.37% Cepstro Bhattacharyya 2 8 0 10 (2.70%) 2.63% 2.71%

Tabela 4.7 - TA = 2 minutos , TT = 10 segundos , p=16

4.1.3.3 Introdução de artefactos nos ficheiros de teste

De forma a testar a robustez do algoritmo desenvolvido introduziram-se uma série de artefactos num ficheiro de teste de 10 segundos pertencente a um orador existente na base de dados e comparou-se este ficheiro com a referência desse orador na mesma base de dados. Os artefactos introduzidos foram os seguintes:

• ruído branco

• ambiente de café (introdução de várias vozes de fundo sobre a voz do orador) • eco

mudança de pitch

• amplificação do sinal original

Teve-se o cuidado de normalizar as potências dos sinais introduzidos de forma a poder fazer uma comparação entre as várias perturbações. Desta forma o sinal de ruído branco introduzido tem a mesma potência que o sinal de ruído do tipo “café” introduzido. Todos os ficheiros iniciais (ruído branco, ruído “café” e orador de teste) tinham a mesma potência. Na Tabela 4.8 e Tabela 4.9 estão indicadas as relações de potência Sinal/Ruído (S/N) em dBs para cada mistura. As distâncias foram calculadas usando a combinação coeficientes cepstrais (análise LPC de ordem 14) / distância de Bhattacharyya e são calculadas em relação ao registo na base de dados do orador de teste:

S/N (dBs) 34.0 26.0 20.0 16.5 14.0

Distância 1.60 2.71 4.10 4.92 5.49

Erro Sem erro Com erro Com erro Com erro Com erro

(34)

S/N (dBs) 20.0 16.5 14.0 10.4 8.0 4.4 1.9

Distância 1.21 1.24 1.25 1.37 1.45 1.76 2.00

Erro Sem Erro Sem Erro Sem Erro Sem Erro Sem Erro Sem Erro Com erro

Tabela 4.9 – Resultados da adição de ruído do tipo “café” ao ficheiro de teste de um orador

Eco tipo auditório Eco tipo igreja Aumento do pitch (+10%) Diminuição de pitch (-10%)

Distância 1.51 1.32 3.63 5.28

Erro Sem Erro Sem Erro Com erro Com erro

Tabela 4.10 – Resultados de outras alterações ao ficheiro de teste de um orador

Amplificação (dB) -15 -10 -5 +5 +10 +15 +20

% Vozeada 16% 38% 49% 55% 57% 59% 61%

Distância 2.39 1.32 1.22 1.11 1.42 1.91 2.68

Erro Com erro Sem Erro Sem Erro Sem Erro Sem Erro Sem Erro Com erro

Tabela 4.11 - Resultados de amplificar o sinal do ficheiro de teste de um orador

Como o ficheiro de teste original já estava normalizado pela amplitude, os valores de amplificação positiva (em dBs) na Tabela 4.11 correspondem a sinais que apresentam algum nível de saturação, tanto maior quanto maior for a amplificação. Como os segmentos vozeados são aqueles que estão modelizados com a maior energia (ver secção 2.2), ao descer o nível de amplificação a distância destes segmentos ao segmento modelo para a fala vozeada vai aumentar, diminuindo assim o número de segmentos classificados como vozeados e o tempo efectivo de teste.

O teste com um só orador não pode ser conclusivo, mas uma forma de avaliar a sensib ilidade do método a condições deficientes de captação de sinal.

4.2 Classificação não-supervisionada de oradores

As conversas usadas para realizar os testes foram gravadas a partir de programas televisivos (entrevistas, debates, etc.).

Realizaram-se testes com o algoritmo de “clustering” variando o número de iterações, os parâmetros utilizados e o operador de distância. A interface de testes utilizada está apresentada na Figura 4.2, onde se pode visualizar uma tabela com as distâncias médias dos vectores a cada centróide, o número de vectores que pertencem a cada centróide e a distância entre centróides.

Verificou-se que os melhores resultados eram obtidos usando a combinação coeficientes cepstrais / distância de Bhattacharyya para um número de iterações superior a 20.

(35)
(36)

5 Software de demonstração

De forma a apresentar o nosso sistema de reconhecimento do orador construiu -se um programa de demonstração que fosse fácil de utilizar e que desse um panorama de algum do trabalho desenvolvido. Este programa é constituído por 3 módulos :

1. Registo na base de dados

2. Reconhecimento do orador em tempo real 3. Separação de oradores numa conversa

5.1 Registo na base de dados

Neste módulo os oradores podem registar-se na base de dados com tempos de aprendizagem variáveis (30 segundos, 1 minuto ou 2 minutos).

Estes tempos não são absolutos mas correspondem ao tempo durante o qual o orador fala (silêncios são ignorados). No final é criado um ficheiro com os parâmetros de voz do orador com um tamanho aproximado de 1.6 KB.

Foi necessário criar um filtro digital passa-alto de 2ª ordem para remover baixas frequências parasitas introduzidas pelas fontes de alimentação e para eliminar as frequências muito baixas que surgiam ao movimentar o microfone. Foi também feito um pequeno clipping ao sinal do microfone para remover o ruído de baixa amplitude captado pelo mesmo sem contudo introduzir distorções apreciáveis ao sinal de fala.

(37)

5.2 Reconhecimento do orador em tempo real

Neste módulo é feito o reconhecimento do orador em tempo real.

Na janela inicial o orador pode escolher quais os oradores de referência com os quais deseja ser comparado e ouvir os ficheiros .wav de registo desses mesmos oradores. Pode também ver a data de criação dos ficheiros .ref e o pitch do orador de referência:

Figura 5.2 – Escolha da base de dados com a qual o orador quer ser comparado

Na janela seguinte o orador pode escolher entre ser reco nhecido directamente através do microfone ou abrir um ficheiro de som (.wav) existente no disco .

O orador pode também escolher o tempo de identificação: 2, 5 ou 10 segundos.

A cada segundo (tempo de interlaçamento) são apresentados o nome e fotografia (se disponível) do orador identificado assim como a sua classificação, a menor distância a qualquer uma das referências seleccionadas inicialmente, a frequência fundamental da voz e os oradores que mais se aproximaram. O sexo do orador é estimado a partir da frequência fundamental ( maior que 160Hz corresponde ao sexo feminino e abaixo deste valor ao sexo masculino ):

(38)

Figura 5.3 – Reconhecimento do orador em tempo real

5.3 Separação de oradores numa conversa

Neste módulo é analisada uma conversa entre vários oradores.

São coleccionadas amostras dos parâmetros de voz do orador activo durante 2, 5 ou 10 segundos e a intervalos regulares de 500 ms. Este conjunto de parâmetros é a entrada de um algoritmo de agrupamento (clustering) - algoritmo de Lloyd.

Os parâmetros de entrada deste algoritmo são o número de oradores presentes na conversa e o número de iterações do algoritmo.

No final é apresentada uma linha temporal em que cada cor corresponde a um orador. Depois deste processo de separação, é possível procurar na base de dados os oradores que fazem parte da conversa ou então criar uma nova entrada.

Também é possível visualizar as estatísticas da conversa:

• duração total de cada orador • duração média de cada orador

(39)

Figura 5.4 – Número de oradores na conversa e número de iterações do algoritmo de Lloyd

(40)

6 Conclusões

6.1 Características da base de dados

As tabelas dos resultados foram geradas a partir de uma base de dados de 67 oradores e

372 testes. A grande maioria destes testes foi extraída da mesma sessão de gravação de

onde se extraiu a informação de referência do orador, o que implica : • gravação com o mesmo microfone

• mesmo ambiente de gravação (ruídos de fundo,ecos,etc) • mesma data e mesmo estado emocional

Estas condições contribuiram em larga escala para os bons resultados obtidos nos testes. Os resultados são ainda melhores quando se diminui o tamanho da base de dados (quando se sabe à priori o grupo de pessoas que irá ser reconhecido). O elevado número de testes torna os resultados apresentados bastante credíveis.

6.2 Condições de gravação

Em geral , os segmentos analisados são obtidos em ambiente silencioso . Contudo , foram feitos testes adicionando ruído que simulasse o ambiente de café que demonstraram uma considerável robustez do algoritmo.

A introdução de efeitos de eco também se revelou pouco perturbadora da identificação do orador.

A adição de ruído branco revelou-se bastante perturbadora dos bons resultados do método. Isto deve-se sobretudo à diminuição de segmentos vozeados resultante do aumento das passagens por zero do sinal (ver secção 2.2 ), diminuindo o tempo efectivo do teste.

A alteração da frequência fundamental da voz do orador (pitch) em +/- 10% produziu erros de identificação. Isto demonstra que o algoritmo não se adapta a mudanças que alterem consideravelmente o espectro da voz do orador (exemplos: envelhecimento, constipações, estados emocionais).

Em relação à amplificação do sinal de voz, verifica-se que para um sinal normalizado pelo máximo de amplitude, as atenuações originam mais facilmente erros de identificação do que as amplificações. Isto ocorre porque nas atenuações a percentagem vozeada do sinal cai rapidamente devido à diminuição da energia do sinal (ver secção 2.2 ). Nas amplificações, os erros de identificação não resultam da diminuição da percentagem de segmentos vozeados, mas sim da deformação do sinal devida à saturação.

Como os testes foram efectuados com apenas um orador, estes resultados podem não ser conclusivos.

6.3 Ordem da análise LPC

Variando a ordem da análise LPC de 6 para 16, pode-se verificar que os melhores resultados são para ordens de análise elevada (14 e 16), não havendo grandes diferenças de resultados para as ordens 14 e 16. Pode-se então concluir que o aumento da ordem da análise LPC não iria melhorar significativamente os resultados obtidos a partir da ordem 14.

O aumento da ordem de análise implica um grande aumento no tempo de processamento, pelo que não se justifica utilizar ordens muito elevadas.

Referências

Documentos relacionados

forficata recém-colhidas foram tratadas com escarificação mecânica, imersão em ácido sulfúrico concentrado durante 5 e 10 minutos, sementes armazenadas na geladeira (3 ± 1

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

Os Oficiais de Registro Civil das Pessoas Na- turais do Estado de São Paulo também têm competência para os atos notariais de reconhecimento de firma, autenticação de cópia

Ainda que hajam progressos marginais em fontes de energias alternativas, a economia energética do mundo industrial é tão profundamente dependente dos combustíveis fósseis

As maiores prevalências de realização de parto em instituições públicas foram observadas em gestantes com idade entre 14 e 24 anos, com menor escolaridade, de cor negra, que

Resultado: Ranking de Educação conforme pesquisa do Observatório Social do Brasil.. Ranking- EDUCAÇÃO

Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos fundos Principais fontes de financiamento disponíveis: Autofinanciamento: (corresponde aos