Freigeben über


Speech API and engine Availability

This question came in to our SAPI5@microsoft.com alias today:

Q: Can you please tell me where I can get Microsoft Speech API 5.3 appart from those versions packaged with Vista and .Net framework 3?

A: This question and others like this could refer to one of a few things: SAPI, our COM API; System.Speech, our managed API in the .NET Framework 3.0; the TTS engine; or the SR engine.

OS

Managed API

Unmanaged API

TTS engine

SR engine

XP

System.Speech (download the .NET Framework 3.0)

SAPI 5.1 in the OS

MS Sam in the OS, MS Mary and MS Mike as downloads

SR engine in TabletPC, or from Office XP and Office 2003

Vista

System.Speech in .NET Framework 3.0 in the OS

SAPI 5.3 in the OS

MS Anna in the OS

SR engine v8 in the OS

 

If you want your application to work on both XP & Vista and are using SAPI (the COM API) you need to limit yourself to the 5.1 subset of SAPI. The SAPI headers in the current platform SDK have the appropriate ifdefs in them so that if you target your app for XP, you will only see functions that are available in XP.

System.Speech relies on SAPI for some functionality, so there are a couple places where functionality is restricted on XP.

The newer engines are more accurate/better sounding than the old engines.

So, if you want your application to work on both XP and Vista, that is easily done. But if you want the newest functionality, or the best accuracy and voice quality/intelligibility, you'll want Vista. If you want to use the newest functionality on Vista but also work on XP with reduced functionality, you can try to create the new interfaces, and if that succeeds (as it will on Vista), use them, and if it fails (as on XP), then skip over the part of your code that uses the new APIs.

 (I edited the post to put the info in table form, which is easier to understand).

Comments

  • Anonymous
    March 19, 2008
    hi    this is nick looking to develop a voice command interface for windows xp.    i have developed a speech recognition code which could recognize the command    but i need some basic idea on how to interact with the windows shell.

  • Anonymous
    May 25, 2008
    Hi, So, as long as I understand, there's no TTS Spanish voice available, is that correct?. Can you tell me if its planned?. Thanks a lot. PS: Congratulations for the voice recognition, it is working great in Spanish (Vista, C#, Managed api, WPF). Great work!.

  • Anonymous
    September 13, 2008
    Hi, I have developed TTS synthesizers for Macedonian and Albanian languages based on recorded segments. They are developed in C#. Now I have no idea how to enable them to interact with other applications, for example Microsoft Narrator and SAPI Thanks for your help in advance

  • Anonymous
    December 13, 2009
    Hi, Is there any ways to use the speech engine, which is embedded in Vista and fully support SAPI 5.3, on XP? Thanks.

  • Anonymous
    June 04, 2010
    Can you please do a new post with this chart with updated data? If I go to www.microsoft.com/.../developers.aspx, click on “.Net 3.x System.Speech”, then in the bottom right click on “Microsoft Speech Engines”, I see a similar chart, but it is also out of date and does not include Windows 7 or Windows Server 2008 R2.

  • Anonymous
    August 09, 2010
    Please help. We are coding a .NET 4 app in C# on win7, using simple System.Speech features. It runs on win7 and on some winXP machines, but not others.  These winXP machines have .NET 4 installed, but apparently not the new SAPI.  Question:  How can the new SAPI abilities be installed on winXP boxes.  Specific instructions are needed, please.

  • Anonymous
    July 14, 2012
    How would i develop a dictation program in C# using SAPI for "Dhivehi" language? Please provide guidance for me briefly as to how to proceed. Dhivehi is the language of Maldives. The characters used for writing Dhivehi is "Thaana" which is included in Unicode.