Воспроизведение аудио непосредственно из папки Lambda / tmp

#node.js #amazon-s3 #aws-lambda #alexa

#node.js #amazon-s3 #aws-lambda #alexa

Вопрос:

В настоящее время я создаю приложение Alexa в Node с помощью Lambda. У меня возникла необходимость конвертировать и объединить несколько аудиофайлов. В настоящее время я создаю аудиофайл с помощью преобразования текста в речь 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:

Обычно я загружаю функцию lambda, архивируя код и модули и вообще все файлы, которые требуются моему коду. https://developer.amazon.com/blogs/post/Tx1UE9W1NQ0GYII/Publishing-Your-Skill-Code-to-Lambda-via-the-Command-Line-Interface Таким образом, если вы заархивируете каталог / tmp и опубликуете его как часть своего лямбда-кода, аудиофайл будет доступен вашей лямбда-функцией

Комментарии:

1. к сожалению, это звуковое диалоговое окно необходимо создавать «на лету», записывая в папку / tmp, а затем считывая, поэтому загрузка его невозможна.