Freigeben über


RecognitionResult.GetAudioForWordRange Methode

Definition

Ruft einen Audioabschnitt ab, der einem bestimmten Bereich von Wörtern im Erkennungsergebnis zugeordnet ist.

public:
 System::Speech::Recognition::RecognizedAudio ^ GetAudioForWordRange(System::Speech::Recognition::RecognizedWordUnit ^ firstWord, System::Speech::Recognition::RecognizedWordUnit ^ lastWord);
public System.Speech.Recognition.RecognizedAudio GetAudioForWordRange (System.Speech.Recognition.RecognizedWordUnit firstWord, System.Speech.Recognition.RecognizedWordUnit lastWord);
member this.GetAudioForWordRange : System.Speech.Recognition.RecognizedWordUnit * System.Speech.Recognition.RecognizedWordUnit -> System.Speech.Recognition.RecognizedAudio
Public Function GetAudioForWordRange (firstWord As RecognizedWordUnit, lastWord As RecognizedWordUnit) As RecognizedAudio

Parameter

firstWord
RecognizedWordUnit

Das erste Wort im Bereich.

lastWord
RecognizedWordUnit

Das letzte Wort im Bereich.

Gibt zurück

RecognizedAudio

Der Audioabschnitt, der dem Wortbereich zugeordnet ist.

Ausnahmen

Die Erkennung generierte das Ergebnis aus einem Aufruf der EmulateRecognize-Methode oder der EmulateRecognizeAsync-Methode des SpeechRecognizer-Objekts oder des SpeechRecognitionEngine-Objekts.

Beispiele

Im folgenden Beispiel wird eine Grammatik für die Annahme von namens Eingaben erstellt und einem Handler für das-Ereignis angefügt SpeechRecognized . Die Grammatik verwendet einen Platzhalter für das Name-Element des Ausdrucks. Der Ereignishandler verwendet die Audiodatei aus dem Platzhalter, um eine Begrüßungs Aufforderung zu erstellen und wiederzugeben.

private Grammar CreateNameInputGrammar()  
{  
  GrammarBuilder wildcardBuilder = new GrammarBuilder();  
  wildcardBuilder.AppendWildcard();  
  SemanticResultKey nameKey =  
    new SemanticResultKey("Name", wildcardBuilder);  

  GrammarBuilder nameBuilder =  
    new GrammarBuilder("My name is");  
  nameBuilder.Append(nameKey);  

  Grammar nameGrammar = new Grammar(nameBuilder);  
  nameGrammar.Name = "Name input";  

  nameGrammar.SpeechRecognized +=  
    new EventHandler<SpeechRecognizedEventArgs>(  
      NameInputHandler);  

  return nameGrammar;  
}  

// Handle the SpeechRecognized event for the name grammar.  
private void NameInputHandler(object sender, SpeechRecognizedEventArgs e)  
{  
  if (e.Result == null) return;  

  RecognitionResult result = e.Result;  
  SemanticValue semantics = e.Result.Semantics;  

  if (semantics.ContainsKey("Name"))  
  {  
    RecognizedAudio nameAudio =  
      result.GetAudioForWordRange(  
        result.Words[3], result.Words[result.Words.Count - 1]);  

    // Save the audio. Create a directory and file as necessary.  
    FileInfo fi = new FileInfo(@"C:\temp\temp.wav");  
    if (!fi.Directory.Exists)  
    {  
      fi.Directory.Create();  
    }  
    FileStream stream = new FileStream(fi.FullName, FileMode.Create);  
    nameAudio.WriteToWaveStream(stream);  
    stream.Close();  

    // Greet the person using the saved audio.  
    SpeechSynthesizer synthesizer = new SpeechSynthesizer();  
    PromptBuilder builder = new PromptBuilder();  
    builder.AppendText("Hello");  
    builder.AppendAudio(fi.FullName);  
    synthesizer.Speak(builder);  
  }  
}  

Hinweise

Verwenden Sie die-Eigenschaft, um das dem Erkennungs Ergebnis zugeordnete gesamte Audioformat zu erhalten Audio .

Gilt für

Siehe auch