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