SpracherkennungSpeech recognition

Nutzen Sie die Spracherkennung als Eingabemöglichkeit oder zum Ausführen einer Aktion, eines Befehls oder einer Aufgabe.Use speech recognition to provide input, specify an action or command, and accomplish tasks.

Wichtige APIs: Windows. Media. Sprech ErkennungImportant APIs: Windows.Media.SpeechRecognition

Die Spracherkennung besteht aus einer Sprachlaufzeit, Erkennungs-APIs zum Programmieren der Laufzeit, einsatzfähiger Grammatik für das Diktieren und die Websuche und einer Standard-UI, die Benutzern das Auffinden und Verwenden der Spracherkennungsfeatures erleichtert.Speech recognition is made up of a speech runtime, recognition APIs for programming the runtime, ready-to-use grammars for dictation and web search, and a default system UI that helps users discover and use speech recognition features.

Konfigurieren der SpracherkennungConfigure speech recognition

Um die Spracherkennung mit Ihrer APP zu unterstützen, muss der Benutzer auf seinem Gerät eine Verbindung herstellen und ein Mikrofon aktivieren und die Microsoft-Datenschutzrichtlinie akzeptieren, die der APP die Berechtigung erteilt, Sie zu verwenden.To support speech recognition with your app, the user must connect and enable a microphone on their device, and accept the Microsoft Privacy Policy granting permission for your app to use it.

Um den Benutzer automatisch mit einem System Dialogfeld aufzufordern, das die Berechtigung für den Zugriff auf den audiofeed des Mikrofons (z. b. aus dem unten gezeigten sprach Erkennungs-und Sprachsynthese Beispiel) anfordert, legen Sie einfach die Mikrofon Geräte Funktion im App-Paket Manifestfest.To automatically prompt the user with a system dialog requesting permission to access and use the microphone's audio feed (example from the Speech recognition and speech synthesis sample shown below), just set the Microphone device capability in the App package manifest. Weitere Details finden Sie unter Deklarationen von App-Funktionen.For more detail, see App capability declarations.

Datenschutzrichtlinie für den Mikrofon Zugriff

Wenn der Benutzer auf Ja klickt, um dem Mikrofon Zugriff zu gewähren, wird die APP auf der Seite Einstellungen-> Datenschutz > Mikrofon der Liste der genehmigten Anwendungen hinzugefügt.If the user clicks Yes to grant access to the microphone, your app is added to the list of approved applications on the Settings -> Privacy -> Microphone page. Da der Benutzer diese Einstellung jedoch jederzeit deaktivieren kann, sollten Sie sicherstellen, dass Ihre APP auf das Mikrofon zugreifen kann, bevor Sie versuchen, Sie zu verwenden.However, as the user can choose to turn this setting off at any time, you should confirm that your app has access to the microphone before attempting to use it.

Wenn Sie auch Diktat, Cortana oder andere sprach Erkennungs Dienste unterstützen möchten (z. b. eine in einer Thema Einschränkung definierte vordefinierte Grammatik ), müssen Sie auch bestätigen, dass die Online Spracherkennung (Einstellungen-> Datenschutz > Sprache) aktiviert ist.If you also want to support dictation, Cortana, or other speech recognition services (such as a predefined grammar defined in a topic constraint), you must also confirm that Online speech recognition (Settings -> Privacy -> Speech) is enabled.

Dieser Code Ausschnitt zeigt, wie Ihre APP überprüfen kann, ob ein Mikrofon vorhanden ist, und ob Sie über die entsprechende Berechtigung verfügt.This snippet shows how your app can check if a microphone is present and if it has permission to use it.

public class AudioCapturePermissions
{
    // If no microphone is present, an exception is thrown with the following HResult value.
    private static int NoCaptureDevicesHResult = -1072845856;

