using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System.IO; public class UItest : MonoBehaviour { //语音转文字 public Text att_text; public Button att_startbtn; public Button att_stopbtn; ////文字转语音 public InputField tta_input; public Button tta_transbtn; public AudioSource tta_au; public Text stateText; //chat public Text chat_ansewr; public InputField ask; public Dropdown uptextNum; public Button sendBtn; void Start() { Screen.SetResolution(1600, 900, FullScreenMode.Windowed); att_startbtn.onClick.AddListener(MicrophoneInput.instance.OnStartClick); att_stopbtn.onClick.AddListener(()=> { //停止录音,并转换成文字 MicrophoneInput.instance.OnStopClick((str)=> { att_text.text = str; tta_input.text = str; ToAudio(); }); }); tta_transbtn.onClick.AddListener(()=> { ToAudio(); }); sendBtn.onClick.AddListener(() => { Chat(); }); } private void Update() { stateText.text = MyDebugger.msg; } /// /// 转语音 /// private void ToAudio() { if (tta_input.text.Length > 0) { IFlytekManager.instance.TextToAudio(tta_input.text, clip => { if (clip != null) { Debug.Log("ToAudio:开始播放"); tta_au.clip = clip; tta_au.Play(); } }); } } List histryChat=new List(); private void Chat() { if(ask.text!="") { chat_ansewr.text = "思考中"; string askmsg=ask.text; if (uptextNum.value == 0) { IFlytekManager.instance.Chat(askmsg, result => { chat_ansewr.text = result; ask.text = ""; histryChat.Add(new ChatData { ask = askmsg, answer = result }); }); } else { //获取倒数第n个 List tmps=new List(); for (int i = histryChat.Count-1; i >= 0 && tmps.Count<= uptextNum.value; i--) { tmps.Add(histryChat[i]); } IFlytekManager.instance.Chat(tmps, askmsg, result => { chat_ansewr.text = result; ask.text = ""; histryChat.Add(new ChatData { ask = askmsg, answer = result }); }); } } } }