Udostępnij za pośrednictwem


RecognitionResult.GetAudioForWordRange Metoda

Definicja

Pobiera sekcję audio, która jest skojarzona z określonym zakresem słów w wyniku rozpoznawania.

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

Parametry

firstWord
RecognizedWordUnit

Pierwsze słowo w zakresie.

lastWord
RecognizedWordUnit

Ostatni wyraz z zakresu.

Zwraca

RecognizedAudio

Sekcja audio skojarzona z zakresem wyrazów.

Wyjątki

Aparat rozpoznawania wygenerował wynik wywołania EmulateRecognize lub EmulateRecognizeAsync metod SpeechRecognizer SpeechRecognitionEngine obiektu lub.

Przykłady

Poniższy przykład tworzy gramatykę do akceptowania wprowadzania nazw i dołącza do niej procedurę obsługi dla SpeechRecognized zdarzenia. Gramatyka używa symbolu wieloznacznego dla elementu Name frazy. Procedura obsługi zdarzeń używa dźwięku z symbolu wieloznacznego w celu utworzenia i odtworzenia monitu o powitanie.

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

Uwagi

Aby uzyskać pełny dźwięk skojarzony z wynikiem rozpoznawania, użyj Audio właściwości.

Dotyczy

Zobacz też