[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Speechsc] Ambiguous description of BARGE-IN-OCCURRED in section 8.8



On May 6, 2009, at 3:26 AM, Slawomir Testowy wrote:

Hi,

I am reading draft-18 and I find description of BARGE-IN-0CCURRED
method hard to understand.

8.8.  BARGE-IN-OCCURED

There is a typo.

Thanks.



If a "SPEAK" request is active with kill-on-barge-in enabled, and the
BARGE-IN-OCCURRED event is received, the synthesizer MUST immediately
stop streaming out audio.

Must the synthesizer stop streaming out audio if a "SPEAK" request is
in "PAUSED" state?

Yes.


I couldn't find a definition of "active SPEAK request". I guess it is
a current processed "SPEAK"?

I agree that the current use of the word "active" is a bit confusing. It is clearer if you understand the point of the BARGE-IN-OCCURRED event. When an ASR engine detects speech, if a prompt (audio) is being played the client usually wants to cancel the audio being played. The kill-on-barge-in parameter and BARGE-IN-OCCURRED event allow for this. Since the audio is interrupted (but did not stop due to a failure in the synthesis resource), it has a normal termination, meaning that there is a SPEAK-COMPLETE generated for this bit of audio. Anything queued up after it (PENDING), however, is removed from the queue since the occurrence of speech during a prompt usually will cause a change in the dialog direction that can invalidate all queued prompts. The reason no SPEAK-COMPLETE is sent for these removed PENDING requests is to distinguish them from the case where a failure occurs during the playout of the current audio. In that case (see Section 8.6, next-to-last paragraph), each PENDING request stops with a SPEAK-COMPLETE (with Completion-Cause of "cancelled").

So, in the text above "active" means either IN-PROGRESS or PAUSED.



It MUST also terminate any speech requests
queued behind the current active one, irrespective of whether they
have barge-in enabled or not.

Does this statement depend on previous one? I.e. must the synthesizer
terminate all speech
requests queued behind the current one regardless of kill-on-barge-in
enabled in active "SPEAK"?

It depends on the previous statement. If kill-on-barge-in is enabled for the currently active SPEAK request, then all queued (PENDING) requests are terminated regardless of whether or not they have kill-on- barge-in enabled.



If a barge-in-able "SPEAK" request was
playing and it was terminated, the response MUST contain the an
active-request-list header listing the request-ids of all "SPEAK"
requests that were terminated.  The server generates no
"SPEAK-COMPLETE" events for these requests.

That sounds good. However, example in section 14.1 says something different:

Yes, the wording above is unclear. The server generates a SPEAK- COMPLETE event for the barged-in SPEAK request with a completion-cause of "barge-in" so the client knows that the audio was stopped, and for that reason. However, no SPEAK-COMPLETE messages are sent for the queued messages that were terminated because of the barge-in.



C->S:  MRCP/2.0 289 SPEAK 543259
      Channel-Identifier:32AECB23433801 at speechsynth
      Kill-On-Barge-In:true
      Content-Type:application/ssml+xml
      Content-Length:418
      Content-Length:...

[...]

 S->C:  MRCP/2.0 52 543259 200 IN-PROGRESS
       Channel-Identifier:32AECB23433801 at speechsynth
       Speech-Marker:timestamp=857207696314

[...]

C->S:  MRCP/2.0 69 BARGE-IN-OCCURRED 543259
       Channel-Identifier:32AECB23433801 at speechsynth
        Proxy-Sync-Id:987654321

 S->C:  MRCP/2.0 72 543259 200 COMPLETE
       Channel-Identifier:32AECB23433801 at speechsynth
        Active-Request-Id-List:543258
        Speech-Marker:timestamp=857206096314

 S->C:  MRCP/2.0 73 SPEAK-COMPLETE 543259 COMPLETE
       Channel-Identifier:32AECB23433801 at speechsynth
       Completion-Cause:001 barge-in
       Speech-Marker:timestamp=857207685213

Moreover, request BARGE-IN-OCCURRED has the same request-id
as previous SPEAK. Is this correct?

Oops, no, that's a typo.  It should have a different request-id.



--
Slawomir Testowy
_______________________________________________
Speechsc mailing list
Speechsc at ietf.org
https://www.ietf.org/mailman/listinfo/speechsc
Supplemental web site:
<http://www.standardstrack.com/ietf/speechsc>