web-dev-qa-db-ja.com

Actions on Googleにオーディオをストリーミングするように指示するにはどうすればよいですか?

GoogleActionsで動作するアプリを書いています。唯一の残念な点は、Googleが特定のURLからオーディオをストリーミングするように、応答を形成する方法に関する情報が見つからないことです。 Googleはこれをまだサポートしていますか?

私はすでにAlexaで同じアプリを作成しましたが、Alexaで行う必要があるのは、オーディオアイテム(トークン、URL、再生コマンド)を返すことだけで、Alexaはそれをストリーミングし始めます。

私はAPI.AIを使用していませんが、Actions SDKを使用しており、C#を使用してAsureでWebサービスをホストしています。

つまり、結論として... Actions SDKを介して応答をフォーマットし、MP3ファイルをGoogle Homeにストリーミングするにはどうすればよいですか?

14
Jay

UPDATE:最初の答えはDialogflowのV1でのみ機能します。 V2の場合、次の方法でmediaResponseを作成できます(Googleのドキュメントから)。

conv.ask(new MediaObject({
  name: 'Jazz in Paris',
  url: 'http://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3',
  description: 'A funky Jazz tune',
  icon: new Image({
    url: 'http://storage.googleapis.com/automotive-media/album_art.jpg',
    alt: 'Media icon',
  }),
}));

================================================== ======================

私は答えを投稿しました ここに

基本的に、オーディオファイルを再生するmediaResponseオブジェクトを作成できます。 50分のオーディオファイルを問題なく再生できます。

Node.jsのコード例は次のようになります(現在のドキュメントを使用)。

const richResponse = app.buildRichResponse()
 .addSimpleResponse("Here's song one.")
  .addMediaResponse(app.buildMediaResponse()
  .addMediaObjects([
    app.buildMediaObject("Song One", "https://....mp3")
      .setDescription("Song One with description and large image.") // Optional
      .setImage("https://....jpg", app.Media.ImageType.LARGE)
        // Optional. Use app.Media.ImageType.ICON if displaying icon.
  ])
)
.addSuggestions(["other songs"]);
5
Rémi C.

ドキュメントによると、SSMLに要素を埋め込むことができます。 https://developers.google.com/actions/reference/ssml 次の例が含まれています。

<speak>
  Here are <say-as interpet-as="characters">SSML</say-as> samples.
  I can pause <break time="3s"/>.
  I can play a sound
  <audio src="https://www.example.com/MY_MP3_FILE.mp3">didn't get your MP3 audio file</audio>.
  I can speak in cardinals. Your number is <say-as interpret-as="cardinal">10</say-as>.
  Or I can speak in ordinals. You are <say-as interpret-as="ordinal">10</say-as> in line.
  Or I can even speak in digits. The digits for ten are <say-as interpret-as="characters">10</say-as>.
  I can also substitute phrases, like the <sub alias="World Wide Web Consortium">W3C</sub>.
  Finally, I can speak a paragraph with two sentences.
  <p><s>This is sentence one.</s><s>This is sentence two.</s></p>
</speak>

[〜#〜]編集[〜#〜]

p/s: ドキュメント内のSSML これらの制限があります:

  • シングルチャンネルが推奨されますが、ステレオでもかまいません。
  • 最大持続時間は120秒です。より長い時間オーディオを再生したい場合は、メディア応答の実装を検討してください。 5メガバイトのファイルサイズ制限。

  • ソースURLはHTTPSプロトコルを使用する必要があります。

  • 音声を取得するときのUserAgentは「Google-Speech-Actions」です。
5
Matthias Keller