SAPI 5.0 SR Properties White Paper
Introduction
This document describes the ISpProperties elements for SAPI 5 compliant SR engines. This spec will serve to define these attributes only for SR engines. Application developers hoping to build a SAPI 5 compliant engine should reference this document. For more information, developers should refer to the SAPI SDK help documents.
ISpProperties
ISpProperties is an interface that enables the SR and TTS engines to get or set various attributes for an object. The attributes are passed to the engine via the ISpProperties interface. ISpProperties are identified by a unique LONG value. SAPI defines certain attributes known as system attributes. The range of these attributes is from 0x0001 to 0xffff. Vendor ISpProperties attributes are defined by a unique high word value (two ANSI Characters that identify the engine vendor).
Attributes may be LONGs, strings, or memory addresses.
SR Properties
The following table lists the SR properties that are set by the application and passed to the SR engine via SAPI. These attributes are not required for SAPI compliance. However, the ranges accompanied by the attributes are required values and the exact interpretation of the values is left to the SR engine. The different implementation is defined by each property. The SAPI ranges and defaults for each property are also shown.
NOTE: The attributes are associated with a user profile and written in the registry by SAPI. SAPI detects the correct settings. The application should not write attribute changes to the registry.
dwAttrib Value |
WCHAR Value |
Meaning |
Range |
SPPROP_RESOURCE_USAGE |
ResourceUsage |
The ResourceUsage specifies the engine CPU consumption. As the resource usage increases, so does the required CPU power. |
0 – 100 default = 50 |
SPPROP_HIGH_CONFIDENCE_THRESHOLD SPPROP_NORMAL_CONFIDENCE_THRESHOLD SPPROP_LOW_CONFIDENCE_THRESHOLD |
HighConfidenceThreshold NormalConfidenceThreshold LowConfidenceThreshold |
The threshold values are used to divide a confidence scale into four portions: rejected, low, medium, and high. The location of the low confidence, normal confidence, and high confidence markers control how the confidence of a word is labeled. The HighConfidenceThreshold (HCT) separates the high and medium confidence range. The NormalConfidenceThreshold (NCT) separates the medium and the low confidence thresholds. The LowConfidenceThreshold (LCT) separates the low and rejected confidence range. If the all three confidences are equal to 0, then all words will have high confidence. If all three confidences are equal to 100, then all words will have low confidence. |
0 – 100 default LCT = 20 NCT = 50 HCT = 80 |
SPPROP_RESPONSE_SPEED |
ResponseSpeed |
This indicates the amount of silence the engine looks for before completing a recognition. This attribute is used when the recognition is not ambiguous. For example, in the case of a context-free grammar (CFG) which has two sentences: 1) new game please and 2) new game, a non-ambiguous recognition would be “new game please.” |
0 – 10,000 ms default = 150 ms |
SPPROP_COMPLEX_RESPONSE_SPEED |
ComplexResponseSpeed |
This indicates the amount of silence that the engine will look for before completing a recognition. This attribute is used when the recognition is ambiguous. For example, in the case of a CFG which has two sentences: 1) new game please and 2) new game, an ambiguous recognition would be “new game.” This property’s value must be greater than the ResponseSpeed value. |
ResponseSpeed – 10,000 Default = 500 ms |
SPPROP_ADAPTATION_ON |
AdaptationOn |
Indicates whether the recognition engine should adapt the acoustic model. |
1 or 0 default = 1 |