Programming with latest MS TTS engines
We released 12 TTS voices in 12 languages with UCMA SDK (also called as Microsoft Office Communications Server 2007 R2 SDK) . The Microsoft speech engines bundled with the API support twelve different languages, including English (North America, United Kingdom), French (France, Canada), German, American Spanish, Brazilian Portuguese, Italian, Japanese, Korean and Chinese (Simplified and Traditional). These TTS voices are server version. By saying "server", it means these voice has been optimized to be used in server telephony scenerios with good performance.
This post will describe how to program with the TTS engines inside the SDK.
1. Download the the SDK and language pack
2. Read MSDN documentation about the Microsoft.Speech namespace
https://msdn.microsoft.com/en-us/library/microsoft.speech.synthesis(office.13).aspx
3. Use C# to program a basic TTS application with these 12 TTS voices.
Add referrence to Microsoft.Speech, then you can program TTS just like I introduced in previous post.
Comments
Anonymous
October 01, 2009
Hoping you can help me... I installed the .msi (for es-MX), but when I go to Tools-Options-Speech Application SDK-Languages and Speech Engines, all I see is the English one. When iterating through Synsthesizer.InstalledVoices, it finds the Spanish one. But when I try to run, the system throws this error: The Synthesizer does not support a requested voice: There is no TTS engine with the requested voice name 'Microsoft Hilda Telecom'Anonymous
October 01, 2009
what is the "tools->options->speech application sdk"? This isn't related to the MSI. What application do you use?Anonymous
January 16, 2010
Hello, I have installed the SDK and a language pack (the french one) on a X64 Windows 7. But when I Listvoice(); i only get Microsoft Anna - English (United States). Do i miss something ? Thanks a lot for your help. RegardsAnonymous
January 16, 2010
Hi, if you only see Anna, there is something wrong in the code. The voices that are liste in this post are server voice, not desktop so, you can add the referrence to Microsoft.Speech.dll instead of System.Speech.dll to list the voice regardsAnonymous
January 17, 2010
Hello, Thanks for you quick reply. I try with both Microsoft and System. Here is my code : private static void ListVoice() { SpObjectTokenCategory tokenCat = new SpObjectTokenCategory(); tokenCat.SetId(SpeechStringConstants.SpeechCategoryVoices, false); ISpeechObjectTokens tokens = tokenCat.EnumerateTokens(null, null); foreach (SpObjectToken item in tokens) { Utils.LogInfo(item.GetDescription(0)); } } What do you mean by server and not desktop ? In addition when i go to control panel-> speech recognition -> TTS i got only anna US. Is it normal ? One more time thanks a lot for your help. RegardsAnonymous
February 02, 2010
Hi, By server I mean that you need to add referrence to microsoft.speech.dll instead of system.speech.dll the former is used for server TTS while the latter is for desktop one Regards MyblogAnonymous
February 11, 2010
The comment has been removedAnonymous
March 29, 2010
Hi, It is because you still use desktop SAPI dlls