Collapse the table of content
Expand the table of content

SPDUI_MicTraining (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

SPDUI_MicTraining (C/C++)

SpeechMicTraining (Automation)

SPDUI_MicTraining defines the string for displaying a speech recognition (SR )engine's microphone training UI.

It is not a SAPI 5 compliance requirement for an SR engine to implement this UI for SPDUI_MicTraining.

When to Implement

When writing an SR engine for the desktop or a graphical environment, users might want to adapt the engine either before the first use, or when recognition accuracy is poor. Microphone quality can greatly benefit recognition accuracy, even for a speaker-independent engine.

Use Speech properties in Control Panel to change settings for all installed SAPI 5-compliant SR engines. Click Configure Microphone on the SR tab to adapt the microphone and directly access each SR engine's Microphone Training UI using SPDUI_MicTraining. If the SR engine does not support Microphone Training UI (see ISpTokenUI::IsUISupported), Configure Microphone will be unavailable.

When to Access

The application could monitor the user's speech experience by recognition accuracy. If a user encounters too many false recognitions or recognition corrections, the application could recommend that the user re-adapt the SR engine to their microphone (see ISpRecognizer::DisplayUI).

Also, an SR engine can send a SPEI_REQUEST_UI event to the application if it determines that the user needs to perform additional recognizer training. For example, if the input is too quiet or too loud. Typically the UI type will be SPDUI_MicTraining to ensure that the SR engine is adapted to the current input audio settings.

#define SPDUI_MicTraining        L"MicTraining"


The following code snippet illustrates the use of ISpTokenUI::IsUISupported using SPDUI_MicTraining.

// Declare local identifiers:
HRESULT                    hr = S_OK;
CComPtr<ISpObjectToken>    cpObjectToken;
CComPtr<ISpTokenUI>        cpTokenUI;
BOOL                       fSupported;

// Get the default speech recognizer token.
hr = SpGetDefaultTokenFromCategoryId(SPCAT_RECOGNIZERS, &cpObjectToken;);

if (SUCCEEDED(hr))
   // Get the object token's UI.
   hr = cpObjectToken->QueryInterface(&cpTokenUI;);

if (SUCCEEDED(hr))
   // Check if the default speech recognizer has
   // UI for performing Microphone Training.
   hr = cpTokenUI->IsUISupported(SPDUI_MicTraining, NULL, NULL, NULL, &fSupported;);

if (SUCCEEDED(hr))
   // If fSupported == TRUE, then default speech
   // recognizer has UI for Microphone Training.

The following code snippet illustrates the use of ISpRecognizer::DisplayUI using SPDUI_MicTraining.

// Declare local identifiers:
HRESULT                    hr = S_OK;
CComPtr<ISpRecognizer>     cpRecognizer;
HWND                       hwndParent;

// Display microphone training UI for the current recognizer.
hr = cpRecognizer->DisplayUI(hwndParent, L"My App's Caption", SPDUI_MicTraining, NULL, NULL);

if (SUCCEEDED(hr))
   // Do stuff here.
© 2016 Microsoft