27
Reconhecimento de Fala em Português Brasileiro Fabiano Weimar dos Santos [email protected] 1 quarta-feira, 9 de dezembro de 2009

Reconhecimento de fala em português brasileiro

Embed Size (px)

Citation preview

Page 1: Reconhecimento de fala em português brasileiro

Reconhecimento de Fala em Português Brasileiro

Fabiano Weimar dos [email protected]

1

quarta-feira, 9 de dezembro de 2009

Page 2: Reconhecimento de fala em português brasileiro

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

Page 3: Reconhecimento de fala em português brasileiro

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

Page 4: Reconhecimento de fala em português brasileiro

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

Page 5: Reconhecimento de fala em português brasileiro

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

Page 6: Reconhecimento de fala em português brasileiro

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

Page 7: Reconhecimento de fala em português brasileiro

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

Page 8: Reconhecimento de fala em português brasileiro

Como Funciona?Respire fundo...

8

quarta-feira, 9 de dezembro de 2009

Page 9: Reconhecimento de fala em português brasileiro

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

Page 10: Reconhecimento de fala em português brasileiro

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

Page 11: Reconhecimento de fala em português brasileiro

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

Page 12: Reconhecimento de fala em português brasileiro

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

Page 13: Reconhecimento de fala em português brasileiro

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

Page 14: Reconhecimento de fala em português brasileiro

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

Page 15: Reconhecimento de fala em português brasileiro

15

Aúdio

Transcrições Ortográficas

Modelos Acústicos

Modelos de Linguagem

Modelo G2P Reconhecedor

quarta-feira, 9 de dezembro de 2009

Page 16: Reconhecimento de fala em português brasileiro

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

Page 17: Reconhecimento de fala em português brasileiro

Linguística Computacional

• Autenticidade

• Adequação

• Representatividade

• Extensão

17

quarta-feira, 9 de dezembro de 2009

Page 18: Reconhecimento de fala em português brasileiro

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

Page 19: Reconhecimento de fala em português brasileiro

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

Page 20: Reconhecimento de fala em português brasileiro

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

Page 21: Reconhecimento de fala em português brasileiro

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

Page 22: Reconhecimento de fala em português brasileiro

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

Page 23: Reconhecimento de fala em português brasileiro

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

Page 24: Reconhecimento de fala em português brasileiro

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

Page 25: Reconhecimento de fala em português brasileiro

25

Dicas: como implantarNão seja otimista demais.

Bons resultados requerem muito trabalho (e tempo).

quarta-feira, 9 de dezembro de 2009

Page 26: Reconhecimento de fala em português brasileiro

Jabá...

26

quarta-feira, 9 de dezembro de 2009

Page 27: Reconhecimento de fala em português brasileiro

Obrigado!

Fabiano Weimar dos [email protected]

27

quarta-feira, 9 de dezembro de 2009