    /// <summary>
    /// Note that this method only checks the Settings->Privacy->Microphone setting, it does not handle
    /// the Cortana/Dictation privacy check.
    ///
    /// You should perform this check every time the app gets focus, in case the user has changed
    /// the setting while the app was suspended or not in focus.
    /// </summary>
    /// <returns>True, if the microphone is available.</returns>
    public async static Task<bool> RequestMicrophonePermission()
    {
        try
        {
            // Request access to the audio capture device.
            MediaCaptureInitializationSettings settings = new MediaCaptureInitializationSettings();
            settings.StreamingCaptureMode = StreamingCaptureMode.Audio;
            settings.MediaCategory = MediaCategory.Speech;
            MediaCapture capture = new MediaCapture();

            await capture.InitializeAsync(settings);
        }
        catch (TypeLoadException)
        {
            // Thrown when a media player is not available.
            var messageDialog = new Windows.UI.Popups.MessageDialog("Media player components are unavailable.");
            await messageDialog.ShowAsync();
            return false;
        }
        catch (UnauthorizedAccessException)
        {
            // Thrown when permission to use the audio capture device is denied.
            // If this occurs, show an error or disable recognition functionality.
            return false;
        }
        catch (Exception exception)
        {
            // Thrown when an audio capture device is not present.
            if (exception.HResult == NoCaptureDevicesHResult)
            {
                var messageDialog = new Windows.UI.Popups.MessageDialog("No Audio Capture devices are present on this system.");
                await messageDialog.ShowAsync();
                return false;
            }
            else
            {
                throw;
            }
        }
        return true;
    }
}
/// <summary>
/// Note that this method only checks the Settings->Privacy->Microphone setting, it does not handle
/// the Cortana/Dictation privacy check.
///
/// You should perform this check every time the app gets focus, in case the user has changed
/// the setting while the app was suspended or not in focus.
/// </summary>
/// <returns>True, if the microphone is available.</returns>
IAsyncOperation<bool>^  AudioCapturePermissions::RequestMicrophonePermissionAsync()
{
    return create_async([]() 
    {
        try
        {
            // Request access to the audio capture device.
            MediaCaptureInitializationSettings^ settings = ref new MediaCaptureInitializationSettings();
            settings->StreamingCaptureMode = StreamingCaptureMode::Audio;
            settings->MediaCategory = MediaCategory::Speech;
            MediaCapture^ capture = ref new MediaCapture();

            return create_task(capture->InitializeAsync(settings))
                .then([](task<void> previousTask) -> bool
            {
                try
                {
                    previousTask.get();
                }
                catch (AccessDeniedException^)
                {
                    // Thrown when permission to use the audio capture device is denied.
                    // If this occurs, show an error or disable recognition functionality.
                    return false;
                }
                catch (Exception^ exception)
                {
                    // Thrown when an audio capture device is not present.
                    if (exception->HResult == AudioCapturePermissions::NoCaptureDevicesHResult)
                    {
                        auto messageDialog = ref new Windows::UI::Popups::MessageDialog("No Audio Capture devices are present on this system.");
                        create_task(messageDialog->ShowAsync());
                        return false;
                    }

                    throw;
                }
                return true;
            });
        }
        catch (Platform::ClassNotRegisteredException^ ex)
        {
            // Thrown when a media player is not available. 
            auto messageDialog = ref new Windows::UI::Popups::MessageDialog("Media Player Components unavailable.");
            create_task(messageDialog->ShowAsync());
            return create_task([] {return false; });
        }
    });
}
var AudioCapturePermissions = WinJS.Class.define(
    function () { }, {},
    {
        requestMicrophonePermission: function () {
            /// <summary>
            /// Note that this method only checks the Settings->Privacy->Microphone setting, it does not handle
            /// the Cortana/Dictation privacy check.
            ///
            /// You should perform this check every time the app gets focus, in case the user has changed
            /// the setting while the app was suspended or not in focus.
            /// </summary>
            /// <returns>True, if the microphone is available.</returns>
            return new WinJS.Promise(function (completed, error) {

                try {
                    // Request access to the audio capture device.
                    var captureSettings = new Windows.Media.Capture.MediaCaptureInitializationSettings();
                    captureSettings.streamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.audio;
                    captureSettings.mediaCategory = Windows.Media.Capture.MediaCategory.speech;

                    var capture = new Windows.Media.Capture.MediaCapture();
                    capture.initializeAsync(captureSettings).then(function () {
                        completed(true);
                    },
                    function (error) {
                        // Audio Capture can fail to initialize if there's no audio devices on the system, or if
                        // the user has disabled permission to access the microphone in the Privacy settings.
                        if (error.number == -2147024891) { // Access denied (microphone disabled in settings)
                            completed(false);
                        } else if (error.number == -1072845856) { // No recording device present.
                            var messageDialog = new Windows.UI.Popups.MessageDialog("No Audio Capture devices are present on this system.");
                            messageDialog.showAsync();
                            completed(false);
                        } else {
                            error(error);
                        }
                    });
                } catch (exception) {
                    if (exception.number == -2147221164) { // REGDB_E_CLASSNOTREG
                        var messageDialog = new Windows.UI.Popups.MessageDialog("Media Player components not available on this system.");
                        messageDialog.showAsync();
                        return false;
                    }
                }
            });
        }
    })

