Resumo: Com a crescente inovao da tecnologia multimodal para interface de ambientes virtuais a necessidade
de ter um ambiente leve e de fcil operao do usurio faz com que os recursos de fala sejam incorporados a
aplicao, mas a perda de desempenho quando esta tecnologia utilizada faz com que o usurio perca a interao
e o envolvimento. Com esta premissa o objetivo deste trabalho elucidar algumas prticas e tcnicas de
programao para ambientes virtuais fazendo a comparao entre duas bibliotecas de gerao de ambiente
tridimensionais: Java 3D e a WorldToolKit, e como estas bibliotecas se comportam juntas das bibliotecas Java
Speech e Microsoft Speech, ambas para reconhecimento e sntese de fala.
Abstract: With the increasing innovation of the multimodal technology for interface of virtual environments the
necessity to have a light environment and of easy operation of the user makes with that the resources of speak
are incorporated the application, but the loss of performance when this technology is used makes with that the
user loses the interaction and the involvement. With this premise the objective of this work is to elucidate some
practical and techniques of programming for virtual environments making the comparison enter two libraries of
three-dimensional environment generation: Java 3D and the WorldToolkit, and as these libraries if holds
meetings of the libraries Java Speech and Microsoft Speech.
1 Introduo
2 Definio do Problema
O sentido de percepo do ser humano o mais complexo e completo sistema de percepo dos animais,
nele o ser pode identificar variveis do ambiente e relacionar as informaes audveis e visuais no intuito de
compreender o que se passa ao seu redor, conforme [TORTORA, (1990)].
Olhos e crebro trabalham juntos para perceber e interpretar as informaes do mundo fazendo com
que o usurio sinta-se entretido com o ambiente, mas quando uma delas tem um atraso (delay), ou se
adianta uma da outra, crebro percebe a disfuno e acorda o usurio tirando-o da imersabilidade e o faz
atentar para o problema de sincronismo entre o visual e o audvel.
Estudar e observar o comportamento dos ambientes criados em duas linguagens Java e C/C++
utilizando o recurso de fala atravs do uso das bibliotecas Java Speech e Microsoft Speech dentro de um
ambiente virtual para definir um conjunto de consideraes para futuros desenvolvimentos desta tecnologia
em ambientes de realidade virtual.
Para tanto o mecanismo de sntese e reconhecimento de fala utilizado foi o IBM ViaVoice e comparado
com o mecanismo da Microsoft Speech. Os ambientes tridimensionais criados forma desenvolvidos em
com a aplicao de bibliotecas de gerao de mundos virtuais tridimensionais: Java 3D e WorldToolKit.
3 Trabalhos Anteriores
Trabalhos anteriores destacam-se pela aplicao do reconhecimento de voz e sntese utilizando sua forma
bsica sem se preocupar com a interatividade e imerso dentro do ambiente, como o caso das
aplicaes descritas por [HUNT E WALKER, (2000)] e por [PIZZOLATO & REZENDE, (2003)].
Notavelmente a pesquisa de [OLIVEIRA ET ALI, (2000)] decifra alguns problemas dentro de um
ambiente virtual associado a um sistema de reconhecimento e sntese de voz.
Outros trabalhos descrevem apenas os erros de rejeio ou de incompreenso dos comandos de voz
como o caso dos trabalhos de [MEIGUINS ET ALI, (2003)] e de [RODRIGUES, (2001)].
5 O mecanismo de reconhecimento
6 Detalhes da Implementao
Para a efetiva comparao foram desenvolvidas aplicaes que unindo a tecnologia de reconhecimento e
sntese de fala para o controle do Ambiente Virtual contendo um avatar humanide.
As linguagens e seus paradigmas de programao escolhidos foram Java por retratar bem o paradigma
de orientao a objetos e a linguagem C/C++ para Windows atravs do ambiente de desenvolvimento
Microsoft Visual C++ (MVC++), onde se podem encontrar caractersticas de uma linguagem orientada a
objeto quando se usa recursos de troca de mensagens, mas ainda ligada aos conceitos de linguagens
procedurais.
Os prottipos criados vistos na Figura 1 e Figura 2 apresentam os ambientes criados em Java com
interface virtual em Java 3D e interface de fala com Java Speech API, e o prottipo 2 criado em Microsoft
Visual C++, com interface 3D da WorlToolKit com interface de fala atravs do Microsoft Speech API.
Para estes desenvolvimentos foi observado os conceito de [SHRIVER E ROSENFELD, (2003)], que
afirma que uma interface de fala pode ser empregada trs tcnicas diferentes: a) utilizando uma linguagem
natural controlada; b) dilogo direto, ou seja, por perguntas e respostas e; c) por comando e controle,
possvel observar que de acordo com estas tcnicas que possvel obter resposta de desempenho
satisfatrio em algumas situaes como demonstra a Figura 3, e dependendo do mecanismo escolhido
para fazer a interface de fala, como o caso da implementao em Java atravs da tcnica de comando e
controle para o idioma Portugus-Brasil.
100 95 98 98 98
88
80 80 79 80 82
80
60 50 50
40
25 25
20 18
20 15 19
0
Palavra Isolada Dilogo Contnuo Regras de Gramtica
Ling. Controlada - Java 50 20 80
Dilogo Direto - Java 95 25 98
Comando e Controle - Java 80 15 98
Ling. Controlada - SAPI 50 19 88
Dilogo Direto - SAPI 80 25 82
Comando e Controle - SAPI 79 18 98
7000
Regras de Gramtica
7800
6800
Dilogo Contnuo
7850
7950
Palavra Isolada
7850
00
00
00
00
00
00
00
00
00
00
00
62
64
66
68
70
72
74
76
78
80
82
Tempo em Milissegundos (ms)
Quando se cria uma classe em Java deve-se priorizar a sua interface de acesso, ou seja, se esta classe ir
ser acessada como se fosse uma extenso, ou como incorporao.
Segundo [VENNERS (2001)], o uso da classe como extenso (extends) existe uma sobrecarga de
pacotes de desenvolvimento (Packages) desnecessria, pois para o referido uso relevante apenas s
bibliotecas de reconhecimento ou sntese de voz.
Quando utilizado o pacote Java Speech a mquina virtual Java usa as seguintes bibliotecas dinmicas
(DLL) para fazer o acesso ao mecanismo de reconhecimento cada uma com sua responsabilidade de
acesso ao mecanismo, sendo elas as seguintes abaixo na Tabela 1:
Tabela 1 - Responsabilidades das bibliotecas DLL
Biblioteca Responsabilidade
Ibmreco.dll Iniciar o reconhecimento de Voz atravs de uma gramtica regular (JSGF).
Vtbnfcjs.dll Carregar a gramtica regular definida e assegurar sua referncia dentro do
mecanismo de reconhecimento
Ibmsynth.dll Iniciar a sntese de voz atravs de vozes pr-definidas pelo mecanismo
ibmreco_g.dll Configurao da gramtica dentro das regras de reconhecimento de voz
ibmsynth_g.dll Configurao da gramtica dentro das regras de sntese de voz (pronuncias)
ibmsynth50.dll Responsveis pelo desligamento do mecanismo de reconhecimento e sntese de
ibmsynth50_g.dll voz.
Outra tcnica para atenuar a perda de desempenho do Java Speech a utilizao das bibliotecas
(pacotes ou packages) no mais na sua forma convencional, visto na Figura 5, mas na forma identificada
completa, visto na Figura 6. Esta forma de programao alm de atenuar a perda de desempenho deixa o
programa mais legvel segundo [SEBESTA, (1996)], assegurando o entendimento para futuras
manutenes.
1785
Performance
2580
Alm da utilizao do recurso de programao de incluso de pacotes identificados foi detectado que o
uso do pacote de desenvolvimento swing redundante para o Java, utilizando formulrio na plataforma
Windows, mesmo contrariando os ensinamentos de [DEITEL E DEITEL, (2003)], pois ambas (a classe
canvas3D e o canvas do AWT) so especificaes da classe Graphics, que acompanha o pacote AWT,
conforme pode ser vista na Figura 9.
Segundo de [DEITEL E DEITEL, (2003)] o pacote AWT (abstract window toolkit) esto
associados com os recursos da interface grfica com o usurio na plataforma local, e quando um programa
que usa deste recurso executado em outra plataforma sua aparncia diferente da original.
Figura 9 - Superclasses comuns dos componentes de interface com usurio em Java
Os componentes do pacote Swing no so sobrecarregados pelos recursos GUI complexos da
plataforma em que so utilizados, mas dependem da vinculao da AWT, do qual o Java3D se baseia
para desenhar objetos na tela. Mesmo que cada componente AWT possua uma interao separada para o
acesso plataforma, o fato de que quando utilizado componente swing junto ao Java Speech existe o
que se pode denominar de perda por sobrecarga, ou seja, o pacote swing por ser uma classe derivada do
awt, este processado primeiro e depois reprocessado para dar vazo ao pacote swing.
No mesmo trecho de cdigo na linha 28 visto que o mecanismo de sntese colocado em uma fila,
podendo e mecanismo ao mesmo tempo reconhecer um comando do usurio e sintetizar uma frase.
A aplicao objeto de estudo doravante definida como prottipo foi criado em linguagem C/C++ para
Windows e utiliza a API WorldToolKit da Sense8 com acesso a API MS-Speech 5.1 atravs das
bibliotecas SAPI Speech API da Microsoft que demonstrado na Figura 2.
O prottipo criado nesta plataforma construdo com base na API do WorldToolKit da Sense8, o
qual pode ser executado como uma janela console do Windows.
Uma das caractersticas da implementao em Microsoft Visual C++ (MVC++), o fato de que existe
uma janela de controle Windows com a qual a API instanciada, e referida, pois para o reconhecimento
de voz necessria comunicao via mensagens (Message Passing).
De acordo com Papas (2000) quando o sistema operacional usa da tcnica de troca de mensagens
para que o sistema operacional possa operar com a habilidade de multiprocessamento, ou seja, para
operar mais de uma aplicao com acesso ao processador.
Existe uma distino na concepo de uma aplicao baseada em Java e outra construda na plataforma
Windows com o Visual C++ (MVC). Visualmente as interfaces de comunicao so semelhantes, mas as
tecnologias em ambas as linguagens so de paradigmas diferentes.
Quanto a este paradigma o que se destoa que a na programao Windows com o MVC na
verdade um programa orientado a procedimento que simula uma orientao a objeto atravs do uso de
mensagens.
Segundo Schildt (1997), quando se escreve um programa (EXE) comum que o programa inicie a
interao com o Sistema Operacional (SO), ao exemplo da plataforma DOS, o programa solicita entradas
e sadas que so fornecidas pelo SO, no entanto na plataforma Windows (Microsoft Windows), o SO
chama o programa (EXE) e libera recursos de entradas e sadas por meio de mensagens.
O SO Windows passa uma mensagem para o programa mediante uma funo especial chamada pelo
prprio ncleo do SO (Kernel), segundo Hart (2001), este ncleo a poro responsvel por suas
funes mais bsicas, entre elas pode-se citar: escalonamento, destruio e criao de processos.
Uma vez que a mensagem tiver sido recebida, espera-se que o programa toma uma ao apropriada.
Embora o programa possa chamar uma ou mais funes do ncleo do SO enquanto responde
mensagem, no deixa de ser o Windows que inicia a atividade, e de forma geral ele comanda todos os
programas dentro da plataforma.
H diferentes tipos de mensagens dentro da plataforma Windows, por exemplo, quando o usurio d
um clique com mouse sobre uma janela, ou quando uma janela precisa ser redimensionada ou
redesenhada, fazendo lembrar que as mensagens funcionem como uma interrupo.
O SO prov uma srie de servios para os programas de acordo com o envio e recebimento de
mensagens. A ilustrao da Figura 12 demonstra este fornecimento de recursos.
Kernighan e Pike (2000) definem que as mensagens enviadas para o programa so armazenadas em
uma fila de mensagens associada a cada programa carregado. Portanto nenhuma mensagem ser perdida
mesmo quando o programa ficar ocupado processando outra mensagem, esta mensagem ficar na fila at
que o programa esteja pronto para l-la.
Quando um processo de um programa deseja um servio do SO, ele faz uma chamada a biblioteca de
Interface de programao (API Application Programming Interface), para que o SO realize um
servio j definido em seu ncleo.
O SO ento se suspende e retorna a execuo do processo do ponto em que havia sido parado.
Dependendo do servio o processo pode continuar suspenso por mais algum tempo como o caso das
operaes de Entrada e Sada (E/S).
Segundo Kruglinski (1997), a programao para Windows diferente de velho estilo de programao
procedural, pois mesmo utilizando recursos conhecidos deste paradigma a programao Windows recorre
a tecnologia de uso de mensagens passadas a interrupes de programa.
Segundo Patterson e [HENNESSY (2000)] a plataforma Windows um sistema operacional
multitarefa (timesharing), isto significa que ela pode executar dois ou mais programas simultaneamente.
Isso acontece por que o sistema operacional Windows trabalha de forma concorrente onde o tempo da
rotina no processador fatiado ou parcelado (time sliced).
De acordo com [SEBESTA (2002)], para simular a orientao a objetos atravs de uma linguagem
tipicamente procedural necessrio a criao de eventos de sistema ou Handle Events, que nada mais
so do que o envio de mensagens ao ncleo do SO causando uma interrupo e desviando o fluxo do
programa temporariamente.
Segundo [KRUGLINSKI (1997)], a repetio de mensagens uma parte de todas as aplicaes
Windows. Seu objetivo o de receber e processar mensagens enviadas pelo ncleo do SO. Quando uma
aplicao excetuada, so enviadas mensagens para ela quase que de forma contnua que so
armazenadas at que possam ser lidas e processadas. O trecho de cdigo destacado na Figura 13 denota
o caso do uso de mensagens para enviar a mensagens de configurao do ambiente virtual escrito em
MVC chamando uma funo para criao do mundo em WorldToolKit.
Quando um sistema necessita de grandes recursos processamento e que se deseje que o usurio no perca
a interao e o sentido de imerso com o sistema, possvel fazer a diviso do processamento, isto
possvel atravs do uso de Threads.
Segundo [DEITEL E DEITEL (2003)], thread um fluxo de execuo do programa que pode ter
acesso ao processador e ser inicializado ou colocado em espera (sleep) de acordo com sua prioridade.
Java a nica entre as linguagens de programao de uso geral que disponibiliza o controle de fluxo de
execuo para o programador de aplicativos. Em C/C++ estas funcionalidades no esto disponveis e
para ser realizado o mesmo trabalho necessrio o uso de repetio de mensagens quando a
programao para Windows, portanto dependendo diretamente do sistema operacional e no da
primitiva da linguagem como em Java.
Segundo [KRUGLINSKI (1997)], em muitas plataformas de computadores, os programas C e C++
podem executar multithreading usando bibliotecas de cdigo API especficas para o sistema.
O grfico da
Figura 14 mostra as diferenas entre o processamento na linguagem Java em comparao com
MVC++, o que neste exemplo provou-se que Java utilizando multithreading 23,55 % mais rpido do
que um programa de reconhecimento de fala programado em MVC++, sem utiliza qualquer biblioteca
tridimensional como Java 3D e WorldToolKit, e quando so utilizados estas biblioteca a latncia cai para
15,88 %.
Latncia de Execuo por Threads
1,0500 0,9451
0,8963
0,9000 0,7950
0,7500 0,6852
segundos
0,6000
0,4500
0,3000
0,1500
-
Reconhecimento de Fala puro Reconhecimento de Fala no
MVC++ 0,8963 0,9451
Java 0,6852 0,7950
Quando usado no sistema um fluxo de execuo com Sntese e Reconhecimento de Fala a latncia
ainda maior em MVC++ do que em Java como comprova o grfico da Figura 16
1,0151
1,2000
1,0500 0,9063
0,9000 0,7852 0,8950
segundos
0,7500
0,6000
0,4500
0,3000
0,1500
-
Sntese e Reconhecimento Sntese e Reconhecimento
MVC++ 0,9063 1,0151
Java 0,7852 0,8950
8 Resultados
Os resultados relevantes deste trabalho esto relacionados com a efetiva comparao entre as
bibliotecas de reconhecimento de fala incorporadas a ambientes virtuais.
Os resultados foram obtidos utilizando uma mquina Pentium Pro III, Intel, com 256 Mb RAM, sem
placa aceleradora, com as configuraes mais prximas das utilizadas na pesquisa de [BURDEA E
COIFFET (2001)], para tentar encontrar detalhes diferente incorporao do servio de fala ao
Ambiente Virtual.
Conforme foi exposto no Captulo 6 possvel notar que existe diferena de processamento de acordo
com a plataforma e sistema operacional que a biblioteca grfica utilizada.
Os testes foram executados na plataforma de 32 bits Windows 2000, e os resultados mostrado na
Figura 17, onde possvel notar que quando utilizado formas geomtricas nas duas bibliotecas Java3D e
WorldToolKit para carregar via comandos executados por meio de regras de gramtica, e o que foi
obtido que quando realizado o carregamento de uma forma geomtrica o WTK 2,13% mais rpido
do que o Java 3D, mas, quando utilizando um arquivo no formato waveform possvel notar que o Java
3D 7,78% mais eficiente do que o WTK.
Milessegundos
8.2 Taxa de quadros por segundo (Frame Rate per Second -FPS)
De acordo com [BURDEA E COIFFET (2001)] constam que o WTK ligeiramente mais rpido
que o Java3D, considerando que o nmero de polgonos mostrados no ambiente virtual seja entre 5 a
5.000, mas o que percebe-se quando incorpora-se o servio de reconhecimento de fala tem-se as
seguintes anlises a partir da Figura 19 e
Figura 20. Ambas demonstram que de acordo com o nvel de detalhamento do objeto virtual
possvel ter maior ou menor taxa de quadro por segundo.
O nvel de detalhamento dos avatares humanides foi percebido quando ouve uma distonia em relao as
taxas encontradas na Origem (0,0,0), a Frente (0, 0, -10) e Atrs (0,0,10). As localizaes descritas so
por [BARRILEUAX (2001)] como forma de ilustrao de uma coordenada virtual simulando um ambiente
real, e estas coordenadas tambm utilizadas no trabalho de [DAMASCENO (2004)].
Nmero de Frames por funo em
22,00 segundos (J3D)
Frames
20,00
18,00
16,00
Pular Sentar Andar Levantar
Origem 19,25 19,17 18,75 20,15
A frente 20,02 18,05 18,20 18,52
Atrs 21,29 20,52 19,95 21,45
Isto possvel pois os movimentos de sentar so simplrios, articulando poucos objetos, entretanto ao
comando levantar, como articula mais objetos possvel especular que de acordo com o nvel de
detalhamento e o volume de objetos sendo movidos ou renderizados e a utilizao da biblioteca de voz
possvel ter uma queda mensurvel em WTK mas a performance melhor de J3D, trazendo uma melhor
definio pela taxa de quadros por segundos.
A Figura 23 mostra o grfico comparativo de processamento a medida que a interface de voz
utilizada.
A preocupao com a interface de voz importante, devido ao fato do usurio no perder a imerso
com o sistema virtual. Na maioria das implementaes encontradas tais como a de [APAYDIN (2002)] e
de [MEIGUINS (2003)] utilizam o recurso de fala a todo o momento, criando uma sobrecarga no sistema.
Segundo [SUN (1998)], o mecanismo de reconhecimento e sntese de fala obedece a uma mquina de
estados e estes estados ou momentos segundo [APAYDIN (2001)] realizam a troca de mensagens
ocasionando na execuo de um comando ou o acionamento de um evento.
Para que haja a compatibilidade entre as bibliotecas de reconhecimento de fala, foi notado que os
mecanismos para que fosse possvel encontrar alguma semelhana na mquina estado e o que foi
encontrado reflete a seguinte operao demonstrada na Figura 17. A observao pertinente que esta
figura representa um conjunto dos estados observados nas duas APIs.
Segundo [SUN (1998)] quando um evento acionado ele fica alocado a uma fila associada a um
pacote, no caso da sntese de fala a fila est associada apenas ao pacote Java Media Framework o qual
aciona os eventos de som, entretanto no caso do reconhecimento de fala a fila est associada a plataforma
grfica AWT e por isso necessrio um sincronismo com a fila de eventos AWT. Para a implementao
do sincronismo da fila AWT de eventos foi utilizado o seguinte trecho de programa visto na Figura 22.
9 Concluses
Para a criao de um ambiente virtual totalmente imerso necessria a incluso de recursos multmodos de
interao e uma das formas mais acessveis de interao no convencional o uso da tecnologia de
reconhecimento e sntese de fala.
Para o desenvolvimento de aplicaes onde necessrio este recursos deve-se tomar algumas
precaues na escolha da plataforma de desenvolvimento, pois mesmo escolhendo uma plataforma em
detrimento de outra, pode-se observar que sempre existir restries de uso que podero ser notadas pelo
usurio, assim diminuindo a imerso do mesmo.
No mbito de se escolher entre plataforma este trabalho tenta demonstrar algumas caractersticas at
ento obscuras de duas linguagens de desenvolvimento. A linguagem Java e a linguagem C/C++.
Observando pela tica de paradigma de linguagem de programao, a linguagem Java superior a
linguagem C/C++, entretanto pela popularidade e acessibilidade da linguagem C/C++ pelos
programadores mundiais, esta linguagem dificilmente ser extinta.
Pelo mesmo prisma, ao observar que a linguagem Java se interage melhor com sua plataforma de
desenvolvimento de ambientes tridimensionais em Java 3D.
Da tem-se um paradoxo de que uma linguagem pr-compilada e interpretada poder ser mais rpida do
que uma linguagem compilada e executada.
Isso depende drasticamente do o estilo de programao adotado para o desenvolvimento da aplicao
computacional.
Quando se desenvolve em ambiente Java, que orientado a objeto, no h a necessidade de
preocupao com referncias ou mensagens, nem mesmo com o, lixo, pois as propriedades do Garbage
Colletction fazem com que a mquina virtual faa todo o trabalho rduo.
J quando esta se lidando com a programao diretamente com Windows atravs do MVC++
necessrio compreender como o sistema operacional trabalha simulando tecnologia de orientao a
objetos atravs das trocas de mensagens.
Alm do estilo de programao necessrio tambm retratar que Java possui uma forma diference no
carregamento de arquivos, comprovado pelas anlises do grfico da
Figura 17
Pode-se observar que o processamento do ambiente virtual em Java 3D mais rpido do que o
processamento em WorldToolKit como comprava a Figura 19 e
Figura 20, onde analisado o tempo de renderizao ou quadros por segundo (Frame Rate FPS),
onde tambm observado que Java perde menos recursos ao alocar um objeto virtual, no caso teste um
avatar humanide, em diferentes posies do espao virtual.
Quanto a questo da diviso do fluxo de execuo mais uma vez a linguagem Java imprime uma
vantagem sobre a linguagem C/C++, pois obtm cerca de 23 % mais de agilidade no processamento,
como provado no grfico da
Figura 14.
possvel obter maior processamento quando o fluxo divido entre a gerao do ambiente virtual e o
mecanismo de reconhecimento, isto tanto em Java quanto em MVC++, mas o ganho no to
compensador, esta vantagem pode ser vista na Figura 16.
O fato que mais denota a relevncia da pesquisa de que no necessrio adquirir um mecanismo de
gerao de ambientes virtuais como o WorldToolKit da Sense 8 para gerar um ambiente tridimensional
pois os recursos do Java 3D podem ser mais compensadores. Isto observado sobre a tica de anlise de
processamento. E quando necessria a incluso de recursos de reconhecimento e sntese de fala a perda
de desempenho de Java mais constante, o que pode significar que um ambiente virtual com
reconhecimento de fala desenvolvido em Java com a tcnica de programao correta tende a ter o baixa
latncia, isto comparado ao mesmo ambiente desenvolvido em MVC++ com WorldToolKit.
Bibliografia
TORTORA, G., 1990, Structure and interpretation of visual languages. In Chang, S.-K., editor, Visual
Languages and Visual Programming, Plenum Press, New York.
APAYDIN, O. Networked Humanoid Animation Driven By Human Voice Using Extensible 3D
(X3D), H-ANIN and Java Speech Open Standards. Naval Postgraduate School, Monterey,
California; 2002.
BREGA, J. R. F., SEMENTILLE, A. RODELLO, I. A., MELO, W. C. C. 2002, Uma Interface de
Reconhecimento de Voz para Movimentao de Agentes e Avatares Humanides em
Ambientes Virtuais, 6o.SBC Symposium on Virtual Reality.
BURDEA, G.; COIFFET, P. Virtual Reality Technology. New York: John Wiley & Sons, 1994
________, G.; BOIAN, R.F. WorldToolKit Vs. Java 3D : A Performance Comparison. CENTER
FOR ADVANCED INFORMATION PROCESSING, Technical Report CAIP TR-259, The State
University of New Jersey, New Jersey: 2001.
DAMASCENO, E.F. & BREGA, J. R. F.; "Implementao um ambientes virtual conduzido por voz
em Java, (2004) 4o.SBGames Simpsio Brasileiro de Jogos de Computador, Curitiva PR,
Outubro.
DAMASCENO, E.F.; BREGA, J. R. F., SEMENTILLE, A. RODELLO, I. A.; NUNES, F.L.S.M.
"Implementao de Servios de Voz em Ambientes Virtuais, (2004) Semana Acadmica do
CEFETIPI, Teresina PI, Outubro.
KRUGLINSKI, D. J.: Inside Visual C++, 4a Ed, Microsoft Press, New York , 1997.
MEIGUINS, B.S Et. Ali. Interao em Ambiente Tridimensionais Utilizando Comandos de Voz, in
Proceedings of Symposium on Virtual Reality, Ribeiro Preto, SP 2003.
OLIVEIRA J.C. Et Ali VIRTUAL THEATER for Industrial Training: A Collaborative Virtual
Environment, Canad, 2000, disponvel em www.mcrlab.uottawa.ca/papers/cscc2000-Joliveira.pdf
PIZZOLATO,E. B. e REZENDE M.N. Issues to Consider when Adopting Commercial Speech
Interface in Virtual Worlds, in Proceedings of Symposium on Virtual Reality, Ribeiro Preto, SP
2003.
PRESSMAN, R.S. Software Engineering: A Practitioners Approach, 5 ed. McGraw-Hill, New
York, 2002.
RODRIGUES, J.F. Estudo e Desenvolvimento de Aplicaes Java com Reconhecimento e Sntese
de Voz. Relatrios Tcnicos do ICMC. So Carlos, 2001
SEBESTA R. W. Conceitos de Linguagem de Programao. 4 ed. Editora Bookman, Rio de
Janeiro. 1996.
SHRIVER S. & ROSENFELD R. Keyword Selection, And The Universal Speech Interface Project,
disponivel em <http://www.cs.cmu/~usi,> Acesso em 20 jul. 2003.
TATHAM, M.. Speech Recognition. 1995. Disponvel em: <http://www.essex.ac.uk/
speech/teaching/erasmus /recognit.html > Acesso em 15 Jul. 2003.
VENNERS, B. Inside the Java Virtual Machine disponvel em:
<http://www.artima.com/insidejvm/ed2/ch05JavaVirtualMachine1.html> 2001, acesso em
01/02/2005
ZELTER D. & JOHNSON M. B. Interacting with Virtual Environments, Ed. John Wiley & Sons,
New York, 1994