Os primeiros sistemas de reconhecimento de fala tentavam aplicar um conjunto de regras gramaticais e sintáticas à fala. Se as palavras ditas caíssem dentro de um certo conjunto de regras, o programa poderia determinar quais eram aquelas palavras. No entanto, a linguagem humana tem inúmeras exceções a suas regras, mesmo quando falada de maneira consistente.
Sotaques, dialetos e regionalismos podem alterar bastante a maneira como certas palavras ou frases são ditas. Imagine alguém de Minas Gerais dizendo a palavra "menininho". Ele ou ela não pronuncia o "inho", e a palavra acaba saindo como "meninim". Ou então pense na frase, "está tudo bem com você?" A maioria das pessoas não diz as palavras por completo, o que pode fazer a frase se tornar "tá tudo bem cocê?" Várias palavras são ditas sem que haja uma interrupção perceptível entre elas, assim como "cocê".
E como não conseguiam lidar com essas variações, os sistemas baseados em regras não tiveram muito sucesso. O que também explica o motivo pelo qual os primeiros sistemas não conseguiram lidar com o discurso contínuo. Era preciso falar cada palavra separadamente, com uma pequena pausa entre elas.
Já os softwares de reconhecimento de voz atuais usam sistemas de modelo estatísticos poderosos e complicados. Eles usam funções de probabilidade e matemática para determinar o resultado mais provável. De acordo com John Garofolo, líder do grupo de fala no Laboratório de Tecnologia da Informação do National Institute of Standards and Technology, os dois modelos que dominam o campo hoje em dia são o Modelo Oculto de Markov e as redes neurais. Ambos os métodos envolvem funções matemáticas complexas, mas essencialmente usam as informações conhecidas do sistema para descobrir as informações escondidas dele.
![]() |
Como o Modelo Oculto de Markov é o mais comum, vamos olhá-lo mais de perto. Neste modelo, cada fonema é como um elo de uma corrente, e a corrente completa seria a palavra. Contudo, a corrente se divide em várias direções enquanto o programa tenta associar o som digital ao fonema que tem a maior probabilidade de vir a seguir. Durante este processo, o programa atribui uma pontuação de probabilidade para cada fonema, baseando-se no seu dicionário interno e no treinamento do usuário.
Este processo é ainda mais complicado quando tratamos de frases e sentenças, já que o sistema tem de adivinhar em que ponto cada palavra termina e começa. O exemplo clássico é a frase, em inglês, "recognize speech", mas tem um som muito semelhante a "wreck a nice beach" quando dita muito rapidamente. Da mesma maneira como na piada do feirante que gritava bem rápido, "ovo e uva boa", e uma viúva lhe deu uma bolsada na cara. O programa deve analisar os fonemas usando a frase anterior para que tudo possa ser feito da maneira correta. Aqui está a decomposição das duas frases:
"recognize speech"
r eh k ay n ay s b iy ch
"wreck a nice beach"
Por que isso é tão complicado? Se um programa tem um vocabulário com 60 mil palavras (algo comum nos programas atuais), uma seqüência de três palavras poderia ser qualquer uma de 216 trilhões de possibilidades. É óbvio que nem mesmo o computador mais poderoso consegue olhar todas elas sem algum tipo de ajuda.
Essa ajuda vem na forma do treinamento do programa. De acordo com John Garofolo:
Estes sistemas estatísticos precisam de muitos exemplos de treinamento para atingir um desempenho ótimo, chegando à ordem de milhares de horas de fala transcrita e centenas de megabytes de texto. Esses dados de treinamento são usados para criar modelos acústicos de palavras, listas de palavras e [...] redes de probabilidade de palavras múltiplas. Não deixa de ser arte a maneira como alguém seleciona, compila e prepara esses dados de treinamento para serem "digeridos" pelo sistema e como os modelos de sistema são ajustados para um aplicativo específico. E são esses os detalhes que podem fazer a diferença entre um sistema de bom desempenho e um de mau desempenho, mesmo se usam o mesmo algoritmo básico.
Embora os desenvolvedores de software que definem o vocabulário inicial do sistema realizem uma grande parte desse treinamento, o usuário final também deve passar algum tempo nos treinos. Em uma empresa, os usuários principais do programa devem passar algum tempo (só 10 minutos algumas vezes) falando com o sistema para adaptá-lo aos seus padrões de fala específicos. Eles também devem treinar o sistema para que reconheça termos e acrônimos específicos da empresa. É por isso que edições especiais para escritórios de advocacia ou consultórios médicos de programas de reconhecimento da fala já foram treinados com os termos dessas áreas.
Na próxima página, vamos dar uma olhada nas deficiências e falhas dos sistemas de reconhecimento da fala.