前回の続きです。
全然関係ないですが、欧州サッカーファンの皆様、リーグ戦開幕おめでとうございます!
目次:
- Google Cloud Platform準備
- 英語のニュースRSSを取得するコード書く ←今日はここから
- Google Translate APIで英語のテキストを日本語に翻訳
- Amazon Polly に日本語テキストを渡して読み上げさせ、音声ファイルを生成し、S3にアップロード
- 上記をストリーミングするAlexa Skillを作成
2.英語のニュースRSSを取得するコード書く
特に新しいものは用意しません。アーセナルの公式ニュースのフィードを取得しする既存スクリプトを使います。
ソースは先日バグを直して故障箇所を直してGithubにコミットしたものを使います。
Alexa と名前が似ている某クラブのエースについて
本当にどうでもいいですが、「Alexa」と「Alexis」は似ていますね。アレクシスサンチェス。アーセナルに残って欲しいところですが、ラカゼットが馴染みつつあるのと、ジルーが意地を見せて、スーパーサブで良い所で試合を決める、とゆー働きをしているので、もしかしたら出場機会はグッと減るかもしれません。
とはいえアーセナルには魔の11月がありますから、(CLがなくなってもヨーロッパリーグが有るからむしろ移動がとんでもない僻地)ターンオーバーは必須なんですが。
移籍するんですかね。シティですかね。ネイマールの穴が空いたバルサですかね。どっちもスペイン語は通じる人多そうですね。
つうかあんまりサッカーの事ばかりかくとQiitaの運営様にまた消されそうなのでここでやめておきます。
3. Google Translate APIで英語のテキストを日本語に翻訳
前回、GCPのダッシュボードでテケトーなプロジェクト「Translateほにゃらら」を作り、
そのプロジェクトに於いて「Translate API」を有効にしました。
再びダッシュボードにログインし、使いたいプロジェクトを選択した状態で、API検索窓でTranslation APIを探します。
GCPダッシュボード
https://console.cloud.google.com/
↓
ドキュメント
https://cloud.google.com/translate/docs/getting-started?csw=1
軽く目を通します。「注: Google Compute Engine VM を使用している場合は、すでにそのイメージに Cloud SDK がプリインストールされています。」とあります。
このAlexa Skillの本体はAWSのEC2に置こうとしてましたが、GCPでインスタンスを立ててTlanslation APIを呼び出すのが良さそう。
アマゾンなのにグーグル。。。
おらワクワクしてきたぞ!
↓
「API Explorerで試す」をクリックすると、
Google Cloud Translation API v2に含まれる5つのAPIを、フォーム形式で動作確認できます。
|APIの名前|説明|
|:---|:---|:---|
|language.detections.detect|Detects the language of text within a request.|
|language.detections.list|Detects the language of text within a request.|
|language.languages.list|Returns a list of supported languages for translation.|
|language.translations.list|Translates input text, returning translated text.|
|language.translations.translate|Translates input text, returning translated text.|
このうち、「language.translations.list」を使ってみます。
「q」が翻訳したい文字列なので、ここに「壊れかけのレディオ」と入力し、
「Target」に英語を示すであろう「en」を入力します。
executeを力一杯押します。すると、
「q」をurlエンコードしてtranslate/v2 APIに渡します。
↓
すると翻訳した結果を「Broken Radio」と返却してきます。
レディオがちゃんとradioになってるのが嬉しいですね。
あと入力時には指定しなかった、「detectedSourceLanguage」が「ja」と推察されて書かれています。
説明はあるにはあるんですが、上のどのAPIを使えば良いかが全く書いてなくて、逆に以下の基本的なことが書いてあります。
・GETリクエストの長さは、パラメータ含めて2000文字未満
・URLエンコードしたものを指す。そうじゃないと空白で切れちゃうからね。
へー。
なお、「language.translations.list」以外の4つは、使い方がさっぱりわからないのでスルーします。
そろそろ寝ないといけないので、今日はこれくらいにしておきます。
次のTodoは、
・GCPにインスタンスを立てる
・アーセナルの公式ニュースのRSSを取ってくるphpのスクリプトを改造して、英語から日本語へ、Translation APIを使って自動翻訳する
これでもまだ「3」です。いつになったら「4」にたどり着けるのか。。笑