Erkennen von SpracheingabeRecognize speech input

Mit einer Einschränkung werden die Wörter und Wortgruppen (Vokabular) definiert, die eine App bei der Spracheingabe erkennt.A constraint defines the words and phrases (vocabulary) that an app recognizes in speech input. Einschränkungen sind der Kern der Spracherkennung und weisen der App eine bessere Kontrolle über die Genauigkeit der Spracherkennung zu.Constraints are at the core of speech recognition and give your app greater control over the accuracy of speech recognition.

Sie können die folgenden Einschränkungs Typen zum Erkennen von Spracheingaben verwenden.You can use the following types of constraints for recognizing speech input.

Vordefinierte GrammatikenPredefined grammars

Mit vordefinierten Diktier- und Websuchgrammatiken können Sie eine Spracherkennung für Ihre App bereitstellen, ohne eine Grammatik erstellen zu müssen.Predefined dictation and web-search grammars provide speech recognition for your app without requiring you to author a grammar. Bei Verwendung dieser Grammatiken wird die Spracherkennung von einem Remotewebdienst durchgeführt, und die Ergebnisse werden an das Gerät zurückgegeben.When using these grammars, speech recognition is performed by a remote web service and the results are returned to the device.

Die Standardgrammatik der Freitext-Diktierfunktion erkennt die meisten Wörter und Ausdrücke, die Benutzer in einer bestimmten Sprache sagen können, und ist für die Erkennung kurzer Ausdrücke optimiert.The default free-text dictation grammar can recognize most words and phrases that a user can say in a particular language, and is optimized to recognize short phrases. Die vordefinierte Grammatik für das Diktieren kommt dann zum Einsatz, wenn Sie keine Einschränkungen für Ihr SpeechRecognizer-Objekt festlegen.The predefined dictation grammar is used if you don't specify any constraints for your SpeechRecognizer object. Die Freitext-Diktierfunktion ist nützlich, wenn Sie nicht einschränken möchten, was Benutzer sagen können.Free-text dictation is useful when you don't want to limit the kinds of things a user can say. Typische Verwendungsmöglichkeiten sind das Erstellen von Notizen oder das Diktieren eines Nachrichtentexts.Typical uses include creating notes or dictating the content for a message.

Die Grammatik für die Websuche enthält wie die Diktiergrammatik eine große Anzahl von Wörtern und Ausdrücken, die Benutzer sagen können.The web-search grammar, like a dictation grammar, contains a large number of words and phrases that a user might say. Sie ist allerdings für die Erkennung von Begriffen optimiert, die beim Suchen im Web häufig verwendet werden.However, it is optimized to recognize terms that people typically use when searching the web.

Hinweis

 Da vordefinierte Diktat-und websuchgrammatiken groß sein können und da Sie Online (nicht auf dem Gerät) sind, ist die Leistung möglicherweise nicht so schnell wie bei einer benutzerdefinierten Grammatik, die auf dem Gerät installiert ist. Because predefined dictation and web-search grammars can be large, and because they are online (not on the device), performance might not be as fast as with a custom grammar installed on the device.  

Diese vordefinierten Grammatiken können zum Erkennen von bis zu zehn Sekunden Spracheingabe verwendet werden. Sie müssen dazu keinen Code selbst erstellen.These predefined grammars can be used to recognize up to 10 seconds of speech input and require no authoring effort on your part. Sie erfordern jedoch eine Netzwerkverbindung.However, they do require a connection to a network.

