|
|
 |
Release Notes: BeVocal Café Version 2.3
Home >
Support
> Release Notes > BeVocal
Café Version 2.3
20 June 2002
This version of the BeVocal VoiceXML interpreter contains a large number of
changes for compatibility with the April, 2002 draft of VoiceXML
2.0 and related W3C specifications.
Major New Features
- We now support the April, 2002 Speech
Synthesis Markup Language (SSML) draft with support for tags like <voice>
, <prosody>
, <paragraph>
etc. See the documentation for these tags for further details.
- The interpreter now provides a dynamic JavaScript API for accessing SOAP
services. You can create a JavaScript proxy object for a SOAP service given
its WSDL or endpoint URL, then call its methods as if they were ordinary JavaScript
functions.
Potentially Breaking Changes
Some of the interpreter changes made for compliance with the VoiceXML 2.0 Last
Call Working Draft may cause changes in the behavior of existing applications.
We have called out all of those changes, however minor, in this section.
If you already have applications running on the BeVocal Cafe, you should read
through this section carefully to see whether your applications will need to be
modified to run on the new Cafe release. The most important changes are
listed at the top of each subsection, with minor ones at the end. Some of
the more complicated changes have links to the appropriate section of the VoiceXML
2.0 draft (e.g. §5.2
) for a more detailed information.
VoiceXML
- 4339 - Added the required attribute xmlns to the <vxml>
tag in VoiceXML 2.0 documents. You must set this attribute to http://www.w3.org/2001/vxml
in all VoiceXML 2.0 documents.
- 1405 - When an event is thrown during execution of a form in a VoiceXML 2.0
document, URLs in the handler for that event will be resolved relative to the
document containing the form where event was thrown rather than the document where
the handler resides (
§5.2 ). This can be very confusing. If you have a <catch>
handler in an application root that resides in different directory from your main
VoiceXML document, and if the main document throws an event that is caught by
the handler in the application root, URLs in the handler will be resolved relative
to the main document, not relative to the application root document where the
handler resides. This only applies to documents whose <vxml
> element has its version attribute set to 2.0 or greater.
- 1568 - Queued prompts are no longer played in the background during a <goto>,
<submit> or other operation that fetches VXML data, unless that tag
has a fetchaudio attribute or the fetchaudio or bevocal.fetchaudio.flushqueue
property is set. (
§4.1.8 )
- 3392 - When a <link expr="..."> is triggered, the expression
is evaluated in the context of the JavaScript scope containing the <link>,
not in the context of the currently active form item. (See the note at the
end of
§2.5 )
- 3908 - In a VoiceXML 2.0 document (when <vxml version="2.0">
), the telephone.disconnect.* and error.telephone.* events have
been changed to connection.disconnect.* and error.connection.*.
( §5.2.6
, §2.3.7.4
)
- 3919 - A field's type attribute no longer indicates an implicit
<say-as> type to use when speaking out the field's value. Instead,
it plays the field's value in normal TTS. You must now use the type
attribute of <say-as> for a type-specific readout of the value.
- 3924 - <return> now throws error.badfetch if both the
event and namelist attributes are specified. (
§5.3.10 )
- 3926 - In a VoiceXML 2.0 document, <
catch > with an empty event attribute (<catch event=""> )
is no longer allowed. If you want to catch all events use <catch>
or <catch event=".">. If the version is set to 1.0 you can still use
the BeVocal extension of an empty event attribute to catch all events;
however we encourage you to use the new <catch> syntax since it works
in both versions of our interpreter. (
§5.2.2 )
- 3927 - The allowed values for the bargeintype attribute and property
are now "speech" and "hotword". The old values "energy"
and "recognition" are no longer allowed. (
§4.1 )
- 3947 - The names in the namelist attribute of a form-level <filled
> must be the names of input items. The names of control items such as <block>
are no longer permitted in this list. (
§2.4 )
- 3949 - If the dtmf attribute of <
menu > is true and any of the menu's <
choice > tags have specified their own DTMF sequences to be something
other than "*", "#" or "0" an error.badfetch is thrown. (See "DTMF
in Menus" in
§2.2 )
- 3955 - JavaScript anonymous variables -- those defined using an assignment
statement (e.g. "a=3;") but not previously declared using the JavaScript var
declaration or a VoiceXML <var> or form item tag -- are no longer
allowed in VoiceXML 2.0 documents. They will cause an error.semantic
with an explanatory message. In VoiceXML 1.0 documents, these variables
are now created in the scope which contains the <script> in which
they are defined. Previously, we created them in the JavaScript "global"
scope, which was incorrect. (
§5.1.2 )
- 3958 - A <grammar> contained within a <link> , <field>
or <menu> cannot specify a scope attribute. This was never semantically
valid and we always ignored it, but we never treated it as an error until now.
( §3.1.3
)
- 4200 - <meta> now throws an error.badfetch at parse
time if both the name and http-equiv attributes are specified.
We previously did not notice this error.
- 4297 - The <vxml> tag no longer allows the base attribute
if the version is set to 2.0. Use xml:base instead.
- 4677 - The speedvsaccuracy property's default
value of 0.5 now maps to a Nuance rec.pruning setting of 800; it used
to map to 1200. This leads to much faster recognitions on large grammars
with very little loss in accuracy. If you if you were explicitly setting
speedvsaccuracy to a lower value to get better performance, you may want
to adjust the value you are using. A setting of 0.1 now maps to a rec.pruning
of about 200; it used to map to about 800.
Grammars
- The ABNF grammar parser used to silently ignore unexpected tokens.
It now treats them as an error, as it should. This can cause the parser
to detect errors in grammars that it used to parse successfully but incorrectly.
Enhancements
VoiceXML Interpreter
BeVocal Extensions
- We now allow the <audio>
tag to return a dynamically generated SSML
document. The uri which generates the SSML document can be specified via the bevocal:ssml
or bevocal:ssmlexpr attributes of <audio>. After the SSML
document is downloaded , its contents are inlined to the containing <audio>
tag. This feature allows for a flexible and fine-grained control over the dynamic
generation of prompts. See our <audio>
documentation for more details.
- We now allow you to switch the TTS voice and the voice for recorded <say-as>
output through the new property bevocal.voice.name . The available recorded
voices are bv_ann_en_us and bv_adam_en_us. See the documentation
for the property bevocal.voice.name
for more details.
- The new attribute bevocal:maxtimeexpr has been added to the <transfer>
and <bevocal:dial>
tags so that the maximum call time can be set at run time via a JavaScript expression.
- References to pre-compiled grammars can be now embedded into an ABNF grammar
by using the syntax $<compiled:/key> , where key
is the key for the pre-compiled grammar. The grammars can be pre-compiled using
the GrammarCompiler
tool.
- We now support a built-in airline grammar that recognizes major US airlines.
The syntax is <grammar src="builtin:grammar/airline" /> . See the
<grammar>
documentation for more details.
- We now support a built-in airport grammar that recognizes major US and international
airports. The syntax is <grammar src="builtin:grammar/airport" />.
See the <grammar>
documentation for more details.
- We now allow you to specify DTMF termination tones for the <transfer>
tag through a property. If the DTMF sequence matches the user input, the
<transfer> call is terminated. See the documentation for the property bevocal.transfer.terminatetones
for more details. This property is essentially a workaround for the fact
that our platform currently does not support DTMF grammras during a bridged call;
when that problem is fixed the property will be deprecated.
- The new attribute bevocal:expr has been added to the <property>
tag. The javascript expression specified is evaluated whenever the <property>'s
scope is reinitialized.
VoiceXML 2.0
- 3389 - <audio expr="..."> doesn't play any audio if the expression
evaluates to ECMAScript undefined. Previously this would cause
an error.semantic. For compability with previous releases, we also
play no audio if the expression evaluates to null, even though the specification
is silent on this issue.
- 3920 - <subdialog>
now has a srcexpr attribute that lets you calculate a subdialog's location at
run time.
- 3935 - The <metadata>
tag is now supported in VoiceXML and XML grammar files. It is intended for
including RDF metadata in formats like Dublin Core, but this is not supported
by DTDs. When we support schemas, we will support more flexible metadata.
( §6.2.2
)
- 3950 - <option>
now has an accept attribute specifying whether the generated grammar
matches the exact contents of the element's text or an approximate subset of it.
The default is approximate in VoiceXML 1.0 documents and exact
in VoiceXML 2.0 documents.
- 4187 - The <object> tag throws error.unsupported.object.
objectname if the object invoked is not a valid object and if the version
is set to 2.0. It still throws error.unsupported.object for version
1.0 documents.
- 4197 - Full control of base URLs is supported. In VoiceXML 2.0 and
XML grammar files, the <vxml> and <grammar> tags now allow
the xml:base attribute. ABNF grammars support the new base declaration.
The <meta> tag and ABNF meta declaration also allow you to
change the base URL, as long as it has not already been set via xml:base
. See the VoiceXML 2.0 draft (
§1.5.1 ), SRGS , and
the XML:BASE recommendation
for details.
- 3921 - The <choice>
, <link>
and <return>
tags now support the new eventexpr , message , and messageexpr
attributes.
- 3954 - The value of application.lastresult$ is set to ECMAScript
undefined when the interpreter enters the next waiting state. The value
is also set when a nomatch event is thrown (but not when noinput
is thrown).
- 3390 - If no grammars are active when input is expected in a <form>
or <menu>, an error.sematic is thrown.
- 3905 - Added aai and aaiexpr attributes to <transfer>
. The interpreter parses these attributes but does not yet actually do anything
with them at run time. In a future release, the value specified will be
used to fill in the UUI (User-to-User information) field for ISDN calls.
- 3915 - <transfer>
fills the shadow variables fieldname$.inputmode and fieldname$.utterance
when it is terminated by a user utterance or DTMF sequence.
- 3915 - The transferaudio attribute of <transfer>
is now supported. The audio source specified by the URI is played while the call
connection attempt is in progress.
- 3918 - The namelist attribute in <clear>
can now include variables that are not form item names. (
§5.3.3 )
- 3959 - The recorded audio stored in the field item variable of a <record>
item can now be played with <
audio expr="..."> . In our next release, <value expr="...">
will no longer be able to play recorded audio, to conform with the latest VoiceXML
2.0 draft (
§2.3.6 ).
- 4410 - The Content-Location HTTP header can now be used to specify
the base URL for a VoiceXML document. See
XML:BASE for details.
- 4473 - An error.noresource event is thrown if an audio input or
output resource is not available.
- <break>
now supports the "time" attribute. The value of the time attribute can
contain a "s" or a "ms" suffix.
- 4676 - We now support the DTD from the Last Call Working
Draft of VoiceXML 2.0. Use the Public ID "//W3C/DTD VoiceXML 2.0//EN" to
access it. Accessing it via URL from the W3C site without the Public ID
will not work, because the copy on the W3C site has a few errors.
Grammars
- 4192 - ABNF grammars now support MIME types on external URI references using
the syntax $<uri>~<type/subtype>.
- 4337 - XML grammars now support MIME types on external URI references via
the type attribute of <ruleref>.
Bug Fixes
Interpreter
- 4480 - <value expr="_prompt"/> or <value
expr="_dtmf"/> inside <enumerate> would cause some garbage TTS
output to be spoken. The TTS output is played fine now.
|