Speech Recognition in Uno
Tip
This article covers Uno-specific information for Windows.Media.SpeechRecognition. For a full description of the feature and instructions on using it, consult the UWP documentation: https://learn.microsoft.com/en-us/uwp/api/windows.media.speechrecognition
- The
Windows.Media.SpeechRecognitionclass allows an application to recognize voice input.
Uno's implementation currently supports basic native speech recognition.
Supported Features
Following features of Windows.Media.SpeechRecognition.SpeechRecognizer are currently supported:
| Feature | iOS | Android | Remarks |
|---|---|---|---|
| SpeechRecognizer() | X | X | |
| SpeechRecognizer(Language) | X | X | |
| Constraints | - | - | |
| ContinuousRecognitionSession | - | - | |
| CurrentLanguage | X | X | |
| State | X | X | |
| SupportedGrammarLanguages | - | - | |
| SupportedTopicLanguages | - | - | |
| SystemSpeechLanguage | - | - | |
| Timeouts | X | X | |
| UIOptions | X | X | Not used |
| CompileConstraintsAsync() | X | X | Always return Success (implemented to meet UWP constraint that requires CompileConstraintsAsync() to be called before RecognizeAsync()) |
| Dispose() | X | X | |
| RecognizeAsync() | X | X | |
| RecognizeWithUIAsync() | - | - | |
| StopRecognitionAsync()() | X | X | |
| TrySetSystemSpeechLanguageAsync(Language) | - | - | |
| HypothesisGenerated | X | X | |
| RecognitionQualityDegrading | - | - | |
| StateChanged | X | X |
Requirement
iOS
Requires iOS10+ Following lines need to be added to your info.plist
<key>NSSpeechRecognitionUsageDescription</key>
<string>[SpeechRecognition usage description]</string>
<key>NSMicrophoneUsageDescription</key>
<string>[SpeechRecognition usage description]</string>
Android
Following lines need to be added to your AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Limitation
In Windows.Media.SpeechRecognition.SpeechRecognitionResult, only Text, Alternates and GetAlternates(uint maxAlternates) are implemented.
In particular, RawConfidence and Confidence fields are not currently supported