73 lines
1.9 KiB
C#
Raw Normal View History

2025-09-24 19:24:19 +08:00
using System;
using UnityEngine;
public class ChatAI : MonoBehaviour
{
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public ChatSetting m_ChatSettings;
public static ChatAI Instance { get; private set; }
Action<string> recordingCallBack;
void Awake()
{
Instance = this;
//DontDestroyOnLoad(this);
}
#region AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public void SendData(string _postWord, Action<string> action = null)
{
if (string.IsNullOrEmpty(_postWord)) return;
m_ChatSettings.m_ChatModel.PostMsg(_postWord, reply => {
action?.Invoke(reply);
});
}
public void StopSend()
{
m_ChatSettings.m_ChatModel.StopMsg();
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <summary>
/// <20><>ʼ¼<CABC><C2BC>
/// </summary>
public void StartRecord()
{
//m_ChatSettings.m_RealtimeSpeechToText?.StopSpeechToText(null);//ֹͣ<CDA3><D6B9>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
m_ChatSettings.m_SpeechToText?.StartSpeechToText(null);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
/// </summary>
public void StopRecord(Action<string> callBack)
{
m_ChatSettings.m_SpeechToText?.StopSpeechToText(callBack);//ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
//m_ChatSettings.m_RealtimeSpeechToText?.StartSpeechToText(recordingCallBack);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
}
/// <summary>
/// <20><>ʼʵʱ¼<CAB1><C2BC>
/// </summary>
public void StartRecording(Action<string> callBack)
{
recordingCallBack = callBack;
m_ChatSettings.m_RealtimeSpeechToText.StartSpeechToText(recordingCallBack);
}
public void StopRecording()
{
recordingCallBack = null;
m_ChatSettings.m_RealtimeSpeechToText.StopSpeechToText(null);
}
#endregion
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD>
public void PlayVoice(string speakText,Action<AudioClip> callBack = null)
{
m_ChatSettings.m_TextToSpeech.StartSpeak(speakText, callBack);
}
public void StopVoice()
{
m_ChatSettings.m_TextToSpeech.StopSpeak();
}
#endregion
}