Straight VoiceXML vs. Windows Workflow

There is an interesting post over on GotSpeech.NET (VXML vs. Workflow for Speech Server 2007) that compares speech devolvement using VoiceXML vs. the Windows Workflow model available in Speech Server 2007. 

Given that most of my work building applications in C# and ASP.NET for the Nuance Voice Platform (NVP) I’ve got quite a lot more experience with VXML than Workflow (or SALT). I partially disagree with him when he sites a "longer development cycle" with VXML. It is all about familiarity with the language and platform. But for the most part I think he makes good points.

I think the Workflow model is interesting but I’m wary of tying myself to a single voice platform. I much prefer the flexibility of moving between Nuance, Microsoft, Voxeo, etc. as needed. Each platform brings a different strength to the table and it seems like a bad idea to limit my options at this point.

VoiceXML with Visual Studio

Every so often I’m surprised by the incredible flexibility built into Visual Studio 2005.

I’ve been writing a lot of VoiceXML lately and I was really missing the intellisense that I’ve become so used to. On a whim I tried opening a VoiceXML document in Visual Studio and much to my surprise it worked!

It turns out that Visual Studio is capable of understanding the syntax of a document based on it’s DOCTYPE. In my case it saw <!DOCTYPE vxml PUBLIC "-//W3C//DTD VOICEXML 2.1//EN" "http://www.w3.org/TR/voicexml21/vxml.dtd"> and was able to automatically give me basic intellisense and syntax checking for VoiceXML version 2.1.

As an example, create a new XML document and insert the following:

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE vxml PUBLIC "-//W3C//DTD VOICEXML 2.1//EN" "http://www.w3.org/TR/voicexml21/vxml.dtd">

<vxml version="2.1">
</vxml>

You’ll notice that the last element (</vxml>) gives you a warning. Hovering over it tells you not only that your missing an element but what the valid elements might be!

This is all very cool if you ask me…