[{"data":1,"prerenderedAt":223},["ShallowReactive",2],{"content-/nvidia-keynote-translation":3,"all-pages-for-dir":221,"og-image-/nvidia-keynote-translation":222},{"id":4,"title":5,"body":6,"category":203,"description":204,"extension":205,"meta":206,"navigation":134,"ogImage":207,"path":208,"project_name":209,"published":210,"publishedAt":211,"seo":212,"stem":213,"tags":214,"todo":207,"unpublished":210,"updatedAt":207,"__hash__":220},"pages/2026-06/2026-06-01/nvidia-keynote-translation.md","NVIDIAの基調講演をリアルタイム文字起こし＆日本語翻訳するプロジェクトを立ち上げた",{"type":7,"value":8,"toc":194},"minimark",[9,13,17,20,24,27,42,50,54,57,67,81,88,92,99,102,109,117,120,123,167,170,191],[10,11,12],"h2",{"id":12},"なぜリアルタイム翻訳をやりたいか",[14,15,16],"p",{},"NVIDIA の Jensen Huang の基調講演は、毎回ライブで見たい。だが英語のまま流れていくと、聞き取れなかった一文を巻き戻している間に次の発表が始まり、置いていかれる。日本語の同時字幕があれば、画面を見ながら内容を追える。",[14,18,19],{},"そこで今日、新しいプロジェクトを立ち上げた。英語の基調講演を YouTube で流しながら、その場で文字起こしして、英語の下に日本語訳を出す。Jensen が話した言葉が、画面の中で英語と日本語に二段で積まれていく状態を目指す。",[10,21,23],{"id":22},"ゼロから作らず手元の文字起こしツールに足す","ゼロから作らず、手元の文字起こしツールに足す",[14,25,26],{},"最初に確認したのは「今あるツールが翻訳にどこまで対応しているか」だった。手元には音声を文字起こしする即録くん（Electron アプリ）があるが、調べてもらうと現状の機能はこうだった。",[28,29,30,34],"ul",{},[31,32,33],"li",{},"音声 → テキスト: Deepgram の API で文字起こし",[31,35,36,37,41],{},"後処理: Gemini で",[38,39,40],"strong",{},"誤字修正のみ","（プロンプトに「絶対に翻訳しないこと」と明記されていた）",[14,43,44,45,49],{},"翻訳機能はゼロ。ただYouTubeのシステム音声を拾う基盤と、Deepgramの言語を ",[46,47,48],"code",{},"en"," に切り替えるだけで動く英語文字起こしは既にあった。ここまで揃っているなら、ゼロから組み直すより既存ツールに「英→日翻訳」を一本足すほうが圧倒的に速い。既存ツールへの追加で進める方針にした。",[10,51,53],{"id":52},"音声は-deepgram翻訳は-gemini-という役割分担","音声は Deepgram、翻訳は Gemini という役割分担",[14,55,56],{},"構成はシンプルに二段で分けた。",[58,59,64],"pre",{"className":60,"code":62,"language":63},[61],"language-text","YouTube(英語音声)\n   ↓ システム音声キャプチャ\nDeepgram API  … 音声 → 英語テキスト（従量課金・残高が減る）\n   ↓ 文字起こし結果(final)\nGemini API    … 英語 → 日本語（無料枠で運用）\n   ↓\n画面: 英語 + 日本語訳を二段表示\n","text",[46,65,62],{"__ignoreMap":66},"",[14,68,69,70,76,77,80],{},"音声認識は Deepgram に任せる。ここはお金がかかる前提のところで、残高から実費が引かれていく（今日のテストで ",[46,71,75],{"className":72},[73,74],"language-math","math-inline","187.54 → ","187.49、約 $0.05 消費した）。翻訳は Gemini（",[46,78,79],{},"gemini-2.0-flash","）に任せる。",[14,82,83,84,87],{},"ここでひとつ確認しておきたかったのが課金だった。Gemini は Google AI Studio の無料ティアで呼べる方式になっていて、残高が減る従量課金とは別物。つまり",[38,85,86],{},"お金がかかるのは Deepgram だけ、Gemini は無料枠で回せる","という整理になった。",[10,89,91],{"id":90},"gemini-を無料枠で安定運用するための設計判断","Gemini を無料枠で安定運用するための設計判断",[14,93,94,95,98],{},"ただ無料枠には壁がある。Gemini 無料ティアは ",[38,96,97],{},"15 リクエスト/分","の制限がある。Deepgram は発話を細切れの確定結果（final）でどんどん吐き出してくるので、その一つひとつをそのまま Gemini に投げると、講演を連続翻訳した途端に 15 RPM を超える。超えた分の翻訳は返ってこず、日本語訳が歯抜けになる。",[14,100,101],{},"そこで「無料枠で安定運用したい。Gemini のリクエストを可能な限り減らす」という方針を決めた。レスポンスを取りこぼしてでも、リクエスト数を絞ることを優先する。",[14,103,104,105,108],{},"決めた設計はバッチ翻訳。Deepgram の細切れの final をそのまま送らず、",[38,106,107],{},"発話の切れ目までためて、1回のリクエストにまとめて翻訳する","。",[28,110,111,114],{},[31,112,113],{},"細切れを1件ずつ送る → リクエストが膨大、すぐ 15 RPM 超過",[31,115,116],{},"発話の切れ目までためて1回送る → リクエストが数分の1〜十分の1に減る",[14,118,119],{},"リクエストが減るだけでなく、ひとまとまりの文を渡すので訳の質も上がる。短い断片を訳すより、文脈のある一文を訳すほうが日本語が自然になる。一石二鳥だった。",[10,121,122],{"id":122},"今日やったこと",[28,124,127,137,143,149,155,161],{"className":125},[126],"contains-task-list",[31,128,131,136],{"className":129},[130],"task-list-item",[132,133],"input",{"checked":134,"disabled":134,"type":135},true,"checkbox"," 既存ツールの翻訳対応状況を確認（翻訳機能なし、音声基盤と英語文字起こしは既にあると判明）",[31,138,140,142],{"className":139},[130],[132,141],{"checked":134,"disabled":134,"type":135}," 音声=Deepgram / 翻訳=Gemini の役割分担を決定",[31,144,146,148],{"className":145},[130],[132,147],{"checked":134,"disabled":134,"type":135}," 英→日の対訳字幕機能を実装（英語の下に日本語訳を二段表示）",[31,150,152,154],{"className":151},[130],[132,153],{"checked":134,"disabled":134,"type":135}," Gemini が無料枠で動く方式だと確認（課金されるのは Deepgram のみ）",[31,156,158,160],{"className":157},[130],[132,159],{"checked":134,"disabled":134,"type":135}," 15 RPM 対策として、発話の切れ目までためるバッチ翻訳に変更",[31,162,164,166],{"className":163},[130],[132,165],{"checked":134,"disabled":134,"type":135}," dev で起動確認（Deepgram 接続済み、HMR でバッチ翻訳が反映）",[10,168,169],{"id":169},"次にやること",[28,171,173,179,185],{"className":172},[126],[31,174,176,178],{"className":175},[130],[132,177],{"disabled":134,"type":135}," 実際に Jensen の基調講演を流して、訳の歯抜けが起きないか1本通しで確認する",[31,180,182,184],{"className":181},[130],[132,183],{"disabled":134,"type":135}," 発話の切れ目の判定が早すぎ／遅すぎないか、ためる長さを調整する",[31,186,188,190],{"className":187},[130],[132,189],{"disabled":134,"type":135}," 講演1本ぶんを通したときの Deepgram の実費を計測する",[14,192,193],{},"立ち上げ初日としては、音声と翻訳の役割分担を決めて、無料枠に収める設計まで固められた。あとは本番の講演で流して、歯抜けが出ないかを自分の目で見るところからだ。",{"title":66,"searchDepth":195,"depth":195,"links":196},2,[197,198,199,200,201,202],{"id":12,"depth":195,"text":12},{"id":22,"depth":195,"text":23},{"id":52,"depth":195,"text":53},{"id":90,"depth":195,"text":91},{"id":122,"depth":195,"text":122},{"id":169,"depth":195,"text":169},"dev","英語のNVIDIA基調講演をYouTubeで流しながら、Deepgramで文字起こし、Geminiで日本語翻訳する仕組みの立ち上げ記録。Gemini無料枠で安定運用するためにリクエストを減らす設計判断を残す。","md",{},null,"/nvidia-keynote-translation","nvidia-ces",false,"2026-06-01T00:00:00.000Z",{"title":5,"description":204},"2026-06/2026-06-01/nvidia-keynote-translation",[215,216,217,218,219],"リアルタイム翻訳","Deepgram","Gemini","音声文字起こし","Electron","nHhHNQlSZTSQih_lRWtA_4qFnGTIXAXissOSf5zmsiU",[],"https://log.eurekapu.com/og/blog/nvidia-keynote-translation.png?v=2026-06-01T00%3A00%3A00.000Z&title=NVIDIA%E3%81%AE%E5%9F%BA%E8%AA%BF%E8%AC%9B%E6%BC%94%E3%82%92%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E6%96%87%E5%AD%97%E8%B5%B7%E3%81%93%E3%81%97%EF%BC%86%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%BF%BB%E8%A8%B3%E3%81%99%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%81%9F&author=Kei%20Komatsu&sig=9f6b17261c962e78",1782528847422]