将提取的音频存储在aws-polly上,存储在S3上,并上传到Javascript中的html元素上



下面是我的代码,我隐藏了我的accesskey和id。音频以blob url的形式返回,上传到音频文件时无法播放。音频文件如何存储在aws s3 中

AWS.config.region = 'us-west-2'
var polly = new AWS.Polly()
var  params = {
OutputFormat: 'mp3',
Text: 'Hello David, How are you?',
TextType: 'text',
VoiceId: 'Joanna',
SampleRate: '22050'
}
polly.synthesizeSpeech(params, function (err, data) {
// if (err) {
//     console.log(err, err.stack)
// }else {
//     var uInt8Array = new Uint8Array(data.AudioStream);
//     var arrayBuffer = uInt8Array.buffer
//     var blob = new Blob([arrayBuffer])
//     var audio = document.querySelector('audio')
//     var url = URL.createObjectURL(blob)
//     audio[0].src = url
//     audio[0].play()
// }
// (err) ? console.log(err, err.stack) : console.log(data)
if (err) {
console.log(err, err.stack)
}else {
console.log(data)
var uInt8Array = new Uint8Array(data.AudioStream)
var arrayBuffer = uInt8Array.buffer
var blob = new Blob([arrayBuffer])
var url = URL.createObjectURL(blob)
var audioElement = document.querySelector('source')
console.log(audioElement)
audioElement.setAttribute('src', url)
}
})

创建一个AWS.Polly.Presigner对象,然后创建可以检索合成语音音频的预签名URL。一旦返回,只需将其作为源代码添加到HTML中即可。

然后,使用能够创建异步合成任务的startSpeechSynthesisTask方法。该操作需要语音合成所需的所有标准信息,加上输出S3桶的名称。有关更多信息,请参阅AWS文档。;以及这里的博客。

var polly = new AWS.Polly({region:"eu-west-1"});
var signer = new AWS.Polly.Presigner(urlParams, polly);
var s3 = new AWS.S3({region:"eu-west-1"})
var  urlParams = {
OutputFormat: 'mp3',
Text: 'Hello David, How are you?',
TextType: 'text',
VoiceId: 'Joanna',
SampleRate: '22050'
};
var  s3Params = {
OutputFormat: 'mp3',
OutputS3BucketName: "BUCKET_NAME",
Text: 'Hello David, How are you?',
TextType: 'text',
VoiceId: 'Joanna',
SampleRate: '22050'
};
signer.getSynthesizeSpeechUrl(urlParams, function (err, data) {
if (err) {
console.log(err, err.stack)
}else {
console.log("Success, presigned url created", data);
}
})
polly.startSpeechSynthesisTask(s3Params, function (err, data) {
if (err) {
console.log(err, err.stack)
}else {
console.log("Success, audio file uploaded", data);
}
})

最新更新