Мой код изначально возвращал только текстовый ответ. Я попытался добавить звуковой ответ, используя - Определить намеренный ответ , но не уверен, правильно ли я его настроил?
UnityWebRequest postRequest = new UnityWebRequest(url, "POST");
RequestBody requestBody = new RequestBody();
requestBody.queryInput = new QueryInput();
requestBody.queryInput.audioConfig = new InputAudioConfig();
requestBody.queryInput.audioConfig.audioEncoding = AudioEncoding.AUDIO_ENCODING_UNSPECIFIED;
//TODO: check if that the sample rate hertz
requestBody.queryInput.audioConfig.sampleRateHertz = 16000;
requestBody.queryInput.audioConfig.languageCode = "en";
requestBody.inputAudio = sampleString;
requestBody.detectIntentResponse = new DetectIntentResponse();
requestBody.detectIntentResponse.outputAudioConfig = new OutputAudioConfig();
requestBody.detectIntentResponse.outputAudioConfig.outputAudioEncoding = OutputAudioEncoding.OUTPUT_AUDIO_ENCODING_LINEAR_16;
requestBody.detectIntentResponse.outputAudioConfig.sampleHertzRate = 16000;
string jsonRequestBody = JsonUtility.ToJson(requestBody, true);
Debug.Log(jsonRequestBody);
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonRequestBody);
postRequest.SetRequestHeader("Authorization", "Bearer " + AccessToken);
postRequest.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
postRequest.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
//postRequest.SetRequestHeader("Content-Type", "application/json");
yield return postRequest.SendWebRequest();
Debug.Log("Response: " + postRequest.downloadHandler.text);
//text.text = "Response: " + postRequest.downloadHandler.text;
// Or retrieve results as binary data
byte[] resultbyte = postRequest.downloadHandler.data;
string result = System.Text.Encoding.UTF8.GetString(resultbyte);
ResponseBody content = (ResponseBody)JsonUtility.FromJson<ResponseBody>(result);
Debug.Log(content.queryResult.fulfillmentText);
text.text = "Response: " + content.queryResult.fulfillmentText;
byte[] response = content.detectIntentResponse.outputAudio;
Как только я получу аудио, какой будет лучший подход для воспроизведения аудиоклипа?