Amazonが10年以上取り組んできた時系列データの予測サービス「Amazon Forecast」が正式リリースされたので、実験的にビットコインの価格予測を試して公開してみました!
— 2z / AIメーカー開発者 (@2zn01) September 16, 2019
一日一回のペースで再学習を行い、一日先の未来のビットコイン価格を予測します。https://t.co/sCLETlsHaJ
こんにちは、2z(Twitter: @2zn01 )です。
趣味でWebサービスの個人開発をしており、以下のサービスを開発・運営しています!
■AIメーカー
https://aimaker.io/
■ツイレポ
https://twirepo.com/
今回作ったもの
Amazon.com で10年以上取り組んできた時系列データの予測技術がAWS上で「Amazon Forecast」としてサービス化されたので、これを使ってビットコインの価格予測を自動化し、Web上で見られるようにしました。
以下のURLよりご確認頂けます。
■URL
https://aimaker.io/forecast/
Amazonが10年以上取り組んできた時系列データの予測サービス「Amazon Forecast」が正式リリースされたので、実験的にビットコインの価格予測を試して公開してみました!
— 2z / AIメーカー開発者 (@2zn01) September 16, 2019
一日一回のペースで再学習を行い、一日先の未来のビットコイン価格を予測します。https://t.co/sCLETlsHaJ
「Amazon Forecast」は、モデルの再構築と検証、アルゴリズムの選定などの一連の流れを自動で行うことができ、正確な時系列予測が行えるとありますので、どこまでの精度が出るのか、興味があり、作ってみました。
使用技術
Linux
クラウドのホスティングはAmazon Web Services(AWS)で、EC2でサーバを立てています。
サーバのOSは Amazon Linux2を使っています。
Apache
webサーバはApacheを使っています。
Nginxもありますが、Apacheは普段から使っており、設定も把握していたため、いつも通りの安定の選択としました。
MySQL
データベースはMySQLを使用しています。
PHP
Webサーバ側のプログラムはPHPを使って実装しました。
Python
ビットコインの価格データをとってきて加工する箇所はPythonで作りました。
Amazon Forecast
cron
ビットコインの価格データの取得、Amazon Forecastでのモデルの学習・推論を
cronで一日一回実行するようにしています。
文字起こしの仕組み

画像ファイルから文字起こし
- Google Compute Engine(サーバ)
- Google Cloud Storage(ストレージ)
- Google Cloud Vision API(画像認識)
Google Compute Engine上に立ち上げたサーバからアップロードされた画像ファイルをGoogle Cloud Storage(GCS)上へアップした上で、Google Cloud Vision APIにGCS上の画像URIを送信し、文字起こしされた結果を受け取っています。
音声ファイルから文字起こし
- Google Compute Engine(サーバ)
- Google Cloud Storage(ストレージ)
- Google Cloud Speech API(Speech-to-Text/音声認識)
Google Compute Engine上に立ち上げたサーバからアップロードされた音声ファイルをGoogle Cloud Storage(GCS)上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。
動画ファイルから文字起こし
- Google Compute Engine(サーバ)
- Google Cloud Storage(ストレージ)
- Google Cloud Speech API(Speech-to-Text/音声認識)
- ffmpeg(動画→音声の変換)
Google Compute Engine上に立ち上げたサーバからアップロードされた動画ファイルをffmpegを使って音声ファイルへ変換し、Google Cloud Storage(GCS)上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。
YouTubeから文字起こし
- Google Compute Engine(サーバ)
- Google Cloud Storage(ストレージ)
- Google Cloud Speech API(Speech-to-Text/音声認識)
- ffmpeg(動画→音声の変換)
Google Compute Engine上に立ち上げたサーバで指定されたYouTubeの動画をダウンロードしてffmpegを使って音声ファイルへ変換し、Google Cloud Storage(GCS)上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。
有料課金の導入
文字起こしではAPIの利用費がかかってしまうため、100円分までは無料で使えるようにしましたが、それを超える場合はやむなく有料課金にしました。
有料課金は以下のサービスを利用しています。
-
Stripe
https://stripe.com/jp
LINE Payでの課金は以下の流れになります。
「モジコ」のLINE上では以下のような形で出しています。

