2

在安裝Windows IoT(10.0.10586)和Visual Studio 2015及更新1後,我獲得了COM當我在我的Raspberry Pi 2上使用通用應用程序中的SpeechRecognizer時發生異常(Windows IoT 10.0.10586)。SpeechRecognizer不工作,COMException:類未註冊/ UWP應用程序Windows IoT(10.0.10586)和Visual Studio 2015更新1

如果我在Windows 10上運行SpeechRecognizer UWP應用程序,它沒有任何問題,COM異常僅在Windows IoT(10.0.10586)中出現。使用較早版本的Windows IoT和Visual Studio 2015而不使用更新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以下功能:

上網(客戶端)和麥克風

編輯

像埃裏克·布朗說RecognizeWithUIAsync似乎不與Windows IoT一起工作(我記得不正確,它似乎是我從來沒有使用過RecognizeWithUIAsync,但我知道SpeechRecognizer在過去的作品)。

但是RecognizeAsync也不適用於我。沒有異常拋出,但RecognizeAsync不等待語音,它直接返回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以下功能:

上網(客戶端)和麥克風

+0

您是否檢查是否安裝了任何語言? –

+0

感謝您的回覆。我檢查了一下,是的,安裝了en-US,我安裝了de-DE,但仍然無法正常工作。 – Sascha

+0

你有什麼樣的麥克風和音頻輸入設備?你可以驗證音頻輸入是否工作? –

回答

2

終於拿到SpeechRecognizer與Windows物聯網10.0.10586和Visual Studio工作2015年更新1

解決辦法:用麥克風與Windows物聯網10.0.10586完全兼容。我使用微軟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更新未來的驅動程序更新,我們不再有這樣的問題。

+1

我測試了其他四個usb麥克風。其中兩人在Windows IoT 10.0.10568中使用SpeechRecognizer。工作的麥克風:「藍色麥克風雪球」(它真的很大)以及「Kinobo - Mini Akiro USB麥克風」。 – Sascha

+0

我可以確認使用Kinobo麥克風可以在Windows IoT 10.0.10586上連續識別語音。一個很好的質量和範圍便宜買:) – Jensen

+0

也許也有趣:http://stackoverflow.com/questions/35938495/usb-microphone-not-working-with-windows-iot-core – Sascha

2

RecognizeWithUIAsync沒有在Windows物聯網實現的(因爲沒有UI) 。你可以使用RecognizeAsync就好了。

相關問題