Subject: [Speechsc] MRCPv2 comments

From: [email-masked]
Date: Fri, 3 Oct 2003 09:33:52 +0300

Hi,

These are some things that I noticed on a quick inspection of MRCP v2.0  spec.

Fetching, Storing and deleting TTS content
-------------------------------------------------------------

1. When the TTS receives an inline content, it has a content-id associated with it. If it has a cache-control field, then that would determine how long this content is kept on the server.  However in case of a scenario where there MIGHT be a need to keep TTS content for an entire page browse (so no cache control is activated) and then if the user navigates to a new page, the client would decide to delete that particular TTS content, it cannot do so. Basically, there is no DELETE_CONTENT directive that can take the "content-id" as a parameter. If there are other ways to do this, these are not so clear. 

2. For TTS content, the spec doesnt specify if content-id is needed for both inline content and URI's. It specifies for ASR that content-id is needed only for inline recognition grammars and not for external ones.

3. The spec does not specify which all TTS methods can have the content as a payload. I would assume from the spec that only the SPEAK request would have the content as a payload. However, the spec defines message headers like "audio fetch hint" and "fetch hint" that is used with SET-PARAMS, GET-PARAMS and SPEAK. They have values of "prefetch" indicating that the content may be prefetched and "safe" that says the content need to be downloaded only when needed. If (according to my understanding) there is prefetch enabled with a SET-PARAM request, and the content can be specified ONLY through a SPEAK request, I dont see a prefetch capability here. There should be some method like LOAD-CONTENT that can take either an inline content or a URI to fetch (and the content addressed through a content-id). 

Queueing
-------------

MRCPv2 does not specify using a QUEUE method. If there are preloaded content (for TTS) on the server that could be referenced using a content-id, the client should be able to choose multiple content through the id's and create a queue to be played back. It can be argued that multiple SPEAK requests can be sent and they naturally form a queue to be played back. However, consider the scenario where you have sent multiple SPEAK and the TTS is playing them back. Then the client decides to PAUSE this and play another TTS content. With the current spec, if you pause this, the next SPEAK will be appended to this queue rather than spoken immediately. If a STOP gets sent, the whole queue gets cleared. 

If a QUEUE is implemented, then this queue can be paused (through a PAUSE_QUEUE or something) and a new TTS can be played. The TTS would send back a PLAY_COMPLETE after which the client can resume playback of the queue.  

Audio recorder
---------------------

MRCPv2 does not specify the use of an audio recorder with RECORD, and FETCH capability.
There is provision in the ASR methods for recording only those waveforms that were used for recognition with fetch capability.

ASR
-------

1. MRCPv2 does not have provision to delete pre-loaded grammars if the client decides they are no longer needed.

2. No INTERMEDIATE_RECOGNITION_RESULT send event from the recognizer and provision for setting this with the message fields (eg SET-PARAMS)

best regards,

Sailesh.

Sailesh Kumar Sathish      GSM +358 50 4835679
Nokia Research Center      Desk +358 3 272 5679
P.O.Box 100, Tampere      [email-masked]
Finland -33721

_______________________________________________
Speechsc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/speechsc

---

From: Jeff Kusnitz <[email-masked]>
Date: Fri, 24 Oct 2003 11:16:11 -0700

Hi,

I've got a question on the results returned in a RECOGNITION-COMPLETE 
message.  The example in section 8.8 shows these results being returned:

           <?xml version="1.0"?> 
           <result x-model="http://IdentityModel" 
             xmlns:xf="http://www.w3.org/2000/xforms" 
             grammar="session:[email-masked]> 
                <interpretation> 
                     <xf:instance name="Person"> 
                       <Person> 
                           <Name> Andre Roy </Name> 
                       </Person> 
                     </xf:instance> 
                     <input>   may I speak to Andre Roy </input> 
                </interpretation> 
           </result> 

Where does the x-model come from?  Nothing in any of the grammars says 
that this grammar ([email-masked]) should be populating an 
xforms model named "IdentityModel", nor that part of the results for the 
rule named "request" should be used to populate the instance's <Person>. 
How is this expected to happen?

Thanks,
Jeff