2

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 で次の機能を有効にします。

インターネット (クライアント) とマイク

4

2 に答える 2

2

最後に、SpeechRecognizer が Windows IoT 10.0.10586 および Visual Studio 2015 Update 1 で動作するようになりました。

解決策: Windows IoT 10.0.10586 と完全に互換性のあるマイクを使用します。Microsoft LifeCam HD-3000 を使用しています (マイクが含まれています)。

SpeechRecognizer は、グラマー ファイル (ユーザーが発話できる内容を定義するファイル) およびディクテーション (言論の自由) を使用して、ContinuousRecognitionSession および RecognizeAsync と連携するようになりました。RecognizeWithUIAsync が機能せず、機能しない可能性があります (Eric Browns の回答を参照)。

注: マイクが他のアプリで機能する場合、SpeechRecognizer でも機能する必要があると考えるのは誤りです。シンプルなオーディオ レコーダー アプリで動作するマイクがありますが、SpeechRecognizer では動作しません。また、古い Windows IoT バージョンで SpeechRecognizer と連携していたマイクは、必ずしも Windows IoT 10.0.10586 の SpeechRecognizer と連携する必要はありません。

ウェブカメラをマイクとして使用するのはあまり良くありません。SpeechRecognizer と Windows IoT 10.0.10586 で動作するマイクを誰かが持っている場合は、投稿してください。


文法ファイルの例を含む SpeechRecognizer ContinuousRecognitionSession を探す場合は、次のプロジェクトを参照してください。コメントでは、SpeechRecognizer で他の言語を使用する方法を確認できます。

https://www.hackster.io/krvarma/rpivoice-051857


おそらく、将来的に Windows Update でドライバーの更新が行われ、そのような問題は発生しなくなります。

于 2015-12-22T23:25:37.643 に答える
2

RecognizeWithUIAsyncWindows IoT には実装されていません (UI がないため)。ちゃんと使えますRecognizeAsync

于 2015-12-21T18:41:28.093 に答える