【发布时间】:2016-02-15 17:39:30
【问题描述】:
我试图制作一个简单的控制台程序,它使用来自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(...) 行,并带有消息系统上没有安装语音或当前安全设置没有可用的语音。
speech.GetInstalledVoices() 表示安装了 Microsoft Anna,并且它的Enabled 也设置为true。
我尝试将 System.Speech.Synthesis 替换为 Microsoft.Speech.Synthesis(dll 位于 C:\Program Files (x86)\Microsoft Speech Platform SDK\Assembly\Microsoft.Speech.dll),但同样的事情发生了。
导航到控制面板 > 语音 > 文本到语音并单击“预览语音”也失败并显示消息 无法播放此语音。请尝试选择其他声音或选择其他音频输出设备。 Microsoft Anna - 英语(美国)是唯一的选项。
(不过,Windows 的语音识别可以工作,如果有帮助的话。)
一些解决方案建议导航到注册表编辑器,HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Speech > Voices > Tokens 并修复损坏的语言键。在令牌下是 MS-Anna-1033-20-DSK > Attributes,Language-key 应该是 409。
另一个解决方案建议从 Visual Studio 的配置管理器更改 Active 解决方案平台,但我已经使用任何 CPU、x86 和 x64 测试了该程序,但没有一个可以工作。
我的文字转语音有什么问题? :(
编辑:
安装 Visual Studio 2012 以防 .NET Framework 4.0 出现问题,因为 VS2012 支持 4.5,但它也不起作用。
我想问题出在我的 Windows 7 中,因为即使是内置的文字转语音功能也不起作用。
【问题讨论】:
-
很遗憾,我没有为您提供答案,但感谢您在最终发布问题之前多次尝试自己解决问题。如今,人们很少在放弃之前尝试帮助自己。
-
我不理解那些人,因为您通常会在为帖子写好标题后从建议的主题中找到答案。在我看来,提出一个关于 SO 的新问题应该被视为最后也是最后的选择,因为大多数问题在几年前就已经解决了。
标签: c# .net windows-7 64-bit text-to-speech