I am trying to put a audio file to S3 via Polly with lambda(Node.js).
Lambda log shows params.Body to be a string, Buffer, Stream, Blob, or typed array object’
.
I think I have to use stream API, but I could not fix it.
Polly.synthesizeSpeech-property is here
S3.putObject-property is here
var AWS = require('aws-sdk');
var polly = new AWS.Polly();
var s3 = new AWS.S3();
function create_voice(){
var params = {
OutputFormat: "mp3",
SampleRate: "16000",
Text: “this is test”,
TextType: "text",
VoiceId: "Mizuki"
};
polly.synthesizeSpeech(params, function(err, data) {
if (err) {
console.log("polly error: ",err, err.stack);
} else {
var s3params = {
Bucket: "allys-voice/weather",
Key: “test.mp3",
Body: data
/*
data = {
AudioStream: <Binary String>,
ContentType: "audio/mpeg",
RequestCharacters: 37
}
*/
};
s3.putObject(s3params, function(err, data) {
if (err) {
console.log("s3 error: ", err, err.stack);
}else{
console.log("uploaded to S3!");
}
});
}
});
}
exports.handler = (event, context, callback) => {
create_voice();
callback(null, 'Hello from Lambda');
};
via marceline
No comments:
Post a Comment