2017-03-06 3 views
4

Ich möchte den Satz jedes Mal an den Server senden, wenn er einen Satz erkennt.Wie erkennt man, ob eine Satzerkennung in Sprache zu Text abgeschlossen ist (Unity IBM Watson SDK)?

Zum Beispiel, wenn es erkennt, spreche ich "Wie mache ich". Ich möchte diesen Satz an den Server senden. Die folgende Methode wird jedoch jedes Mal aufgerufen, wenn versucht wird, einen Satz zu bilden. Zum Beispiel, wenn ich "Wie mache ich" sage, wird es "wie", "wie", "wie mache ich" drucken, gibt es einen Ort, von dem ich weiß, dass ein Satz beendet ist?

private void OnRecognize(SpeechRecognitionEvent result) 
{ 
    m_ResultOutput.SendData(new SpeechToTextData(result)); 

    if (result != null && result.results.Length > 0) 
    { 
     if (m_Transcript != null) 
      m_Transcript.text = ""; 

     foreach (var res in result.results) 
     { 
      foreach (var alt in res.alternatives) 
      { 
       string text = alt.transcript; 

       if (m_Transcript != null) 
       { 
         // print(text); 

         //m_Transcript.text += string.Format("{0} ({1}, {2:0.00})\n", 
         // text, res.final ? "Final" : "Interim", alt.confidence); 

         m_Transcript.text = text; 
       } 
      }  
     } 
    } 
} 
+0

Dies scheint der Code zu sein, der ausgeführt wird, nachdem ein Satz erkannt wurde, aber Sie scheinen Hilfe beim Erkennen zu haben? Zeig uns, wo diese Veranstaltung stattfindet! (Disclaimer: Ich bin nicht vertraut mit dem Watson kognitive) – Maakep

Antwort

4

Im Antwortobjekt befindet sich eine final-Eigenschaft.

private void OnRecognize(SpeechRecognitionEvent result) 
{ 
    m_ResultOutput.SendData(new SpeechToTextData(result)); 

    if (result != null && result.results.Length > 0) 
    { 
     if (m_Transcript != null) 
      m_Transcript.text = ""; 

     foreach (var res in result.results) 
     { 
      foreach (var alt in res.alternatives) 
      { 
       string text = alt.transcript; 

       if (m_Transcript != null) 
       { 
        // print(text); 

        //m_Transcript.text += string.Format("{0} ({1}, {2:0.00})\n", 
        // text, res.final ? "Final" : "Interim", alt.confidence); 

        if(res.final) 
        { 
         m_Transcript.text = text; 
         // do something with the final transcription 
        } 
       } 
      }  
     } 
    } 
} 
+0

vielen Dank! es ist perfekt – ywj7931

Verwandte Themen