The BARGE-IN-OCCURRED method is a mechanism for the client to communicate a barge-in-able event it detects to the speech resource.
This event is useful in two scenarios,
- The client has detected some events like DTMF digits or other barge-in-able events and wants to communicate that to the synthesizer.
- The recognizer resource and the synthesizer resource are in different servers. In which case the client MUST act as a Proxy and receive event from the recognition resource, and then send a BARGE-IN-OCCURRED method to the synthesizer. In such cases, the BARGE-IN-OCCURRED method would also have a proxy-sync-id header field received from the resource generating the original event.
If a SPEAK request is active with kill-on-barge-in enabled, and the BARGE-IN-OCCURRED event is received, the synthesizer should stop streaming out audio. It should also terminate any speech requests queued behind the current active one, irrespective of whether they have barge-in enabled or not. If a barge-in-able prompt was playing and it was terminated, the response will contain the request-ids of all SPEAK requests that were terminated in its active-request-id-list. There will be no SPEAK-COMPLETE events generated for these requests.
If the synthesizer and the recognizer are on the same server, they could be optimized for a quicker kill-on-barge-in response by having them interact directly based on a common RTSP session-id. In these cases, the client will still proxy the recognition event through a BARGE-IN-OCCURRED method, but the synthesizer resource may have already stopped and sent a SPEAK-COMPLETE event with a barge-in completion cause code. If there were no SPEAK requests terminated as a result of the BARGE-IN-OCCURRED method, the response would still be a 200 success, but will not contain an active-request-id-list header field..
MRCPV1 BARGE-IN-OCCURRED Example:
C->S: SPEAK 543258 MRCP/1.0
<sentence>You have 4 new messages.</sentence>
<sentence>The first is from <say-as
and arrived at <break/>
<sentence>The subject is <prosody
S->C: MRCP/1.0 543258 200 IN-PROGRESS
C->S: BARGE-IN-OCCURRED 543259 200 MRCP/1.0
S->C: MRCP/1.0 543259 200 COMPLETE
MRCPV2 BARGE-IN-OCCURRED Example:
C->S: MRCP/2.0 ... SPEAK 543258
<s>You have 4 new messages.</s>
<s>The first is from Stephanie Williams and arrived at
<s>The subject is
<prosody rate="0.8">ski trip</prosody></s>
S->C: MRCP/2.0 ... 543258 200 IN-PROGRESS
C->S: MRCP/2.0 ... BARGE-IN-OCCURRED 543259
S->C: MRCP/2.0 ... 543259 200 COMPLETE