Um Webdienst Einschränkungen zu verwenden, muss die Spracheingabe und die Diktat Unterstützung in den Einstellungen aktiviert werden, indem die Option "Get to Know Me" in Settings-> Privacy-> Speech, Inking und Inputaktiviert wird.To use web-service constraints, speech input and dictation support must be enabled in Settings by turning on the "Get to know me" option in Settings -> Privacy -> Speech, inking, and typing.

Hier wird gezeigt, wie Sie testen können, ob die Spracheingabe aktiviert ist, und wie Sie die Einstellungen > den Datenschutz > Sprache, das Inking und die Eingabe Seite öffnen.Here, we show how to test whether speech input is enabled and open the Settings -> Privacy -> Speech, inking, and typing page, if not.

Zuerst initialisieren wir eine globale Variable (HResultPrivacyStatementDeclined) für den HResult-Wert 0x80045509.First, we initialize a global variable (HResultPrivacyStatementDeclined) to the HResult value of 0x80045509. Weitere Informationen finden Sie unter Ausnahmebehandlung für in C # oder Visual Basic.See Exception handling for in C# or Visual Basic.

private static uint HResultPrivacyStatementDeclined = 0x80045509;

Wir fangen dann alle Standard Ausnahmen während der Neuverteilung ab und testen, ob der HRESULT -Wert gleich dem Wert der hresultprivacystatus-Variablen Variable ist.We then catch any standard exceptions during recogntion and test if the HResult value is equal to the value of the HResultPrivacyStatementDeclined variable. Wenn dies der Fall ist, wird eine Warnung angezeigt und aufgerufen await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-accounts")); , um die Seite "Einstellungen" zu öffnen.If so, we display a warning and call await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-accounts")); to open the Settings page.

catch (Exception exception)
{
  // Handle the speech privacy policy error.
  if ((uint)exception.HResult == HResultPrivacyStatementDeclined)
  {
    resultTextBlock.Visibility = Visibility.Visible;
    resultTextBlock.Text = "The privacy statement was declined." + 
      "Go to Settings -> Privacy -> Speech, inking and typing, and ensure you" +
      "have viewed the privacy policy, and 'Get To Know You' is enabled.";
    // Open the privacy/speech, inking, and typing settings page.
    await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-accounts")); 
  }
  else
  {
    var messageDialog = new Windows.UI.Popups.MessageDialog(exception.Message, "Exception");
    await messageDialog.ShowAsync();
  }
}

Siehe SpeechRecognitionTopicConstraint.See SpeechRecognitionTopicConstraint.

Programmgesteuerte Listen EinschränkungenProgrammatic list constraints

Einschränkungen per programmgesteuerter Liste sind eine unkomplizierte Methode für die Erstellung einfacher Grammatiken in Form einer Liste von Wörtern und Ausdrücken.Programmatic list constraints provide a lightweight approach to creating simple grammars using a list of words or phrases. Eine Einschränkungsliste eignet sich gut für die Erkennung kurzer, einzelner Ausdrücke.A list constraint works well for recognizing short, distinct phrases. Das explizite Angeben aller Wörter in einer Grammatik verbessert auch die Erkennungsgenauigkeit, da das Spracherkennungsmodul nur eine Übereinstimmung bestätigen muss.Explicitly specifying all words in a grammar also improves recognition accuracy, as the speech recognition engine must only process speech to confirm a match. Die Liste kann auch programmgesteuert aktualisiert werden.The list can also be programmatically updated.

Eine Einschränkungsliste besteht aus einem Array von Zeichenfolgen, die die Spracheingaben darstellen, die von Ihrer App für einen Erkennungsvorgang akzeptiert werden.A list constraint consists of an array of strings that represents speech input that your app will accept for a recognition operation. Sie können in Ihrer App eine Einschränkungsliste einrichten, indem Sie ein Einschränkungslistenobjekt für die Spracherkennung erstellen und ein Array mit Zeichenfolgen übergeben.You can create a list constraint in your app by creating a speech-recognition list-constraint object and passing an array of strings. Fügen Sie dieses Objekt dann der Einschränkungsauflistung der Erkennung hinzu.Then, add that object to the constraints collection of the recognizer. Die Erkennung ist erfolgreich, wenn die Spracherkennung die Zeichenfolgen des Arrays erkennt.Recognition is successful when the speech recognizer recognizes any one of the strings in the array.

