2011/10/06

Siri e o Futuro da Interação por Voz


Com a chegada mediática do assistente virtual da Siri no novo iPhone 4S, será talvez a altura ideal para fazer a pergunta: porque motivo este tipo de tecnologia não está fortemente implementada nos computadores "desktop", onde não há a desculpa de falta de potência de processamento/armazenamento/etc?

O sonho de podermos "falar" com o computador é algo que já nos acompanha há décadas (e ainda mais se contarmos com as histórias de ficção científica), e ninguém nega que foram feitos enormes progressos ao longo do tempo. Já por altura do lançamento do Windows Vista podíamos ver demonstrações impressionantes de reconhecimento de voz, permitindo escrever textos com linguagem natural... para não falar no que é permitido por programas como o Dragon para Mac e PC.

Mas... isso é apenas metade do que se pretende. Queremos que o computador não só seja capaz de ouvir o que dizemos - algo que já é feito de forma bastante satisfatória, até nos dispositivos móveis e em Português - mas sim compreender o que dizemos.

E é precisamente nesse aspecto que muito ainda há a fazer, e que agora faz a sua estreia num dispositivo móvel como o iPhone:




Claro que temos vários casos de coisas que se tentam aproximar disto, como o Vlingo ou os comandos por voz dos Android/Windows Phone... Mas, essas são ainda soluções que se baseiam em "palavras chave" para iniciar funções pré-determinadas.

Daí que o salto para algo que permita responder a "preciso levar o guarda-chuva hoje?", e igualmente capaz de ter uma "conversação continuada" e dentro do contexto, como a que o Assistente da Siri permite, seja de louvar.


Claro que também devemos considerar os factores que tornam o seu surgimento num iPhone "apetecível" do ponto de visto do desenvolvimento. Para que este tipo de tecnologia funcione, interessará estar integrado o mais possível no sistema operativo, e com acesso a todo o tipo de informação: geolocalização, listas de contactos, emails, agenda, etc. Coisas que num desktop poderiam estar dificultadas: uns poderão usar a lista de contactos dos programa "oficiais" do OS, outros poderão usar outros programas alternativo.

Por outro lado, há sempre a velha questão de que este de funcionalidade fará muito mais sentido num dispositivo móvel, que tem grandes probabilidades de ter que ser usado "em movimento" e sem recurso às mãos.

Mas, isso não invalida que existissem inúmeras vantagens em ter este tipo de tecnologia diponível em qualquer computador - e não me refiro sequer à sua utilidade para todas as pessoas com limitações motoras e para quem o uso de um teclado/rato/etc. se torna difícil ou mesmo impossível.

Avançado ainda mais para o futuro, este tipo de interacção irá certamente transcender os próprios "PCs" e tornar-se na forma preferencial com que se pode interagir com muitos mais sistemas: desde os nossos automóveis, as nossas casas, e até coisas como as TVs e electrodomésticos e toda a infinidade de equipamentos em que nem faz sentido existir um ecrã.

