- From: Dave Burke <david.burke@voxpilot.com>
- Date: Tue, 12 Apr 2005 11:22:52 +0100
- To: "Dave Raggett" <dsr@w3.org>, <www-voice@w3.org>
Hi Dave,
You are right to conclude that references only work with <rule>s.
You could modify your grammar to work by doing something like:
<rule id="tens">
<tag>var $tens=0; var $units=0;</tag>
<one-of>
<item><token>twenty</token><tag>$tens = 20;</tag></item>
<item><token>thirty</token><tag>$tens = 30;</tag></item>
...
</one-of>
<item repeat="0-1"><ruleref uri="#units"/></item>
<tag>out = $tens + $units</tag>
</rule>
-- Dave
----- Original Message -----
From: "Dave Raggett" <dsr@w3.org>
To: <www-voice@w3.org>
Sent: Tuesday, April 12, 2005 11:02 AM
Subject: Using SI with one-of in SRGS?
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I have a question on using Semantic Interpretation for
> Speech Recognition with SRGS one-of elements:
>
> I am working on a speech recognition extension for the Firefox
> browser, and to test my understanding have put together a grammar
> for numbers, e.g.
>
> <rule id="units">
> <one-of>
> <item>one</item>
> <item>two</item>
> <item>three</item>
> <item>four</item>
> <item>five</item>
> <item>six</item>
> <item>seven</item>
> <item>eight</item>
> <item>nine</item>
> </one-of>
> </rule>
>
> <rule id="tens">
> <one-of>
> <item>twenty</item>
> <item>thirty</item>
> <item>forty</item>
> <item>fifty</item>
> <item>sixty</item>
> <item>seventy</item>
> <item>eighty</item>
> <item>ninety</item>
> </one-of>
> <item repeat="0-1"><ruleref uri="#units"/></item>
> </rule>
>
> for utterances like "twenty one", and similarly for more
> complex numbers.
>
> I now want to use SI tags to compute the numerical value as
> the interpretation. I started by adding tag elements for
> the numeric literals, e.g.
>
> <rule id="tens">
> <tag>var $units=0;</tag>
> <one-of>
> <item><token>twenty</token><tag>20</tag></item>
> <item><token>thirty</token><tag>30</tag></item>
> <item><token>forty</token><tag>40</tag></item>
> <item><token>fifty</token><tag>50</tag></item>
> <item><token>sixty</token><tag>60</tag></item>
> <item><token>seventy</token><tag>70</tag></item>
> <item><token>eighty</token><tag>80</tag></item>
> <item><token>ninety</token><tag>90</tag></item>
> </one-of>
> <item repeat="0-1"><ruleref uri="#units"/></item>
> <!-- the following won't work as needed -->
> <tag>out = $tens + $units</tag>
> </rule>
>
> where the declaration of $units in the first tag element is based
> upon an example in the SISR specification from section 3.3.2.
>
> Unfortunately, I don't know how to reference the value obtained
> from the one-of element within the "tens" rule and $tens clearly
> won't work as written in the above example.
>
> So how do you name the value from an item or from a one-of
> within a rule without breaking it out into a separate rule?
>
> Many thanks,
> - --
> Dave Raggett <dsr@w3.org> W3C lead for multimodal interaction
> http://www.w3.org/People/Raggett +44 1225 866240 (or 867351)
>
> - --[PinePGP]-----------------------------------------------------------
>> Signature made Tue 12 Apr 2005 10:59:46 AM BST using DSA key ID 6C40B14B
>> Good signature from "Dave Raggett <dsr@w3.org>"
> - --[PinePGP]----------------------------------------------------[end]--
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (GNU/Linux)
>
> iD8DBQFCW5zJb3AdEmxAsUsRAnZHAKCKNZnLFmlSwxUkcR60UI10F1BUrwCeL6/f
> z+zmNF9HQXIe2Cx+iZXixNU=
> =me2O
> -----END PGP SIGNATURE-----
>
Received on Tuesday, 12 April 2005 10:23:00 UTC