Alexa - Ruby - Воспроизведение аудиофайлов

Я пытаюсь воспроизвести аудиофайл через Alexa. Мой бэкэнд в Ruby on Rails, и я использую гем Alexa-ruby.

Я смог произносить речи с помощью директивы «спроси и скажи», как это

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

person Nidhin S G    schedule 08.08.2018    source источник
comment
какие ошибки?   -  person johndoe    schedule 08.08.2018
comment
ну, ошибки, показанные в ответе json, таковы, что в значительной степени прямо.. Так что я не думаю, что это полезно 'error => {type => INVALID_RESPONSE, message => Исключение произошло при отправке запроса навыку.} }}}'   -  person Nidhin S G    schedule 08.08.2018
comment
Когда вы спрашиваете, как исправить ошибку, знание ошибки является критическим, возможно, самым важным моментом, о котором нужно говорить. Вы можете немного расширить этот аспект в реальном вопросе, например, ТОЧНАЯ ошибка, какая строка, соответствующий контекст и т. д.   -  person ForeverZer0    schedule 08.08.2018
comment
Хорошо, моя ошибка, на самом деле ответа нет.. и причиной отсутствия ответа, показанного в json, была эта ошибка => {type => INVALID_RESPONSE, message => Исключение при отправке запроса к навыку.}}}}   -  person Nidhin S G    schedule 09.08.2018


Ответы (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-synchronous-markup-language-ssml-reference.html

person AhDev    schedule 11.01.2021