尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
デッドロックの配信向けの、日本語字幕&翻訳字幕アプリ。ランクやアイテムの説明も OBS に出せます(Windows・macOS・Linux)
翻译准备中
正在加载完整 README。
查看完整 README ↗Deadlock の配信者向けの OBS オーバーレイ(非公式)。
字幕の作り方はモードから選べます。まず無料の Chrome のモード(既定)で、キーなしで始められます。「おすすめ」のモード(ベータ期間中は無料)と、Chrome の中の AI で用語を判定する「Chrome+」も、キーなしで使えます。「その他のモード」には、最高精度(OpenAI の API キーかギフトコードで使う)、クラウド(Chrome を使わない)、ローカル(PC の中の AI だけで作る)があります。「モード」のタブで、工程(途中の字幕・確定の文字起こし・用語・翻訳・ふりがな)ごとに作り方を変えることもできます。どのモードも途中の字幕を Chrome で作るので、Google Chrome が必要で、字幕を始めると小さな Chrome のウィンドウが開きます。設定はアプリの操作パネルから行います。
サイトは jimaku.deadlock.jp。設計は DESIGN.md を見てください。
Releases から、使う PC に合ったものをダウンロードします。2 PC 配信なら、配信用の PC(マイクと OBS がある方)に入れます。
| OS | ファイル |
|---|---|
| Windows 10 / 11 | deadlock-jimaku_x64-setup.exe |
| macOS 11 以降(Apple シリコン・Intel) | deadlock-jimaku_universal.dmg |
| Linux | .AppImage(どのディストリビューションでも)、.deb(Ubuntu など)、.rpm(Fedora など) |
macOS 版は Apple の署名と公証を済ませています。Windows 版はまだコード署名をしていないので、初回は警告が出ます。
開発する人のための地図です。理由は DESIGN.md を見てください(モードは 9.6、おすそ分けは 17.1、LP は 17 章)。
字幕を何で作るかは、工程ごとの選択(設定の engines。モードを選ぶとまとめて決まる)と設定から Settings::plan が決めます(crates/core/src/settings.rs。操作パネルのモードはおすすめ(コードの中の名前は beta)・Chrome・最高精度(表の「スタンダード」)で、ほかの組み合わせは「モード」のタブで工程ごとに選びます。この表は、鍵の要る組み合わせを含む 3 つの組み合わせ(Engines::STANDARD など)の値で、テストに同じ値があります)。工程を 1 つ変えると、確定の欄はその工程の行だけが変わります。
| スタンダード | OpenAI | Chrome | |
|---|---|---|---|
| 途中の字幕 | Chrome | GPT-Live-Transcribe | Chrome |
| 途中の翻訳 | Chrome Translator | なし | Chrome Translator |
| 途中のふりがな | 辞書 | 辞書 | 辞書 |
| 途中の強調 | 辞書の一致 | 辞書の一致 | 辞書の一致 |
| 確定の字幕 | GPT-Transcribe | GPT-Transcribe | Chrome |
| 確定の翻訳 | GPT-6.1 Terra | GPT-6.1 Terra | Chrome Translator |
| 確定のふりがな | 辞書 + GPT-6.1 Terra | 辞書 + GPT-6.1 Terra | 辞書 |
| 確定の強調 | GPT-6.1 Terra | GPT-6.1 Terra | 辞書の一致 |
翻訳先がない、翻訳だけを見せる、ふりがなやデッドロックモードを切る、話す言語が日本語でない(読みの辞書と用語の一致は日本語だけ)ときは、その項目が「なし」になります。
確定の文字起こしが Grok Voice Transcribe のとき(工程ごとに選んだとき)は xAI の API キーが要ります。
「おすすめ」のモード(Engines::BETA。表にはありません)は、ベータ期間中、API キーなしで無料で使えます。途中の字幕は Chrome、確定の字幕は Qwen-Audio-3.1-ASR-Flash、用語は Perplexity Decider、翻訳は Hy-MT2、ふりがなは辞書の候補から Perplexity Decider が選び、開発者のサーバーが開発者のキーで中継します(server/src/beta.ts。DESIGN.md 17.2)。
用語と翻訳は、表の 4 つのモードでは 1 回の問い合わせ(GPT)か、辞書の一致と Chrome の翻訳です。詳しく選ぶと、2 つを別々に作れます(DESIGN.md 9.7)。用語は、PC の中で出した候補を判定モデルに確かめさせます(decide.rs。OpenAI の Decisions API、TypeSafe AI の Jev、OpenRouter の Drex Max・Microsoft Decision 1・Perplexity Decider)。翻訳は、用語を英語名に置き換えた文を Chrome か翻訳専門のモデル(mt.rs。Qwen-MT-Flash か OpenRouter の Hy-MT2)に渡します。途中の字幕と確定の文字起こしは、Qwen-Audio-3.1-ASR-Flash も選べます(stt/qwen.rs。DESIGN.md 3.4)。確定の文字起こしは、OpenRouter の MAI-Transcribe 2 と、PC の中で動く Haas-ja(local.rs。speech.cpp を初回にダウンロードします。DESIGN.md 9.8)も選べます。OpenAI と xAI のほかは、その会社の自分の API キーが要ります(ギフトコードでは使えません)。作れない組み合わせは Engines::sanitized が直します。確定の文字起こしが Chrome なら途中の字幕も Chrome(発話の区切りを Chrome が決める)、Chrome の翻訳は途中の字幕が Chrome のときだけです。翻訳を GPT にしたときは、用語も同じ問い合わせで判定します(訳文の名前を用語から作るので)。確定の文には、どちらの経路でも finish.rs が工程ごとに用語・ふりがな・翻訳を付け、1 つの字幕にまとめます。
flowchart LR
subgraph pc["配信 PC"]
obs["OBS<br/>オーバーレイ<br/>ドック"]
subgraph app["Tauri アプリ(app/)"]
panel["操作パネル<br/>control.html"]
core["中核(crates/core)<br/>字幕の処理、Store<br/>localhost:4510 の /api、/ws、/overlay/*"]
shell["トレイ<br/>自動更新"]
end
tab["Chrome のウィンドウ<br/>/chrome<br/>音声認識、翻訳"]
end
worker["Cloudflare Worker(server/)<br/>おすそ分け"]
openai["OpenAI"]
xai["xAI"]
qwen["Qwen"]
others["OpenRouter<br/>TypeSafe AI"]
google["Google の音声認識"]
deadlockapi["deadlock-api"]
releases["GitHub Releases"]
lp["LP(web/)<br/>jimaku.deadlock.jp"]
obs --> core
panel --> core
tab <-- "文と訳" --> core
core -- "起動、閉じる" --> tab
tab -- "声" --> google
core -- "ギフトコード" --> worker
worker -- "おすそ分けした人のキー" --> openai
worker -- "おすそ分けした人のキー" --> xai
core -- "自分の API キー" --> openai
core -- "自分の API キー" --> xai
core -- "自分の API キー" --> qwen
core -- "自分の API キー" --> others
core -- "ランク、辞書" --> deadlockapi
shell -- "新しい版を確認" --> releases
lp -- "ダウンロードのリンク" --> releases
/api と /ws だけを使います。図はモードごとの処理の順です(確定の文字起こしが OpenAI か xAI なら上の 2 つ、Chrome なら 3 つ目の経路)。黄色は PC の外です。OpenAI とのやりとりは、すべて中核が行います。字幕は /ws でオーバーレイと操作パネルに届きます。
standard(スタンダード)。 途中の字幕は Chrome で作ります。発話が終わると、アプリのマイクの声と文字を OpenAI に送ります。Chrome にも同じマイクを渡します(渡せない環境では Chrome の既定のマイクを使い、操作パネルに出します)。
flowchart LR
mic["マイク"] --> core["中核<br/>発話を区切る<br/>読み、用語"]
mic --> tab["Chrome のウィンドウ<br/>/chrome<br/>途中の翻訳"]
tab -- "声" --> google["Google の音声認識"]
google -- "途中の文" --> tab
tab <-- "/api/chrome/ws" --> core
core -- "区切った音声" --> batch["OpenAI /audio/transcriptions<br/>確定の字幕"]
batch --> llm["OpenAI /responses<br/>用語、翻訳<br/>ふりがな"]
core --> ws["/ws"]
llm --> ws
classDef cloud fill:#ffcf33,stroke:#12110e,color:#12110e
class google,batch,llm cloud
openai(OpenAI)。 途中の字幕も OpenAI で作ります。途中の字幕を「出さない」にすると、Realtime にはつなぎません。
flowchart LR
mic["マイク"] --> core["中核<br/>発話を区切る"]
core -- "発話の音声" --> realtime["OpenAI /realtime<br/>途中の字幕"]
core -- "区切った音声" --> batch["OpenAI /audio/transcriptions<br/>確定の字幕"]
batch --> llm["OpenAI /responses<br/>用語、翻訳<br/>ふりがな"]
realtime --> ws["/ws"]
llm --> ws
classDef cloud fill:#ffcf33,stroke:#12110e,color:#12110e
class realtime,batch,llm cloud
chrome(Chrome)。 音声認識も翻訳も Chrome で行い、声は Chrome を通じて Google に送られます。読みと用語は中核で付け、OpenAI には何も送りません。
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