universidade federal do par ´a pr ´o-reitoria de - pibic

Transcrição

universidade federal do par ´a pr ´o-reitoria de - pibic
UNIVERSIDADE FEDERAL DO PARÁ
PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO
DIRETORIA DE PESQUISA
PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA
RELATÓRIO TÉCNICO - CIENTÍFICO
Perı́odo: 01/02/2011 a 31/07/2011
( ) PARCIAL
(X) FINAL
IDENTIFICAÇÃO DO PROJETO
Tı́tulo do Projeto de Pesquisa:
FFTranscriber: Desenvolvimento de Algoritmos para Reconhecimento e Realce de Voz e Implementação
de Sistema para Transcrições Forenses.
Nome do Orientador:
Aldebaro Barreto da Rocha Klautau Júnior
Titulação do Orientador:
Doutor
Faculdade:
Faculdade de Engenharia da Computação
Unidade:
Instituto de Tecnologia - ITEC
Laboratório:
Laboratório de Processamento de Sinais (LaPS)
Tı́tulo do Plano de Trabalho:
Implementação de um Software para Transcrição Otimizado para Aplicações Forenses
Nome do Bolsista:
Renan Moura Ferreira
Tipo de Bolsa:
(X) PIBIC/CNPq
( ) PIBIC/UFPA
1
( ) PIBIC/INTERIOR
( ) PIBIC/FAPESPA
( ) PARD
( ) PARD - renovação
( ) Bolsistas PIBIC do edital CNPq 001/2007
1
Introdução
A transcrição textual de áudio se faz muito comum nos dias de hoje em várias atividades e verifica-se,
com facilidade, como a agilização desse processo ajudaria no cotidiano das pessoas nas mais diversas
áreas. O presente trabalho focaliza o desenvolvimento de um aplicativo para transcrição de áudio forense,
impactando de forma direta no melhor atendimento à população no que diz respeito ao combate à criminalidade. Apesar do enfoque do trabalho, percebe-se que suas aplicações podem ir desde o uso pessoal
doméstico no desenvolvimento de tarefas simples, até o uso corporativo na documentação de áudio de
palestras, reuniões, pareceres jurı́dicos entre outros.
O reconhecimento de voz permite que o áudio seja transcrito automaticamente com uma determinada
taxa de acerto o que faz com o trabalho de transcrição manual diminua significativamente. Para que os
resultados obtidos com o reconhecimento de voz sejam melhores, é possı́vel torná-lo especı́fico a um
locutor, ou seja, fazer uma adaptação do sistema para que este responda de forma mais precisa a um
determinado usuário.
Geralmente, o áudio a ser transcrito é gravado em um ambiente ruidoso o que diminui o desemepenho
do reconhecedor de voz, assim, outra forma de melhorar o desempenho dos sistemas de reconhecimento
é fazer o realce do sinal de voz (e remover o ruı́do) antes do reconhecimento.
É sabido que os algoritmos de realce de voz apresentam dificuldades e, algumas vezes, não é possı́vel
melhorar tanto a inteligibilidade quanto a qualidade simultaneamente. O mais importante é tornar o sinal
mais inteligı́vel tanto para seres humanos quanto para computadores.
2
Justificativa
A maioria das transcrições de áudio forense feitas no estado do Pará especificamente - apesar de
que esta constatação se estende para praticamente todo o Brasil - são feitas de um modo extremamente
simples em que um transcritor (perito) através do auxı́lio de um software de edição de áudio de propósito
geral e um outro de edição de texto, ouve um determinado segmento de áudio e então o transcreve. Essa
é uma forma bastante ineficaz de realizar esse trabalho pois os softwares não são integrados para otimizar
a produtividade, tornando o processo enfadonho, o que por sua vez aumenta a suscetibilidade a erros do
responsável pela transcrição.
Outras ferramentas com significativa eficiência para esse tipo de finalidade já existem para outras
lı́nguas, a exemplo do inglês com o Dragon NaturallySpeaking Speech Recognition Software da empresa
Nuance, mas não há equivalente para o português brasileiro, de forma que há então uma oportunidade de
tentarmos nos igualar com outros paı́ses mais desenvolvidos nessa área.
2
Além do mais, esta ferramenta será distribuı́da como código-livre, aspecto muito interessante, já que as
soluções encontradas atualmente são em sua maioria baseadas em softwares com licenças comerciais.
3
Objetivos
A ferramenta se chama Fast Forensic Transcriber (FFTranscriber ) e tem as seguintes funcionalidades:
• Uma interface gráfica intuitiva e de alta usabilidade;
• Permite a reprodução continuada de arquivos de áudio nos formatos WAV, AIFF, NeXT/AU, IRCAM,
MP3, Ogg Vorbis, MIDI, além de suportar o formato de arquivo de projeto (AUP);
• Possibilita a seleção de trechos do arquivo de áudio para reprodução em “loop” a fim de que se possa
examinar com mais atenção um determinado segmento de áudio;
• Integração de um editor de texto à interface de edição de áudio, que permite a formatação adequada
do texto nele transcrito, possibilitando, entre outras funcionalidades, a troca do tamanho e do estilo
da fonte do texto, alinhamento de parágrafos, funções desfazer e refazer, permitindo ao usuário abrir,
visualizar, editar, e salvar arquivos de texto no formato RTF (Rich Text Format);
• Transcrição textual automática de voz do transcritor bem como de arquivos diretamente, utilizando
reconhecimento de voz dependente e independente de locutor;
• Realce de Voz para facilitar na inteligibilidade do áudio ajudando assim no processo como um todo;
• Adaptação de locutor para que o reconhecimento fique melhor para um determinado usuário.
4
Materiais e Métodos
A metodologia a ser utilizada para o desenvolvimento da ferramenta é descrita a seguir. Essa metodologia baseia-se no uso do reconhecimento de voz dependente e independente de locutor e de técnicas de
refinamento de voz para se obter os melhores resultados nesse processo de reconhecimento.
O software se baseia no programa de edição de áudio open-source Audacity. Seu desenvolvimento
se deu na Integrated Development Environment (IDE) Microsoft Visual Studio e foi utilizada a linguagem
de programação C++ juntamente com o WxWidgets, que é uma Application Programming Interface (API)
especı́fica para tratar de caracterı́sticas da interface gráfica.
O adaptador de locutor foi feito em Java, pois essa parte do projeto teve como base o NewUfpaSpeech,
que é um conjunto de ferramentas para processamento de voz em desenvolvimento pelo Grupo Falabrasil
do Laboratório de Processamento de Sinais da UFPA [1].
4.1
O uso do reconhecimento de voz
O reconhecimento automático de voz é um relevante desafio enfrentado pela computação moderna (e
áreas afins): a construção de máquinas capazes de interagir de forma natural com seres humanos [2]. Um
aspecto muito importante da metodologia é que atualmente a tecnologia de reconhecimento de voz não
permite que se atinja satisfatória eficiência com sistemas independentes de locutor, o que faz a transcrição
3
feita diretamente do arquivo ser de qualidade bem inferior quando comparada com a feita a partir da voz de
um locutor ao qual o sistema já está adaptado [3].
Assim, o aplicativo FFTranscriber faz uso de técnicas para reconhecimento dependente de locutor, onde
o sistema é sintonizado para melhor reconhecer a fala de seu usuário, sendo, para tanto, necessário um
treinamento prévio do perfil acústico do perito. A proposta é que o perito escute o áudio a ser transcrito
e use um microfone para, ao invés de digitar o texto correspondente, enuncie o mesmo através de sua
própria voz, diminuindo significativamente o tempo requerido no processo de transcrição.
O processo de reconhecimento de voz é feito através da ferramenta de código-livre Julius Decoder [4]. A
comunicação entre o FFTranscriber e o decodificador Julius é realizada por uma interface de programação
(API) própria [5] criada no Laboratório de Processamento Digital de Sinais da UFPA. Assim como a API,
todos os demais recursos necessários para a construção de um sistema de reconhecimento de voz, como
modelos acústico e de linguagem, também foram desenvolvidos dentro do LAPS através do Projeto FalaBrasil, e encontram-se gratuitamente disponı́veis na página do projeto.
Atualmente, o sistema de reconhecimento de voz do LAPS possui taxa de acerto igual a 71% no reconhecimento de palavras no modelo independente de locutor, utilizando uma base de teste com 54 minutos
de áudio. Já no modelo dependente de locutor foram usados dois usuários para adaptação, cada um com
10 minutos de fala, atingindo 86,7% de acerto no reconhecimento de palavras com a mesma base de teste.
4.1.1
Fundamentos dos sistemas ASR
Sistemas RAV costumam adotar uma abordagem estatı́stica baseada em HMM [6, 7] e são compostos por quatro blocos principais: front end, modelo acústico, modelo de linguagem e decodificador como
indicado na Fig. 5, que também mostra o dicionário fonético.
Figura 1: Principais blocos de um sistema de reconhecimento de voz
O front end extrai segmentos (ou frames) do sinal de voz e converte, a uma determinada taxa de frame
(tipicamente, 100 Hz), cada segmento para um vetor x de dimensão L (tipicamente, L = 39). Pressupõese que T frames são organizados em uma matriz X de dimensões L x T, que representa uma sentença
completa.
Há várias alternativas para parametrizar a voz. Dentre elas, a análise de coeficientes cepstrais da Melfreqüência (MFCCs) tem se provado efetiva e usada pervassivamente como entrada direta para o back end
do RAV [8].
O modelo de linguagem provê a probabilidade p(τ ) de uma sentença observada τ = [w1 , . . . , wP ] de P
palavras. Conceitualmente, o objetivos é achar a sentença τ ∗ que maximiza a posteriori
τ ∗ = arg max p(τ |X) = arg max
τ
τ
4
p(X|τ )p(τ )
,
p(X)
Figura 2: Representação picitórica de uma HMM contı́nua esquerda-direita com 3 estados e uma mistura
de Gaussianas por estado.
onde p(X|τ ) é dado pelo modelo acústico. Já que p(X) não depende de τ :
τ ∗ = arg max p(X|τ )p(τ ),
τ
(1)
Na prática, uma constante empı́rica é usada para dar o peso da probabilidade do modelo de linguagem
p(τ ), antes de combiná-lo com a probabilidade do modelo acústico p(X|τ ).
Por conta do número muito grande de sentenças possı́ves,(1) não pode ser calculada independentemente para cada sentença candidata. Portanto, sistemas RAV usam estruturas de dados como árvores
léxicas e são hierárquicas, quebrando as sentenças em palavras, palavras em unidades básicas como fonemas [8]. A busca por τ ∗ é chamada decodificação, e, na maioria dos casos, hipóteses são suprimidas
(i.e., algumas sentenças são discartadas e (1) não é calculada para tais sentenças) de modo a tornar a
busca viável [9, 10].
O dicionário fonético (também conhecido como modelo léxico) provê um mapeamento de palavras para
unidades básicas e vice versa. Para um melhor desempenho, HMMs contı́nuas são adotadas, onde a
distribuição de saı́da de cada estado é modelada por uma mistura de Gaussianas.A topologia da HMM é
”esquerda-direita”, na qual as únicas transições válidas são loops ou para o próximo estado.
Dois grandes problemas na modelagem acústica são a variabilidade do fonema devido a coarticulação
e dados insuficientes para estimar modelos. Compartilhar (ou amarrar - tying) visa combater o último
problema melhorando a robustez dos modelos. Em vários sistemas, o compartilhamento é implementado
em nı́vel de estado, i.e., o mesmo estado pode ser compartilhado por diferentes HMMs.
Idealmente, os fonemas teriam correlativos acústicos e articulatórios únicos. Entretanto, as propriedades acústicas de um dado fonema pode mudar como em função do ambiente fonético. Essa influência
contextual, conhecida como coarticulação, é reponsável pela sobreposição da informação fonética no sinal
acústico de segmento a segmento, e pelo espalhamento dos limites segmentais [11]. Assim, a coarticulação
motiva a adoção de modelos dependentes de contexto em RAV tais como trifones word-internal e crossword [8].
O modelo de trifone cross-word leva em consideração os efeitos de coarticulação entre as fronteiras das
palavras, e os modelos word-internal ignoram as fronteiras das palavras. Uma limitação do procedimento
de clusterização orientada a dados é que ele não lida com trifones para os quais não há exemplos nos
dados de treino. Quando se constrói sistemas de trifone word-internal, esse problema pode ser evitado
pelo projeto cuidadoso da base de dados, mas quando se faz sistemas de trifone cross-word para amplos
vocabulários, trifones não vistos são inevitáveis. Por exemplo, na Tabela 4.1.1 a sentença “um dez” é
convertida é modelos dependentes de contexto.
5
Modelo
Transcrição
Monofones
Word-internal
Cross-word
sil u∼ sp d E s sil
sil u∼ sp d+E d-E+s E-s sil
sil sil-u∼+d sp u∼-d+E d-E+s E-s+sil sil
Tabela 1: Exemplo de transcrição fonética usando modelos dependentes de contexto
Escassez de dados também afeta o modelo de linguagem que estima
P (τ )
= P (w1 , w2 , . . . , wP )
= P (w1 )P (w2 |w1 ) . . . P (wP |w1 , w2 , . . . , wP −1 ).
É impraticável estimar robustamente a probabilidade condicional P (wi |w1 , . . . , wi−1 ), mesmo para valores moderados de i. Então, o ML para LVCSR consiste de um modelo n-grama, o qual assume que a
probabilidade P (wi |w1 , . . . , wi−1 ) depende somente das n − 1 palavras anteriores. Por exemplo, a probabilidade P (wi |wi−2 , wi−1 ) expressa um modelo de linguagem trigrama.
Em suma, após todos os modelos estarem treinado, um RAV no estágio de teste usa o front end para
converter o sinal de entrada em paramêtros e o decodificador busca pela melhor sentença τ .
Os modelos acústico e de linguagem podem ser fixos durante o estágio de teste, mas adaptar um ou
ambos pode levar a um melhor desempenho. Por exemplo, o tópico pode ser estimado e um modelo de
linguagem especı́fico usado. Isso é crucial para aplicações com um vocabulário técnico como um relatório
de Raio-X feito por médicos [12].
Os sistemas RAV que usam modelos independentes de locutor são convenientes, mas devem ser capazes fazer reconhecimento com qualquer locutor com boa precisão. Ao custo de pedir que o usuário leia
em voz alta alguma sentenças, as técnicas de adaptação de locutor podem adequar os modelos HMM para
um determinado locutor. As técnicas de adaptação também são usadas para gerar uma compensação do
ambiente através da redução de incompatibilidade devido ao canal ou efeitos de ruı́dos aditivos.
A técnica de adaptação apresentada neste trabalho é a Regressão Linear de Máxima Verossimilhnaça
(MLLR) que faz a adaptação por meio de transformações lineares e é utilizada quando se tem uma quantidade limitada de dados, e será melhor descrita na seção seguinte. Adaptação de modelo também pode
ser realizada utilizando-se Máxima a Posteriori (MAP) ou abordagem Bayesiana que são mais adequadas
quando se tem uma quantidade grande de dados a disposição [13].
4.2
A adaptação de locutor
Os modelos acústicos utilizados durante o reconhecimento podem ser estimados para darem suporte a
vozes de diferentes locutores ou de um locutor especı́fico. No primeiro caso, eles são denominados “independentes de locutor” (SI - speaker independent), e no segundo, “dependentes de locutor” (SD - speaker
dependent). A estimação de modelos acústicos para sistemas LVCSR exige uma grande quantidade de
dados, e a coleta de voz para a criação de um modelo SD seria desgastante para um único locutor. Uma
alternativa para esse problema, então, é adaptar um modelo SI previamente treinado a partir de alguns
exemplos de fala do novo locutor. Esse procedimento já resultaria em uma significativa redução na taxa de
erro sem a necessidade de uma grande quantidade de dados.
6
No que diz respeito à adaptação de locutor, diversas técnicas têm sido desenvolvidas. As clássicas são
a MLLR - Maximum Likelihood Linear Regression e a MAP - Maximum a Posteriori utilizadas em vários
sistemas do estado da arte. Dentre os softwares que as implementam, podem-se citar os livres HTK e
Sphinx e o proprietário Nuance. Estudos e experiências com ferramentas que aplicam ambas as técnicas
mostram que a primeira, MLLR, é mais adequada para adaptar modelos utilizando poucos dados, pois ela
pode agrupar fonemas “semelhantes” de modo que, mesmo quando um deles não é encontrado nos dados
de treino, ele pode ser adaptado se os outros se apresentarem em quantidade suficiente. A MAP, por sua
vez, consegue melhorar os parâmetros de forma mais precisa, apresentando um desempenho melhor, no
entanto, é necessária uma quantidade muito maior de dados.
A adaptação de locutor tem por objetivo aumentar a taxa de acerto de um sistema ASR que usa um
modelo acústico SI. Para tanto, com base em uma quantidade de dados menor que a necessária para
a estimação de um modelo SD, alguns parâmetros dos HMMs são modificados para se adequarem às
caracterı́sticas de um locutor especı́fico.
As técnicas de adaptação mais utilizadas atualmente são a MLLR (Maximum Likelihood Linear Regression) e a MAP (Maximum A Posteriori).
O princı́pio básico da primeira é estimar uma ou várias matrizes de transformação linear com base nos
dados do locutor e aplicá-las às gaussianas correspondentes. A princı́pio, a técnica foi desenvolvida para
estimar matrizes e aplicá-las apenas às médias das gaussianas. Posteriormente, foi estendida em para
adaptar também suas variâncias..
A segunda técnica, baseada na teoria de Bayes, utiliza, além dos dados do locutor, um conhecimento
prévio sobre a distribuição dos parâmetros a serem adaptados. Esse conhecimento a priori seria o próprio
modelo SI.
Estudos mostram que a primeira técnica aumenta a taxa de acerto mais rapidamente para uma pequena quantidade de dados, pois ela permite a adaptação de todos os fonemas, mesmo aqueles que não
estiverem presentes entre os dados de adaptação, diferente da segunda, que adapta cada parâmetro individualmente. No entanto, para uma quantidade maior de dados, a primeira satura, ou seja, não há mais
aumento significativo na taxa de acerto, enquanto que a segunda técnica passa a apresentar um desempenho melhor.
Outros estudos apontam que a combinação das duas técnicas aproveitando seus diferentes benefı́cios
apresenta um desempenho ainda melhor. A MLLR seria usada para adaptar os modelos de forma mais
geral, e a MAP então refinaria o resultado.
Para o desenvolvimento do software proposto neste trabalho, a técnica escolhida para ser implementada
foi a MLLR tradicional, que adapta apenas as médias das gaussianas. Ela será explicada detalhadamente
a seguir.
4.2.1
Regressão Linear de Máxima Verossimilhança
O objetivo da MLLR (Maximum Likelihood Linear Regression) é estimar uma ou várias matrizes de
transformação linear que devem ser aplicadas às médias das gaussianas para que os modelos HMM sejam
mais adequados a um locutor especı́fico.
Cada matriz de transformação é associada a um conjunto de gaussianas e estimada a partir dos
parâmetros correspondentes juntamente com os dados do locutor. Devido a esse compartilhamento de
matriz de transformação, é possı́vel estimar uma ou várias matrizes a partir de uma quantidade pequena
7
de dados e ainda adaptar todas as gaussianas, inclusive aquelas cujos estados correspondentes não estiveram presentes entre os dados de treino fornecidos.
Para a gaussiana s, caracterizada por sua média µs e sua matriz de covariância Σs , a média adaptada
µˆs de dimensão n é dada por
(2)
µˆs = Ws ξs
onde Ws é uma matriz de transformação n × (n + 1) e ξs é a média estendida
ξs = [ω, µs1 , ..., µsn ]0
(3)
onde o valor de ω indica se deve ou não ser incluı́do um vetor de offset não-nulo na matriz de transformação
(ω = 1 para inclusão, ω = 0 para não inclusão).
Incluindo a matriz de transformação Ws , a função densidade de probabilidade da gaussiana adaptada
passa a ser definida por
bs (o) =
1
1
(2π)n/2 |Σ
s
|1/2
0
−1
e− 2 (o−Ws ξs ) Σs
(o−Ws ξs )
A multiplicação da média estendida pela matriz de transformação deve maximizar a likelihood (verossimilhança)
de geração de observação da gaussiana para os dados de adaptação fornecidos. Dada uma sequência
de observações com T frames O = o1 o2 ...oT , a probabilidade de ocupar o estado i no instante t durante a geração de O é definida pela variável γt (i) = P (qt = Si |O, λ), que pode ser calculada, conforme (4), com base nas duas variáveis definidas pelo algoritmo Forward-backward [6]: a variável forward
αs (t) = P (o1 o2 ...ot , qt = Si |λ), que consiste na probabilidade conjunta de ocorrência da sequência parcial
de observações do inı́cio até o instante t e de ocupação do estado i nesse mesmo instante; e a variável
backward βt (i) = P (ot+1 ot+2 ...oT |qt = Si , λ), que consiste na probabilidade de ocorrência da sequência de
observações parcial de t + 1 até o último frame T , já assumindo que o estado no instante t é Si .
γt (i) =
αt (i)βt (i)
αt (i)βt (i)
= PN
P (O|λ)
i=1 αt (i)βt (i)
(4)
onde P (O|λ) é a probabilidade de geração de O considerando todas as possı́veis sequências de estados.
Quando a probabilidade bi (ot ) de geração de observação pelo estado i é definida por uma mistura de
gaussianas, (4) pode ser estendida para (5) para considerar, além da ocupação do estado i no instante t, a
geração da observação ot por uma componente especı́fica k (a gaussiana s em questão).
=
h
γt (s) = γt (i, k)
ih
α (i)βt (i)
PN t
i=1 αt (i)βt (i)
cik N (ot ,µik ,Σik )
m=1 cim N (ot ,µim ,Σim )
PM
i
(5)
onde M é o número de componentes da mistura e cik é o peso da componente k da mistura de gaussianas
associada ao estado i.
Assumindo que todas as matrizes de covariância do modelo são diagonais, que Ws é compartilhada por
R gaussianas e que são utilizadas no processo de adaptação P sequências de observações O(1) , O(2) ,
..., O(P ) , sendo cada sequência O(p) composta por Tp frames, a matriz de transformação Ws pode ser
calculada linha a linha por
0
wi0 = G−1
i zi
(6)
Em (6), wi0 é a i-ésima linha da matriz Ws a ser estimada, zi0 é a i-ésima linha da matriz Z de dimensão
8
n × (n + 1) dada por
Z=
Tp R
P X
X
X
(p)
0
(t)Σ−1
γs(p)
sr ot ξsr
r
(7)
p=1 t=1 r=1
e Gi é uma matriz de dimensão (n + 1) × (n + 1) dada por
Gi =
R
X
(r)
vi ξsr ξs0 r
(8)
r=1
(r)
onde vi
é o i-ésimo elemento da diagonal da matriz V (r) de dimensão n × n
V (r) =
Tp
P X
X
γs(p)
(t)Σ−1
sr
r
(9)
p=1 t=1
que consiste na matriz de covariância invertida ponderada pela probabilidade total de ocupação da gaussiana r.
Uma derivação completa desse resultado pode ser encontrada em [14].
As Eqs. 7 e 9, que calculam as matrizes Z e V respectivamente, podem ser reorganizadas de modo
que a matriz Ŵs seja estimada mesmo antes de uma sequência de observações ser concluı́da, através do
acúmulo separado de valores dependentes do tempo (vetor de observação e probabilidade de ocupação).
O resultado da reorganização das equações é o seguinte:
Z=
R
X


