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.
Files changed (57) hide show
  1. package/.github/workflows/ci.yml +24 -0
  2. package/.github/workflows/publish.yml +24 -0
  3. package/{LICENSE-COMMERCIAL.md → COMMERCIAL-LICENSE.md} +58 -58
  4. package/LICENSE +40 -40
  5. package/PRIVACY.es.md +194 -135
  6. package/PRIVACY.id.md +194 -135
  7. package/PRIVACY.ja.md +194 -135
  8. package/PRIVACY.ko.md +194 -135
  9. package/PRIVACY.md +194 -135
  10. package/PRIVACY.pl.md +194 -135
  11. package/PRIVACY.pt-BR.md +194 -135
  12. package/PRIVACY.ro.md +194 -135
  13. package/PRIVACY.uk.md +194 -135
  14. package/PRIVACY.vi.md +194 -135
  15. package/README.es.md +80 -48
  16. package/README.id.md +83 -40
  17. package/README.ja.md +106 -72
  18. package/README.ko.md +69 -37
  19. package/README.md +82 -39
  20. package/README.pl.md +83 -40
  21. package/README.pt-BR.md +77 -45
  22. package/README.ro.md +84 -41
  23. package/README.uk.md +83 -40
  24. package/README.vi.md +73 -41
  25. package/ROADMAP.es.md +131 -45
  26. package/ROADMAP.id.md +86 -89
  27. package/ROADMAP.ja.md +93 -108
  28. package/ROADMAP.ko.md +82 -82
  29. package/ROADMAP.pl.md +125 -41
  30. package/ROADMAP.pt-BR.md +87 -87
  31. package/ROADMAP.ro.md +123 -41
  32. package/ROADMAP.uk.md +82 -90
  33. package/ROADMAP.vi.md +87 -87
  34. package/SECURITY.es.md +76 -47
  35. package/SECURITY.id.md +76 -47
  36. package/SECURITY.ja.md +76 -47
  37. package/SECURITY.ko.md +76 -47
  38. package/SECURITY.md +33 -4
  39. package/SECURITY.pl.md +76 -47
  40. package/SECURITY.pt-BR.md +76 -47
  41. package/SECURITY.ro.md +76 -47
  42. package/SECURITY.uk.md +76 -47
  43. package/SECURITY.vi.md +76 -47
  44. package/TROUBLESHOOTING.es.md +325 -323
  45. package/TROUBLESHOOTING.id.md +349 -323
  46. package/TROUBLESHOOTING.ja.md +415 -286
  47. package/TROUBLESHOOTING.ko.md +325 -323
  48. package/TROUBLESHOOTING.pl.md +371 -323
  49. package/TROUBLESHOOTING.pt-BR.md +325 -323
  50. package/TROUBLESHOOTING.ro.md +371 -323
  51. package/TROUBLESHOOTING.uk.md +385 -323
  52. package/TROUBLESHOOTING.vi.md +325 -323
  53. package/dist/index.js +743 -289
  54. package/dist/lib.d.ts +37 -0
  55. package/dist/lib.js +123 -0
  56. package/package.json +46 -45
  57. package/patch_roadmaps.py +0 -72
package/README.pl.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # whisper-windows-mcp
2
2
 
