我目前正在使用 Lambda 在 Node 中构建 Alexa 应用程序。我需要转换和合并多个音频文件。我目前正在使用谷歌文本转语音创建一个音频文件(关于需要它的长篇故事),我将其写入/tmp 并从 s3 中提取一个音频文件,我也将其写入/tmp。然后,我使用 sox 合并两个文件(见下文)并写回 S3(当前公开),然后我对其进行硬编码以播放该特定剪辑。
我的问题是是否可以直接从/tmp 文件夹播放音频,而不是必须将文件写回 S3。
await lambdaAudio.sox('-m /tmp/google-formatted.mp3 /tmp/audio.mp3 /tmp/result.mp3')
// get data from resulting mp3
const data = await readFile('/tmp/result.mp3');
const base64data = new Buffer(data, 'binary');
// put file back on AWS for playing
s3.putObject({
Bucket: 'my-bucket',
Key: 'result.mp3',
Body: base64data,
ACL:'public-read'
},function (resp) {
console.log('Done');
});
return`<audio src="https://s3.amazonaws.com/my-bucket/result.mp3" />`;
最佳答案
我通常会上传 lambda 函数,压缩代码和模块以及我的代码所需的所有文件。 https://developer.amazon.com/blogs/post/Tx1UE9W1NQ0GYII/Publishing-Your-Skill-Code-to-Lambda-via-the-Command-Line-Interface 因此,如果您压缩/tmp 目录并将其作为 lambda 代码的一部分发布,则您的 lambda 函数将可以访问音频文件
关于node.js - 直接从 Lambda/tmp 文件夹播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55303357/