MAUI Blazor App中Microsoft.CognitiveServices.Speech关键词识别加载自定义table报错
语音关键词识别服务读取模型文件失败(错误码SPXERR_FILE_OPEN_FAILED)
我正在搭建简易语音关键词监听服务,使用Microsoft.CognitiveServices.Speech 1.24.1版本并遵循官方文档操作,但加载KeywordRecognitionModel时触发错误,错误码为0x8 (SPXERR_FILE_OPEN_FAILED)。已确认文件路径可访问,先后尝试相对路径与绝对路径,问题仍未解决。
代码实现
using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; namespace HandyCook.Services { internal class KeyWordRecognizerService { public KeyWordRecognizerService() { StartRecognizing(); } private async void StartRecognizing() { var audioConfig = AudioConfig.FromDefaultMicrophoneInput(); var recognizer = new KeywordRecognizer(audioConfig); recognizer.Recognized += (s, e) => { Console.WriteLine($"{e.Result.Text} DETECTED"); }; // 此处可正常打开文件,验证路径可访问 var stream = await FileSystem.Current.OpenAppPackageFileAsync("XXX.table"); // 在此处触发异常:SPXERR_FILE_OPEN_FAILED var keywordModel = KeywordRecognitionModel.FromFile(Path.Combine(FileSystem.Current.AppDataDirectory, "XXX.table")); var result = recognizer.RecognizeOnceAsync(keywordModel); result.Wait(); } } }
复现步骤
- 创建新的MAUI Blazor应用
- 安装NuGet包
Microsoft.CognitiveServices.Speech 1.24.1 - 在
MauiProgram中将KeyWordRecognizerService注册为单例服务 - 在
Index.razor页面注入该服务
补充信息
- 解决方案资源管理器显示,
XXX.table文件已添加至项目的Resources/Raw目录中 - 使用自定义的
XXX.table关键词模型文件
内容的提问来源于stack exchange,提问作者Oskar Bzdoń
相关产品推荐
相关产品推荐

