+ All Categories
Home > Documents > Atividades do grupo Voice Browser do W3Cdebora/fsmm/trab-2005-1/[email protected],...

Atividades do grupo Voice Browser do W3Cdebora/fsmm/trab-2005-1/[email protected],...

Date post: 06-Apr-2018
Category:
Upload: dotram
View: 215 times
Download: 2 times
Share this document with a friend
21
Atividades do grupo Voice Browser do W3C Antonio Caminada 1 , Randolpho Julião 1 1 Departamento de Engenharia de Telecomunicações – Universidade Federal Fluminense (UFF) – Niterói - RJ – Brasil [email protected], [email protected] Abstract. This paper introduces Voice Browser technology as developed by the W3C consortium. Firstly we will present an overview of the Voice Browser standard and it’s main applications. Secondly we’ll make an in-depth explanation of it’s characteristics and language elements. Following this we will describe an architecture for corporate voice applications. Finnally we’ll present an overview of the tendencies indicated by the W3C consortium. Resumo. O objetivo deste trabalho é apresentar a tecnologia de Voice Browser em desenvolvimento pelo W3C. Inicialmente apresentaremos uma visão geral do padrão Voice XML e suas principais aplicações. A seguir faremos uma apresentação mais detalhada sobre o Voice XML, conceituando suas principais características e elementos da linguagem. Na continuação, falaremos da arquitetura para aplicações de voz corporativa, suas finalidades e principais conceitos. Por fim daremos uma visão geral das tendências do Voice XML apontadas pelo W3C. 1. Introdução: O telefone, apesar de ter sido inventado no século XIX, ainda continua como um dos meios mais importantes de comunicação nos dias de hoje. A Internet, muito mais recente, vem rapidamente se tornando um canal insubstituível para troca de todo tipo de informações. A convergência entre os dois, trazendo as va ntagens da Internet para o telefone, permite que desenvolvedores possam criar aplicações interativas com tecnologia web que possam ser acessadas via telefone e não mais somente de um computador com um browser instalado. As vantagens disso são grandes pois, apesar da massificação do uso de computadores – dos desktops aos hand-helds, nem sempre é possível ter uma máquina ao alcance. Já o telefone, principalmente com o boom do celular, está em todo lugar. Algumas aplicações possíveis incluem [1]: ?? Acessar informações de negócios, incluindo help-desks corporativos que podem perguntar aos clientes o que eles desejam, serviços de encomendas por telefone, serviços de ajuda e suporte, chegadas e partidas de vôos, horários de cinemas, serviços bancários, etc. ?? Acessar informações públicas como previsão do tempo, condições do tráfego, notícias locais e internacionais, etc. ?? Acessar informações pessoais, incluindo agenda de compromissos, agenda de telefones/endereços, lista de compras, mensagens de voz, etc.
Transcript

Atividades do grupo Voice Browser do W3C

Antonio Caminada1, Randolpho Julião1

1Departamento de Engenharia de Telecomunicações – Universidade Federal Fluminense (UFF) – Niterói - RJ – Brasil

[email protected], [email protected]

Abstract. This paper introduces Voice Browser technology as developed by the W3C consortium. Firstly we will present an overview of the Voice Browser standard and it’s main applications. Secondly we’ll make an in-depth explanation of it’s characteristics and language elements. Following this we will describe an architecture for corporate voice applications. Finnally we’ll present an overview of the tendencies indicated by the W3C consortium.

Resumo. O objetivo deste trabalho é apresentar a tecnologia de Voice Browser em desenvolvimento pelo W3C. Inicialmente apresentaremos uma visão geral do padrão Voice XML e suas principais aplicações. A seguir faremos uma apresentação mais detalhada sobre o Voice XML, conceituando suas principais características e elementos da linguagem. Na continuação, falaremos da arquitetura para aplicações de voz corporativa, suas finalidades e principais conceitos. Por fim daremos uma visão geral das tendências do Voice XML apontadas pelo W3C.

1. Introdução:

O telefone, apesar de ter sido inventado no século XIX, ainda continua como um dos meios mais importantes de comunicação nos dias de hoje. A Internet, muito mais recente, vem rapidamente se tornando um canal insubstituível para troca de todo tipo de informações. A convergência entre os dois, trazendo as va ntagens da Internet para o telefone, permite que desenvolvedores possam criar aplicações interativas com tecnologia web que possam ser acessadas via telefone e não mais somente de um computador com um browser instalado. As vantagens disso são grandes pois, apesar da massificação do uso de computadores – dos desktops aos hand-helds, nem sempre é possível ter uma máquina ao alcance. Já o telefone, principalmente com o boom do celular, está em todo lugar.

Algumas aplicações possíveis incluem [1]:

??Acessar informações de negócios, incluindo help-desks corporativos que podem perguntar aos clientes o que eles desejam, serviços de encomendas por telefone, serviços de ajuda e suporte, chegadas e partidas de vôos, horários de cinemas, serviços bancários, etc.

??Acessar informações públicas como previsão do tempo, condições do tráfego, notícias locais e internacionais, etc.

??Acessar informações pessoais, incluindo agenda de compromissos, agenda de telefones/endereços, lista de compras, mensagens de voz, etc.

O grupo de Voice Browser do WWW Consortium – W3C – se dedica ao desenvolvimento de especificações para que o desenvolvimento dessas aplicações se torne possível. Neste trabalho falaremos de algumas das suas atividades.

O restante do texto está estruturado como se segue. Na seção 2 falaremos dos serviços de voz, mostrando alguns exemplos. Apresentaremos o Voice XML - o que é, para que serve – e por fim, a evolução das pesquisas no W3C. Na seção 3 explicaremos como funciona o Voice XML e quais os principais elementos da linguagem. Na seção 4 mostraremos como se estrutura uma aplicação de voz: quais os pré-requisitos, as restrições, problemas de segurança e balanceamento de carga. Por fim, na seção 5, falaremos sobre o futuro do Voice XML como visto pelo W3C e, na última seção, concluiremos com as considerações finais.

2. Voice XML e Serviços de Voz:

