見出し画像

【無料公開】どうやってLINEを文字起こしアプリにしたのか?

みなさん、Difyが最近のアップデートで「テキスト」「画像」以外にも「PDF」「音声」「動画」をアップロードできるようになったのはご存知でしょうか?

(2024年10月21日にアップデートされた内容ですので、少し時間が経っています)

さっそくですが、このアップデート機能を使って、「LINEを文字起こしアプリにする(アプリ名:もじおこ)」というのが今回のお話です。

開発までの一連の流れはすべて無料で公開いたしますので、興味のある方はぜひ続きをご覧ください!


・使ったWebサービスとその紹介

もじおこを作るに当たって、使用した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サービスを流用しています。

・作り方(アカウント作成などは省略)

ここからは実際の作成方法です。

【初めに注意事項】
今回、4つの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を使用する理由は2つ。
①Makeの連携ツールの1つとして簡単に使用可能
②1日10ファイルまでの無料利用枠がある

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のシナリオで表すと以下になります。

それでは、設定を進めていきましょう!!

まず、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 DevelopersMessaging API設定からQRコードを読み取れば、友達追加可能です)

次に、Makeの「Run once」をクリックしてシナリオを起動させます。

LINE上で音声ファイルを送ってみます。(音声ファイルの形式はm4a、mp3、wavで動くことは確認しております)

以下のように、「成功」の文字が返信されれば、シナリオがうまく動いている証拠です。

実際にシナリオを見てみると、全て緑のチェックマークが付いているはずです。

6. 「成功」部分を文字起こし結果に修正して再度実施

一方で、シナリオはちゃんと動いていますが、文字起こしはできていないので、シナリオを修正します。

一番最後の「成功」と入力したText欄をクリックします。

すると、HTTPの部分に「answer」という項目が出ており、ここに文字起こし結果が表示されています。この「answer」をクリックします。

以下のように設定できていたらOKです。

設定ができたら、もう一度シナリオを動かしてみます。

同じ音声データを送ると・・・

今度は無事、文字起こし結果が返信されました!

おつかれさまでした!

・最後に

今回の記事はいかがだったでしょうか。

今後も、AIアプリの作成や作成方法の紹介をしていくので、気になる方は、ぜひフォローとスキをお願いします!

他に紹介して欲しい内容や改善点があれば、コメントをお待ちしております!

それでは、次回もよろしくお願いします!!



いいなと思ったら応援しよう!

この記事が参加している募集