0

前段时间,我用 Visual Studio 编写了一个 Text to Speech 和 Speech to Text 机器人。它在我的 Windows PC 上运行良好。我决定将这个软件带到带有 Raspbian 的 Raspberry Pi 4 上,但是当我尝试加载我的应用程序时,弹出了这个错误:

Unhandled Exception: System.TypeLoadException: Could not load type of field 'MyAppName.Form1:speechRecognizer' (2) due to: Could not load file or assembly 'Microsoft.CognitiveServices.Speech.csharp, Version=1.6.0.28, Culture=neutral, PublicKeyToken=d2e6dcccb609e663' or one of its dependencies. [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type of field 'MyAppName.Form1:speechRecognizer' (2) due to: Could not load file or assembly 'Microsoft.CognitiveServices.Speech.csharp, Version=1.6.0.28, Culture=neutral, PublicKeyToken=d2e6dcccb609e663' or one of its dependencies.

我是 Linux 新手,不知道如何解决这个问题!

4

2 回答 2

1

听起来您想使用Microsoft.CognitiveServices.SpeechC# 创建一个 GUI 应用程序,并使其在具有 Raspbian OS 的 Raspberry Pi 4 上运行。

当然,正如@Rabban 在评论中所说,WinForms仅支持 Windows,即使是 .NET Core(.NET 的跨平台版本),您可以参考README.mdGitHub repo的内容dotnet/winforms来了解​​它。

因此,为了实现您的需求,必要的要求是您要使用的所有框架、库和运行时都必须支持 Linux on ARM CPU。然后,我研究了它,如下所示。

  1. 对于,我从https://www.nuget.org/packages/Microsoft.CognitiveServices.SpeechMicrosoft.CognitiveServices.Speech下载了它的 nuget 包并使用它如下图所示,然后我确定它支持 ARM64 CPU 上的 Linux。是的,最新的 Raspbian 版本支持 Respberry Pi 4 的 ARM64。7zipruntimesBuster

    在此处输入图像描述

  2. 对于 GUI 和 .NET 运行时,.NET Core 是 Linux on Boardcom ARM CPU for Raspberry Pi 的唯一选择。然后,我知道Avalonia是一个 C# for .NET Core 的跨平台 XAML,根据其 GitHub repo 的描述,如图,我认为它可能支持 Raspbian 和 ARM CPU,因为对 Android 和 iOS 的实验支持。

    在此处输入图像描述

    同时,在 Raspbian #1072 上有一个未解决的 Avalonia 问题可供讨论。并且为了兼容性,请使用 .NET Core 2.1 并从https://dotnet.microsoft.com/download/dotnet-core/2.1下载,如下图。

    在此处输入图像描述

最后,我认为的最后一个开发建议是在Visual Studio中使用.NET Core和Avalonia开发您的应用程序并使其在PC上运行,然后将PC上的项目源代码复制到您的Respberry Pi 4的Respbian中将其作为 .NET Core 项目尝试重新构建以运行。

于 2019-12-09T10:11:44.187 回答
0

如果您想在树莓派上运行 Windows 应用程序,我认为您应该在树莓派 4 中使用 Windows IoT 核心操作系统。

于 2019-12-09T10:15:17.023 回答