Voice XML é uma linguagem padrão (aberta), baseada no XML para o desenvolvimento de aplicações baseadas em voz. Assim como o XML tradicional, o Voice XML utiliza um conjunto de marcações (tags), cada qual com significado específico, e deve ser usado juntamente com softwares de sintetização e reconhecimento de voz. O Voice XML é usado para definir diálogos assim como o HTML é usado para definir a aparência de uma página web. A especificação do padrão é essencial para que as aplicações da Internet possam ser usadas através de comandos de voz, com ou sem o uso do telefone.

O Voice XML foi desenvolvido inicialmente por quatro empresas - AT&T, Lucent, Motorola e IBM que, em março de 1999, criaram um fórum para apresentar a linguagem ao W3C. A primeira release para o público, Voice XML 0.9, foi feita em agosto de 1999. A versão 1.0 foi lançada sete meses depois, em março de 2000. Em maio de 2000 a especificação foi submetida ao W3C.

O Voice XML está sendo usado em aplicações como portais de voz, onde serviços automatizados podem ser acessados através do telefone, e em aplicativos utilizados em carros e eletrodomésticos, sem o uso do telefone. Um dos exemplos mais familiares do uso do Voice XML é o Interactive Voice Response (IVR), um serviço automatizado para onde o usuário liga e pode receber informações sobre seu saldo bancário, horário de vôos, etc., sem falar com humanos.

Os IVRs são máquinas especialmente projetadas para abrigar serviços de voz. Contam com software/hardware de processamento e reconhecimento de voz e um software para controlar o fluxo e a lógica da conversa.

Antes do Voice XML os programas de controle de diálogo não eram muito flexíveis. Por exemplo, um sistema de correio de voz apenas permitia que pessoas deixassem mensagens e que outras as ouvissem. Toda a lógica estava embutida no programa e não havia espaço para customização. Com a evolução das relações entre empresas e clientes, surgiu a necessidade de se oferecer sistemas mais adaptáveis e que pudessem responder a uma gama de situações. Apareceram então os IVR programáveis, onde a lógica dos diálogos pode ser alterada. Normalmente esses sistemas são compostos de uma linguagem de scripts de alto nível para definir o fluxo da ligação e uma API de baixo nível, que permite que os programadores incluam tarefas mais complicadas, como a consulta em um banco de dados, por exemplo.

As IVR programáveis, no entanto, eram difíceis de programar e, como a maior parte dos programas era específica de fabricantes, não havia interoperabilidade e os custos (mão de obra especializada, licença dos programas) eram altos, fazendo com que somente grandes call-centers pudessem usá- las.

Com o contínuo desenvolvimento dos IVRs, as empresas começaram a incorporá- los cada vez mais em seus sistemas de CRM – Customer Relationship Management. Isso se deve a [1]:

??Desde a década de 1980 quase todas as empresas utilizam sistemas de informação informatizados.

??Apesar da Internet ter se tornado um canal de grande importância na relação empresa-cliente, os call-centers ainda são fundamentais. Atualmente existem três vezes mais telefones do que PCs no mundo.

??Se os serviços oferecidos hoje na Internet como cotação do mercado de ações, compra de produtos, transações bancárias, busca de informações, e muitos outros puderem ser feitos pelo telefone com a mesma eficiência, não há dúvidas que este seria o canal mais fácil de comunicação, já que não existe a necessidade de download de programas específicos para que funcionem e, com a difusão da telefonia móvel, estariam disponíveis em qualquer lugar.

??Com a diminuição do tamanho dos telefones (celulares e fixos) os key-pads e displays estão cada vez menores, fazendo com que a digitação nesses aparelhos fique cada vez mais difícil. Os aplicativos de voz oferecem a solução.

Nem todas as aplicações, no entanto, podem ser usadas com aplicações de voz. Grandes documentos, com múltiplas interfaces são difíceis de representar como voz. Por outro lado é mais fácil dizer o nome do restaurante que se procura do que digitá- lo.

As aplicações de voz têm se beneficiado do desenvolvimento de tecnologias fundamentais como [1]:

??Automated Speech Recognition (ASR): recentemente houve uma grande melhoria nos algoritmos de reconhecimento de fala, juntamente com o aumento da capacidade dos processadores. Isso fez com que o reconhecimento de fala pudesse se tornar uma realidade prática, e não apenas um estudo de laboratório. Problemas como incompatibilidades de pronúncia (sotaques, defeitos como “língua presa”) e vocabulários restritos foram superados.

??Text-To-Speech (TTS): assim como as tecnologias para reconhecimento da fala, as tecnologias de síntese de voz também tiveram um grande impulso. As novas tecnologias TTS conseguem produzir fala parecida com a humana, sem o tom metálico e a falta de ritmo. Além disso, respostas dinâmicas podem ser produzidas, livrando os serviços de voz das amarras das respostas pré-gravadas.

??Enterprise Software Integration Tecnologies: com o surgimento da Internet, novos servidores, roteadores, programas, etc. foram desenvolvidos, para atender a todo tipo de negócios. Isso facilita a integração dos serviços de voz com o resto dos serviços de informação da empresa, como os bancos de dados, por exemplo.

O Voice XML é parte de um conjunto de tecnologias associadas à voz em desenvolvimento pelo W3C. Em conjunto, essas tecnologias podem ser usadas para especificar aplicações de voz. São elas:

??Grammar XML (GRXML): a GRXML é um padrão de linguagem para representar gramáticas usadas pelos programas de reconhecimento de fala. A gramática indica ao programa de reconhecimento de fala que palavras deve escutar e em que ordem elas devem aparecer.

?? Speech Synthesis Markup Language (SSML): oferece um modelo indicando como o texto deve ser convertido em fala. Isto inclui marcações para o controle da pronúncia, tom de voz, inflecção e outras características da pronúncia das palavras.

??Call Control XML (CCXML): o CCXML provê uma linguagem para controlar o equipamento telefônico e de roteamento. Aplicações CCXML podem preparar chamadas de conferências, transferir, atender e fazer ligações.