Tp
P X
X
(p)

Σ−1
γs(p) (t)ot  ξs0
s
r
r
r=1
V (r)
r
(10)
p=1 t=1


Tp
P X
X
=
γs(p) (t) Σ−1
s
r
r
(11)
p=1 t=1
Dessa forma, definidos os acumuladores entre colchetes para cada gaussiana r, a adaptação pode ser
feita a qualquer momento utilizando os dados fornecidos até então.
4.2.2
Classes e árvore de regressão
Um grupo de gaussianas que compartilham a mesma transformação linear é demoninado “classe de
regressão”. As gaussianas que compõem os HMMs podem ser divididas entre um número pré-determinado
de classes de acordo com um dado critério (distância euclidiana das médias, por exemplo). No entanto,
fazer esse agrupamento de forma estática pode não trazer bons resultados, uma vez que, se uma classe
tiver poucas estatı́sticas acumuladas, ou até mesmo nenhuma, ela não será capaz de gerar uma matriz de
transformação adequada para suas gaussianas.
Uma forma mais eficiente e flexı́vel de estimar as matrizes de transformção é o uso de árvores de regressão, que, dependendo da quantidade de dados para treino, pode gerar uma única matriz de transformação
para todas as gaussianas (neste caso, a adaptação é denominada “global”), ou várias matrizes à medida
que a quantidade de dados aumenta.
A árvore de regressão é uma árvore binária em que todas as gaussianas são associadas ao nó raiz
e agrupadas entre os nós dos diversos nı́veis da árvore de acordo com suas “semelhanças” acústicas,
9
definidas pela distância euclidiana das médias das gaussianas. Os nós terminais, correspondentes aos
grupos “finais”, são as próprias classes de regressão. Cada gaussiana é associada a uma única classe e
adaptada pela transformação linear gerada para a mesma.
Basicamente, uma adaptação “dinâmica” que faz uso de árvore de regressão é realizada da seguinte
forma: os acumuladores de ocupação das classes de regressão são incrementados de acordo com as
estatı́sticas das gaussianas que as compõem; os acumuladores dos nós terminais são os contadores das
próprias classes, e os dos nós ascendentes são a soma dos acumuladores dos nós descendentes. Após
a contabilização de todos os dados de treino, as matrizes de transformação são geradas para aqueles nós
que:
• têm dados suficientes (ou seja, seus acumuladores alcançaram um dado valor mı́nimo) e
• ou são terminais ou têm um filho com dados insuficientes.
Um exemplo simples e claro do uso de uma árvore de regressão pode ser encontrado em [15].
4.3
Realce de Voz
Uma importante funcionalidade que o aplicativo FFTranscriber possui é a capacidade de lidar com
ruı́dos, dada a pouca robustez dos atuais sistemas de reconhecimento de voz a ambientes ruidosos. O
realce é útil para aumentar a inteligibilidade da voz, ou seja, a capacidade de entender o que foi dito. O
FFTranscriber possui um módulo responsável pelo pré-processamento da voz para eliminação de ruı́dos.
Além disso, é possı́vel lidar com distorções encontradas em canais tı́picos de telecomunicações, tais como
sistemas de telefonia ou mesmo gravações analógicas em fitas de áudio, a fim de facilitar a inteligibilidade
do áudio a ser transcrito.
A técnica de realce de voz empregada é baseada no conceito de subtração espectral [16], onde é feita a
filtragem do sinal original com base em uma amostra do ruı́do ambiente. A técnica é detalhada na próxima
seção.
4.3.1
Subtração Espectral
Assumindo um ruı́do aditivo, é possı́vel obter o espectro de sinal original a partir da subtração do espectro de sinal do ruı́do de um espectro de voz ruidoso. O espectro de ruı́do pode ser estimado, e atualizado,
entre perı́odos quando não há sinal.Pressupõese que o ruı́do é estacionário ou um processo de variação
lenta, e que o espectro não muda significativamente entre os perı́odos de atualização.
O sinal melhorado é obtido através da inversa da transformada de Fourier do espectro de sinal estimado
usando a fase do sinal ruidoso. O algoritmo é computacionalmente simples, visto que ele envolve somente
as transformadas de Fourier direta e inversa.
Supondo o sinal de voz x(m) corrompido por um ruı́do aditivo n(m), temos:
y(m) = x(m) + n(m)
(12)
yw (m) = xw (m) + nw (m)
(13)
Janelando o sinal:
10
Tirando a transformada de Fourier de ambos os lados temos:
Yw (ejw ) = Xw (ejw ) + Nw (ejw )
(14)
Onde Yw (ejw ), Xw (ejw ) e Nw (ejw ) são as transformadas de Fourier dos sinais ruidoso, voz, e ruı́do
respectivamente. Tira-se o w sobescrito para simplificar a notação. Multiplicando ambos os lados por seus
complexo conjugados temos:
|Y (ejw )| = |X(ejw )|2 + |N (ejw )|2 + 2|X(ejw )||N (ejw )|cos(δθ )
(15)
Onde δθ é a diferença de fase entre voz e ruı́do:
δθ =< X(ejw )− < N (ejw )
(16)
Tirando o valor esperado de ambos os lados temos:
E{|Y (ejw )2 |} = E{|X(ejw )2 |} + E{|N (ejw )2 |} + E{2|X(ejw )||N (ejw )|cos(δθ )},
(17)
= E{|X(ejw )2 |} + E{|N (ejw )2 |} + 2E{|X(ejw )|}E{|N (ejw )|}E{cos(δθ )}
(18)
Da última equação tiramos duas conclusões:
• Os valores dos espectros de magnitude do ruı́do e voz são independentes um do outro.
• A fase do ruı́do e da voz são independentes uma da outra e das suas magnitudes.
No FFTranscriber, a parte ruidosa é detectada manualmente, ou seja, o usuário seleciona uma parte
do sinal que contenha apenas o ruı́do, e aplica a remoção de ruı́do. Há basicamente duas formas de se
fazer subtração espectral: a subtração espectral de potência e a subtração espectral de magnitude, ambas
descritas a seguir.
Subtração espectral de potência
Neste caso assumimos que E{cos(δθ )} = 0, então:
E{|Y (ejw )|2 } = E{|X(ejw )|2 } + E{|N (ejw )|2 },
(19)
|X(ejw )|2 = |Y (ejw )|2 − E{|N (ejw )|2 }
(20)
Subtração espectral de magnitude
Na subtração espectral de magnitude assumimos que E{cos(δθ )} = 1, então:
E{|Y (ejw )2 |} = E{|X(ejw )2 |} + E{|N (ejw )2 |} + E{2|X(ejw )||N (ejw )|}
(21)
= (E{|X(ejw )|} + E{|N (ejw )|})2
(22)
E{|Y (ejw )|} = E{|X(ejw )|} + E{|N (ejw )|}
(23)
Ruı́do residual
Em função das flutuações no espectro de ruı́do (seja na potência ou na magnitude) em torno da média
(valor) esperado, há sempre alguma diferença entre o ruı́do real e seu valor médio. Logo, algum ruı́do
11
permanece no espectro no caso do valor do ruı́do ser maior que a média e parte do espectro de voz
também é removido no caso da estimativa no ruı́do ser maior que o valor real do ruı́do. Este último produz
valores negativos no espectro. Esses valores negativos são eliminados jogando-os para o valor piso (as
vezes zero) usando técnicas diferentes. O efeito global deixa um ruı́do no sinal de saı́da conhecido como
residual.
5
Resultados
5.1
A Interface
A Figura 1 é um print screen da tela inicial da aplicação sendo que seus principais módulos estão
identificados por legendas.
Figura 3: Interface principal da aplicação
Abaixo segue uma lista descritiva dos itens destacados pelas legendas:
Controle de Áudio
• Pausa: pausa a reprodução de áudio e fica no ponto em que parou;
• Reproduzir: Reproduz o som a partir de onde o Cursor estiver. Se houver algum trecho selecionado, apenas ele será reproduzido;
• Parar: para a reprodução de áudio e retorna para o ı́nicio do arquivo;
• Retornar ao inı́cio: move o cursor para o inı́cio do arquivo;
• Avançar até o final: move o cursor até o final do arquivo;
• Gravar: grava o áudio proveniente de alguma entrada como um microfone (para parar a gravação
pressiona-se o botão Parar).
Nı́veis de I/O
12
• Mostra os nı́vel de entrada e saı́da de áudio.
Ajustar nı́veis de I/O
• Permite ajustar os nı́veis de entrada e saı́da de áudio.
Velocidade do Áudio
• A barra de ferramentas de Velocidade do Áudio permite fazer alterações na velocidade em que o
áudio está sendo reproduzido de sorte que o transcritor tenha mais tempo para digitar à medida
que ouve determinado segmento de voz.
Edição de Áudio
• Representação visual do áudio que, por padrão é a forma de onda. Clicando no nome do arquivo
se encontra do lado do “X” temos então um menu, conforme mostrado na figura abaixo, seguindo
da descrição de cada item:
Figura 4: Menu de visualização do áudio
– Nome: permite renomear o arquivo em que se está trabalhando;
– Mover faixa para cima: quando temos múltiplas faixa abertas permite que determinada faixa
se desloque para cima da outra imediatamente acima;
– Mover faixa par abaixo: quando temos múltiplas faixa abertas permite que determinada faixa
se desloque para baixo da outra imediatamente abaixo;
– Forma de Onda: representação em forma de onda do áudio;
– Forma de Ona (dB): representação em forma de onda em escala logarı́timica;
– Espectro: representação em forma espectral;
– Espectro log(f): representação em forma espectral usando-se a constante de atenuação;
– Tom (EAC): destaca o contorno da frequência fundamental do áudio, com Correlação Realçada
(EAC);
– Mono: saı́da de áudio de apenas uma saı́da ou das saı́das esquerda e direita igualmente;
– Canal Esquerdo: saı́da de áudio somente do canal esquerdo;
– Canal Direito: saı́da de áudio somente do canal direito;
13
– Fazer Faixa Stereo: se houver outra faixa abaixo da corrente, junta as duas em uma única
faixa stereo de sorte que as alterações feitas são aplicadas tanto ao canal esquerdo quanto
ao direito;
– Dividir Faixa Stereo: se o arquivo for stereo, pode-se separá-lo em duas faixas e editá-las
independentemente;
– Stereo para Mono: converte a faixa de stereo para mono;
– Ajustar Formato da Amostra: define formato da amostra em 16, 24 ou 32 bits;
– Ajustar Taxa: permite selecionar a frequência em Hertz que será usada no projeto.
Edição de Texto
• Mostra uma área em branco para edição de texto e possui uma barra de ferramentas com funcionalidades descritas na ordem da esquerda para a direita (nenhuma das funcionalidades desta
barra interfere no áudio, somente no texto):
– Abrir Documento com extensão “.txt”;
– Salvar Documento com extensão “.txt”;
– Cortar: recorta uma parte selecionada do texto;
– Copiar: copia uma parte selecionada do texto;
– Colar: cola um texto que se encontra na área de transferência;
– Desfazer: desfaz a última ação realizada no texto;
– Refazer: refaz a última ação realizada no texto.
Barra de Seleção
• Taxa do Projeto: permite selecionar a frequência em Hertz que será usada no projeto;
• Inı́cio da Seleção: mostra em que ponto o inı́cio da seleção do aúdio está localizado (por padrão
começando em zero quando não há seleção);
• Fim/Tamanho: opção de mostrar em que ponto o fim do áudio estã localizado ou quanto do áudio
está selecionado (Tamanho);
• Posição do Áudio: mostra em que ponto o áudio está quando está sendo reproduzido.
Abaixo segue uma lista descritiva de cada item dos menus:
Arquivo
• Importar Áudio: abre janela para escolher arquivo que se deseja abrir. Os formatos de arquivos
reconhecidos são WAV, AIFF, NeXT/AU, IRCAM, MP3, Ogg Vorbis, MIDI, e o formato de arquivo
de projeto (AUP).;
• Arquivos Recentes: lista de todos os útlimos arquivos abertos;
• Salvar Projeto: salvar projeto para edição futura com uma extensão “.aup”;
• Salvar Projeto Como: abre uma janela com opções de local e forma de salvar o projeto;
• Exportar: exportar o arquivo que está sendo editado para os formatos WAV, MP3 e Ogg Vorbis;
• Exportar Seleção: exportar parte selecionada do arquivo que está sendo editado para os formatos suportados;
14
• Sair: fecha todas as instâncias da aplicação.
Editar
• Desfazer: defaz a última ação realizada;
• Refazer: refaz a última operação realizada;
• Cortar: recorta a parte do áudio selecionada;
• Copiar: copia a parte do áudio selecionada;
• Colar: insere um determinado segmento de áudio no lugar em que se encontra o cursor;
• Apagar: apagar a parte do áudio selecionada;
• Selecionar: apresenta opções para seleciona todo o áudio ou nenhuma parte dele;
• Remoção de Ruı́do: abre janela para que o realce de voz possa ser realizado.
A remoção de ruı́dos é um processo feito em duas etapas. Na primeira, seleciona-se um trecho do áudio que contenha só o ruı́do. Então em “Remoção de Ruı́do” e clica-se em “Pegar
Amostra de Ruı́do”. O programa entenderá que esse é o tipo de som que se quer filtrar.
Então seleciona-se todo o áudio onde se quer que o ruı́do seja removido e em “Remoção de
Ruı́do” novamente, clica-se no botão “OK”. O tempo gasto para a remoção dos ruı́dos depende
do tamanho da seleção que for feita.
Ver
• Zoom +: aumenta o zoom do segmento de áudio;
• Zoom Normal: retorna o segmento à forma de visualização original;
• Zoom -: diminui o zoom do segmento de áudio;
• Ajustar à Janela: redimensiona a visualização do segmento de forma que este seja exibido
completamente na tela;
• Zoom na Seleção: trata o zoom somente na parte selecionada do áudio;
• Histórico: abre uma janela com um histórico de todas as operações realizadas no projeto.
Reconhecedor
• Ativar: ativa o reconhecedor para transcrição automática;
• Desativar: desativa o reconhecedor para transcrição automática.
Adaptação
• Adaptar: abre a janela para fazer a adaptação de locutor que gera o modelo acústico adaptado
para o reconhecedor. O locutor grava quinze arquivos de áudio que depois serão parametrizados
e adaptados através de Regressão Linear de Máxima Verossimilhança.
15
Figura 5: Módulo de adaptação de locutor
5.2
Testes
5.2.1
Módulo de Adaptação
Para a avaliação de desempenho, foram realizados alguns testes comparativos utilizando o NewUfpaSpeech (NUS) e a ferramenta HERest do HTK. A base de dados foi composta por arquivos de texto com
diversas frases sem pontuação e por arquivos de áudio com vozes de cinco diferentes locutores (três vozes
femininas e duas masculinas) falando as sentenças dos arquivos de texto. Para cada locutor, os pares de
dados texto/voz foram divididos em dois grupos: o de treino (utilizado para gerar os modelos adaptados) e
o de teste (utilizado para testar o reconhecimento com os modelos adaptados e o SI). A Tabela 2 resume
a descrição da base de dados em números.
Tabela 2: Descrição da base de dados.
Treino Teste
Número de sentenças
7
8
Número total de palavras
713
821
Duração média dos arquivos de áudio 40 segundos
Para cada locutor, realizaram-se os seguintes testes: T0 - reconhecimento com o modelo SI; T1 reconhecimento após a adaptação global do modelo SI (geração de uma única matriz de transformação
para todas as gaussianas do modelo); T2 - adaptação por árvore de regressão tendo como entrada o
modelo SI; e T3 - adaptação por árvore de regressão tendo como entrada o modelo adaptado de forma
global.
Nos testes, foram usadas as seguintes configurações: Split Threshod igual a 1000, Pruning Threshold
igual a 5000, o Modelo SI “LaPSAM v1.3” disponı́vel na página de download do grupo FalaBrasil e a
parametrização MFCC E D A Z.
As ferramentas utilizadas para reconhecer a fala do locutor dos arquivos de teste e comparar as sentenças
reconhecidas com as corretas foram, respectivamente, o HDecode e o HResults do HTK. Os parâmetros do
decodificador HDecode, foram definidos de acordo a configuração proposta por [5], e a medida de desempenho utilizada foi a taxa de acerto dada por A =
H−I
N ,
onde H é o número de palavras corretas, I é o
número de erros por inserção e N é o número total de palavras.
16
O desempenho do reconhecedor em cada teste, para os diferentes locutores, utilizando os diversos
modelos (SI e adaptados), é apresentado nas Figs. 6, 7, 8 e 9.
Figura 6: T0 (sem adaptação).
Figura 7: Modelos adaptados em T1.
Figura 8: Modelos adaptados em T2.
Figura 9: Modelos adaptados em T3.
Para todos os locutores, a adaptação do modelo resultou em uma significativa melhora no reconhecimento. A taxa de acertos média do reconhecedor utilizando o modelo SI foi de 62,14%. Após a adaptação
global, essa taxa aumentou para 69,62% para ambos os programas. Com a adaptação por árvore de
regressão, foi para 75,15% (HTK) e 74,98% (NUS). Combinando os dois tipos de adaptação (global e
árvore de regressão), atingiram-se, então, os valores 75,56% (HTK) e 75,47% (NUS), o que representa um
acréscimo de 13% na taxa de acertos. Essa melhoria é bastante significativa, uma vez que o aumento de
desempenho ocorre a partir de um processo relativamente simples, em que o usuário deve dispensar um
curto tempo para gravar a voz utilizando um microfone comum, enquanto que os sistemas RAV comerciais
mais robustos devem utilizar modelos treinados em um processo muito mais custoso, com necessidade de
grandes bases de dados, para apresentar taxas de acertos maiores.
Para todos os locutores em todos os testes, a taxa de acerto obtida com o uso do modelo adaptado pelo
17
NUS varia pouco em relação à obtida com o uso do modelo adaptado pelo HTK, o que confirma, então,
que o módulo desenvolvido atingiu seu objetivo.
5.2.2
Teste de transcrição em ambiente real
Uma versão funcional do aplicativo FFTranscriber foi testada em atividades forenses reais dentro do
Instituto de Perı́cias Cientı́ficas Renato Chaves, Belém, Brasil.
Os primeiros testes, realizados sem o emprego do reconhecimento de voz, mostraram que o perito deve
passar, necessariamente, por um treinamento prévio, para que ele possa se livrar dos vı́cios adquiridos
com a longa e sistemática utilização do método tradicional, como por exemplo, a utilização equivocada de
atalhos para realizar certos procedimentos (seleção de trechos de áudio, comandos para controle do áudio,
etc.). Tal afirmativa pode ser visualizada nos números mostrados na Tabela 3. Com o decorrer dos testes,
o tempo de transcrição entre os métodos tende a se igualar. Outro detalhe importante, os arquivos foram
trabalhados de forma intercalada, ou seja, o primeiro arquivo foi transcrito primeiramente usando o método
tradicional e depois o FFTranscriber, com os arquivos seguintes adotando o mesmo esquema. Com isso,
não houve uma sequência na utilização dos métodos.
Audio(seg)
30.562
28.142
30.876
15.325
26.240
15.046
Tabela 3: Primeira bateria de testes.
Transcrição (min)
Inteligibilidade
FFTranscriber Tradicional
3:18:12
2:57:40
100%
2:31:00
3:08:00
100%
3:38:47
2:41:02
100%
1:18:40
1:12:80
100%
2:24:63
2:21:96
100%
1:27:53
1:25:15
100%
O parâmetro inteligibilidade quantifica o número de palavras pronunciadas que foram corretamente identificadas. Após uma semana de uso do FFTranscriber, o perito fez outra bateria de testes. Agora as
transcrições não foram feitas de forma intercalada e o processo de avaliação foi feito em dois estágios:
usando e não usando o reconhecimento de voz. Note-se que para serem feitos os teste com reconhecimento de voz, a voz de um perito foi usada para adaptar um modelo acústico o que corresponde a 10
minutos de áudio. Os resultados estão na Tabela 4.
Tabela 4: Segunda bateria de testes.
Audio(seg)
Transcrição (min)
Inteligibilidade
FFT
Tradicional
29.727
2:41:72
2:54:76
100%
30.876
2:30:19
2:43:86
100%
15.386
1:16:23
1:23:78
100%
15.098
1:21:73
1:24:00
100%
15.046
1:01:61
1:13:19
100%
15.673
1:16:59
1:22:16
100%
O FFTranscriber mostrou-se capaz de realizar procedimentos compatı́veis com softwares pagos (“não
houve queda no desempenho e até se ganha um pouco”), no que diz respeito a fatores como eficácia,
tempo de resposta, facilidade de uso, enfim, tudo aquilo que pode ajudar o perito a realizar seu trabalho de
18
forma eficiente e em menor tempo possı́vel.
Já nos testes com reconhecimento de voz, o tempo de transcrição foi em média o dobro. As principais
dificuldades encontradas foram: o tempo de reconhecimento (cerca de 1 segundo por palavra) e o tempo
que o perito perde formatando o texto resultante, isto é, corrigindo erros de reconhecimento, adicionando
pontuação, etc. Como vantagem podemos citar a maior comodidade, já que o tempo destinado a digitação
é reduzido. Isso pode ser comprovado calculando a taxa de erro de palavras para os arquivos testados.
Por exemplo, em um dos arquivos verificou-se que de 40 palavras o sistema erra apenas 4, ou seja, taxa
de erro igual a 10%.
6
Conclusão
Este trabalho apresentou o FFTranscriber, um software otimizado para transcrição de áudio. A aplicação
foi testada e o FFTranscriber mostrou-se capaz de resolver o problema proposto quando submetido a um
ambiente real de atividade forense.
Dessa forma a ferramenta é uma alternativa open-source aos softwares pagos com a mesma finalidade,
oferecendo recursos semelhantes sem custo algum.
7
Publicações
• Moura, R., Silva, P., Batista, P., Neto, N., Klautau, A. FFTranscriber: Software para Transcrição Otimizado para Aplicações Forenses. VIII Seminário Nacional de Fonética Forense e V Seminário Nacional
de Perı́cias em Crimes de Informática, 2010;
• Alves, D., Moura, R., Klautau, A. Módulo de Adaptação de Locutor utilizando Regressão Linear de
Máxima Verossimilhança para Sistemas de Reconhecimento de Voz. Workshop de Software Livre,
2011;
Referências
[1] “www.laps.ufpa.br/falabrasil,” visitado em 03/2010.
[2] L. Rabiner and B. Juang, Fundamentals of speech recognition, PTR Prentice Hall, Englewood Cliffs,
N.J., 1993.
[3] Patrick Silva, Nelson Neto, and Aldebaro Klautau, “Novos recursos e utilização de adaptação de locutor
no desenvolvimento de um sistema de reconhecimento de voz para o Português Brasileiro,” In XXVII
Simpósio Brasileiro de Telecomunicações, 2009.
[4] Akinobu Lee, Tatsuya Kawahara, and Kiyoshiro Shikano, “Julius - an open source real-time large vocabulary recognition engine,” Proc. European Conference on Speech Communication and Technology,
pp. 1691–1694, 2001.
[5] Patrick Silva, Pedro Batista, Nelson Neto, and Aldebaro Klautau, “An open-source speech recognizer
for brazilian portuguese with a windows programming interface,” The International Conference on
Computational Processing of Portuguese (PROPOR), 2010.
19
[6] L. Rabiner, “A tutorial on hidden Markov models and selected applications in speech recognition,”
Proceedings of the IEEE, vol. 77, no. 2, pp. 257–86, Feb. 1989.
[7] H. Juang and R. Rabiner, “Hidden Markov models for speech recognition,” Technometrics, vol. 33, no.
3, pp. 251–272, 1991.
[8] X. Huang, A. Acero, and H. Hon, Spoken Language Processing, Prentice-Hall, 2001.
[9] N. Deshmukh, A. Ganapathiraju, and J. Picone, “Hierarchical search for large-vocabulary conversational speech recognition,” IEEE Signal Processing Magazine, pp. 84–107, 1999.
[10] N. Jevtić, A. Klautau, and A. Orlitsky, “Estimated rank pruning and Java-based speech recognition,” in
Automatic Speech Recognition and Understanding Workshop, 2001.
[11] P. Ladefoged, A Course in Phonetics, Harcourt Brace, 4 edition, 2001.
[12] G. Antoniol, R. Fiutem, R. Flor, and G. Lazzari, “Radiological reporting based on voice recognition,”
Human-computer interaction. Lecture Notes in Computer Science, vol. 753, pp. 242–253, 1993.
[13] Silke Goronzy Ralf and Ralf Kompe, “A combined MAP + MLLR approach for speaker adaptation,”
Proc Sony Res Forum, vol. 9, pp. 9–14, 2000.
[14] C. J. Leggetter and P. C. Woodland, “Flexible speaker adaptation using maximum likelihood linear
regression,” in Proc. ARPA Spoken Language Technology Workshop, 1995, pp. 104–109.
[15] S. et. al Young, The HTK Book, Microsoft Corporation, Version 3.0, 2000.
[16] Steven F. Boll, “Suppression of acoustic noise in speech using spectral subtraction,” IEEE Transactions
on Acoustics, Speech, and Signal Processing, Vol. ASSP-27, NO. 2, 1979.
8
Parecer do Orientador
O bolsista é bastante dedicado e vem desempenhando muito bem as atividades programadas, além de
participar ativamente das discussões do grupo de pesquisa na área, o qual também envolve discentes de
pós-graduação. Estamos bastante otimistas de que o software que está sendo construı́do será em breve
implantado no Instituto de Perı́cia Cientı́fica Renato Chaves, auxiliando-os na tarefa de transcrição forense.
20