如何使用 Javascript 在浏览器中将来自 Google Text to Speech 的 base64 响应作为 mp3 音频播放
How to play a base64 response from Google Text to Speech as an mp3 audio in browser using Javascript
我编写了这段代码来在单击按钮时播放音频,但我无法让它工作。
Google 文档对处理响应没有帮助。
有人可以帮忙吗?
async function playVoiceover() {
const url ='https://texttospeech.googleapis.com/v1/text:synthesize?key=XXXXXXX'
const rawResponse = await fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
'input':{
'ssml':`<speak>The <say-as interpret-as=\"characters\">SSML</say-as>
standard <break time=\"1s\"/>is defined by the
<sub alias=\"World Wide Web Consortium\">W3C</sub>.</speak>`
},
'voice':{
'languageCode':'en-us',
'name':'en-US-Standard-B',
'ssmlGender':'MALE'
},
'audioConfig':{
'audioEncoding':'MP3'
}
})
});
const content = await rawResponse.json();
const mp3 = 'data:audio/mp3;base64,'+window.atob(content.audioContent)
const audio = new Audio(mp3);
audio.play();
}
我将此答案留作社区有关此案例的信息:
window.atob()
atob() 方法解码 base-64 编码的字符串。
texttospeech.googleapis.com(响应结构)
{ "audioContent": string }
// A base64-encoded string.
使用编解码结构格式化mp3字符串时不需要解码。可以看到类似的回复here.
有关 texttospeech 响应的更多详细信息 api:
我编写了这段代码来在单击按钮时播放音频,但我无法让它工作。 Google 文档对处理响应没有帮助。 有人可以帮忙吗?
async function playVoiceover() {
const url ='https://texttospeech.googleapis.com/v1/text:synthesize?key=XXXXXXX'
const rawResponse = await fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
'input':{
'ssml':`<speak>The <say-as interpret-as=\"characters\">SSML</say-as>
standard <break time=\"1s\"/>is defined by the
<sub alias=\"World Wide Web Consortium\">W3C</sub>.</speak>`
},
'voice':{
'languageCode':'en-us',
'name':'en-US-Standard-B',
'ssmlGender':'MALE'
},
'audioConfig':{
'audioEncoding':'MP3'
}
})
});
const content = await rawResponse.json();
const mp3 = 'data:audio/mp3;base64,'+window.atob(content.audioContent)
const audio = new Audio(mp3);
audio.play();
}
我将此答案留作社区有关此案例的信息:
window.atob()
atob() 方法解码 base-64 编码的字符串。
texttospeech.googleapis.com(响应结构)
{ "audioContent": string } // A base64-encoded string.
使用编解码结构格式化mp3字符串时不需要解码。可以看到类似的回复here.
有关 texttospeech 响应的更多详细信息 api: