我做了一个用DotNetSpeech.dll写入MP3文件的项目,如果开机启动会报 没有注册类别 (异常来自 HRESULT:0x80040154

dbmonths 2013-10-08 12:04:07
SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice();
SpeechStreamFileMode spFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
SpFileStream spFileStream = new SpFileStream();
videoName = Guid.NewGuid().ToString();
videoName = Application.StartupPath + "/video/" + videoName + ".wav";
spFileStream.Open(videoName, spFileMode, false);
voice.AudioOutputStream = spFileStream;
voice.Speak(phoneStr, spFlags);
voice.WaitUntilDone(1000);
spFileStream.Close();


上面是代码,用的是DotNetSpeech.dll,我是使用了打包部署,生成了安装文件,并且安装文件设置了系统服务,开机启动这个项目的winnet.exe文件,当安装文件安装成功之后,如果开机启动,会成功启动这个winnet.exeexe,但是会报错如下:
信息:错误信息:没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
错误源:DotNetSpeech
堆栈: 在 DotNetSpeech.SpVoiceClass.Speak(String Text, SpeechVoiceSpeakFlags Flags)

如果我这时候用任务管理器把winnet.exe这个进程关闭了,然后在安装目录手动启动winnet.exe(或者我直接用vs项目启动),不会报错,但是自己开机启动会报错,求大神给指点迷津,谢谢
...全文
642 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
东北的碳 2015-07-13
  • 打赏
  • 举报
回复
能分享个java调用windows的tts语音引擎的源码吗?谢谢
dbmonths 2013-10-21
  • 打赏
  • 举报
回复
恩,确实很奇怪,但是问题就是这么解决了,我当时也是死马当活马医,因为实在找不出别的办法了,自动开机用服务启动(还未登陆系统,只是开机)会报错,但是当开机登陆后,再用任务管理器把那个进程关闭,重新打开那个软件,就不会报错。。。。
宝_爸 2013-10-10
  • 打赏
  • 举报
回复
引用 5 楼 dbmonths 的回复:
问题解决了,需要安装 SAPI5.1 SDK可以从微软网站下载:http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&DisplayLang=en需要安装程序的有Speech SDK 5.1(68M)和5.1 Language Pack (81.5M)。 如果不安装,那么登录windows后,手动点开项目,不会报错,但是当你制作了系统服务后,让服务开机启动这个项目,那么就会报错了,所以需要安装上面的SDK跟Language Pack
这个解决方法很奇怪哦,如果运行时没有安装的话,手动启动也应该出错的,wacky.
dbmonths 2013-10-09
  • 打赏
  • 举报
回复
问题解决了,需要安装 SAPI5.1 SDK可以从微软网站下载:http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&DisplayLang=en需要安装程序的有Speech SDK 5.1(68M)和5.1 Language Pack (81.5M)。 如果不安装,那么登录windows后,手动点开项目,不会报错,但是当你制作了系统服务后,让服务开机启动这个项目,那么就会报错了,所以需要安装上面的SDK跟Language Pack
宝_爸 2013-10-08
  • 打赏
  • 举报
回复
估计DotNetSpeech服务还没有启动吧。
happytonice 2013-10-08
  • 打赏
  • 举报
回复
对异常做处理,检测等需要的服务启动后再继续
dbmonths 2013-10-08
  • 打赏
  • 举报
回复
为什么用vs2005自带的打包部署工具,生成安装文件,安装后,自动开机启动就会报错,如果开机后手动点开,就不报错。。。在线等,谢谢
dbmonths 2013-10-08
  • 打赏
  • 举报
回复
DotNetSpeech.dll是个dll文件,难道是服务? 中午回家吃饭了,下午在线等,谢谢

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