whisper-windows-mcp 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +20 -1
  2. package/LICENSE-COMMERCIAL.md +58 -0
  3. package/PRIVACY.es.md +135 -0
  4. package/PRIVACY.id.md +135 -0
  5. package/PRIVACY.ja.md +135 -0
  6. package/PRIVACY.ko.md +135 -0
  7. package/PRIVACY.md +135 -0
  8. package/PRIVACY.pl.md +135 -0
  9. package/PRIVACY.pt-BR.md +135 -0
  10. package/PRIVACY.ro.md +135 -0
  11. package/PRIVACY.uk.md +135 -0
  12. package/PRIVACY.vi.md +135 -0
  13. package/README.es.md +393 -0
  14. package/README.id.md +393 -0
  15. package/README.ja.md +402 -397
  16. package/README.ko.md +393 -0
  17. package/README.md +393 -388
  18. package/README.pl.md +393 -0
  19. package/README.pt-BR.md +393 -0
  20. package/README.ro.md +393 -0
  21. package/README.uk.md +393 -0
  22. package/README.vi.md +393 -0
  23. package/ROADMAP.es.md +200 -0
  24. package/ROADMAP.id.md +289 -0
  25. package/ROADMAP.ja.md +301 -268
  26. package/ROADMAP.ko.md +286 -0
  27. package/ROADMAP.pl.md +198 -0
  28. package/ROADMAP.pt-BR.md +286 -0
  29. package/ROADMAP.ro.md +200 -0
  30. package/ROADMAP.uk.md +290 -0
  31. package/ROADMAP.vi.md +286 -0
  32. package/SECURITY.es.md +47 -0
  33. package/SECURITY.id.md +47 -0
  34. package/SECURITY.ja.md +47 -0
  35. package/SECURITY.ko.md +47 -0
  36. package/SECURITY.md +14 -2
  37. package/SECURITY.pl.md +47 -0
  38. package/SECURITY.pt-BR.md +47 -0
  39. package/SECURITY.ro.md +47 -0
  40. package/SECURITY.uk.md +47 -0
  41. package/SECURITY.vi.md +47 -0
  42. package/TROUBLESHOOTING.es.md +323 -0
  43. package/TROUBLESHOOTING.id.md +323 -0
  44. package/TROUBLESHOOTING.ko.md +323 -0
  45. package/TROUBLESHOOTING.pl.md +323 -0
  46. package/TROUBLESHOOTING.pt-BR.md +323 -0
  47. package/TROUBLESHOOTING.ro.md +323 -0
  48. package/TROUBLESHOOTING.uk.md +323 -0
  49. package/TROUBLESHOOTING.vi.md +323 -0
  50. package/glama.json +6 -0
  51. package/package.json +10 -3
  52. package/patch_roadmaps.py +72 -0
