После того, как я установил Windows IoT (10.0.10586) и Visual Studio 2015 с обновлением 1, я получил COM -Exception, когда я использую SpeechRecognizer в универсальном приложении на моей малине Pi 2 (с Windows IoT 10.0.10586).SpeechRecognizer не работает, COMException: класс не зарегистрирован/приложение UWP Windows IoT (10.0.10586) и обновление Visual Studio 2015 1
Если я запустил приложение UWP SpeechRecognizer в Windows 10, он работает без проблем, 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, где свойство Confidence is Rejected и Status is Success, но произнесенный текст всегда является пустой строкой. Он работает на 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:
Интернет (клиент) и микрофон
Вы проверили, установлены ли какие-либо языки? –
Спасибо за ваш ответ. Я проверил его, да, был установлен en-US, и я установил de-DE, но все еще не работает. – Sascha
Какой тип устройства для подключения микрофона и аудиосигнала вы подключили? Можете ли вы проверить, что аудио вход работает вообще? –