whisper-windows-mcp 2.2.2 → 2.4.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.
- package/.github/workflows/ci.yml +24 -0
- package/.github/workflows/publish.yml +24 -0
- package/{LICENSE-COMMERCIAL.md → COMMERCIAL-LICENSE.md} +58 -58
- package/LICENSE +40 -40
- package/PRIVACY.es.md +194 -135
- package/PRIVACY.id.md +194 -135
- package/PRIVACY.ja.md +194 -135
- package/PRIVACY.ko.md +194 -135
- package/PRIVACY.md +194 -135
- package/PRIVACY.pl.md +194 -135
- package/PRIVACY.pt-BR.md +194 -135
- package/PRIVACY.ro.md +194 -135
- package/PRIVACY.uk.md +194 -135
- package/PRIVACY.vi.md +194 -135
- package/README.es.md +80 -48
- package/README.id.md +83 -40
- package/README.ja.md +106 -72
- package/README.ko.md +69 -37
- package/README.md +82 -39
- package/README.pl.md +83 -40
- package/README.pt-BR.md +77 -45
- package/README.ro.md +84 -41
- package/README.uk.md +83 -40
- package/README.vi.md +73 -41
- package/ROADMAP.es.md +131 -45
- package/ROADMAP.id.md +86 -89
- package/ROADMAP.ja.md +93 -108
- package/ROADMAP.ko.md +82 -82
- package/ROADMAP.pl.md +125 -41
- package/ROADMAP.pt-BR.md +87 -87
- package/ROADMAP.ro.md +123 -41
- package/ROADMAP.uk.md +82 -90
- package/ROADMAP.vi.md +87 -87
- package/SECURITY.es.md +76 -47
- package/SECURITY.id.md +76 -47
- package/SECURITY.ja.md +76 -47
- package/SECURITY.ko.md +76 -47
- package/SECURITY.md +33 -4
- package/SECURITY.pl.md +76 -47
- package/SECURITY.pt-BR.md +76 -47
- package/SECURITY.ro.md +76 -47
- package/SECURITY.uk.md +76 -47
- package/SECURITY.vi.md +76 -47
- package/TROUBLESHOOTING.es.md +325 -323
- package/TROUBLESHOOTING.id.md +349 -323
- package/TROUBLESHOOTING.ja.md +415 -286
- package/TROUBLESHOOTING.ko.md +325 -323
- package/TROUBLESHOOTING.pl.md +371 -323
- package/TROUBLESHOOTING.pt-BR.md +325 -323
- package/TROUBLESHOOTING.ro.md +371 -323
- package/TROUBLESHOOTING.uk.md +385 -323
- package/TROUBLESHOOTING.vi.md +325 -323
- package/dist/index.js +743 -289
- package/dist/lib.d.ts +37 -0
- package/dist/lib.js +123 -0
- package/package.json +46 -45
- 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.
|
|
3
|
+
Versi saat ini: **v2.4.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,104 +54,99 @@ 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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
81
|
-
- `
|
|
82
|
-
- Perbaikan output batch — `readBatchProgress` sekarang memindahkan output temp ke tujuan akhir sebelum memvalidasi (ini adalah akar penyebab semua hasil batch "gagal").
|
|
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.
|
|
83
82
|
|
|
84
|
-
**Catatan kompatibilitas flag:** `gpu_device` /
|
|
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+.
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
### ✅ v2.2.2 — Patch
|
|
86
|
+
- Perbaikan lisensi ganda — LICENSE dan LICENSE-COMMERCIAL.md dikoreksi.
|
|
87
|
+
- Koreksi dokumentasi minor.
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
### ✅ v2.3.0 — Kemajuan Otomatis Batch, Arsitektur Privasi, Perluasan Format Output
|
|
90
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.
|
|
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.
|
|
98
92
|
|
|
99
|
-
|
|
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.
|
|
100
101
|
|
|
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.
|
|
102
107
|
|
|
103
|
-
**Perbaikan
|
|
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.
|
|
104
112
|
|
|
105
|
-
**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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`).
|
|
112
120
|
|
|
113
|
-
|
|
121
|
+
### ✅ v2.4.0 — Penguatan, Pelindung Batas Waktu Latar Depan, Suite Pengujian & CI
|
|
114
122
|
|
|
115
|
-
|
|
123
|
+
Sebuah pas keamanan/ketangguhan; migrasi Bun yang direncanakan dipindahkan ke v2.5.0.
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
**Keamanan & kebenaran:**
|
|
126
|
+
- Perbaikan kontainmen jalur `switch_model` — direktori berprefiks saudara (mis. `…\models-evil`) sebelumnya dapat memenuhi pemeriksaan "di dalam direktori model" melalui `startsWith` yang naif; diganti dengan kontainmen ternormalisasi berbasis `relative()`. Menutup celah yang dijelaskan SECURITY.md.
|
|
127
|
+
- Gerbang privasi/persetujuan dikunci **per operasi** (alat + argumen) — mengonfirmasi satu transkripsi tidak lagi dapat memenuhi gerbang operasi yang berbeda.
|
|
128
|
+
- `download_model` menolak unduhan terpotong (pemeriksaan Content-Length) sebelum mempromosikan file `.part`. (Verifikasi penuh digest SHA256 dilacak untuk pas berikutnya.)
|
|
129
|
+
- Koersi input — parameter alat numerik yang bukan angka asli dibuang alih-alih diserahkan ke whisper-cli sebagai `NaN`.
|
|
119
130
|
|
|
120
|
-
|
|
131
|
+
**Ketangguhan:**
|
|
132
|
+
- **Pelindung batas waktu latar depan** — file yang cukup panjang untuk melampaui batas waktu alat MCP ~4 menit milik Claude Desktop dalam mode pemblokiran dideteksi di awal dan dirutekan ke latar belakang alih-alih kehabisan waktu secara diam-diam. Ambang batas dapat dikonfigurasi melalui `WHISPER_FOREGROUND_MAX_SEC`. Estimasi waktu diperbaiki (estimasi GPU lama terlalu rendah; biaya pemuatan ulang model yang dominan kini dimodelkan — diukur, bukan ditebak).
|
|
133
|
+
- Penulisan status pekerjaan/batch atomik (file temp + rename) sehingga pembaca konkuren tidak dapat melihat file JSON yang robek.
|
|
134
|
+
- ID pekerjaan/batch/temp anti-tabrakan (bersufiks UUID).
|
|
135
|
+
- Penghentian SIGINT/SIGTERM yang anggun yang membersihkan file temp mode pemblokiran.
|
|
121
136
|
|
|
122
|
-
|
|
123
|
-
-
|
|
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
|
|
137
|
+
**Pemilihan perangkat GPU:**
|
|
138
|
+
- Variabel lingkungan `WHISPER_GPU_DEVICE`, dan `gpu_device` kini disalurkan melalui `generate_subtitles` dan pas deteksi bahasa (sebelumnya hanya `transcribe_audio`). `check_config` melaporkan perangkat aktif. `check_system` tidak lagi salah melaporkan masalah driver ketika `wmic` (usang di Windows 11 24H2+) tidak mengembalikan apa pun.
|
|
127
139
|
|
|
128
|
-
|
|
140
|
+
**Kualitas:**
|
|
141
|
+
- Suite pengujian unit `node:test` atas logika murni (kontainmen jalur, penguncian gerbang, penulisan atomik, koersi input, estimasi batas waktu), nol dependensi tambahan, ditambah alur kerja CI GitHub Actions yang menjalankannya pada setiap push/PR.
|
|
129
142
|
|
|
130
|
-
|
|
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.
|
|
143
|
+
**Diidentifikasi untuk rilis mendatang:** jalur model persisten (mis. `whisper-server` milik whisper.cpp) untuk menghilangkan biaya pemuatan ulang model yang dibayar pada setiap transkripsi — peningkatan throughput besar untuk pekerjaan batch/arsip.
|
|
149
144
|
|
|
150
145
|
---
|
|
151
146
|
|
|
152
|
-
## Direncanakan — Migrasi Bun
|
|
147
|
+
## Direncanakan — v2.5.0: Migrasi Bun
|
|
153
148
|
|
|
154
|
-
Migrasikan runtime dari Node.js ke [Bun](https://bun.sh)
|
|
149
|
+
Migrasikan runtime dari Node.js ke [Bun](https://bun.sh).
|
|
155
150
|
|
|
156
151
|
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
152
|
|
|
@@ -167,30 +162,25 @@ Karena Claude Desktop menelurkan server MCP baru setiap kali sesi dimulai, waktu
|
|
|
167
162
|
- Semua perilaku alat dan format output
|
|
168
163
|
- Konfigurasi Claude Desktop untuk pengguna akhir
|
|
169
164
|
|
|
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
165
|
---
|
|
173
166
|
|
|
174
|
-
##
|
|
167
|
+
## Direncanakan — v2.6.0: Format Output Lanjutan untuk Integrasi Alat Eksternal
|
|
175
168
|
|
|
176
|
-
|
|
169
|
+
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.
|
|
177
170
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
**Penggunaan komersial:** Diperlukan perjanjian lisensi komersial terpisah. Lihat [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
|
|
181
|
-
|
|
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.
|
|
171
|
+
---
|
|
183
172
|
|
|
184
|
-
## Direncanakan — v2.
|
|
173
|
+
## Direncanakan — v2.7.0: Mode Transkripsi Mikrofon Langsung
|
|
185
174
|
|
|
186
|
-
|
|
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.
|
|
175
|
+
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
176
|
|
|
189
|
-
|
|
190
|
-
|
|
177
|
+
**Batasan desain:**
|
|
178
|
+
- Pemilihan perangkat harus eksplisit — tidak ada penangkapan perangkat default yang diam
|
|
179
|
+
- Pengguna harus dapat menghentikan stream melalui interaksi Claude Desktop
|
|
180
|
+
- Tidak boleh bertentangan dengan batasan satu-instance-whisper-setiap-saat
|
|
181
|
+
- Trade-off latensi vs akurasi harus dapat dikonfigurasi pengguna
|
|
191
182
|
|
|
192
|
-
|
|
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.
|
|
183
|
+
**Status:** Fase desain. Bergantung pada API streaming yang stabil di whisper.cpp.
|
|
194
184
|
|
|
195
185
|
---
|
|
196
186
|
|
|
@@ -225,7 +215,7 @@ Untuk pengguna yang mengelola proyek pengeditan video besar dengan direktori kli
|
|
|
225
215
|
### Diarisasi Pembicara (pyannote-audio)
|
|
226
216
|
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
217
|
|
|
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
|
|
218
|
+
**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
219
|
|
|
230
220
|
**Status:** Fitur lanjutan opsional dengan dokumentasi pengaturannya sendiri. Tidak termasuk dalam paket utama.
|
|
231
221
|
|
|
@@ -247,24 +237,31 @@ Pipeline pasca-pemrosesan:
|
|
|
247
237
|
|
|
248
238
|
---
|
|
249
239
|
|
|
240
|
+
## Lisensi
|
|
241
|
+
|
|
242
|
+
whisper-windows-mcp menggunakan lisensi ganda.
|
|
243
|
+
|
|
244
|
+
**Penggunaan non-komersial:** MIT — gratis untuk penggunaan pribadi, pendidikan, dan non-komersial. Lihat [LICENSE](LICENSE).
|
|
245
|
+
|
|
246
|
+
**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.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
250
|
## Distribusi
|
|
251
251
|
|
|
252
|
-
Tersedia di [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org),
|
|
252
|
+
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
253
|
|
|
254
254
|
---
|
|
255
255
|
|
|
256
256
|
## Dokumentasi Multibahasa
|
|
257
257
|
|
|
258
|
-
|
|
258
|
+
File-file berikut harus diperbarui agar sesuai dengan dokumen bahasa Inggris setelah setiap rilis:
|
|
259
259
|
|
|
260
|
-
**Jepang (`*.ja.md`)**
|
|
261
|
-
- `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
260
|
+
**Jepang (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
262
261
|
|
|
263
|
-
**Korea (`*.ko.md`)**
|
|
264
|
-
- `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
|
|
262
|
+
**Korea (`*.ko.md`)** — `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
|
|
265
263
|
|
|
266
|
-
**Vietnam (`*.vi.md`)**
|
|
267
|
-
- `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
264
|
+
**Vietnam (`*.vi.md`)** — `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
268
265
|
|
|
269
266
|
**Indonesia (`*.id.md`)** — `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
|
|
270
267
|
|
|
@@ -274,9 +271,9 @@ Dokumentasi bahasa Jepang, Korea, Vietnam, dan Indonesia dipertahankan secara pa
|
|
|
274
271
|
|
|
275
272
|
**Spanyol (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
276
273
|
|
|
277
|
-
**
|
|
274
|
+
**Polandia (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
278
275
|
|
|
279
|
-
**
|
|
276
|
+
**Rumania (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
280
277
|
|
|
281
278
|
Kontribusi komunitas untuk bahasa lain disambut.
|
|
282
279
|
|
package/ROADMAP.ja.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# whisper-windows-mcp — ロードマップ
|
|
2
2
|
|
|
3
|
-
現在のバージョン:**v2.
|
|
3
|
+
現在のバージョン:**v2.4.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と
|
|
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,104 @@ FFprobeを使用した`analyze_media`ツール:時間、サイズ、コーデ
|
|
|
54
54
|
### ✅ v2.0.0 — Unicodeセーフパス + バックグラウンドSRT
|
|
55
55
|
**Unicodeファイル名:** 非ASCII文字を含むファイル名でバックグラウンド文字起こしがサイレントに失敗する問題を修正。ジョブIDベースのサニタイズされた一時パスに出力を書き込み、完了後に正しい宛先に移動するよう変更。
|
|
56
56
|
|
|
57
|
-
**バックグラウンドモードでのSRT:** `spawnDetached`が要求されたフォーマットに関わらず`-otxt
|
|
57
|
+
**バックグラウンドモードでのSRT:** `spawnDetached`が要求されたフォーマットに関わらず`-otxt`をハードコードしていた問題を修正。`spawnDetached`に`outputFormat`パラメータを追加し、バックグラウンドモードで`text`と`srt`出力をサポート。
|
|
58
58
|
|
|
59
59
|
### ✅ v2.0.1 — バグ修正(v2.2.0に含む)
|
|
60
|
-
- `buildArgs`と`spawnDetached`の両方で`--max-context 0`をハードコード —
|
|
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
|
|
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
|
|
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
|
-
- `
|
|
82
|
-
- バッチ出力の修正 — `readBatchProgress`が検証前に一時出力を最終宛先に移動するよう修正(バッチ「失敗」の根本原因)。
|
|
81
|
+
- バッチ出力の修正 — `readBatchProgress`が検証前に一時出力を最終宛先に移動するよう修正。
|
|
83
82
|
|
|
84
|
-
**フラグ互換性の注意:** `gpu_device` /
|
|
83
|
+
**フラグ互換性の注意:** `gpu_device` / `--device`はwhisper.cpp v1.8.4で追加されました。リリースに含まれるビルド済みVulkanバイナリはv1.8.3世代 — このパラメータはツールで受け付けられますが、ユーザーがv1.8.4以降のバイナリに更新するまで効果はありません。
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
### ✅ v2.2.2 — パッチ
|
|
86
|
+
- デュアルライセンス修正 — LICENSEとLICENSE-COMMERCIAL.mdを修正。
|
|
87
|
+
- 軽微なドキュメント修正。
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
### ✅ v2.3.0 — バッチ自動進行、プライバシーアーキテクチャ、出力フォーマット拡張
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
## 重大なバグ — バッチ自動進行(確認済み、修正待ち)
|
|
94
|
-
|
|
95
|
-
### ポーリングなしでバッチが自動進行しない
|
|
96
|
-
|
|
97
|
-
`start_batch`はファイル間でキューを自律的に進行させません。バッチは`check_batch_progress`が呼ばれた場合のみ進行します。ポーリングなしでは、各ファイル完了後にバッチが無期限に停止します — whisper-cli.exeが終了しても新しいプロセスは起動せず、`check_batch_progress`が呼ばれるまでキューは進行しません。
|
|
91
|
+
**バッチ自動進行(重大バグ修正):** `start_batch`はキューを進行させるために積極的なポーリングが必要でした。生成されたwhisper-cli子プロセスに`on('exit')`ハンドラーをアタッチするよう修正。プロセス終了時に終了コールバックを介して即座に自動進行し、ポーリングオーバーヘッドとAPI呼び出しコストはゼロ。同時発生する終了ハンドラーと`check_batch_progress`呼び出しによる二重スポーンを防ぐミューテックスを追加。
|
|
98
92
|
|
|
99
|
-
|
|
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
|
+
- トランスクリプトを返すすべてのツールのツール説明にプライバシー警告を追加。
|
|
100
101
|
|
|
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"`に変更。プレーンテキストはオプトイン。
|
|
102
107
|
|
|
103
|
-
|
|
108
|
+
**バグ修正:**
|
|
109
|
+
- Bug 1:`output_format`がバックグラウンドジョブに転送されていなかった — 要求されたフォーマットに関わらずデフォルトの`"text"`が使用されていた。修正済み。
|
|
110
|
+
- Bug 2:バックグラウンドジョブ出力移動操作でのサイレントな`catch {}`がエラーを握りつぶしていた。移動後に明示的な`existsSync`チェックを追加して詳細な失敗メッセージを表示。
|
|
111
|
+
- Bug 3:非プライバシーバックグラウンドジョブで同意ゲートが`check_progress`に意図的に延期される理由を文書化するコメントを追加。
|
|
104
112
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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`にフォールバック)。
|
|
112
120
|
|
|
113
|
-
|
|
121
|
+
### ✅ v2.4.0 — 堅牢化、フォアグラウンドガード、テストスイート&CI
|
|
114
122
|
|
|
115
|
-
|
|
123
|
+
セキュリティ/堅牢性のための見直し。予定されていたBun移行はv2.5.0に延期されました。
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
**セキュリティと正確性:**
|
|
126
|
+
- `switch_model`のパス封じ込め修正 — 兄弟プレフィックスのディレクトリ(例:`…\models-evil`)が、以前は単純な`startsWith`によって「モデルディレクトリ内」チェックを満たし得ましたが、正規化された`relative()`ベースの封じ込めに置き換えました。SECURITY.mdが記述する脱出経路を塞ぎます。
|
|
127
|
+
- プライバシー/同意ゲートを**操作ごと**(ツール+引数)にキー化 — ある文字起こしを確認しても、別の操作のゲートを満たすことはできなくなりました。
|
|
128
|
+
- `download_model`は、`.part`ファイルを昇格させる前に、切り詰められたダウンロードを拒否します(Content-Lengthチェック)。(完全なSHA256ダイジェスト検証は後のパスで対応予定。)
|
|
129
|
+
- 入力の強制変換 — 実際の数値ではない数値型ツールパラメータは、`NaN`としてwhisper-cliに渡されるのではなく破棄されます。
|
|
119
130
|
|
|
120
|
-
|
|
131
|
+
**堅牢性:**
|
|
132
|
+
- **フォアグラウンドタイムアウトガード** — ブロッキングモードでClaude Desktopの約4分のMCPツールタイムアウトを超えるほど長いファイルを事前に検出し、静かにタイムアウトする代わりにバックグラウンドにルーティングします。しきい値は`WHISPER_FOREGROUND_MAX_SEC`で設定可能。時間推定を修正しました(旧GPU推定は大幅に過小評価していました。支配的なモデル再読み込みコストをモデル化 — 推測ではなく実測)。
|
|
133
|
+
- ジョブ/バッチ状態のアトミックな書き込み(一時ファイル+リネーム)により、並行リーダーが破損したJSONファイルを観測できないようにしました。
|
|
134
|
+
- 衝突しないジョブ/バッチ/一時ID(UUIDサフィックス付き)。
|
|
135
|
+
- ブロッキングモードの一時ファイルをクリーンアップする、SIGINT/SIGTERMの正常なシャットダウン。
|
|
121
136
|
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
- トランスクリプトテキストはどのツールレスポンスにも含まれない
|
|
125
|
-
- Claudeはトランスクリプトの内容を読み取り、分析、または中継できない
|
|
126
|
-
- トランスクリプトはローカルの`.txt`ファイルとしてのみ存在する
|
|
137
|
+
**GPUデバイス選択:**
|
|
138
|
+
- `WHISPER_GPU_DEVICE`環境変数、および`gpu_device`が`generate_subtitles`と言語検出パスにも適用されるようになりました(以前は`transcribe_audio`のみ)。`check_config`はアクティブなデバイスを報告します。`check_system`は、`wmic`(Windows 11 24H2+で非推奨)が何も返さない場合にドライバーの問題を誤って報告しなくなりました。
|
|
127
139
|
|
|
128
|
-
|
|
140
|
+
**品質:**
|
|
141
|
+
- 純粋なロジック(パス封じ込め、ゲートのキー化、アトミック書き込み、入力強制変換、タイムアウト推定)を対象とした`node:test`ユニットテストスイート。追加依存関係はゼロ。さらに、すべてのpush/PRで実行するGitHub Actions CIワークフロー。
|
|
129
142
|
|
|
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`を実行する必要があります。
|
|
143
|
+
**将来のリリースで対応予定:** 永続モデルパス(例:whisper.cppの`whisper-server`)により、毎回の文字起こしで発生するモデル再読み込みコストを排除 — バッチ/アーカイブ作業で大きなスループット向上。
|
|
149
144
|
|
|
150
145
|
---
|
|
151
146
|
|
|
152
|
-
## 予定 — Bunへの移行
|
|
147
|
+
## 予定 — v2.5.0:Bunへの移行
|
|
153
148
|
|
|
154
|
-
|
|
149
|
+
ランタイムをNode.jsから[Bun](https://bun.sh)に移行します。
|
|
155
150
|
|
|
156
151
|
Claude Desktopはセッション起動のたびにMCPサーバーを新しく生成するため、起動時間はクリティカルパスにあります。BunはTypeScriptをネイティブにコンパイルステップなしで実行し、Node.jsより大幅に高速に起動し、I/Oも高速です。
|
|
157
152
|
|
|
158
153
|
**変更点:**
|
|
159
|
-
- `tsc`のビルドステップと`dist
|
|
154
|
+
- `tsc`のビルドステップと`dist/`ディレクトリを削除
|
|
160
155
|
- ユーザーがTypeScriptソースを直接実行
|
|
161
156
|
- `tsconfig.json`がオプション化
|
|
162
157
|
- `package.json`スクリプトを更新
|
|
@@ -167,30 +162,25 @@ Claude Desktopはセッション起動のたびにMCPサーバーを新しく生
|
|
|
167
162
|
- すべてのツールの動作と出力形式
|
|
168
163
|
- エンドユーザーのClaude Desktop設定
|
|
169
164
|
|
|
170
|
-
**プライバシー対応後、v2.3.0より前に移行する理由:** コードベースは今が最も移行しやすい状態です。ツールを追加した後では移行の作業量が増えるだけでメリットはありません。プライバシーアーキテクチャは前述の通り先行してリリースする必要があります。
|
|
171
|
-
|
|
172
165
|
---
|
|
173
166
|
|
|
174
|
-
##
|
|
167
|
+
## 予定 — v2.6.0:外部ツール連携向け拡張出力フォーマット
|
|
175
168
|
|
|
176
|
-
|
|
169
|
+
下流の分析と連携ワークフローを対象とした拡張出力フォーマットサポート。正確なスコープはv2.3.0後のユーザーフィードバックに基づいて定義予定。
|
|
177
170
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
**商用利用:** ビジネス・業務・収益を生む用途には別途商用ライセンス契約が必要です。条件と連絡先は[LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md)をご参照ください。
|
|
181
|
-
|
|
182
|
-
規制産業向けの`WHISPER_PRIVACY_MODE`は将来のリリースで提供予定です。現時点での規制対象コンテンツのワークフローについては[PRIVACY.md](PRIVACY.md)をご参照ください。
|
|
171
|
+
---
|
|
183
172
|
|
|
184
|
-
## 予定 — v2.
|
|
173
|
+
## 予定 — v2.7.0:ライブマイク文字起こしモード
|
|
185
174
|
|
|
186
|
-
|
|
187
|
-
SRTに加えてWebVTT(`.vtt`)出力をサポート。VTTはYouTube、HTML5 `<video>`、ほとんどの現代的なプレーヤーで使用されるウェブ標準です。whisper-cliはネイティブにサポートしています。`transcribe_audio`、`generate_subtitles`、`spawnDetached`に`vtt`を有効な出力フォーマットとして追加。`buildArgs`と関連するすべてのツールスキーマ、README、日本語ドキュメントを更新します。
|
|
175
|
+
ライブマイク入力からのリアルタイム文字起こし。選択した録音デバイスからの音声をチャンクでwhisperにストリーミングし、完了したセグメントをローリングトランスクリプトとして返す。
|
|
188
176
|
|
|
189
|
-
|
|
190
|
-
|
|
177
|
+
**設計制約:**
|
|
178
|
+
- デバイス選択は明示的であること — サイレントなデフォルトデバイスのキャプチャは不可
|
|
179
|
+
- Claude Desktopの操作でストリームを停止できること
|
|
180
|
+
- 1つのwhisperインスタンスという制約と競合しないこと
|
|
181
|
+
- レイテンシと精度のトレードオフはユーザーが設定可能であること
|
|
191
182
|
|
|
192
|
-
|
|
193
|
-
`-ocsv`によるCSV(`.csv`)出力。セグメントタイミング付きの構造化表形式データ — 下流分析、クリップ位置合わせワークフロー、スプレッドシートツールへのインポートに有用です。実装コストはゼロ — ネイティブCLIフラグです。
|
|
183
|
+
**状況:** 設計フェーズ。whisper.cppの安定したストリーミングAPIに依存。
|
|
194
184
|
|
|
195
185
|
---
|
|
196
186
|
|
|
@@ -225,7 +215,7 @@ yt-dlp経由でYouTube URLから直接文字起こし。音声のダウンロー
|
|
|
225
215
|
### 話者識別(pyannote-audio)
|
|
226
216
|
話者IDラベル付きの完全なモノラル話者識別 — チャンネル構成に関わらず、録音全体の話者の切り替えをマークします。組み込みの`--diarize`ステレオフラグ(v2.2.0)およびTinyDiarizeとは異なります。
|
|
227
217
|
|
|
228
|
-
**実装:** [pyannote-audio](https://github.com/pyannote/pyannote-audio)が必要 — Hugging Faceモデルアクセストークンが必要なPython
|
|
218
|
+
**実装:** [pyannote-audio](https://github.com/pyannote/pyannote-audio)が必要 — Hugging Faceモデルアクセストークンが必要なPythonベースのライブラリ。完全に別の依存関係スタック。
|
|
229
219
|
|
|
230
220
|
**状況:** 独自のセットアップドキュメントを持つオプションの高度機能として計画中。メインパッケージには含めません。
|
|
231
221
|
|
|
@@ -247,48 +237,43 @@ Whisperの`--translate`フラグは英語のみを対象としています。任
|
|
|
247
237
|
|
|
248
238
|
---
|
|
249
239
|
|
|
240
|
+
## ライセンス
|
|
241
|
+
|
|
242
|
+
whisper-windows-mcpはデュアルライセンスを採用しています。
|
|
243
|
+
|
|
244
|
+
**非商用利用:** MIT — 個人・教育・非商用目的での利用は無償です。[LICENSE](LICENSE)をご参照ください。
|
|
245
|
+
|
|
246
|
+
**商用利用:** ビジネス・業務・収益を生む用途には別途商用ライセンス契約が必要です。条件と連絡先は[COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md)をご参照ください。
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
250
|
## 配信
|
|
251
251
|
|
|
252
|
-
[npm](https://www.npmjs.com/package/whisper-windows-mcp)、[mcpservers.org](https://mcpservers.org)、[Glama](https://glama.ai)
|
|
252
|
+
[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
253
|
|
|
254
254
|
---
|
|
255
255
|
|
|
256
256
|
## 多言語ドキュメント
|
|
257
257
|
|
|
258
|
-
|
|
258
|
+
各リリース後に英語ドキュメントに合わせて以下のファイルを更新する必要があります:
|
|
259
259
|
|
|
260
|
-
**日本語 (`*.ja.md`)**
|
|
261
|
-
- `README.ja.md`
|
|
262
|
-
- `TROUBLESHOOTING.ja.md`
|
|
263
|
-
- `ROADMAP.ja.md`
|
|
264
|
-
- `PRIVACY.ja.md`
|
|
265
|
-
- `SECURITY.ja.md`
|
|
260
|
+
**日本語 (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
266
261
|
|
|
267
|
-
**韓国語 (`*.ko.md`)**
|
|
268
|
-
- `README.ko.md`
|
|
269
|
-
- `TROUBLESHOOTING.ko.md`
|
|
270
|
-
- `ROADMAP.ko.md`
|
|
271
|
-
- `PRIVACY.ko.md`
|
|
272
|
-
- `SECURITY.ko.md`
|
|
262
|
+
**韓国語 (`*.ko.md`)** — `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
|
|
273
263
|
|
|
274
|
-
**ベトナム語 (`*.vi.md`)**
|
|
275
|
-
- `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
264
|
+
**ベトナム語 (`*.vi.md`)** — `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
276
265
|
|
|
277
|
-
**インドネシア語 (`*.id.md`)**
|
|
278
|
-
- `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
|
|
266
|
+
**インドネシア語 (`*.id.md`)** — `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
|
|
279
267
|
|
|
280
|
-
**ウクライナ語 (`*.uk.md`)**
|
|
281
|
-
- `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
|
|
268
|
+
**ウクライナ語 (`*.uk.md`)** — `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
|
|
282
269
|
|
|
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`
|
|
270
|
+
**ブラジルポルトガル語 (`*.pt-BR.md`)** — `README.pt-BR.md` / `TROUBLESHOOTING.pt-BR.md` / `ROADMAP.pt-BR.md` / `PRIVACY.pt-BR.md` / `SECURITY.pt-BR.md`
|
|
285
271
|
|
|
286
|
-
**スペイン語 (`*.es.md`)**
|
|
287
|
-
- `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
272
|
+
**スペイン語 (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
288
273
|
|
|
289
|
-
|
|
274
|
+
**ポーランド語 (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
290
275
|
|
|
291
|
-
|
|
276
|
+
**ルーマニア語 (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
292
277
|
|
|
293
278
|
他の言語へのコミュニティ貢献を歓迎します。
|
|
294
279
|
|