2

我在我的 Windows 7 64 位操作系统中安装了一个新的 32 位 Scansoft 语音 (Jennifer),以便能够在我正在开发的一个 .NET 应用程序中使用。

问题是我在调用该方法时:

   List<string> allInstalledVoices = new SpeechSynthesizer().GetInstalledVoices();

我只返回一个声音,即默认的 Microsoft Anna Voice。但我可以在其他文本到语音应用程序中看到所有已安装的声音。

4

3 回答 3

4

我发现了问题所在。事实证明,将项目编译到“任何 CPU”(使用 Visual Studio 2008)时,就会出现问题。但是改成x86后问题就没有了。

于 2010-07-12T22:38:17.533 回答
2

我在验证这一点时遇到了麻烦,但我相信 Scansoft 的 Jennifer 声音是符合 SAPI 4.0 的声音;托管语音 API 仅适用于符合 SAPI 5.1 的语音。

于 2010-07-12T19:56:54.203 回答
1

最近对 Windows 的更新意味着发布的对此问题的答案不再有效。

新的修复是:

注册表位置中列出的语音文件...

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\(filename)]

...都需要复制到新位置:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\(filename)]

请注意,“属性”子文件夹即[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\(filename)\Attributes]

还需要复制到新位置并进行编辑,使其正确反映它所引用的语音文件的名称和路径。

于 2021-09-17T08:01:42.400 回答