0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

n8nで作る音声チャットフロー

Posted at

n8nで作る音声チャットフロー(macOSローカル環境)

macOS上に構築した n8n を使って、

  • 音声入力
  • 音声認識(Speech-to-Text)
  • LLMによる応答生成
  • 音声合成(Text-to-Speech)
  • Webhookでブラウザに返却

までを自動化する方法を紹介します。

🎯 ゴール

  1. 音声をWebhookに送信するとテキストに変換される
  2. LLMが会話履歴を考慮して自然な応答を生成する
  3. 応答を音声に変換して返す
  4. ブラウザ上でそのまま再生できる

🏗️ 全体構成

  1. Webhook: 音声ファイルを受け取る
  2. Speech-to-Text: 音声をテキストに変換
  3. Memory Manager / Buffer Memory: 会話履歴を保持
  4. LLM(Geminiなど): 応答を生成
  5. Text-to-Speech(ElevenLabs API、Fish Audio、MiniMax Audio): 音声を合成
  6. Respond to Webhook: 音声を返す

📝 手順

1. Webhookで音声を受け取る

  • ノード: Webhook
  • 設定:
    • Path: voice_message
    • HTTP Method: POST
    • Response Mode: Response Node

送信例(curl):

curl -X POST http://localhost:5678/webhook-test/voice_message \
  -H "Content-Type: multipart/form-data" \
  -F "voice_message=@sample.m4a"

2.音声をテキスト化する

• ノード: OpenAI - Speech to Text
設定:
• Resource: audio
• Operation: transcribe
• Binary Property Name: voice_message

3. 会話履歴を管理する

• Get Chat: 過去の履歴を取得
• Aggregate: 履歴をまとめる
• Insert Chat: 新しい会話を保存
• Window Buffer Memory: セッション単位で履歴管理
これにより、LLMが過去のやり取りを踏まえて回答できます。

4. LLMで応答を生成

• ノード: Basic LLM Chain
• モデル例: Google Gemini Chat Model
設定:
• プロンプトに「過去の会話を考慮する」よう指示
スクリーンショット 2025-09-15 16.41.57.png

5. 応答を音声に変換する

• ノード: HTTP Request
• サービス: ElevenLabs API
設定例:

POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}
Headers:
  Content-Type: application/json
  xi-api-key: YOUR_API_KEY
Body:
  {
    "text": "={{ $('Basic LLM Chain').item.json.text }}"
  }

6. Webhookで音声を返す

• ノード: Respond to Webhook
設定:
• Respond With: Binary
• Binary Property: data
• Response Content Type: audio/mpeg
• Response Headers: Content-Disposition: inline(任意)

これでWebhookをブラウザで開くと、そのまま音声が再生されます。

✅ まとめ

音声入力 → テキスト化 → 応答生成 → 音声合成 → 音声返却 をn8nだけで実現可能
ElevenLabs API、Fish Audio、MiniMax Audioなどを使えば高品質な音声を返せる
Webhookレスポンスを工夫することでブラウザで直接再生も可能

ローカルのn8n環境でも十分に「音声チャット体験」を構築できます。
自分の声で質問して、AIが自然に返答してくれる環境を作ってみてください 🚀
スクリーンショット 2025-09-15 16.40.16.png


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?