Visual studio 2015 SpeechRecognitor不工作,COMException:类未注册/UWP应用程序Windows IoT(10.0.10586)和Visual Studio 2015更新1

Visual studio 2015 SpeechRecognitor不工作,COMException:类未注册/UWP应用程序Windows IoT(10.0.10586)和Visual Studio 2015更新1,visual-studio-2015,speech-recognition,win-universal-app,uwp,windowsiot,Visual Studio 2015,Speech Recognition,Win Universal App,Uwp,Windowsiot,在我安装了Windows IoT(10.0.10586)和Visual Studio 2015及更新1之后,当我在Raspberry Pi 2(使用Windows IoT 10.0.10586)上使用Universal App中的SpeechRecognizer时,我遇到了COM异常 如果我在Windows 10上运行SpeechRecognizer UWP应用程序,它可以正常工作,COM异常仅在Windows IoT(10.0.10586)中发生。使用旧版本的Windows IoT和Visua

在我安装了Windows IoT(10.0.10586)和Visual Studio 2015及更新1之后,当我在Raspberry Pi 2(使用Windows IoT 10.0.10586)上使用Universal App中的SpeechRecognizer时,我遇到了COM异常

如果我在Windows 10上运行SpeechRecognizer UWP应用程序,它可以正常工作,COM异常仅在Windows IoT(10.0.10586)中发生。使用旧版本的Windows IoT和Visual Studio 2015(不带更新1),它也可以工作

有人能解决这个问题吗

var speechRecognizer=new speechRecognizer();
var约束=新的SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.Dictation,“听写”);
speechRecognizer.Constraints.Add(约束);
wait speechRecognizer.CompileConstraintsAsync();
//此行引发异常:
//引发异常:App.exe中的“System.Runtime.InteropServices.COMException”
//WinRT信息:类未注册
//不支持操作。未知错误:0x80070057。
var result=await speechRecognizer.RecognizeWithUIAsync();
要获取示例工作,请在Package.appxmainifest中启用以下功能:

互联网(客户端)和麦克风

编辑

正如Eric Brown所说,RecognitizeWithUIAsync似乎不适用于Windows IoT(我记得不正确,我似乎从未使用过RecognitizeWithUIAsync,但我知道SpeechRecognitor在过去可以工作)

但是,RecognizeAsync对我也不起作用。不会引发异常,但RecognitizeAsync不会等待语音,它直接返回SpeechRecognitionResult对象,其中属性可信度被拒绝,状态为Success,但语音文本始终为空字符串。它适用于Windows 10,但不适用于Windows IoT

有人知道为什么没有检测到语音/不会返回语音吗

var speechRecognizer=new speechRecognizer();
var约束=新的SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.Dictation,“听写”);
speechRecognizer.Constraints.Add(约束);
wait speechRecognizer.CompileConstraintsAsync();
while(true)
{
var result=await speechRecognizer.RecognizeAsync();
Debug.WriteLine(!string.IsNullOrEmpty(result.Text)?result.Text:“结果中无语音”);
}
要获取示例工作,请在Package.appxmainifest中启用以下功能:


Internet(客户端)和麦克风

在Windows IoT中未实现UIAsync识别(因为没有UI)。您可以很好地使用
RecognizeAsync

最终让SpeechRecognitizer与Windows IoT 10.0.10586和Visual Studio 2015 Update 1协同工作

解决方案:使用与Windows IoT 10.0.10586完全兼容的麦克风。我使用Microsoft LifeCam HD-3000(附带麦克风)

SpeechRecognitor现在使用ContinuousRecognitionSession,使用语法文件(定义用户可以说什么的文件)和听写(自由言论)来识别异步。认识到UIAsync不起作用,也可能永远不会起作用(参见Eric Browns的回答)

注意:如果认为麦克风在任何其他应用程序中工作,那么它也必须与SpeechRecognitor一起工作,这是一个错误。我有一个麦克风,可以与一个简单的录音应用程序配合使用,但不能与SpeechRecognitor配合使用。还请注意,在较旧的Windows IoT版本中使用SpeechRecognizer的话筒并不一定要在Windows IoT 10.0.10586中使用SpeechRecognizer

使用网络摄像头作为麦克风并不太好。如果有人的麦克风与SpeechRecognizer和Windows IoT 10.0.10586配合使用,请张贴


如果您正在寻找带有语法文件示例的SpeechRecognitor ContinuousRecognitionSession,您可以在下面的项目中查找。在评论中,您可以看到如何使用SpeechRecognizer使用其他语言



也许Windows Update中将来会有驱动程序更新,我们不再有此类问题。

您是否检查了是否安装了任何语言?谢谢您的回复。我检查过了,是的,我们安装了en-US,我安装了de-de,但仍然不工作。您连接了什么类型的麦克风和音频输入设备?你能确认音频输入工作正常吗?谢谢,好主意。我用一个简单的录音应用程序验证了麦克风是否正常工作。麦克风工作正常,仍然没有语音检测。目前我唯一要检查的另一件事是验证您是否可以访问互联网。如果仍然不起作用,请将您的整个项目发送给我,我会让其他团队成员查看。不过,这要到新年之后才会发生。我已经测试了另外四个usb麦克风。其中两人在Windows IoT 10.0.10568中使用SpeechRecognitor。可以工作的麦克风:“蓝色麦克风雪球”(它真的很大)和“Kinobo-Mini Akiro USB麦克风”。我可以确认,使用Kinobo麦克风在Windows IoT 10.0.10586上可以进行连续语音识别。物美价廉的商品:)也许也很有趣: