調べ物した結果

現役SEが仕事と直接関係ないことを調べた結果とか感想とか

AWS CLI でAmazon Pollyをつかってみる

Amazon Pollyって?


テキストの音声読み起こしサービス
Amazon Transcribeで音声ストリーミングから文字起こしがリアルタイムでできるらしんだけど、
ストリーミングとかその辺の知識、CLI、全般。全然足りなくて挫折しかけているから
とりあえず簡単そうなところからつついてみようかな。というのが目的。

最終的には
英語のストリーミングから文字起こし(Amazon Transcribe)
英文を日本語化(Amazon Translate)
をやってみる。みたい。ということ。できるかは知らない。
https://aws.amazon.com/jp/transcribe/faqs/
イケルっぽい感じがするからたぶんいけるやろう。

環境作成① ubuntuインストール


マニュアル見ながらポチポチやるにもUnix系のOSがないとあまりにもつらそうなので、
Hyper-V様に頑張ってもらってUbuntu18.04環境作成。
https://qiita.com/mfunaki/items/9e2901936b04f00f9cd7
ここみてやった。isoパクってきてぶち込むだけだけど。

環境作成② 諸々インストール


初期のUbuntu日本語キーボードですらないし、pipもないしで面倒だった。
とりあえず
・日本語化
https://linuxfan.info/ubuntu-18-04-japanese-input ご参考
・pip インストール
CLIインストール
https://dev.classmethod.jp/cloud/aws/awscli-cloudformation/
参考にした。
easy_installもないからaptでpipインストールしたとこがぽいんと。

API pollyやってみる。


3.2: AWS CLI を使用した実習の開始
を手順をおってやってみる。そのあとAPIを眺めていこうかなぁと思う。

f:id:couraeg:20191128232647p:plain
とりあえずしょっぱなからエラーがでた丸。

The security token included in the request is invalid

はーん?とーくん?なんも設定してないずら。
アクセスキーもちゃんと有効にしたんだけどな。こまった。
f:id:couraeg:20191128233240p:plain
pollyのアクセス権も渡してるし。

キーがしんでるのかな。もとのキーをけして再発行してみる。
f:id:couraeg:20191128235524p:plain
いけたなり。手打ちしてたから多分キー間違えてたな。こりゃ
f:id:couraeg:20191128235632p:plain
ファイルはちゃんとできてるなりね。
ubuntuなので再生が面倒なのでおいておくが、一番簡単なやつはクリアした気がする。

api読んでみる


今回使ったやつは
https://docs.aws.amazon.com/ja_jp/polly/latest/dg/API_SynthesizeSpeech.html
だろう。
outputFormat みるかぎり、Jsonでもはけるようす。んーJson?音声?
吐いてみるか

これを

aws polly synthesize-speech \
--output-format mp3 \
--voice-id Joanna \
--text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' \
hello.mp3

こうして

aws polly synthesize-speech \
--output-format json \
--voice-id Joanna \
--text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' \
hello.json

ファイルはできたけど中身からっぽですなぁ。よくわからん。もう一回ちゃんと読んでみようね

The format in which the returned output will be encoded. For audio stream, this will be mp3, ogg_vorbis, or pcm. For speech marks, this will be json.

When pcm is used, the content returned is audio/pcm in a signed 16-bit, 1 channel (mono), little-endian format.

翻訳かけたら思いっきりかいてました。

返される出力がエンコードされる形式。オーディオストリームの場合、これはmp3、ogg_vorbis、またはpcmになります。音声マークの場合、これはjsonになります。

なるほど。了解。PCMというのはTranscribeのAPIリファレンスでも見たような気がするなぁ。
この辺が突破口になりそう。とりあえず簡単なPollyのAPI実行はできた。

料金

今日使ったやつはこれぐらい。
f:id:couraeg:20191129001325p:plain
これぐらいもくそも無料枠に収まりました。

余談


aws polly describe-voices
でvoicesのバリエーション選べるんだけど超大量に出てくる。多すぎじゃねwww