none
System.Speech vs SAPI 5

    Question

  • Hi

    I have developed a mature VB Net application that extensively uses the COM Microsoft Speech Object Library (SAPI 5.4) for speech recognition. I use a context free grammar and have managed to achieve acceptable performance.

    Would there be any advantage in making use of System.Speech libraries instead? From what I understand, they both make use of the same native Microsoft engine. Would a performance improvement be likely? The grammar structures are somewhat different.

    From my reading, System.Speech does seem to provide more control of the speech functions. I have long wanted to implement a custom speech profile trainer and this doesn't seem possible in SAPI. Any feedback on a comparison between the two would be appreciated.

    Thanks Guys and Girls

    Friday, April 14, 2017 12:41 PM

Answers

All replies

  • Hi Oztromboli,

    The short answer is that Microsoft.Speech uses the Server version of SAPI, while System.Speech uses the Desktop version of SAPI.

    The APIs are mostly the same, but the underlying engines are different. Typically, the Server engine is designed to accept telephone-quality audio for command & control applications; the Desktop engine is designed to accept higher-quality audio for both command & control and dictation applications.

    You can use System.Speech on a server OS, but it's not designed to scale nearly as well as Microsoft.Speech.

    The differences are that the Server engine won't need training, and will work with lower-quality audio, but will have a lower recognition quality than the Desktop engine.

    Hope it is helpful to you.

    Best Regards,

    Cherry Bu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    Monday, April 17, 2017 3:27 AM
    Moderator
  • Thanks for the answer Cherry, but not quite what I'm looking for. I was aware of the distinction between Microsoft.Speech and System.Speech. I use neither. Currently I make use of the Microsoft Speech Object library COM component (Interop.SpeechLib.dll).

    Based on what you are saying, it seems that System.Speech provides a means of using SAPI in a managed way. So it is a wrapper.

    My question is whether there will be any speech rec improvements from using the System.Speech. That is, improvements in recognition performance, not code quality. I notice that System.Speech has some methods that are not in the COM version, and the grammar format is different.

    Thanks again for your help.

    Monday, April 17, 2017 10:23 AM
  • Hi Oztromboli,

    Please refer to this Microsoft.Speech and System.Speech article for more detailed info.

    And MSDN article explain the Microsoft Speech Platform:

    https://msdn.microsoft.com/en-us/library/jj127858.aspx

    Best Regards,

    Cherry Bu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Marked as answer by Oztromboli Thursday, April 20, 2017 2:45 AM
    Thursday, April 20, 2017 2:25 AM
    Moderator
  • Thanks Cherry, that helps.
    Thursday, April 20, 2017 2:45 AM