【问题标题】:SAPI 5 voice synthesis and C#SAPI 5 语音合成和 C#
【发布时间】:2012-07-15 03:06:44
【问题描述】:

我安装了新的 SAPI5 语音。在语音程序的计算机设置中,新语音可见并可使用。但是我的程序找不到它。为了找到它,我正在使用这部分代码,我使用System.Speech.Synthesis命名空间。

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

MessageBox.Show(st);

找到的唯一声音是 Microsoft Anna。我的演讲代码如下:

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

s.Speak("ahoj");

我正在使用 C# 4 并且我有 windows vista 32 位。我的错误在哪里?是在代码中还是在其他任何地方?

编辑: 请求的注册表值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices

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

默认TTSRate:0

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

405:Eliska(捷克)SAPI5

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

语音数据:Eliska22k

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

年龄:成人

音频格式 18

性别:女性

语言:405;5

名称:Eliska22k

【问题讨论】:

  • 记录 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices 注册表项的内容。
  • 使用 SpeechSynthesizer.GetInstalledVoices() 确保它找到了语音,并且名称与您尝试选择的匹配。
  • 我已经用 GetInstalledVoices() 尝试了这个,声音不存在,@HansPassant 你需要什么样的信息?
  • @HansPassant 我已添加注册表信息
  • @Vodáček 我对捷克语语音感兴趣。我可以问你,你找到了这个声音,它是否与 .NET 语音一起正常工作?谢谢。

标签: c# text-to-speech sapi


【解决方案1】:

您可以尝试更改 .NET 项目的目标平台和框架版本。某些声音仅支持 x86。

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 2015-03-11
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2013-11-30
    • 2015-07-09
    相关资源
    最近更新 更多