我正在try 将谷歌文本转语音API SynthesizeSpeech.audio_content的结果传递到前端语音echo框架(golang).
resp, err := client.SynthesizeSpeech(c.ctx, &req)
if err != nil {
return nil, err
}
c.Blob(http.StatusOK, "audio/mp3", resp.AudioContent)
音频本身正常生成(我try 将其保存为服务器上的mp3并收听).但当我试图以这种方式获取客户端的数据时:
var options = {
url: "/tts",
method: "POST",
contentType: 'application/json',
responseType: 'audio/mp3',
data: JSON.stringify(data),
success: function (response) {
console.log(response.length)
var blob = new Blob([response], { type: 'audio/mp3' });
console.log(blob.size)
var blobUrl = URL.createObjectURL(blob);
var audio = new Audio(blobUrl);
audio.addEventListener('loadeddata', function() {
audio.play();
});
audio.addEventListener('error', function(event) {
console.error('Audio error:', event.target.error.message);
});
audio.load();
},
error: function (xhr, status, error) {
console.log(status, error)
}
}
$.ajax(options);
我收到一个错误:prime.js:221音频错误:DEMUXER_WRIGHT_COULD_NOT_OPEN:FFmpegDemuxer:打开上下文失败
同样奇怪的是,在服务器端,发送前字节数组的大小例如为5664,但当我测量responding. long的大小时,除了blo.size是10591之外,我看到5375.
我还查看了Wireshark中的分析,并注意到客户的react 相当好.这是:
即使在浏览器达到5664之前,我们如何才能在wireshark级别上看到收到的数据的大小.
在浏览器调试器中,我看到以下数据:
数组似乎被浏览器损坏或修改了.你们觉得呢?