System.MissingMemberException:"找不到类型'SpVoice'上的公共成员'speak'。



我正在尝试运行sapi语音文本到语音并收到错误。看吗?我已经添加了Imports System.Speech.Synthesis.

sapi = CreateObject("sapi.spvoice")
sapi.speak("A as an apple")

我只是通过。net 5.0中的一个引用测试了SAPI,而不是后期绑定,它工作了。如果可以的话,使用早期绑定要好得多。我建议你把Option Strict On在你的项目属性,所以早期的绑定是强制的,也把它在VS选项On,所以它将默认为On为所有未来的项目。

完成后,打开项目属性的References页面并添加一个新的引用。选择Browse,导航到C:WindowsSystem32SpeechCommon,选择sapi.dll。这将添加一个对Interop的引用。将SpeechLib放到项目中。你现在可以访问具有完整智能感知支持的库中的类型和成员,就像。net库一样。

然后您可以导入SpeechLib名称空间,然后将代码转换为使用早期绑定:

Dim sapi As SpVoice

:

sapi = New SpVoice
sapi.Speak("A as an apple")

说了这么多,特别是如果你打算使用。net 5.0——最新最好的版本——当。net提供了一个托管选项时,你真的不应该使用一个旧的、非托管的语音库。您应该添加System。SpeechNuGet包到您的项目中,并使用它提供的功能。我不会在这里解释,因为它超出了这个主题的范围,但是你应该研究一下。

相关内容

  • 没有找到相关文章

最新更新