【问题标题】:Alexa - Ruby - Playing Audio FilesAlexa - Ruby - 播放音频文件
【发布时间】:2018-08-08 11:30:57
【问题描述】:

我正在尝试通过 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

【问题讨论】:

  • 有什么错误?
  • 嗯,json 响应中显示的错误是这样的,这非常直接.. 所以我认为它没有帮助 '"error"=>{"type"=>"INVALID_RESPONSE", " message"=>"向技能分派请求时发生异常。"}}}}'
  • 当询问如何修复错误时,知道错误是至关重要的,可能是需要说明的最重要的事情。您可能希望在实际问题中进一步扩展这方面,例如精确错误、哪一行、相关上下文等。
  • 好吧,我的错,实际上没有响应.. json 中显示没有响应的原因是这个 "error"=>{"type"=>"INVALID_RESPONSE", "message"= >“向技能分派请求时发生异常。”}}}}

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


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多