- ソリューションアーキテクト
- プロジェクトマネージャー
- テクニカルオペレーション
- Other occupations (4)
- Development
- Business
- Other
こんにちは、高知からインターンしている森田ドラゴンです。この前のインターンでは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 + ネットワーク周りの知識を使う課題がやりたいです -> 社員の森さん。
それではまた。