??Eventos XML: é um padrão para criar comportamentos associados a eventos.

3. Voice XML em Detalhe

Nesta seção abordaremos alguns dos principais aspectos e elementos do Voice XML, como por exemplo:

??O uso de formulários, prompts de áudio e controle do fluxo do diálogo.

??Como o Voice XML interpreta os inputs do usuário.

??O uso de menus e varáveis. 3.1 Formulários (forms)

Os diálogos são as principais formas de interatividade no Voice XML. Existem dois tipos de marcações para construção de diálogos na linguagem: forms e menus. Para serem úteis, quase todas as outras marcações devem estar dentro destas duas. Falaremos da primeira a seguir e da segunda na subseção Menus.

Um formulário é composto de uma ou mais perguntas que a aplicação precisa fazer ao usuário. A idéia de formulários é intuitiva, pois eles estão sempre presentes em nossa vida, seja para abrir conta em um banco, para fazer uma compra pela Internet, para entrar para uma academia de ginástica, etc.

Exemplo de um formulário de Voice XML de um restaurante [1]: <?xml version="1.0" encoding="iso-8859-1"?>

<vxml version="1.0">

<form id="CustomerQuestionnaire">

<block>

We would like to ask you several questions to find out

if we can serve you better.

</block>

<field name="foodOK">

<prompt>

Would you rate the quality of the food at the restaurant as

Excellent, Good, Fair, or Poor?

</prompt>

<grammar>excellent</grammar>

<grammar>good</grammar>

<grammar>fair</grammar>

<grammar>poor</grammar>

<filled>Got it.</filled>

</field>

<field name="courteousService" type="boolean">

<prompt>

Were the employees who served you courteous?

</prompt>

<filled>Got it.</filled>

</field>

<field name="speedOfService" type="digits?length=1">

<prompt>

On a scale from zero to nine, how would you rate the speed

of service, zero being very slow, and nine being very fast?

</prompt>

<filled>Got it.</filled>

</field>

<filled mode="all">

<prompt>

Thank you! We appreciate you taking the time to participate

in this survey.

</prompt>

</filled>

</form>

</vxml>

O interpretador de Voice XML vai executar este formulário da seguinte maneira:

??Tocar uma mensagem introdutória.

??Fazer ao usuário as perguntas definidas nos elementos prompt.

??Guardar as respostas nas variáveis correspondentes.

??Verificar que as respostas estejam na forma correta, como definidas pela especificação gramatical.

??Tocar a mensagem de agradecimento quando o formulário tiver sido completamente preenchido.

Um possível diálogo baseado nesse formulário seria [1]: IVR : We would like to ask you several questions to find

out if we can serve you better.

Would you rate the quality of the food at the

restaurant as Excellent, Good, Fair, or Poor?

Caller : Fair.

IVR : Got it!

Were the employees who served you courteous?

Caller : Yes.

IVR : Got it!

On a scale from zero to nine, how would you rate the

speed of service, one being very slow and nine being

very fast.

Caller : Six.

IVR : Got it!

Thank you! We appreciate you taking the time to

participate in this survey.

Um formulário pode conter várias outras marcações, como por exemplo:

??Field – representa uma única pergunta num formulário. Ela especifica como o interpretador de Voice XML deve pedir informações ao usuário e como armazenar as respostas.

??Prompt – especifica como fazer as perguntas: pode conter um texto que será convertido em fala por um conversor texto-fala ou indicar uma mensagem pré-gravada.

??Grammar – no exemplo dado a variável foodOK é preenchida com o valor "excellent" quando o usuário pronuncia a palavra. Isto é feito pelo elemento grammar, que define um algoritmo para mapear a resposta falada do usuário para uma string de texto. Entre os algorítimos usados estão os Estocásticos (usados em prompts abertos como “Como podemos ajudar?”) ou os N-Gram que trabalham com a possibilidade de determinadas palavras surgirem depois de outras [2].

3.2 Elementos de procedimentos

Um documento Voice XML pode conter elementos tais como:

??Elementos condicionais como if, else, elseif.

??Elementos não condicionais de controle de fluxo como goto e submit.

??Elementos de procedimentos como script, log, disconnect e exit.

Os elementos condicionais e de controle de fluxo funcionam como em diversas outras linguagens de programação. Vamos aqui nos deter um pouco em alguns dos elementos procedurais como o log e o disconnect. O elemento log permite que se mantenha um arquivo de histórico para que as conversas e transações fiquem registradas. Já o elemento disconnect faz com que a ligação seja encerrada. Quando o interpretador encontra o elemento ele dispara um evento telephone.disconnected.hangup, que ordena ao hardware que encerre a ligação. Não existe um elemento connect pois, quando um documento Voice XML é carregado, é esperado que já exista uma ligação estabelecida.

3.3 Prompts e Audio

O elemento prompt controla a emissão de uma mensagem de áudio pré-gravada ou de uma fala produzida a partir de um texto. Se um prompt for repetido, talvez porque a resposta do usuário não foi a esperada, um prompt alternativo pode ser usado, como por exemplo [1]: <field name="getCreditCardType">

<grammar src="validCreditCards.grxml"/>

<prompt count="1">

What is your preferred credit card?

</prompt>

<prompt count="3">

Say either Visa, Master Card, American Express, or other.

</prompt>

</field>

Neste exemplo, se a resposta do usuário não for um dos cartões de crédito aceitos o segundo prompt vai informar ao usuário que ele deve escolhe entre um dos cartões aceitos.

O elemento audio instrui ao interpretador de Voice XML para tocar uma resposta em áudio, que pode ser um arquivo pré-gravado ou uma fala produzida pelo sintetizador. A especificação recomenda o suporte a no mínimo PCM 64Kbps e arquivos WAV.

No exemplo a seguir o texto “Here is a text message.” vai ser falado (fala produzida) e o arquivo goodbye. wav vai ser tocado [1]: <prompt>

Here is a text message.

<audio src="goodbye.wav">

<emphasis>Goodbye</emphasis>

thank you for your patronage.

</audio>

</prompt>

O elemento say-as indica como o texto deve ser pronunciado ao ser convertido em fala. Por exemplo, o texto “10.25” com o elemento say-as currency seria

pronunciado como “ten dollars and twenty five cents”. Atualmente os seguintes tipos são suportados: acronym, address, currency, date, duration, measure, name, net, number, telephone e time. Ainda existem os elementos de marcação (emphasis, prosody, sentence e paragraph) que controlam a entonação e o ritmo da fala.

3.4 Uso de variáveis

No Voice XML podemos armazenar valores em variáveis. O elemento var declara as variáveis e os elementos assign, field, object, record, initial, subdialog, link e transfer armazenam valores em variáveis já declaradas. Como em diversas outras linguagens de programação, as variáveis no Voice XML têm sua visibilidade dependendo do escopo, que pode ser: session, application, document, dialog e anonymous.

As variáveis de escopo session são built-in (isto é, são variáveis internas da própria linguagem (não declaradas pelos usuários) e somente leitura). As variáveis de aplicação podem ser declaradas no documento raiz e são visíveis pelo documento raiz e qualquer documento folha da aplicação que esteja carregado. Variáveis de documento são locais ao documento. Variáveis de diálogo são declaradas em um form ou menu e somente são visíveis dentro do form ou menu. O escopo anonymous se refere às variáveis que são declaradas dentro de elementos block (explicado na próxima seção), filled (especifica que ação tomar quando o usuário responder corretamente a uma pergunta) ou catch (permite que o Voice XML responda de maneiras diferentes a repetidas ocorrências do mesmo evento) .

3.5 Elementos do Formulário

Os elementos que podem ser incluídos no elemento form (são filhos de form) são os seguintes: field, block, initial, subdialog, object, record e transfer. Esses elementos podem ser considerados como pedaços de informação que devem ser fornecidos. Todo elemento de formulário (field, block, etc.) tem o seguinte:

??Variável de resultado: uma variável de script cujo nome é definido pelo atributo nome do formulário. Quando um elemento do formulário for visitado, esta variável conterá o resultado dessa visita.

??Condição de guarda: expressão de script definida pela tag cond. Precisa ser verdadeira para que o formulário possa ser visitado.

??Variável contador: variável interna que conta quanta vezes o interpretador tentou preencher um determinado item do formulário.

O elemento record grava o áudio fornecido pelo usuário. Ele pode ser usado, por exemplo, para gravar uma mensagem em um serviço de mensagens.

O elemento transfer permite que a aplicação transfira o usuário para outra linha.

O elemento subdialog permite invocar um outro formulário como se fosse uma sub-rotina. O formulário sendo chamado pode aceitar parâmetros (passados com a tag param) e precisa ser encerrado com uma tag return.

O elemento object permite que a aplicação se utilize de códigos de terceiros e não fazem parte do padrão. O elemento fornece atributos para indicar que métodos chamar, bibliotecas, classes ou pacotes onde achar os métodos e os parâmetros a serem passados.

O elemento block pode ser usado para executar ações no formulário sem interagir com o usuário.

3.6 Formulários de Iniciativa Mista

Muitos formulários se desenrolam da seguinte forma. O computador faz uma série de perguntas pré-definidas e o usuário fornece as respostas, uma após a outra. Nos formulários de iniciativa mista tanto o usuário quanto a aplicação podem dirigir a conversa. Em um formulário, por exemplo, o usuário pode responder uma pergunta fora de ordem, fugindo da ordem pré-definida.

Um exemplo de porque os formulários de iniciativa mista podem ser muito úteis é o seguinte [1]: IVR : Would you rate the quality of the food at the restaurant as Excellent, Good, Fair, or Poor?

Human : The service was so slow I never got my food!

IVR : I'm sorry I don't understand. Would you rate the quality of the food at the restaurant as Excellent, Good, Fair, or Poor?

Human : None of the above.

IVR : I'm sorry I don't understand. Would you rate the quality of the food at the restaurant as Excellent, Good, Fair, or Poor?

Por causa da estrutura rígida do formulário, o usuário não consegue passar da pergunta. Isso poderia ser evitado se o interpretador “pescasse” as palavras “slow” ou “service”, que claramente se referem à pergunta feita.

Uma modificação poderia ser feita no formulário para que a conversa se desenvolvesse da seguinte forma: IVR : Would you rate the quality of the food at the restaurant as Excellent, Good, Fair, or Poor?

Human : The service was so slow I never got my food!

IVR : I assume that on a scale from zero to nine, you would rate the speed of service as zero. Were the employees who served you courteous?

Human : Yes.

IVR : I'm sorry you experienced problems at Jimmy's Pizza.

Thank you for taking this survey.

Ao captar as palavras-chave o interpretador muda o rumo do diálogo, não ficando preso naquele ponto.

3.7 Menus

Um menu é um tipo especial de formulário que, de tão freqüente, justificou a criação de um elemento específico para ele no Voice XML. Um menu é como um formulário só que tem apenas uma pergunta. Por exemplo, uma aplicação bancária poderia ter o seguinte menu [1]: Would you like to:

* Check your account balance,

* Transfer funds, or

* Speak with a customer service representative?

O código XML para implementar o menu acima é: <menu>

<prompt>

Please choose from the following options:

<enumerate/>

</prompt>

<choice dtmf="1" next="#checkBalance">

Check account balance

</choice>

<choice dtmf="2" next="#transferFunds">

Transfer funds

</choice>

<choice dtmf="3" next="#speakWithRep">

Speak with a customer service representative

</choice>

<catch event="nomatch noinput">

I'm sorry. I didn't understand. Please choose from the following

options: <enumerate/>

</catch>

</menu>

O elemento choice serve para especificar uma opção do menu e deve conter [1]:

??Uma descrição da escolha que deve ser lida para o usuário.

??A frase que se espera que o usuário responda.

??O que fazer quando o usuário responde.

3.8 Eventos

Eventos fazem com que a aplicação responda as ações do usuário em tempo real. Muitos dos eventos no Voice XML são tratados automaticamente – uma resposta do cliente satisfaz à gramática, logo um campo é preenchido. Nesse caso o programador não precisa se preocupar em tratar o evento explicitamente. Em ouros casos, porém, uma ação é necessária, como no exemplo abaixo, onde o interpretador pede ao cliente que informe cinco números. Após tentar entender os números por três vezes sem sucesso, a chamada é transferida para um operador. <?xml version="1.0" encoding="iso-8859-1"?>

<vxml>

<form id="test">

<block>Hello</block>

<field name="custID" type="digits?minlength=5;maxlength=5">

<prompt> Please key in your identification number.</prompt>

<nomatch count="1">

I'm sorry, that is not a valid identification number.

<reprompt/>

</nomatch>

<nomatch count="2">

Your identification number should be a five digit number.

<reprompt/>

</nomatch>

<nomatch count="3">

I'm sorry. That is still not a valid identification number.

Let me connect you with a customer service representative.

<goto next="#custrep"/>

</nomatch>

<filled> Got it: <value expr="custID"/>

</filled>

</field>

</form>

<form id="custrep">

<block>Transferring you now</block>

<transfer name="xfer" dest="18005551212"/>

</form>

</vxml>

3.9 Gramáticas

Gramáticas são as regras que definem quais respostas do usuário são aceitáveis. As gramáticas aceitam como input a resposta falada do usuário e retornam uma string de texto correspondente.

Um exemplo disso é uma regra para aplicação bancária que define que o cliente só pode ter três tipos de contas [1]: <rule id="accountType">

<one-of>

<item>savings</item>

<item>checking</item>

<item>money market</item>

</one-of>

</rule>

Se o usuário informar um tipo de conta diferente dos três fornecidos pela regra, um evento será chamado para tratar a exceção

3.10 Comparação entre VoiceXML e HTML

Conforme foi visto nas seções anteriores, o VoiceXML 2.0 é uma linguagem de marcação para construir interfaces web de fala, o equivalente para voz do HTML. O Browser de Voz é análogo a um Web Browser gráfico, como o Internet Explorer da Microsoft ou o Firefox da Mozilla, que, ao invés de interpretar HTML, interpreta VoiceXML 2.0 para apresentar informações faladas para o usuário e aceitar comandos de voz dos mesmos. Sendo assim, o usuário interage com aplicações faladas usando o telefone, e através do Browser de Voz acessa informações e serviços usando sua própria voz.

Concebido para incrementar e estender a estrutura da web, o VoiceXML é sintaticamente análogo ao HTML, que é a linguagem de marcação padrão para a criação de sites web. De forma similar ao HTML, o desenvolvimento de aplicações de voz usando o VoiceXML é simples, direto, prático e não requer o conhecimento especializado de sistemas proprietários de telefonia e APIs proprietárias de acesso aos serviços. Abstraídas as complexidades e detalhes intricados de telefonia e APIs proprietárias, os desenvolvedores e projetistas podem se concentrar na lógica do negócio e no fluxo de chamadas, requerimentos e respostas e dados ao invés de complexos detalhes de plataformas e infra-estrutura.

Tabela 1. HTML e o VoiceXML

Função HTML VoiceXML

Documentos em linguagem de marcação definem

Interfaces Visuais e páginas de texto e gráficos

Conversação que o usuário pode ter com a aplicação

Navegação e entrada de dados Mouse e teclado Voz e comandos de voz

Ambiente de execução e renderização

Browser Web Browser de Voz

Saída de dados Texto e gráficos Prompts pré-gravados ou Texto sintetizado em voz (TTS)

Device de Acesso às páginas Computador Telefone

Localização do Browser Computador Servidor Voice Browser

A Tabela 1 resume uma comparação entre VoieXML e HTML. O VoiceXML e o HTML têm várias semelhanças. Ambas são linguagens baseadas em marcações. Páginas web criadas com HTML definem interfaces visuais para navegar e interagir com “sites” web e aplicações Internet. Documentos em VoiceXML definem uma conversação que um usuário pode ter com aplicações.

Os documentos construídos em HTML têm aparência semelhante aos documentos VoiceXML. Muitas das marcações são as mesmas, como por exemplo, a marcação field no HTML que é usada para obter entrada de dados (input) do usuário. No VoiceXML a marcação field é utilizada para escutar a entrada (input) de voz do usuário e as respostas obtidas são interpretadas de acordo com a gramática definida no documento.

De forma idêntica ao HTML, documentos VoiceXML também podem ter scripts a serem executados no servidor ou no cliente (ex: Javascript ou VBScript para o HTML e ECMAScript para o VoiceXML) e podem conter componentes Java ou ActiveX.

Entretanto, as aplicações VoiceXML por serem acessadas em geral pelo telefone, têm uma camada a mais em sua arquitetura comparado às aplicações HTML. O Voice Browser não reside no telefone e sim num servidor de voz acessado por meio da rede pública de telefone, celular, wireless ou VoIP.

Por outro lado às aplicações VoiceXML podem ser utilizadas nos computadores dos usuários (Exemplo : Comando das aplicações por voz ou interfaces alternativas para os desabilitados), desde que tenham os recursos de Input/Output adequados (exemplo: handset). Além disso com o aumento do poder computacional dos telefones celulares e outros devices móveis e ainda o crescimento do VoIP, essa diferença en VoiceXML e HTML em termos da arquitetura em camadas tende a ficar imperceptível.

4. Aplicações de Voz Corporativas

4.1 Browser de Voz na Corporação

Como os telefones e os telefones celulares em geral não têm os recursos computacionais para hospedar um browser de voz, este se localiza no Servidor de Voz. Conforme veremos mais adiante, o servidor de voz pode estar localizado no Data Center da Corporação ou em provedores de serviços de Hospedagem.

Os usuários discam para o Servidor de Voz, que carrega o documento VoiceXML adequado, os formatos das gramáticas e os arquivos de áudio de um servidor de aplicações. O Browser de Voz interpreta o documento VoiceXML 2.0, apresentando ao usuário uma mensagem de voz como:

Sistema: “Bem-vindo a Amazon.com. Você deseja comprar Livros, Revistas ou Produtos Eletrônicos?”