Weitere Informationen finden Sie unter sprach Erkennungs-listeinschränkung.See SpeechRecognitionListConstraint.

SRGS-GrammatikenSRGS grammars

Eine Speech Recognition Grammar Specification (SRGS)-Grammatik ist ein statisches Dokument, das im Gegensatz zu einer Einschränkung per programmgesteuerter Liste das in SRGS Version 1.0 definierte XML-Format verwendet.An Speech Recognition Grammar Specification (SRGS) grammar is a static document that, unlike a programmatic list constraint, uses the XML format defined by the SRGS Version 1.0. Eine SRGS-Grammatik bietet die höchstmögliche Kontrolle über die Spracherkennungsfunktion, da Sie mehrere semantische Bedeutungen in einem einzigen Erkennungsvorgang erfassen können.An SRGS grammar provides the greatest control over the speech recognition experience by letting you capture multiple semantic meanings in a single recognition.

Siehe die Spracherkennung.See SpeechRecognitionGrammarFileConstraint.

Sprach Befehls EinschränkungenVoice command constraints

Verwenden Sie eine Voice Command Definition-(VCD-)XML-Datei, um die Befehle zu definieren, mit denen der Benutzer Aktionen initiieren kann, wenn er Ihre App aktiviert.Use a Voice Command Definition (VCD) XML file to define the commands that the user can say to initiate actions when activating your app. Weitere Details finden Sie unter Aktivieren einer Vordergrund-App mit Sprachbefehlen über Cortana.For more detail, see Activate a foreground app with voice commands through Cortana.

Siehe SpeechRecognitionVoiceCommandDefinitionConstraint/See SpeechRecognitionVoiceCommandDefinitionConstraint/

Hinweis    Der Typ des Einschränkungs Typs, den Sie verwenden, hängt von der Komplexität der Erkennungsfunktion ab, die Sie erstellen möchten.Note  The type of constraint type you use depends on the complexity of the recognition experience you want to create. Für eine bestimmte Erkennungsaufgabe kann jeweils einer der Ansätze am besten geeignet sein, und vielleicht haben Sie in Ihrer App sogar für alle Einschränkungsarten Verwendung.Any could be the best choice for a specific recognition task, and you might find uses for all types of constraints in your app. Informationen zu den ersten Schritten mit Einschränkungen finden Sie unter Definieren von benutzerdefinierten Erkennungseinschränkungen.To get started with constraints, see Define custom recognition constraints.

Die vordefinierte Diktiergrammatik von universellen Windows-Apps erkennt die meisten Wörter und kurzen Wortgruppen einer Sprache.The predefined Universal Windows app dictation grammar recognizes most words and short phrases in a language. Sie wird standardmäßig aktiviert, wenn ein Spracherkennungsobjekt ohne benutzerdefinierte Einschränkungen instanziiert wird.It is activated by default when a speech recognizer object is instantiated without custom constraints.

