// ---------------------------------------------------------------------------- //
    //
    //  Speak に用意されているコールバック関数の受信側
    //
    // ---------------------------------------------------------------------------- //

    // ---------------------------------------------------------------------------- //
    //  メタ情報を受信した時に呼ばれるメソッド
    //
    //  登録例 : Speak.Instance().SetOnMetaOut(OnMetaOut);
    //  引数(string) : JSON形式のメタ情報
    // ---------------------------------------------------------------------------- //
    public void OnMetaOut(string metaText)
    {
        var metaData = OnMetaOutJson.CreateFromJSON(metaText);

        // 再生テキスト内容
        if (!String.IsNullOrEmpty(metaData.systemText.utterance))
        {
            // スクロールビューにテキストを表示する
            LogView(metaData.systemText.utterance);
        }
        // 再生テキスト取得失敗時の表示内容
        else if (!String.IsNullOrEmpty(metaData.systemText.expression))
        {
            // スクロールビューにテキストを表示する
            LogView(metaData.systemText.expression);
        }

        if (metaData.type == "speech_recognition_result")
        {
            // 対話の開始
            CancelInvoke("AutoStopTask");
            Interlocked.Increment(ref mDialogCounter);
        }
        else if (String.IsNullOrEmpty(metaData.systemText.utterance))
        {
            if (metaData.type == "nlu_result" &&
                Interlocked.Decrement(ref mDialogCounter) == 0)
            {
                // 対話の終了
                Invoke("AutoStopTask", TIMEOUT);
            }
        }
    }
Exemple #2
0
    // ---------------------------------------------------------------------------- //
    //
    //  Speak に用意されているコールバック関数の受信側
    //
    // ---------------------------------------------------------------------------- //

    // ---------------------------------------------------------------------------- //
    //  メタ情報を受信した時に呼ばれるメソッド
    //
    //  登録例 : Speak.Instance().SetOnMetaOut(OnMetaOut);
    //  引数(string) : JSON形式のメタ情報
    // ---------------------------------------------------------------------------- //
    public void OnMetaOut(string text)
    {
        var metaData = OnMetaOutJson.CreateFromJSON(text);

        if (!String.IsNullOrEmpty(metaData.systemText.utterance))
        {
            // システム発話文字列をログに出力
            Debug.Log("system text :" + metaData.systemText.utterance);
        }
        else
        {
            if (metaData.type == "nlu_result" &&
                Interlocked.Decrement(ref mDialogCounter) == 0)
            {
                // 対話の終了
                Invoke("AutoStopTask", TIMEOUT);
            }
        }

        if (metaData.type == "speech_recognition_result")
        {
            // 対話の開始
            CancelInvoke("AutoStopTask");
            Interlocked.Increment(ref mDialogCounter);
        }
    }