これをしばらく前から作っていて、ようやく共有できるくらいにきれいに整えました。
voice-agents-from-scratch は、リアルタイムの全パイプラインを章ごとに案内する、番号付きのリポジトリです:
- マイクのキャプチャ
- STT(Whisper)
- ローカルGGUF LLM(llama.cpp 経由)
- TTS(Kokoro)
- 話者の出力
すべてストリーミングします。TTSが話し始める前に、LLMの応答全体を待つ必要はありません。これが、ボイスの皮を被ったチャットボットではなく、本物の会話のように感じさせる部分です。
章:
- イントロ
- Audio IO
- Speech to Text(STT)
- Text to Speech(TTS)
- フルのボイスループ
- リアルタイムシステム
- ツール
- パーソナリティ
- プロジェクト
各章は実行可能なスクリプトと、短い CODE.md の解説で構成されています。また、部品が単発の呼び出しではなく、きちんとした実システムとして組み合わさっている様子を確認できる、小さな共通ライブラリもあります。
ここで完全にローカルで動かすことが重要な理由: レイテンシがどこに存在するかを実際に目で見られます。ウォームアップ、最初の音声までの時間、ストリーミングのチャンクサイズなどは、ローカルマシン上で動かしているときは抽象化ではありません。
デプロイメントの章も計画しています。そこで modal.com を使うことを考えています。ご意見や提案、大歓迎です。
リポジトリ:https://github.com/pguso/voice-agents-from-scratch
最初はこのリポジトリを Node.js で公開したいと思っていましたが、Node.js のエコシステムは本当にまだ準備ができていません。Kokoro-JS の npm パッケージはとても良いのですが、Whisper のサポートや、一般的なオーディオ処理となると、良い選択肢がありません。
遭遇したアーキテクチャやトレードオフについて質問に答えることは喜んで対応します。
[link] [comments]
