LINEに画像、音声、動画ファイル、YouTubeのURLを投げると、AIがすべて自動で文字起こし📝して返してくれる「文字起こすくん」というサービスを作りましたー!🙌
— 2z / AIメーカー開発者 (@2zn01) August 24, 2019
もう面倒な文字起こし作業からは解放されましょー💡
以下からLINEの友達登録できます!https://t.co/cvTfCQIGHb pic.twitter.com/My09VqwWz9
こんにちは、2z(Twitter: @2zn01 )です。
趣味でWebサービスの個人開発をしており、以下のサービスを開発・運営しています!
■AIメーカー
https://aimaker.io/
■ツイレポ
https://twirepo.com/
今回作ったもの
LINEに文字起こししたい画像、音声、動画ファイル、YouTubeのURLを投げ込むだけで、面倒な文字起こし作業をAIに任せることができる「文字起こすくん」というサービスをリリースしました!
■URL
https://text.aimaker.io/recognize-bot/
■動画
https://www.youtube.com/watch?v=zof9OH9BOxE
以下のQRコードから友達登録できます。
文字起こしは大きく以下の4つの方法から行えます。
- 📺 YouTubeから文字起こし
- 📷 画像ファイルから文字起こし
- 🎙️ 音声ファイルから文字起こし
- 📹 動画ファイルから文字起こし
LINEに画像、音声、動画ファイル、YouTubeのURLを投げると、AIがすべて自動で文字起こし📝して返してくれる「文字起こすくん」というサービスを作りましたー!🙌
— 2z / AIメーカー開発者 (@2zn01) August 24, 2019
もう面倒な文字起こし作業からは解放されましょー💡
以下からLINEの友達登録できます!https://t.co/cvTfCQIGHb pic.twitter.com/My09VqwWz9
文字起こししたい画像、音声、動画ファイル、YouTubeのURLをLINEに投げると、そこから文字起こしを行い、文字起こし結果を返してくれます。
画像の場合は画像内に含まれる文字を抽出し、動画の場合は動画内の音声を抽出して文字起こしします。
以下の拡張子のファイルに対応しています。
- 画像ファイル:JPEG/PNG/GIF
- 音声ファイル:WAV/MP3/WMA/AAC/M4A/FLAC/OGG
- 動画ファイル:P4/AVI/FLV/MOV/WMV
YouTubeの場合はYouTubeの動画をダウンロードした上で動画内の音声を抽出して、文字起こしを行います。
使用技術
Linux
クラウドのホスティングはGoogle Cloud Platform(GCP)で、Google Compute Engine(GCE)でサーバを立てています。
サーバのOSはLinuxでCentOSの7系を使っています。
Apache
webサーバはApacheを使っています。
Nginxもありますが、Apacheは普段から使っており、設定も把握していたため、いつも通りの安定の選択としました。
MySQL
データベースはMySQLを使用しています。
PHP
サーバ側のプログラムはPHPを使って実装しました。
ffmpeg
動画ファイルから音声ファイルを抽出するのに使用しています。
- ffmpeg
https://ffmpeg.org/
Google Vision API
画像ファイルを文字起こしするのに使用しています。
- Google Vision API
https://cloud.google.com/vision/?hl=ja
Google Cloud Speech-to-Text API
音声ファイルを文字起こしするのに使用しています。
- Google Cloud Speech-to-Text
https://cloud.google.com/speech-to-text/?hl=ja
LINE Messaging API
LINE Botでのメッセージのやり取りにLINE Messaging APIを使用しています。
- Messaging APIリファレンス
https://developers.line.biz/ja/reference/messaging-api/
LINE Pay
LINE Botでのマネタイズをどうしようかと考えていたときに、LINE Payによる課金手段を知りました。
これがあったらこそ、LINE Botによる文字起こしを実装することを決断しました。
Stripe
LINE Payだけだとまだまだ利用者が少ないかと思い、Stripeを使った有料課金も組み込みました。
- stripe API Reference
https://stripe.com/docs/api
文字起こしの仕組み
画像ファイルから文字起こし
- 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=xlyRwAwIioQ
この動画は「Canva」というデザイングラフィックツールのWebサービスを活用して作りました。
- Canva
https://www.canva.com/
「Canva」は基本的に画像を作成するツールですが、Canva Proの有料版だとスライドを作るとそれをイイ感じにアニメーションとして出力することができます。
出力したアニメーションを組み合わせて動画として作成しました。
最後に
苦肉の策を講じながらも、何とかサービスをリリースすることができました。
このサービスに少しでも興味をもって頂けましたら、ぜひフォローやいいね、リツイートで応援お願いします!
LINEに画像、音声、動画ファイル、YouTubeのURLを投げると、AIがすべて自動で文字起こし📝して返してくれる「文字起こすくん」というサービスを作りましたー!🙌
— 2z / AIメーカー開発者 (@2zn01) August 24, 2019
もう面倒な文字起こし作業からは解放されましょー💡
以下からLINEの友達登録できます!https://t.co/cvTfCQIGHb pic.twitter.com/My09VqwWz9