Amazon Echo Воспроизведение музыки по команде

Привет всем, мне трудно реализовать воспроизведение звука. Вот документы

То, что я действительно хочу сделать, кажется довольно простым, но оказалось очень запутанным, где все должно происходить.

Я хочу иметь возможность сказать команду. Алекса ответит немного outputSpeech, а затем перейдет к воспроизведению небольшой аудиодорожки в формате mp3, которую я предоставлю. Я не против загрузить его локально (когда я заархивирую файлы и импортирую их в функцию lamda) или с помощью S3 Buckets SDK для потоковой передачи файла mp3. Что для вас проще, ребята.

Вот что у меня получилось.

С помощью приведенных ниже кодов я могу заставить Alexa отвечать как голос и выводить речь.

Я использую IntentRequest только для уменьшения количества кодов для вас, ребята.

  • Я скажу: «Алекса, открой мое приложение и включи мою музыку»
  • "play my music" - это команда, которую я укажу как свое высказывание, когда я настрою свой навык в консоли разработчика alexa.
exports.handler = (event, context, callback) => {
    try {
        if (event.request.type === 'IntentRequest') {
            onIntent(event.request,
                event.session,
                (sessionAttributes, speechletResponse) => {
                    callback(null, buildResponse(sessionAttributes, speechletResponse));
                });
        }
    } catch (err) {
        callback(err);
    }
};


Моя функция, которая будет вызываться при выполнении запроса о намерении

  • Мое намеренное имя будет PlayMyMusic.


function onIntent(intentRequest, session, callback) {
    console.log(`onIntent requestId=${intentRequest.requestId}, sessionId=${session.sessionId}`);

    const intent = intentRequest.intent;
    const intentName = intentRequest.intent.name;

    if (intentName === 'PlayMyMusic') {
        PlayMyMusic(intent, session, callback);
    } else if (intentName === 'AMAZON.StopIntent' || intentName === 'AMAZON.CancelIntent') {
        handleSessionEndRequest(callback);
    } else {
        throw new Error('Invalid intent');
    }
}


Это выходное сообщение

function PlayMyMusic(intent, session, callback) {

    const repromptText = null;
    const sessionAttributes = {};
    let shouldEndSession = true;
    let speechOutput = '';

        speechOutput = `I'm Alexa and I will output speech in this area. After I'm done talking I will play an audio track`;

    callback(sessionAttributes,
        buildSpeechletResponse(intent.name, speechOutput, repromptText, shouldEndSession));
}

Это моя простая схема намерений

{
  "intents": [
    {
      "intent": "PlayMyMusic"
    },
    {
      "intent": "AMAZON.HelpIntent"
   }
  ]
}

Примеры высказываний

PlayMyMusic play my music


На данный момент все работает, когда Amazon может поговорить со мной и завершить сеанс.

How would I be able to have Amazon responds to me and then play some audio? The docs are kind of not working for me.

  • Куда мне поместить директиву воспроизведения? (AudioPlayer.Play)

  • person Victor Le    schedule 22.09.2016    source источник
    comment
    у тебя есть ответ?   -  person Pardeep Jain    schedule 26.04.2019


    Ответы (1)


    вы можете использовать SSML и добавить путь к mp3 по любому URL-адресу https, и он будет воспроизводить песню

    см. это

    Include the audio tag within your text-to-speech response within the speak tag. Alexa plays the MP3 at the specified point within the text to speech. For example:
    <speak>
        Welcome to Car-Fu. 
        <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> 
    When Alexa renders this response, it would sound like this:
    Alexa: Welcome to Car-Fu.
    (the specified amzn_sfx_car_accelerate_01.mp3 audio file plays)
    Alexa: You can order a ride, or request a fare estimate. Which will 
    
    person Jin Thakur    schedule 16.12.2016
    comment
    Не могли бы вы добавить какой-нибудь пример того же? - person Pardeep Jain; 26.04.2019
    comment
    Проверьте этот developer.amazon .com / docs / custom-skills / - person Jin Thakur; 01.05.2019