Search code examples
actions-on-google

How do I play an audio file when using Fulfillment with Dialogflow


I'm making a Google Assistant action, similar to what Google does when you say "Play an E note".

I've managed to get my nodejs app to reply back the parameter, but now I need to pass an audio file. How do I do that?


Solution

  • The typical way to do this is to place the audio file on a hosting service somewhere (Firebase Hosting is a good choice, particularly if you're also using Firebase Cloud Functions for your Action, but any place that can serve a file via HTTPS works) and then send back SSML as your response that includes the audio.

    This might look something like this:

    var audioUrl = 'https://example.com/audiofile.mp3';
    var msg = `<speak><audio src="${audioUrl}"></audio></speak>`
    app.tell( msg );
    

    Adjust this for your own audio file, and you might want to use app.ask() instead of tell if you are prompting the user to reply to your audio.