Para quê perder tempo a navegar num menu de uma "box" de TV (por muito "bonito" que seja o seu interface, se pudessemos simplesmente pedir-lhe o que queremos fazer ou ver? E as habituais gravações complexas ficariam reduzidas a: "Grava-me a série do House a partir da próxima quinta."
(Claro que por essa altura espero que já não seja preciso "gravar" seja o que for, e que os conteúdos estejam todos disponíveis "on-demand" - bastando portanto dizer: "Quero ver o Dr. House" e pronto... :)

A nossa casa poderia reconhecer comandos como: "Mostra-me quem tocou à campanhia ontem"; "Dá-me um relatório dos consumos de electricidade deste mês"; "Apaga a aparelhagem que deixei ficar ligada na sala"; "Activa o alarme assim que eu sair de casa"; etc. etc.
Obviamente, sendo "por voz", tudo isto poderia ser feito via telefone a partir de qualquer ponto do planeta...

E até poderemos ter frigoríficos com os quais pudessemos falar e perguntar: "Há algum alimento que esteja a aproximar-se do prazo de validade?"...

As possibilidades são imensas, e é bom ver que este Siri é apenas o primeiro passo nesse sentido.
Até lá, há ainda muito por fazer, não só adaptando a tecnologia para que funcione com outras línguas (e também temos que considerar as implicações que esta tecnologia pode ter nos sistemas de tradução automática), como também criarem-se formas de disponibilizar os conteúdos das web de formas que possam ser facilmente "interpretadas" por estes assistentes virtuais. Ideia que não é nova, (lembram-se do Bob da Microsoft?), mas que com este Siri ganha finalmente uma voz. E uma vez mais, não seria a primeira vez que a Apple pega numa ideia anunciada anos antes por Bill Gates - os tablets - e a traz para o mercado de forma finalmente eficaz (com o iPad.)

4 comentários:

  1. Há dois grandes aspectos para que uma ferramenta deste género possa funcionar.

    Em primeiro lugar, é preciso a análise de sinal, e a conversão de voz em texto corrido. Esta tarefa é habitualmente baseada em processamento de muitas amostras de fala recolhidas na população mais ampla possível. Sei que há tempos foi feita recolha de fala para Português via telefone, mas essa abordagem traz um grande problema, que é a qualidade do som (pior do que a que um aparelho recebe com o seu microfone omnidirecional). Como não pretendemos ter de ensinar o computador a reconhecer a nossa voz e os comandos com a nossa forma de entoar (coisas que já se faziam quando comprei a minha SoundBlaster Pro, e que o Mac OS X também já tem há anos), o sistema tem de lidar não só com o sinal recebido, mas com um conjunto de heurísticas ou probabilidades (habitualmente representadas em cadeias de Markov) para conseguir prever que palavras surgem mais provavelmente a seguir a outra. Mais uma vez, este tipo de trabalho só se faz com muito texto e, preferencialmente, texto transcrito (a maneira como falamos é diferente da forma como escrevemos).

    Toda esta panóplia de recursos necessários faz com que estas ferramentas surjam muito mais depressa nos EUA do que em Portugal. Por exemplo, conheço gente a trabalhar na Microsoft Portugal neste tipo de tarefa há anos.

    A segunda parte da tarefa, que por vezes possa parecer igualmente complicada mas é, até certo ponto, mais simples, é a interpretação do comando. Ou seja, depois de termos a frase em caracteres, tal como este comentário, como é que o interpretamos? Bem, as técnicas têm que ver com a pesquisa de verbos funcionais (um conjunto de verbos típicos para comandar um gadget, por exemplo), e um conjunto de substantivos típicos (coisas tipicamente manipuladas). Depois, a análise de placeholders (procurar farmácia no Porto; Porto aqui é um placeholder, bem como farmácia, já que podem ser quaisquer outras strings). Também é preciso ter em atenção a detecção de algumas locuções, negações, etc, para que quando mandarem o vosso gadget "não enviar" uma mensagem, ele não a "envie".

    Espero que tenha sido um comentário útil e construtivo.

    ResponderEliminar
  2. @Alberto

    Excelente comentário.
    Mas se, a 1ª parte, como disse, já está suficientemente aperfeiçoada (como se pode experimentar desde já, no Dragon Dictation, mesmo em Portugues), a 2ª não é pêra doce.

    Claro que nem o Siri será perfeito, e não irá garantidamente apanhar todas as diferentes variações de conversação que se possa atirar-lhe; mas o facto de reconhecer coisas como o "preciso levar o Guarda-Chuva hoje?" e contextualizar coisas como o "muda o apontamento da Maria para as 16h", e coisas do género são... um excelente prenúncio para o que esta tecnologia poderá oferecer daqui por mais algumas interacções/evoluções.

    ResponderEliminar
  3. Pessoalmente nunca tive boas experiencias com reconhecimento de voz. Infelizmente, acho que ainda estamos longe...

    ResponderEliminar
  4. @ups

    A resposta seguir via twitter (o raio do blogger já deveria deixar meter imagens embedded nas respostas... ;)

    ResponderEliminar