The following table lists error codes returned by SAPI.
Error Name
Hexadecimal
Decimal
Description
SPERR_UNINITIALIZED
0x80045001
-2147201023
The object has not been properly initialized.
SPERR_ALREADY_INITIALIZED
0x80045002
-2147201022
The object has already been initialized.
SPERR_UNSUPPORTED_FORMAT
0x80045003
-2147201021
The caller has specified an unsupported format.
SPERR_INVALID_FLAGS
0x80045004
-2147201020
The caller has specified invalid flags for this operation.
SP_END_OF_STREAM
0x00045005
282629
The operation has reached the end of stream.
SPERR_DEVICE_BUSY
0x80045006
-2147201018
The wave device is busy.
SPERR_DEVICE_NOT_SUPPORTED
0x80045007
-2147201017
The wave device is not supported.
SPERR_DEVICE_NOT_ENABLED
0x80045008
-2147201016
The wave device is not enabled.
SPERR_NO_DRIVER
0x80045009
-2147201015
There is no wave driver installed.
SPERR_FILEMUSTBEUNICODE
0x8004500a
-2147201014
The file must be Unicode.
SP_INSUFFICIENTDATA
0x0004500b
282635
SPERR_INVALID_PHRASE_ID
0x8004500c
-2147201012
The phrase ID specified does not exist or is out of range.
SPERR_BUFFER_TOO_SMALL
0x8004500d
-2147201011
The caller provided a buffer too small to return a result.
SPERR_FORMAT_NOT_SPECIFIED
0x8004500e
-2147201010
Caller did not specify a format prior to opening a stream.
SPERR_AUDIO_STOPPED
0x8004500f
-2147201009
The stream I/O was stopped by setting the audio object to the stopped state. This will be returned for both read and write streams.
SP_AUDIO_PAUSED
0x00045010
282640
This will be returned only on input (read) streams when the stream is paused. Reads on paused streams will not block, and this return code indicates that all of the data has been removed from the stream.
SPERR_RULE_NOT_FOUND
0x80045011
-2147201007
Invalid rule name passed to ActivateGrammar.
SPERR_TTS_ENGINE_EXCEPTION
0x80045012
-2147201006
An exception was raised during a call to the current TTS driver.
SPERR_TTS_NLP_EXCEPTION
0x80045013
-2147201005
An exception was raised during a call to an application sentence filter.
SPERR_ENGINE_BUSY
0x80045014
-2147201004
In speech recognition, the current method cannot be performed while a grammar rule is active.
SP_AUDIO_CONVERSION_ENABLED
0x00045015
282645
The operation was successful, but only with automatic stream format conversion.
SP_NO_HYPOTHESIS_AVAILABLE
0x00045016
282646
There is currently no hypothesis recognition available.
SPERR_CANT_CREATE
0x80045017
-2147201001
Cannot create a new object instance for the specified object category.
SP_ALREADY_IN_LEX
0x00045018
282648
The word, pronunciation, or POS pair being added is already in lexicon.
SPERR_NOT_IN_LEX
0x80045019
-2147200999
The word does not exist in the lexicon.
SP_LEX_NOTHING_TO_SYNC
0x0004501a
282650
The client is currently synced with the lexicon.
SPERR_LEX_VERY_OUT_OF_SYNC
0x8004501b
-2147200997
The client is excessively out of sync with the lexicon. Mismatches may not sync incrementally.
SPERR_UNDEFINED_FORWARD_RULE_REF
0x8004501c
-2147200996
A rule reference in a grammar was made to a named rule that was never defined.
SPERR_EMPTY_RULE
0x8004501d
-2147200995
A non-dynamic grammar rule that has no body.
SPERR_GRAMMAR_COMPILER_INTERNAL_ERROR
0x8004501e
-2147200994
The grammar compiler failed due to an internal state error.
SPERR_RULE_NOT_DYNAMIC
0x8004501f
-2147200993
An attempt was made to modify a non-dynamic rule.
SPERR_DUPLICATE_RULE_NAME
0x80045020
-2147200992
A rule name was duplicated.
SPERR_DUPLICATE_RESOURCE_NAME
0x80045021
-2147200991
A resource name was duplicated for a given rule.
SPERR_TOO_MANY_GRAMMARS
0x80045022
-2147200990
Too many grammars have been loaded.
SPERR_CIRCULAR_REFERENCE
0x80045023
-2147200989
Circular reference in import rules of grammars.
SPERR_INVALID_IMPORT
0x80045024
-2147200988
A rule reference to an imported grammar that could not be resolved.
SPERR_INVALID_WAV_FILE
0x80045025
-2147200987
The format of the WAV file is not supported.
SP_REQUEST_PENDING
0x00045026
282662
This success code indicates that an SR method called with the SPRIF_ASYNC flag is being processed. When it has finished processing, an SPFEI_ASYNC_COMPLETED event will be generated.
SPERR_ALL_WORDS_OPTIONAL
0x80045027
-2147200985
A grammar rule was defined with a null path through the rule. That is, it is possible to satisfy the rule conditions with no words.
SPERR_INSTANCE_CHANGE_INVALID
0x80045028
-2147200984
It is not possible to change the current engine or input. This occurs in the following cases:
SelectEngine called while a recognition context exists, or
SetInput called in the shared instance case.
SPERR_RULE_NAME_ID_CONFLICT
0x80045029
-2147200983
A rule exists with matching IDs (names) but different names (IDs).
SPERR_NO_RULES
0x8004502a
-2147200982
A grammar contains no top-level, dynamic, or exported rules. There is no possible way to activate or otherwise use any rule in this grammar.
SPERR_CIRCULAR_RULE_REF
0x8004502b
-2147200981
Rule 'A' refers to a second rule 'B' which, in turn, refers to rule 'A'.
SP_NO_PARSE_FOUND
0x0004502c
282668
Parse path cannot be parsed given the currently active rules.
SPERR_NO_PARSE_FOUND
0x8004502d
-2147200979
Parse path cannot be parsed given the currently active rules.
SPERR_REMOTE_CALL_TIMED_OUT
0x8004502e
-2147200978
A marshaled remote call failed to respond.
SPERR_AUDIO_BUFFER_OVERFLOW
0x8004502f
-2147200977
This will only be returned on input (read) streams when the stream is paused because the SR driver has not retrieved data recently.
SPERR_NO_AUDIO_DATA
0x80045030
-2147200976
The result does not contain any audio, nor does the portion of the element chain of the result contain any audio.
SPERR_DEAD_ALTERNATE
0x80045031
-2147200975
This alternate is no longer a valid alternate to the result it was obtained from. Returned from ISpPhraseAlt methods.
SPERR_HIGH_LOW_CONFIDENCE
0x80045032
-2147200974
The result does not contain any audio, nor does the portion of the element chain of the result contain any audio. Returned from ISpResult::GetAudio and ISpResult::SpeakAudio.
SPERR_INVALID_FORMAT_STRING
0x80045033
-2147200973
The XML format string for this RULEREF is invalid, e.g. not a GUID or REFCLSID.
SP_UNSUPPORTED_ON_STREAM_INPUT
0x00045034
282676
The operation is not supported for stream input.
SPERR_APPLEX_READ_ONLY
0x80045035
-2147200971
The operation is invalid for all but newly created application lexicons.
SPERR_NO_TERMINATING_RULE_PATH
0x80045036
-2147200970
SP_WORD_EXISTS_WITHOUT_PRONUNCIATION
0x00045037
282679
The word exists but without pronunciation.
SPERR_STREAM_CLOSED
0x80045038
-2147200968
An operation was attempted on a stream object that has been closed.
SPERR_NO_MORE_ITEMS
0x80045039
-2147200967
When enumerating items, the requested index is greater than the count of items.
SPERR_NOT_FOUND
0x8004503a
-2147200966
The requested data item (data key, value, etc.) was not found.
SPERR_INVALID_AUDIO_STATE
0x8004503b
-2147200965
Audio state passed to SetState() is invalid.
SPERR_GENERIC_MMSYS_ERROR
0x8004503c
-2147200964
A generic MMSYS error not caught by _MMRESULT_TO_HRESULT.
SPERR_MARSHALER_EXCEPTION
0x8004503d
-2147200963
An exception was raised during a call to the marshaling code.
SPERR_NOT_DYNAMIC_GRAMMAR
0x8004503e
-2147200962
Attempt was made to manipulate a non-dynamic grammar.
SPERR_AMBIGUOUS_PROPERTY
0x8004503f
-2147200961
Cannot add ambiguous property.
SPERR_INVALID_REGISTRY_KEY
0x80045040
-2147200960
The key specified is invalid.
SPERR_INVALID_TOKEN_ID
0x80045041
-2147200959
The token specified is invalid.
SPERR_XML_BAD_SYNTAX
0x80045042
-2147200958
The xml parser failed due to bad syntax.
SPERR_XML_RESOURCE_NOT_FOUND
0x80045043
-2147200957
The xml parser failed to load a required resource (e.g., voice, phoneconverter, etc.).
SPERR_TOKEN_IN_USE
0x80045044
-2147200956
Attempted to remove registry data from a token that is already in use elsewhere.
SPERR_TOKEN_DELETED
0x80045045
-2147200955
Attempted to perform an action on an object token that has had associated registry key deleted.
SPERR_MULTI_LINGUAL_NOT_SUPPORTED
0x80045046
-2147200954
The selected voice was registered as multi-lingual. SAPI does not support multi-lingual registration.
SPERR_EXPORT_DYNAMIC_RULE
0x80045047
-2147200953
Exported rules cannot refer directly or indirectly to a dynamic rule.
SPERR_STGF_ERROR
0x80045048
-2147200952
Error parsing the SAPI Text Grammar Format (XML grammar).
SPERR_WORDFORMAT_ERROR
0x80045049
-2147200951
Incorrect word format, probably due to incorrect pronunciation string.
SPERR_STREAM_NOT_ACTIVE
0x8004504a
-2147200950
Methods associated with active audio stream cannot be called unless stream is active.
SPERR_ENGINE_RESPONSE_INVALID
0x8004504b
-2147200949
Arguments or data supplied by the engine are in an invalid format or are inconsistent.
SPERR_SR_ENGINE_EXCEPTION
0x8004504c
-2147200948
An exception was raised during a call to the current SR engine.
SPERR_STREAM_POS_INVALID
0x8004504d
-2147200947
Stream position information supplied from engine is inconsistent.
SP_RECOGNIZER_INACTIVE
0x0004504e
282702
Operation could not be completed because the recognizer is inactive. It is inactive either because the recognition state is currently inactive or because no rules are active.
SPERR_REMOTE_CALL_ON_WRONG_THREAD
0x8004504f
-2147200945
When making a remote call to the server, the call was made on the wrong thread.
SPERR_REMOTE_PROCESS_TERMINATED
0x80045050
-2147200944
The remote process terminated unexpectedly.
SPERR_REMOTE_PROCESS_ALREADY_RUNNING
0x80045051
-2147200943
The remote process is already running; it cannot be started a second time.
SPERR_LANGID_MISMATCH
0x80045052
-2147200942
An attempt to load a CFG grammar with a LANGID different than other loaded grammars.
SP_PARTIAL_PARSE_FOUND
0x00045053
282707
A grammar-ending parse has been found that does not use all available words.
SPERR_NOT_TOPLEVEL_RULE
0x80045054
-2147200940
An attempt to deactivate or activate a non top-level rule.
SP_NO_RULE_ACTIVE
0x00045055
282709
An attempt to parse when no rule was active.
SPERR_LEX_REQUIRES_COOKIE
0x80045056
-2147200938
An attempt to ask a container lexicon for all words at once.
SP_STREAM_UNINITIALIZED
0x00045057
282711
An attempt to activate a rule/dictation/etc without calling SetInput first in the InProc case.
SPERR_UNSUPPORTED_LANG
0x80045059
-2147200935
The requested language is not supported.
SPERR_VOICE_PAUSED
0x8004505a
-2147200934
The operation cannot be performed because the voice is currently paused.
SPERR_AUDIO_BUFFER_UNDERFLOW
0x8004505b
-2147200933
This will only be returned on input (read) streams when the real time audio device stops returning data for a long period of time.
SPERR_AUDIO_STOPPED_UNEXPECTEDLY
0x8004505c
-2147200932
An audio device stopped returning data from the Read() method even though it was in the run state. This error is only returned in the END_SR_STREAM event.
SPERR_NO_WORD_PRONUNCIATION
0x8004505d
-2147200931
The SR engine is unable to add this word to a grammar. The application may need to supply an explicit pronunciation for this word.
SPERR_ALTERNATES_WOULD_BE_INCONSISTENT
0x8004505e
-2147200930
An attempt to call ScaleAudio on a recognition result having previously called GetAlternates. Allowing the call to succeed would result in the previously created alternates located in incorrect audio stream positions.
SPERR_NOT_SUPPORTED_FOR_SHARED_RECOGNIZER
0x8004505f
-2147200929
The method called is not supported for the shared recognizer For example, ISpRecognizer::GetInputStream().
SPERR_TIMEOUT
0x80045060
-2147200928
A task could not complete because the SR engine had timed out.
SPERR_REENTER_SYNCHRONIZE
0x80045061
-2147200927
An SR engine called synchronize while inside of a synchronize call.
SPERR_STATE_WITH_NO_ARCS
0x80045062
-2147200926
The grammar contains a node no arcs.
SPERR_NOT_ACTIVE_SESSION
0x80045063
-2147200925
Neither audio output nor input is supported for non-active console sessions.
SPERR_ALREADY_DELETED
0x80045064
-2147200924
The object is a stale reference and is invalid to use. For example, having an ISpeechGrammarRule object reference and then calling ISpeechRecoGrammar::Reset() will cause the rule object to be invalidated. Calling any methods after this will result in this error.
SP_AUDIO_STOPPED
0x00045065
282725
This can be returned when Read or Write attempts to call audio streams when the stream is stopped.
SPERR_RECOXML_GENERATION_FAIL
0x80045066
-2147200922
The Recognition Parse Tree couldn't be generated. For example, the rule name may begin with a numeric digit. The XML parser does not allow this.
SPERR_SML_GENERATION_FAIL
0x80045067
-2147200921
The SML could not be generated. For example, the transformation XSLT template may not be well-formed.
SPERR_NOT_PROMPT_VOICE
0x80045068
-2147200920
The current voice is not a prompt voice, so the ISpPromptVoice functions do not work.
SPERR_ROOTRULE_ALREADY_DEFINED
0x80045069
-2147200919
There is already a root rule for this grammar. Defining another root rule will fail.
SPERR_SCRIPT_DISALLOWED
0x80045070
-2147200912
Support for embedded script not supported because browser security settings have disabled it.
SPERR_REMOTE_CALL_TIMED_OUT_START
0x80045071
-2147200911
A time-out occurred while starting the SAPI server.
SPERR_REMOTE_CALL_TIMED_OUT_CONNECT
0x80045072
-2147200910
A time-out occurred obtaining the lock for starting or connecting to the SAPI server
SPERR_SECMGR_CHANGE_NOT_ALLOWED
0x80045073
-2147200909
When a CFG grammar is loaded, the security manager cannot be changed.
SP_COMPLETE_BUT_EXTENDABLE
0x00045074
282740
Parse is valid but could be extendable (internal use only)