In diesem Beispiel zeigen wir Ihnen, wie Sie:In this example, we show how to:

  • eine Spracherkennung erstellen,Create a speech recognizer.
  • die standardmäßigen Einschränkungen von universellen Windows-Apps kompilieren (es wurde keine Grammatik zum Grammatiksatz der Spracherkennung hinzugefügt) undCompile the default Universal Windows app constraints (no grammars have been added to the speech recognizer's grammar set).
  • die Spracherkennung starten, indem Sie die einfache Erkennungs-UI und das TTS-Feedback der RecognizeWithUIAsync-Methode verwenden.Start listening for speech by using the basic recognition UI and TTS feedback provided by the RecognizeWithUIAsync method. Verwenden Sie die RecognizeAsync-Methode, wenn die Standard-UI nicht benötigt wird.Use the RecognizeAsync method if the default UI is not required.
private async void StartRecognizing_Click(object sender, RoutedEventArgs e)
{
    // Create an instance of SpeechRecognizer.
    var speechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer();

    // Compile the dictation grammar by default.
    await speechRecognizer.CompileConstraintsAsync();

    // Start recognition.
    Windows.Media.SpeechRecognition.SpeechRecognitionResult speechRecognitionResult = await speechRecognizer.RecognizeWithUIAsync();

    // Do something with the recognition result.
    var messageDialog = new Windows.UI.Popups.MessageDialog(speechRecognitionResult.Text, "Text spoken");
    await messageDialog.ShowAsync();
}

Anpassen der Erkennungs-UICustomize the recognition UI

Wenn Ihre App die Spracherkennung durch Aufruf von SpeechRecognizer.RecognizeWithUIAsync zu leisten versucht, werden mehrere Bildschirme in der folgenden Reihenfolge angezeigt.When your app attempts speech recognition by calling SpeechRecognizer.RecognizeWithUIAsync, several screens are shown in the following order.

Wenn Sie eine Einschränkung auf der Grundlage einer vordefinierten Grammatik (Diktat oder Websuche) verwenden:If you're using a constraint based on a predefined grammar (dictation or web search):

  • Der Bildschirm SpracherkennungThe Listening screen.
  • Der Bildschirm VerarbeitungThe Thinking screen.
  • Der Bildschirm Gehört oder der FehlerbildschirmThe Heard you say screen or the error screen.

Wenn Sie eine Einschränkung auf der Grundlage von Wörtern oder Ausdrücken oder eine Einschränkung auf der Grundlage einer SRGS-Grammatikdatei verwenden:If you're using a constraint based on a list of words or phrases, or a constraint based on a SRGS grammar file:

  • Der Bildschirm SpracherkennungThe Listening screen.
  • Der Bildschirm Sagten Sie , falls die vom Benutzer ausgesprochenen Wörter als mehrere potenzielle Ergebnisse interpretiert werden können.The Did you say screen, if what the user said could be interpreted as more than one potential result.
  • Der Bildschirm Gehört oder der FehlerbildschirmThe Heard you say screen or the error screen.

Die folgende Abbildung zeigt ein Beispiel für den Fluss zwischen Bildschirmen für die Spracherkennung mit einer Einschränkung auf der Grundlage einer SRGS-Grammatikdatei.The following image shows an example of the flow between screens for a speech recognizer that uses a constraint based on a SRGS grammar file. In diesem Beispiel war die Spracherkennung erfolgreich.In this example, speech recognition was successful.

initial Erkennung screen for a constraint based on a sgrs grammar file

intermediate Erkennung screen for a constraint based on a sgrs grammar file

final Erkennung screen for a constraint based on a sgrs grammar file

Der Spracherkennung-Bildschirm kann Beispiele für Wörter oder Ausdrücke zur Erkennung durch die App bereitstellen.The Listening screen can provide examples of words or phrases that the app can recognize. Hier zeigen wir, wie Sie die Eigenschaften der SpeechRecognizerUIOptions-Klasse (abgerufen durch Aufrufen der SpeechRecognizer.UIOptions-Eigenschaft) zur Anpassung von Inhalten auf dem Spracherkennung-Bildschirm verwenden.Here, we show how to use the properties of the SpeechRecognizerUIOptions class (obtained by calling the SpeechRecognizer.UIOptions property) to customize content on the Listening screen.

private async void WeatherSearch_Click(object sender, RoutedEventArgs e)
{
    // Create an instance of SpeechRecognizer.
    var speechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer();

    // Listen for audio input issues.
    speechRecognizer.RecognitionQualityDegrading += speechRecognizer_RecognitionQualityDegrading;

    // Add a web search grammar to the recognizer.
    var webSearchGrammar = new Windows.Media.SpeechRecognition.SpeechRecognitionTopicConstraint(Windows.Media.SpeechRecognition.SpeechRecognitionScenario.WebSearch, "webSearch");


    speechRecognizer.UIOptions.AudiblePrompt = "Say what you want to search for...";
    speechRecognizer.UIOptions.ExampleText = @"Ex. 'weather for London'";
    speechRecognizer.Constraints.Add(webSearchGrammar);

    // Compile the constraint.
    await speechRecognizer.CompileConstraintsAsync();

    // Start recognition.
    Windows.Media.SpeechRecognition.SpeechRecognitionResult speechRecognitionResult = await speechRecognizer.RecognizeWithUIAsync();
    //await speechRecognizer.RecognizeWithUIAsync();

    // Do something with the recognition result.
    var messageDialog = new Windows.UI.Popups.MessageDialog(speechRecognitionResult.Text, "Text spoken");
    await messageDialog.ShowAsync();
}

BeispieleSamples