技術

【Alexa Skill】ビックリするなかれ (Unsupported Directive)

投稿日:2018年9月10日 更新日:

どうも中田です。
みなさんAlexa使ってます?Alexaスキル作ってます?

今回はAlexaスキルのメモ。

Alexaの応答で発語と同じように音声ファイル(mp3)を流すのって制限あるんですよね。
下記のような audio タグで囲んだものをAlextに対してemitすれば音声流してくれるんですが。

<audio src="音声.mp3" />

制約

  • 音声ファイルは5つまで
  • 合わせて90秒まで

これだと長い音声を流したいという希望が叶えられません。
そこで用意されてるのが AudioPlayer
これで音楽を再生すれば長い音声にも対応できます。

'XXXXIntent': function () {
  var url = '長い音声ファイル.mp3';
  this.response.audioPlayerPlay('REPLACE_ALL', url, url, null, 0);
  this.emit(':responseReady');
}

Webシミュレータでいつも確認してるのですが、
そこで遭遇したメッセージ

Unsupported Directive
AudioPlayer is currently an unsupported namespace. Check the device log for more information.

おっ、、、、と思いましたが、これは単純な警告。
シミュレータでなく実機でしかaudioPlayerは動きませんよ。
というものです。

実機でやるとちゃんと動きましたー

触って見て思いましたが、Alexaスキル面白そうですね。

-技術

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Chrome開発者ツールの背景を黒にする

普段コーディングしている時は、背景黒の方が目に優しい気がするのでエディターの背景 …

LINE BOTを無料で試してみました。heroku + Rails

こんばんは たまにはエンジニアっぽいところを見せようと思い、遅ればせながら、流行 …

no image

[Rails] deviseのパスワード認証を半角英数字だけ許可する

こんばんは ログイン機能を作る時ってdeviseが便利ですよね。 ですが、デフォ …

no image

【Angular7】ファイルの指定をルート相対パスにする

こんにちは Angularで別ファイル(例えばcomponentからservic …

no image

【AngularJS】 $on, $emit, $broadcast

どうも、なかたです。 AngularJSのコントローラー(スコープ)間のデータや …