RecognitionResult.GetAudioForWordRange Methode

Definitie

Hiermee haalt u een sectie op van de audio die is gekoppeld aan een specifiek bereik van woorden in het herkenningsresultaat.

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

Parameters

firstWord
RecognizedWordUnit

Het eerste woord in het bereik.

lastWord
RecognizedWordUnit

Het laatste woord in het bereik.

Retouren

Het gedeelte van de audio dat is gekoppeld aan het woordbereik.

Uitzonderingen

De recognizer heeft het resultaat gegenereerd van een aanroep naar EmulateRecognize of EmulateRecognizeAsync methoden van de SpeechRecognizer of SpeechRecognitionEngine objecten.

Voorbeelden

In het volgende voorbeeld wordt een grammatica gemaakt om naaminvoer te accepteren en er een handler aan toe te voegen voor de SpeechRecognized gebeurtenis. De grammatica gebruikt een jokerteken voor het naamelement van de woordgroep. De gebeurtenis-handler gebruikt de audio van het jokerteken om een begroetingsprompt te maken en af te spelen.

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);
  }
}

Opmerkingen

Gebruik de Audio eigenschap om de volledige audio op te halen die is gekoppeld aan het herkenningsresultaat.

Van toepassing op

Zie ook