whisper-windows-mcp 2.2.2 → 2.3.0

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 (53) hide show
  1. package/{LICENSE-COMMERCIAL.md → COMMERCIAL-LICENSE.md} +58 -58
  2. package/LICENSE +40 -40
  3. package/PRIVACY.es.md +192 -135
  4. package/PRIVACY.id.md +192 -135
  5. package/PRIVACY.ja.md +192 -135
  6. package/PRIVACY.ko.md +192 -135
  7. package/PRIVACY.md +192 -135
  8. package/PRIVACY.pl.md +192 -135
  9. package/PRIVACY.pt-BR.md +192 -135
  10. package/PRIVACY.ro.md +192 -135
  11. package/PRIVACY.uk.md +192 -135
  12. package/PRIVACY.vi.md +192 -135
  13. package/README.es.md +74 -48
  14. package/README.id.md +77 -40
  15. package/README.ja.md +100 -72
  16. package/README.ko.md +63 -37
  17. package/README.md +76 -39
  18. package/README.pl.md +77 -40
  19. package/README.pt-BR.md +71 -45
  20. package/README.ro.md +78 -41
  21. package/README.uk.md +77 -40
  22. package/README.vi.md +67 -41
  23. package/ROADMAP.es.md +110 -48
  24. package/ROADMAP.id.md +77 -104
  25. package/ROADMAP.ja.md +84 -123
  26. package/ROADMAP.ko.md +73 -97
  27. package/ROADMAP.pl.md +104 -44
  28. package/ROADMAP.pt-BR.md +78 -102
  29. package/ROADMAP.ro.md +102 -44
  30. package/ROADMAP.uk.md +65 -97
  31. package/ROADMAP.vi.md +78 -102
  32. package/SECURITY.es.md +64 -47
  33. package/SECURITY.id.md +64 -47
  34. package/SECURITY.ja.md +64 -47
  35. package/SECURITY.ko.md +64 -47
  36. package/SECURITY.md +21 -4
  37. package/SECURITY.pl.md +64 -47
  38. package/SECURITY.pt-BR.md +64 -47
  39. package/SECURITY.ro.md +64 -47
  40. package/SECURITY.uk.md +64 -47
  41. package/SECURITY.vi.md +64 -47
  42. package/TROUBLESHOOTING.es.md +309 -323
  43. package/TROUBLESHOOTING.id.md +333 -323
  44. package/TROUBLESHOOTING.ja.md +399 -286
  45. package/TROUBLESHOOTING.ko.md +309 -323
  46. package/TROUBLESHOOTING.pl.md +355 -323
  47. package/TROUBLESHOOTING.pt-BR.md +309 -323
  48. package/TROUBLESHOOTING.ro.md +355 -323
  49. package/TROUBLESHOOTING.uk.md +369 -323
  50. package/TROUBLESHOOTING.vi.md +309 -323
  51. package/dist/index.js +591 -216
  52. package/package.json +45 -45
  53. package/patch_roadmaps.py +0 -72
package/ROADMAP.id.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # whisper-windows-mcp — Peta Jalan
2
2
 
3
- Versi saat ini: **v2.2.0**
3
+ Versi saat ini: **v2.3.0**
4
4
 
5
5
  ---
6
6
 
@@ -54,104 +54,75 @@ Arsitektur proses terpisah: `transcribe_audio` dengan `background=true` menelurk
54
54
  ### ✅ v2.0.0 — Jalur Aman Unicode + SRT Latar Belakang
55
55
  **Nama file Unicode:** File dengan karakter non-ASCII dalam nama file menyebabkan transkripsi latar belakang gagal secara diam-diam. Diperbaiki dengan merutekan semua output melalui jalur temp yang disanitasi berbasis ID tugas, kemudian memindahkan hasilnya ke tujuan yang benar setelah selesai.
56
56
 
57
- **SRT dalam mode latar belakang:** `spawnDetached` sebelumnya mengkodekan keras `-otxt` terlepas dari format yang diminta, dan `generate_subtitles` memblokir secara sinkron dan mencapai timeout MCP 4 menit pada file yang lebih panjang. Diperbaiki dengan menambahkan parameter `outputFormat` ke `spawnDetached`, mendukung output `text` dan `srt` dalam mode latar belakang.
57
+ **SRT dalam mode latar belakang:** `spawnDetached` sebelumnya mengkodekan keras `-otxt` terlepas dari format yang diminta. Diperbaiki dengan menambahkan parameter `outputFormat` ke `spawnDetached`, mendukung output `text` dan `srt` dalam mode latar belakang.
58
58
 
59
59
  ### ✅ v2.0.1 — Perbaikan Bug (dikirimkan dalam v2.2.0)
60
- - `--max-context 0` dikodekan keras di `buildArgs` dan `spawnDetached` — mencegah loop halusinasi pada audio panjang. `--condition-on-previous-text` dan `--no-context` bukan flag valid dalam binary saat ini (era v1.8.3) — `--max-context N` adalah flag yang benar.
60
+ - `--max-context 0` dikodekan keras di `buildArgs` dan `spawnDetached` — mencegah loop halusinasi pada audio panjang.
61
61
  - `--no-speech-thold 0.6` dikodekan keras di kedua fungsi — segmen di bawah ambang kepercayaan diperlakukan sebagai keheningan daripada konten yang dihalusinasi.
62
62
  - Validasi jalur (`validateInputPath`) — menolak jalur UNC dan traversal `..`.
63
63
  - Penjaga ukuran file `MAX_FILE_SIZE_MB = 10240`.
64
64
  - Komentar keamanan injeksi transkrip di `transcribeSingle`.
65
- - Perintah CLI batch yang rusak diperbaiki di TROUBLESHOOTING.md — mendokumentasikan pendekatan konversi FFmpeg yang benar dan metode `Start-Process -RedirectStandardOutput`.
65
+ - Perintah CLI batch yang rusak diperbaiki di TROUBLESHOOTING.md.
66
66
 
67
67
  ### ✅ v2.1.0 — Suite Manajemen Model (dikirimkan dalam v2.2.0)
