.NET MAUI语音转文本实现求助:代码报错解决方案咨询
.NET MAUI语音转文本NullReferenceException解决建议
从报错截图来看,你遇到了NullReferenceException,根源是SpeechToText.Default实例未被正确初始化,以下是针对性解决步骤:
1. 确认安装正确的NuGet包
确保项目中安装了适配你.NET MAUI版本的CommunityToolkit.Maui和CommunityToolkit.Maui.Media包,可通过NuGet包管理器或命令行安装:
dotnet add package CommunityToolkit.Maui dotnet add package CommunityToolkit.Maui.Media
2. 初始化Maui Community Toolkit
在项目的MauiProgram.cs中,添加Toolkit的初始化代码:
var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .UseMauiCommunityToolkit(); // 必须添加这行来初始化所有Toolkit功能 return builder.Build();
3. 配置平台权限
不同平台需要配置对应的权限才能使用语音识别和麦克风:
Android
在Platforms/Android/AndroidManifest.xml中添加录音权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
iOS
在Platforms/iOS/Info.plist中添加权限描述:
<key>NSSpeechRecognitionUsageDescription</key> <string>需要使用语音识别将语音转换为文本</string> <key>NSMicrophoneUsageDescription</key> <string>需要使用麦克风录制语音</string>
4. 修复代码中的两处问题
- 移除成功回调中
RecognitionText的局部变量声明(否则会覆盖外部字段):if (recognitionResult.IsSuccessful) { RecognitionText = recognitionResult.Text; // 去掉前面的string关键字 } - 简化CancellationToken的初始化:
var cancellationToken = CancellationToken.None;
完成以上步骤后,重新编译运行项目,应该能解决当前的空引用异常问题。
内容的提问来源于stack exchange,提问作者Kirti Zare
相关产品推荐
相关产品推荐

