Alexa Skill NodeJS - Объедините говорить и добавить AudioPlayerPlayDirective
Я хочу иметь возможность сделать следующее:
- Заставь Алексу что-то сказать
- воспроизвести аудио файл
- Заставь Алексу сказать что-то еще
Я пробовал следующий код, который не работает:
const IntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === "IntentRequest" &&
handlerInput.requestEnvelope.request.intent.name === "MyIntent";
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak("Say something")
.addAudioPlayerPlayDirective('REPLACE_ALL', audioFile, 'token', 0)
.speak("Say something else")
.getResponse();
}
}
Результат кода выше выглядит так:
- "Скажи что-нибудь еще"
- audioFile играет
Как мне этого добиться?
1 ответ
Решение
Я решил это с помощью ssml-builder
пакет для создания строки SSML и изменения ответа, отправленного обратно с этой строкой.
const AmazonSpeech = require('ssml-builder/amazon_speech');
const speech = new AmazonSpeech();
speech.say('Start of the story')
.audio(audioFile)
.say('Finish the story');
const ssml = speech.ssml();
const response = handlerInput.responseBuilder.getResponse();
response.outputSpeech = {
type: 'SSML',
ssml: ssml
};
return response;