简体   繁体   English

SAPI 5语音合成和C#

[英]SAPI 5 voice synthesis and C#

I have installed new SAPI5 voice. 我已经安装了新的SAPI5语音。 In computer settings of Speech program is new voice visible and available to use. 在语音程序的计算机设置中,新的语音可见且可供使用。 But my program cannot find it. 但我的程序找不到它。 To find it, I am using this part of code, I use System.Speech.Synthesis namespace. 为了找到它,我正在使用这部分代码,我使用System.Speech.Synthesis命名空间。

SpeechSynthesizer s = new SpeechSynthesizer();
foreach (InstalledVoice v in s.GetInstalledVoices())
{
    st += v.VoiceInfo.Name+"\n";
}

MessageBox.Show(st);

The only voice found is Microsoft Anna. 发现的唯一声音是微软安娜。 My code for speeking is as follow: 我的speeking代码如下:

s.SelectVoice("Eliska22k");//name of the voice is Eliska22k

s.Speak("ahoj");

I am using C# 4 and I have windows vista 32 bit. 我正在使用C#4,我有32位的Windows Vista。 Where is my mistake? 我的错误在哪里? Is in the code or anywhere else? 在代码或其他地方?

EDIT: requested registry values: 编辑:请求的注册表值:

in HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Speech \\ Voices中

DefaultTokenId: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\TokenEnums\\Infovox Desktop v2.2\\Eliska22k DefaultTokenId:HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Speech \\ Voices \\ TokenEnums \\ Infovox Desktop v2.2 \\ Eliska22k

DefaultTTSRate: 0 DefaultTTSRate:0

in HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\TokenEnums\\Infovox Desktop v2.2\\Eliska22k HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Speech \\ Voices \\ TokenEnums \\ Infovox Desktop v2.2 \\ Eliska22k

405: Eliska (Czech) SAPI5 405:Eliska(捷克)SAPI5

CLSID: {F8E89351-F6B9-4C98-91F9-A967BA752655} CLSID:{F8E89351-F6B9-4C98-91F9-A967BA752655}

VoiceData: Eliska22k VoiceData:Eliska22k

in HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\TokenEnums\\Infovox Desktop v2.2\\Eliska22k\\Attributes HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Speech \\ Voices \\ TokenEnums \\ Infovox Desktop v2.2 \\ Eliska22k \\ Attributes

Age: Adult 年龄:成人

AudioFormats 18 AudioFormats 18

Gender: Female 性别女

Language: 405;5 语言:405; 5

Name: Eliska22k 姓名:Eliska22k

You can try to change the target platform and Framework version of your .NET project. 您可以尝试更改.NET项目的目标平台和Framework版本。 Some voices are supported only for x86. 某些声音仅支持x86。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM