ISpRecognizer (Windows CE 5.0)
This interface enables applications to control aspects of an SR engine and its audio input. Each object implementing this interface represents a recognizer for a single engine. A standard application may not need to call many of the methods on this interface, as SAPI tries to set up the engine sensibly by default.
Each recognizer object is connected to one or more recognition contexts (ISpRecoContext). Through the contexts, the recognizer can control the recognition grammars to be used, start and stop recognition, and receive events and recognition results.
There are two implementations of ISpRecognizer in SAPI. One is for in-process (InProc) recognition, for which the SR engine is created in the same process as the application and only this application can connect to the recognizer. The other implementation is the shared-recognizer implementation, for which the SR engine is created in a separate process. Only one shared engine will run on a system, and all applications using the shared engine connect to the same recognizer. This implementation allows several speech applications to work simultaneously, and allows the user to speak to any application, as recognition is done from the grammars of all applications.
For desktop-based speech applications, it is recommended to use the shared-recognizer implementation of ISpRecognizer, since it allows multiple SAPI applications to work at once. The InProc recognizer implementation should be used for other application types, such as an application recognizing from wave files or a telephony server application requiring multiple SR engines.
When to Implement
This interface is implemented by SAPI. Application developers use this interface but do not implement it.
There are two objects that implement this interface. These are created by applications by creating a COM object with either of the following CLSIDs:
- SpInprocRecognizer (CLSID_SpInprocRecognizer)
- SpSharedRecognizer (CLSID_SpSharedRecognizer)
Alternatively, the shared recognizer can be created by creating a SpSharedRecoContext (CLSID_SpSharedRecoContext), and then calling ISpRecoContext::GetRecognizer on this object to get a reference to the SpSharedRecognizer object.
When to Use
Your application can call methods of the ISpRecognizer interface to configure or retrieve the attributes of the SR engine.
Methods
The following table lists methods for the ISpRecognizer interface.
Methods | Description |
---|---|
CreateRecoContext | Creates a recognition context for the SR engine object. |
DisplayUI | Displays a user interface component. |
EmulateRecognition | Emulates a recognition from a text phrase rather than from spoken audio. |
GetFormat | Gets the format of the current audio input. |
GetInputObjectToken | Gets the input token object for the stream. |
GetInputStream | Gets the input stream. |
GetRecognizer | Identifies the SR engine that is currently being used with the recognizer. |
GetRecoProfile | Gets the current recognition profile token. |
GetRecoState | Gets the state of the recognition engine. |
GetStatus | Gets current status information for the engine. |
IsSharedInstance | Determines if the recognizer is the shared or InProc implementation. |
IsUISupported | Checks if the SR engine supports a particular user interface component. |
SetInput | Specifies which input stream the SR engine should use. |
SetRecognizer | Sets the SR engine to use with the recognizer. |
SetRecoProfile | Sets the recognition profile for the recognizer to use. |
SetRecoState | Sets the state of the recognizer to reflect the SR engine state. |
Requirements
OS Versions: Windows CE .NET 4.1 and later.
Header: Sapi.h, Sapi.idl.
Link Library: Sapilib.lib.
See Also
Send Feedback on this topic to the authors