4

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

我能够通过这样的询问和讲述指令发表演讲

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
4

1 回答 1

1

因此,根据您尝试播放的音频类型,您可能需要尝试不同的策略。音频播放器指令更适合播放流之类的东西,并提供暂停、倒带等类型的控件。如果您在创建音乐播放器或播放长格式音频文件(如播客)时会使用它。

从您的示例看来,您只是在尝试播放简单的 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

于 2021-01-11T13:51:15.670 回答