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 advanceAnonymous
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.