Voice Communications in Virtual Reality Environments
Software Engineering Technology
Phone: 1 601 544 7184
Fax: 1 601 266 5717
Construction Engineering Technology
Phone: 1 601 266 6419
Fax: 1 601 266 5717
Abstract: Current users of Virtual Reality (VR) Environments distributed over the Internet, communicate among themselves using text-chat. Text-chat is a slow communication process, which distracts the users from their main task in the VR environment. The primary goal of this paper is to describe a project that focused on the creation of an interface that allows voice communication among VR users. The resulting interface from this project allows anyone using a VR Environment over the Internet to logon to a voice communications server from anywhere in the world. The users are able to communicate without having to install new software on their computer. This type of communication is expected to foster people’s abilities to share their ideas and solutions to problems in research, education, and/or professional environments anywhere on earth where there’s a computer with Internet access.
Keywords: Virtual Reality, Voice Communications, Voice Chat, Voice Communications Server.
1- Background of Communication Problems in VR Environments
Virtual Reality (VR) Environments such as Active Worlds, Cybernet Worlds, and Chat in 3D Worlds allow users to communicate through text-chat [ActiveWorlds 2003, Cybernet Worlds 2003, Chat in 3D Worlds 2002]. During the text-chat, the average person is able to type about 30 to 60 words per minute, while someone speaking can say 300 to 400 words per minute [Environmental Data Systems 1995]. Thus, it can be seen that text-chat compared to voice communications is much slower and time consuming. Another point raised about text chat is an increased difficulty in expressing an idea, because end-users do not take the time to type in every little detail about the message they are trying to point out. Additionally, during text-chat users cannot express degree of emphasis by inflection or intonation since voice is not present. Therefore, text-chat has the potential to reduce the amount of interaction between users.
Additionally, most of the interaction between the users and VR Environments are through devices (such as: mouse, keyboard, joystick, pen, etc.) operated with the users’ hands. Therefore, text-chat limits the users’ capability to communicate their ideas while performing other activities within the VR Environment such as: interacting with objects, navigating and/or pointing out particular aspects of the VR Environment to other people. For example, text-chat limits architects, engineers and/or constructors abilities to describe the main components of a building during a Virtual Reality walk-through. Thus, architects, engineers and/or constructors equipped with a microphone head set will be able to communicate by voice while using their hands to focus on the interaction in the VR Environment.
2- Primary Objective of Voice Communications in a VR Environment
The primary goal of this paper is to describe a project that focused on the creation of an interface that allows voice communication among VR users. This project augments the existing text-chat capabilities in VR environments by making the interaction among users more natural. The migration from text-chat to a more natural communication such as voice is a developing trend on the Internet. Jack Woodall supports this with the statement that “Sound & image are the natural means of human communication, not writing. Therefore voice should eventually replace text on the Internet” [Healthnet Medical Discussion 1999]. Additionally, the author believes that this interface will foster interaction among VR Users. The development of voice communications in VR has the overall effect of being a training tool in everyday situations, which will eliminate the users need to convert their thoughts into text format.
3- Approaches to Establish Voice Communications in VR Environments
During the experimental stages of this project, several problems were encountered during the implementation of voice communications in VR Environments. Two of the unsuccessful approaches are briefly described in this section of the paper. These problems are not intended to discourage other researchers from exploring further those approaches. These problems are presented as a background to support the final approach used by the author to establish voice communication in VR Environments.
The first approach explored the development of scripts using a language such as PERL or JAVA. Clicking on an objective within the VR environment would activate these scripts. Upon activation, these scripts would display a list of commonly available voice communicators such as: Yahoo Instant Messenger [Yahoo Messenger 2003], AOL Instant Messenger [AOL Instant Messenger 2003], and Microsoft Instant Messenger [MSN Messenger 2003]. Then the user had the option to select one of the voice communicators from a drop down list box. Finally, another script would execute the selected voice communicator automatically, which is located on each individual’s machine. Although, this approach would take advantage of commonly available voice communication software, it was found that, due to security reasons, the operating systems do not allow web scripts to run applications located on the users’ computers. Technical experts in the field of programming and networking were inquired regarding this issue and they concurred that this approach was a security threat, due to the fact that it could be used to activate viruses on the users’ computer [Expert Exchange 2003]
The second approach was to compile on the server (where the VR environments are located) most of the commonly available voice communicators (or provide direct link to the voice communicators web sites). The links to the communicators would be provided within the VR environment. The user would click on the link, which gives the option to select one of the communicators. Then the user had to install the communicator on his/her computer. Similarly to the previous approach, this approach would take advantage of commonly available voice communication software, but it would require the user to go through the setup process every time a voice communicator was selected. This repetitive setup and installation process would have defeated the purpose of reducing users’ downloading and installation of software applications. Additionally, with this approach the administrator of the VR environment would not have any control over who uses the voice communicators.
The approach used was to manage a server side voice communication application. The voice communication application was linked to an object within the VR environment. Clicking on an objective within the VR environment activated the communication application. Upon activation, a logon screen appears which gives the user the opportunity to enter login information and establish voice communication with any of the authenticated users. All of these operations are web-based programs running the communications application on the server side. This approach provides easier accessibility and control for the user and administration. Although, this approach was the one that was finally implemented it did not come without difficulties. The main difficulty was the application’s incompatibility with newer versions of PHP. The reason behind this problem was that the communication application was originally written with global variables, instead of the new super global variables, which were designed for security reasons [Foxserv 2002]. This problem resulted from the default PHP installation and configuration, which sets up an INI file with global variables = off. There were two possible solutions to this problem. The first possible solution was to go through all of the communication application PHP code and change from global variables to super global variables. The second possible solution (which was the one implemented by the author) was to change the INI file and turn on the variables in the “System32 Registry” of the Windows operating system [Foxserv 2003].
It can be observed that voice communication for VR environments could be accomplished using different approaches after solving the challenges presented in each approach. However, it was not the objective of this project to explore solutions for each of the approaches. The objective of this project was to identify and implement one successful approach, which will be described in the following section.
4- Solutions to Embed Voice Communication Links in the VR Environments
This project allows voice communications among users of VR Environments distributed over the Internet in a user-friendly environment. The way the users interact in the VR environment is to select a VR object such as a headset or a phone, which when clicked calls up the voice communications application located on the server. Once the users are linked to the voice communications server, they are prompted to provide login information. This is followed by a system verification process, which authenticates the users’ information and then grants access to establish voice communications with other users currently interacting in the VR Environment.
To establish the voice communication in Virtual Reality environments distributed over the Internet the following components were considered: 1- Server hardware set-up and specifications, 2- Server software set-up and specifications, 3- Integration of the communications software and VR Environment. Following is a brief description of these three components.
4.1 Server Hardware Set-up and Specifications
The communication server (hardware) used during this project consisted of an Intel Pentium 4 Processor, which runs at a speed of 2.66 GHZ. The system has a 512 MB of RAM running at 333 MHz along with a 60 Gigabyte Ultra ATA/100 7200 RPM Hard Drive. The computer comes equipped with a SoundBlaster Live 5.1 Digital Sound Card, along with an Integrated Intel Pro 100 M PCI Ethernet Network Card. This gives more than the needed power to run a voice communications application and VR Environment from a web server that requires speed or memory.
4.2 Sever Software Set-up and Specifications
The operating system used for this project was Microsoft Windows XP Professional with IIS 5.0 (Internet Information Services 5.0) as the web server software. The IIS 5.0 web software configures the server and installs a directory on the hard drive that allows connectivity to the Internet by way of Port 80. The voice communication application files are stored in the root directory created on the hard drive. After the IIS web server was setup, PHP (Hypertext Preprocessor) was installed, which is a server side scripting language that is embedded into web pages. The reason PHP needs to be installed is to allow support for the voice communications software, because the software was written in PHP code. The INI files were changed to support global variables = on [Foxserv 2002].
The voice communication application implemented in this project (Voiceweaver by StreamComm) is based on Microsoft’s technology. Voiceweaver software [StreamComm 2003] allows members to access the communications server through the use of PHP, which is a scripting language that produces Dynamic HTML web pages. One current limitation of this software is that it only works on Windows 95 and later operating systems. Future work could be geared towards testing the functionality of the voice application software [StreamComm 2003] on other types of operating systems such as Linux.
4.3 Integration of Communications Software and VR Environment
With hardware and software installed in the communication server, the next step was to integrate the voice communication software into the VR environments. Thus, it is required to explain the integration from two perspectives: 1- Voice Communications and 2- VR environment.
From voice communications software perspective, the equivalent to a hyperlink to the communications server was embedded into the VR environment. This allowed users to connect to the voice communications software in the server while interacting in the VR environment. Once the users visit the VR environment, they are asked to install a PHP plug-in on their computer to keep the voice communications between users secure from intrusion. This takes only a few seconds to install, and never takes place again as long as the plug-in is not deleted from the user’s computer. Once the plug-in is installed, a login window opens to give the user an opportunity to verify login information. Users of the voice communications application are assigned a username and password by the administrator of the web server. Figure 1 shows the web based login screen for the VR users. Another function of the voice communications application is the online administration function, which allows the administrator to logon from anywhere with Internet access. Administrators can add, change, or delete user accounts without having to actually be at the server. Figure 2 shows the web-based login and menus for the administrator. This gives remote accessibility to the administrator and user.
Figure 1. Users Web-based Login Screen to the Voice Communication Server
Figure 2. Administrator Web-Base Login Screen and Account Management
From the VR Environment perspective, the Virtual Reality Environments could have been created using any of the many available languages such as: VRML [Virtual Reality Modeling Language 1995] and/or Java 3D API [Java 3D API 2003]. The VR Environments could be also created with software applications such as 3D Studio VizR3 produced by Autodesk [3Dstudio Viz R3... n.d.], WorldToolKit produced by Sense8 [Sense8 2000], and/or Internet Scene Assembler (ISA) produced by Parallel Graphics [Parallel Graphics 2003]. The VR environment used for this project was a simple building that was created with ISA. In the building one of the objects served as the link to the voice communications server. Figure 3 provides a snapshot of the VR Environment used in this project.
The process to make an object serve as a link to the communication server is very simple and is as follows. The first step was to use Internet Scene Assembler (ISA) [Parallel Graphics 2003] to import a building or world. The second step was to place inside of this building or world objects such as a table, phone, chair, and any other items that deemed appropriate for the environment setting. Each object has certain characteristics and properties that can be changed, and one of them is the ability to embed addresses and parameters. Thus, the third step was to specify in the address section of an object, a file location to execute (Voice Communication Software) on the mouse click. With the parameters section a target value could be specified. With these functions the voice Communications software could then be executed from the server.
Another key aspect is for the end-user to be able to see the ‘virtual world’, which requires the user to download a Virtual Reality plug-in such as Cortona [Parallel Graphics 2003]. Once this plug-in is installed on the browser, it allows navigation of the VR world. Another way that would work uses Cortona Jet, which allows the ‘virtual world’ to be embedded in an HTML web page by using the Java language, which does not need a VR plug-in installed to be able to see and navigate through the ‘virtual world’.
Figure 3. Snapshot of the VR environment used for voice communication
5- Contributions of Voice Communications in VR Environments
There are many benefits available from this type of project; a more productive working environment that is easily accessible from practically anywhere there’s a computer with an Internet connection. Each user has voice access in a Virtual Reality Environment to discuss problems or solutions pertaining to their area of expertise. This is an actual VR world-meeting place used to gather and to communicate with more interaction than in a standard text-chat environment. The solution is for everyone to communicate with one another based on one voice software application that is remotely accessed without having to download different voice communications software. The embedding of the software in the ‘virtual world’ is the key component. Linking an object to the server’s various software applications through a Virtual Reality Environment is very beneficial.
Voice communications in a Virtual Reality Environment have the potential to enhance user’s online experience. Today’s youth spend hours in front of video games that are done in virtual reality. A learning environment created in a VR environment with voice communications and other activities dealing with education could lead to youth’s greater comprehension and understanding of educational materials. Voice communications in a VR environment could be used towards a more productive work, school, and research environment.
Another contribution is that the approach used during this project allows a person with basic computer knowledge and equipment to setup a web server and create ‘virtual worlds’ embedded in HTML along with voice communications application embedded into the VR environment. This would open the door to more creativity and extensive implementation of Virtual Reality environments. New discoveries of ways Virtual Reality could be used have endless possibilities. There would be the possibility of the Internet taking on a new look and new way of user interaction.
Currently, text-chat is the main communication avenue for users of Virtual Reality (VR) Environments distributed over the Internet. This report presents a successful approach to include voice communications in the VR environments. The approach presented is independent of software or language used to develop VR environments. One of the main advantages of the approach presented is that it does not require a user to download hardly any software to be able to communicate by voice. Additionally, a centrally located server provides the remote access to a user-friendly VR environment that allows voice communications for people all over the world while giving appropriate control to the administrator.
7- Future Extensions
In the near future the idea of voice communications in VR environments could go one step further with ‘avatars’ interacting with the ‘virtual world’ and opening up voice sessions with other ‘avatars’. This would take a great deal more research but would be something interesting to pursue.
Thanks are in order for the people who have helped
in steering this research project specially Professor Doris Kemp at the
3D Studio Viz
Active Worlds. (April 2003). Retrieved April 2003, from Active Worlds Web site:
AOL Instant Messenger, AIM Home Page. (2003).
Chat in 3D
Worlds. (2002). Retrieved
Worlds 3D Chat Community. (2003). Retrieved
Data Systems. (1995). Retrieved
Experts Exchange, Providing IT Information That
Foxserv, The Foxserv Project. (2002) Retrieved July 13, 2003 from the Foxserv Web site:
Medical Discussion. (1999). Retrieved
Java 3D API. (April 2003).
MSN Messenger. (2003).
Parallel Graphics, Internet Scene Assembler (July
Parallel Graphics, Cortona VRML Client. (July
Sense8. (2000). Retrieved
Web Wiz Guide, The Web
Development Site. (2001-2003). Retrieved
W3C, Virtual Reality Modeling Language. (April
Yahoo! Messenger. (2003). Retrieved