

<https://www.ibm.com/developerworks/jp/cloud/library/unity/index.html>  
を参考にWatsonのSpeechToTextをUnity上で利用しようとしております。

watsonをアセット下に配置した際のエラーは該当箇所をコメントアウトしました。  
もともとのコード（SampleSpeechToText.cs）を実行しようとするとエラーが発生してしまうため  
Audioclip _clipRecord=null;  
に変え、またHandleOnRecognize(SpeechRecognitionEvent result)内にも  
resultがnullでないか出力させています。

[code]

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using IBM.Watson.DeveloperCloud.Services.SpeechToText.v1;
    
    public class SampleSpeechToText : MonoBehaviour
    {
    
        [SerializeField]
        //private AudioClip m_AudioClip = new AudioClip();
        AudioClip _clipRecord = null;
        private SpeechToText m_SpeechToText = new SpeechToText();
    
    
        // Use this for initialization
        IEnumerator Start()
        {
            // 音声をマイクから 3 秒間取得する
            Debug.Log("Start record"); //集音開始
            var audioSource = GetComponent<AudioSource>();
            audioSource.clip = Microphone.Start(null, true, 10, 44100);
            audioSource.loop = false;
            audioSource.spatialBlend = 0.0f;
            yield return new WaitForSeconds(3f);
            Microphone.End(null); //集音終了
            Debug.Log("Finish record");
    
            // ためしに録音内容を再生してみる
            audioSource.Play();
    
            // SpeechToText を日本語指定して、録音音声をテキストに変換
            m_SpeechToText.RecognizeModel = "ja-JP_BroadbandModel";
            //m_SpeechToText.RecognizeModel = "en-US_BroadbandModel";
            m_SpeechToText.Recognize(audioSource.clip, HandleOnRecognize);
        }
    
        void HandleOnRecognize(SpeechRecognitionEvent result)
        {
            Debug.Log(result);
            if (result != null && result.results.Length > 0)
            {
                foreach (var res in result.results)
                {
                    foreach (var alt in res.alternatives)
                    {
                        string text = alt.transcript;
                        Debug.Log(string.Format("{0} ({1}, {2:0.00})\n", text, res.final ? "Final" : "Interim", alt.confidence));
                    }
                }
            }
        }
    
    
[/code]

実行すると、再生されるのですがresultはnullで返され、テキストに変換されません。  
環境はwindows,  
unity:2018.4.13f1です。

お手数をおかけいたしますが、よろしくお願いいたします。


CC BY-SA 4.0
2019-12-13T06:26:58.727
61401
2019-12-13T06:26:58.727
30396
question
c# unity3d watson-api
IBM Watson SpeechToTextをUnity上で利用したいです