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.
- package/LICENSE +20 -1
- package/LICENSE-COMMERCIAL.md +58 -0
- package/PRIVACY.es.md +135 -0
- package/PRIVACY.id.md +135 -0
- package/PRIVACY.ja.md +135 -0
- package/PRIVACY.ko.md +135 -0
- package/PRIVACY.md +135 -0
- package/PRIVACY.pl.md +135 -0
- package/PRIVACY.pt-BR.md +135 -0
- package/PRIVACY.ro.md +135 -0
- package/PRIVACY.uk.md +135 -0
- package/PRIVACY.vi.md +135 -0
- package/README.es.md +393 -0
- package/README.id.md +393 -0
- package/README.ja.md +402 -397
- package/README.ko.md +393 -0
- package/README.md +393 -388
- package/README.pl.md +393 -0
- package/README.pt-BR.md +393 -0
- package/README.ro.md +393 -0
- package/README.uk.md +393 -0
- package/README.vi.md +393 -0
- package/ROADMAP.es.md +200 -0
- package/ROADMAP.id.md +289 -0
- package/ROADMAP.ja.md +301 -268
- package/ROADMAP.ko.md +286 -0
- package/ROADMAP.pl.md +198 -0
- package/ROADMAP.pt-BR.md +286 -0
- package/ROADMAP.ro.md +200 -0
- package/ROADMAP.uk.md +290 -0
- package/ROADMAP.vi.md +286 -0
- package/SECURITY.es.md +47 -0
- package/SECURITY.id.md +47 -0
- package/SECURITY.ja.md +47 -0
- package/SECURITY.ko.md +47 -0
- package/SECURITY.md +14 -2
- package/SECURITY.pl.md +47 -0
- package/SECURITY.pt-BR.md +47 -0
- package/SECURITY.ro.md +47 -0
- package/SECURITY.uk.md +47 -0
- package/SECURITY.vi.md +47 -0
- package/TROUBLESHOOTING.es.md +323 -0
- package/TROUBLESHOOTING.id.md +323 -0
- package/TROUBLESHOOTING.ko.md +323 -0
- package/TROUBLESHOOTING.pl.md +323 -0
- package/TROUBLESHOOTING.pt-BR.md +323 -0
- package/TROUBLESHOOTING.ro.md +323 -0
- package/TROUBLESHOOTING.uk.md +323 -0
- package/TROUBLESHOOTING.vi.md +323 -0
- package/glama.json +6 -0
- package/package.json +10 -3
- package/patch_roadmaps.py +72 -0
package/ROADMAP.id.md
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# whisper-windows-mcp — Peta Jalan
|
|
2
|
+
|
|
3
|
+
Versi saat ini: **v2.2.0**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prinsip Desain
|
|
8
|
+
|
|
9
|
+
Prinsip-prinsip ini mengatur setiap keputusan dalam proyek ini dan lebih diprioritaskan dari kecepatan penambahan fitur.
|
|
10
|
+
|
|
11
|
+
**Minimalkan penggunaan Claude API.** Seluruh alur kerja transkripsi — pemindaian, analisis, antrian, menjalankan, validasi, penggantian model — harus dapat dieksekusi dengan sesedikit mungkin interaksi Claude. Alat ini harus sepenuhnya berfungsi untuk pengguna Claude paket gratis yang tidak membayar langganan Pro atau Max. Setiap panggilan alat menghabiskan anggaran penggunaan. Rancang sesuai.
|
|
12
|
+
|
|
13
|
+
**Satu instance whisper setiap saat.** Jangan pernah menelurkan proses whisper-cli.exe kedua saat satu sedang berjalan. Kunci proses bersifat wajib dan tidak dapat dinegosiasikan.
|
|
14
|
+
|
|
15
|
+
**Utamakan lokal, privat secara default.** Tidak ada audio yang pernah meninggalkan mesin. Tidak diperlukan API cloud untuk fungsionalitas inti. Integrasi opsional (misalnya unduhan model Hugging Face) harus didokumentasikan dengan jelas sebagai opsional.
|
|
16
|
+
|
|
17
|
+
**Kontrol pengguna yang eksplisit.** Tidak ada operasi massal yang diam. Tindakan yang merusak atau tidak dapat dibalik memerlukan konfirmasi. Pengguna harus selalu tahu apa yang akan terjadi sebelum itu terjadi.
|
|
18
|
+
|
|
19
|
+
**Jalur aman Unicode.** Semua I/O file harus menangani nama file non-ASCII dengan benar, termasuk bahasa Indonesia, Jepang, Cina, emoji, tanda kurung, dan karakter khusus lainnya.
|
|
20
|
+
|
|
21
|
+
**Modular dan dapat dikombinasikan.** Alat bersifat independen. Pengguna menggunakan apa yang mereka butuhkan. Tidak ada fitur yang harus memerlukan fitur lain kecuali tidak dapat dihindari.
|
|
22
|
+
|
|
23
|
+
**Optimasi sebelum fitur.** Saat ragu antara menambahkan fitur dan mengurangi beban sistem atau jumlah panggilan API, kurangi beban. Sesi optimasi besar itu mahal. Rancang arsitektur dengan benar sejak awal.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Selesai
|
|
28
|
+
|
|
29
|
+
### ✅ v1.3.1 — Kunci Proses
|
|
30
|
+
Menambahkan pemeriksaan `isWhisperRunning()` menggunakan `tasklist /FI` sebelum menelurkan transkripsi apa pun. Mengembalikan kesalahan yang jelas dengan instruksi Task Manager daripada menelurkan proses yang bersaing.
|
|
31
|
+
|
|
32
|
+
### ✅ v1.4.0 — Akselerasi GPU Vulkan
|
|
33
|
+
Mengkompilasi whisper.cpp dari sumber dengan `-DGGML_VULKAN=ON` menggunakan VS Build Tools 2022 dan Vulkan SDK. Binary Vulkan yang sudah dikompilasi didistribusikan sebagai `whisper-vulkan-win-x64.zip`.
|
|
34
|
+
|
|
35
|
+
**Hasil pada AMD Radeon RX Vega 56:** Utilisasi GPU rata-rata ~16%. File 58 menit selesai dalam ~4.5 menit di GPU vs ~88 menit hanya CPU.
|
|
36
|
+
|
|
37
|
+
### ✅ v1.5.0 — Diagnostik Sistem
|
|
38
|
+
Alat `check_system`: Deteksi GPU via `wmic`, verifikasi Vulkan DLL, pelaporan VRAM, rekomendasi ukuran model.
|
|
39
|
+
|
|
40
|
+
### ✅ v1.6.0 — Pra-Analisis File
|
|
41
|
+
Alat `analyze_media` via FFprobe: durasi, ukuran, codec, status transkripsi, perkiraan waktu CPU dan GPU. Pemindaian file tunggal atau folder dengan opsi pengurutan.
|
|
42
|
+
|
|
43
|
+
### ✅ v1.7.0 — Transkripsi Latar Belakang + Visibilitas Kemajuan
|
|
44
|
+
Arsitektur proses terpisah: `transcribe_audio` dengan `background=true` menelurkan whisper sebagai proses terpisah dan segera mengembalikan ID tugas. `check_progress` mengurai timestamp segmen stderr whisper untuk persentase dan ETA real-time.
|
|
45
|
+
|
|
46
|
+
### ✅ v1.8.0 — Batch Berurutan dengan Validasi
|
|
47
|
+
`start_batch` dan `check_batch_progress`: pemrosesan berurutan otomatis, validasi transkripsi (deteksi output kosong/pendek), kemajuan antrian otomatis, timestamp kemajuan per file.
|
|
48
|
+
|
|
49
|
+
### ✅ v1.9.0 — Dukungan Multibahasa dan Terjemahan
|
|
50
|
+
`generate_subtitles` dengan deteksi `language=auto` dan output SRT ganda `translate_to_english=true`. Menambahkan dukungan format `.3gp` dan `.ts`. `language=auto` juga tersedia di `transcribe_audio`.
|
|
51
|
+
|
|
52
|
+
**Keterbatasan yang diketahui:** Terjemahan bawaan Whisper hanya menargetkan bahasa Inggris. Memerlukan model `large-v3` untuk bahasa non-Inggris — model khusus bahasa Inggris (`*.en.bin`) menghasilkan `[FOREIGN]` pada audio non-Inggris.
|
|
53
|
+
|
|
54
|
+
### ✅ v2.0.0 — Jalur Aman Unicode + SRT Latar Belakang
|
|
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
|
+
|
|
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.
|
|
58
|
+
|
|
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.
|
|
61
|
+
- `--no-speech-thold 0.6` dikodekan keras di kedua fungsi — segmen di bawah ambang kepercayaan diperlakukan sebagai keheningan daripada konten yang dihalusinasi.
|
|
62
|
+
- Validasi jalur (`validateInputPath`) — menolak jalur UNC dan traversal `..`.
|
|
63
|
+
- Penjaga ukuran file `MAX_FILE_SIZE_MB = 10240`.
|
|
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`.
|
|
66
|
+
|
|
67
|
+
### ✅ v2.1.0 — Suite Manajemen Model (dikirimkan dalam v2.2.0)
|
|
68
|
+
- `WHISPER_MODEL` diubah dari `const` ke `let` (dapat diubah dalam sesi).
|
|
69
|
+
- `MODEL_REGISTRY` — 16 model, varian presisi penuh dan terkuantisasi, URL unduhan Hugging Face.
|
|
70
|
+
- `ALLOWED_HF_PREFIXES` — daftar putih URL yang membatasi unduhan ke namespace `ggerganov/whisper.cpp` dan `ggml-org`.
|
|
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).
|
|
73
|
+
- Alat `switch_model` — memvalidasi ekstensi `.bin`, batasan direktori, pemeriksaan kunci proses.
|
|
74
|
+
- `recommendedModel()` diperbarui untuk merekomendasikan `large-v3-turbo` untuk VRAM 6GB+.
|
|
75
|
+
|
|
76
|
+
### ✅ v2.2.0 — Perluasan Kualitas, Parameter, dan Hardware (saat ini)
|
|
77
|
+
- Interface `WhisperOptions` menggantikan argumen posisional di `buildArgs`.
|
|
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
|
+
- 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.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Direncanakan — Migrasi Bun
|
|
153
|
+
|
|
154
|
+
Migrasikan runtime dari Node.js ke [Bun](https://bun.sh) setelah arsitektur privasi selesai dan sebelum penambahan fitur v2.3.0.
|
|
155
|
+
|
|
156
|
+
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
|
+
|
|
158
|
+
**Yang berubah:**
|
|
159
|
+
- Menghilangkan langkah build `tsc` dan direktori `dist/`
|
|
160
|
+
- Pengguna menjalankan source TypeScript secara langsung
|
|
161
|
+
- `tsconfig.json` menjadi opsional
|
|
162
|
+
- Skrip `package.json` diperbarui
|
|
163
|
+
- Alur kerja publish npm diperbarui
|
|
164
|
+
|
|
165
|
+
**Yang tidak berubah:**
|
|
166
|
+
- Source code `src/index.ts` — Bun kompatibel dengan TypeScript yang ada dan API bawaan Node.js
|
|
167
|
+
- Semua perilaku alat dan format output
|
|
168
|
+
- Konfigurasi Claude Desktop untuk pengguna akhir
|
|
169
|
+
|
|
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
|
+
---
|
|
173
|
+
|
|
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).
|
|
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.
|
|
183
|
+
|
|
184
|
+
## Direncanakan — v2.3.0: Perluasan Format Output
|
|
185
|
+
|
|
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.
|
|
188
|
+
|
|
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.
|
|
191
|
+
|
|
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.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Direncanakan — Rilis Mendatang
|
|
198
|
+
|
|
199
|
+
### TinyDiarize
|
|
200
|
+
Dukungan flag `--tinydiarize` dengan varian model yang mendukung `tdrz` (misalnya `large-v2-tdrz`). Berbeda dengan flag `--diarize` stereo, TinyDiarize bekerja pada rekaman mono. Memerlukan unduhan varian model khusus. Akurasi lebih rendah dari diarisasi berbasis pyannote tetapi nol dependensi tambahan di luar file model.
|
|
201
|
+
|
|
202
|
+
**Status:** Direncanakan. Bergantung pada `download_model` yang mendukung varian model tdrz.
|
|
203
|
+
|
|
204
|
+
### Transkripsi URL YouTube
|
|
205
|
+
Transkripsi langsung dari URL YouTube via yt-dlp. Mengunduh audio dan mentranskrip dalam satu langkah. Memerlukan yt-dlp yang terpasang dan ada di PATH.
|
|
206
|
+
|
|
207
|
+
**Batasan desain:** yt-dlp bersifat opsional. Alat harus terdegradasi dengan anggun dengan instruksi instalasi yang jelas jika tidak ditemukan. Tidak ada perubahan pada fungsionalitas inti untuk pengguna yang tidak membutuhkannya.
|
|
208
|
+
|
|
209
|
+
### Alat Alur Kerja Proyek Video
|
|
210
|
+
Untuk pengguna yang mengelola proyek pengeditan video besar dengan direktori klip sumber dan yang telah diedit:
|
|
211
|
+
|
|
212
|
+
1. Pindai direktori sumber dan subdirektori klip
|
|
213
|
+
2. Cocokkan transkrip klip yang telah diedit dengan transkrip sumber secara fuzzy untuk menemukan titik asal
|
|
214
|
+
3. Tampilkan nama file deskriptif yang disarankan Claude berdasarkan konten transkrip, memerlukan konfirmasi eksplisit pengguna sebelum penggantian nama dieksekusi
|
|
215
|
+
4. Pencarian transkrip di seluruh direktori proyek dengan hasil timecode
|
|
216
|
+
|
|
217
|
+
**Batasan desain:**
|
|
218
|
+
- File sumber **tidak pernah diganti nama atau dimodifikasi**
|
|
219
|
+
- Semua penggantian nama memerlukan **konfirmasi eksplisit pengguna**
|
|
220
|
+
- Pencarian adalah alat mandiri yang dapat digunakan secara independen
|
|
221
|
+
- Analisis dan pencocokan terjadi secara lokal — Claude hanya dipanggil saat pengguna meninjau hasil, meminimalkan panggilan API
|
|
222
|
+
|
|
223
|
+
**Status:** Fase desain.
|
|
224
|
+
|
|
225
|
+
### Diarisasi Pembicara (pyannote-audio)
|
|
226
|
+
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
|
+
|
|
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.
|
|
229
|
+
|
|
230
|
+
**Status:** Fitur lanjutan opsional dengan dokumentasi pengaturannya sendiri. Tidak termasuk dalam paket utama.
|
|
231
|
+
|
|
232
|
+
### Terjemahan ke Bahasa Non-Inggris
|
|
233
|
+
Flag `--translate` Whisper hanya menargetkan bahasa Inggris. Mendukung bahasa target sembarang memerlukan API terjemahan eksternal atau model terjemahan lokal.
|
|
234
|
+
|
|
235
|
+
**Opsi yang sedang dipertimbangkan:** LibreTranslate (dapat di-host sendiri, utamakan lokal), terjemahan LLM lokal, atau dokumentasi di luar cakupan yang eksplisit.
|
|
236
|
+
|
|
237
|
+
**Status:** Ditangguhkan menunggu keputusan desain tentang utamakan lokal vs ketergantungan API.
|
|
238
|
+
|
|
239
|
+
### Pembersihan dan Pemformatan Transkrip
|
|
240
|
+
Pipeline pasca-pemrosesan:
|
|
241
|
+
- Penghapusan kata pengisi dan awal yang salah (opsional, dikontrol pengguna)
|
|
242
|
+
- Jeda paragraf pada batas topik yang alami
|
|
243
|
+
- Pemformatan sadar pembicara saat dikombinasikan dengan output diarisasi
|
|
244
|
+
- Ekspor ke PDF atau DOCX
|
|
245
|
+
|
|
246
|
+
**Status:** Direncanakan. Varian sadar pembicara bergantung pada diarisasi.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Distribusi
|
|
251
|
+
|
|
252
|
+
Tersedia di [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), dan [Glama](https://glama.ai).
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Dokumentasi Multibahasa
|
|
257
|
+
|
|
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:
|
|
259
|
+
|
|
260
|
+
**Jepang (`*.ja.md`)**
|
|
261
|
+
- `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
262
|
+
|
|
263
|
+
**Korea (`*.ko.md`)**
|
|
264
|
+
- `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
|
|
265
|
+
|
|
266
|
+
**Vietnam (`*.vi.md`)**
|
|
267
|
+
- `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
268
|
+
|
|
269
|
+
**Indonesia (`*.id.md`)** — `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
|
|
270
|
+
|
|
271
|
+
**Ukraina (`*.uk.md`)** — `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
|
|
272
|
+
|
|
273
|
+
**Portugis Brasil (`*.pt-BR.md`)** — `README.pt-BR.md` / `TROUBLESHOOTING.pt-BR.md` / `ROADMAP.pt-BR.md` / `PRIVACY.pt-BR.md` / `SECURITY.pt-BR.md`
|
|
274
|
+
|
|
275
|
+
**Spanyol (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
276
|
+
|
|
277
|
+
**Polish (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
278
|
+
|
|
279
|
+
**Romanian (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
280
|
+
|
|
281
|
+
Kontribusi komunitas untuk bahasa lain disambut.
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Berkontribusi
|
|
286
|
+
|
|
287
|
+
Pull request disambut. Periksa issue yang ada sebelum memulai pekerjaan.
|
|
288
|
+
|
|
289
|
+
Jika Anda telah menguji akselerasi GPU pada hardware yang tidak tercantum di atas, silakan buka issue dengan model GPU, VRAM, ukuran model, dan throughput yang diamati. Ini membantu membangun referensi performa yang akurat untuk pengguna lain.
|