Muf*_*fex 1 c++ sapi text-to-speech
在花了很多时间在网上搜索之后,我想是时候问了。
我正在尝试使用 C++ 中的 SAPI5 实现一些文本到语音。唯一可用的 64 位语音是 Anna。和安娜在一起一切都很好,但我还需要一个德国人的声音。所以我找到了 Hedda(微软)和 Steffi(Realspeak)。
我已经想实施一些约会服务。
Hedda 和 Steffi 均未添加到注册表中。因此,当 SAPI 检查“HKLM\SOFTWARE\Microsoft\Speech\Voices”以获取选择语音所需的令牌时,它们都不会被 SAPI 检测到。我还尝试将注册表路径更改为 ...\SOFTWARE\Wow6432Node... 以使用 32 位语音,但没有成功。
有人知道如何将 Hedda 或 Steffi 与 Sapi 一起使用吗?有没有办法使用32位语音?
希望任何人都可以提供帮助。提前致谢。
小智 5
如果您构建了 32 位程序,并且将 32 位语音正确安装到注册表中,则您可以使用 32 位语音。我在这里描述了如何做这个注册表黑客。基本上,您只需在注册表中移动内容即可。完成此操作的最快方法是安装您想要的所有语音,然后使用 RegEdit 将这些特定注册表导出到您的语音平台语音所在的位置。
然后用文本编辑器打开注册表文件,将“Speech Server\v11.0\Voices”替换为“Speech\Voices”,将“Speech Server\v11.0\Voices”替换为“Speech\Voices”。保存注册表文件,然后运行它们以添加到您的注册表中。
您应该能够在 Windows 提供的普通文本到语音对话中测试您的新语音。但是,如果您使用的是 64 位系统并且想要测试 32 位语音(因为您正在构建 32 位程序),则必须使用以下任一命令打开 Windows 语音到文本对话框
C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl 对于 32 位语音我相信并且
C:\Windows\System32\Speech\SpeechUX\sapi.cpl 用于 64 位系统语音。
就像这看起来很矛盾。