花了很多时间在网上搜索后,我觉得是时候问了。
我试图用C ++中的SAPI5实现一些文本到语音。 唯一可用的64位语音是Anna。安娜一切都很好,但我也需要一个德国人的声音。所以我找到了Hedda(微软)和Steffi(Realspeak)。
我已经想要实施一些约会服务了。
Hedda和Steffi都没有添加到注册表中。因此,当它检查" HKLM \ SOFTWARE \ Microsoft \ Speech \ Voices"时,SAPI都检测不到它们。获得所需的令牌以选择语音。 我还尝试将注册表路径更改为... \ SOFTWARE \ Wow6432Node ...以使用32位语音,但没有成功。
有人知道如何在Sapi中使用Hedda或Steffi吗? 有没有办法使用32位声音?
希望任何人都可以提供帮助。 提前谢谢。
答案 0 :(得分:4)
如果构建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位程序),则必须使用
打开Windows语音对话框。C:\的Windows \ Syswow64资料\语音\ SpeechUX \ sapi.cpl 对于32位的声音,我相信和
C:\ Windows \ System32下\语音\ SpeechUX \ sapi.cpl 对于64位系统的声音。
看起来很矛盾。
答案 1 :(得分:0)
好吧,编辑注册表完成了这项工作。
从" \ Speech Server \ v11.0 ..."复制注册表后, to" \ Speech ..." (参见Lesley Gushurst)并重新安装SDK,运行时和语音,语音 - " Hedda"可以在64位应用程序的64位系统上使用。
感谢您的帮助。