Por que eu devo ler este artigo:Hoje em dia, principalmente devido ao avanço nos dispositivos móveis, o reconhecimento de voz em aplicações tem se tornado uma realidade. Com a presença massiva de microfones e alto-falantes nos dispositivos, é muito interessante utilizar reconhecimento e síntese de voz em aplicações. Para isso, o Bing Speech é uma excelente opção, e muito simples de ser utilizado em aplicações Windows 8 e Windows Phone 8.

Ele é dividido em duas APIs básicas: uma para reconhecimento, e outra para síntese de voz, sendo a primeira baseada em um web service e a segunda sendo baseada em streams de áudio, criadas a partir de strings. Esse artigo apresenta essa API e ensina como utilizá-la para criar texto a partir da fala (reconhecimento de voz) e fazer a aplicação fornecer feedbacks de áudio ao usuário (síntese de voz).

Atualmente, temos visto um avanço muito grande em tecnologias que, até poucos anos atrás, não eram nem sequer cogitadas. Os avanços na Inteligência Artificial foram muitos na área de reconhecimento e síntese de voz, o que faz com que essa tecnologia nem seja tratada mais como um conceito de IA, já tendo se desvinculado e se tornado um campo totalmente independente.

As possibilidades que os dispositivos “inteligentes” oferecem são muitas e é preciso que o desenvolvedor saiba utilizá-las para criar a melhor experiência possível para os usuários.

Nesse contexto, o Windows 8 traz uma tecnologia que vem se consolidando desde o seu lançamento e tem atraído os olhares dos usuários ao redor do mundo. Isso se dá pelo fato de ser uma tecnologia, visualmente falando, extremamente atrativa ao usuário comum. Além disso, se trata de um sistema muito simples de ser utilizado, muito intuitivo.

Para o desenvolvedor, o Windows 8 também traz uma série de benefícios, principalmente a partir da Windows Store, onde é possível comercializarmos aplicações com todos os usuários da plataforma.

Com o aumento do poder de processamento dos dispositivos, cada vez mais os usuários tem buscado elementos que melhorem sua experiência ao utilizar aplicações. Pensando nisso, o Bing oferece uma série de APIs e controles que auxiliam os desenvolvedores na hora de aplicar essas tecnologias às suas aplicações.

Um deles é o Bing Speech Control, controle destinado à adição de comandos, reconhecimento e síntese de voz em aplicações Windows 8 e Windows Phone 8. Trata-se de um controle bastante simples de ser utilizado, e é possível criarmos aplicações extremamente ricas tratando de assuntos como a navegação através de comandos de voz, entre outros elementos interessantes.

Reconhecimento de discurso

O reconhecimento de discurso, ou Speech Recnognition, é a capacidade de tradução da fala em texto. Trata-se de um campo que até pouco tempo atrás estava nos braços da Inteligência Artificial, e que hoje em dia é um campo de estudos independente. É muito comum vermos, em salas de aula ao redor do Brasil e do mundo, professores ditando conteúdo para seus alunos.

O reconhecimento de voz funciona dessa forma: a diferença é que o usuário está ditando para o dispositivo. A utilização dessa tecnologia inclui operações presentes em diversos dispositivos modernos, como chamadas por voz, pesquisa, entrada de dados e aviação. É um conceito que leva diretamente a outro, muito utilizado em segurança de sistemas de informação, que é o reconhecimento de voz, ou Voice Recognition (BOX 1).

BOX 1. Voice Recnognition

O reconhecimento de voz é uma aplicação bastante interessante da tecnologia de Speech Recognition, que diz respeito muito mais à segurança de sistemas de informação do que qualquer outra coisa. É um conceito que trata da identificação das pessoas através da voz das mesmas.

Todos sabem que cada pessoa possui uma tonalidade de voz única, embora muitas tenham vozes muito parecidas. Para nós, pode ser bastante complicado identificarmos a pessoa apenas através de sua voz em alguns casos, mas os computadores possuem a capacidade de distinguir mesmo vozes muito similares.

É um conceito que é bastante confundido com o conceito de reconhecimento de discurso, que é responsável por identificar o que está sendo dito, e não quem está dizendo.

As tecnologias atuais de reconhecimento de discurso podem ser aplicadas em diversas áreas, começando pela saúde, onde surge como um meio de facilitar a escrita de relatórios médicos, prescrições, entre outros, até telefonia e aviação, onde pode ser utilizado nos sistemas de controle.

Algumas dessas aplicações podem trazer problemas na utilização dessa tecnologia, devido a barulhos externos. Para isso, muitas vezes são utilizados microfones especiais, específicos para detectar determinadas frequências, e, com isso, eliminar os ruídos da comunicação.

Speech Recognition é baseado em modelos de linguagem, ou Language Models. Esses modelos nada mais são que distribuições de probabilidade através de sequências de caracteres ou palavras.

Em outras palavras, se trata de encontrar a sequência de palavras mais provável, dado o som que foi captado. Isso é baseado no Teorema de Bayes, com algumas alterações, conforme mostra a Figura 1, onde S* é a sentença possível e O é o modelo acústico do sistema. O objetivo é, baseado em uma evidência (o som observado), definir qual hipótese é mais provável entre um conjunto de informações que o sistema possui.

Até certo ponto, conforme o conjunto aumenta, a performance do sistema de reconhecimento também. Porém, chega um ponto em que o leque de opções aumenta tanto que a taxa de erro começa a crescer muito, o que diminui a capacidade do sistema. Por isso, é importante definir com precisão o tamanho do conjunto de teste sobre o qual a distribuição de probabilidades será calculada.

Por exemplo, ao receber um som, o sistema poderá compará-lo para definir a probabilidade de o som ser “Quando ir para a praia” e “Quando cair na gandaia”, entre outras frases similares.

Figura 1. Teorema de Bayes aplicado ao Reconhecimento de Discurso

A performance de sistemas de reconhecimento de discurso normalmente são definidas em termos de qualidade e velocidade. A velocidade do sistema é importante, pois nenhum usuário gosta de esperar muito tempo para obter um resultado, em qualquer meio.

A qualidade, por sua vez, é medida em termos de taxas de erros. Conforme foi comentado, conforme o vocabulário do sistema, a taxa de erros tende a aumentar a partir de certo ponto, uma vez que as similaridades entre os sinais acústicos tendem a ficarem maiores.

Outro ponto que pode definir a qualidade e velocidade do sistema é o foco do mesmo: caso seja um sistema criado para um usuário apenas, acaba sendo mais simples e os resultados são melhores; do contrário, trata-se de um sistema mais complexo e que tende ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo