Atividades do grupo de Voice Browser do W3C



Documentos relacionados
Atividades do grupo Voice Browser do W3C

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Programando em PHP. Conceitos Básicos

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Noções de. Microsoft SQL Server. Microsoft SQL Server

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Programação Web Prof. Wladimir

SISTEMA GERENCIADOR DE BANCO DE DADOS

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Desenvolvendo para WEB

Desenvolvendo Websites com PHP

Sistemas Distribuídos

Um Driver NDIS Para Interceptação de Datagramas IP

Tecnologias para apresentação de dados - Java Script. Aécio Costa

Arquitetura de Rede de Computadores

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

MANUAL DE UTILIZAÇÃO

Introdução ao Modelos de Duas Camadas Cliente Servidor

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: URL:

LINGUAGEM DE BANCO DE DADOS

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Engenharia de Requisitos Estudo de Caso

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Programação para Web Artefato 01. AT5 Conceitos da Internet

Considerações no Projeto de Sistemas Cliente/Servidor

Entendendo como funciona o NAT

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Tecnologias Web. Lista de Exercícios AV02. Luiz Leão

GUIA RÁPIDO DE UTILIZAÇÃO DO PORTAL DO AFRAFEP SAÚDE

Scriptlets e Formulários

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

Curso de Aprendizado Industrial Desenvolvedor WEB

UFG - Instituto de Informática

Desenvolvimento de Aplicações Web

Comunicação entre Processos

Redes de Computadores. Protocolos de comunicação: TCP, UDP

CAPÍTULO 2. Este capítulo tratará :

Documentação Symom. Agente de Monitoração na Plataforma Windows

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/ :00.

SPARK - Comunicador Instantâneo MANUAL DO USUÁRIO

Web Services. Autor: Rômulo Rosa Furtado

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

5 Estudo de caso: utilizando o sistema para requisição de material


Criando um script simples

Manual de configuração do OpenPhone para o uso no serviço fone@rnp

SPSS Statistical Package for the Social Sciences Composto por dois ambientes:

FTP Protocolo de Transferência de Arquivos

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados


Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

TRBOnet MDC Console. Manual de Operação

efagundes com Como funciona a Internet

JavaScript (ou JScript)

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Internet - A rede Mundial

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Kassius Vargas Prestes

MODELO CLIENTE SERVIDOR

Anexo I Formulário para Proposta

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Conceitos Básicos de Telefonia Celular

Modelos de Camadas. Professor Leonardo Larback

Eduardo Bezerra. Editora Campus/Elsevier

Servidor de s e Protocolo SMTP. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Plataforma Sentinela

Informática I. Aula 4. Aula 4-05/09/2007 1

TECNOLOGIAS WEB AULA 2 PROF. RAFAEL DIAS

:: Telefonia pela Internet

UML - Unified Modeling Language

Tecnologias Web. Lista de Exercícios AV02 Turma Luiz Leão

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

SISTEMAS DISTRIBUÍDOS

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Acesso a Bancos de Dados em Java (JDBC)

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

O Contato com seus clientes é personalizado? Ferramenta de envio de mensagens pré-gravadas!

Configurando o DDNS Management System

Sistemas Distribuídos

DATA WAREHOUSE. Introdução

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Sumário. Vipexpress Plataforma web para intermediação de vendas online entre usuários

18/04/2006 Micropagamento F2b Web Services Web rev 00

Manual de Instalação EDIÇÃO 1.0

Transcrição:

Atividades do grupo de Voice Browser do W3C Departamento de Engenharia de Telecomunicações Universidade Federal Fluminense (UFF) Niterói - RJ Brasil Antonio Caminada, Randolpho Julião

Resumo Inicialmente apresentaremos uma visão geral do padrão Voice XML e suas principais aplicações. A seguir mostraremos as principais características e elementos da linguagem. Na continuação, falaremos da arquitetura para aplicações de voz corporativa. Por fim daremos uma visão geral das tendências do Voice XML apontadas pelo W3C.

Introdução ao Voice XML Linguagem padrão (aberta), fundamentada no XML para o desenvolvimento de aplicações baseadas em voz. Utiliza marcações (tags), cada qual com significado específico, e deve ser usado juntamente com softwares de sintetização e reconhecimento de voz. A primeira release para o público, Voice XML 0.9, foi feita em agosto de 1999. Atualmente está na versão 2.1.

Voice XML e Serviços de Voz Traz as vantagens de Internet para o telefone Criar aplicações interativas com tecnologia web que possam ser acessadas via telefone. Exemplos Informações de negócios, como help-desks corporativos que podem perguntar aos clientes o que eles desejam, informar chegadas e partidas de vôos, horários de cinemas, etc Acessar informações públicas como previsão do tempo, condições do tráfego, notícias locais, etc. Acessar informações pessoais, como agenda de compromissos, agenda de telefones, lista de compras, mensagens de voz, etc. Aplicativos utilizados em carros e eletrodomésticos, sem o uso do telefone.

Se os serviços oferecidos hoje na Internet puderem ser feitos pelo telefone com a mesma facilidade, este seria o canal mais fácil de comunicação. Não há necessidade de download de programas específicos e, com a difusão da telefonia móvel, estariam disponíveis em qualquer lugar. Nem todas as aplicações 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.

Interactive Voice Response (IVR) Máquinas especialmente projetadas para abrigar serviços de voz. Software/hardware de processamento e reconhecimento de voz e um software para controlar o fluxo e a lógica da conversa. São programáveis (a lógica do diálogo pode ser alterada). Linguagem de scripts de alto nível (define o fluxo da ligação). API de baixo nível (para tarefas mais complicadas, como a consulta em um banco de dados, por exemplo).

O Voice XML é parte de um conjunto de tecnologias associadas à voz em desenvolvimento pelo W3C. Grammar XML (GRXML): linguagem para representar gramáticas. 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 (tom de voz, inflexão, etc). Call Control XML (CCXML): linguagem para controlar o equipamento telefônico e de roteamento. Eventos XML: padrão para criar comportamentos associados a eventos.

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.

Formulários 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: forms e menus. Para serem úteis, quase todas as outras marcações devem estar dentro de uma destas duas. Um formulário é composto de uma ou mais perguntas que a aplicação precisa fazer ao usuário. Idéia intuitiva.

<?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>

Um formulário pode conter várias marcações, como por exemplo: Field representa uma única pergunta num formulário. Especifica como o interpretador de Voice XML deve pedir informações ao usuário. Prompt especifica como fazer as perguntas: pode conter um texto que será convertido em fala ou indicar uma mensagem pré-gravada. Grammar no exemplo dado a variável foodok é preenchida com o valor "excellent" quando o usuário pronunciar a palavra. Isto é feito pelo elemento grammar, que mapea a resposta falada do usuário para uma string de texto.

Elementos de procedimentos Um documento Voice elementos tais como: XML pode conter 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.

Prompts e Audio O elemento prompt emite uma mensagem de áudio pré-gravada ou uma fala produzida. Se um prompt for repetido porque a resposta do usuário não foi a esperada, um prompt alternativo pode ser usado, como por exemplo: <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. </prompt> </field>

O elemento audio instrui ao interpretador de Voice XML para tocar uma resposta em um arquivo pré-gravado <prompt> Here is a text message. <audio src="goodbye.wav"> <emphasis>goodbye</emphasis> thank you for your preference. </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. Existem outros elementos say-as: date, duration, measure, name, number, telephone e time, etc.

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.

Exemplo de formulário com estrutura rígida 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? Isso poderia ser evitado se o interpretador pescasse as palavras slow ou service, que claramente se referem à pergunta feita.

Exemplo de formulário com estrutura flexível 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.

Menus Um menu é como um formulário que tem apenas uma pergunta. Por exemplo, uma aplicação bancária poderia ter o seguinte menu: Would you like to: * Check your account balance, * Transfer funds, or * Speak with a customer service representative?

Parte do código para implementar o menu anterior é: <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>

O elemento choice serve para especificar uma opção do menu e deve conter: 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.

Gramáticas Gramáticas são as regras que definem quais respostas do usuário são aceitáveis. Aceitam como input a resposta falada do usuário e retornam uma string de texto correspondente. <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.

Comparação entre VoiceXML e HTML

Aplicações VoiceXML Dinâmicas 1. 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. 2. 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). 3. O usuário faz uma chamada de qualquer telefone através da rede pública de telefone (PSTN) 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.

Arquitetura de aplicação VoiceXML escalável e Distribuída Módulos que compõe uma aplicação ou serviço baseado em voz usando as tecnologias de VoiceBrowser e VoiceXML : O interpretador VoiceXML. O servidor ASR. O Servidor TTS. O Processador de controle de chamadas. O Servidor de Aplicação. O Banco de Dados.

Arquitetura de aplicação VoiceXML de Alta Disponibilidade Algumas características dos Segmentos ou camadas na plataforma VoiceCenter IVR: Redundância de componentes 1 + N e também são Constituídos de múltiplos blocos e clusters de componentes Implementação 100% baseada em IP Disponibilidade (anunciada) de 99.999%

As Tendências do VoiceXML apontadas pelo W3C Os principais eventos que estão ocorrendo no grupo do W3C chamado Voice Browser Working Group podem ser sintetizados da seguinte forma : 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). Outras Linguagens estão avançando para se tornarem recomendações completas do W3C (Full Recomendations): 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: Candidate Recommendation, Fevereiro 2005 - Recommendation, Junho 2005 Semantic Interpretation Linguagem similar ao JavaScript usado para extrair e transformar palavras do mecanismo (engine) de reconhecimento de fala em conceitos semânticos. Candidate Recommendation, Março 2005 -Recommendation, Dezembro 2005 CCXML Linguagem baseada em eventos usada para administrar conexões telefônicas e roteamento de chamadas. Candidate Recommendation, Abril 2005 - Recommendation, Dezembro 2005 Pronunciation Lexicon Specification (PLS) Linguagem para especificar como as palavras são pronunciadas. 1st Working Draft, Março 2005 Last Call Working Draft, Julho 2005 Candidate Recommendation, Dezembro 2005 - Recommendation, Abril 2006 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. 1st Working Draft, June 2005 Last Call Working Draft, March 2006 Candidate Recommendation, December 2006 - Recommendation, June 2007

Relacionamento entre IVR Tradicional e a Camada VoiceXML

Geração de VoiceXML e outros documentos em linguagens de Markup

Aplicação Tracking de Pacotes (Encomendas)

Códigos para obter número de Tracking e acesso ao B.D de informações dos Pacotes <?xml version="1.0" encoding="iso-8859-1"?> <vxml version="2.0"> <form id="welcome"> <block> <prompt> Welcome to the telephone package tracking system. </prompt> <goto next="#collecttrackingno"/> </block> </form> <form id="collecttrackingno"> <field name="trackingno" type="digits"> <prompt> Please tell me the 10 digittracking number of your package. </prompt> </field> <filled> <prompt> Please wait while I'm checking this package's status. </prompt> <submit next="trackinginforeporter.jsp" namelist="trackingno"/> </filled> </form> </vxml> <% // Get tracking number from HTTP post //data: String trackingno =request.getparameter("trackingno"); // // Make JDBC Connection. Perform Query // Class.forName("org.gjt.mm.mysql.Driver").ne winstance(); java.sql.connection conn; String connurl = "jdbc:mysql://localhost.localdomain/shippin g_events"; String user = "voicesystem"; String pw = "secret234password"; conn = DriverManager.getConnection(connurl,user,pw ); Statement stmt = conn.createstatement(); ResultSet res; res = stmt.executequery("select * FROM event_log " + "where package_id='" + trackingno + "' order by event_id"); res.last(); int nrows = res.getrow(); %>