speech-recognitionsapi

Speech Recognition with SAPI: Custom Language Support through phonemes


I have a text that I have transcribed from text to phonemes.

I want now to modify or create a custom grammar XML which will define the pronounciation of the words with international phonemes and use that grammer with that specific spelling to be recognized instead of anything else.

I want to add speech recognition for certain words spoken in different languages than english/german etc;

Would that be possible with SAPI and how? can anyone point me in the right direction (using SpInProcRecoContext.Recognizer and custom grammar)

So I want to use the already existing recognition engine for e.a. english to recognize italian for example by defining italian words through phonemes and let the engine recognize them as english custom words thus enabling it to recognize some italian words as well.


Solution

  • It very strongly depends on what exactly you want to do. You can (more or less) do this in a command & control grammar; doing this in a dictation environment is a lot trickier (and probably not worthwhile).

    First some (more) limitations: The English SAPI recognizer is looking for English phonemes. Giving it (e.g.) Italian phonemes can throw off the recognition model, so you're most likely going to get lower recognition quality.

    That being said, however, you can include explicit pronunciations in a SAPI grammar using the PRON attribute of the PHRASE element; so that can work in a command & control grammar.

    In a dictation environment, however, you're probably limited to setting up an application lexicon and using ISpLexicon::AddPronunciation to build entries with explicit phone IDs.

    Again, however, your accuracy may well suffer greatly.