アイマイラボ

音声会話機能

Voice Conversation System

概要

シャノンは Discord のボイスチャンネルでリアルタイム音声会話ができます。 ユーザーの音声は Groq Whisper で高速文字起こしされ、フィラーシステムが即座に音声リアクションを返すことで、 体感レイテンシ約600msの自然な会話を実現します。

テキスト応答は VOICEPEAK で感情付き音声に変換され、 文単位のストリーミングで途切れなく再生されます。

シャノン

音声会話パイプライン

STT → フィラー選択(+並列LLM生成)→ ストリーミングTTS の4段階パイプライン。

1
音声認識STT

Discord音声をOpus→PCM→WAV変換し、Groq Whisper large-v3-turbo で文字起こし

Groq Whisper~300ms
2
フィラー選択Filler

ユーザー発話を分析し、150+のプリキャッシュ済み音声から最適なフィラーを選択

gpt-4.1-mini~300ms
3
回答生成LLM

フィラー再生と並列でLLM回答を生成。ツール実行も可能

FCA~2-5s
4
音声合成TTS

文単位でストリーミング合成。感情パラメータ(喜び・楽しさ・怒り・悲しみ)を反映

VOICEPEAK~800ms/文
FAST

体感レイテンシ ~600ms

STT(300ms) + フィラー選択(300ms) で即座に音声リアクション。 LLM回答はフィラー再生中にバックグラウンドで並列生成。

フィラーシステム

150以上のプリキャッシュ済み音声フィラーで、LLM応答を待つ沈黙を埋めます。 gpt-4.1-mini が文脈に応じて最適なフィラーを選択。

アトミック

~50種

0.5-1.5s

そうなんだ!/ まじで!?/ ふむふむ / えっとね

フレーズ

~20種

1.5-3s

しょうがないなぁ。教えてあげるよ。/ ん~と、ちょっと待ちなよね。

コンボ

~30定義

組み合わせ

まじで!?→えっとね / うんうん→ちょっと待ってね

フィラーオンリーモード

挨拶・短い相槌はフィラーだけで完結。LLM呼び出しをスキップして超低遅延応答。

例: 「おはよう」→ 挨拶フィラーのみ再生

ツール実行前フィラー

ツール呼び出しが必要な場合、「ちょっと待ちなよね」等の専用フィラーを再生。 ツール名ごとのカスタムフィラーも対応。

例: google-search → 「ネットの世界に聞いてみるか」

音声合成(VOICEPEAK)

VOICEPEAK Japanese Female4 ナレーターで、感情パラメータ付きの音声を生成。 文単位ストリーミングで途切れのない再生を実現。

感情マッピング(Plutchik → VOICEPEAK)

Plutchik 感情VOICEPEAK パラメータ係数
喜び (Joy)happy×1.0
期待 (Anticipation)fun×0.8
怒り (Anger)angry×1.0
悲しみ (Sadness)sad×1.0
嫌悪 (Disgust)angry×0.5
恐れ (Fear)sad×0.5

文単位ストリーミング

日本語句読点(。!?)で文を分割
1文目の合成中に2文目以降も並列合成開始
AudioPlayer キューで文の切れ目なく連続再生

音声認識(STT)

Groq Whisper による高速文字起こし。OpenAI比で3〜5倍の速度を実現。

Groq Whisper(主系統)

モデル: whisper-large-v3-turbo

レイテンシ: ~300ms

言語: ja(日本語固定)

コンテキスト: 「シャノンとの日常会話です。」

OpenAI Whisper(フォールバック)

モデル: whisper-1

レイテンシ: ~1-2s

Groq API Key 未設定時に自動切替

ハルシネーションフィルター

Whisper は無音・短音声で誤認識(YouTube登録メッセージ等)を生成する問題があるため、 20以上の既知ハルシネーションパターンをフィルターリストで除外しています。

Discord 連携

@discordjs/voice でボイスチャンネルに参加。PTTボタンで録音を制御。

PTT(Push-to-Talk)フロー

PTTボタン押下
録音開始
無音1秒で停止
Opus→PCM→WAV
STT
フィラー再生
LLM生成
TTS再生

処理ステータス表示

🔊 聞き取り中…📝 音声認識中…🎯 フィラー選択中…🧠 回答生成中…🔊 音声生成中…🗣️ 再生中…

音声モード専用ツール

音声会話ではレイテンシを抑えるため、高速なツールのみに制限されています。

google-searchfetch-urlchat-on-discorddescribe-imagewolfram-alphasearch-by-wikipediaget-discord-recent-messagessearch-weather

レイテンシ内訳

ステージ時間
STT(Groq)~300ms
フィラー選択~300ms
フィラー再生500-2000ms
LLM生成~2-5s
TTS(1文あたり)~800-1500ms
初回音声まで~600ms
シャノン

シャノンの声、聞いてみない?