【無料公開】どうやってLINEを文字起こしアプリにしたのか?
みなさん、Difyが最近のアップデートで「テキスト」「画像」以外にも「PDF」「音声」「動画」をアップロードできるようになったのはご存知でしょうか?
(2024年10月21日にアップデートされた内容ですので、少し時間が経っています)
さっそくですが、このアップデート機能を使って、「LINEを文字起こしアプリにする(アプリ名:もじおこ)」というのが今回のお話です。
開発までの一連の流れはすべて無料で公開いたしますので、興味のある方はぜひ続きをご覧ください!
・使ったWebサービスとその紹介
もじおこを作るに当たって、使用したWebサービスは以下の通りです。
★LINE(Messaging API):もじおこの公式アカウントの作成と、Makeとの連携(Messaging APIの設定)に使用(基本無料で使用可)
★Make:各種アプリケーション(LINE、Dify等)を繋げるために使用(基本無料で使用可)
★CloudConvert:LINEで音声を送ろうとすると、どうしてもm4a形式になってしまいDifyで処理ができなかったので、m4a形式の音声データをWAV形式に変換する(1日あたり10ファイルまで無料で使用可)
★Dify:AIアプリケーション作成のためのLLM開発プラットフォーム。Makeから送られてきた音声ファイルを解析し、文字起こしするために使用(基本無料で使用可能であるが、Open AIのAPIキーが必要)
以前紹介した、LINEで画像を送ると解答案を返信してくれる「AI先生」と同じようなWebサービスを流用しています。
・作り方(アカウント作成などは省略)
ここからは実際の作成方法です。
1. LINE(Messaging API)の設定
初めにLINE Developersに登録したあと、コンソールから「新規チャネル作成」をクリック
Messaging APIを選択
「LINE公式アカウントを作成する」をクリック
アカウント情報で必要な事項を入力
入力が完了したら、アカンウト情報が表示されるので問題がなければ「完了」を押す
ひとまず認証済アカウントにはせずに、次に進める
新しく公式アカウントが作成されるので、「設定」をクリック
Messaging APIをクリック(この画面でプロフィール画像などを設定できます(今回は省略))
「Messaging APIを利用する」をクリック
新しくプロバイダー名を入力して、「同意する」をクリック
Messaging APIの利用が開始されると、以下の画面になるが、ここでは何もしない
もう一度、LINE Developersの自分のアカウントに入り直す
すると、新しくチャネルが追加されているので、作成したチャネルをクリックする
「Messaging API設定」をクリック
下にスクロールしていくと、「LINE公式アカウント機能」が表示されるので、応答メッセージの「編集」をクリック
応答機能を以下のように設定する
「Messaging API設定」に戻り、一番下にスクロールすると出てくる「チャネルアクセストークン(長期)」の発行をクリック
作成された「チャネルアクセストークン(長期)」をコピーしておく(他人にバレないように注意)
【おつかれさまです】ここで一旦、Messaging APIの設定は完了です。(Makeの設定の際に少し追加で設定が必要ですが)
2. Difyの設定とAPIキーの取得
次にDifyの設定を行なっていきます。
最初の画面の「アプリを作成する」で「最初から作成」をクリック
「チャットボット」の「Chatflow」を選択し、アプリの名前をつけて「作成する」をクリック
「機能」ボタンをクリック
「ファイルアップロード」にチェック
「設定」を開いて、「音声」にチェックをつけて保存(最初は画像にチェックが付いています)
次にLLMを選択し、「モデル」をクリック
モデルを「gpt-4o-audio-preview」にする(Open AIのAPIキーを設定している必要があります)
システムプロンプトは以下のように設定
ビジョンをオンにする
右上の「公開する」をクリックし、もう一度「公開する」をおす
左にあるタブの「監視」を選択し、「APIキー」をクリック
「新しいシークレットキーを作成」をクリック
作成された「APIシークレットキー」をコピーしておく
【おつかれさまです】以上で、Difyの設定とAPIキーの取得は完了です。
3. CloudConvertのAPIキーの取得
次にファイル形式の変換ツールとしてCloudConvertのAPIキーを取得します。
CloudConvertのアカウントを作成したら、画面右上の自分のアカウントをクリック
「Dashboard」をクリック
残りのクレジットの画面が表示されるので、API欄の「Authorization」をクリック
「API keys」をクリック
「Create New API key」をクリック
API keyの名前を入力し、上4つにチェックをつけて、Createをクリック
作成された長いAPIキーをコピペして保存しておく。この画面のみでしか表示されないため、コピペのし忘れに注意(忘れた場合はもう一度発行し直し)
【おつかれさまです】以上で、CloudConvertのAPIキーの取得は完了です。
4. Makeの設定
最後に、LINE(Messaging API)、Dify、CloudConvertの3つのサービスをMakeで繋げていきます
音声データの流れとしてはこんな感じ↓
上記をMakeのシナリオで表すと以下になります。
それでは、設定を進めていきましょう!!
まず、Makeの画面から「Create a new scenario」をクリック
シナリオの最初は「LINE」を選択します
LINEの中の「Watch Events」を選択
以下のようなWebhookの設定に移るので、「Add」をクリック
名前をつけ、Connectionの「Add」をクリック
「Channel Access Token」に『1. LINE(Messaging API)の設定』で取得した「チャネルアクセストークン(長期)」を入力
すると、アドレスが表示されるため、「Copy address to clipboard」をクリック
【ここで一度、LINE Developers の画面に戻ります】
「Messaging APIの設定」のWebhook設定に移り、編集をクリック
「Webhook URL」に先ほどコピーしたアドレスを貼り付けて、更新
【これで、MakeとLINEの連携は完了】
Makeの画面に戻り、「Watch Events」の隣にもう一つLINEのモジュールを追加(Download a Message Attachment)
Message IDの部分をクリック
以下のような順序でタブを開いていき、「Message ID」をクリック
以下のように設定できていたらOK
次に、CloudConvertのモジュールを追加
Convert a Fileを選択
Connectionの「Add」をクリック(初回時は下と画面が異なるかもしれません)
Connection typeで「API KEY」を選択
「API KEY」のところに「3. CloudConvertのAPIキーの取得」で入手しておいたAPIキーを入力
すると、以下のようにファイルの選択ができるようになるので、①〜⑥を以下のように設定
これで、CloudConvertの設定は完了
続いて、Difyの呼び出しをするため「HTTPモジュール」を選択
「Make a request」を選択
「HTTPモジュール」の中身は以下のように設定(画像の下にコピペ用のコード等を置いていますので自由に使用して下さい)
【コピペ用】(DifyのAPIキーは自分のAPIキーを使用して下さい)
URL:https://api.dify.ai/v1/chat-messages
Method:POST
Headers:
Item 1:Name:Authorization
Item 1:Value:Bearer (DifyのAPIキー)
次にItem 2以降を載せます。
【コピペ用】
Item 2:Name:Content-Type
Item 2:Value:application/json
Body type:Raw
Content type:JSON(application/json)
最後に、Request contentは以下のように設定して下さい。
【コピペ用コード】
{
"inputs": {},
"query": "文字起こしして下さい。",
"response_mode": "blocking",
"conversation_id": "",
"user": "abc-123",
"files": [
{
"type": "audio",
"transfer_method": "remote_url",
"url": "{{19.url}}"
}
]
}
🚨「Parse response」は必ず「YES」にしておいて下さい。
モジュールの最後はLINEの返信の設定です。
再度、「LINEモジュール」を選択し、「Send a Reply Message」をクリック
「Reply Token」は以下のように設定します。
「Messages」の部分は以下になります。
(Textは一旦、「成功」としておく)
以上で、Makeのシナリオは完成です。
次に実際にシナリオが動くか試してみましょう。
5.サンプルデータを送ってみる
この段階で一度サンプルデータを送ってシナリオが動くか確認します。
サンプルデータは以下から拝借しました。
🚨注意(2024/11/3現在)
Difyの使用上、現在の送信できる音声ファイル形式がWAV形式のみとなっています。(そのため、一度CloudConvertでファイル形式の変換を行なっています)
初めに、作成した公式アカウントに自分を友達として追加しておきます。
(LINE DevelopersのMessaging API設定からQRコードを読み取れば、友達追加可能です)
次に、Makeの「Run once」をクリックしてシナリオを起動させます。
LINE上で音声ファイルを送ってみます。(音声ファイルの形式はm4a、mp3、wavで動くことは確認しております)
以下のように、「成功」の文字が返信されれば、シナリオがうまく動いている証拠です。
実際にシナリオを見てみると、全て緑のチェックマークが付いているはずです。
6. 「成功」部分を文字起こし結果に修正して再度実施
一方で、シナリオはちゃんと動いていますが、文字起こしはできていないので、シナリオを修正します。
一番最後の「成功」と入力したText欄をクリックします。
すると、HTTPの部分に「answer」という項目が出ており、ここに文字起こし結果が表示されています。この「answer」をクリックします。
以下のように設定できていたらOKです。
設定ができたら、もう一度シナリオを動かしてみます。
同じ音声データを送ると・・・
今度は無事、文字起こし結果が返信されました!
おつかれさまでした!
・最後に
今回の記事はいかがだったでしょうか。
今後も、AIアプリの作成や作成方法の紹介をしていくので、気になる方は、ぜひフォローとスキをお願いします!
他に紹介して欲しい内容や改善点があれば、コメントをお待ちしております!
それでは、次回もよろしくお願いします!!