Udostępnij za pośrednictwem


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

https://www.microsoft.com/downloads/details.aspx?FamilyID=30e14c5a-a42c-4d4e-9513-c4b0b8d21086&displaylang=en

https://www.microsoft.com/downloads/details.aspx?FamilyID=768efa33-6606-4b2b-809a-6c69274621d3&displaylang=en

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

  • Anonymous
    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 regards

  • Anonymous
    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. Regards

  • Anonymous
    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 Myblog

  • Anonymous
    February 11, 2010
    The comment has been removed

  • Anonymous
    March 29, 2010
    Hi, It is because you still use desktop SAPI dlls