gpt4 book ai didi

.net - SpeechRecognitionEngine.InstalledRecognizers() 在 Unity 中返回 null

转载 作者:行者123 更新时间:2023-12-02 00:57:38 25 4
gpt4 key购买 nike

我正在尝试在 Unity 中使用 .NET 3.0 框架中的语音识别系统。因此,我将 .NET 3.0 中的 System.Speech.dll 及其依赖项导入到 Assets 文件夹中,因为更高版本不起作用。我知道我尝试做的事情可能行不通,因为 Unity 使用 .NET 2.0,但我仍然想尝试一下。一切似乎都正常,我可以正常运行游戏,但是当我运行它时出现错误:

 NullReferenceException: Object reference not set to an instance of an object
System.Speech.Internal.ObjectTokens.RegistryDataKey.HKEYfromRegKey (Microsoft.Win32.RegistryKey regKey)
System.Speech.Internal.ObjectTokens.RegistryDataKey.RootHKEYFromRegPath (System.String rootPath)
System.Speech.Internal.ObjectTokens.RegistryDataKey.Open (System.String registryPath, Boolean fCreateIfNotExist)
System.Speech.Internal.ObjectTokens.ObjectTokenCategory.Create (System.String sCategoryId)
System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()
VoiceCommandListener.Start () (at Assets/Scripts/VoiceCommandListener.cs:14)

代码行是:

 SpeechRecognitionEngine speechRecognitionEngine = new SpeechRecognitionEngine(SpeechRecognitionEngine.InstalledRecognizers()[0]);

当我在 Unity 之外运行同一行代码时,它工作正常并且只获取默认和第一个识别器,但不知何故它在 Unity 中不起作用。

我曾尝试在使用 .NET 2.0 而不是 .NET 2.0 子集之间切换,切换到 Microsoft.Speech.Recognition 并导入 Microsoft.Speech.dll 也不起作用,并给出相同类型的错误。我还尝试运行以下代码块:

 SpeechRecognitionEngine speechRecognitionEngine = null;
foreach (RecognizerInfo info in SpeechRecognitionEngine.InstalledRecognizers()) {
if (info.Culture.Equals(requiredCulture) && info.Id == requiredId ) {
speechRecognitionEngine = new SpeechRecognitionEngine(info);
break;
}
}

这给出了相同的结果,这次是在使用“SpeechRecognitionEngine.InstalledRecognizers()”的代码行处。

有人知道为什么它不返回任何东西吗?

切换到 Microsoft.Speech.Recognition 并导入 Microsoft.Speech.dll 也不起作用,并给出相同类型的错误。

提前致谢。

罗恩

最佳答案

我遇到了同样的问题,但情况似乎是附带的 Mono mscorlib 中的 Microsoft.Win32.RegistryKey 类与 Microsoft 版本不完全兼容。

查看 System.Speech dll 中的 ILSpy,它显示出现空引用的方法尝试使用反射获取传递的 RegistryKey 实例的非公共(public)“hkey”字段。该字段在 Unity 附带的 mscorlib 中不可用。

关于.net - SpeechRecognitionEngine.InstalledRecognizers() 在 Unity 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32697868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com