1
/
5

森田ドラゴンのインターンシップ ~15日目~ Polly to S3は関数あります

 こんにちは、高知からインターンしている森田ドラゴンです。この前のインターンではI AM Role地獄に陥ってしまい、悔しい結果になってしまいましたが、今日は楽しいpollyです。pollyに悩まされるかなーと思っていましたが、どちらかというとS3に悩まされました。ちなみに、aws pollyは合成音声によるテキスト読み上げサービスです。


課題内容
1. テキスト入力できるformを用意
2. ボタンを押すとpollyを叩いて読み上げるfileを作成
3. 文字の長さに寄らず、s3にアップロードして、ダウンロードリンクを表示する


チュートリアルが起点

 とりあえずブラウザでpollyを動かしてみよう。そう思い、以前見つけた javaxcript sdk ✖︎ pollyのチュートリアルをそのままペタペタ貼りました。
https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/getting-started-browser.html


 文字を入力すると、下のaudio タグから読み上げてもらえます。この画像にはないんですが(スクショしておけばよかった) おそらく導入しているBootstrapの影響で、横にダウンロードリンクが表示されていて
「あれ、S3にアップしなくてもダウンロードできるから完成ってことでいいんじゃないか?」
とも思いましたが、思いとどまって真面目に進めました。ペタペタ貼って終わっても面白くないですしね。

 このとき使った

polly.Presigner.getSynthesizeSpeechUrl(params,...)

メソッドで合成音声のurlを取得できたので「urlをS3にアップロードしたらいい感じにいきそう」と思い、次は、S3にuploadするメソッドを探しました。

S3にアップできたけど...

 また、uploadには名前が必要とのことなので、S3のファイル数を取得してその値に+1する形でファイル名を決定。「おお、なんかプログラミングしてるっぽい」

 また、uploadには名前が必要とのことなので、S3のファイル数を取得してその値に+1する形でファイル名を決定。「おお、なんかプログラミングしてるっぽい」とウハウハで進めていましたが、ここで詰まりました。

 S3にアップロードされたファイルにはURLだけが記述されていて、音楽ファイルはダウンロードできませんでした。S3でうまいことmp3化できないか調べたり、pollyのファイルはどこにあるのか調べたりしましたが、上手くいかず。

 「pollyのファイルをS3にアップロードする」

という、ありそうなシチュエーションなので、サポートしてないのかなーと調べていくと、バッチリサポートされてました。

polly.startSpeechSynthesisTask();

この関数で、S3に直接アップロードできるみたいです。CORSやS3について色々調べられたので、無駄ではないですが、最初からこの関数を知りたかったですね。


今の状態はこんな感じで、後は「リンク先のファイルの状態を常に公開状態にする」ということができれば完成です。

感想

 回り道してますが、前回のRoleで悩まされたことのような、全く手立てが思い浮かばない、という状態ではなかったので楽しかったです。S3について色々、sdkから色々触れたのも楽しいポイントでした。

 ただ、CORSやS3のバケット、pollyのファイルがどうなっているのか等、わからないことだらけなので、勉強していきます。AWS + ネットワーク周りの知識を使う課題がやりたいです -> 社員の森さん。

それではまた。

株式会社サーバーワークス's job postings

Weekly ranking

Show other rankings
Invitation from 株式会社サーバーワークス
If this story triggered your interest, have a chat with the team?