なお、Stripeは最低利用金額は日本円で50円からだったため、合計金額が50円に達した場合のみ利用できるようにしました。
LINE BotとLINE Payの課金導線はスムーズなため、LINE Botのマネタイズ化にすごく相性が良いと思います!
ちなみに、LINE Payを本番で利用するには、加盟店加入申請が必要です。
LINE Payの加盟店申請の際は、個人事業主の場合は以下の書類を用意します。
<事業者証明書>
以下のいずれか
・国税・地方税の領収書または納税証明書
・個人事業開業届出書(控):税務署受付印が押印されたもの
・確定申告書(控):直近の税務署受付印が押印されたもの
・青色申告承認申請書(控):税務署受付印が押印されたもの
・個人事業開始申告書(控):都道府県税事務所や市区町村役場の受付印が押印されたもの
<本人確認書類>
以下のいずれか
・運転免許証:変更事項があれば裏面含みます。
・健康保険証:表裏必要です。
<商品・サービス説明資料(任意)>
必須ではありませんが、審査を円滑に進めるには提出した方が無難です。
僕の場合はサービスの概要資料とあわせて、どのようにLINE Payを導入・利用するかを示した資料を提出しました。
僕の場合は個人事業主として申請し、3週間ほどで審査が完了し、利用できるようになりました。
LINE Bot化で工夫(苦労)したところ、など
処理時間が長い場合の対処
文字起こしの処理時間は画像の場合は数秒で終わるため、すぐに応答メッセージ(message/reply)を返すことができました。
しかし、音声や動画の場合は再生時間の1/4程度の時間が文字起こしにかかるため、一旦応答メッセージ(message/reply)で変換待ちである旨を返すようにし、文字起こしの進捗を確認できるようにしました。

そして、文字起こしがすべて完了した後にプッシュメッセージ(message/push)で文字起こし結果を返すようにしました。
なお、プッシュメッセージはフリープランの場合は月に1000通までのため、注意が必要です。

僕はLINE Botの開発とは、いかに応答メッセージ(message/reply)で済ませるかが勝負だと思っています。
LINE BOT開発とはいかにPushメッセージを使わずにReplyメッセージで済ませるかの闘いである。
— 2z / AIメーカー開発者 (@2zn01) August 4, 2019
(フリープランの場合、月に1000件はちょっと少ないよね...)
今回もなるべくLINE Botは応答メッセージ(message/reply)で済ませたいところでしたが、ユーザビリティも考えて、苦肉の策でプッシュメッセージ(message/push)を使用しています。
LINEのファイルアップロード上限
LINEでは明確なファイルサイズの上限が見当たらず、10MBを超えるような大きなファイルサイズだとアップロード中にロード中のまま止まってしまうことがありました。
(なぜかグループで追加した場合はアップロードできるようでしたが、、)
また、動画ファイルは5分以内でなければならず、それを超える場合は動画を5分以内に切り取らざるを得ませんでした。
そのため、苦肉の策として、別途アップロードするためのアップローダー画面を用意することにしました。

LINEでのファイルの取り扱い
LINEからアップロードされたファイルは、画像はjpg、音声はm4a、動画はmp4に変換されるようです。
APIからファイル(コンテンツ)を取得する際にはその点に注意する必要がありました。
サービス紹介動画の制作
今回はサービス紹介動画を作成しました。
以下のURLより見ることができます。
・文字起こしAIコンシェルジュ「モジコ」
https://www.youtube.com/watch?v=zof9OH9BOxE
この動画は「Canva」というデザイングラフィックツールのWebサービスを活用して作りました。
- Canva
https://www.canva.com/
「Canva」は基本的に画像を作成するツールですが、Canva Proの有料版だとスライドを作るとそれをイイ感じにアニメーションとして出力することができます。
出力したアニメーションを組み合わせて動画として作成しました。
最後に
苦肉の策を講じながらも、何とかサービスをリリースすることができました。
このサービスに少しでも興味をもって頂けましたら、ぜひフォローやいいね、リツイートで応援お願いします!
Amazonが10年以上取り組んできた時系列データの予測サービス「Amazon Forecast」が正式リリースされたので、実験的にビットコインの価格予測を試して公開してみました!
— 2z / AIメーカー開発者 (@2zn01) September 16, 2019
一日一回のペースで再学習を行い、一日先の未来のビットコイン価格を予測します。https://t.co/sCLETlsHaJ