package/ROADMAP.ja.md CHANGED
@@ -1,268 +1,301 @@
1
- # whisper-windows-mcp — ロードマップ
2
-
3
- 現在のバージョン:**v2.0.0**
4
-
5
- ---
6
-
7
- ## 設計原則
8
-
9
- これらの原則はこのプロジェクトのすべての決定を支配し、機能追加の速度より優先されます。
10
-
11
- **Claude APIの使用を最小限に。** スキャン、分析、キュー管理、実行、検証、モデル切り替えを含むワークフロー全体を、できる限り少ないClaude操作で完了できなければなりません。このツールはClaudeのProまたはMaxサブスクリプションを契約していないフリープランユーザーでも完全に機能する必要があります。すべてのツール呼び出しは使用量を消費します。この原則を念頭に設計してください。
12
-
13
- **常に1つのwhisperインスタンス。** 実行中に2つ目のwhisper-cli.exeプロセスを生成しない。プロセスロックは必須であり、例外はありません。
14
-
15
- **ローカルファースト、デフォルトでプライベート。** 音声はマシンから外に出ない。コア機能にクラウドAPIは不要。オプションの統合機能(例:Hugging Faceからのモデルダウンロード)は明確にオプションとして文書化する必要があります。
16
-
17
- **明示的なユーザー制御。** サイレントな一括操作なし。破壊的または不可逆なアクションは確認が必要。実行前にユーザーが何が起こるかを常に把握できるようにする。
18
-
19
- **Unicodeセーフなパス処理。** すべてのファイルI/Oで、日本語、中国語、絵文字、括弧などの非ASCII文字を含むファイル名を正しく処理する必要があります。
20
-
21
- **モジュール型かつ組み合わせ可能。** ツールは独立しています。ユーザーは必要なものだけを使います。やむを得ない場合を除き、どの機能も他の機能を必要としてはなりません。
22
-
23
- **機能追加より最適化を優先。** 機能追加とシステム負荷またはAPI呼び出し回数の削減の間で迷った場合は、負荷を削減してください。大規模な最適化作業はコストがかかります。最初から正しいアーキテクチャを設計してください。
24
-
25
- ---
26
-
27
- ## 完了済み
28
-
29
- ### ✅ v1.3.1 — プロセスロック
30
- `tasklist /FI`を使用した`isWhisperRunning()`チェックを追加。競合するプロセスを生成する代わりに、明確なエラーとTask Managerの手順を返します。
31
-
32
- ### ✅ v1.4.0 — Vulkan GPU加速
33
- VS Build Tools 2026とVulkan SDK 1.4.341.1を使用して`-DGGML_VULKAN=ON`でwhisper.cppをコンパイル。ビルド済みVulkanバイナリを`whisper-vulkan-win-x64.zip`として配布。
34
-
35
- **AMD Radeon RX Vega 56での結果:** GPU使用率約16%。58分のファイルがGPUで約4.5分(CPU専用では約88分)で完了。
36
-
37
- ### ✅ v1.5.0 — システム診断
38
- `check_system`ツール:`wmic`によるGPU検出、Vulkan DLL確認、VRAM報告、モデルサイズ推奨。
39
-
40
- ### ✅ v1.6.0 — メディアファイル事前分析
41
- FFprobeを使用した`analyze_media`ツール:時間、サイズ、コーデック、文字起こし状態、CPUとGPUの推定時間。単一ファイルまたはフォルダスキャン、ソートオプション付き。
42
-
43
- ### ✅ v1.7.0 — バックグラウンド文字起こし + 進捗表示
44
- デタッチドプロセスアーキテクチャ:`background=true`の`transcribe_audio`がwhisperをデタッチドプロセスとして起動し、即座にジョブIDを返す。`check_progress`がwhisperのstderrセグメントタイムスタンプをリアルタイムで解析。
45
-
46
- ### ✅ v1.8.0 — 検証付き順次バッチ処理
47
- `start_batch`と`check_batch_progress`:自動順次処理、文字起こし検証(空または短すぎる出力の検出)、自動キュー進行、ファイルごとの進捗タイムスタンプ。
48
-
49
- ### ✅ v1.9.0 — 多言語対応と翻訳
50
- `language=auto`による言語自動検出と`translate_to_english=true`によるデュアルSRT出力。`.3gp`と`.ts`フォーマットのサポートを追加。`language=auto`は`transcribe_audio`でも利用可能。
51
-
52
- **既知の制限:** Whisperの組み込み翻訳は英語へのみ対応。英語以外の言語には`large-v3`モデルが必要 — 英語専用モデル(`*.en.bin`)は英語以外の音声に`[FOREIGN]`を出力します。
53
-
54
- ### ✅ v2.0.0 — Unicodeセーフパス + バックグラウンドSRT
55
- **Unicodeファイル名:** 非ASCII文字を含むファイル名でバックグラウンド文字起こしがサイレントに失敗する問題を修正。ジョブIDベースのサニタイズされた一時パスに出力を書き込み、完了後に正しい宛先に移動するよう変更。
56
-
57
- **バックグラウンドモードでのSRT:** `spawnDetached`が要求されたフォーマットに関わらず`-otxt`をハードコードしており、`generate_subtitles`が同期的にブロックして4分を超えるファイルでMCPタイムアウトが発生していた問題を修正。`spawnDetached`に`outputFormat`パラメータを追加し、バックグラウンドモードで`text`と`srt`出力をサポート。
58
-
59
- ---
60
-
61
- ## 対応予定 — v2.0.1:バグ修正
62
-
63
- v2.0.0コードベースで確認されたバグです。新機能を追加する前にパッチを適用します。
64
-
65
- ### buildArgsにハルシネーション防止が未実装
66
- `buildArgs`内のどこにも`--condition-on-previous-text`が渡されていません。これがないと、whisperは各セグメントを自身の前の出力を条件として処理するため、低品質な音声・無音・バックグラウンドノイズで暴走するハルシネーションループが発生します(「ありがとうございます。ありがとうございます。」のような繰り返し出力になります)。
67
-
68
- **修正内容:** `buildArgs`のデフォルトとして`--condition-on-previous-text 0`をハードコード。長尺音声で最も重要な品質フラグであり、省略してはなりません。また`--no-speech-thold`をオプションパラメータ(デフォルト`0.6`)として公開し、信頼度閾値以下のセグメントをハルシネーションではなく無音として扱うようにします。
69
-
70
- ### TROUBLESHOOTING.mdのCLIバッチコマンドが機能しない
71
- TROUBLESHOOTING.mdに記載されている大規模バッチコマンドは、FFmpeg変換なしにMP4ファイルを直接whisper-cliに渡しています。whisper-cliはMP4をWAVとして読み込めないため、すべてのファイルで`error: failed to read audio data as wav`が発生します。
72
-
73
- **修正内容:** 正しいFFmpeg変換アプローチに置き換えます。また`Start-Process -RedirectStandardOutput`をwhisper出力をキャプチャするための正しいPowerShell方式として文書化します — whisperはトランスクリプトをstdoutに、診断情報をstderrに書き込むため、`|`でパイプして`2>$null`でstderrを抑制しても何もキャプチャされません。
74
-
75
- `TROUBLESHOOTING.md`と`TROUBLESHOOTING.ja.md`の両方に適用されます。
76
-
77
- ### ツール出力全体でのファイル名参照
78
- すべてのツール出力で、位置インデックスではなく完全なソースファイル名を参照するようにします。バッチ一覧、進捗レポート、エラーメッセージに影響します。すべてのツールハンドラーの完全な監査が必要です。
79
-
80
- ---
81
-
82
- ## 予定 — v2.1.0:モデル管理スイート
83
-
84
- 最優先の機能ブロックです。現在ユーザーはモデルファイルを手動で検索・ダウンロード・設定する必要があり、起動時にアクティブモデルが固定されます。これは大きな摩擦を生み、セッション中の柔軟性を妨げます。3つのツールはまとめてリリースします。
85
-
86
- ### `list_models`
87
- 設定済みモデルディレクトリをスキャンし、インストール済みWhisperモデルファイルの一覧を返します。各モデルについて:ファイル名、ディスク上のサイズ、現在アクティブかどうか、量子化レベル(該当する場合)、推奨用途を表示します。ネットワーク接続不要。ローカルファイルシステムのみ読み取り。1回のツール呼び出し、1回のレスポンス。
88
-
89
- ### `download_model`
90
- Hugging Faceから設定済みモデルディレクトリにモデルファイルを直接取得します。モデル名を受け取り、正しいダウンロードURLを自動的に解決します。フル精度モデルと量子化モデルの両方をサポートします。ファイルサイズを報告し、完了後に有効性を確認します。
91
-
92
- Node.js組み込みの`https`または`fetch`(最小要件のNode 18+で利用可能)を使用して実装。新しい外部ランタイム依存関係は追加しません。
93
-
94
- **対応モデル(フル精度):** `tiny.en`、`base.en`、`small.en`、`medium.en`、`large-v3`、`large-v3-turbo`、および多言語バリアント。
95
-
96
- **対応モデル(量子化):** `base.en-q5_1`、`small.en-q5_1`、`medium.en-q5_0`、`large-v3-q5_0`、`large-v3-turbo-q5_0`、その他のGGML量子化バリアント。量子化モデルはフル精度より40〜70%小さく、精度損失は最小限で、CPUでの推論が大幅に高速です — GPU加速なしのユーザーに強く推奨します。
97
-
98
- ### `switch_model`
99
- Claude Desktopを再起動したり設定ファイルを編集したりせずに、現在のセッションのアクティブモデルを変更します。ファイルの存在を確認し、文字起こしが実行中でないことを確認(プロセスロックを強制)してから、メモリ内のアクティブモデルを更新します。セッションスコープ — 設定には保存されません。
100
-
101
- **実装:** `WHISPER_MODEL`を`const`からモジュールレベルの`let`に変更。`switch_model`が直接更新します。次の文字起こしから新しいモデルが使用されます。
102
-
103
- ### `large-v3-turbo`の文書化
104
- `large-v3-turbo`は`large-v3`の蒸留バリアントで、英語の会話コンテンツでの精度損失を最小限に抑えながら約6倍高速です。GPUが利用可能な英語バッチ処理の推奨モデルとして文書化します。`large-v3-turbo-q5_0`はCPUのみで多言語サポートが必要なユーザーへの推奨オプションです。
105
-
106
- 更新が必要な箇所:READMEとREADME.ja.mdのモデル一覧、`check_system`の推奨事項、`list_models`のユースケース説明、`download_model`の対応モデル一覧。
107
-
108
- ---
109
-
110
- ## 予定 — Bunへの移行
111
-
112
- v2.2.0の機能追加前に、ランタイムをNode.jsから[Bun](https://bun.sh)に移行します。
113
-
114
- Claude Desktopはセッション起動のたびにMCPサーバーを新しく生成するため、起動時間はクリティカルパスにあります。BunはTypeScriptをネイティブにコンパイルステップなしで実行し、Node.jsより大幅に高速に起動し、I/Oも高速です — これらはすべてこのユースケースに直接メリットをもたらします。
115
-
116
- **変更点:**
117
- - `tsc`のビルドステップと`dist/`ディレクトリを完全に削除
118
- - ユーザーがTypeScriptソースを直接実行
119
- - `tsconfig.json`がオプション/簡略化される
120
- - `package.json`スクリプトを更新
121
- - npm公開ワークフローを更新
122
-
123
- **変更しない点:**
124
- - `src/index.ts`のソースコード — Bunは既存のTypeScriptとNode.js組み込みAPIと互換性があります
125
- - すべてのツールの動作と出力形式
126
- - エンドユーザーのClaude Desktop設定
127
-
128
- **v2.2.0より前に移行する理由:** コードベースは今が最も移行しやすい状態です。ツールを追加した後では移行の作業量が増えるだけでメリットはありません。
129
-
130
- ---
131
-
132
- ## 予定 — v2.2.0:品質・パラメータ・ハードウェアの拡張
133
-
134
- ### `temperature`パラメータ
135
- `transcribe_audio`と`generate_subtitles`にwhisperの`--temperature`フラグを公開します。範囲0.0〜1.0。値が高いほどセグメントデコードにバリエーションが生まれ、一貫性を犠牲にしてノイズの多い音声でのハルシネーションを減らせます。デフォルト:`0.0`(決定論的)。低い実装コスト — 単一CLIフラグのパススルー。
136
-
137
- ### `prompt`パラメータ
138
- `transcribe_audio`と`generate_subtitles`にwhisperの`--prompt`フラグを公開します。文字起こし開始前に事前コンテキストとして挿入される文字列を受け取ります。ドメイン固有の語彙、話者名、スタイルコンテキストに有用。特殊なコンテンツの精度を大幅に向上させる可能性があります。
139
-
140
- 例:`"話者:Keemstar、DramaAlert。これはストリーミング解説の録音です。"`
141
-
142
- 低い実装コスト — 単一CLIフラグのパススルー。
143
-
144
- ### `--condition-on-previous-text`のユーザーパラメータ化
145
- v2.0.1で`0`にハードコードされます。コンテキストの継続性が役立つ構造化された音声など、特定のユースケースでコンディショニングを再有効化したい上級ユーザー向けにオプションのブール値として公開します。デフォルトは`0`のまま。
146
-
147
- ### `word_timestamps`フラグ
148
- `--max-len 1`と`--split-on-word`を組み合わせて単語レベルのタイムスタンプ出力を実現します。JSONパースを必要とせず、標準のタイムスタンプ形式で1単語ごとにセグメント化されたトランスクリプトを返します。当初計画していた`-oj` JSONアプローチより実装がはるかにシンプルです。
149
-
150
- `--max-len`パラメータは`max_segment_length`として独立したオプションとしても公開します(字幕の読みやすさのために長いセグメントを制御したいユーザー向け)。
151
-
152
- ### 音声アクティビティ検出(VAD)
153
- whisperの`--vad`フラグをモデル管理ワークフローと統合して公開します。VADは音声セグメントを検出して無音部分とノイズを除去した後、音声のみをwhisperに渡す軽量なSileroモデルで音声を前処理します。効果:文字起こしの高速化(音声部分のみを処理)と大幅なハルシネーション削減(whisperが無音をハルシネーションする機会がなくなる)。
154
-
155
- **実装:** 別途VADモデルファイル(`ggml-silero-v5.1.2.bin`または最新版)が必要で、`huggingface.co/ggml-org/whisper-vad`からダウンロードします。このモデルは`download_model`でサポートされる対象として追加されます。VADが有効な場合、`--vad-model`パスが`--vad`とともに渡されます。
156
-
157
- **VADはWhisper.cpp v1.8.3(2026年1月)以降、Windowsで安定して動作することが確認されており**、バッファオーバーフロー修正がv1.8.4(2026年3月)でリリースされています。v1.8.4以降のバイナリを推奨します。
158
-
159
- これはこのマイルストーンで最もインパクトの大きい品質向上機能です — 長尺または音質の悪いファイルのバッチ処理に強く推奨します。
160
-
161
- ### 組み込みステレオダイアライゼーション(`--diarize`)
162
- whisperのネイティブ`-di` / `--diarize`フラグを公開します。話者が別々のチャンネル(左/右)に録音されたステレオ音声ファイルに対して、話者に属性付けされたトランスクリプトセグメントを出力します。追加の依存関係なし、追加モデル不要 — 純粋なCLIフラグのパススルー。
163
-
164
- 将来のリリースで予定しているpyannoteベースの話者識別(モノラル録音に対応、別途Pythonライブラリが必要)とは異なります。ステレオコンテンツ向けの軽量・ゼロコストのオプションです。
165
-
166
- ### 時間範囲の文字起こし(`--offset-t`、`--duration`)
167
- `transcribe_audio`に`--offset-t`(ミリ秒単位の開始オフセット)と`--duration`(ミリ秒単位の処理時間)を公開します。ファイル全体を処理せずに特定の時間ウィンドウのみを文字起こしできます。長尺ファイルの問題箇所の再処理、出力の抜き打ち確認、特定のセグメントの抽出に有用です。
168
-
169
- ### `--beam-size` / `--best-of`パラメータ
170
- whisperのビームサーチコントロールを公開します。`--beam-size`(デフォルト5)は探索の幅を制御します — 値が高いほど速度を犠牲にして精度が向上します。`--best-of`(デフォルト5)は評価する候補シーケンスの数を制御します。重要なファイルで処理時間と引き換えに精度を上げたいユーザーに有用です。低い実装コスト — CLIフラグのパススルー。
171
-
172
- ### `--gpu-device`パラメータ
173
- whisper.cpp v1.8.4で追加された`-g` / `--gpu-device`フラグを公開します。複数GPUを持つユーザーが使用するデバイスをインデックスで指定できます。`check_system`の出力に利用可能なGPUリストを表示し、どのインデックスがどのデバイスに対応するかをユーザーが把握できるようにします。統合GPUと外付けGPUの両方を持つシステムに特に関係します。
174
-
175
- ### `--processors`パラメータ
176
- 複数CPUプロセッサによる並列チャンク処理のための`-p` / `--processors`フラグを公開します。スレッド数だけでは達成できない速度向上をマルチコアシステムにもたらす可能性があります。低い実装コスト。
177
-
178
- ---
179
-
180
- ## 予定 — v2.3.0:出力フォーマットの拡張
181
-
182
- ### VTT字幕フォーマット
183
- SRTに加えてWebVTT(`.vtt`)出力をサポート。VTTはYouTube、HTML5 `<video>`、ほとんどの現代的なプレーヤーで使用されるウェブ標準です。whisper-cliはネイティブにサポートしています。`transcribe_audio`、`generate_subtitles`、`spawnDetached`に`vtt`を有効な出力フォーマットとして追加。`buildArgs`と関連するすべてのツールスキーマ、README、日本語ドキュメントを更新します。
184
-
185
- ### LRCフォーマット
186
- `-olrc`によるLRC(`.lrc`)歌詞/カラオケフォーマット出力。メディアプレーヤーによる同期歌詞表示に使用されます。ニッチなユースケースですが実装コストはゼロ — ネイティブCLIフラグです。
187
-
188
- ### CSVフォーマット
189
- `-ocsv`によるCSV(`.csv`)出力。セグメントタイミング付きの構造化表形式データ — 下流分析、クリップ位置合わせワークフロー、スプレッドシートツールへのインポートに有用です。実装コストはゼロ — ネイティブCLIフラグです。
190
-
191
- ---
192
-
193
- ## 予定 — 将来のリリース
194
-
195
- ### TinyDiarize
196
- `tdrz`対応モデルバリアント(例:`large-v2-tdrz`)での`--tinydiarize`フラグサポート。ステレオ専用の`--diarize`フラグとは異なり、TinyDiarizeはモノラル録音に対応します。特別なモデルバリアントのダウンロードが必要です。pyannoteベースのダイアライゼーションより精度は低いですが、モデルファイル以外の追加依存関係はゼロです。
197
-
198
- **状況:** 計画中。`download_model`がtdrzモデルバリアントをサポートすることに依存します。
199
-
200
- ### YouTube URL文字起こし
201
- yt-dlp経由でYouTube URLから直接文字起こし。音声のダウンロードと文字起こしを1ステップで実行。yt-dlpのインストールとPATH設定が必要。
202
-
203
- **設計制約:** yt-dlpはオプション。見つからない場合は明確なインストール手順とともに適切にエラー処理する必要があります。このツールを必要としないユーザーのコア機能への変更なし。
204
-
205
- ### 動画プロジェクトワークフローツール
206
- ソースクリップと編集済みクリップのディレクトリを管理するユーザー向け:
207
-
208
- 1. ソースディレクトリとクリップサブディレクトリをスキャン
209
- 2. 編集済みクリップのトランスクリプトをソーストランスクリプトにファジーマッチして、ソース内の位置を特定
210
- 3. トランスクリプトコンテンツに基づいてClaudeが提案する説明的なファイル名を表示(リネーム実行前に明示的なユーザー確認が必要)
211
- 4. タイムコード結果付きでプロジェクトディレクトリ全体のトランスクリプトを検索
212
-
213
- **設計制約:**
214
- - ソースファイルは**絶対にリネームまたは変更しない**
215
- - すべてのリネームには**明示的なユーザー確認**が必要
216
- - 検索はスタンドアロンツールとして独立して使用可能
217
- - 分析とマッチングはローカルで実行 — Claudeはユーザーが結果をレビューするときのみ呼び出され、API呼び出しを最小化
218
-
219
- **状況:** 設計フェーズ。実際のディレクトリ構造の例をもとに実装予定。
220
-
221
- ### 話者識別(pyannote-audio)
222
- 話者IDラベル付きの完全なモノラル話者識別 — チャンネル構成に関わらず、録音全体の話者の切り替えをマークします。組み込みの`--diarize`ステレオフラグ(v2.2.0)およびTinyDiarizeとは異なります。
223
-
224
- **実装:** [pyannote-audio](https://github.com/pyannote/pyannote-audio)が必要 — Hugging Faceモデルアクセストークンが必要なPythonベースのライブラリ。whisper.cppパイプラインとは完全に別の依存関係スタック。
225
-
226
- **状況:** 独自のセットアップドキュメントを持つオプションの高度機能として計画中。メインパッケージには含めません。
227
-
228
- ### 英語以外の言語への翻訳
229
- Whisperの`--translate`フラグは英語のみを対象としています。任意のターゲット言語をサポートするには、外部翻訳APIまたはローカル翻訳モデルが必要です。
230
-
231
- **検討中のオプション:** LibreTranslate(セルフホスト可能、ローカルファースト)、ローカルLLM翻訳、または明示的なスコープ外ドキュメント。
232
-
233
- **状況:** ローカルファーストかAPIへの依存かの設計判断待ちで保留中。
234
-
235
- ### 文字起こしのクリーンアップと整形
236
- 後処理パイプライン:
237
- - フィラーワードと言い直しの削除(オプション、ユーザー制御)
238
- - 自然なトピック境界での段落区切り
239
- - ダイアライゼーションと組み合わせた話者を考慮した整形
240
- - PDFまたはDOCXへのエクスポート
241
-
242
- **状況:** 計画中。話者を考慮したバリアントはダイアライゼーションに依存します。
243
-
244
- ---
245
-
246
- ## 配信
247
-
248
- [npm](https://www.npmjs.com/package/whisper-windows-mcp)、[mcpservers.org](https://mcpservers.org)、[Glama](https://glama.ai)で公開中。
249
-
250
- ---
251
-
252
- ## 多言語ドキュメント
253
-
254
- 日本語ドキュメントは英語と並行して管理されます。各リリース後に英語ドキュメントに合わせて以下のファイルを更新する必要があります:
255
-
256
- - `README.ja.md`
257
- - `TROUBLESHOOTING.ja.md`
258
- - `ROADMAP.ja.md`
259
-
260
- 他の言語へのコミュニティ貢献を歓迎します。
261
-
262
- ---
263
-
264
- ## コントリビュート
265
-
266
- プルリクエスト歓返です。作業を開始する前に既存のIssueを確認してください。
267
-
268
- 上記以外のハードウェアでGPU加速をテストした方は、GPU型番、VRAM、使用モデル、確認したスループットをIssueで報告してください。他のユーザーへの正確なパフォーマンス参考情報の構築に役立ちます。
1
+ # whisper-windows-mcp — ロードマップ
2
+
3
+ 現在のバージョン:**v2.2.0**
4
+
5
+ ---
6
+
7
+ ## 設計原則
8
+
9
+ これらの原則はこのプロジェクトのすべての決定を支配し、機能追加の速度より優先されます。
10
+
11
+ **Claude APIの使用を最小限に。** スキャン、分析、キュー管理、実行、検証、モデル切り替えを含むワークフロー全体を、できる限り少ないClaude操作で完了できなければなりません。このツールはClaudeのProまたはMaxサブスクリプションを契約していないフリープランユーザーでも完全に機能する必要があります。すべてのツール呼び出しは使用量を消費します。この原則を念頭に設計してください。
12
+
13
+ **常に1つのwhisperインスタンス。** 実行中に2つ目のwhisper-cli.exeプロセスを生成しない。プロセスロックは必須であり、例外はありません。
14
+
15
+ **ローカルファースト、デフォルトでプライベート。** 音声はマシンから外に出ない。コア機能にクラウドAPIは不要。オプションの統合機能(例:Hugging Faceからのモデルダウンロード)は明確にオプションとして文書化する必要があります。
16
+
17
+ **明示的なユーザー制御。** サイレントな一括操作なし。破壊的または不可逆なアクションは確認が必要。実行前にユーザーが何が起こるかを常に把握できるようにする。
18
+
19
+ **Unicodeセーフなパス処理。** すべてのファイルI/Oで、日本語、中国語、絵文字、括弧などの非ASCII文字を含むファイル名を正しく処理する必要があります。
20
+
21
+ **モジュール型かつ組み合わせ可能。** ツールは独立しています。ユーザーは必要なものだけを使います。やむを得ない場合を除き、どの機能も他の機能を必要としてはなりません。
22
+
23
+ **機能追加より最適化を優先。** 機能追加とシステム負荷またはAPI呼び出し回数の削減の間で迷った場合は、負荷を削減してください。大規模な最適化作業はコストがかかります。最初から正しいアーキテクチャを設計してください。
24
+
25
+ ---
26
+
27
+ ## 完了済み
28
+
29
+ ### ✅ v1.3.1 — プロセスロック
30
+ `tasklist /FI`を使用した`isWhisperRunning()`チェックを追加。競合するプロセスを生成する代わりに、明確なエラーとTask Managerの手順を返します。
31
+
32
+ ### ✅ v1.4.0 — Vulkan GPU加速
33
+ VS Build Toolsと Vulkan SDKを使用して`-DGGML_VULKAN=ON`でwhisper.cppをコンパイル。ビルド済みVulkanバイナリを`whisper-vulkan-win-x64.zip`として配布。
34
+
35
+ **AMD Radeon RX Vega 56での結果:** GPU使用率平均約16%。58分のファイルがGPUで約4.5分(CPU専用では約88分)で完了。
36
+
37
+ ### ✅ v1.5.0 — システム診断
38
+ `check_system`ツール:`wmic`によるGPU検出、Vulkan DLL確認、VRAM報告、モデルサイズ推奨。
39
+
40
+ ### ✅ v1.6.0 — メディアファイル事前分析
41
+ FFprobeを使用した`analyze_media`ツール:時間、サイズ、コーデック、文字起こし状態、CPUとGPUの推定時間。単一ファイルまたはフォルダスキャン、ソートオプション付き。
42
+
43
+ ### ✅ v1.7.0 — バックグラウンド文字起こし + 進捗表示
44
+ デタッチドプロセスアーキテクチャ:`background=true`の`transcribe_audio`がwhisperをデタッチドプロセスとして起動し、即座にジョブIDを返す。`check_progress`がwhisperのstderrセグメントタイムスタンプをリアルタイムで解析。
45
+
46
+ ### ✅ v1.8.0 — 検証付き順次バッチ処理
47
+ `start_batch`と`check_batch_progress`:自動順次処理、文字起こし検証(空または短すぎる出力の検出)、自動キュー進行、ファイルごとの進捗タイムスタンプ。
48
+
49
+ ### ✅ v1.9.0 — 多言語対応と翻訳
50
+ `language=auto`による言語自動検出と`translate_to_english=true`によるデュアルSRT出力。`.3gp`と`.ts`フォーマットのサポートを追加。`language=auto`は`transcribe_audio`でも利用可能。
51
+
52
+ **既知の制限:** Whisperの組み込み翻訳は英語へのみ対応。英語以外の言語には`large-v3`モデルが必要 — 英語専用モデル(`*.en.bin`)は英語以外の音声に`[FOREIGN]`を出力します。
53
+
54
+ ### ✅ v2.0.0 — Unicodeセーフパス + バックグラウンドSRT
55
+ **Unicodeファイル名:** 非ASCII文字を含むファイル名でバックグラウンド文字起こしがサイレントに失敗する問題を修正。ジョブIDベースのサニタイズされた一時パスに出力を書き込み、完了後に正しい宛先に移動するよう変更。
56
+
57
+ **バックグラウンドモードでのSRT:** `spawnDetached`が要求されたフォーマットに関わらず`-otxt`をハードコードしており、`generate_subtitles`が同期的にブロックして長尺ファイルでMCPタイムアウトが発生していた問題を修正。`spawnDetached`に`outputFormat`パラメータを追加し、バックグラウンドモードで`text`と`srt`出力をサポート。
58
+
59
+ ### ✅ v2.0.1 — バグ修正(v2.2.0に含む)
60
+ - `buildArgs`と`spawnDetached`の両方で`--max-context 0`をハードコード — 長尺音声でのハルシネーションループを防止。現在のバイナリ(v1.8.3世代)では`--condition-on-previous-text`と`--no-context`は無効なフラグ — 正しいフラグは`--max-context N`。
61
+ - `--no-speech-thold 0.6`を両関数にハードコード — 信頼度閾値を下回るセグメントを内容のハルシネーションではなく無音として扱う。
62
+ - パス検証(`validateInputPath`)— UNCパスと`..`トラバーサルを拒否。
63
+ - `MAX_FILE_SIZE_MB = 10240`ファイルサイズガード。
64
+ - `transcribeSingle`にトランスクリプトインジェクションのセキュリティコメントを追加。
65
+ - TROUBLESHOOTING.mdとTROUBLESHOOTING.ja.mdで壊れていたCLIバッチコマンドを修正 — FFmpeg事前変換の正しいアプローチと`Start-Process -RedirectStandardOutput`の使用方法を文書化。
66
+
67
+ ### ✅ v2.1.0 — モデル管理スイート(v2.2.0に含む)
68
+ - `WHISPER_MODEL`を`const`から`let`に変更(セッション中に変更可能)。
69
+ - `MODEL_REGISTRY` — 16モデル、フル精度と量子化バリアント、Hugging FaceダウンロードURL。
70
+ - `ALLOWED_HF_PREFIXES` — ダウンロードを`ggerganov/whisper.cpp`と`ggml-org`ネームスペースに制限するURLホワイトリスト。
71
+ - `list_models`ツール — モデルディレクトリをスキャン、アクティブモデル、サイズ、ユースケース、利用可能なダウンロードを表示。
72
+ - `download_model`ツール — Node.js組み込み`https`でHugging Faceからダウンロード、Windowsファイルハンドル解放の競合を修正(コールバック後にrenameSync)。
73
+ - `switch_model`ツール — `.bin`拡張子の検証、ディレクトリ制約、プロセスロックチェック。
74
+ - `recommendedModel()`を更新 — 6GB以上のVRAMで`large-v3-turbo`を推奨。
75
+
76
+ ### ✅ v2.2.0 — 品質・パラメータ・ハードウェア拡張(現在)
77
+ - `WhisperOptions`インターフェース — `buildArgs`の位置引数を置き換え。
78
+ - `transcribe_audio`に新パラメータ追加:`temperature`、`prompt`、`condition_on_prev_text`、`no_speech_thold`、`beam_size`、`best_of`、`gpu_device`、`processors`、`word_timestamps`、`max_segment_length`、`split_on_word`、`diarize`、`vad_model`、`offset_t`、`duration`。
79
+ - `generate_subtitles`に新パラメータ追加:`temperature`、`prompt`、`beam_size`、`best_of`、`diarize`、`vad_model`。
80
+ - `spawnDetached`をリファクタリング — バックグラウンド/バッチモードですべての品質フラグが適用されるよう修正。
81
+ - `runSrtPass`を更新し`extraOpts`を受け付けるよう変更。
82
+ - バッチ出力の修正 — `readBatchProgress`が検証前に一時出力を最終宛先に移動するよう修正(バッチ「失敗」の根本原因)。
83
+
84
+ **フラグ互換性の注意:** `gpu_device` / `-g`はwhisper.cpp v1.8.4で追加されました。リリースに含まれるビルド済みVulkanバイナリはv1.8.3世代 — このパラメータはツールで受け付けられますが、ユーザーがv1.8.4以降のバイナリに更新するまで効果はありません。
85
+
86
+ **現在のバイナリ(v1.8.3世代)で確認済みの有効なフラグ:**
87
+ `--max-context`、`--no-speech-thold`、`--processors`、`--offset-t`、`--duration`、`--best-of`、`--beam-size`、`--diarize`、`--tinydiarize`、`--temperature`、`--prompt`、VADフラグ。
88
+
89
+ **現在のバイナリに存在しないフラグ:** `--no-context`(`--max-context 0`を使用)、`--condition-on-previous-text`(Python APIの名前のみ)、`--gpu-device` / `-g`(v1.8.4以降)。
90
+
91
+ ---
92
+
93
+ ## 重大なバグ — バッチ自動進行(確認済み、修正待ち)
94
+
95
+ ### ポーリングなしでバッチが自動進行しない
96
+
97
+ `start_batch`はファイル間でキューを自律的に進行させません。バッチは`check_batch_progress`が呼ばれた場合のみ進行します。ポーリングなしでは、各ファイル完了後にバッチが無期限に停止します — whisper-cli.exeが終了しても新しいプロセスは起動せず、`check_batch_progress`が呼ばれるまでキューは進行しません。
98
+
99
+ これは夜間の無人バッチ処理というツールの中核的な設計目標を破壊し、Claude API呼び出しの最小化という設計原則にも直接違反します。95ファイルのバッチを完了させるために約200回のポーリング呼び出しが100分かけて必要でした。
100
+
101
+ **根本原因:** `readBatchProgress`にすべてのキュー進行ロジックが含まれています。`check_batch_progress`が明示的に呼ばれた場合のみ実行されます。バックグラウンドタイマー、ファイルウォッチャー、自律ループは存在しません。
102
+
103
+ **計画中の修正 — オプションB(exitコールバック、強く推奨):** 生成されたwhisper-cliの子プロセスに`on('exit')`ハンドラーをアタッチ。プロセスが終了した時点で即座に進行ロジックを呼び出し、出力を検証して次のジョブを起動します。イベント駆動型で、ファイル完了ごとに1回だけ発火し、ポーリングオーバーヘッドとAPI呼び出しコストはゼロです。
104
+
105
+ **オプションA(フォールバックのみ):** バッチ状態JSONに既に存在するFFprobe時間データから導出した動的ポーリング間隔を使用した`setInterval`。ファイルサイズは時間の信頼できる代理指標ではありません。
106
+
107
+ **追加制約:** 修正は既に実行中のwhisper-cli.exeがある場合に2つ目を起動してはなりません — 自動進行パスでもプロセスロックを尊重する必要があります。
108
+
109
+ **現在の回避策:** バッチが完了するまで`check_batch_progress`を繰り返し呼び出す。ファイルごとに約1回のポーリングが必要です。
110
+
111
+ ---
112
+
113
+ ## 予定 — プライバシーアーキテクチャ(Bun移行より前)
114
+
115
+ これらの変更は、Bun移行より前、および商業・エンタープライズ採用を促進するライセンス変更より前にリリースする必要があります。規制対応のコンプライアンス保護が未解決の状態でエンタープライズグレードのツールを提供することは、規制産業のユーザーに対する責任問題を生じさせます。
116
+
117
+ ### `WHISPER_PRIVACY_MODE`環境変数
118
+ このツールは現在、**音声**がマシンの外に出ないことを保証しています。この保証は**トランスクリプトテキスト**には及んでいません — ツールのレスポンスにトランスクリプトの内容が含まれる場合、そのテキストはClaudeのAPIで処理され、ローカル環境の外に出ます。
119
+
120
+ 「データはマシンの外に出ない」というメッセージを読んだユーザーが、音声から生成されたすべてのコンテンツもローカルに留まると合理的に期待することができるため、このギャップはユーザーには見えません。
121
+
122
+ `WHISPER_PRIVACY_MODE`を`claude_desktop_config.json`の環境変数として追加します。有効化時:
123
+ - すべてのツールレスポンスはメタデータのみを返す:ファイル名、時間、単語数、完了状態
124
+ - トランスクリプトテキストはどのツールレスポンスにも含まれない
125
+ - Claudeはトランスクリプトの内容を読み取り、分析、または中継できない
126
+ - トランスクリプトはローカルの`.txt`ファイルとしてのみ存在する
127
+
128
+ これは医療、法律、金融、および企業向けデプロイメントに適切な設定です。APIコールゼロ、データ転送ゼロ、コンプライアンスリスクゼロ。
129
+
130
+ ### トランスクリプトコンテンツへの同意ゲート
131
+ `WHISPER_PRIVACY_MODE`が有効でない場合(デフォルト)、トランスクリプトテキストを含むツールレスポンスは、セッション内の初回使用時に開示通知を前置きする必要があります。この通知はトランスクリプトテキストがAnthropicのAPIに送信されること、「データはマシンの外に出ない」保証の範囲外であること、規制対象コンテンツを扱うユーザーは続行前にコンプライアンス義務を確認する必要があることを明確に伝える必要があります。
132
+
133
+ 実装:`WHISPER_CONSENT_ACKNOWLEDGED`環境変数(デフォルト`false`)。セッション内の最初のトランスクリプト返却時、未承認の場合はClaudeが開示通知を提示し、明示的な確認を求めます。セッション中に一度承認されると、以降のトランスクリプトは再プロンプトなしで返却されます。
134
+
135
+ ### `PRIVACY.md`ドキュメント
136
+ リポジトリルートに`PRIVACY.md`を作成します:
137
+ - 常にローカルに留まるデータ:音声、動画、モデルファイル
138
+ - デフォルトで外部に出る可能性があるデータ:ツールレスポンス内のトランスクリプトテキスト
139
+ - プライバシーモードで常にローカルに留まるデータ:すべて
140
+ - 業界別のコンプライアンスフレームワークガイダンス(HIPAA、GDPR、弁護士・依頼者特権、FERPA、SOX、PCI-DSS)
141
+ - プライバシーモードの設定方法
142
+ - ツールの作者は法律の専門家ではなく、ユーザーが適用法令へのコンプライアンスに対して責任を負うという免責事項
143
+
144
+ ### ツールスキーマへのプライバシー警告
145
+ `ListToolsRequestSchema`のツール説明を更新し、トランスクリプトテキストを返すツールにプライバシーに関する注意書きを追加します。これはClaude Desktopのツール説明に表示され、使用時点での認識を高めます。
146
+
147
+ ### 一時ディレクトリの自動クリーンアップ
148
+ `%TEMP%\whisper-mcp-jobs\`にジョブ状態とログファイルが時間とともに蓄積されます。設定可能な保持期間(デフォルト:7日)を過ぎた完了ジョブファイルの自動クリーンアップを追加します。現在はユーザーが手動で`Remove-Item`を実行する必要があります。
149
+
150
+ ---
151
+
152
+ ## 予定 — Bunへの移行
153
+
154
+ プライバシーアーキテクチャが完成した後、v2.3.0の機能追加前に、ランタイムをNode.jsから[Bun](https://bun.sh)に移行します。
155
+
156
+ Claude Desktopはセッション起動のたびにMCPサーバーを新しく生成するため、起動時間はクリティカルパスにあります。BunはTypeScriptをネイティブにコンパイルステップなしで実行し、Node.jsより大幅に高速に起動し、I/Oも高速です。
157
+
158
+ **変更点:**
159
+ - `tsc`のビルドステップと`dist/`ディレクトリを完全に削除
160
+ - ユーザーがTypeScriptソースを直接実行
161
+ - `tsconfig.json`がオプション化
162
+ - `package.json`スクリプトを更新
163
+ - npm公開ワークフローを更新
164
+
165
+ **変更しない点:**
166
+ - `src/index.ts`のソースコード — Bunは既存のTypeScriptとNode.js組み込みAPIと互換性があります
167
+ - すべてのツールの動作と出力形式
168
+ - エンドユーザーのClaude Desktop設定
169
+
170
+ **プライバシー対応後、v2.3.0より前に移行する理由:** コードベースは今が最も移行しやすい状態です。ツールを追加した後では移行の作業量が増えるだけでメリットはありません。プライバシーアーキテクチャは前述の通り先行してリリースする必要があります。
171
+
172
+ ---
173
+
174
+ ## ライセンス
175
+
176
+ whisper-windows-mcpはデュアルライセンスを採用しています。
177
+
178
+ **非商用利用:** MIT — 個人・教育・非商用目的での利用は無償です。[LICENSE](LICENSE)をご参照ください。
179
+
180
+ **商用利用:** ビジネス・業務・収益を生む用途には別途商用ライセンス契約が必要です。条件と連絡先は[LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md)をご参照ください。
181
+
182
+ 規制産業向けの`WHISPER_PRIVACY_MODE`は将来のリリースで提供予定です。現時点での規制対象コンテンツのワークフローについては[PRIVACY.md](PRIVACY.md)をご参照ください。
183
+
184
+ ## 予定 — v2.3.0:出力フォーマットの拡張
185
+
186
+ ### VTT字幕フォーマット
187
+ SRTに加えてWebVTT(`.vtt`)出力をサポート。VTTはYouTube、HTML5 `<video>`、ほとんどの現代的なプレーヤーで使用されるウェブ標準です。whisper-cliはネイティブにサポートしています。`transcribe_audio`、`generate_subtitles`、`spawnDetached`に`vtt`を有効な出力フォーマットとして追加。`buildArgs`と関連するすべてのツールスキーマ、README、日本語ドキュメントを更新します。
188
+
189
+ ### LRCフォーマット
190
+ `-olrc`によるLRC(`.lrc`)歌詞/カラオケフォーマット出力。メディアプレーヤーによる同期歌詞表示に使用されます。ニッチなユースケースですが実装コストはゼロ — ネイティブCLIフラグです。
191
+
192
+ ### CSVフォーマット
193
+ `-ocsv`によるCSV(`.csv`)出力。セグメントタイミング付きの構造化表形式データ — 下流分析、クリップ位置合わせワークフロー、スプレッドシートツールへのインポートに有用です。実装コストはゼロ — ネイティブCLIフラグです。
194
+
195
+ ---
196
+
197
+ ## 予定 — 将来のリリース
198
+
199
+ ### TinyDiarize
200
+ `tdrz`対応モデルバリアント(例:`large-v2-tdrz`)での`--tinydiarize`フラグサポート。ステレオ専用の`--diarize`フラグとは異なり、TinyDiarizeはモノラル録音に対応します。特別なモデルバリアントのダウンロードが必要です。pyannoteベースのダイアライゼーションより精度は低いですが、モデルファイル以外の追加依存関係はゼロです。
201
+
202
+ **状況:** 計画中。`download_model`がtdrzモデルバリアントをサポートすることに依存します。
203
+
204
+ ### YouTube URL文字起こし
205
+ yt-dlp経由でYouTube URLから直接文字起こし。音声のダウンロードと文字起こしを1ステップで実行。yt-dlpのインストールとPATH設定が必要。
206
+
207
+ **設計制約:** yt-dlpはオプション。見つからない場合は明確なインストール手順とともに適切にエラー処理する必要があります。このツールを必要としないユーザーのコア機能への変更なし。
208
+
209
+ ### 動画プロジェクトワークフローツール
210
+ ソースクリップと編集済みクリップのディレクトリを管理するユーザー向け:
211
+
212
+ 1. ソースディレクトリとクリップサブディレクトリをスキャン
213
+ 2. 編集済みクリップのトランスクリプトをソーストランスクリプトにファジーマッチして、ソース内の位置を特定
214
+ 3. トランスクリプトコンテンツに基づいてClaudeが提案する説明的なファイル名を表示(リネーム実行前に明示的なユーザー確認が必要)
215
+ 4. タイムコード結果付きでプロジェクトディレクトリ全体のトランスクリプトを検索
216
+
217
+ **設計制約:**
218
+ - ソースファイルは**絶対にリネームまたは変更しない**
219
+ - すべてのリネームには**明示的なユーザー確認**が必要
220
+ - 検索はスタンドアロンツールとして独立して使用可能
221
+ - 分析とマッチングはローカルで実行 — Claudeはユーザーが結果をレビューするときのみ呼び出され、API呼び出しを最小化
222
+
223
+ **状況:** 設計フェーズ。
224
+
225
+ ### 話者識別(pyannote-audio)
226
+ 話者IDラベル付きの完全なモノラル話者識別 — チャンネル構成に関わらず、録音全体の話者の切り替えをマークします。組み込みの`--diarize`ステレオフラグ(v2.2.0)およびTinyDiarizeとは異なります。
227
+
228
+ **実装:** [pyannote-audio](https://github.com/pyannote/pyannote-audio)が必要 — Hugging Faceモデルアクセストークンが必要なPythonベースのライブラリ。whisper.cppパイプラインとは完全に別の依存関係スタック。
229
+
230
+ **状況:** 独自のセットアップドキュメントを持つオプションの高度機能として計画中。メインパッケージには含めません。
231
+
232
+ ### 英語以外の言語への翻訳
233
+ Whisperの`--translate`フラグは英語のみを対象としています。任意のターゲット言語をサポートするには、外部翻訳APIまたはローカル翻訳モデルが必要です。
234
+
235
+ **検討中のオプション:** LibreTranslate(セルフホスト可能、ローカルファースト)、ローカルLLM翻訳、または明示的なスコープ外ドキュメント。
236
+
237
+ **状況:** ローカルファーストかAPIへの依存かの設計判断待ちで保留中。
238
+
239
+ ### 文字起こしのクリーンアップと整形
240
+ 後処理パイプライン:
241
+ - フィラーワードと言い直しの削除(オプション、ユーザー制御)
242
+ - 自然なトピック境界での段落区切り
243
+ - ダイアライゼーションと組み合わせた話者を考慮した整形
244
+ - PDFまたはDOCXへのエクスポート
245
+
246
+ **状況:** 計画中。話者を考慮したバリアントはダイアライゼーションに依存します。
247
+
248
+ ---
249
+
250
+ ## 配信
251
+
252
+ [npm](https://www.npmjs.com/package/whisper-windows-mcp)、[mcpservers.org](https://mcpservers.org)、[Glama](https://glama.ai)で公開中。
253
+
254
+ ---
255
+
256
+ ## 多言語ドキュメント
257
+
258
+ 日本語および韓国語ドキュメントは英語と並行して管理されます。各リリース後に英語ドキュメントに合わせて以下のファイルを更新する必要があります:
259
+
260
+ **日本語 (`*.ja.md`)**
261
+ - `README.ja.md`
262
+ - `TROUBLESHOOTING.ja.md`
263
+ - `ROADMAP.ja.md`
264
+ - `PRIVACY.ja.md`
265
+ - `SECURITY.ja.md`
266
+
267
+ **韓国語 (`*.ko.md`)**
268
+ - `README.ko.md`
269
+ - `TROUBLESHOOTING.ko.md`
270
+ - `ROADMAP.ko.md`
271
+ - `PRIVACY.ko.md`
272
+ - `SECURITY.ko.md`
273
+
274
+ **ベトナム語 (`*.vi.md`)**
275
+ - `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
276
+
277
+ **インドネシア語 (`*.id.md`)**
278
+ - `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
279
+
280
+ **ウクライナ語 (`*.uk.md`)**
281
+ - `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
282
+
283
+ **ブラジルポルトガル語 (`*.pt-BR.md`)**
284
+ - `README.pt-BR.md` / `TROUBLESHOOTING.pt-BR.md` / `ROADMAP.pt-BR.md` / `PRIVACY.pt-BR.md` / `SECURITY.pt-BR.md`
285
+
286
+ **スペイン語 (`*.es.md`)**
287
+ - `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
288
+
289
+ **Polish (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
290
+
291
+ **Romanian (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
292
+
293
+ 他の言語へのコミュニティ貢献を歓迎します。
294
+
295
+ ---
296
+
297
+ ## コントリビュート
298
+
299
+ プルリクエスト歓迎です。作業を開始する前に既存のIssueを確認してください。
300
+
301
+ 上記以外のハードウェアでGPU加速をテストした方は、GPU型番、VRAM、使用モデル、確認したスループットをIssueで報告してください。他のユーザーへの正確なパフォーマンス参考情報の構築に役立ちます。