bulky-wall-61623
12/19/2025, 10:16 AMtall-airline-16756
12/19/2025, 10:16 AMtall-airline-16756
12/19/2025, 10:16 AMbulky-wall-61623
12/19/2025, 6:41 PMtall-airline-16756
12/19/2025, 6:41 PMend_input() を呼びます。
例(簡略):
from livekit.plugins import deepgram
# Deepgram STT をモデル指定で作成
stt = deepgram.STT(model="nova-3")
stt_stream = stt.stream()
# 受信した音声フレームをストリーミングで送る(擬似コード)
async for frame in audio_stream:
stt_stream.push_frame(frame)
# 終了時
await stt_stream.end_input()
4) Node.jsでの基本実装(Deepgram)
• プラグインのコンストラクタでモデルを指定、`stream()` を取得して WebRTC の track からフレームを流します。
例(簡略):
import * as deepgram from '@livekit/agents-plugin-deepgram';
const stt = new deepgram.STT({ model: "nova-3" });
const stream = stt.stream();
track.on("frame", (frame) => {
stream.pushFrame(frame);
});
// ストリーム終了処理
stream.endInput();
5) 推奨設定と低遅延のポイント
• フレーム長:20ms 推奨(WebRTC 標準)
• モデル:低遅延を重視するなら Deepgram の nova 系などストリーミング対応モデル
• 言語:固定言語なら明示的に指定(例 `deepgram/nova-3:ja`)、多言語は :multi
• 音声品質:ネットワーク帯域とマイクのサンプリングが重要(48k/16k 等を確認)
• エラー処理:接続切れや再接続ロジックを用意
6) VAD / StreamAdapter が不要な場合
• ストリーミングモデルを使うなら VAD+StreamAdapter は不要(逐次フレームで返答を受けられる)
• 逆に Whisper 等ストリーミング非対応モデルと組む場合は VAD + StreamAdapter を使って発話区切りで送信する
7) 次に進めるために(お願い)
• 言語(例:日本語)と実装言語(Python / Node.js)を教えてください。
• Deepgram で進めるか、他プロバイダー(AssemblyAI / Google / Azure など)にしますか?
• 実装例のフルコード(WebRTC受信側やAgentSession統合)を希望するかも合わせて教えてください。
ご希望に合わせて具体的なサンプルコード(完全な async ハンドラや AgentSession 統合版)を作成します。どれで進めますか?
Sources: Speech-to-text (STT) models | LiveKit Docs | examples/voice_agents | livekit/livekit_composite | DeepWiki | Deepgram STT plugin guide | LiveKit docs | Live Conversations with AI using ChatGPT and WebRTC