1

我希望能够做到以下几点:

  1. 让 alexa 说些什么
  2. 播放音频文件
  3. 让 alexa 说点别的

我尝试了以下不起作用的代码:

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();
  }
}

上面代码的结果是这样的:

  1. “说点别的”
  2. 音频文件播放

我怎样才能做到这一点?

4

1 回答 1

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;
于 2019-01-15T10:32:00.793 回答