直接从Lambda / tmp文件夹播放音频

时间:2019-03-22 15:49:38

标签: node.js amazon-s3 aws-lambda alexa

我目前正在使用Lambda在Node中构建一个Alexa应用程序。我需要转换和合并几个音频文件。我目前正在使用Google文字转语音(需要它的长话)创建音频文件,并将其写入/ 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" />`;

1 个答案:

答案 0 :(得分:0)

我通常会上载lambda函数,以压缩代码和模块,以及一般来说我的代码需要的所有文件。 https://developer.amazon.com/blogs/post/Tx1UE9W1NQ0GYII/Publishing-Your-Skill-Code-to-Lambda-via-the-Command-Line-Interface 因此,如果您压缩/ tmp目录并将其作为lambda代码的一部分发布,则音频文件将可以通过lambda函数访问