Recognizer START-INPUT-TIMERS

START-INPUT-TIMERS lets the client control when the recognizer’s input timers begin, decoupling that moment from when the RECOGNIZE request was issued. This matters in the kill-on-barge-in scenario—particularly when the recognizer and synthesizer are not in the same session.

While a kill-on-barge-in prompt is playing, the client typically wants a RECOGNIZE request active so it can detect barge-in, but it does not want the recognizer to start the No-Input timer until the prompt has finished. The Start-Input-Timers header field on the RECOGNIZE request controls this: set it to false and the recognizer holds the timers until told otherwise.

MRCP/2.0 435 RECOGNIZE 3
Channel-Identifier: 1e244a68-426a-4780-c@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Start-Input-Timers: false
Dtmf-Term-Char: #
No-Input-Timeout: 15000
Dtmf-Interdigit-Timeout: 2000
Speech-Complete-Timeout: 1200
Dtmf-Term-Timeout: 2000
Recognition-Timeout: 20000
Clear-Dtmf-Buffer: true
Speech-Incomplete-Timeout: 3000
Content-Length: 36


session:grammar-0
session:grammar-1

With Start-Input-Timers set to false as above, the recognizer will not start the No-Input timer until the client sends a START-INPUT-TIMERS request—normally once the client knows the prompt has finished playing.

If instead the client wants the timers to start as soon as the RECOGNIZE request is processed, it sets the header to true:

Start-Input-Timers: true

This is an MRCPv2 method. It should not be confused with the MRCPv1 RECOGNITION-START-TIMERS method, which performs the same function under the older protocol.


MRCPv2 example

Once the prompt has finished, the client sends START-INPUT-TIMERS to start the timers:

C->S:  MRCP/2.0 ... START-INPUT-TIMERS 543260
     Channel-Identifier:32AECB23433801@speechrecog


S->C: MRCP/2.0 ... 543260 200 COMPLETE
     Channel-Identifier:32AECB23433801@speechrecog

Related articles


Was this article helpful?