Help us understand the problem. What is going on with this article?

画像、音声、動画、YouTubeからAIが文字起こししてくれるLINE Botを作りました!【LINE Payによるマネタイズ施策】


こんにちは、2z(Twitter: @2zn01 )です。

趣味でWebサービスの個人開発をしており、以下のサービスを開発・運営しています!

■AIメーカー
https://aimaker.io/

■waifu2x-multi
https://waifu2x.me/

■ツイレポ
https://twirepo.com/

今回作ったもの

LINEに文字起こししたい画像、音声、動画ファイル、YouTubeのURLを投げ込むだけで、面倒な文字起こし作業をAIに任せることができる「文字起こすくん」というサービスをリリースしました!

■URL
https://text.aimaker.io/recognize-bot/

■動画
https://www.youtube.com/watch?v=zof9OH9BOxE

モジコ-概要.jpg

モジコ-使い方.jpg

以下のQRコードから友達登録できます。

モジコ-QRコード.png


文字起こしは大きく以下の4つの方法から行えます。

  1. 📺 YouTubeから文字起こし
  2. 📷 画像ファイルから文字起こし
  3. 🎙️ 音声ファイルから文字起こし
  4. 📹 動画ファイルから文字起こし

文字起こししたい画像、音声、動画ファイル、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

動画ファイルから音声ファイルを抽出するのに使用しています。

Google Vision API

画像ファイルを文字起こしするのに使用しています。

Google Cloud Speech-to-Text API

音声ファイルを文字起こしするのに使用しています。

LINE Messaging API

LINE Botでのメッセージのやり取りにLINE Messaging APIを使用しています。

LINE Pay

LINE Botでのマネタイズをどうしようかと考えていたときに、LINE Payによる課金手段を知りました。
これがあったらこそ、LINE Botによる文字起こしを実装することを決断しました。

Stripe

LINE Payだけだとまだまだ利用者が少ないかと思い、Stripeを使った有料課金も組み込みました。

文字起こしの仕組み

モジコ-文字起こしの仕組み.png

画像ファイルから文字起こし

  • 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円分までは無料で使えるようにしましたが、それを超える場合はやむなく有料課金にしました。

有料課金は以下のサービスを利用しています。

LINE Payでの課金は以下の流れになります。

img_linepay.jpg

「文字起こすくん」のLINE上では以下のような形で出しています。

モジコ-ペイメント.png

なお、Stripeは最低利用金額は日本円で50円からだったため、合計金額が50円に達した場合のみ利用できるようにしました。

LINE BotとLINE Payの課金導線はスムーズなため、LINE Botのマネタイズ化にすごく相性が良いと思います!


ちなみに、LINE Payを本番で利用するには、加盟店加入申請が必要です。

LINE Payの加盟店申請の際は、個人事業主の場合は以下の書類を用意します。

<事業者証明書>
以下のいずれか
 ・国税・地方税の領収書または納税証明書
 ・個人事業開業届出書(控):税務署受付印が押印されたもの
 ・確定申告書(控):直近の税務署受付印が押印されたもの
 ・青色申告承認申請書(控):税務署受付印が押印されたもの
 ・個人事業開始申告書(控):都道府県税事務所や市区町村役場の受付印が押印されたもの

<本人確認書類>
以下のいずれか
 ・運転免許証:変更事項があれば裏面含みます。
 ・健康保険証:表裏必要です。

<商品・サービス説明資料(任意)>
必須ではありませんが、審査を円滑に進めるには提出した方が無難です。
僕の場合はサービスの概要資料とあわせて、どのようにLINE Payを導入・利用するかを示した資料を提出しました。


僕の場合は個人事業主として申請し、3週間ほどで審査が完了し、利用できるようになりました。

LINE Bot化で工夫(苦労)したところ、など

処理時間が長い場合の対処

文字起こしの処理時間は画像の場合は数秒で終わるため、すぐに応答メッセージ(message/reply)を返すことができました。
しかし、音声や動画の場合は再生時間の1/4程度の時間が文字起こしにかかるため、一旦応答メッセージ(message/reply)で変換待ちである旨を返すようにし、文字起こしの進捗を確認できるようにしました。

モジコ-変換待ち.png

そして、文字起こしがすべて完了した後にプッシュメッセージ(message/push)で文字起こし結果を返すようにしました。

なお、プッシュメッセージはフリープランの場合は月に1000通までのため、注意が必要です。

line-messaging-plan.png

僕はLINE Botの開発とは、いかに応答メッセージ(message/reply)で済ませるかが勝負だと思っています。

今回もなるべくLINE Botは応答メッセージ(message/reply)で済ませたいところでしたが、ユーザビリティも考えて、苦肉の策でプッシュメッセージ(message/push)を使用しています。

LINEのファイルアップロード上限

LINEでは明確なファイルサイズの上限が見当たらず、10MBを超えるような大きなファイルサイズだとアップロード中にロード中のまま止まってしまうことがありました。
(なぜかグループで追加した場合はアップロードできるようでしたが、、)

また、動画ファイルは5分以内でなければならず、それを超える場合は動画を5分以内に切り取らざるを得ませんでした。

そのため、苦肉の策として、別途アップロードするためのアップローダー画面を用意することにしました。

モジコ-アップローダー.png

LINEでのファイルの取り扱い

LINEからアップロードされたファイルは、画像はjpg、音声はm4a、動画はmp4に変換されるようです。
APIからファイル(コンテンツ)を取得する際にはその点に注意する必要がありました。

サービス紹介動画の制作

今回はサービス紹介動画を作成しました。
以下のURLより見ることができます。

・文字起こしAIコンシェルジュ「文字起こすくん」
https://www.youtube.com/watch?v=xlyRwAwIioQ

この動画は「Canva」というデザイングラフィックツールのWebサービスを活用して作りました。

「Canva」は基本的に画像を作成するツールですが、Canva Proの有料版だとスライドを作るとそれをイイ感じにアニメーションとして出力することができます。
出力したアニメーションを組み合わせて動画として作成しました。

最後に

苦肉の策を講じながらも、何とかサービスをリリースすることができました。
このサービスに少しでも興味をもって頂けましたら、ぜひフォローやいいね、リツイートで応援お願いします!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした