Note
Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.
Microsoft Speech Platform
ISpRecoContext::Resume
ISpRecoContext::Resume releases the speech recognition (SR) engine from the paused state and restarts the recognition process.
<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml"> <strong>HRESULT Resume (</strong> <strong> DWORD</strong> <em>dwReserved</em> <strong>);</strong> </pre>
Parameters
- dwReserved
[in] Reserved, must be zero.
Return Values
Value | Description |
---|---|
S_OK | Function completed successfully. |
E_INVALIDARG | dwFlags is not set to zero. |
Remarks
This method must be called after a call to ISpRecoContext::Pause, a bookmark event occurs that pauses the recognition engine, or an auto-pause rule is recognized (see ISpRecoGrammar::SetRuleState).
The caller must call Resume once for every call that is made to ISpRecoContext::Pause.
Example
The following code snippet illustrates the use of ISpRecoContext::Resume after a call to ISpRecoContext::Pause
`
// Declare local identifiers: HRESULT hr = S_OK; CComPtr<ISpRecoContext> cpRecoContext;`// Set up the recognition context. // ...
// Pause the context so that event notifications are not received. hr = cpRecoContext->Pause(NULL);
if (SUCCEEDED(hr)) { // Quickly perform the processing - see the // Remarks section in ISpRecoContext::Pause. // ...
hr = cpRecoContext->Resume(NULL); }
// Applications will start receiving event notifications again. if (SUCCEEDED(hr)) { // Do stuff here. }
The following code snippet illustrates the use of ISpRecoContext::Resume with an "auto-pause" rule.
`
// Declare local identifiers: HRESULT hr = S_OK; CComPtr<ISpRecoContext> cpRecoContext; CComPtr<ISpRecoGrammar> cpRecoGrammar; const WCHAR *MY_AUTOPAUSE_RULE = L"Rule1"; const WCHAR *MY_SECOND_RULE = L"Rule2";`// Set up the recognition context and grammar. // ...
// Activate a top-level rule as an "auto-pause" rule. hr = cpRecoGrammar->SetRuleState(MY_AUTOPAUSE_RULE, NULL, SPRS_ACTIVE_WITH_AUTO_PAUSE);
if (SUCCEEDED(hr)) { // Get the recognition event for MY_AUTOPAUSE_RULE in a CSpEvent object. // ... }
// Assert that the recognition context paused // after the "auto-pause" rule was recognized. _ASSERT(spEvent.IsPaused());
// Deactivate the "auto-pause" rule. hr = cpRecoGrammar->SetRuleState(MY_AUTOPAUSE_RULE, NULL, SPRS_INACTIVE);
if (SUCCEEDED(hr)) { // Activate the second rule. hr = cpRecoGrammar->SetRuleState(MY_SECOND_RULE, NULL, SPRS_ACTIVE); }
if (SUCCEEDED(hr)) { // Because the context was paused from the "auto-pause" rule, // it must now be reactivated to recognize the second rule. hr = cpRecoContext->Resume(NULL); }
if (SUCCEEDED(hr)) { // Get the second recognition... }