Нужна помощь в создании аудиоклипа из OpenAI TTS API в Unity.C#

Место общения программистов C#
Ответить
Anonymous
 Нужна помощь в создании аудиоклипа из OpenAI TTS API в Unity.

Сообщение Anonymous »

Я работаю над чат-игрой в Unity и использую API преобразования текста в речь OpenAI для преобразования выходного текста персонажа в речь. Я сделал вызов API и получил данные обратно в формате byte[]. Я пытаюсь использовать это в Unity, но при воспроизведении слышу только статический шум, ошибок нет. Могу ли я получить некоторую помощь с этим?
Это мой текущий код метода:
This is my current code for the method:
public IEnumerator ConvertTextToSpeechOpenAI(string input)
{
var requestBody = new Dictionary
{
{ "model", "tts-1"},
{ "input", input},
{ "voice", "alloy" }
};

string json = JsonConvert.SerializeObject(requestBody);

UnityWebRequest request = new UnityWebRequest("https://api.openai.com/v1/audio/speech", "POST");
byte[] bodyRaw = Encoding.UTF8.GetBytes(json);
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Authorization", "Bearer " + apiKey);

yield return request.SendWebRequest();

if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{
Debug.LogError("Error: " + request.error);
}
else
{
byte[] audioData = request.downloadHandler.data;
float[] samples = new float[audioData.Length / 4];
Buffer.BlockCopy(audioData, 0, samples, 0, audioData.Length);
int channels = 1;
int sampleRate = 24000;

AudioClip clip = AudioClip.Create("GeneratedSpeech", samples.Length, channels, sampleRate, false);
clip.SetData(samples, 0);
audioSource.clip = clip;
audioSource.Play();
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... i-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»