C# 语音合成器 - "No voice installed on the system"
C# SpeechSynthesizer - "No voice installed on the system"
我试图制作一个简单的控制台程序,它使用 System.Speech.Synthesis
中的 SpeechSynthesizer
将文本转换为语音,但它不起作用。
我正在使用 64 位 Windows 7 和 Visual Studio 2010(我认为是 .NET Framework 4.0?)
程序:
using System.Speech.Synthesis;
// *skip*
SpeechSynthesizer speech = new SpeechSynthesizer();
speech.SetOutputToDefaultAudioDevice();
speech.Speak("Hello world");
InvalidOperationException
出现在第 speech.Speak(...)
行,消息 系统上未安装语音或 none 当前安全设置可用。
speech.GetInstalledVoices()
说明安装了Microsoft Anna并且Enabled
也设置为true
.
我尝试用 Microsoft.Speech.Synthesis
替换 System.Speech.Synthesis
(dll 位于 C:\Program Files (x86)\Microsoft Speech Platform SDK\Assembly\Microsoft.Speech.dll)但是同样的事情发生了。
导航到“控制面板”>“语音”>“文本转语音”并单击 "Preview Voice" 也会失败,并显示一条消息 无法播放此语音。请尝试选择其他语音或选择不同的音频输出设备。 Microsoft Anna - English (United States) 是唯一的选项。
(Windows' 语音识别虽然有帮助,但还是有效。)
一些解决方案建议导航至注册表编辑器,HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Speech > Voices > Tokens 并修复损坏的语言键。令牌下是 MS-Anna-1033-20-DSK > 属性,语言密钥应该是 409。
另一个解决方案建议从 Visual Studio 的配置管理器更改活动解决方案平台,但我已经用任何 CPU、x86 和 x64 测试了该程序,并且 none 工作。
我的文字转语音有什么问题? :(
编辑:
安装 Visual Studio 2012 以防 .NET Framework 4.0 出现问题,因为 VS2012 支持 4.5,但它也不起作用。
我想问题出在我的 Windows 7 上,因为即使是内置的文本转语音功能也不起作用。
不确定这是否对您有帮助,但我 运行 今天早上遇到了类似的情况。事实证明,在我的 ClickOnce 应用程序中,我必须将以下内容添加到我的 app.manifest 文件中:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
这应该放在 assembly/security/requestedPrivileges 节点中。
终于解决了
我的 SpeechEngine(或在 Windows 7 上调用的任何东西)显然已损坏,运行宁系统文件检查器 (SFC) 修复了它。
到运行 SFC,输入cmd(必须运行作为管理员)sfc /scannow
我试图制作一个简单的控制台程序,它使用 System.Speech.Synthesis
中的 SpeechSynthesizer
将文本转换为语音,但它不起作用。
我正在使用 64 位 Windows 7 和 Visual Studio 2010(我认为是 .NET Framework 4.0?)
程序:
using System.Speech.Synthesis;
// *skip*
SpeechSynthesizer speech = new SpeechSynthesizer();
speech.SetOutputToDefaultAudioDevice();
speech.Speak("Hello world");
InvalidOperationException
出现在第 speech.Speak(...)
行,消息 系统上未安装语音或 none 当前安全设置可用。
speech.GetInstalledVoices()
说明安装了Microsoft Anna并且Enabled
也设置为true
.
我尝试用 Microsoft.Speech.Synthesis
替换 System.Speech.Synthesis
(dll 位于 C:\Program Files (x86)\Microsoft Speech Platform SDK\Assembly\Microsoft.Speech.dll)但是同样的事情发生了。
导航到“控制面板”>“语音”>“文本转语音”并单击 "Preview Voice" 也会失败,并显示一条消息 无法播放此语音。请尝试选择其他语音或选择不同的音频输出设备。 Microsoft Anna - English (United States) 是唯一的选项。
(Windows' 语音识别虽然有帮助,但还是有效。)
一些解决方案建议导航至注册表编辑器,HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Speech > Voices > Tokens 并修复损坏的语言键。令牌下是 MS-Anna-1033-20-DSK > 属性,语言密钥应该是 409。
另一个解决方案建议从 Visual Studio 的配置管理器更改活动解决方案平台,但我已经用任何 CPU、x86 和 x64 测试了该程序,并且 none 工作。
我的文字转语音有什么问题? :(
编辑:
安装 Visual Studio 2012 以防 .NET Framework 4.0 出现问题,因为 VS2012 支持 4.5,但它也不起作用。
我想问题出在我的 Windows 7 上,因为即使是内置的文本转语音功能也不起作用。
不确定这是否对您有帮助,但我 运行 今天早上遇到了类似的情况。事实证明,在我的 ClickOnce 应用程序中,我必须将以下内容添加到我的 app.manifest 文件中:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
这应该放在 assembly/security/requestedPrivileges 节点中。
终于解决了
我的 SpeechEngine(或在 Windows 7 上调用的任何东西)显然已损坏,运行宁系统文件检查器 (SFC) 修复了它。
到运行 SFC,输入cmd(必须运行作为管理员)sfc /scannow