- 1 Motivation
- 2 How To Do
- 2.1 Scenario
- 2.2 Prerequisite
- 2.3 Download Prophecy
- 2.4 Installation Prophecy
- 2.5 Testing Prophecy
- 2.6 Download SAPRFC for PHP
- 2.7 Configuration SAPRFC for PHP
- 2.8 Restarting Prophecy
- 2.9 Checking SAPRFC for PHP
- 2.10 VoiceXML, PHP and SAP
- 2.11 Testing an example on the same machine with Prophecy
- 2.12 Testing an example on the other machine
- 3 Source Code Brief Explanations
- 4 Case Studies
- 5 Conclusion
- 6 Asking for a help
- 7 Next Weblog
- 8 Bibliographies
If you want to make your hands dirty right now, please go to the chapter 2 How To Do rather than read the chapter 1 Motivation.
You can listen to my recorded mp3. VoiceXML_PHP_SAP_20060804.mp3
After reading and practicing this weblog, you can get answers of the following questions.
- Is it possible to practice VoiceXML stuff on my computer?
- Do I really make a call whenever I test my VoiceXML application?
- Is there any free/demo version that I can build the entire voice technology stuff?
- How can I integrate Voice technologies with SAP system?
- What are VoiceXML, CCXML, callXML about?
- I have no idea about voice technology, but my supervisor forces me to develop VoiceXML applications. How can I start?
- Is it really difficult to build the applications related to Voice technologies?
- By the way, How can my organization use these technologies?
Are You A Digital Native Or Digital Immigrant? Believe or not, when elders are trained to use the computer or the Internet, the most difficult task is Double clicking. It’s surprising, isn’t it? Ironically whether I am a digital native or digital immigrant, I have been trained for how to use the digital devices.
Due to pervasive VoIP applications and mobile phones, I am getting familiar with Voice Interface as a communication method toward digital devices/systems.
Voice is the human beings basic communication method between people. How about between human being and the system for instance, the computer?
By using voice technologies and multimodal applications, some business process steps and prcessing time can be reduced (Marc Erich, 2005). Furthermore, training of how to use is not required as much as it used to be. From the developer point of view, Is it mature enough to learn and apply to the real business case? Please, feel free to vote your opinion(before reading this weblog).
Some case studies are mentioned at the end of this Weblogs.
When you start to learn some technologies, you face many new special terms. For example,
- VoIP: Voice over Internet Protocol , Mobile VoIP
- SIP: Session Initiation Protocol
- WSIP: Web Service SIP (Feng et al., 2004)
- VoiceXML: http://en.wikipedia.org/wiki/VoiceXML
- CCXML: Call Control eXtensible Markup Language
- ASR: Automatic Speech Recognition
- TTS: Text To Speech
- Text To Speech: In the past, Voice technologies emerged as a speaker of text such as reading a book.
- Interaction with human being: As Voice Recognition technologies has been developed, large organizations started to adopt these in order to automate some business processes such as answering/transferring a call and interacting customers requirements.
- Advisor based on KM, BI: Based on the users input or situation, the system not only answers the question but also gives a certain advice.
- Multimodal Artificial Intelligence under Heterogeneous ERP systems: Through EAI, the system collects information within enterprise wide level easily and responses intelligently with various channels.
Recently, SAP announced SAP NetWeaver Voice. When I saw it, I was excited but few minutes later I realized it looked like Pie in the Sky. My eyes and my brain were happy but my fingers and my mouth were not happy. I researched, googled and tested How I can make my hands dirty and my mouth melting. Finally, I could manage to this weblog with VoiceXML engine, VoiceXML applications and PHP + SAP from the beginning to the end in orde to share my experiment with you.
This is a simple imagination scenario.
The Victoria University has a voice clock-in/out system for mobile workers.
In the morning, DAVID calls to the system, logs on to it as a clock-in and gets the list of tasks for today.
The following diagram shows the overview of system structure for this demo.
[SJphone] [FPG518-03] [NW04SHOST] [FPG518-01]
You should have SAP Web Application Server on ABAP for this demo. If you dont have it, please go to here http://www.sdn.sap.com/irj/sdn/downloaditem?rid=/library/uuid/cfc19866-0401-0010-35b2-dc8158247fb6 and get Full ABAP Edition-Trial.
Go to http://www.voxeo.com/prophecy/ and download Prophecy 7.0 GA (build 160) – 387mb download with ASR + Best quality TTS (requires 1GB of RAM) (I havent tried the others.)
After you install prophecy-126-large-tts.msi successfully, it leads you to the new website that looks like the following screenshot.
Firstly you need to get 30 days free license key by clicking Registration  link. You may need to register http://evolution.voxeo.com/ . Related to installation steps, they are quite straight forward so I dont explain them here. For your further learning, please visit Documentation  link.
By clicking Quick Start Guide , you will see how to do for a Prophecy quick test.
Fortunately the built-in PHP version of Prophecy is 5.1.1. Therefore you can use saprfc-1.4.1-5.1.1.Win32.zip. You can download from here http://sourceforge.net/project/showfiles.php?group_id=29190
- Copy C:Program FilesVoxeowwwsaprfcphp_saprfc.dll to C:Program FilesVoxeo
- Edit C:Program FilesVoxeophp.ini file. Add extension=php_saprfc.dll in the 598th line.
After you run this URL http://127.0.0.1:9990/phpinfo.php , in the middle of page you should see the following screenshot related to saprfc information.
And when you click http://127.0.0.1:9990/saprfc/saprfc_test.php, you also should see the web page like this image . If you get some errors, please refer to the Scripting Languages for a help. And there are Weblogs related to PHP and SAP related to PHP + SAP.
If you followed the previous steps without any problem, you are ready to have an exciting experience.
I created and copied from BCUSER to DAVID in the client 000. Therefore in the client 000 there are BCUSER, DAVID, DDIC, and TMSADM users.
“DAVID” is more human friendly than “BCUSER”. The machine speaks out “BCUSER” as “B C U S E R” rather than “BC ~ user”.
- Download http://mobilian.org/SDN/test_vxml.phps and save it as test_vxml.php under C:Program FilesVoxeowwwsaprfc. You should customize the connection details of your own SAP Web AS.
- Go to Prophecy Management Console http://127.0.0.1:9995/mc.php .
- Click Call Routing menu on your left hand side.
- Change Route 7 values. For instance,
Route 7 URL: http://127.0.0.1:9990/saprfc/test_vxml.php
Route 7 Type: VXML
In order to access to the Prophecy system from other computers within my network, my own public IP address was typed (If you want to do this, you can logon to the Prophecy Management Console with your own public IP address).
- Save the change by clicking button.
In order to call to the Prophecy system, you need to run Voxeo SIP softphone.
- Go to Start-Programs-Voxeo-SIP Phone
- Or type prophecy run phone on the command window.
- In the Dial String field, Enter sip:email@example.com 
- Click Dial button 
You can listen to my recorded mp3 to compare to yours. VoiceXML_PHP_SAP_20060804.mp3
If you want to access to the Prophecy system from the other machines, the prophecy system should have the public IP address or the network IP address(not 127.0.0.1).
And you need to prepare for Voice Over IP Phone such as SJphone (or copy Voxeo SIP softphone).
- Go to http://www.sjphone.org/sjp.html and download SJphone for Windows (XP/2000/ME/98, v.1.60.289a, 06.19.05)
- Install it and run it.
- Before you test a demo, I strongly recommend you to run Audio Wizard.. in order to tune the softphone audio settings.
- Enter the SIP address of a demo . E.g.sip:firstname.lastname@example.org
- Click the dial icon .
Actually, I planned to test it through my old PDA (Pocket PC Windows CE version 3.0) under the wireless network. Unfortunately SJphone is only available for Pocket PC 2003 or higher. However I believe some readers of this weblog can have an experiment with it. Please feel free to share your experience.
After SAPRFC connection is okay, the following source code will create the list of SAP user in the client 000.
BCUSER | DAVID | DDIC | TSADM
Id like to demonstrate two different types of grammar format in this demo.
This is a Java Speech Grammar File format.
Krishnakumar wrote the excellent weblog VoiceXML with XI: Speak out loud so you could be heard that explained VoiceXML very well.
and you see another example of JSGF
This is a grXML Grammar File format.
For more information, please refer to http://docs.voxeo.com/voicexml/2.0/ and http://www.w3.org/Voice/2003/srgs-ir/
You can search many case studies connected to VoiceXML easily however I list some topics which I was impressed by. Some case studies can be out of VoiceXML technology range, but I think they are still good to read for the future.
- SNOW-Services for nomadic workers-(CHEVASSUS, 2005) project aims to support nomadic workers in their performance of maintenance and production tasks. Aeronautic maintenance business was selected to conduct this project. Speech, gestures and handwriting were considered as various input modes.
- Mikael Drugge et al. (2006) conducted the research related to nursing home care. By using multimodal applications, the nurses can simplify their works such as notes taking for patients status and inserting new tasks into their schedules or their chart.
- IBM and Teges Corporation built the speech-enabled applications at Miami Children’s Hospital in 2005 (Owens, 2005). These applications were implemented into the areas such as a Cardiac Intensive Care Unit (CICU), an Operating Room (OP) where the clinicians’ hands are busy with surgery or other tasks or they cannot access to computers due to hygienic issues.
- The multimodal application was successfully tested in the warehouse environment by SAP (Samir and Janaki Mythily, 2006). The multimodal inputs and outputs helped increase the warehouse workers productivity.
In the I Robot movie when Detective Del Spooner went outside, he met a FedLx Robot.
and while he was driving a car (?) he tried to access to U.S. Robotic system by his voice command.
Doctor Susan Calvin tried to play music through a JVC audio player by her voice command Play.
VIKI: Virtual Interactive Kinetic Intelligence is everywhere inside U.S.R organization. I think this is a kind of Multimodal Artificial Intelligence product for Heterogeneous ERP systems.
Well, most of cases look too expensive to build up right now. However after you completed this demo, you can feel how easy they are(?). Certainly I can imagine the useful business cases such as employee clock-in/out, automation of answering a call and transferring a call. Many call centres started to get benefits from this kind of technologies already.
To sum up, a lot of voice technologies are out there. Unfortunately we got some trouble to practice them on our development environment. With Prophecy, PHP and SAP Web AS, we can make our hands dirty easily without special costs (domestic phone call, international phone call or license fee). Whether the organization is large or small, I believe voice technologies can reduce the business cost and provide better services to employees and customers as well.
If you are interested in them, I strongly recommend visiting the website. http://www.kenrehor.com/voicexml/
If you want to implement Voice Service into your organization, have a close look at the section VoiceXML Voice Service Providers and VoiceXML-based Deployed Applications.
I dont think in the world there is only one language. In this Ken Rehor’s World of VoiceXML website, at the VoiceXML Development Tools section, most of tools are based on English (maybe or maybe not).
Id like to make a table that sorted by each language (if possible). so I ask you for a help (I guess this is an advantage of international SDN).
|Korean||Korea Telecom||VoiceXML 1.0, PC-base VoiceXML Tool,||2006.08.11/David Kang|
|Korean||Widerthan||VoiceXML 1.0, PC-base VoiceXML Tool, Test phones don’t work.||2006.08.11/David Kang|
|Lanuage||many companies||I’m waiting for you ^__^||yyyy.mm.dd/contributor|
- CHEVASSUS, N. (2005) SNOW Services for nomadic workers. EADS Corporate research Center W3C Seminar – 21st June 2005.
- DRUGGE, M., HALLBERG, J., PARNES, P. & SYNNES, K. (2006) Wearable systems in nursing home care: prototyping experience. Pervasive Computing, IEEE, 5, 86-91.
- FENG, L., WU, C., LI, L. & LI, J. (2004) WSIP – Web service SIP endpoint for converged multimedia/multimodal communication over IP. Web Services, 2004. Proceedings. IEEE International Conference.
- MARC ERICH, L. (2005) A user interface framework for multimodal VR interactions. Proceedings of the 7th international conference on Multimodal interfaces. Torento, Italy, ACM Press.
- OWENS, S. (2005) New Operations in Speech. Speech Technology Magazine, September/October 2005, 28.
- SAMIR, R. & JANAKI MYTHILY, K. (2006) Multimodal warehouse application. interactions, 13, 34-37.
- SCHULZRINNE, H., XIAOTAO, W., SIDIROGLOU, S. & BERGER, S. (2003) Ubiquitous computing in home networks. Communications Magazine, IEEE, 41, 128-135.
How about now? What do you think of Voice Technologies? please vote your opinion (After Reading Weblog)