Upload
fabiano-weimar
View
255
Download
4
Embed Size (px)
Citation preview
Reconhecimento de Fala em Português Brasileiro
Fabiano Weimar dos [email protected]
1
quarta-feira, 9 de dezembro de 2009
Eu sou...• “Apenas um rapaz latino americano...”
• Mestre em Computação pela UFRGS (2009), Bacharel em Computação pela UCS (2004)
• Envolvido com IA desde 1999
• Consultor e Desenvolvedor Python, Zope e Plone desde 2000
• Core-developer do Plone
• Contribuidor em diversos Plone Products
• Sysadmin do provedor PyTown.com
2
quarta-feira, 9 de dezembro de 2009
Roteiro
• Introdução
• O que é Reconhecimento de Fala
• Como funciona?
• E o idioma Português Brasileiro...
• Dicas: como implantar
• Jabá...
3
quarta-feira, 9 de dezembro de 2009
Introdução
• Nossa interface natural com o mundo é a fala (não um teclado e mouse)
• A área de reconhecimento de fala é pesquisada desde a década de 80
• Não é uma tarefa simples!
• Reconhecimento de Fala = Processamento de Sinais + Fonética + Linguística Computacional + Inteligência Artificial
4
quarta-feira, 9 de dezembro de 2009
O que é Reconhecimento de Fala• Não é “reconhecimento de voz”
• Preocupada em reconhecer o que está sendo dito
• Reconhecer quem está falando é uma outra área: reconhecimento de locutor
• Reconhecimento de fala contínua sem restrições é ainda um problema em aberto
5
quarta-feira, 9 de dezembro de 2009
Síntese x Reconhecimento
• Todo leigo confunde:
• Síntese: Conversão de Texto para “Fala”
• Reconhecimento: Conversão de Fala para “Texto”
• Se comparada ao reconhecimento, a síntese é trivial
6
quarta-feira, 9 de dezembro de 2009
Aplicações
• Para Câmaras: Apoio na Taquigrafia
• Indexação e busca de conteúdo no que é dito em comissões em plenário, TV e rádio
• URA
7
quarta-feira, 9 de dezembro de 2009
Como Funciona?Respire fundo...
8
quarta-feira, 9 de dezembro de 2009
Fundamentação Teórica
Consideremos A como a representação de um evento acústico; W como uma string de n
palavras. Se P(W|A) denota a probabilidade que as palavras W foram faladas, dado os eventos acústicos A observados, então o
reconhecedor deve decidir em favor de uma palavra W que satisfaça
Wmax = argmaxw P(W|A)
9
quarta-feira, 9 de dezembro de 2009
Fundamentação Teórica
Podemos reescrever a equação como P(W|A) = (P(W)P(A|W)) / P(A), onde P(W) é a
probabilidade da palavra W ser dita, P(A|W) é a probabilidade que quando a palavra W é dita o evento acústico A será observado e
P(A) é a probabilidade de A ser observado
10
quarta-feira, 9 de dezembro de 2009
Fundamentação TeóricaComo a maximização é feita com a variável A fixa (pois o evento acústico observado é
determinado), temos:
Wmax = argmaxw P(W)P(A|W)
Essa fórmula define que processos um reconhecedor de fala deve solucionar...
11
quarta-feira, 9 de dezembro de 2009
Fundamentação Teórica
• Um Modelo Acústico para calcular P(A|W)
•HMM, Rede Neural, DTW
•Um Modelo de Linguagem para calcular P(W)
•n-gram, CFG
•Busca de hipótese para Wmax
•Não trivial, pois o espaço de busca é muito grande e tempo real pode ser “desejável”
12
quarta-feira, 9 de dezembro de 2009
Fundamentação Teórica
• Um Modelo Acústico para calcular P(A|W)
•HMM, Rede Neural, DTW
•Um Modelo de Linguagem para calcular P(W)
•n-gram, CFG
•Busca de hipótese para Wmax
•Não trivial, pois o espaço de busca é muito grande e tempo real pode ser “desejável”
13
Trifones “tied state” com múltiplas Gaussianas
quarta-feira, 9 de dezembro de 2009
Fundamentação Teórica
• Um Modelo Acústico para calcular P(A|W)
•HMM, Rede Neural, DTW
•Um Modelo de Linguagem para calcular P(W)
•n-gram, CFG
•Busca de hipótese para Wmax
•Não trivial, pois o espaço de busca é muito grande e tempo real pode ser “desejável”
14
Modelos estatísticos baseados em 3-gram
suavizados por algorítmos de desconto e interpolação
quarta-feira, 9 de dezembro de 2009
15
Aúdio
Transcrições Ortográficas
Modelos Acústicos
Modelos de Linguagem
Modelo G2P Reconhecedor
quarta-feira, 9 de dezembro de 2009
16
Reconhecedores
• HTK (Hidden Markov Model Toolkit)
• Sphinx (CMU Sphinx Open Source Speech Recognition Engine)
• Julius (Open-Source Large Vocabulary CSR Engine Julius)
quarta-feira, 9 de dezembro de 2009
Linguística Computacional
• Autenticidade
• Adequação
• Representatividade
• Extensão
17
quarta-feira, 9 de dezembro de 2009
Modelos de Linguagem
• Geralmente adota-se modelos estatísticos de linguagem, baseados em n-grams
• Quanto maior a ordem do n-gram, melhor é a representação do contexto, mas mais esparso torna-se o espaço de busca
• Necessidade de grandes quantidades de dados para a criação de modelos representativos
18
quarta-feira, 9 de dezembro de 2009
Modelos de Linguagem• Representatividade limitada pela extensão
• Modelos de linguagem pequenos são eficientes, mas tem aplicabilidade restrita
• Modelos de linguagem com grande vocabulário tem maior aplicabilidade, mas são menos eficientes (alta perplexidade)
• Modelos de linguagem realmente grandes (teóricos) são eficientes e “irrestritos”, mas são difíceis de manter (limitações computacionais)
19
quarta-feira, 9 de dezembro de 2009
Modelos Acústicos
• Em condições ideais, usa-se todo o texto disponível para criar os modelos de linguagem e os respectivos áudios para criar os modelos acústicos
• Geralmente isso não é tão simples pois:
• A quantidade de áudio costuma ser limitada
• A aquisição de corpus textuais costuma ser mais “simples”
20
quarta-feira, 9 de dezembro de 2009
Modelo Acústico - Trifones “tied state”
21
80,0
83,6
87,2
90,8
94,4
98,0
tied tied-iw tied-iw-3gram
89,7
88,3
82,9
Taxa Média de Reconhecimento (%)
85,0
81,1
89,9
86,7
95,7
85,7
quarta-feira, 9 de dezembro de 2009
Múltiplas Misturas Gaussianas
22
88,00
89,00
90,00
91,00
92,00
93,00
94,00
1 2 4 6 8 10 12 14 16 18 20
3-gram 2-gramTaxa Média de Reconhecimento (%)
Número de Misturas Gaussianas
quarta-feira, 9 de dezembro de 2009
Grande Vocabulário - CETEN-Folha
23
65
68
71
74
77
80
2gram-iw-6G 2gram-id-6G 3gram-iw-12G 3gram-id-12G
71,3771,07
73,0073,27
Taxa Média de Reconhecimento (%)
75,24
71,33
74,87
71,33
76,95
66,17
76,98
66,27
quarta-feira, 9 de dezembro de 2009
24
Dicas: como implantar
• Organize seus dados
• Armazene o áudio de tudo que é dito
• Armazene as transcrições ortográficas
• Cuidado com soluções prontas
• Sistema de Reconhecimento deve aprender com erros (e não apenas confiar na adaptação de locutor)
quarta-feira, 9 de dezembro de 2009
25
Dicas: como implantarNão seja otimista demais.
Bons resultados requerem muito trabalho (e tempo).
quarta-feira, 9 de dezembro de 2009
Jabá...
26
quarta-feira, 9 de dezembro de 2009