3
+ [![CI](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
4
+
5
+ [![whisper-windows-mcp MCP server](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp/badges/card.svg)](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
6
+
3
7
  Natywny serwer MCP (Model Context Protocol) dla Windows. Używa [whisper.cpp](https://github.com/ggml-org/whisper.cpp) do lokalnej transkrypcji plików audio i wideo w Claude Desktop — z akceleracją GPU, obsługą wielu języków i przetwarzaniem wsadowym. Cała transkrypcja odbywa się lokalnie — żadne pliki audio, wideo ani ścieżki do plików nie są wysyłane na zewnątrz.
4
8
 
5
9
  > **Dlaczego ten pakiet istnieje?**
@@ -17,6 +21,7 @@ Po instalacji możesz po prostu powiedzieć w Claude Desktop:
17
21
  - *"Rozpocznij wsadową transkrypcję wszystkich plików w tym folderze"*
18
22
  - *"Ile czasu zajmie transkrypcja tych plików?"*
19
23
  - *"Sprawdź, czy akceleracja GPU działa"*
24
+ - *"Transkrybuj ten plik w trybie prywatności"*
20
25
 
21
26
  ---
22
27
 
@@ -163,12 +168,13 @@ Transkrybuje pojedynczy plik. Obsługuje tryb blokujący (domyślny) lub działa
163
168
  |---|---|
164
169
  | `file_path` | Bezwzględna ścieżka do pliku (wymagana) |
165
170
  | `language` | Kod języka (`pl`, `en`, `ja` itp.) lub `auto` do automatycznego wykrywania. Domyślnie: `en` |
166
- | `output_format` | `text` (domyślnie), `timestamps`, `json` lub `srt` |
171
+ | `output_format` | `timestamps` (domyślnie), `text`, `json`, `srt`, `vtt`, `lrc` lub `csv` |
167
172
  | `save_to_file` | Zapisz transkrypcję jako .txt obok pliku źródłowego |
168
173
  | `background` | Uruchom jako osobne zadanie — natychmiast zwraca ID zadania. Używaj `check_progress` do monitorowania. Zalecane dla plików dłuższych niż 10 minut. |
174
+ | `privacy_mode` | Zastąp tryb prywatności dla tego wywołania. `true` = tylko metadane, żaden tekst transkrypcji nie jest przesyłany. `false` = zwróć tekst nawet gdy `WHISPER_PRIVACY_MODE=true` globalnie. Pomiń, aby użyć globalnego ustawienia. |
169
175
  | `threads` | Zastąp liczbę wątków CPU |
170
- | `temperature` | Temperatura próbkowania 0,0–1,0. Domyślnie 0,0 (deterministyczny). Wyższe wartości redukują halucynacje w hałaśliwym audio. |
171
- | `prompt` | Ciąg kontekstu poprzedniego — poprawia dokładność dla słownictwa dziedzinowego lub imion mówców. Np.: `"Nazwy: Keemstar, DramaAlert."` |
176
+ | `temperature` | Temperatura próbkowania 0,0–1,0. Domyślnie 0,0 (deterministyczny). |
177
+ | `prompt` | Ciąg kontekstu poprzedniego — poprawia dokładność dla słownictwa dziedzinowego lub imion mówców. |
172
178
  | `condition_on_prev_text` | Ponownie włącz warunkowanie kontekstem między segmentami. Domyślnie false. |
173
179
  | `beam_size` | Szerokość wyszukiwania wiązką. Wyższa = dokładniejsza, wolniejsza. Domyślnie 5. |
174
180
  | `best_of` | Liczba ocenianych sekwencji kandydatów. Domyślnie 5. |
@@ -181,32 +187,44 @@ Transkrybuje pojedynczy plik. Obsługuje tryb blokujący (domyślny) lub działa
181
187
  | `offset_t` | Przesunięcie początkowe w milisekundach. |
182
188
  | `duration` | Czas przetwarzania w milisekundach od przesunięcia. |
183
189
 
190
+ **Formaty wyjściowe:**
191
+ - `timestamps` — segmenty ze znacznikami czasu, np. `[00:00:01.230 --> 00:00:04.560] Witaj` (domyślnie)
192
+ - `text` — czysty tekst bez kodów czasowych
193
+ - `json` — strukturalny JSON (tylko tryb blokujący)
194
+ - `srt` — plik napisów SubRip zapisany obok źródła
195
+ - `vtt` — plik napisów WebVTT zapisany obok źródła
196
+ - `lrc` — format LRC tekstu/karaoke zapisany obok źródła
197
+ - `csv` — CSV ze znacznikami czasu zapisany obok źródła
198
+
184
199
  ---
185
200
 
186
201
  ### `check_progress`
187
202
  Monitoruje zadanie transkrypcji w tle uruchomione przez `transcribe_audio` (background=true).
188
203
 
189
- Zwraca czas, który upłynął, ostatni przetworzony znacznik czasu, procent i kompletną transkrypcję po zakończeniu.
204
+ Zwraca czas, który upłynął, ostatni przetworzony znacznik czasu i kompletną transkrypcję po zakończeniu.
190
205
 
191
206
  | Parametr | Opis |
192
207
  |---|---|
193
208
  | `job_id` | ID zadania zwrócone przez `transcribe_audio` |
209
+ | `privacy_mode` | Zastąp tryb prywatności dla tego sprawdzenia. `true` = tylko metadane, niezależnie od sposobu uruchomienia zadania. |
194
210
 
195
211
  ---
196
212
 
197
213
  ### `start_batch`
198
- Automatycznie i sekwencyjnie transkrybuje wszystkie jeszcze nieprzetranstrybuowane pliki w folderze. Sortuje według czasu trwania (najkrótsze pierwsze), przetwarza jeden po drugim jako zadania w tle i weryfikuje każdy wynik.
214
+ Automatycznie i sekwencyjnie transkrybuje wszystkie jeszcze niestranstrybuowane pliki w folderze. Sortuje według czasu trwania (najkrótsze pierwsze), przetwarza jeden po drugim jako zadania w tle i weryfikuje każdy wynik. Partia samodzielnie przesuwa się po zakończeniu każdego pliku — odpytywanie nie jest wymagane.
199
215
 
200
216
  | Parametr | Opis |
201
217
  |---|---|
202
218
  | `folder_path` | Ścieżka do folderu (wymagana) |
203
219
  | `language` | Kod języka. Domyślnie: `en` |
204
220
  | `threads` | Zastąp liczbę wątków CPU |
221
+ | `output_format` | `timestamps` (domyślnie) lub `text` |
222
+ | `privacy_mode` | Zastąp tryb prywatności. Przed rozpoczęciem partii wymagane jest jedno potwierdzenie; następnie wszystkie pliki są przetwarzane bez nadzoru. Tekst transkrypcji nie jest zwracany. |
205
223
 
206
224
  ---
207
225
 
208
226
  ### `check_batch_progress`
209
- Monitoruje uruchomioną partię. Automatycznie przechodzi do następnego pliku po zakończeniu bieżącego. Zwraca ogólny postęp, bieżący plik ze znacznikiem czasu, ETA i pliki z błędami.
227
+ Monitoruje uruchomioną partię. Automatycznie przechodzi do następnego pliku po zakończeniu bieżącego. Zwraca ogólny postęp, bieżący plik ze znacznikiem czasu i pliki z błędami.
210
228
 
211
229
  | Parametr | Opis |
212
230
  |---|---|
@@ -223,17 +241,21 @@ Przetwarza pliki jeden po jednym z podglądem i potwierdzeniem przed każdym. Pr
223
241
  | `file_index` | Który plik przetworzyć (numeracja od 1). Pomiń, aby najpierw wyświetlić listę plików. |
224
242
  | `language` | Kod języka. Domyślnie: `en` |
225
243
  | `recursive` | Uwzględnij podfoldery |
244
+ | `output_format` | `timestamps` (domyślnie) lub `text` |
245
+ | `privacy_mode` | Zastąp tryb prywatności. Potwierdzenie wymagane przed każdym plikiem; zwracane są tylko metadane. |
226
246
 
227
247
  ---
228
248
 
229
249
  ### `generate_subtitles`
230
- Generuje pliki napisów SRT. Obsługuje automatyczne wykrywanie języka i wyjście z tłumaczeniem na angielski.
250
+ Generuje pliki napisów. Obsługuje automatyczne wykrywanie języka i wyjście z tłumaczeniem na angielski. Generuje SRT (największa kompatybilność) lub WebVTT (web i HTML5 wideo).
231
251
 
232
252
  | Parametr | Opis |
233
253
  |---|---|
234
254
  | `file_path` | Ścieżka do pliku (wymagana) |
235
255
  | `language` | Kod języka lub `auto` do automatycznego wykrywania. Domyślnie: `en` |
236
- | `translate_to_english` | Generuj też `.en.srt` z tłumaczeniem na angielski. Dotyczy tylko gdy źródło nie jest po angielsku. |
256
+ | `output_format` | `srt` (domyślnie) lub `vtt` |
257
+ | `translate_to_english` | Generuj też plik napisów z tłumaczeniem na angielski. Dotyczy tylko gdy źródło nie jest po angielsku. |
258
+ | `background` | Uruchom jako zadanie w tle. Zwraca ID zadania dla `check_progress`. |
237
259
  | `threads` | Zastąp liczbę wątków CPU |
238
260
 
239
261
  Gdy oba są żądane, dwa pliki są zapisywane obok źródła:
@@ -245,7 +267,7 @@ Gdy oba są żądane, dwa pliki są zapisywane obok źródła:
245
267
  ---
246
268
 
247
269
  ### `analyze_media`
248
- Analizuje plik przed transkrypcją. Zwraca czas trwania, rozmiar, kodek i szacowany czas transkrypcji na CPU i GPU. Dla folderów wyświetla wszystkie pliki w sortowalnej tabeli ze statusem transkrypcji.
270
+ Analizuje pliki przed transkrypcją. Zwraca czas trwania, rozmiar, kodek i szacowany czas transkrypcji na CPU i GPU. Dla folderów wyświetla wszystkie pliki w sortowalnej tabeli ze statusem transkrypcji.
249
271
 
250
272
  | Parametr | Opis |
251
273
  |---|---|
@@ -265,7 +287,7 @@ Wyświetla wszystkie zainstalowane pliki modeli Whisper w katalogu modeli. Pokaz
265
287
  ---
266
288
 
267
289
  ### `download_model`
268
- Pobiera model Whisper bezpośrednio z Hugging Face do katalogu modeli. Przyjmuje nazwę modelu (np. `large-v3-turbo`, `medium.en-q5_0`) i automatycznie obsługuje pobieranie. Pobiera tylko z zaufanych przestrzeni nazw Hugging Face. Po pobraniu aktywuj przez `switch_model`.
290
+ Pobiera model Whisper bezpośrednio z Hugging Face do katalogu modeli. Pobiera tylko z zaufanych przestrzeni nazw Hugging Face. Po pobraniu aktywuj przez `switch_model`.
269
291
 
270
292
  | Parametr | Opis |
271
293
  |---|---|
@@ -301,14 +323,16 @@ Wykrywa sprzęt GPU i potwierdza dostępność akceleracji Vulkan. Raportuje naz
301
323
 
302
324
  Gotowa kompilacja Vulkan automatycznie włącza akcelerację GPU. Przetestowano na AMD Radeon RX Vega 56 (GCN 5. generacji). Każdy GPU z obsługą Vulkan 1.0+ powinien działać, w tym NVIDIA i Intel Arc.
303
325
 
304
- **Porównanie wydajności (model medium.en, plik audio ~5 minut):**
326
+ **Porównanie wydajności (model large-v3, plik audio ~14 minut):**
305
327
 
306
328
  | Sprzęt | Czas |
307
329
  |---|---|
308
- | Tylko CPU (Ryzen 7 2700x, 8 wątków) | 8–12 minut |
309
- | GPU (Vega 56 przez Vulkan) | 20–40 sekund |
330
+ | Tylko CPU (Ryzen 7 2700x, 8 wątków) | ~22 minuty (szacunkowo) |
331
+ | GPU (Vega 56 przez Vulkan) | ~3min 22s |
310
332
 
311
- Wykorzystanie GPU podczas transkrypcji wynosi zazwyczaj 15–20% i wraca do stanu bezczynności między plikami. CPU utrzymuje się na poziomie około 15%.
333
+ Wykorzystanie GPU podczas transkrypcji wynosi zazwyczaj 15–20% i wraca do stanu bezczynności między plikami.
334
+
335
+ Obsługuje Windows 10 i Windows 11.
312
336
 
313
337
  ---
314
338
 
@@ -320,9 +344,25 @@ Dla najlepszej dokładności wielojęzycznej używaj modelu `large-v3`. Modele t
320
344
 
321
345
  **Przykład — obcojęzyczne wideo z napisami:**
322
346
  1. Poproś Claude o wygenerowanie napisów z `language=auto` i `translate_to_english=true`
323
- 2. Whisper wykrywa język i generuje SRT w oryginalnym języku
324
- 3. Drugi przebieg generuje SRT z tłumaczeniem na angielski
325
- 4. Wczytaj dowolny plik w VLC przez Napisy → Dodaj plik napisów
347
+ 2. Whisper wykrywa język i generuje SRT lub VTT w oryginalnym języku
348
+ 3. Drugi przebieg generuje tłumaczenie na angielski
349
+ 4. Wczytaj SRT w VLC przez Napisy → Dodaj plik napisów, lub użyj VTT w dowolnym odtwarzaczu webowym
350
+
351
+ ---
352
+
353
+ ## Prywatność i zgodność
354
+
355
+ whisper-windows-mcp zawiera wbudowaną architekturę prywatności dla wrażliwych i regulowanych treści.
356
+
357
+ **Audio i wideo nigdy nie opuszczają twojego komputera.** Ta gwarancja jest bezwarunkowa.
358
+
359
+ **Tekst transkrypcji** jest inną kwestią — gdy jest zwracany inline w odpowiedzi narzędzia, jest przetwarzany przez API Claude. Dla większości użytkowników jest to oczekiwane zachowanie. Dla treści regulowanych (medycznych, prawnych, finansowych, korporacyjnych) tryb prywatności temu zapobiega.
360
+
361
+ **Tryb prywatności** ogranicza wszystkie odpowiedzi narzędzi tylko do metadanych (nazwa pliku, liczba słów, ścieżka zapisu). Żaden tekst transkrypcji nie jest przesyłany do API Claude w żadnych okolicznościach. Włącz per wywołanie przez `privacy_mode=true` w dowolnym narzędziu transkrypcji, lub globalnie przez `WHISPER_PRIVACY_MODE=true` w konfiguracji.
362
+
363
+ **Brama zgody** — przy pierwszym użyciu w sesji w trybie standardowym, przed zwróceniem jakiegokolwiek tekstu transkrypcji wyświetlane jest pełne ujawnienie prywatności. Musisz jawnie potwierdzić przed kontynuowaniem. Ustaw `WHISPER_CONSENT_ACKNOWLEDGED=true` w konfiguracji, aby pominąć to dla treści niepoufnych.
364
+
365
+ Zobacz [PRIVACY.md](PRIVACY.md) dla pełnego przewodnika zgodności (HIPAA, RODO, tajemnica adwokacka, FERPA, SOX, PCI-DSS).
326
366
 
327
367
  ---
328
368
 
@@ -339,34 +379,23 @@ To narzędzie zostało stworzone, aby zminimalizować interakcje z API Claude. C
339
379
  | `WHISPER_CLI_PATH` | Ścieżka do whisper-cli.exe (wymagana) |
340
380
  | `WHISPER_MODEL` | Ścieżka do pliku modelu .bin (wymagana) |
341
381
  | `WHISPER_THREADS` | Zastąp liczbę wątków CPU |
382
+ | `WHISPER_GPU_DEVICE` | Indeks urządzenia Vulkan, do którego przypiąć transkrypcję, dla systemów z wieloma GPU (indeks enumeracji Vulkan — sprawdź log startowy whisper-cli; nie kolejność GPU w Windows). Możliwe do zastąpienia per wywołanie przez `gpu_device`. Zobacz [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
383
+ | `WHISPER_FOREGROUND_MAX_SEC` | Limit transkrypcji na pierwszym planie w sekundach (domyślnie 210). Pliki, których czas wykonania szacuje się na dłuższy, są kierowane do trybu w tle zamiast ryzykować ~4-minutowy limit czasu narzędzia w Claude Desktop. |
342
384
  | `FFMPEG_PATH` | Ścieżka do ffmpeg jeśli nie ma go w systemowym PATH |
343
- | `WHISPER_PRIVACY_MODE` | **Planowane.** Po ustawieniu na `true` odpowiedzi narzędzi zwracają tylko metadane — żaden tekst transkrypcji nie jest zwracany do Claude. Dla treści regulowanych lub poufnych. Zobacz [PRIVACY.md](PRIVACY.md). |
385
+ | `WHISPER_PRIVACY_MODE` | Gdy `true`, odpowiedzi narzędzi zwracają tylko metadane — żaden tekst transkrypcji nie jest przesyłany do Claude. Dla treści regulowanych lub poufnych. Może być zastąpione per wywołanie przez parametr `privacy_mode`. Zobacz [PRIVACY.md](PRIVACY.md). |
386
+ | `WHISPER_CONSENT_ACKNOWLEDGED` | Gdy `true`, pomija jednorazowe ujawnienie zgody dla sesji przed zwróceniem tekstu transkrypcji. Ustaw po zapoznaniu się z granicami prywatności, gdy przypomnienie nie jest już potrzebne. Nie ma efektu gdy tryb prywatności jest aktywny. |
344
387
 
345
388
  ---
346
389
 
347
- ## Rozwiązywanie problemów
390
+ ## Bezpieczeństwo
348
391
 
349
- Zobacz [TROUBLESHOOTING.md](TROUBLESHOOTING.md) dla szczegółowych rozwiązań. Zobacz [PRIVACY.md](PRIVACY.md) jeśli obsługujesz treści regulowane.
392
+ **Weryfikacja binarną.** Aby zweryfikować integralność binarium whisper-cli.exe w gotowym wydaniu, sprawdź jego skrót SHA256 w PowerShell:
350
393
 
351
- Szybka lista kontrolna:
352
- - Ścieżki w konfiguracji używają **podwójnych ukośników odwrotnych** (`C:\\whisper\\...`)
353
- - `whisper-cli.exe` istnieje pod skonfigurowaną ścieżką
354
- - Plik modelu `.bin` istnieje pod skonfigurowaną ścieżką
355
- - FFmpeg zainstalowany i dostępny w PATH (`ffmpeg -version` działa)
356
- - Claude Desktop został **w pełni uruchomiony ponownie** po edycji konfiguracji
357
- - Whisper wyświetla się jako **uruchomiony** (zielony znaczek) w Ustawieniach → Deweloper
358
-
359
- ---
360
-
361
- ## Bezpieczeństwo i prywatność
362
-
363
- whisper-windows-mcp został zaprojektowany z bezpieczeństwem jako podstawową zasadą.
364
-
365
- **Audio nigdy nie opuszcza twojego komputera.** Żadne pliki audio ani wideo, ścieżki plików ani dane telemetryczne nie są przesyłane na żaden serwer. Żadne API w chmurze nie są potrzebne do podstawowej funkcjonalności.
366
-
367
- **Tekst transkrypcji i granica API.** Gdy odpowiedź narzędzia zawiera tekst transkrypcji, tekst ten jest przetwarzany przez API Claude — opuszcza twój lokalny komputer. Dla większości użytkowników (treści publiczne, podcasty, nagrania streamów) jest to oczekiwane zachowanie. Jeśli obsługujesz nagrania medyczne, prawne, finansowe lub inne regulowane, zobacz [PRIVACY.md](PRIVACY.md) dla wskazówek dotyczących zgodności i opcji konfiguracji.
394
+ ```powershell
395
+ Get-FileHash "C:\whisper\Release\whisper-cli.exe" -Algorithm SHA256
396
+ ```
368
397
 
369
- Planowana jest zmienna środowiskowa `WHISPER_PRIVACY_MODE`, która ograniczy wszystkie odpowiedzi narzędzi tylko do metadanych (nazwa pliku, czas trwania, liczba słów) — żaden tekst transkrypcji nie będzie zwracany do Claude. Jest to prawidłowa konfiguracja dla treści regulowanych lub poufnych.
398
+ Oczekiwany skrót dla binarnego wydania jest udokumentowany na [stronie wydań](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0).
370
399
 
371
400
  **Walidacja danych wejściowych.** Wszystkie ścieżki plików są weryfikowane przed użyciem — ścieżki UNC (`\\server\share`) i sekwencje przechodzenia katalogów (`..`) są odrzucane. Pliki powyżej 10 GB są odrzucane, aby zapobiec wyczerpaniu zasobów.
372
401
 
@@ -376,7 +405,21 @@ Planowana jest zmienna środowiskowa `WHISPER_PRIVACY_MODE`, która ograniczy ws
376
405
 
377
406
  **Przełączanie modeli jest piaskownicowane.** `switch_model` akceptuje tylko pliki `.bin` w skonfigurowanym katalogu modeli. Ścieżki poza tym katalogiem są odrzucane.
378
407
 
379
- **Brak nowych zależności sieciowych.** Pobieranie modeli używa wbudowanego `https` Node.js — żadne zewnętrzne biblioteki HTTP nie są dodawane do pakietu.
408
+ Zobacz [SECURITY.md](SECURITY.md) dla pełnej polityki bezpieczeństwa.
409
+
410
+ ---
411
+
412
+ ## Rozwiązywanie problemów
413
+
414
+ Zobacz [TROUBLESHOOTING.md](TROUBLESHOOTING.md) dla szczegółowych rozwiązań. Zobacz [PRIVACY.md](PRIVACY.md) jeśli obsługujesz treści regulowane.
415
+
416
+ Szybka lista kontrolna:
417
+ - Ścieżki w konfiguracji używają **podwójnych ukośników odwrotnych** (`C:\\whisper\\...`)
418
+ - `whisper-cli.exe` istnieje pod skonfigurowaną ścieżką
419
+ - Plik modelu `.bin` istnieje pod skonfigurowaną ścieżką
420
+ - FFmpeg zainstalowany i dostępny w PATH (`ffmpeg -version` działa)
421
+ - Claude Desktop został **w pełni uruchomiony ponownie** po edycji konfiguracji
422
+ - Whisper wyświetla się jako **uruchomiony** (zielony znaczek) w Ustawieniach → Deweloper
380
423
 
381
424
  ---
382
425
 
@@ -384,7 +427,7 @@ Planowana jest zmienna środowiskowa `WHISPER_PRIVACY_MODE`, która ograniczy ws
384
427
 
385
428
  **Użytek niekomercyjny:** MIT — bezpłatny do użytku osobistego, edukacyjnego i niekomercyjnego. Zobacz [LICENSE](LICENSE).
386
429
 
387
- **Użytek komercyjny:** Do użytku biznesowego, zawodowego lub generującego przychody wymagana jest osobna umowa licencji komercyjnej. Warunki i dane kontaktowe — w [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
430
+ **Użytek komercyjny:** Do użytku biznesowego, zawodowego lub generującego przychody wymagana jest osobna umowa licencji komercyjnej. Warunki i dane kontaktowe — w [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md).
388
431
 
389
432
  ## Wkład
390
433
 
package/README.pt-BR.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # whisper-windows-mcp
2
2
 
3
+ [![CI](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
4
+
5
+ [![whisper-windows-mcp MCP server](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp/badges/card.svg)](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
6
+
3
7
  Servidor MCP (Model Context Protocol) nativo para Windows. Usa o [whisper.cpp](https://github.com/ggml-org/whisper.cpp) para transcrever arquivos de áudio e vídeo localmente no Claude Desktop — com aceleração por GPU, suporte a múltiplos idiomas e processamento em lote. Toda a transcrição é executada localmente — nenhum arquivo de áudio, vídeo ou caminho de arquivo é enviado para fora.
4
8
 
5
9
  > **Por que este pacote existe?**
@@ -17,6 +21,7 @@ Após a instalação, basta falar diretamente no Claude Desktop:
17
21
  - *"Inicie a transcrição em lote de todos os arquivos nesta pasta"*
18
22
  - *"Quanto tempo vai levar para transcrever esses arquivos?"*
19
23
  - *"Verifique se a aceleração por GPU está funcionando"*
24
+ - *"Transcreva este arquivo no modo de privacidade"*
20
25
 
21
26
  ---
22
27
 
@@ -163,50 +168,54 @@ Transcreve um único arquivo. Suporta modo de bloqueio (padrão) ou em segundo p
163
168
  |---|---|
164
169
  | `file_path` | Caminho absoluto para o arquivo (obrigatório) |
165
170
  | `language` | Código do idioma (`pt`, `en`, `ja` etc.) ou `auto` para detecção automática. Padrão: `en` |
166
- | `output_format` | `text` (padrão), `timestamps`, `json` ou `srt` |
171
+ | `output_format` | `timestamps` (padrão), `text`, `json`, `srt`, `vtt`, `lrc` ou `csv` |
167
172
  | `save_to_file` | Salva a transcrição como .txt ao lado do arquivo de origem |
168
173
  | `background` | Executa como tarefa separada — retorna ID da tarefa imediatamente. Use `check_progress` para monitorar. Recomendado para arquivos com mais de 10 minutos. |
174
+ | `privacy_mode` | Substitui o modo de privacidade para esta chamada. `true` = apenas metadados, sem texto de transcrição transmitido. `false` = retorna texto mesmo se `WHISPER_PRIVACY_MODE=true` globalmente. Omita para usar a configuração global. |
169
175
  | `threads` | Substitui o número de threads da CPU |
170
- | `temperature` | Temperatura de amostragem 0,0–1,0. Padrão 0,0 (determinístico). Valores mais altos reduzem alucinações em áudio ruidoso. |
176
+ | `temperature` | Temperatura de amostragem 0,0–1,0. Padrão 0,0 (determinístico). |
171
177
  | `prompt` | String de contexto prévio — melhora a precisão para vocabulário específico de domínio ou nomes de falantes. Ex.: `"Nomes: Keemstar, DramaAlert."` |
172
178
  | `condition_on_prev_text` | Reativa o condicionamento de contexto entre segmentos. Padrão false. |
173
- | `beam_size` | Largura de busca beam. Maior = mais preciso, mais lento. Padrão 5. |
174
- | `best_of` | Número de sequências candidatas avaliadas. Padrão 5. |
179
+ | `beam_size` | Largura de busca em feixe. Maior = mais preciso, mais lento. Padrão 5. |
180
+ | `best_of` | Sequências candidatas avaliadas. Padrão 5. |
175
181
  | `gpu_device` | Índice do dispositivo GPU para sistemas multi-GPU. Padrão 0. |
176
- | `processors` | Número de processadores paralelos. Padrão 1. |
182
+ | `processors` | Contagem de processadores paralelos. Padrão 1. |
177
183
  | `word_timestamps` | Uma palavra por segmento com carimbo de tempo. Útil para alinhamento de clipes. |
178
184
  | `max_segment_length` | Comprimento máximo do segmento em caracteres. |
179
185
  | `diarize` | Diarização de falantes estéreo — requer áudio estéreo com falantes em canais separados. |
180
186
  | `vad_model` | Caminho para o arquivo .bin do modelo Silero VAD. Remove silêncio antes de transcrever — reduz alucinações em arquivos ruidosos. |
181
187
  | `offset_t` | Deslocamento de início em milissegundos. |
182
- | `duration` | Duração a processar em milissegundos a partir do deslocamento. |
188
+ | `duration` | Duração a processar a partir do deslocamento em milissegundos. |
183
189
 
184
190
  ---
185
191
 
186
192
  ### `check_progress`
187
193
  Monitora uma tarefa de transcrição em segundo plano iniciada com `transcribe_audio` (background=true).
188
194
 
189
- Retorna o tempo decorrido, o último carimbo de tempo processado, a porcentagem e a transcrição completa ao terminar.
195
+ Retorna o tempo decorrido, o último carimbo de tempo processado e a transcrição completa ao concluir.
190
196
 
191
197
  | Parâmetro | Descrição |
192
198
  |---|---|
193
199
  | `job_id` | ID da tarefa retornado por `transcribe_audio` |
200
+ | `privacy_mode` | Substitui o modo de privacidade para esta chamada. |
194
201
 
195
202
  ---
196
203
 
197
204
  ### `start_batch`
198
- Transcreve automaticamente e em sequência todos os arquivos ainda não transcritos em uma pasta. Ordena por duração (mais curtos primeiro), processa um por um como tarefas em segundo plano e valida cada saída.
205
+ Transcreve automaticamente em sequência todos os arquivos não transcritos em uma pasta. Ordena cronologicamente (os mais curtos primeiro), processa um por um como tarefa em segundo plano e valida cada saída.
199
206
 
200
207
  | Parâmetro | Descrição |
201
208
  |---|---|
202
209
  | `folder_path` | Caminho para a pasta (obrigatório) |
203
210
  | `language` | Código do idioma. Padrão: `en` |
211
+ | `output_format` | `timestamps` (padrão), `text`, `srt`, `vtt`, `lrc`, `csv` |
212
+ | `privacy_mode` | Substitui o modo de privacidade para este lote. |
204
213
  | `threads` | Substitui o número de threads da CPU |
205
214
 
206
215
  ---
207
216
 
208
217
  ### `check_batch_progress`
209
- Monitora um lote em execução. Avança automaticamente para o próximo arquivo quando o atual termina. Retorna o progresso geral, o arquivo atual com carimbo de tempo, o ETA e os arquivos com falha.
218
+ Monitora um lote em execução. Avança automaticamente para o próximo arquivo quando o atual é concluído. Retorna o progresso geral, o arquivo atual com carimbo de tempo, ETA e arquivos com falha.
210
219
 
211
220
  | Parâmetro | Descrição |
212
221
  |---|---|
@@ -215,32 +224,34 @@ Monitora um lote em execução. Avança automaticamente para o próximo arquivo
215
224
  ---
216
225
 
217
226
  ### `transcribe_batch` (interativo)
218
- Processa arquivos um a um com visualização prévia e confirmação antes de cada um. Útil quando você quer revisar à medida que avança.
227
+ Processa arquivos um por um com visualização prévia e confirmação antes de cada arquivo. Útil quando você quer revisar durante o processo.
219
228
 
220
229
  | Parâmetro | Descrição |
221
230
  |---|---|
222
231
  | `folder_path` | Caminho para a pasta (obrigatório) |
223
- | `file_index` | Qual arquivo processar (começa em 1). Omita para listar os arquivos primeiro. |
232
+ | `file_index` | Arquivo a processar (começa em 1). Omita para listar arquivos primeiro. |
224
233
  | `language` | Código do idioma. Padrão: `en` |
225
234
  | `recursive` | Incluir subpastas |
226
235
 
227
236
  ---
228
237
 
229
238
  ### `generate_subtitles`
230
- Gera arquivos de legenda SRT. Suporta detecção automática de idioma e saída de tradução para inglês.
239
+ Gera arquivos de legenda. Suporta detecção automática de idioma e saída de tradução para inglês.
231
240
 
232
241
  | Parâmetro | Descrição |
233
242
  |---|---|
234
243
  | `file_path` | Caminho para o arquivo (obrigatório) |
235
244
  | `language` | Código do idioma ou `auto` para detecção automática. Padrão: `en` |
236
- | `translate_to_english` | Também gera `.en.srt` com tradução para inglês. Aplicável apenas quando a fonte não for inglês. |
245
+ | `output_format` | `srt` (padrão) ou `vtt` |
246
+ | `translate_to_english` | Também gera um arquivo de legenda com tradução para inglês. Aplicável apenas quando a fonte não for inglês. |
247
+ | `background` | Executa como tarefa em segundo plano separada. Retorna um ID de tarefa para `check_progress`. |
237
248
  | `threads` | Substitui o número de threads da CPU |
238
249
 
239
250
  Quando ambos são solicitados, dois arquivos são salvos ao lado da origem:
240
251
  - `arquivo.pt.srt` — idioma original
241
252
  - `arquivo.en.srt` — tradução para inglês
242
253
 
243
- > A tradução integrada do Whisper apenas traduz **para o inglês**. Para outros idiomas de destino, processe o conteúdo do arquivo .srt separadamente.
254
+ > A tradução integrada do Whisper traduz apenas **para o inglês**. Para outros idiomas de destino, processe o conteúdo do arquivo `.srt` separadamente.
244
255
 
245
256
  ---
246
257
 
@@ -265,7 +276,7 @@ Lista todos os arquivos de modelo Whisper instalados no seu diretório de modelo
265
276
  ---
266
277
 
267
278
  ### `download_model`
268
- Baixa um modelo Whisper diretamente do Hugging Face para o seu diretório de modelos. Aceita o nome do modelo (ex.: `large-v3-turbo`, `medium.en-q5_0`) e gerencia o download automaticamente. Baixa apenas de namespaces confiáveis do Hugging Face. Após o download, use `switch_model` para ativar.
279
+ Baixa um modelo Whisper diretamente do Hugging Face para o seu diretório de modelos. Baixa apenas de namespaces confiáveis do Hugging Face. Após o download, use `switch_model` para ativar.
269
280
 
270
281
  | Parâmetro | Descrição |
271
282
  |---|---|
@@ -301,14 +312,16 @@ Detecta o hardware GPU e confirma se a aceleração Vulkan está disponível. Re
301
312
 
302
313
  O release Vulkan pré-compilado ativa a aceleração por GPU automaticamente. Testado em AMD Radeon RX Vega 56 (GCN 5ª geração). Qualquer GPU com suporte a Vulkan 1.0+ deve funcionar, incluindo NVIDIA e Intel Arc.
303
314
 
304
- **Comparação de desempenho (modelo medium.en, arquivo de áudio ~5 minutos):**
315
+ **Comparação de desempenho (modelo large-v3, arquivo de áudio ~14 minutos):**
305
316
 
306
317
  | Hardware | Tempo |
307
318
  |---|---|
308
- | Somente CPU (Ryzen 7 2700x, 8 threads) | 8–12 minutos |
309
- | GPU (Vega 56 via Vulkan) | 20–40 segundos |
319
+ | Somente CPU (Ryzen 7 2700x, 8 threads) | ~22 minutos (estimado) |
320
+ | GPU (Vega 56 via Vulkan) | ~3 min 22 seg |
321
+
322
+ A utilização da GPU durante a transcrição é tipicamente de 15–20%, voltando ao estado ocioso entre os arquivos.
310
323
 
311
- A utilização da GPU durante a transcrição é tipicamente de 15–20%, voltando ao estado ocioso entre os arquivos. A CPU fica em torno de 15%.
324
+ Compatível com Windows 10 e Windows 11. Nenhuma configuração específica para Windows 11 é necessária — a ferramenta não faz chamadas diretas à API Win32 e funciona em ambos os sistemas operacionais.
312
325
 
313
326
  ---
314
327
 
@@ -320,9 +333,25 @@ Para a melhor precisão multilíngue, use o modelo `large-v3`. Modelos somente i
320
333
 
321
334
  **Exemplo — vídeo em língua estrangeira com legendas:**
322
335
  1. Peça ao Claude para gerar legendas com `language=auto` e `translate_to_english=true`
323
- 2. O Whisper detecta o idioma e gera o SRT no idioma original
324
- 3. Uma segunda passagem gera o SRT com tradução para inglês
325
- 4. Carregue qualquer um dos arquivos no VLC via Legendas → Adicionar Arquivo de Legenda
336
+ 2. O Whisper detecta o idioma e gera o SRT ou VTT no idioma original
337
+ 3. Uma segunda passagem gera a tradução para inglês
338
+ 4. Carregue o SRT no VLC via Legendas → Adicionar Arquivo de Legenda, ou use o VTT em qualquer player web
339
+
340
+ ---
341
+
342
+ ## Privacidade e conformidade
343
+
344
+ O whisper-windows-mcp inclui uma arquitetura de privacidade integrada para conteúdo sensível e regulamentado.
345
+
346
+ **O áudio e vídeo nunca saem da sua máquina.** Essa garantia é incondicional.
347
+
348
+ **O texto de transcrição** é diferente — quando retornado inline em uma resposta de ferramenta, é processado pela API do Claude. Para a maioria dos usuários isso é o comportamento esperado. Para conteúdo regulamentado (médico, jurídico, financeiro, corporativo), o modo de privacidade previne isso.
349
+
350
+ **O modo de privacidade** restringe todas as respostas das ferramentas apenas a metadados (nome do arquivo, contagem de palavras, caminho de salvamento). Nenhum texto de transcrição é transmitido à API do Claude em nenhuma circunstância. Ative por chamada com `privacy_mode=true` em qualquer ferramenta de transcrição, ou globalmente via `WHISPER_PRIVACY_MODE=true` na sua configuração.
351
+
352
+ **Porta de consentimento** — no primeiro uso por sessão no modo padrão, uma divulgação de privacidade completa é exibida antes que qualquer texto de transcrição seja retornado. Você deve confirmar explicitamente antes de continuar. Defina `WHISPER_CONSENT_ACKNOWLEDGED=true` na sua configuração para ignorar isso para conteúdo não sensível.
353
+
354
+ Veja [PRIVACY.md](PRIVACY.md) para orientação de conformidade completa (HIPAA, GDPR, privilégio advogado-cliente, FERPA, SOX, PCI-DSS).
326
355
 
327
356
  ---
328
357
 
@@ -339,34 +368,23 @@ Esta ferramenta foi criada para minimizar as interações com a API do Claude. T
339
368
  | `WHISPER_CLI_PATH` | Caminho para whisper-cli.exe (obrigatório) |
340
369
  | `WHISPER_MODEL` | Caminho para o arquivo de modelo .bin (obrigatório) |
341
370
  | `WHISPER_THREADS` | Substitui o número de threads da CPU |
371
+ | `WHISPER_GPU_DEVICE` | Índice do dispositivo Vulkan ao qual fixar a transcrição, para sistemas com múltiplas GPUs (o índice de enumeração do Vulkan — verifique o log de inicialização do whisper-cli; não a ordem de GPU do Windows). Substituível por chamada com `gpu_device`. Veja [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
372
+ | `WHISPER_FOREGROUND_MAX_SEC` | Limite da transcrição em primeiro plano em segundos (padrão 210). Arquivos cuja execução estimada é mais longa são roteados para o modo em segundo plano em vez de arriscar o tempo limite de ferramenta de ~4 minutos do Claude Desktop. |
342
373
  | `FFMPEG_PATH` | Caminho para o ffmpeg se não estiver no PATH do sistema |
343
- | `WHISPER_PRIVACY_MODE` | **Planejado.** Quando definido como `true`, as respostas das ferramentas retornam apenas metadados — nenhum texto de transcrição é retornado ao Claude. Para conteúdo regulamentado ou confidencial. Veja [PRIVACY.md](PRIVACY.md). |
344
-
345
- ---
346
-
347
- ## Solução de problemas
348
-
349
- Veja [TROUBLESHOOTING.md](TROUBLESHOOTING.md) para soluções detalhadas. Veja [PRIVACY.md](PRIVACY.md) se você lida com conteúdo regulamentado.
350
-
351
- Lista de verificação rápida:
352
- - Caminhos na configuração usam **barras invertidas duplas** (`C:\\whisper\\...`)
353
- - `whisper-cli.exe` existe no caminho configurado
354
- - O arquivo de modelo `.bin` existe no caminho configurado
355
- - FFmpeg instalado e no PATH (`ffmpeg -version` funciona)
356
- - Claude Desktop foi **completamente reiniciado** após editar a configuração
357
- - Whisper aparece como **em execução** (emblema verde) em Configurações → Desenvolvedor
374
+ | `WHISPER_PRIVACY_MODE` | Defina como `true` para que todas as respostas das ferramentas retornem apenas metadados — nenhum texto de transcrição retornado ao Claude. Para conteúdo regulamentado ou confidencial. Pode ser substituído por chamada com o parâmetro `privacy_mode`. Veja [PRIVACY.md](PRIVACY.md). |
375
+ | `WHISPER_CONSENT_ACKNOWLEDGED` | Defina como `true` para suprimir a divulgação de consentimento única por sessão exibida antes de retornar texto de transcrição. Defina quando você entende os limites de privacidade e não precisa mais do lembrete. Sem efeito quando o modo de privacidade está ativo. |
358
376
 
359
377
  ---
360
378
 
361
- ## Segurança e privacidade
362
-
363
- O whisper-windows-mcp foi projetado com segurança como princípio central.
379
+ ## Segurança
364
380
 
365
- **O áudio nunca sai da sua máquina.** Nenhum arquivo de áudio ou vídeo, caminho de arquivo ou telemetria é transmitido para qualquer servidor. Nenhuma API de nuvem é necessária para a funcionalidade principal.
381
+ **Verificação do binário.** Para verificar a integridade do binário whisper-cli.exe no release pré-compilado, verifique o hash SHA256 no PowerShell:
366
382
 
367
- **Texto de transcrição e o limite da API.** Quando uma resposta de ferramenta inclui texto de transcrição, esse texto é processado pela API do Claude — ele sai da sua máquina local. Para a maioria dos usuários (conteúdo público, podcasts, gravações de streaming) isso é um comportamento esperado. Se você lida com gravações médicas, jurídicas, financeiras ou outras regulamentadas, veja [PRIVACY.md](PRIVACY.md) para orientação de conformidade e opções de configuração.
383
+ ```powershell
384
+ Get-FileHash "C:\whisper\Release\whisper-cli.exe" -Algorithm SHA256
385
+ ```
368
386
 
369
- A variável de ambiente `WHISPER_PRIVACY_MODE` está planejada e limitará todas as respostas das ferramentas apenas a metadados (nome do arquivo, duração, contagem de palavras) — nenhum texto de transcrição será retornado ao Claude. Esta é a configuração correta para conteúdo regulamentado ou confidencial.
387
+ O hash esperado está documentado na [página de releases](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0).
370
388
 
371
389
  **Validação de entrada.** Todos os caminhos de arquivo são validados antes do uso — caminhos UNC (`\\server\share`) e sequências de travessia de diretório (`..`) são rejeitados. Arquivos acima de 10 GB são rejeitados para evitar esgotamento de recursos.
372
390
 
@@ -376,7 +394,21 @@ A variável de ambiente `WHISPER_PRIVACY_MODE` está planejada e limitará todas
376
394
 
377
395
  **Troca de modelos é isolada em sandbox.** `switch_model` aceita apenas arquivos `.bin` dentro do diretório de modelos configurado. Caminhos fora desse diretório são rejeitados.
378
396
 
379
- **Sem novas dependências de rede.** Os downloads de modelos usam o `https` integrado do Node.js — nenhuma biblioteca HTTP externa é adicionada ao pacote.
397
+ Veja [SECURITY.md](SECURITY.md) para a política de segurança completa.
398
+
399
+ ---
400
+
401
+ ## Solução de problemas
402
+
403
+ Veja [TROUBLESHOOTING.md](TROUBLESHOOTING.md) para soluções detalhadas. Veja [PRIVACY.md](PRIVACY.md) se você lida com conteúdo regulamentado.
404
+
405
+ Lista de verificação rápida:
406
+ - Caminhos na configuração usam **barras invertidas duplas** (`C:\\whisper\\...`)
407
+ - `whisper-cli.exe` existe no caminho configurado
408
+ - O arquivo de modelo `.bin` existe no caminho configurado
409
+ - FFmpeg instalado e no PATH (`ffmpeg -version` funciona)
410
+ - Claude Desktop foi **completamente reiniciado** após editar a configuração
411
+ - Whisper aparece como **em execução** (emblema verde) em Configurações → Desenvolvedor
380
412
 
381
413
  ---
382
414
 
@@ -384,7 +416,7 @@ A variável de ambiente `WHISPER_PRIVACY_MODE` está planejada e limitará todas
384
416
 
385
417
  **Uso não comercial:** MIT — gratuito para uso pessoal, educacional e não comercial. Veja [LICENSE](LICENSE).
386
418
 
387
- **Uso comercial:** É necessário um contrato de licença comercial separado para qualquer uso empresarial, profissional ou que gere receita. Veja [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md) para os termos e informações de contato.
419
+ **Uso comercial:** É necessário um contrato de licença comercial separado para qualquer uso empresarial, profissional ou que gere receita. Veja [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) para os termos e informações de contato.
388
420
 
389
421
  ## Contribuições
390
422