GeminiVRM v0.3.0 Runtime と Benchmark ガイド
このリリースで変わること
- character chat と podcast mode は
gemini-3.1-flash-live-previewを直接使うようになり、runtime error は自動 fallback model ではなく実際の Gemini Live request path を指すようになりました。 v0.3.0は streaming podcast relay path 自体が入った release でもあり、app は次の話者 turn を prewarm しつつ、現在の話者の live audio をそこへ流し込めるようになりました。- この streaming relay path によって、tracked benchmark snapshot では batch relay と比べて first audio は約
8.94x高速、handoff silence は約5.18x短縮されています。 - repository には、watched workspace の外へ raw artifact を書き出しつつ、stable docs asset を公開する repeatable benchmark / report pipeline が入りました。
推奨 Runtime Flow
- live model は、意図的に別 surface を試すのでなければ
gemini-3.1-flash-live-previewのまま使います。 - 単独アバターの応答には
Character chat、Yukito と Kiyoka の上限付き掛け合いにはPodcast modeを使います。 - relay run が失敗したら、まず surfaced Gemini Live error を確認します。GeminiVRM は旧 model retry で隠さなくなりました。
Settingsの radio group と chat label を見ると、active mode、現在の loop cap、message source が podcast / YouTube / system / direct chat のどれかを素早く確認できます。
Benchmark Workflow
checked-in podcast latency snapshot を検証したり再生成したりするときは、次の流れを使います。
- app をローカル起動し、Playwright が使える Gemini API key を用意します。
- まず
npm run e2e:podcastで relay smoke pass を走らせます。 npm run bench:podcast-relayで repeatable benchmark set を取得します。npm run report:podcast-benchmarkで英日 SVG / PNG chart と JSON / CSV history を再生成します。node scripts/verify-podcast-benchmark-layout.mjs --input docs/public/benchmarks/podcast-benchmark-en.svgとpodcast-benchmark-ja.svg版を実行して layout を確認します。
非 ASCII topic は npm run bench:podcast:topic -- <topic-file> を使ってください。artifact directory を上書きする場合も、E2E_BENCH_OUTPUT_DIR は repository の外に置いて next dev の途中 reload を避けます。
Current Snapshot
- Topics:
Today's Meal,AGI,AI Consciousness - Turn count:
6 - Repetitions:
3per mode - Streaming first audio mean:
1.22s - Batch first audio mean:
10.91s - Streaming handoff mean:
2.30s - Batch handoff mean:
11.91s - First-audio improvement: 約
8.94x高速 (88.9%低遅延) - Handoff improvement: 約
5.18x短縮 (80.7%低遅延)
詳しい表、tracked field、caveat は ポッドキャストベンチマーク レポート を参照してください。
詳しいリリースノート
共有前の検証
npm run lintnpm run buildnpm run docs:build$env:BASE_PATH='/GeminiVRM'; npm run build:pagesnpm run e2e:smokenpm run e2e:podcastnode scripts/verify-podcast-benchmark-layout.mjs --input docs/public/benchmarks/podcast-benchmark-en.svgnode scripts/verify-podcast-benchmark-layout.mjs --input docs/public/benchmarks/podcast-benchmark-ja.svgpowershell -ExecutionPolicy Bypass -File D:\Prj\gh-release-notes-skill\scripts\verify-svg-assets.ps1 -RepoPath . -Path public/favicon.svg,docs/public/releases/release-header-v0.3.0.svgnpm run verify:release-header-layout -- --input docs/public/releases/release-header-v0.3.0.svgpowershell -ExecutionPolicy Bypass -File D:\Prj\gh-release-notes-skill\scripts\verify-release-qa-inventory.ps1 -RepoPath . -Tag v0.3.0