c# - 使用其他语音时的文本到语音 SAPI5 AccessViolationException

标签 c# winforms .net-3.5 text-to-speech sapi

我已经为 SAPI5 Eliska22k 安装了捷克语音。它在 Windows 7 上工作正常。现在我有 Windows 8,在调用 Speak 方法时它给了我 Attempted to read or write protected memory。这通常表明其他内存已损坏。

我还尝试使用 .NET System.Speech 中的 SpeechSynthesizer。它还可以看到安装了语音 Eliska22k(在 W7 上它仅适用于 SAPI5)但它不会写入任何异常它只是不会启动。在 SelectVoice("Eliska22k") 方法程序中退出。

默认语音在 SAPI5 中也能正常工作,在默认语音中也是如此。

我已经安装了 SpeechPad,它可以很好地与语音 Eliska22k 配合使用。我找不到问题所在。

SpeechSynthesizer voice = new SpeechSynthesizer();

voice.SelectVoice("Eliska22k");// here program just exit without any exeption
voice.Rate = 2;

voice.SpeakAsync("Ahoj, jak se máš?");

SAPI5

SpVoice voice = new SpVoice();

voice.Voice = voice.GetVoices().Item(6);// index of eliska voice
voice.Rate = 2;

voice.Speak("Ahoj, jak se máš?", SpeechVoiceSpeakFlags.SVSFlagsAsync);//here occurs exeption

感谢您的想法。

最佳答案

据我所知,该软件尚不兼容 Windows 8。

Xtranormal 开发了这些语音包,将它们的文本作为附加组件添加到动画软件中。

PC World 查看对该软件的评论表明他们的 2.5 beta 规范适用于 Windows XP 和 Windows Vista。

请注意,PCWorld 审查是在 2010 年进行的。这次审查后集成了 Windows 7 支持。

注意到 Windows 7 发布滞后以及此软件升级到 Windows 7 兼容性也加强了我的论点,即这还没有为 Windows 8 做好准备。 (windows 7 发布 5 个月后 pc world 评论了这个软件,它与 windows 7 不兼容,windows 8 还没有那么久,升级软件需要时间;))

their own website 上查看他们的技术细节建议最晚使用 Windows 7 的推荐设置。

这对我来说表明他们尚未将其更新到 Windows 8。

(作为额外的脚注,YouTube 上没有关于此软件与 Windows 8 的单一教程,而是关于其他操作系统的大量教程,如今人们制作了关于任何内容的教程,但缺少针对此操作系统的教程(尽管应用程序越来越多两年来的流行再次表明,还没有 Windows 8 ;)

脚注上的注释,Software Informer 是一个网站,几乎所有可用的软件都经过审查,旧版本收到了 2 - 3 条评论,而最新版本收到了 260 条评论,因此众所周知的受欢迎程度有所提高 )

脚注 2;我专注于该软件的原因是因为声音最初是为该软件设计的。因此,如果语音要进行升级,那么他们打算首先使用的软件很可能会首先升级)

你认为他们只会在他们的网站某个地方说出他们支持的操作系统:/

关于c# - 使用其他语音时的文本到语音 SAPI5 AccessViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111456/

相关文章:

c# - linq 查询查找列表项的不同组合,一次取 2 个 c#

c# - Activator.CreateInstance() 和 typeof(T).InvokeMember() 与 BindingFlags.CreateInstance 之间的区别

c# - 找不到 Controller dotnetCore 类

c# - 配置缓存类与使用 HTTP header 缓存

c# - 命名空间 'routing' visual studio 中不存在类型或命名空间名称 'system.web'

c# - 在浏览器中运行 Windows 窗体

vb.net - 如何使用 vb.net 将无限量的数据文件中的数据导入到 DataGridView 中?

c# - 在 C# 中修改 ComboBox SelectedIndex 而不触发事件

.net-3.5 - Microsoft.CompactFramework.VisualBasic.targets 文件从何而来?

linq - 在 .NET 3.5 中的枚举列表上使用 List.Find 或 LINQ