SAPI5 语音/使用 32 位语音

SAPI5 voices / using 32bit voices

在网上搜索了很多时间后,我觉得是时候问一下了。

我正在尝试使用 C++ 中的 SAPI5 实现一些文本到语音的转换。 唯一可用的 64 位语音是 Anna。有了 Anna,一切都很好,但我还需要德国人的声音。所以我找到了 Hedda(Microsoft) 和 Steffi(Realspeak)。

我已经想实现一些约会服务了。

Hedda 和 Steffi 都没有添加到注册表中。因此,当 SAPI 检查 "HKLM\SOFTWARE\Microsoft\Speech\Voices" 以获得 select 声音所需的标记时,它们都不会被 SAPI 检测到。 我还尝试将注册表路径更改为 ...\SOFTWARE\Wow6432Node... 以使用 32 位语音,但没有成功。

有人知道如何将 Hedda 或 Steffi 与 Sapi 一起使用吗? 有什么方法可以使用32位语音吗?

希望有人能提供帮助。 提前致谢。

如果您构建一个 32 位程序,并且在注册表中正确安装了 32 位语音,您就可以使用 32 位语音。 I describe how to do this registry hack over here。基本上,您只需在注册表中移动内容。完成此操作的最快方法是安装所需的所有语音,然后使用 RegEdit 导出语音平台语音所在的那些特定注册表。

然后用文本编辑器打开注册表文件并将"Speech Server\v11.0\Voices"替换为"Speech\Voices" 并将 "Speech Server\v11.0\Voices" 替换为 "Speech\Voices"。保存注册表文件,然后 运行 将它们添加到您的注册表中。

您应该能够在 windows 提供的普通文本到语音对话中测试您的新声音。但是,如果您使用的是 64 位系统并且想要测试 32 位语音(因为您正在构建 32 位程序),则必须使用 [=11] 打开 windows 语音到文本对话框=]

C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl 我相信 32 位声音

C:\Windows\System32\Speech\SpeechUX\sapi.cpl 对于 64 位系统语音。

看起来很矛盾。

好了,编辑注册表就完成了。

将注册表项从“\Speech Server\v11.0...”复制到“\Speech...”(参见 Lesley Gushurst)并重新安装 SDK、运行时和语音后,voice-"Hedda"可以在64位系统上用64位应用程序。

感谢您的帮助。