quinta-feira, 6 de junho de 2013

Criando aplicações de voz diretamente no PHP

As aplicações de voz permitem novas maneiras de se comunicar na Internet. Por exemplo: permite que você ouça seus e-mails ao invés de lê-los. Você pode querer efetuar uma compra em um site usando simplesmente interação por voz ou ao invés de se comunicar com seus amigos por texto, pode-se utilizar a voz.

Com a evolução da Internet, principalmente com o surgimento da integração de telefonia móvel na rede, a comunicação por voz se tornou essencial no ambiente web.

Neste contexto, quando se fala sobre o desenvolvimento de aplicações de voz é comum nos lembrar do VoiceXML. O VoiceXML é uma linguagem baseada no formato XML (eXtensible Markup Language) com o objetivo de desenvolver aplicações de voz interativas entre homem e máquina. Embora conhecida, neste artigo vamos apresentar uma nova maneira, bem mais simples que o VoiceXML, de criar aplicações de voz. Faremos uso do VoicePHP.

O VoicePHP permite que você crie aplicações de voz utilizando códigos PHP. Há grandes vantagens nessa ferramenta, a principal é a simplicidade de sua utilização. Os programadores não precisam aprender nada além do que já sabem sobre PHP para criar aplicações de voz funcionais.

Neste sentido, o objetivo deste artigo é demonstrar como funciona o VoicePHP, como você pode usá-lo e exemplificar idéias de aplicações de voz interessantes que você pode criar.

VoicePHP e VoiceXML
É importante ter em mente que o VoicePHP não é uma extensão do PHP e também não é um módulo. O VoicePHP é uma plataforma em que o código php será rodado sem nenhuma alteração em especial com o objetivo de criar aplicações de voz. A entrada e saída que você usa no php para obter e imprimir texto você continuará usando no voicephp, sem qualquer alteração, com a diferença que a entrada e saída serão convertidos para voz ao invés de texto. Sendo assim, o mesmo código que você utiliza no PHP para imprimir um texto você utiliza no VoicePHP para produzir voz. E da mesma maneira que você utiliza o PHP para receber uma entrada de texto você utiliza para receber uma entrada de voz. Essa é uma das grandes vantagens do VoicePHP em relação a outras opções que temos para desenvolver aplicações de Voz, como por exemplo o VoiceXML.

O VoiceXML, baseado em XML, é um dos primeiros padrões criados para programação de aplicações de voz. Entretanto, ao desenvolver usando a linguagem XML perde-se o poder das reais linguagens de programação como o PHP. Criar loops complexos e interação em XML requer um grande esforço. Nesse contexto, usar o VoicePHP evita a necessidade de aprender novas ferramentas, nova linguagem markup, tags e atributos que são propriedades do VoiceXML. Para exemplificar a diferença entre os dois, veja nas Listagens 1 e 2 um simples "Hello World" feito em VoiceXML e em seguida o mesmo "Hello World" feito em VoicePHP.

Listagem 1: VoiceXML
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
    <form>
        <block>
            <prompt>
                Hello World
            </prompt>
        </block>
    </form>
</vxml>
Listagem 2: VoicePHP
<?php
    echo "Hello World";
?>
Usar o XML como uma linguagem de programação é difícil por que o XML não foi criado com esse propósito. Dessa forma, o VoicePHP torna-se uma ferramenta realmente poderosa ao criar voz a partir de simples comandos php.

Arquitetura da plataforma VoicePHP
A plataforma do VoicePHP disponibiliza suporte completo para aplicações de voz. O suporte inclui reconhecimento de voz, engine de texto para fala (text-to-speech), suporte DTMF (Dual-Tone Multi-Frequency - tons utilizados na discagem de aparelhos telefônicos que usam botões ao invés de “disco”), gateways de telefonia (utilizados para o envio de SMS), Instant Messaging (Exemplos de Instant Messaging são MSN, GTalk, Skype, etc.). O suporte inclui ainda um interpretador PHP altamente otimizado que permite rodar seus scripts PHP sem a necessidade de muitas mudanças para adaptá-los ao ambiente do VoicePHP.

O reconhecimento de voz e o suporte DTMF permitem diversas possibilidades de obter a entrada do usuário, por exemplo: reconhecimento de voz, DTMF (dígitos no aparelho telefônico ou dígitos em botões de Flash) e streaming de áudio (uma forma de transmitir áudio pela Internet).

O suporte de "texto para fala" e arquivos de som permitem controlar a saída. Dessa forma, o desenvolvedor tem controle para criar aplicações completas baseadas em voz.

A interação de entrada e saída pode ser realizada através linhas telefônicas, Flash, IM (Instant Messaging), SIP (protocolo utilizado para estabelecer chamadas telefônicas através de redes VoIP), entre outros, como veremos abaixo.

A Figura 1 ilustra a arquitetura da plataforma VoicePHP. Conforme podemos observar na figura, a plataforma VoicePHP possui um interpretador php próprio que permite trabalhar com aplicativos de voz, recebendo a entrada de informações através de DTMF, reconhecimento de voz ou streaming de áudio e a saída através de “texto para fala” (Text-To-Speech), DTMF e streaming de áudio. A plataforma ainda oferece ferramentas de apoio à interação com o usuário através de aplicação Flash e do protocolo SIP. O acesso ao ambiente pode ser feito pela Internet ou telefonia.


Figura 1: Arquitetura do VoicePHP

Após um pouco de teoria, vamos começar a colocar a mão na massa criando nossa primeira aplicação de voz.

Criando a aplicação "Hello World"
Crie a aplicação PHP que será utilizada na plataforma do VoicePHP. Em nosso exemplo vamos simplesmente produzir a fala "Hello World". Portanto, nosso script php é bem simples:

Listagem 3: Hello world
<?php
    echo "Hello World";
?>
Salve esse arquivo com a extensão ".txt" e disponibilize o arquivo dentro de um diretório público que possa ser acessado na internet. Já vamos entender o motivo de gravar o arquivo com a extensão ".txt".

Agora crie uma conta gratuitamente no site http://tringme.com/. O VoicePHP é desenvolvido pela plataforma TringMe. O Tringme disponibiliza produtos que permitem a interação por voz na web. Sua plataforma integra voz e telefonia pela Internet, Mobile Devices, SIP Devices, etc.

Fonte: devmedia.com.br

Nenhum comentário :

Postar um comentário

Total de visualizações de página