A mensagem de voz pode ser voz pré-gravada ou texto que é obtido dos servidores Web ou Servidores de Aplicações e sintetizado atravéz de um sintetizador Texto-Para-Fala (TTS – Text-to-speech synthesizer)

O Browser de Voz executa um Reconhecedor Automático de Fala (ASR- Automatic Speech Recognizer) para reconhecer as palavras que o usuário responde, como por exemplo:

Usuário: "Livros"

O ASR reconhece a resposta falada pelo usuário. Neste caso o formato da gramática é formado por apenas 3 respostas: “Livros”, “Revistas” e “Produtos Eletrônicos”. Esse tipo de ASR direcionado para gramáticas restritas é mais eficiente que ASRs que executam tarefas como transcrever ditados, que tenta reconhecer grande número de palavras do Inglês ou Português por exemplo. Os usuários também podem responder usando resposta com números no telefone (pela suas origens como aplicações IVR, as aplicações VoiceXML suportam amplamente respostas pelo teclado numérico do telefone ou DTMF – Dual Tone Modulated Frequency - Frequência Modulada em

Tons Duais), que é bastante útil em am ambientes com muito ruído ou quando há necessidade de respostas confidenciais.

O Browser de Voz então continua processando o documento VoiceXML 2.0, possivelmente conduzindo novas etapas da conversação e invocando aplicações específicas nos servidores de aplicações ou acessando informações em Banco de Dados.

Até a seção anterior, os elementos que foram vistos para demonstrar a estrutura do VoiceXML estavam sendo utilizados em exemplos simples de páginas estáticas. No entanto o VoiceXML e a tecnologia de Browser de Voz (Voice Browser) foram construídos acoplados e aderentes ao paradigma da web, Internet e TCP/IP. Essa característica de sua arquitetura determina que as informações, dados, conteúdos e aplicações sejam gerados para o Voice Browser por páginas e aplicações dinâmicas usando tecnologias como ASP, JSP, XSLT, PHP, etc. de forma similar como esses mesmos conteúdos são gerados dinamicamente para o Browser HTML e aplicações Internet. Esse modelo tem uma importante implicação em que novos serviços de Voz podem ser concebidos instalados e renderizados no Browser de Voz sendo implantados usando o conteúdo, aplicações, dados e serviços que já residem na infra-estrutura da corporação. Em outras palavras as Tecnologias de Voice Browser permitem às corporações complementarem ou alavancar com novos serviços de voz a sua infra-estrutura já existente de “e-business”.

O VoiceXML tem sido usado para construir Interfaces de Usuários de Voz, que permitem ao usuário acessar os dados e conteúdo da corporação em qualquer local ou a qualquer momento em que surge a necessidade, simplesmente discando de qualquer telefone, identificando-se e requerindo a informação desejada. Exemplos de aplicações são consulta a catálogo, verificação do estado de Encomendas, entregas, contas bancárias, etc.

Essas aplicações VoiceXML, conforme abordado anteriormente, são construídas especificando menus de alto nível e formulários ao invés de códigos de programas procedurais como nos sistemas proprietários de IVR, liberando mais tempo e recursos para refinamento da concepção e testes de usabilidade das aplicações.

Essas características têm acelerado a adoção das tecnologias de Voice Browser em geral e de VoiceXML em particular. Atualmente existem mais de 46 plataformas VoiceXML, mais de 21 provedores de serviços de voz, incluindo grandes organizaçoes de Tecnologias de Informação e Redes de Comunicação como IBM, Hewlet Packard, Nortel, Cisco, Oracle, além de empresas especializadas em tecnologias de voice Browser como Voxeo e Hey Anita e pelo menos 4 projetos de Voice Browser Open Source (ref. [5]).

Figura 1 – Ilustração de arquitetura de aplicação VoiceXML dinâmica

A figura 1 mostra o funcionamento de uma aplicação VoiceXML dinâmica. As setas indicadas na figura ilustram os passos usuais e a interação com os diversos componentes da aplicação:

1) O usuário faz uma chamada de qualquer telefone através da rede pública de telefone (PSTN)

2) O Browser de voz carrega os scripts VoiceXML, os formatos de gramáticas e os arquivos de áudio de um servidor WEB ou de um Servidor de Aplicações para o Servidor de voz.

3) O Browser de Voz apresenta um menu de opções (prompt) através da execução de áudios pré-gravados ou síntese de voz (TTS).

4) O usuário responde falando ou pressionando as teclas num telefone de tom. A fala do usuário e/ou os tons digitados são transferidos através da conexão telefônica (PSTN) e o servidor de voz processa esses dados através do ASR. Os dados ficam então disponíveis para o Browser de Voz

5) O Browser de Voz acessa aplicações através de requisições HTTP sobre TCP/IP podendo ser Intranets ou Internet usando as opções ou comandos do usuário processados pelo ASR como parâmetros, por exemplo .

6) As aplicações retornam conteúdo, informações ou dados que construirão dinamicamente trechos de páginas VoiceXML ou páginas completas VoiceXML a partir dos dados ou conteúdo retornado.

7) O Browser de Voz retorna as informações solicitadas renderizando a página VoiceXML construída dinamicamente através da execução de áudios pré-gravados ou síntese de voz (TTS). Novas gramáticas também podem ter sido carregadas dinamicamente para continuar e conduzir a interação.

8) O usuário finaliza ou continua a interação.

4.2 Serviços de VoiceXML de alta disponibilidade

Conforme visto anteriormente, os principais módulos que compõe uma aplicação ou serviço baseado em voz usando as tecnologias de VoiceBrowser e VoiceXML são:

??O interpretador VoiceXML

??O servidor ASR

??O Servidor TTS

??O Processador de controle de chamadas

??O Servidor de Aplicação

??O Banco de Dados

A seguir será mostrado como esses componentes são integrados entre si e, por sua vez, integrados com a rede pública de telefonia para a implementação de serviços de voz de alta disponibilidade, flexibilidade e escalabilidade.

A figura 2 ilustra uma arquitetura escalável e distribuída de serviços de voz. Os componentes Voice Browser (VoiceXML IVR), TTS, ASR, servidores de aplicação, servidores de Banco de Dados e os componetntes de telefonia estão todos separados em forma de serviços que podem ser escalados individualmente para atender demandas de serviços, ou para atender requisitos de redundância e disponibilidade ou, ainda , serem implantados separadamente em provedores de serviços, hospedagem ou outsourcing.

Figura 2 – Ilustração de arquitetura de aplicação VoiceXML escalável e Distribuída

Obtida em Ref. [3]

Os elementos novos nesta arquitetura são os componentes de telefonia. Os Softswitches e/ou PBX-IP são “gateways” entre a rede pública de telefonia (PSTN) e a rede IP (intranet ou Internet), ao mesmo tempo em que também fornecem controle de roteamento para o tráfego de pacotes sobre o IP. Os canais de voz vindos das instalações da empresa (CO na figura – Central Office – Escritórios centrais da empresa) são interligados nos Softswitches ou PBX-IP, que passam o tráfego de voz da rede pública (PSTN) para a rede IP ou para Internet. A partir deste ponto, todas as informações de controle de chamada e de voz são passadas sobre o protocolo IP. Procololos como o SIP (SIP – Session Initiation Protocol) são utilizados para passar as informaçãos de controle de chamada.

4.3 Exemplo de Arquitetura de Serviços de VoiceXML de Alta Disponibilidade

Como exemplo de uma arquitetura de serviços de Voz de alta disponibilidade, redundância, escalabilidade e flexibilidade, será mostrada o produto de hospedagem e outsourcing de serviços de voz da Voxeo(Voxeo VoiceCenter™ IVR Platform), um dos estabelecidos fornecedores especializados em serviços de Voz (a descrição deste produto pode ser vista em http://www.voxeo.com/products/home.jsp) . A plataforma IVR da Voxeo é um VoiceCenter (Data Center com infra-estrutura especializada para serviços de voz) para hospedagem de aplicações e fornecimento de serviços em VoiceXML , CallXML e CCXML.

A Figura XX mostra a topologia do VoiceCenter da Voxeo em azul, interconectada com a rede pública de telefonia e com as aplicações corporativas da empresa (mostra também a conexão com o Call Center da empresa ou de parceiros).

Figura 3 – Exemplo arquitetura VoiceXML de Alta Disponibilidade Voxeo VoiceCenter™ IVR Platform – Obtido em ref. [4]

Call Gateways – O primeiro segmento é composto por equipamentos “Cisco Universal Sip Call Gateways”, que conectam qualquer rede de telefonia ou PBX no Backbone IP do Voxeo VoiceCenter IVR. Assim como os demais segmentos da plataforma, todos os componentes têm redundância e balanceamento de tráfego e carga e possibilitam integração de mais equipamentos para comportar demandas emergentes. Esse equipamento provê 2,4 ou 8 portas T1/E1 em um mesmo Rack e fornece a conversão (baseada em padrões) de chamadas telefônicas para sessões SIP.

Softswitch & Directory – O segundo segmento na topologia do VoiceCenter IVR são os Softswitches compostos por equipamentos padrão Intel com Windows, onde reside o software de Softswitch que faz roteamento inteligente, balanceamento inteligente e controle de chamada inteligente entre a rede de telefone e os servidores de VoiceXML. Após a conversão para o protocolo SIP, as chamadas são roteadas e balanceadas pelos “clusters” de equipamentos Softswitches. Implementados usando padrões SIP totalmente distribuído e de alta confiabilidade, CCXML e ENUM/DNS, a plataforma IVR VoiceCenter da Voxeo, usam instruções CCXML das aplicações hospedadas no VoiceCenter para de forma inteligente conectar, rotear e transferir chamadas para os Servidores VoiceXML, qualquer telefone ou qualquer Call Center.

VoiceXML servers – O terceiro segmento representa os servidores VoiceXML que implementam tecnologias XML para reconhecimento de voz (ASR), reprodução de áudio (a plataforma da Voxeo disponibiliza também gravação de áudio), TTS (Text-To-Speech) entre outros recursos. Os servidores VoiceXML podem ser equipados com Browsers VoiceXML da Motorola, Nuance ou da VoiceGenie, que são líderes estabelecidos em tecnologias de processamento de chamadas, prompting de áudio, reconhecimento de voz e síntese de voz. A completa integração com Web e Redes IP combinada com os recursos de controle de chamada integrados do CCXML formam uma plataforma XML de grande robustez, flexibilidade, recursos e possibilidades para atender os mais diversificados serviços de voz.

Content Caching – O quarto segmento representa os servidores de proxy caching, que constroem cópias locais de conteúdo VoiceXML, conteúdo de áudio, etc. de aplicações que se encontram em servidores remotos. Os servidores usam tecnologia padrão Proxy HTTP 1.1 para assegurar o eficiente e instantâneo envio de prompts de áudio e conteúdo XML estático para as aplicações de Voz mesmo durante grandes cargas ou congestionamento dos servidores de aplicação e conteúdo remotos. Adicionalmente, os servidores proxy de cash executam otimização da qualidade de áudio e convertem previamente arquivos de áudio MP3 e WAV para padrões de telefonia.

Cada um dos segmentos ou camadas na plataforma VoiceCenter IVR da Voxeo suporta redundância de componentes 1 + N e também são constituídos de múltiplos blocos e clusters de componentes. Sendo assim, múltiplos Call Gateways Cisco podem responder chamadas através das múltiplas linhas T1/E1/PRI, os multiplos clusters de Softswitches Voxeo podem aceitar as ligações e rotear para qualquer dos abundantes servidores VoiceXML que por sua vez podem requisitar conteúdo HTTP dos múltiplos Proxies de Caching.

A implementação 100% baseada em IP permite que as chamadas sejam totalmente distribuídas e tolerantes a falhas entre os diversos componentes da topologia. No caso de falha de algum componente, os Softswitches da Voxeo automaticamente

fazem o roteamento das chamadas em torno da falha para outros componentes. Essa arquitetura fornece uma disponibilidade (anunciada) de 99.999% e uma flexibilidade ímpar.

A construção das camadas em blocos e clusters também determina que o aumento da capacidade seja direto com a colocação de servidores adicionais.

5. As tendências do VoiceXML apontadas pelo W3C

Os padrões que compõe o VoiceXML e o próprio VoiceXML são concebidos (a concepção tem a participação também de várias empresas, entidades e experts) , conduzidos e coordenados pelo W3C pelo grupo Voice Browser Working Group (Ref. [7]). Cada um dos padrões e linguagens geridos pelo W3C é resultado de um rigoroso processo para se tornar uma recomendação do W3C. O VoiceXML e seus componentes são um conjunto de linguagens bem definidas e de padrão aberto que podem ser usados em conjunto para concepção e construção de aplicações de voz. Essas linguagens foram e continuam sendo amplamente empregadas sob um programa de conformidade de plataformas para promover a portabilidade, assim como programas para incrementar o nível de habilidades e conhecimento da comunidade de desenvolvedores VoiceXML. Neste sentido o VoiceXML é mais do que um padrão. O VoiceXML é uma crescente infra-estrutura e uma comunidade de desenvolvedores de aplicações de voz.

Os principais eventos que estão ocorrendo no grupo do W3C chamado Voice Browser Working Group podem ser sintetizados da seguinte forma (ref.: [6]) :

a) Três das linguagens atingiram o status de “Full Recomendations” do W3C: VoiceXML 2.0, Speech Synthesis Markup Language (SSML) e Speech Recognition Grammar Specification (SRGS).

b) Outras Linguagens estão avançando para se tornarem recomendações completas do W3C (Full Recomendations):

1) VoiceXML 2.1 – Coleção de 8 novos recursos que agregarão no VoiceXML 2.0. As aplicações 2.0 continuam funcionando sem nenhuma alteração:

i. Candidate Recommendation, Fevereiro 2005

ii. Recommendation, Junho 2005

2) Semantic Interpretation – Linguagem similar ao JavaScript usado para extrair e transformar palavras do mecanismo (engine) de reconhecimento de fala em conceitos semânticos.

i. Candidate Recommendation, Março 2005

ii. Recommendation, Dezembro 2005

3) CCXML – Linguagem baseada em eventos usada para administrar conexões telefônicas e roteamento de chamadas. O VoiceXML era deficiente nos controles de chamadas para vários tipos de aplicações como notificação e conferência. No entanto com o surgimento CCXML (Call Control XML) que interage com a rede pública de telefonia e o protocolo SIP, não mais existirão essas deficiências e uma gama de possibilidades de novos serviços e integração estão emergindo.

i. Candidate Recommendation, Abril 2005

ii. Recommendation, Dezembro 2005

4) Pronunciation Lexicon Specification (PLS) – Linguagem para especificar como as palavras são pronunciadas.

i. 1st Working Draft, Março 2005

ii. Last Call Working Draft, Julho 2005

iii. Candidate Recommendation, Dezembro 2005

iv. Recommendation, Abril 2006

5) VoiceXML 3.0 – Uma nova linguagem de diálogo que conterá vários novos recursos e extensões ao VoiceXML 2.0/VoiceXML 2.1. Entre os novos recursos estão a incorporação de vários recursos de diálogo que serão usados para construção de aplicações de voz avançadas e ao mesmo tempo integradas de forma limpa com outras linguagens do W3C. Adicionalmente acrescentará melhorias no controle de diálogo e das mídias assim como novos recursos como modularização, separação clara entre dados/fluxo/diálogos e tratamento de eventos assíncronos externos.

i. 1st Working Draft, June 2005

ii. Last Call Working Draft, March 2006

iii. Candidate Recommendation, December 2006

iv. Recommendation, June 2007

6. Conclusão

Esse trabalho teve como principais objetivos:

1) Mostrar as características básicas do padrão VoiceXML.

2) Mostrar as similaridades entre o as linguagens de Markup HTML e VoiceXML tanto em termos sintâticos como semânticos, mesmo sendo empregadas em diferentes interfaces de Input/Output.

3) Mostrar a consequente similaridade em desenvolver aplicações HTML e VoiceXML.

4) Ilustrar como as teconologias de Voice Browser se integram perfeitamente as infra-estruturas de e-business e Internet já existentes na corporações, fornecendos novos e complementares serviços de voz.

5) Ilustrar como as tecnologias de VoiceBrowser são implementadas numa infra-estrutura de alta-disponibilidade e escalabilidade.

6) Citar as principais atividades e tendências do grupo Voice Browser do W3C

O VoiceXML e as tecnologias de VoiceBrowser estão revolucionando o desenvolvimento de aplicações de telefonia onde os usuários podem acessar sites WEB através do telefone e conversar com aplicações de Browsers de Voz. Através do uso de tecnologias e plataformas padrões da Internet o VoiceXML simplifica a concepção e desenvolvimento de aplicações baseadas em voz em efeito tornando-as tão fáceis e flexíveis de desenvolver como aplicações baseadas em Browser para Internet ou dispositivos móveis.

E se você já pensou em falar com suas Páginas Web, Sistemas em Internet/Intranet e de e-Business, considere o VoiceXML, o CCXML e os demais padrões do W3C para dar uma nova dimensão em termos de interfaces de voz, serviços e acesso pelo telefone para as suas aplicações e dados.

Referências

[1] Hocek , Adam; Cuddihy , David - Definitive VoiceXML , Prentice Hall PTR 2002

[2] W3C Consortium - http://www.w3.org/Voice/

[3] Hocek , Adam; Cuddihy , David - Definitive VoiceXML , Prentice Hall PTR 2002 -

[4] Voxeo VoiceCenter™ IVR Platform - http://www.voxeo.com/products/home.jsp

[5] Ken Rehor´s World of VoiceXML - http://www.kenrehor.com/voicexml

[6] W3C Voice Browser Working Group Charter - http://www.w3.org/2004/11/voice-charter.html

[7] W3C Voice Browser" Activity - http://www.w3.org/Voice


Recommended