У меня есть C# класс API. Ниже приведены важные классы для настройки звука и ответа:
[Serializable]
public class DetectIntentResponse
{
public String responseId;
public QueryResult queryResult;
public Status webhookStatus;
public byte[] outputAudio;
public OutputAudioConfig outputAudioConfig;
}
[Serializable]
public class OutputAudioConfig
{
public OutputAudioEncoding outputAudioEncoding;
public int sampleHertzRate;
public SynthesizeSpeechConfig synthesizeSpeechConfig;
}
Вот некоторые из важных классов. В настоящее время я могу вернуть текстовую строку. Я также хочу вернуть аудио.
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.outputAudioEncoding = OutputAudioEncoding.OUTPUT_AUDIO_ENCODING_LINEAR_16;
// requestBody.detectIntentResponse.outputAudioConfig.sampleHertzRate = 16000;
byte[] resultbyte = postRequest.downloadHandler.data;
string result = System.Text.Encoding.UTF8.GetString(resultbyte);
ResponseBody content = (ResponseBody)JsonUtility.FromJson<ResponseBody>(result);
text.text = "Response: " + content.queryResult.fulfillmentText;
//audioResponse = content.detectIntentResponse.outputAudio;
byte[] response = content.detectIntentResponse.outputAudio;