LoginSignup
2
1

More than 5 years have passed since last update.

英語のニュースを日本語に翻訳してストリーミングでAlexaに喋らす試み その2

Posted at

前回の続きです。

全然関係ないですが、欧州サッカーファンの皆様、リーグ戦開幕おめでとうございます!

目次:

  1. Google Cloud Platform準備
  2. 英語のニュースRSSを取得するコード書く ←今日はここから
  3. Google Translate APIで英語のテキストを日本語に翻訳
  4. Amazon Polly に日本語テキストを渡して読み上げさせ、音声ファイルを生成し、S3にアップロード
  5. 上記をストリーミングするAlexa Skillを作成

2.英語のニュースRSSを取得するコード書く

特に新しいものは用意しません。アーセナルの公式ニュースのフィードを取得しする既存スクリプトを使います。
ソースは先日バグを直して故障箇所を直してGithubにコミットしたものを使います。

Alexa と名前が似ている某クラブのエースについて

本当にどうでもいいですが、「Alexa」と「Alexis」は似ていますね。アレクシスサンチェス。アーセナルに残って欲しいところですが、ラカゼットが馴染みつつあるのと、ジルーが意地を見せて、スーパーサブで良い所で試合を決める、とゆー働きをしているので、もしかしたら出場機会はグッと減るかもしれません。
とはいえアーセナルには魔の11月がありますから、(CLがなくなってもヨーロッパリーグが有るからむしろ移動がとんでもない僻地)ターンオーバーは必須なんですが。

移籍するんですかね。シティですかね。ネイマールの穴が空いたバルサですかね。どっちもスペイン語は通じる人多そうですね。
スクリーンショット 2017-07-28 23.25.55.png
つうかあんまりサッカーの事ばかりかくとQiitaの運営様にまた消されそうなのでここでやめておきます。

3. Google Translate APIで英語のテキストを日本語に翻訳

前回、GCPのダッシュボードでテケトーなプロジェクト「Translateほにゃらら」を作り、
そのプロジェクトに於いて「Translate API」を有効にしました。

再びダッシュボードにログインし、使いたいプロジェクトを選択した状態で、API検索窓でTranslation APIを探します。

GCPダッシュボード
https://console.cloud.google.com/
gcp_console.png

ドキュメント
https://cloud.google.com/translate/docs/getting-started?csw=1
軽く目を通します。「注: Google Compute Engine VM を使用している場合は、すでにそのイメージに Cloud SDK がプリインストールされています。」とあります。
このAlexa Skillの本体はAWSのEC2に置こうとしてましたが、GCPでインスタンスを立ててTlanslation APIを呼び出すのが良さそう。
アマゾンなのにグーグル。。。
おらワクワクしてきたぞ!


gcp_tlanslaton_console.png
「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」を入力します。

スクリーンショット 2017-08-14 2.06.13.png
executeを力一杯押します。すると、
「q」をurlエンコードしてtranslate/v2 APIに渡します。


スクリーンショット 2017-08-14 2.06.28.png
すると翻訳した結果を「Broken Radio」と返却してきます。
レディオがちゃんとradioになってるのが嬉しいですね。
あと入力時には指定しなかった、「detectedSourceLanguage」が「ja」と推察されて書かれています。

説明はあるにはあるんですが、上のどのAPIを使えば良いかが全く書いてなくて、逆に以下の基本的なことが書いてあります。
・GETリクエストの長さは、パラメータ含めて2000文字未満
・URLエンコードしたものを指す。そうじゃないと空白で切れちゃうからね。

へー。
なお、「language.translations.list」以外の4つは、使い方がさっぱりわからないのでスルーします。

そろそろ寝ないといけないので、今日はこれくらいにしておきます。

次のTodoは、
・GCPにインスタンスを立てる
・アーセナルの公式ニュースのRSSを取ってくるphpのスクリプトを改造して、英語から日本語へ、Translation APIを使って自動翻訳する
これでもまだ「3」です。いつになったら「4」にたどり着けるのか。。笑

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1