68
68
  - `WHISPER_MODEL` diubah dari `const` ke `let` (dapat diubah dalam sesi).
69
69
  - `MODEL_REGISTRY` — 16 model, varian presisi penuh dan terkuantisasi, URL unduhan Hugging Face.
70
70
  - `ALLOWED_HF_PREFIXES` — daftar putih URL yang membatasi unduhan ke namespace `ggerganov/whisper.cpp` dan `ggml-org`.
71
71
  - Alat `list_models` — memindai direktori model, menampilkan model aktif, ukuran, kasus penggunaan, unduhan yang tersedia.
72
- - Alat `download_model` — mengunduh dari Hugging Face via `https` bawaan Node.js, penggantian nama atomik (perbaikan race condition pelepasan file handle Windows).
72
+ - Alat `download_model` — mengunduh dari Hugging Face via `https` bawaan Node.js, penggantian nama atomik.
73
73
  - Alat `switch_model` — memvalidasi ekstensi `.bin`, batasan direktori, pemeriksaan kunci proses.
74
74
  - `recommendedModel()` diperbarui untuk merekomendasikan `large-v3-turbo` untuk VRAM 6GB+.
75
75
 
76
- ### ✅ v2.2.0 — Perluasan Kualitas, Parameter, dan Hardware (saat ini)
76
+ ### ✅ v2.2.0 — Perluasan Kualitas, Parameter, dan Hardware
77
77
  - Interface `WhisperOptions` menggantikan argumen posisional di `buildArgs`.
