私はWatsonのSpeech-To-Text Unity SDK
でキーワードを指定しようとしていますが、これを行う方法がわかりません。 、WatsonのSpeech-To-Text Unity SDKでは、どのようにキーワードを指定できますか?
をし、他のフォーラムの投稿は、(ここを参照してください:How to specify phonetic keywords for IBM Watson speech2text service?)をJavaアプリケーションのために書かれています。
詳細ページには例を示していない(https://www.ibm.com/watson/developercloud/doc/speech-to-text/output.shtmlをここを参照してください)。
私は成功せず、そのような関数を「認識」で作成しRecognizeRequest
クラスでこれらの値をハードコーディング試してみた
:
** EDIT - この関数が呼び出されることは決してありません - **
public bool Recognize(AudioClip clip, OnRecognize callback)
{
if (clip == null)
throw new ArgumentNullException("clip");
if (callback == null)
throw new ArgumentNullException("callback");
RESTConnector connector = RESTConnector.GetConnector(SERVICE_ID, "/v1/recognize");
if (connector == null)
return false;
RecognizeRequest req = new RecognizeRequest();
req.Clip = clip;
req.Callback = callback;
req.Headers["Content-Type"] = "audio/wav";
req.Send = WaveFile.CreateWAV(clip);
if (req.Send.Length > MAX_RECOGNIZE_CLIP_SIZE)
{
Log.Error("SpeechToText", "AudioClip is too large for Recognize().");
return false;
}
req.Parameters["model"] = m_RecognizeModel;
req.Parameters["continuous"] = "false";
req.Parameters["max_alternatives"] = m_MaxAlternatives.ToString();
req.Parameters["timestamps"] = m_Timestamps ? "true" : "false";
req.Parameters["word_confidence"] = m_WordConfidence ? "true" :false";
//these "keywords" and "keywords_threshold" and "keywordsThreshold" parameters
//are just my guess for how to set these values
req.Parameters["keywords"] = new string[] {"fun", "match", "test" };
req.Parameters["keywordsThreshold"] = .2;
req.Parameters["keywords_threshold"] = .2;
//end my test insertions
req.OnResponse = OnRecognizeResponse;
return connector.Send(req);
}
しかし、返されたSpeechRecognitionEvent
の結果値には、keywords_result
が含まれていません。これが私の目標です。私はkeywords_resultオブジェクトの各キーワードの信頼度を表示しようとしていますが、keywords_result
オブジェクトはnull
に戻ってきます。
private void OnRecognize(SpeechRecognitionEvent result) {
Debug.Log("Recognizing!");
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) {
//the res.keywords_result comes back as null
foreach (var keyword in res.keywords_result.keyword) {
string text = keyword.normalized_text;
float confidence = keyword.confidence;
Debug.Log(text + ": " + confidence);
}
}
}
}
UnityまたはC#でWatsonのSpeech-To-Text SDKでキーワード信頼性評価を正常に実装した人はいますか?すべてのアイデアや提案は大歓迎です。
PSこれは私の最初の投稿です:)
これはWatsonで行う必要がありますか?そうでなければ[ここ](http://stackoverflow.com/a/39613264/3785314)を見てください。 – Programmer
私はあなたが低いしきい値を試してみる必要があると思います。 0.2または0.00001の代わりに0.1を試してください。 –
UnityのSpeech-To-TextはWatsonを使用して作業します。ここのコメント欄を参照してください。 https://www.assetstore.unity3d.com/en/#!/content/69399 –