Аудио из диалогового потока в Unity - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть 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;
...