Search code examples
c#.netsapi

What SAPI version is supported by SpeechSynthesizer?


I looked at SelectVoice() and GetInstalledVoices() as well as the SpeechSynthesizer class.

I saw a similar question, where one answer says

[...] likely to be related to the SAPI version [...]

and the other one says

[...] definitely not related to SAPI version [...]

If I write a speech synthesizer application, what SAPI version should I require my customers to have? I want it as low as possible, of course, but I don't want to get in trouble with bug reports that affect SAPI versions the managed API does not support.


Solution

  • The site Microsoft Speech API (SAPI) 5.3 mentions the managed API, so it must work in SAPI 5.3 or higher.

    Also, since SAPI 5 was a complete resedign, SAPI 4 voices will not work.

    Windows Vista shipped with SAPI 5.3 and according to Wikipedia the managed API, so Microsoft may not have designed it for older versions.

    Windows Vista reached its end of extended support in April 2017, but of course customers may still have setups from voices that were designed for older SAPI versions.

    Please also note:

    • it is possible to hide SAPI 5 voices, so some voices may still be undetected by your program.
    • your program may only find the SAPI voices that match the bitness of your program.

    Credits: parts of this answer were found on Alasdair King's blog post.