Recently I've been working with some technologies to take HTML and XML information from the Web [see "Access the World's Biggest Database with Web DataBase Connectivity" (JavaWorld, March 2001)]. It occurred to me that I could plug that work and this idea together to build a talking Web browser. Such a browser would prove useful for listening to snippets of information from your favorite sites -- news headlines, for example -- just like listening to the radio while out walking your dog or driving to work. Of course, with current technology you'd have to carry around your laptop computer with your mobile phone attached, but that impractical scenario could well change in the near future with the arrival of Java-enabled smart phones like the Nokia 9210 (9290 in the US).
Perhaps more useful in the short term would be an email reader, also possible thanks to the JavaMail API. This application would check your inbox periodically, and your attention would be attracted by a voice from nowhere proclaiming "You have new mail, would you like me to read it to you?" In a similar vein, consider a talking reminder -- connected with your diary application -- that shouts out "Don't forget your meeting with the boss in 10 minutes!"
Assuming you're sold on those ideas, or have some good ideas of your own, we'll move on. I'll start by showing how to put my supplied zip file to work so you can get up-and-running straightaway and skip the implementation details if you think that's too much hard work.
To use the speech engine, you'll need to include the jw-0817-javatalk.zip file in your CLASSPATH and run the com.lotontech.speech.Talker class from the command line or from within a Java program.
To run it from the command line, type:
java com.lotontech.speech.Talker "h|e|l|oo"
To run it from a Java program, simply include two lines of code:
com.lotontech.speech.Talker talker=new com.lotontech.speech.Talker();
talker.sayPhoneWord("h|e|l|oo");
At this point you probably wonder about the format of the "h|e|l|oo" string you supply on the command line or provide to the sayPhoneWord(...) method. Let me explain.
The speech engine works by concatenating short sound samples that represent the smallest units of human -- in this case English -- speech. Those sound samples, called allophones, are labeled with a one-, two-, or three-letter identifier. Some identifiers are obvious and some not so obvious, as you can see from the phonetic representation of the word "hello."
Here is a list of the available allophones:
chance to enhance for public welfareBy Anonymous on February 4, 2010, 2:30 amHi.. I have an idea in mind to enable reading out articles published on websites in user's own language. Probably a translator for multi lingua support and phonetics...
Reply | Read entire comment
Really cool!By Anonymous on January 8, 2010, 3:13 pmHi! this is very great! I hope it's no problem that I modified this a bit for my Amstrad CPC emulator. (I am now also emulating speech hardware with it) - Pseudo...
Reply | Read entire comment
nice article and enlighteningBy Anonymous on December 11, 2009, 5:38 pmNice article, i wonder now tha we have plenty of smartphones in the market these type of apps donīt seems to be very common yet. It would be great to know wether...
Reply | Read entire comment
GoodBy Anonymous on June 3, 2009, 4:21 amVery good job
Reply | Read entire comment
View all comments