June 23, 2003
BeVocal vs. TellMe

While porting SoccerPhone from TellMe to BeVocal, I ran into a couple differences between the two as a development environment and a deployment environment.

Porting Code from TellMe to BeVocal

The porting process went pretty quickly. Fortunately, the Python CGI scripts didn't have to change. Three cheers for standards and for application communication via XML over HTTP.

VoiceXML Changes

  • Add DTD DOCTYPE to all vxml files so that VoiceXML syntax checker can check for well-formedness
  • Must use the BeVocal DTD if using any BeVocal extensions, like the data tag or bevocal:foreach tag
  • audio tag must have an attribute like src.
  • break tags must be inside prompt tags

Although TellMe also offers a VXML syntax checker, it assumes you are using their DTD. I haven't tried it with a different DTD, yet, to see if it would actually use it. I like the fact that BeVocal requires it, since it forced me to identify which parts of my code were non-standard.

TellMe also supports the data tag and the foreach tag. The data tag is really cool, as it allows you to return an XML document from a CGI script or a servlet (anything on the other side of an HTTP GET). I hope it makes it into the VoiceXML 2.1 spec.

Tellme allows you to treat an audio tag like a prompt tag and does not require that break tags be inside a prompt. I think BeVocal's stricter interpretations of the spec are correct.

Grammar File Changes

Both TellMe and BeVocal support Nuance grammar files. I had already decided that I would switch over to the standard SRGS XML format as part of the move to BeVocal. My grammar file wasn't that complicated, but the lack of good examples for a simple SRGS XML grammar made it far too arduous. I have posted on the SoccerPhone SourceForge project site the source code for both the TellMe code (GSL grammar) and the BeVocal code (SRGS XML grammar) as part of release 0.2

BeVocal requires an xml:lang attribute for a grammar, even if it is a dtmf grammar for which that tag is ignored. I haven't read the SRGS spec closely enough to know if this is an error in their implementation or an oddity of the spec. Also, if I had stuck with Nuance grammar files, I would have needed to specify the grammar type as type="application/x-nuance-gsl" instead of "application/x-gsl".

JavaScript Changes

Fortunately, the change was simple. The BeVocal JavaScript interpreter didn't allow the DOM function getElementsByTagname() to take two arguments. The TellMe interpreter let me pass in a second argument, even though I'm pretty sure that was just a mistake on my part. I assume their interpreter just ignored the extra argument. My experience with both SoccerPhone and PhoneBlogger has been that the most painful part of development has been writing JavaScript code to parse XML files.

Development Tools

Both sites have really nice on-line development and debugging tools. Right now, I can't say that I have a clear favorite. The TellMe seems a little more cohesive, but the BeVocal site seems more up to date. The TellMe development tools (at least the free, online ones) have improved in only a few, minor ways in over a year.

The BeVocal Vocal Debugger looked pretty cool, but I didn't spend much time with it, as the Trace Tool was sufficient for me to find all the problems.

Text To Speech

TellMe is the big winner here for using AT&T Natural Voices. It is far superior to whatever BeVocal is using. In addition to the superior sound quality and accuracy, the TTS engine on Tellme is better at guessing context. The best example is "minute". Let's say a game is in progress in the 47th minute. After reading the score, I have SoccerPhone say "minute 47". BeVocal's TTS engine pronounces it as "my-nyewt", as if it were something small. TellMe's TTS engine pronounces it correctly.

Posted by Robert at 08:34 AM | link | comments (0) | trackback (0)
June 16, 2003
SoccerPhone 0.2

I just published the 0.2 release of SoccerPhone to the SourceForge project site. The main two features of this release are:

  1. Support for the 2003 version of the MLS live scores page
  2. Support for BeVocal as well as TellMe as a VoiceXML gateway

I had always wanted to port SoccerPhone to another VoiceXML Gateway, but never had a strong enough need to prioritize that activity over other critical activities, like going to actual soccer matches. Well, that changed when TellMe dropped support for application extensions. I tried out Voxeo as well, but ran into a lot of problems just trying to get a simple VoiceXML application working.

Posted by Robert at 09:50 PM | link | comments (0) | trackback (0)
June 06, 2003
No More Byron Moreno to Kick Around Yahoo! Sports

Well, we won't have Byron Moreno to kick around anymore. He's decided to retire before getting kicked out by FIFA.

After making several shockingly bad calls against Italy during the Italy-South Korea match in the 2002 World Cup, Mr. Moreno kept the controversy fire roaring in an Ecuadorean league game later in 2002. He added over ten minutes of injury time to the game, while officially recording that the game went only the regular 90 minutes. Liga de Quito scored in the 99th and 101st minutes to come from behind and win 4-3. At the time, Moreno was running for a city council position in Quito. This earned him a twenty match suspension.

In his third match after serving the twenty match suspension, he sent off three players for Deportivo Quito in their match against Deportivo Cuenca. This earned him yet another suspension.

MLS has some pretty mediocre refs, but I don't think I have ever heard of a professional ref as bad as Byron Moreno. Goodbye, good riddance.

Updated June 10, 2003: Sports Illustrated just ran a story on Moreno's retirement. Not much in the way of additional info, other than some quotes from Moreno.

Posted by Robert at 06:18 PM | link | comments (0) | trackback (0)
June 02, 2003
PhoneBlogger Documentation Update

While helping someone else setup their own install of PhoneBlogger, I realized that I had never gotten around to publishing much installation documentation on my website. The previous publicly available documentation was very sparse, as in the sense of providing virtually no clue as to how to install the dang thing. Well, I have mostly remedied that.

Posted by Robert at 10:47 PM | link | comments (0) | trackback (0)
Archives
June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 June 2002 May 2002
Recent Entries
BeVocal vs. TellMe SoccerPhone 0.2 No More Byron Moreno to Kick Around PhoneBlogger Documentation Update
Stories
The Carefree VII Incinerating Toilet, from Incinolet To Catch a Falling Knife
Categories
Arts and Education
Blogging and RSS
Entertainment
Everything Else
Food and Drink
Intellectual Property
Linux
Mac
Music
PhoneBlogger
Privacy and Security
Reviews
Soccer
SoccerPhone
Software
Speech
Tahoe Cabin
The Unusual and the Weird
Treo 600
VoiceXML
VoIP
Repartee welcome at: Mail To