2017-08-07 2 views
0

zur Zeit versuche ich die Spracherkennungsfunktion in meine UWP App zu implementieren, bisher erstelle ich eine kontinuierliche Diktierfunktion um die Sprache des Benutzers zu erkennen, aber ich möchte nur das Wort oder die Phase erkennen dass in der Grammatikdatei wie man Grammatik für sie erstellt und hinzufügt?
hier ist mein Code für die kontinuierliche Anerkennung:uwp wie man eine Grammatikdatei für die Spracherkennung erstellt und hinzufügt

protected async override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    CoreDispatcher dispatcher = CoreWindow.GetForCurrentThread().Dispatcher; 
    SpeechRecognizer contSpeechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer(); 
    await contSpeechRecognizer.CompileConstraintsAsync(); 
    contSpeechRecognizer.ContinuousRecognitionSession.ResultGenerated += ContinuousRecognitionSession_ResultGenerated; 


    contSpeechRecognizer.ContinuousRecognitionSession.AutoStopSilenceTimeout = TimeSpan.FromDays(1); 
    contSpeechRecognizer.ContinuousRecognitionSession.Completed += ContinuousRecognitionSession_Completed; 


    await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync(); 
} 
private async void ContinuousRecognitionSession_Completed(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionCompletedEventArgs args) 
{ 
    await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync(); 
} 
private async void ContinuousRecognitionSession_ResultGenerated(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionResultGeneratedEventArgs args) 
{ 
    await dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
    { 
     speechResult = args.Result.Text; 

    }); 
} 

Antwort

1

Für Ihre Anforderung, könnten Sie die SRGS file zu contSpeechRecognizer hinzufügen. Und ich habe eine einfache Beispielbasis auf Ihrem Segmentcode erstellt.

Folgendes ist Colors.grxml Datei, die als Einschränkung für Ihre contSpeechRecognizer verwendet wird.

<grammar xml:lang="en-US" 
     root="colors" 
     version="1.0" 
     tag-format="semantics/1.0" 
     xmlns="http://www.w3.org/2001/06/grammar"> 

    <!-- The following rules recognize variants of yes and no. --> 
    <rule id="colors"> 
    <one-of> 
     <item> 
     <one-of> 
      <item>green</item> 
      <item>yellow</item> 
      <item>orange</item> 
      <item>yup</item> 
      <item>un huh</item> 
      <item>yay yus</item> 
     </one-of> 
     <tag>out="yes";</tag> 
     </item> 
     <item> 
     <one-of> 
      <item>no</item> 
      <item>nope</item> 
      <item>nah</item> 
      <item>uh uh</item> 
     </one-of> 
     <tag>out="no";</tag> 
     </item> 
    </one-of> 
    </rule> 
</grammar> 

Nutzungs

protected async override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    dispatcher = CoreWindow.GetForCurrentThread().Dispatcher; 
    SpeechRecognizer contSpeechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer(); 
    var storageFile = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Colors.grxml")); 
    var grammarFileConstraint = new Windows.Media.SpeechRecognition.SpeechRecognitionGrammarFileConstraint(storageFile, "colors"); 
    contSpeechRecognizer.Constraints.Add(grammarFileConstraint); 
    await contSpeechRecognizer.CompileConstraintsAsync(); 

    contSpeechRecognizer.ContinuousRecognitionSession.AutoStopSilenceTimeout = TimeSpan.FromSeconds(2); 
    contSpeechRecognizer.ContinuousRecognitionSession.ResultGenerated += ContinuousRecognitionSession_ResultGenerated;  
    contSpeechRecognizer.ContinuousRecognitionSession.Completed += ContinuousRecognitionSession_Completed; 

    await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync(); 
} 

Weitere finden Sie in Define custom recognition constraints.

Verwandte Themen