Alexa-Ruby-播放音频文件

时间:2018-08-08 11:30:58

标签: ruby alexa alexa-skills-kit alexa-skill alexa-app

我正在尝试通过Alexa播放音频文件。我的后端是Ruby on Rails,并且正在使用alexa-ruby gem。

我能够通过Ask and Tell指令发表演讲

def index
    parsed_request = JSON.parse(request.body.read)
    alexa = AlexaRuby.new(parsed_request)
    speech = "Hey there! I am alexa"
    response = alexa.response.ask!(speech)
    render json: response
end

当我尝试播放音频时,没有任何反应。这就是我试图做的

def index
    parsed_request = JSON.parse(request.body.read)
    alexa = AlexaRuby.new(parsed_request)
    params = { url: 'https://s3.amazonaws.com/my-ssml-samples/Flourish.mp3', token: 'flourish-token', offset: 0 }
    response = alexa.response.add_audio_player_directive(:start, params)
    render json: response
end

1 个答案:

答案 0 :(得分:0)

因此,根据您尝试播放的音频类型,您可能想要尝试不同的策略。音频播放器指令更多地用于播放诸如流之类的内容,并提供暂停、倒带等类型的控件。如果您要创建音乐播放器或播放长格式音频文件(如播客),则会使用它。

从您的示例来看,您似乎只是想播放简单的 mp3。您可以使用与使用 SSML 进行演讲完全相同的方式来做到这一点。

例如:

def index
parsed_request = JSON.parse(request.body.read)
alexa = AlexaRuby.new(parsed_request)
speech = "<speak>
  Welcome to Ride Hailer. 
  <audio     src="soundbank://soundlibrary/transportation/amzn_sfx_car_accelerate_01" /> 
You can order a ride, or request a fare estimate. 
Which will it be?</speak>" 
response = alexa.response.ask!(speech)
render json: response
end

您可以在这里找到更多信息

https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html