Windows IoT (10.0.10586) と Visual Studio 2015 を Update 1 でインストールした後、Raspberry Pi 2 (Windows IoT 10.0.10586) で Universal App の SpeechRecognizer を使用すると、COM-Exception が発生しました。
Windows 10 で SpeechRecognizer UWP アプリを実行すると、問題なく動作します。COM-Exception は Windows IoT (10.0.10586) でのみ発生します。Windows IoT と Visual Studio 2015 の古いバージョンでも、Update 1 なしで動作します。
問題の解決策はありますか?
var speechRecognizer = new SpeechRecognizer();
var constraint = new SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.Dictation, "dictation");
speechRecognizer.Constraints.Add(constraint);
await speechRecognizer.CompileConstraintsAsync();
//This line throw exception:
//Exception thrown: 'System.Runtime.InteropServices.COMException' in App.exe
//WinRT information: Class not registered
//Operation not supported.Unknown error: 0x80070057.
var result = await speechRecognizer.RecognizeWithUIAsync();
サンプル作業を取得するには、Package.appxmainifest で次の機能を有効にします。
インターネット (クライアント) とマイク
編集
Eric Brown が言ったように、RecognizeWithUIAsync は Windows IoT では動作しないようです (正しく覚えていません。RecognizeWithUIAsync を使用したことがないようですが、SpeechRecognizer が過去に動作したことは知っています)。
しかし、 RecognizeAsync も私には機能しません。例外はスローされませんが、RecognizeAsync は音声を待機しません。プロパティ Confidence が Rejected で Status が Success である SpeechRecognitionResult オブジェクトを直接返しますが、音声テキストは常に空の文字列です。Windows 10 では動作しますが、Windows IoT では動作しません。
発話が検出されない/発話された単語が返されない理由を知っている人はいますか?
var speechRecognizer = new SpeechRecognizer();
var constraint = new SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.Dictation, "dictation");
speechRecognizer.Constraints.Add(constraint);
await speechRecognizer.CompileConstraintsAsync();
while (true)
{
var result = await speechRecognizer.RecognizeAsync();
Debug.WriteLine(!string.IsNullOrEmpty(result.Text) ? result.Text : "No speech in result.");
}
サンプル作業を取得するには、Package.appxmainifest で次の機能を有効にします。
インターネット (クライアント) とマイク