Я использую диалоговый поток для распознавания речи и намерений, но когда я получаю ответ с выходным звуком, я не могу найти способ воспроизвести звуковой ответ.Аудиоответ приходит в формате какого-то массива.Объект JSON выглядит следующим образом (это параметр данных, который я пытаюсь преобразовать в аудио):
{
"type":"Buffer",
"data":[255,251,16,196,0,0,0,0,1,164,20,0,0,32,...]},
"latency":2906,
"fulfillmentMessages":["Here's your Adele playlist."],
"parameters":
{
"any":[],
"music-artist":["Adele"]},
"success":true
}
}
Я уже пытался преобразовать его в ArrayBuffer, а затем декодировать, но это не выгляделодля работы либо
playByteArray(byteArray) {
var arrayBuffer = new ArrayBuffer(byteArray.length);
var bufferView = new Uint8Array(arrayBuffer);
for (let i = 0; i < byteArray.length; i++) {
bufferView[i] = byteArray[i];
}
let context = new AudioContext();
context.decodeAudioData(
arrayBuffer,
function(buffer) {
this.play(buffer);
}.bind(this)
);
}
play(buf) {
// Create a source node from the buffer
let context = new AudioContext();
var source = context.createBufferSource();
source.buffer = buf;
// Connect to the final output node (the speakers)
source.connect(context.destination);
// Play immediately
source.start(0);
}
edit: это пример JSON, который я получаю от DialogFlow: https://drive.google.com/open?id=1Y2UegyJ9BEwL6AR77Skly7prA4UalsNM