Aracılığıyla paylaş


RecognitionResult.GetAudioForWordRange Yöntem

Tanım

Tanıma sonucundaki belirli bir sözcük aralığıyla ilişkili ses bölümünü alır.

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

Parametreler

firstWord
RecognizedWordUnit

Aralıktaki ilk sözcük.

lastWord
RecognizedWordUnit

Aralıktaki son sözcük.

Döndürülenler

Sözcük aralığıyla ilişkili ses bölümü.

Özel durumlar

Tanıyıcı, veya SpeechRecognitionEngine nesnelerinin veya EmulateRecognizeAsync yöntemlerine EmulateRecognizeSpeechRecognizer yapılan bir çağrıdan sonucu oluşturdu.

Örnekler

Aşağıdaki örnek, ad girişini kabul etmek için bir dil bilgisi oluşturur ve buna olay işleyicisi SpeechRecognized ekler. Dil bilgisi, tümceciği ad öğesi için joker karakter kullanır. Olay işleyicisi, karşılama istemi oluşturmak ve oynatmak için joker karakterden gelen sesi kullanır.

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

Açıklamalar

Tanıma sonucuyla ilişkili tam sesi almak için özelliğini kullanın Audio .

Şunlara uygulanır

Ayrıca bkz.