78
78
  - Parameter baru di `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
79
  - Parameter baru di `generate_subtitles`: `temperature`, `prompt`, `beam_size`, `best_of`, `diarize`, `vad_model`.
80
- - `spawnDetached` direfaktor — semua flag kualitas sekarang diterapkan dalam mode latar belakang/batch.
81
- - `runSrtPass` diperbarui untuk menerima `extraOpts`.
82
- - Perbaikan output batch — `readBatchProgress` sekarang memindahkan output temp ke tujuan akhir sebelum memvalidasi (ini adalah akar penyebab semua hasil batch "gagal").
83
-
84
- **Catatan kompatibilitas flag:** `gpu_device` / `-g` ditambahkan dalam whisper.cpp v1.8.4. Binary Vulkan yang sudah dikompilasi dalam rilis adalah era v1.8.3 — parameter ini diterima oleh alat tetapi tidak akan berpengaruh sampai pengguna memperbarui ke binary v1.8.4+.
85
-
86
- **Flag valid yang dikonfirmasi dalam binary saat ini (era v1.8.3):**
87
- `--max-context`, `--no-speech-thold`, `--processors`, `--offset-t`, `--duration`, `--best-of`, `--beam-size`, `--diarize`, `--tinydiarize`, `--temperature`, `--prompt`, flag VAD.
88
-
89
- **Tidak ada dalam binary saat ini:** `--no-context` (gunakan `--max-context 0`), `--condition-on-previous-text` (hanya nama Python API), `--gpu-device` / `-g` (v1.8.4+).
90
-
91
- ---
92
-
93
- ## Bug Kritis — Kemajuan Otomatis Batch (Dikonfirmasi, Perbaikan Tertunda)
94
-
95
- ### Batch Tidak Maju Tanpa Polling Aktif
96
-
97
- `start_batch` tidak secara otonom maju melalui antrian antar file. Batch hanya berlanjut saat `check_batch_progress` dipanggil. Tanpa polling, batch macet tanpa batas setelah setiap file — whisper-cli.exe keluar, tidak ada proses baru yang ditelurkan, dan antrian tidak maju.
98
-
99
- Ini merusak pemrosesan batch semalaman tanpa pengawasan, yang merupakan tujuan desain inti alat, dan secara langsung melanggar prinsip desain meminimalkan panggilan Claude API. Batch 95 file klip pendek memerlukan sekitar 200 panggilan polling selama 100 menit untuk selesai.
100
-
101
- **Akar penyebab:** `readBatchProgress` berisi semua logika kemajuan antrian. Ini hanya dieksekusi saat `check_batch_progress` dipanggil secara eksplisit. Tidak ada timer latar belakang, pengawas file, atau loop otonom.
102
-
103
- **Perbaikan yang direncanakan — Opsi B (exit callback, sangat disukai):** Lampirkan handler `on('exit')` ke proses anak whisper-cli yang ditelurkan. Saat proses keluar, segera panggil logika kemajuan untuk memvalidasi output dan menelurkan tugas berikutnya. Berbasis event, terpicu tepat sekali per penyelesaian file, tanpa overhead polling, tanpa panggilan API yang dikonsumsi.
104
-
105
- **Opsi A (hanya cadangan):** `setInterval` latar belakang dengan interval polling berbasis durasi yang diturunkan dari data durasi FFprobe yang sudah ada dalam status batch JSON. Ukuran file bukan proksi yang andal untuk durasi.
106
-
107
- **Batasan tambahan:** Perbaikan tidak boleh menelurkan whisper-cli.exe kedua saat satu sudah berjalan — kunci proses harus dihormati dalam jalur kemajuan otomatis.
108
-
109
- **Solusi sementara (saat ini):** Panggil `check_batch_progress` berulang kali hingga batch selesai. Sekitar satu polling per file diperlukan.
110
-
111
- ---
112
-
113
- ## Direncanakan — Arsitektur Privasi (Sebelum Migrasi Bun)
114
-
115
- Perubahan ini harus dikirimkan sebelum migrasi Bun dan sebelum perubahan lisensi apa pun yang memfasilitasi adopsi komersial atau perusahaan. Mengirimkan alat tingkat perusahaan tanpa perlindungan kepatuhan yang telah diselesaikan menciptakan kewajiban bagi pengguna di industri yang diatur.
116
-
117
- ### Variabel Lingkungan `WHISPER_PRIVACY_MODE`
118
- Alat saat ini menjamin bahwa tidak ada **audio** yang meninggalkan mesin. Ini tidak memperluas jaminan ini ke **teks transkrip** — saat konten transkrip dikembalikan sebaris dalam respons alat, teks tersebut diproses oleh API Claude dan meninggalkan lingkungan lokal.
119
-
120
- Celah ini tidak terlihat oleh pengguna yang secara wajar mengartikan "tidak ada data yang meninggalkan mesin" mencakup semua konten yang berasal dari audio mereka.
121
-
122
- Tambahkan `WHISPER_PRIVACY_MODE` sebagai variabel lingkungan di `claude_desktop_config.json`. Saat diaktifkan:
123
- - Semua respons alat hanya mengembalikan metadata: nama file, durasi, jumlah kata, status penyelesaian
124
- - Tidak ada teks transkrip yang disertakan dalam respons alat mana pun
125
- - Claude tidak dapat membaca, menganalisis, atau meneruskan konten transkrip dalam bentuk apa pun
126
- - Transkrip hanya ada sebagai file `.txt` lokal
127
-
128
- Ini adalah solusi yang tepat untuk penerapan medis, hukum, keuangan, dan perusahaan. Nol panggilan API, nol transmisi data, nol risiko kepatuhan.
129
-
130
- ### Gerbang Persetujuan untuk Konten Transkrip
131
- Saat `WHISPER_PRIVACY_MODE` tidak diaktifkan (default), setiap respons alat yang menyertakan teks transkrip harus didahului oleh pengungkapan pada penggunaan pertama per sesi. Pengungkapan harus mengkomunikasikan dengan jelas bahwa teks transkrip dikirim ke API Anthropic, bahwa ini berada di luar jaminan "tidak ada data yang meninggalkan mesin", dan bahwa pengguna yang menangani konten yang diatur harus memverifikasi kewajiban kepatuhan sebelum melanjutkan.
132
-
133
- Implementasi: variabel lingkungan `WHISPER_CONSENT_ACKNOWLEDGED` yang default ke `false`. Pada pengembalian transkrip pertama per sesi, jika belum diakui, Claude menyajikan pengungkapan dan meminta konfirmasi eksplisit. Setelah diakui untuk sesi tersebut, transkrip berikutnya dikembalikan tanpa meminta ulang.
134
-
135
- ### Dokumentasi `PRIVACY.md`
136
- Buat `PRIVACY.md` di root repo yang mencakup:
137
- - Data apa yang tetap lokal (selalu): file audio, video, model
138
- - Data apa yang mungkin meninggalkan lokal (secara default): teks transkrip dalam respons alat
139
- - Data apa yang tidak pernah meninggalkan lokal (dengan mode privasi): semuanya
140
- - Panduan kerangka kepatuhan berdasarkan industri (HIPAA, GDPR, hak istimewa pengacara-klien, FERPA, SOX, PCI-DSS, NDA/rahasia dagang)
141
- - Cara mengkonfigurasi mode privasi
142
- - Penafian bahwa penulis alat bukan penasihat hukum
143
-
144
- ### Peringatan Privasi Schema Alat
145
- Perbarui deskripsi alat `ListToolsRequestSchema` untuk menyertakan catatan privasi pada alat apa pun yang mengembalikan teks transkrip. Ini muncul di deskripsi alat Claude Desktop dan menciptakan kesadaran pada titik penggunaan.
146
-
147
- ### Pembersihan Otomatis Direktori Temp
148
- `%TEMP%\whisper-mcp-jobs\` mengakumulasi file status tugas dan log dari waktu ke waktu. Tambahkan pembersihan otomatis file tugas yang selesai setelah jendela retensi yang dapat dikonfigurasi (default: 7 hari). Saat ini memerlukan `Remove-Item` manual oleh pengguna.
80
+ - `spawnDetached` direfaktor — semua flag kualitas diterapkan dalam mode latar belakang/batch.
81
+ - Perbaikan output batch — `readBatchProgress` sekarang memindahkan output temp ke tujuan akhir sebelum memvalidasi.
82
+
83
+ **Catatan kompatibilitas flag:** `gpu_device` / `--device` ditambahkan dalam whisper.cpp v1.8.4. Binary Vulkan yang sudah dikompilasi dalam rilis adalah era v1.8.3 — parameter ini diterima oleh alat tetapi tidak akan berpengaruh sampai pengguna memperbarui ke binary v1.8.4+.
84
+
85
+ ### ✅ v2.2.2 — Patch
86
+ - Perbaikan lisensi ganda — LICENSE dan LICENSE-COMMERCIAL.md dikoreksi.
87
+ - Koreksi dokumentasi minor.
88
+
89
+ ### ✅ v2.3.0 — Kemajuan Otomatis Batch, Arsitektur Privasi, Perluasan Format Output
90
+
91
+ **Kemajuan otomatis batch (perbaikan bug kritis):** `start_batch` sebelumnya memerlukan polling aktif untuk maju melalui antrian. Handler `on('exit')` kini dilampirkan ke setiap proses anak whisper-cli yang ditelurkan. Saat proses keluar, batch maju sendiri segera melalui exit callback tanpa overhead polling dan tanpa panggilan API yang dikonsumsi. Mutex mencegah double-spawn antara exit handler + panggilan `check_batch_progress` yang bersamaan.
92
+
93
+ **Arsitektur privasi:**
94
+ - Variabel lingkungan `WHISPER_PRIVACY_MODE` — saat `true`, semua respons alat hanya mengembalikan metadata (nama file, jumlah kata, jalur penyimpanan). Tidak ada teks transkrip yang pernah dikirimkan ke API Claude. Transkrip hanya ada sebagai file lokal.
95
+ - Variabel lingkungan `WHISPER_CONSENT_ACKNOWLEDGED` — saat `true`, melewati gerbang persetujuan sesi satu kali untuk konten yang tidak sensitif.
96
+ - Parameter per-panggilan `privacy_mode` pada `transcribe_audio`, `transcribe_batch`, `start_batch`, dan `check_progress`. Menggantikan variabel lingkungan global dalam kedua arah. Tidak perlu restart untuk toggle per-panggilan.
97
+ - Gerbang mode privasi (`checkPrivacyGate()`) — aktif sebelum setiap operasi saat mode privasi efektif aktif. Dipersenjatai pada panggilan pertama (menampilkan pengungkapan), dibersihkan pada panggilan kedua (mengizinkan). Direset setelah setiap operasi. Sepenuhnya independen dari gerbang persetujuan sesi.
98
+ - Gerbang persetujuan sesi (`transcriptPolicy()`) — aktif sekali per sesi sebelum panggilan pertama yang mengembalikan transkrip dalam mode standar. Dikonsumsi oleh flag `sessionConsentGiven`.
99
+ - `PRIVACY.md` — dokumentasi kepatuhan lengkap mencakup HIPAA, GDPR, hak istimewa pengacara-klien, FERPA, SOX, PCI-DSS, dan NDA/rahasia dagang.
100
+ - Peringatan privasi deskripsi alat pada semua alat yang mengembalikan transkrip.
101
+
102
+ **Perluasan format output:**
103
+ - `vtt` — output subtitle WebVTT via `-ovtt`. Tersedia di `transcribe_audio`, `generate_subtitles`, `start_batch`, dan mode latar belakang.
104
+ - `lrc` — format lirik/karaoke LRC via `-olrc`. Tersedia di `transcribe_audio` dan mode latar belakang.
105
+ - `csv` — CSV dengan timestamp via `-ocsv`. Tersedia di `transcribe_audio` dan mode latar belakang.
106
+ - Default `output_format` diubah dari `"text"` ke `"timestamps"` di semua alat dan jalur kode. Teks biasa kini opt-in.
107
+
108
+ **Perbaikan bug:**
109
+ - Bug 1: `output_format` tidak diteruskan ke tugas latar belakang — default `"text"` digunakan terlepas dari format yang diminta. Diperbaiki dengan mengubah default ke `"timestamps"` dan meneruskannya dengan benar.
110
+ - Bug 2: `catch {}` diam dalam operasi pemindahan output tugas latar belakang menelan kegagalan. Menambahkan pemeriksaan `existsSync` eksplisit dengan pesan kegagalan terperinci setelah pemindahan.
111
+ - Bug 3: Komentar desain ditambahkan di titik spawn latar belakang yang mendokumentasikan mengapa gerbang persetujuan sengaja ditangguhkan ke `check_progress` untuk tugas latar belakang non-privasi.
112
+
113
+ **Tambahan:**
114
+ - Pembersihan otomatis direktori temp — `cleanupOldJobFiles()` berjalan saat startup, menghapus file `.json` dan `.log` yang lebih dari 7 hari dari `%TEMP%\whisper-mcp-jobs\`.
115
+ - `check_config` kini melaporkan status mode privasi.
116
+ - Log startup melaporkan mode privasi aktif/nonaktif.
117
+ - Interface `Job` diperluas dengan field `privacyMode: boolean`.
118
+ - Interface `BatchState` diperluas dengan field `privacyMode: boolean`.
119
+ - Tipe `BackgroundFormat` mengecualikan `json` (json dalam mode latar belakang tetap tidak didukung — kembali ke `text`).
149
120
 
150
121
  ---
151
122
 
152
- ## Direncanakan — Migrasi Bun
123
+ ## Direncanakan — v2.4.0: Migrasi Bun
153
124
 
154
- Migrasikan runtime dari Node.js ke [Bun](https://bun.sh) setelah arsitektur privasi selesai dan sebelum penambahan fitur v2.3.0.
125
+ Migrasikan runtime dari Node.js ke [Bun](https://bun.sh).
155
126
 
156
127
  Karena Claude Desktop menelurkan server MCP baru setiap kali sesi dimulai, waktu startup berada di jalur kritis. Bun menjalankan TypeScript secara asli tanpa langkah kompilasi, memulai jauh lebih cepat dari Node, dan memiliki I/O yang lebih cepat.
157
128
 
@@ -167,30 +138,25 @@ Karena Claude Desktop menelurkan server MCP baru setiap kali sesi dimulai, waktu
167
138
  - Semua perilaku alat dan format output
168
139
  - Konfigurasi Claude Desktop untuk pengguna akhir
169
140
 
170
- **Mengapa setelah privasi, sebelum v2.3.0:** Codebase paling mudah untuk dimigrasikan sekarang. Bermigrasi setelah menambahkan lebih banyak alat hanya menambah permukaan area tanpa manfaat. Arsitektur privasi harus ada terlebih dahulu seperti yang dicatat di atas.
171
-
172
141
  ---
173
142
 
174
- ## Lisensi
175
-
176
- whisper-windows-mcp menggunakan lisensi ganda.
177
-
178
- **Penggunaan non-komersial:** MIT — gratis untuk penggunaan pribadi, pendidikan, dan non-komersial. Lihat [LICENSE](LICENSE).
143
+ ## Direncanakan — v2.5.0: Format Output Lanjutan untuk Integrasi Alat Eksternal
179
144
 
180
- **Penggunaan komersial:** Diperlukan perjanjian lisensi komersial terpisah. Lihat [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
145
+ Dukungan format output lanjutan yang ditargetkan untuk analisis downstream dan alur kerja integrasi. Cakupan tepat akan ditentukan berdasarkan umpan balik pengguna pasca-v2.3.0.
181
146
 
182
- `WHISPER_PRIVACY_MODE` untuk penerapan industri yang diatur sedang dalam pengembangan dan direncanakan untuk rilis mendatang. Lihat [PRIVACY.md](PRIVACY.md) untuk panduan saat ini.
147
+ ---
183
148
 
184
- ## Direncanakan — v2.3.0: Perluasan Format Output
149
+ ## Direncanakan — v2.6.0: Mode Transkripsi Mikrofon Langsung
185
150
 
186
- ### Format Subtitle VTT
187
- Output WebVTT (`.vtt`) bersama SRT. VTT adalah standar web yang digunakan oleh YouTube, HTML5 `<video>`, dan sebagian besar pemutar modern. whisper-cli mendukungnya secara asli. Tambahkan `vtt` sebagai format output yang valid di `transcribe_audio`, `generate_subtitles`, dan `spawnDetached`. Perbarui `buildArgs` dan semua schema alat yang relevan, README, dan dokumentasi multibahasa.
151
+ Transkripsi real-time dari input mikrofon langsung. Streaming audio dari perangkat rekaman yang dipilih ke whisper dalam potongan, mengembalikan segmen transkrip bergulir saat selesai.
188
152
 
189
- ### Format LRC
190
- Output format LRC (`.lrc`) lirik/karaoke via `-olrc`. Digunakan oleh pemutar media untuk tampilan lirik yang tersinkronisasi. Nol biaya implementasi — flag CLI asli.
153
+ **Batasan desain:**
154
+ - Pemilihan perangkat harus eksplisit — tidak ada penangkapan perangkat default yang diam
155
+ - Pengguna harus dapat menghentikan stream melalui interaksi Claude Desktop
156
+ - Tidak boleh bertentangan dengan batasan satu-instance-whisper-setiap-saat
157
+ - Trade-off latensi vs akurasi harus dapat dikonfigurasi pengguna
191
158
 
192
- ### Format CSV
193
- Output CSV (`.csv`) via `-ocsv`. Data tabular terstruktur dengan timing segmen — berguna untuk analisis downstream, alur kerja penyelarasan klip, dan impor ke alat spreadsheet. Nol biaya implementasi — flag CLI asli.
159
+ **Status:** Fase desain. Bergantung pada API streaming yang stabil di whisper.cpp.
194
160
 
195
161
  ---
196
162
 
@@ -225,7 +191,7 @@ Untuk pengguna yang mengelola proyek pengeditan video besar dengan direktori kli
225
191
  ### Diarisasi Pembicara (pyannote-audio)
226
192
  Diarisasi pembicara mono penuh dengan label ID pembicara — menandai transisi pembicara di seluruh rekaman terlepas dari konfigurasi saluran. Berbeda dari flag `--diarize` stereo bawaan (v2.2.0) dan TinyDiarize.
227
193
 
228
- **Implementasi:** Memerlukan [pyannote-audio](https://github.com/pyannote/pyannote-audio) — library berbasis Python dengan persyaratan token akses model Hugging Face. Stack dependensi yang sepenuhnya terpisah dari pipeline whisper.cpp.
194
+ **Implementasi:** Memerlukan [pyannote-audio](https://github.com/pyannote/pyannote-audio) — library berbasis Python dengan persyaratan token akses model Hugging Face. Stack dependensi yang sepenuhnya terpisah.
229
195
 
230
196
  **Status:** Fitur lanjutan opsional dengan dokumentasi pengaturannya sendiri. Tidak termasuk dalam paket utama.
231
197
 
@@ -247,24 +213,31 @@ Pipeline pasca-pemrosesan:
247
213
 
248
214
  ---
249
215
 
216
+ ## Lisensi
217
+
218
+ whisper-windows-mcp menggunakan lisensi ganda.
219
+
220
+ **Penggunaan non-komersial:** MIT — gratis untuk penggunaan pribadi, pendidikan, dan non-komersial. Lihat [LICENSE](LICENSE).
221
+
222
+ **Penggunaan komersial:** Diperlukan perjanjian lisensi komersial terpisah untuk penggunaan bisnis, profesional, atau menghasilkan pendapatan. Lihat [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) untuk syarat dan informasi kontak.
223
+
224
+ ---
225
+
250
226
  ## Distribusi
251
227
 
252
- Tersedia di [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), dan [Glama](https://glama.ai).
228
+ Tersedia di [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), [Glama](https://glama.ai), dan [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) (PR diajukan).
253
229
 
254
230
  ---
255
231
 
256
232
  ## Dokumentasi Multibahasa
257
233
 
258
- Dokumentasi bahasa Jepang, Korea, Vietnam, dan Indonesia dipertahankan secara paralel dengan bahasa Inggris. File-file berikut harus diperbarui agar sesuai dengan dokumen bahasa Inggris setelah setiap rilis:
234
+ File-file berikut harus diperbarui agar sesuai dengan dokumen bahasa Inggris setelah setiap rilis:
259
235
 
260
- **Jepang (`*.ja.md`)**
261
- - `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
236
+ **Jepang (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
262
237
 
263
- **Korea (`*.ko.md`)**
264
- - `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
238
+ **Korea (`*.ko.md`)** — `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
265
239
 
266
- **Vietnam (`*.vi.md`)**
267
- - `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
240
+ **Vietnam (`*.vi.md`)** — `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
268
241
 
269
242
  **Indonesia (`*.id.md`)** — `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
270
243
 
@@ -274,9 +247,9 @@ Dokumentasi bahasa Jepang, Korea, Vietnam, dan Indonesia dipertahankan secara pa
274
247
 
275
248
  **Spanyol (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
276
249
 
277
- **Polish (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
250
+ **Polandia (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
278
251
 
279
- **Romanian (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
252
+ **Rumania (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
280
253
 
281
254
  Kontribusi komunitas untuk bahasa lain disambut.
282
255
 
package/ROADMAP.ja.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # whisper-windows-mcp — ロードマップ
2
2
 
3
- 現在のバージョン:**v2.2.0**
3
+ 現在のバージョン:**v2.3.0**
4
4
 
5
5
  ---
6
6
 
@@ -30,7 +30,7 @@
30
30
  `tasklist /FI`を使用した`isWhisperRunning()`チェックを追加。競合するプロセスを生成する代わりに、明確なエラーとTask Managerの手順を返します。
31
31
 
32
32
  ### ✅ v1.4.0 — Vulkan GPU加速
33
- VS Build Toolsと Vulkan SDKを使用して`-DGGML_VULKAN=ON`でwhisper.cppをコンパイル。ビルド済みVulkanバイナリを`whisper-vulkan-win-x64.zip`として配布。
33
+ VS Build ToolsとVulkan SDKを使用して`-DGGML_VULKAN=ON`でwhisper.cppをコンパイル。ビルド済みVulkanバイナリを`whisper-vulkan-win-x64.zip`として配布。
34
34
 
35
35
  **AMD Radeon RX Vega 56での結果:** GPU使用率平均約16%。58分のファイルがGPUで約4.5分(CPU専用では約88分)で完了。
36
36
 
@@ -54,109 +54,80 @@ FFprobeを使用した`analyze_media`ツール:時間、サイズ、コーデ
54
54
  ### ✅ v2.0.0 — Unicodeセーフパス + バックグラウンドSRT
55
55
  **Unicodeファイル名:** 非ASCII文字を含むファイル名でバックグラウンド文字起こしがサイレントに失敗する問題を修正。ジョブIDベースのサニタイズされた一時パスに出力を書き込み、完了後に正しい宛先に移動するよう変更。
56
56
 
57
- **バックグラウンドモードでのSRT:** `spawnDetached`が要求されたフォーマットに関わらず`-otxt`をハードコードしており、`generate_subtitles`が同期的にブロックして長尺ファイルでMCPタイムアウトが発生していた問題を修正。`spawnDetached`に`outputFormat`パラメータを追加し、バックグラウンドモードで`text`と`srt`出力をサポート。
57
+ **バックグラウンドモードでのSRT:** `spawnDetached`が要求されたフォーマットに関わらず`-otxt`をハードコードしていた問題を修正。`spawnDetached`に`outputFormat`パラメータを追加し、バックグラウンドモードで`text`と`srt`出力をサポート。
58
58
 
59
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`を両関数にハードコード — 信頼度閾値を下回るセグメントを内容のハルシネーションではなく無音として扱う。
60
+ - `buildArgs`と`spawnDetached`の両方で`--max-context 0`をハードコード — 長尺音声でのハルシネーションループを防止。
61
+ - `--no-speech-thold 0.6`を両関数にハードコード — 信頼度閾値を下回るセグメントを無音として扱う。
62
62
  - パス検証(`validateInputPath`)— UNCパスと`..`トラバーサルを拒否。
63
63
  - `MAX_FILE_SIZE_MB = 10240`ファイルサイズガード。
64
64
  - `transcribeSingle`にトランスクリプトインジェクションのセキュリティコメントを追加。
65
- - TROUBLESHOOTING.mdとTROUBLESHOOTING.ja.mdで壊れていたCLIバッチコマンドを修正 — FFmpeg事前変換の正しいアプローチと`Start-Process -RedirectStandardOutput`の使用方法を文書化。
65
+ - TROUBLESHOOTING.mdで壊れていたCLIバッチコマンドを修正。
66
66
 
67
67
  ### ✅ v2.1.0 — モデル管理スイート(v2.2.0に含む)
68
68
  - `WHISPER_MODEL`を`const`から`let`に変更(セッション中に変更可能)。
69
69
  - `MODEL_REGISTRY` — 16モデル、フル精度と量子化バリアント、Hugging FaceダウンロードURL。
70
- - `ALLOWED_HF_PREFIXES` — ダウンロードを`ggerganov/whisper.cpp`と`ggml-org`ネームスペースに制限するURLホワイトリスト。
70
+ - `ALLOWED_HF_PREFIXES` — ダウンロードを`ggerganov/whisper.cpp`と`ggml-org`ネームスペースに制限するURLアローリスト。
71
71
  - `list_models`ツール — モデルディレクトリをスキャン、アクティブモデル、サイズ、ユースケース、利用可能なダウンロードを表示。
72
- - `download_model`ツール — Node.js組み込み`https`でHugging Faceからダウンロード、Windowsファイルハンドル解放の競合を修正(コールバック後にrenameSync)。
72
+ - `download_model`ツール — Node.js組み込み`https`でHugging Faceからダウンロード、アトミックリネーム。
73
73
  - `switch_model`ツール — `.bin`拡張子の検証、ディレクトリ制約、プロセスロックチェック。
74
74
  - `recommendedModel()`を更新 — 6GB以上のVRAMで`large-v3-turbo`を推奨。
75
75
 
76
- ### ✅ v2.2.0 — 品質・パラメータ・ハードウェア拡張(現在)
76
+ ### ✅ v2.2.0 — 品質・パラメータ・ハードウェア拡張
77
77
  - `WhisperOptions`インターフェース — `buildArgs`の位置引数を置き換え。
78
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
79
  - `generate_subtitles`に新パラメータ追加:`temperature`、`prompt`、`beam_size`、`best_of`、`diarize`、`vad_model`。
80
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`を実行する必要があります。
81
+ - バッチ出力の修正 — `readBatchProgress`が検証前に一時出力を最終宛先に移動するよう修正。
82
+
83
+ **フラグ互換性の注意:** `gpu_device` / `--device`はwhisper.cpp v1.8.4で追加されました。リリースに含まれるビルド済みVulkanバイナリはv1.8.3世代 — このパラメータはツールで受け付けられますが、ユーザーがv1.8.4以降のバイナリに更新するまで効果はありません。
84
+
85
+ ### ✅ v2.2.2 — パッチ
86
+ - デュアルライセンス修正 — LICENSEとLICENSE-COMMERCIAL.mdを修正。
87
+ - 軽微なドキュメント修正。
88
+
89
+ ### ✅ v2.3.0 — バッチ自動進行、プライバシーアーキテクチャ、出力フォーマット拡張
90
+
91
+ **バッチ自動進行(重大バグ修正):** `start_batch`はキューを進行させるために積極的なポーリングが必要でした。生成されたwhisper-cli子プロセスに`on('exit')`ハンドラーをアタッチするよう修正。プロセス終了時に終了コールバックを介して即座に自動進行し、ポーリングオーバーヘッドとAPI呼び出しコストはゼロ。同時発生する終了ハンドラーと`check_batch_progress`呼び出しによる二重スポーンを防ぐミューテックスを追加。
92
+
93
+ **プライバシーアーキテクチャ:**
94
+ - `WHISPER_PRIVACY_MODE`環境変数 — `true`の場合、すべてのツールレスポンスはメタデータのみを返す(ファイル名、単語数、保存パス)。トランスクリプトテキストはClaudeのAPIに送信されない。トランスクリプトはローカルファイルとしてのみ存在。
95
+ - `WHISPER_CONSENT_ACKNOWLEDGED`環境変数 — `true`の場合、機密性のないコンテンツに対してセッションごとの同意ゲートを抑制。
96
+ - `transcribe_audio`、`transcribe_batch`、`start_batch`、`check_progress`へのper-call `privacy_mode`パラメータ。グローバル環境変数をどちらの方向にも上書き。再起動不要でper-callで切り替え可能。
97
+ - プライバシーモードゲート(`checkPrivacyGate()`)— 有効なプライバシーモードがアクティブな場合、すべての操作前に表示。最初の呼び出しでアーム(開示を表示)、2回目でクリア(許可)。各操作後にリセット。セッション同意ゲートとは完全に独立。
98
+ - セッション同意ゲート(`transcriptPolicy()`)— 標準モードで最初のトランスクリプト返却呼び出しの前にセッションに1回表示。`sessionConsentGiven`フラグで管理。
99
+ - `PRIVACY.md` — HIPAA、GDPR、弁護士・依頼者特権、FERPA、SOX、PCI-DSS、NDA/企業秘密を網羅した完全なコンプライアンスドキュメント。
100
+ - トランスクリプトを返すすべてのツールのツール説明にプライバシー警告を追加。
101
+
102
+ **出力フォーマット拡張:**
103
+ - `vtt` — `-ovtt`によるWebVTT字幕出力。`transcribe_audio`、`generate_subtitles`、`start_batch`、バックグラウンドモードで利用可能。
104
+ - `lrc` — `-olrc`によるLRC歌詞/カラオケフォーマット。`transcribe_audio`とバックグラウンドモードで利用可能。
105
+ - `csv` — `-ocsv`によるタイムスタンプ付きCSV。`transcribe_audio`とバックグラウンドモードで利用可能。
106
+ - `output_format`のデフォルトをすべてのツールとコードパスで`"text"`から`"timestamps"`に変更。プレーンテキストはオプトイン。
107
+
108
+ **バグ修正:**
109
+ - Bug 1:`output_format`がバックグラウンドジョブに転送されていなかった — 要求されたフォーマットに関わらずデフォルトの`"text"`が使用されていた。修正済み。
110
+ - Bug 2:バックグラウンドジョブ出力移動操作でのサイレントな`catch {}`がエラーを握りつぶしていた。移動後に明示的な`existsSync`チェックを追加して詳細な失敗メッセージを表示。
111
+ - Bug 3:非プライバシーバックグラウンドジョブで同意ゲートが`check_progress`に意図的に延期される理由を文書化するコメントを追加。
112
+
113
+ **その他:**
114
+ - 一時ディレクトリの自動クリーンアップ — `cleanupOldJobFiles()`が起動時に実行し、`%TEMP%\whisper-mcp-jobs\`から7日以上経過した`.json`と`.log`ファイルを削除。
115
+ - `check_config`がプライバシーモードの状態を報告するよう更新。
116
+ - 起動ログがプライバシーモードのオン/オフを報告。
117
+ - `Job`インターフェースに`privacyMode: boolean`フィールドを追加。
118
+ - `BatchState`インターフェースに`privacyMode: boolean`フィールドを追加。
119
+ - `BackgroundFormat`型が`json`を除外(バックグラウンドモードでのjsonはサポートされず`text`にフォールバック)。
149
120
 
150
121
  ---
151
122
 
152
- ## 予定 — Bunへの移行
123
+ ## 予定 — v2.4.0:Bunへの移行
153
124
 
154
- プライバシーアーキテクチャが完成した後、v2.3.0の機能追加前に、ランタイムをNode.jsから[Bun](https://bun.sh)に移行します。
125
+ ランタイムをNode.jsから[Bun](https://bun.sh)に移行します。
155
126
 
156
127
  Claude Desktopはセッション起動のたびにMCPサーバーを新しく生成するため、起動時間はクリティカルパスにあります。BunはTypeScriptをネイティブにコンパイルステップなしで実行し、Node.jsより大幅に高速に起動し、I/Oも高速です。
157
128
 
158
129
  **変更点:**
159
- - `tsc`のビルドステップと`dist/`ディレクトリを完全に削除
130
+ - `tsc`のビルドステップと`dist/`ディレクトリを削除
160
131
  - ユーザーがTypeScriptソースを直接実行
161
132
  - `tsconfig.json`がオプション化
162
133
  - `package.json`スクリプトを更新
@@ -167,30 +138,25 @@ Claude Desktopはセッション起動のたびにMCPサーバーを新しく生
167
138
  - すべてのツールの動作と出力形式
168
139
  - エンドユーザーのClaude Desktop設定
169
140
 
170
- **プライバシー対応後、v2.3.0より前に移行する理由:** コードベースは今が最も移行しやすい状態です。ツールを追加した後では移行の作業量が増えるだけでメリットはありません。プライバシーアーキテクチャは前述の通り先行してリリースする必要があります。
171
-
172
141
  ---
173
142
 
174
- ## ライセンス
175
-
176
- whisper-windows-mcpはデュアルライセンスを採用しています。
177
-
178
- **非商用利用:** MIT — 個人・教育・非商用目的での利用は無償です。[LICENSE](LICENSE)をご参照ください。
143
+ ## 予定 — v2.5.0:外部ツール連携向け拡張出力フォーマット
179
144
 
180
- **商用利用:** ビジネス・業務・収益を生む用途には別途商用ライセンス契約が必要です。条件と連絡先は[LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md)をご参照ください。
145
+ 下流の分析と連携ワークフローを対象とした拡張出力フォーマットサポート。正確なスコープはv2.3.0後のユーザーフィードバックに基づいて定義予定。
181
146
 
182
- 規制産業向けの`WHISPER_PRIVACY_MODE`は将来のリリースで提供予定です。現時点での規制対象コンテンツのワークフローについては[PRIVACY.md](PRIVACY.md)をご参照ください。
147
+ ---
183
148
 
184
- ## 予定 — v2.3.0:出力フォーマットの拡張
149
+ ## 予定 — v2.6.0:ライブマイク文字起こしモード
185
150
 
186
- ### VTT字幕フォーマット
187
- SRTに加えてWebVTT(`.vtt`)出力をサポート。VTTはYouTube、HTML5 `<video>`、ほとんどの現代的なプレーヤーで使用されるウェブ標準です。whisper-cliはネイティブにサポートしています。`transcribe_audio`、`generate_subtitles`、`spawnDetached`に`vtt`を有効な出力フォーマットとして追加。`buildArgs`と関連するすべてのツールスキーマ、README、日本語ドキュメントを更新します。
151
+ ライブマイク入力からのリアルタイム文字起こし。選択した録音デバイスからの音声をチャンクでwhisperにストリーミングし、完了したセグメントをローリングトランスクリプトとして返す。
188
152
 
189
- ### LRCフォーマット
190
- `-olrc`によるLRC(`.lrc`)歌詞/カラオケフォーマット出力。メディアプレーヤーによる同期歌詞表示に使用されます。ニッチなユースケースですが実装コストはゼロ — ネイティブCLIフラグです。
153
+ **設計制約:**
154
+ - デバイス選択は明示的であること — サイレントなデフォルトデバイスのキャプチャは不可
155
+ - Claude Desktopの操作でストリームを停止できること
156
+ - 1つのwhisperインスタンスという制約と競合しないこと
157
+ - レイテンシと精度のトレードオフはユーザーが設定可能であること
191
158
 
192
- ### CSVフォーマット
193
- `-ocsv`によるCSV(`.csv`)出力。セグメントタイミング付きの構造化表形式データ — 下流分析、クリップ位置合わせワークフロー、スプレッドシートツールへのインポートに有用です。実装コストはゼロ — ネイティブCLIフラグです。
159
+ **状況:** 設計フェーズ。whisper.cppの安定したストリーミングAPIに依存。
194
160
 
195
161
  ---
196
162
 
@@ -225,7 +191,7 @@ yt-dlp経由でYouTube URLから直接文字起こし。音声のダウンロー
225
191
  ### 話者識別(pyannote-audio)
226
192
  話者IDラベル付きの完全なモノラル話者識別 — チャンネル構成に関わらず、録音全体の話者の切り替えをマークします。組み込みの`--diarize`ステレオフラグ(v2.2.0)およびTinyDiarizeとは異なります。
227
193
 
228
- **実装:** [pyannote-audio](https://github.com/pyannote/pyannote-audio)が必要 — Hugging Faceモデルアクセストークンが必要なPythonベースのライブラリ。whisper.cppパイプラインとは完全に別の依存関係スタック。
194
+ **実装:** [pyannote-audio](https://github.com/pyannote/pyannote-audio)が必要 — Hugging Faceモデルアクセストークンが必要なPythonベースのライブラリ。完全に別の依存関係スタック。
229
195
 
230
196
  **状況:** 独自のセットアップドキュメントを持つオプションの高度機能として計画中。メインパッケージには含めません。
231
197
 
@@ -247,48 +213,43 @@ Whisperの`--translate`フラグは英語のみを対象としています。任
247
213
 
248
214
  ---
249
215
 
216
+ ## ライセンス
217
+
218
+ whisper-windows-mcpはデュアルライセンスを採用しています。
219
+
220
+ **非商用利用:** MIT — 個人・教育・非商用目的での利用は無償です。[LICENSE](LICENSE)をご参照ください。
221
+
222
+ **商用利用:** ビジネス・業務・収益を生む用途には別途商用ライセンス契約が必要です。条件と連絡先は[COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md)をご参照ください。
223
+
224
+ ---
225
+
250
226
  ## 配信
251
227
 
252
- [npm](https://www.npmjs.com/package/whisper-windows-mcp)、[mcpservers.org](https://mcpservers.org)、[Glama](https://glama.ai)で公開中。
228
+ [npm](https://www.npmjs.com/package/whisper-windows-mcp)、[mcpservers.org](https://mcpservers.org)、[Glama](https://glama.ai)、および[awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)(PRサブミット済み)で公開中。
253
229
 
254
230
  ---
255
231
 
256
232
  ## 多言語ドキュメント
257
233
 
258
- 日本語および韓国語ドキュメントは英語と並行して管理されます。各リリース後に英語ドキュメントに合わせて以下のファイルを更新する必要があります:
234
+ 各リリース後に英語ドキュメントに合わせて以下のファイルを更新する必要があります:
259
235
 
260
- **日本語 (`*.ja.md`)**
261
- - `README.ja.md`
262
- - `TROUBLESHOOTING.ja.md`
263
- - `ROADMAP.ja.md`
264
- - `PRIVACY.ja.md`
265
- - `SECURITY.ja.md`
236
+ **日本語 (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
266
237
 
267
- **韓国語 (`*.ko.md`)**
268
- - `README.ko.md`
269
- - `TROUBLESHOOTING.ko.md`
270
- - `ROADMAP.ko.md`
271
- - `PRIVACY.ko.md`
272
- - `SECURITY.ko.md`
238
+ **韓国語 (`*.ko.md`)** — `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
273
239
 
274
- **ベトナム語 (`*.vi.md`)**
275
- - `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
240
+ **ベトナム語 (`*.vi.md`)** — `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
276
241
 
277
- **インドネシア語 (`*.id.md`)**
278
- - `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
242
+ **インドネシア語 (`*.id.md`)** — `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
279
243
 
280
- **ウクライナ語 (`*.uk.md`)**
281
- - `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
244
+ **ウクライナ語 (`*.uk.md`)** — `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
282
245
 
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`
246
+ **ブラジルポルトガル語 (`*.pt-BR.md`)** — `README.pt-BR.md` / `TROUBLESHOOTING.pt-BR.md` / `ROADMAP.pt-BR.md` / `PRIVACY.pt-BR.md` / `SECURITY.pt-BR.md`
285
247
 
286
- **スペイン語 (`*.es.md`)**
287
- - `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
248
+ **スペイン語 (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
288
249
 
289
- **Polish (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
250
+ **ポーランド語 (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
290
251
 
291
- **Romanian (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
252
+ **ルーマニア語 (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
292
253
 
293
254
  他の言語へのコミュニティ貢献を歓迎します。
294
255