ちょいちょい聞かれることも多いのでまとめてみます。
Voiceflowで効果音やサウンドなどの音声ファイルを使う場合、Speak Blockにそのままアップロードしちゃうのが一番カンタンです。Advent CalendarでもSpeak BlockやStream Blockを紹介した際はアップロードすることをオススメしています。
でもVoiceflowのフォーラムなどを見ていると、DropboxとかGoogleドライブとかのファイル共有サイトに置いたファイルをそのまま使いたいというのが案外多いんですね。で、ファイル共有用に発行した専用URLを使うんだけど、うまく行かないのです・・・
ということで、今回は特に質問が多いDropboxとGoogleドライブにおいた音声ファイルを使う場合のTipsです。
Dropbox
Dropboxにあるmp3ファイルを使ってみましょう。Dropboxにsample.mp3というファイルをアップロードしてみました。
Dropbox内のファイルを使うには、そのファイルの共有設定を有効化して、外部から参照できるようにする必要があります。ファイルにカーソルを合せると「共有」ボタンが表示されるのでクリックします。
共有の設定画面が表示されるので、「リンクの作成」をクリックします。
共有用のリンクが作成されるので、「リンクをコピー」をクリックします。
クリップボードにリンクがコピーされます。
作成されたリンクはこういう感じになっています。
https://www.dropbox.com/s/XXXXXXXXXXXXXXX/sample.mp3?dl=0
ではこれを使ってスキルから再生してみましょう。Speak BlockにAudioを追加して、URLで指定してみます。
テストです。
うまくいきません。エラーメッセージはこんな感じになっています。
"error": { "type": "INVALID_RESPONSE", "message": "Invalid Audio Content for requestId amzn1.echo-api.request.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Error: Invalid audio content in URL: https://www.dropbox.com/s/XXXXXXXXXXXXXXX/sample.mp3?dl=0" }
なんかオーディオが不正だと出ていますね。では、URLのwww.dropbox.com
の部分を``dl.dropboxusercontent.com```に変えてみましょう。Speak BlockのAudioを開いて以下のようなURLに変えてください。
https://dl.dropboxusercontent.com/s/XXXXXXXXXXXXXXX/sample.mp3
再テストです。
はい、今度は再生されました!
Googleドライブ
次はGoogleドライブです。同じファイルを使ってやってみます。sample.mp3を右クリックして、「共有可能なリンクを取得」を選択します。
URLが表示されて、自動的にクリップボードにコピーされます。
URLはこんな感じになっています。
https://drive.google.com/open?id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
これを同じようにSpeak BlockのAudioに指定してテストしてみます。
メッセージは違うけど、うまくいきませんね・・・
でこういうふうにURLを変えてください、と言いたいのですが、こちらで確認した限り、Googleドライブの場合は必ずこれが正解、というものがないのですよね・・・・・なので一例をご紹介します。これで動いた方もいれば、動かないという方もいるということでご了承ください。
https://drive.google.com/uc?export=download&id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
いかがでしょうか?結構めんどくさいですよね。しかもこの場合は事前にAlexaで使えるオーディオフォーマットに変換しておく必要があるのですよ・・・Voiceflowにファイルとしてアップロードした場合はこのあたりも含めてよしなに変換してくれるので(稀にうまく行かない場合もあります)、やっぱりVoiceflowへのアップロードが簡単に使えてオススメです!ただまあ知っておくと役に立つ場合があるかも、という参考情報として頭の片隅においておいていただければと思います。