whisper-windows-mcp 2.3.0 → 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/PRIVACY.es.md +2 -0
- package/PRIVACY.id.md +2 -0
- package/PRIVACY.ja.md +2 -0
- package/PRIVACY.ko.md +2 -0
- package/PRIVACY.md +2 -0
- package/PRIVACY.pl.md +2 -0
- package/PRIVACY.pt-BR.md +2 -0
- package/PRIVACY.ro.md +2 -0
- package/PRIVACY.uk.md +2 -0
- package/PRIVACY.vi.md +2 -0
- package/README.es.md +6 -0
- package/README.id.md +6 -0
- package/README.ja.md +6 -0
- package/README.ko.md +6 -0
- package/README.md +6 -0
- package/README.pl.md +6 -0
- package/README.pt-BR.md +6 -0
- package/README.ro.md +6 -0
- package/README.uk.md +6 -0
- package/README.vi.md +6 -0
- package/ROADMAP.es.md +28 -4
- package/ROADMAP.id.md +28 -4
- package/ROADMAP.ja.md +28 -4
- package/ROADMAP.ko.md +28 -4
- package/ROADMAP.pl.md +28 -4
- package/ROADMAP.pt-BR.md +28 -4
- package/ROADMAP.ro.md +28 -4
- package/ROADMAP.uk.md +28 -4
- package/ROADMAP.vi.md +28 -4
- package/SECURITY.es.md +14 -2
- package/SECURITY.id.md +14 -2
- package/SECURITY.ja.md +14 -2
- package/SECURITY.ko.md +14 -2
- package/SECURITY.md +14 -2
- package/SECURITY.pl.md +14 -2
- package/SECURITY.pt-BR.md +14 -2
- package/SECURITY.ro.md +14 -2
- package/SECURITY.uk.md +14 -2
- package/SECURITY.vi.md +14 -2
- package/TROUBLESHOOTING.es.md +16 -0
- package/TROUBLESHOOTING.id.md +16 -0
- package/TROUBLESHOOTING.ja.md +16 -0
- package/TROUBLESHOOTING.ko.md +16 -0
- package/TROUBLESHOOTING.pl.md +16 -0
- package/TROUBLESHOOTING.pt-BR.md +16 -0
- package/TROUBLESHOOTING.ro.md +16 -0
- package/TROUBLESHOOTING.uk.md +16 -0
- package/TROUBLESHOOTING.vi.md +16 -0
- package/dist/index.js +199 -120
- package/dist/lib.d.ts +37 -0
- package/dist/lib.js +123 -0
- package/package.json +3 -2
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
test:
|
|
12
|
+
name: build + test
|
|
13
|
+
runs-on: windows-latest
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
node-version: [20, 22]
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: ${{ matrix.node-version }}
|
|
22
|
+
cache: npm
|
|
23
|
+
- run: npm ci
|
|
24
|
+
- run: npm test
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [created]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
id-token: write
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
publish:
|
|
13
|
+
runs-on: windows-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: actions/setup-node@v4
|
|
17
|
+
with:
|
|
18
|
+
node-version: '20'
|
|
19
|
+
registry-url: 'https://registry.npmjs.org'
|
|
20
|
+
- run: npm install
|
|
21
|
+
- run: npm run build
|
|
22
|
+
- run: npm publish --provenance
|
|
23
|
+
env:
|
|
24
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/PRIVACY.es.md
CHANGED
|
@@ -89,6 +89,8 @@ Cuando el modo de privacidad está activo, se muestra una divulgación de confir
|
|
|
89
89
|
|
|
90
90
|
El texto de la divulgación es idéntico cada vez por diseño. La repetición es el punto: si estás manejando contenido sensible, debes confirmar explícitamente cada operación.
|
|
91
91
|
|
|
92
|
+
La confirmación está vinculada a la **operación específica** — la herramienta junto con sus argumentos exactos. Confirmar una transcripción no puede satisfacer la barrera de una operación diferente, y cambiar cualquier parámetro se trata como una nueva operación que requiere su propia confirmación.
|
|
93
|
+
|
|
92
94
|
Para `start_batch` con modo de privacidad: se requiere una confirmación antes de que el lote comience. Todos los archivos se procesan entonces de forma autónoma. No se devuelve texto de transcripción en ningún momento — solo metadatos de progreso del lote.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.id.md
CHANGED
|
@@ -89,6 +89,8 @@ Saat mode privasi aktif, konfirmasi pengungkapan ditampilkan **sebelum setiap op
|
|
|
89
89
|
|
|
90
90
|
Teks pengungkapan identik setiap saat berdasarkan desain. Pengulangannya adalah intinya: jika Anda menangani konten sensitif, Anda harus mengkonfirmasi setiap operasi secara eksplisit.
|
|
91
91
|
|
|
92
|
+
Konfirmasi terikat pada **operasi spesifik** — alat beserta argumen persisnya. Mengonfirmasi satu transkripsi tidak dapat memenuhi gerbang operasi yang berbeda, dan mengubah parameter apa pun diperlakukan sebagai operasi baru yang memerlukan konfirmasinya sendiri.
|
|
93
|
+
|
|
92
94
|
Untuk `start_batch` dengan mode privasi: satu konfirmasi diperlukan sebelum batch dimulai. Semua file kemudian diproses tanpa pengawasan. Tidak ada teks transkrip yang dikembalikan pada titik mana pun — hanya metadata kemajuan batch.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.ja.md
CHANGED
|
@@ -89,6 +89,8 @@ per-callパラメーターはグローバル環境変数をどちらの方向に
|
|
|
89
89
|
|
|
90
90
|
開示テキストは毎回同一です。これは意図的な設計です。機密性の高いコンテンツを扱う場合は、各操作を明示的に確認すべきです。
|
|
91
91
|
|
|
92
|
+
確認は**特定の操作**(ツールとその正確な引数)に紐づけられています。ある文字起こしを確認しても、別の操作のゲートを満たすことはできません。また、いずれかのパラメータを変更すると、新しい操作として扱われ、独自の確認が必要になります。
|
|
93
|
+
|
|
92
94
|
プライバシーモードでの`start_batch`:バッチ開始前に一度だけ確認が必要です。その後すべてのファイルは無人で処理されます。どの時点でもトランスクリプトテキストは返されません — バッチ進捗メタデータのみが返されます。
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.ko.md
CHANGED
|
@@ -89,6 +89,8 @@ whisper-windows-mcp는 로컬 우선 아키텍처를 기반으로 구축되었
|
|
|
89
89
|
|
|
90
90
|
공개 텍스트는 의도적으로 매번 동일합니다. 반복이 핵심입니다: 민감한 콘텐츠를 처리하는 경우 각 작업을 명시적으로 확인해야 합니다.
|
|
91
91
|
|
|
92
|
+
확인은 **특정 작업**(도구와 그 정확한 인수)에 결합되어 있습니다. 한 전사를 확인해도 다른 작업의 게이트를 충족할 수 없으며, 매개변수를 하나라도 변경하면 자체 확인이 필요한 새 작업으로 취급됩니다.
|
|
93
|
+
|
|
92
94
|
`start_batch`에서 개인 정보 모드 사용 시: 배치 시작 전에 확인 한 번이 필요합니다. 이후 모든 파일이 무인으로 처리됩니다. 어떤 시점에서도 전사 텍스트가 반환되지 않습니다 — 배치 진행 메타데이터만 반환됩니다.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.md
CHANGED
|
@@ -89,6 +89,8 @@ When privacy mode is active, a confirmation disclosure is shown **before every o
|
|
|
89
89
|
|
|
90
90
|
The disclosure text is identical every time by design. The repetition is the point: if you are handling sensitive content, you should be confirming each operation explicitly.
|
|
91
91
|
|
|
92
|
+
The confirmation is bound to the **specific operation** — the tool plus its exact arguments. Confirming one transcription cannot satisfy a different operation's gate, and changing any parameter is treated as a new operation requiring its own confirmation.
|
|
93
|
+
|
|
92
94
|
For `start_batch` with privacy mode: one confirmation is required before the batch starts. All files then process unattended. No transcript text is returned at any point — only batch progress metadata.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.pl.md
CHANGED
|
@@ -89,6 +89,8 @@ Gdy tryb prywatności jest aktywny, potwierdzenie ujawnienia jest wyświetlane *
|
|
|
89
89
|
|
|
90
90
|
Tekst ujawnienia jest identyczny za każdym razem z projektu. Powtórzenie jest istotą: jeśli obsługujesz wrażliwe treści, powinieneś jawnie potwierdzać każdą operację.
|
|
91
91
|
|
|
92
|
+
Potwierdzenie jest powiązane z **konkretną operacją** — narzędziem wraz z jego dokładnymi argumentami. Potwierdzenie jednej transkrypcji nie może spełnić bramki innej operacji, a zmiana dowolnego parametru jest traktowana jako nowa operacja wymagająca własnego potwierdzenia.
|
|
93
|
+
|
|
92
94
|
Dla `start_batch` z trybem prywatności: przed rozpoczęciem partii wymagane jest jedno potwierdzenie. Następnie wszystkie pliki są przetwarzane bez nadzoru. Tekst transkrypcji nie jest zwracany w żadnym momencie — tylko metadane postępu partii.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.pt-BR.md
CHANGED
|
@@ -89,6 +89,8 @@ Quando o modo de privacidade está ativo, uma confirmação de divulgação é e
|
|
|
89
89
|
|
|
90
90
|
O texto da divulgação é idêntico a cada vez por design. A repetição é o ponto: se você está lidando com conteúdo sensível, você deve confirmar explicitamente cada operação.
|
|
91
91
|
|
|
92
|
+
A confirmação está vinculada à **operação específica** — a ferramenta junto com seus argumentos exatos. Confirmar uma transcrição não pode satisfazer a barreira de uma operação diferente, e alterar qualquer parâmetro é tratado como uma nova operação que exige sua própria confirmação.
|
|
93
|
+
|
|
92
94
|
Para `start_batch` com modo de privacidade: uma confirmação é necessária antes de o lote começar. Todos os arquivos são então processados sem supervisão. Nenhum texto de transcrição é retornado em nenhum momento — apenas metadados de progresso do lote.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.ro.md
CHANGED
|
@@ -89,6 +89,8 @@ Când modul de confidențialitate este activ, o dezvăluire de confirmare este a
|
|
|
89
89
|
|
|
90
90
|
Textul dezvăluirii este identic de fiecare dată prin design. Repetiția este intenționată: dacă gestionezi conținut sensibil, ar trebui să confirmi explicit fiecare operațiune.
|
|
91
91
|
|
|
92
|
+
Confirmarea este legată de **operațiunea specifică** — instrumentul împreună cu argumentele sale exacte. Confirmarea unei transcrieri nu poate satisface bariera unei alte operațiuni, iar modificarea oricărui parametru este tratată ca o operațiune nouă care necesită propria confirmare.
|
|
93
|
+
|
|
92
94
|
Pentru `start_batch` cu modul de confidențialitate: o confirmare este necesară înainte de începerea lotului. Toate fișierele sunt apoi procesate nesupravegheate. Niciun text de transcriere nu este returnat în niciun moment — doar metadate de progres ale lotului.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.uk.md
CHANGED
|
@@ -89,6 +89,8 @@ whisper-windows-mcp побудовано на архітектурі з пріо
|
|
|
89
89
|
|
|
90
90
|
Текст розкриття щоразу однаковий навмисно. Повторення — це і є суть: якщо ви працюєте з чутливим контентом, ви маєте явно підтверджувати кожну операцію.
|
|
91
91
|
|
|
92
|
+
Підтвердження прив'язане до **конкретної операції** — інструмента разом із його точними аргументами. Підтвердження однієї транскрипції не може задовольнити бар'єр іншої операції, а зміна будь-якого параметра вважається новою операцією, яка потребує власного підтвердження.
|
|
93
|
+
|
|
92
94
|
Для `start_batch` з режимом конфіденційності: перед початком пакету потрібне одне підтвердження. Далі всі файли опрацьовуються без нагляду. Текст транскрипції не повертається жодного разу — лише метадані прогресу пакету.
|
|
93
95
|
|
|
94
96
|
---
|
package/PRIVACY.vi.md
CHANGED
|
@@ -89,6 +89,8 @@ Khi chế độ quyền riêng tư đang hoạt động, một xác nhận công
|
|
|
89
89
|
|
|
90
90
|
Văn bản công khai giống nhau mỗi lần theo thiết kế. Sự lặp lại mới là điểm mấu chốt: nếu bạn đang xử lý nội dung nhạy cảm, bạn phải xác nhận rõ ràng từng thao tác.
|
|
91
91
|
|
|
92
|
+
Xác nhận được gắn với **thao tác cụ thể** — công cụ cùng với các đối số chính xác của nó. Việc xác nhận một phiên âm không thể thỏa mãn cổng kiểm soát của một thao tác khác, và việc thay đổi bất kỳ tham số nào đều được coi là một thao tác mới cần xác nhận riêng.
|
|
93
|
+
|
|
92
94
|
Đối với `start_batch` với chế độ quyền riêng tư: cần một xác nhận trước khi đợt bắt đầu. Tất cả tệp sau đó được xử lý không giám sát. Không có văn bản phiên âm nào được trả về ở bất kỳ thời điểm nào — chỉ có siêu dữ liệu tiến trình đợt.
|
|
93
95
|
|
|
94
96
|
---
|
package/README.es.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Servidor MCP (Model Context Protocol) nativo para Windows. Utiliza [whisper.cpp](https://github.com/ggml-org/whisper.cpp) para transcribir archivos de audio y video localmente en Claude Desktop — con aceleración por GPU, soporte multilingüe y procesamiento por lotes. Toda la transcripción se ejecuta localmente — ningún archivo de audio, video ni ruta de archivo se envía al exterior.
|
|
4
8
|
|
|
5
9
|
> **¿Por qué existe este paquete?**
|
|
@@ -364,6 +368,8 @@ Esta herramienta fue creada para minimizar las interacciones con la API de Claud
|
|
|
364
368
|
| `WHISPER_CLI_PATH` | Ruta a whisper-cli.exe (obligatorio) |
|
|
365
369
|
| `WHISPER_MODEL` | Ruta al archivo de modelo .bin (obligatorio) |
|
|
366
370
|
| `WHISPER_THREADS` | Anula el número de hilos de CPU |
|
|
371
|
+
| `WHISPER_GPU_DEVICE` | Índice del dispositivo Vulkan al que fijar la transcripción, para sistemas con múltiples GPU (el índice de enumeración de Vulkan — consulta el registro de inicio de whisper-cli; no el orden de GPU de Windows). Anulable por llamada con `gpu_device`. Ver [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
|
|
372
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | Límite de la transcripción en primer plano en segundos (predeterminado 210). Los archivos cuya ejecución se estima más larga se enrutan al modo en segundo plano en lugar de arriesgar el tiempo de espera de herramienta de ~4 minutos de Claude Desktop. |
|
|
367
373
|
| `FFMPEG_PATH` | Ruta a ffmpeg si no está en el PATH del sistema |
|
|
368
374
|
| `WHISPER_PRIVACY_MODE` | Establece en `true` para que todas las respuestas de herramientas devuelvan solo metadatos — ningún texto de transcripción devuelto a Claude. Para contenido regulado o confidencial. Puede anularse por llamada con el parámetro `privacy_mode`. Ver [PRIVACY.md](PRIVACY.md). |
|
|
369
375
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | Establece en `true` para omitir la divulgación de consentimiento única por sesión que se muestra antes de devolver texto de transcripción. Establécelo cuando entiendas los límites de privacidad y ya no necesites el recordatorio. Sin efecto cuando el modo de privacidad está activo. |
|
package/README.id.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Server MCP (Model Context Protocol) khusus Windows. Menggunakan [whisper.cpp](https://github.com/ggml-org/whisper.cpp) untuk transkripsi file audio dan video secara lokal di Claude Desktop — dengan akselerasi GPU, dukungan multibahasa, dan pemrosesan batch. Semua transkripsi berjalan secara lokal — tidak ada file audio, video, maupun jalur file yang dikirim keluar.
|
|
4
8
|
|
|
5
9
|
> **Mengapa paket ini ada?**
|
|
@@ -375,6 +379,8 @@ Alat ini dibangun untuk meminimalkan interaksi Claude API. Seluruh alur kerja tr
|
|
|
375
379
|
| `WHISPER_CLI_PATH` | Jalur ke whisper-cli.exe (wajib) |
|
|
376
380
|
| `WHISPER_MODEL` | Jalur ke file model .bin (wajib) |
|
|
377
381
|
| `WHISPER_THREADS` | Override jumlah thread CPU |
|
|
382
|
+
| `WHISPER_GPU_DEVICE` | Indeks perangkat Vulkan untuk menyematkan transkripsi, untuk sistem multi-GPU (indeks enumerasi Vulkan — periksa log startup whisper-cli; bukan urutan GPU Windows). Dapat di-override per-panggilan dengan `gpu_device`. Lihat [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
|
|
383
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | Batas transkripsi latar depan dalam detik (default 210). File yang diperkirakan berjalan lebih lama dirutekan ke mode latar belakang alih-alih mempertaruhkan batas waktu alat ~4 menit milik Claude Desktop. |
|
|
378
384
|
| `FFMPEG_PATH` | Jalur ke ffmpeg jika tidak ada di PATH sistem |
|
|
379
385
|
| `WHISPER_PRIVACY_MODE` | Saat `true`, semua respons alat hanya mengembalikan metadata — tidak ada teks transkrip yang dikirimkan ke API Claude. Untuk konten yang diatur atau rahasia. Dapat di-override per-panggilan dengan parameter `privacy_mode`. Lihat [PRIVACY.md](PRIVACY.md). |
|
|
380
386
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | Saat `true`, melewati pengungkapan persetujuan sesi satu kali yang ditampilkan sebelum teks transkrip dikembalikan. Atur setelah Anda memahami batas privasi dan tidak lagi membutuhkan pengingat. Tidak berpengaruh saat mode privasi aktif. |
|
package/README.ja.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Windows向けのネイティブMCP(Model Context Protocol)サーバーです。[whisper.cpp](https://github.com/ggml-org/whisper.cpp)を使用して、Claude Desktopで音声・動画ファイルをローカルに文字起こしできます。GPU加速、多言語対応、バッチ処理に対応しています。すべての文字起こし処理はローカルで実行 — 音声・動画ファイルやファイルパスが外部に送信されることは一切ありません。
|
|
4
8
|
|
|
5
9
|
> **なぜこのパッケージが存在するのか?**
|
|
@@ -375,6 +379,8 @@ whisper-windows-mcpには機密および規制対象コンテンツ向けの組
|
|
|
375
379
|
| `WHISPER_CLI_PATH` | whisper-cli.exeへのパス(必須) |
|
|
376
380
|
| `WHISPER_MODEL` | モデル.binファイルへのパス(必須) |
|
|
377
381
|
| `WHISPER_THREADS` | CPUスレッド数の上書き |
|
|
382
|
+
| `WHISPER_GPU_DEVICE` | マルチGPUシステムで文字起こしを固定するVulkanデバイスのインデックス(VulkanのenumerationインデックスでありWindowsのGPU順序ではありません — whisper-cliの起動ログを確認してください)。per-callで`gpu_device`により上書き可能。[TROUBLESHOOTING.md](TROUBLESHOOTING.md)を参照。 |
|
|
383
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | フォアグラウンド文字起こしの上限秒数(デフォルト210)。これより長く実行されると推定されるファイルは、Claude Desktopの約4分のツールタイムアウトのリスクを冒す代わりにバックグラウンドモードにルーティングされます。 |
|
|
378
384
|
| `FFMPEG_PATH` | ffmpegがシステムPATHにない場合のパス |
|
|
379
385
|
| `WHISPER_PRIVACY_MODE` | `true`の場合、すべてのツールレスポンスはメタデータのみを返し、トランスクリプトテキストはClaudeのAPIに送信されません。規制対象または機密性の高いコンテンツに使用します。per-callで`privacy_mode`パラメータを使用して上書き可能。[PRIVACY.md](PRIVACY.md)を参照。 |
|
|
380
386
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | `true`の場合、トランスクリプトテキストが返される前の一回限りのセッション同意開示をスキップします。プライバシーの境界を理解し、リマインダーが不要になったら設定してください。プライバシーモードが有効な場合には効果がありません。 |
|
package/README.ko.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Windows 전용 네이티브 MCP(Model Context Protocol) 서버입니다. [whisper.cpp](https://github.com/ggml-org/whisper.cpp)를 사용하여 Claude Desktop에서 음성 및 동영상 파일을 로컬로 전사합니다. GPU 가속, 다국어 지원, 배치 처리를 지원합니다. 모든 전사 처리는 로컬에서 실행 — 음성, 동영상 파일이나 파일 경로가 외부로 전송되는 일은 없습니다.
|
|
4
8
|
|
|
5
9
|
> **왜 이 패키지가 존재하는가?**
|
|
@@ -364,6 +368,8 @@ whisper-windows-mcp에는 민감하고 규제 대상인 콘텐츠를 위한 내
|
|
|
364
368
|
| `WHISPER_CLI_PATH` | whisper-cli.exe 경로 (필수) |
|
|
365
369
|
| `WHISPER_MODEL` | 모델 .bin 파일 경로 (필수) |
|
|
366
370
|
| `WHISPER_THREADS` | CPU 스레드 수 재정의 |
|
|
371
|
+
| `WHISPER_GPU_DEVICE` | 다중 GPU 시스템에서 전사를 고정할 Vulkan 장치 인덱스(Windows GPU 순서가 아닌 Vulkan 열거 인덱스 — whisper-cli 시작 로그를 확인하세요). 호출별 `gpu_device`로 재정의 가능합니다. [TROUBLESHOOTING.md](TROUBLESHOOTING.md) 참고. |
|
|
372
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | 포그라운드 전사 한도(초, 기본값 210). 더 오래 실행될 것으로 추정되는 파일은 Claude Desktop의 약 4분 도구 타임아웃 위험을 감수하는 대신 백그라운드 모드로 라우팅됩니다. |
|
|
367
373
|
| `FFMPEG_PATH` | ffmpeg가 시스템 PATH에 없을 경우 경로 |
|
|
368
374
|
| `WHISPER_PRIVACY_MODE` | `true`로 설정하면 모든 도구 응답에서 전사 텍스트 없이 메타데이터만 반환됩니다. 규제 대상 또는 기밀 콘텐츠에 사용합니다. 호출별 `privacy_mode` 파라미터로 재정의 가능합니다. [PRIVACY.md](PRIVACY.md) 참고. |
|
|
369
375
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | `true`로 설정하면 전사 텍스트 반환 전 표시되는 일회성 세션 동의 공개를 건너뜁니다. 개인 정보 경계를 이해하고 더 이상 알림이 필요하지 않을 때 설정하세요. 개인 정보 모드가 활성화된 경우 효과 없음. |
|
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
A Windows-native MCP (Model Context Protocol) server that lets Claude Desktop transcribe audio and video files locally using [whisper.cpp](https://github.com/ggml-org/whisper.cpp) — with GPU acceleration, multilingual support, and batch processing. All transcription runs locally — no audio, video, or file paths ever leave your machine.
|
|
4
8
|
|
|
5
9
|
> **Why does this exist?**
|
|
@@ -375,6 +379,8 @@ This tool is built to minimize Claude API interactions. The entire transcription
|
|
|
375
379
|
| `WHISPER_CLI_PATH` | Path to whisper-cli.exe (required) |
|
|
376
380
|
| `WHISPER_MODEL` | Path to model .bin file (required) |
|
|
377
381
|
| `WHISPER_THREADS` | CPU thread count override |
|
|
382
|
+
| `WHISPER_GPU_DEVICE` | Vulkan device index to pin transcription to, for multi-GPU systems (the Vulkan enumeration index — check whisper-cli's startup log; not the Windows GPU order). Overridable per-call with `gpu_device`. See [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
|
|
383
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | Foreground-transcription cutoff in seconds (default 210). Files estimated to run longer are routed to background mode instead of risking Claude Desktop's ~4-minute tool timeout. |
|
|
378
384
|
| `FFMPEG_PATH` | Path to ffmpeg if not in system PATH |
|
|
379
385
|
| `WHISPER_PRIVACY_MODE` | When `true`, all tool responses return metadata only — no transcript text transmitted to Claude's API. For regulated or confidential content. Can be overridden per-call with the `privacy_mode` parameter. See [PRIVACY.md](PRIVACY.md). |
|
|
380
386
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | When `true`, skips the one-time session consent disclosure shown before transcript text is returned. Set after you understand the privacy boundary and no longer need the reminder. Has no effect when privacy mode is active. |
|
package/README.pl.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](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?**
|
|
@@ -375,6 +379,8 @@ To narzędzie zostało stworzone, aby zminimalizować interakcje z API Claude. C
|
|
|
375
379
|
| `WHISPER_CLI_PATH` | Ścieżka do whisper-cli.exe (wymagana) |
|
|
376
380
|
| `WHISPER_MODEL` | Ścieżka do pliku modelu .bin (wymagana) |
|
|
377
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. |
|
|
378
384
|
| `FFMPEG_PATH` | Ścieżka do ffmpeg jeśli nie ma go w systemowym PATH |
|
|
379
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). |
|
|
380
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. |
|
package/README.pt-BR.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](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?**
|
|
@@ -364,6 +368,8 @@ Esta ferramenta foi criada para minimizar as interações com a API do Claude. T
|
|
|
364
368
|
| `WHISPER_CLI_PATH` | Caminho para whisper-cli.exe (obrigatório) |
|
|
365
369
|
| `WHISPER_MODEL` | Caminho para o arquivo de modelo .bin (obrigatório) |
|
|
366
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. |
|
|
367
373
|
| `FFMPEG_PATH` | Caminho para o ffmpeg se não estiver no PATH do sistema |
|
|
368
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). |
|
|
369
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. |
|
package/README.ro.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Server MCP (Model Context Protocol) nativ pentru Windows. Folosește [whisper.cpp](https://github.com/ggml-org/whisper.cpp) pentru transcrierea locală a fișierelor audio și video în Claude Desktop — cu accelerare GPU, suport multilingv și procesare în lot. Toată transcrierea se execută local — niciun fișier audio, video sau cale de fișier nu este trimis în exterior.
|
|
4
8
|
|
|
5
9
|
> **De ce există acest pachet?**
|
|
@@ -375,6 +379,8 @@ Acest instrument a fost creat pentru a minimiza interacțiunile cu API-ul Claude
|
|
|
375
379
|
| `WHISPER_CLI_PATH` | Calea către whisper-cli.exe (obligatoriu) |
|
|
376
380
|
| `WHISPER_MODEL` | Calea către fișierul model .bin (obligatoriu) |
|
|
377
381
|
| `WHISPER_THREADS` | Suprascrie numărul de fire CPU |
|
|
382
|
+
| `WHISPER_GPU_DEVICE` | Indexul dispozitivului Vulkan la care se fixează transcrierea, pentru sisteme cu mai multe GPU-uri (indexul de enumerare Vulkan — verifică jurnalul de pornire al whisper-cli; nu ordinea GPU din Windows). Suprascriabil per apel cu `gpu_device`. Vezi [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
|
|
383
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | Limita transcrierii în prim-plan în secunde (implicit 210). Fișierele estimate să ruleze mai mult sunt direcționate către modul în fundal în loc să riște timpul de expirare al instrumentului de ~4 minute al Claude Desktop. |
|
|
378
384
|
| `FFMPEG_PATH` | Calea către ffmpeg dacă nu este în PATH-ul sistemului |
|
|
379
385
|
| `WHISPER_PRIVACY_MODE` | Când `true`, răspunsurile instrumentelor returnează doar metadate — niciun text de transcriere nu este transmis lui Claude. Pentru conținut reglementat sau confidențial. Poate fi suprascris per apel prin parametrul `privacy_mode`. Vezi [PRIVACY.md](PRIVACY.md). |
|
|
380
386
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | Când `true`, suprimă dezvăluirea de consimțământ unică per sesiune înainte de returnarea textului de transcriere. Setează după ce ai revizuit limitele de confidențialitate când memento-ul nu mai este necesar. Nu are efect când modul de confidențialitate este activ. |
|
package/README.uk.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Нативний MCP-сервер (Model Context Protocol) для Windows. Використовує [whisper.cpp](https://github.com/ggml-org/whisper.cpp) для транскрибування аудіо та відеофайлів локально в Claude Desktop — з апаратним прискоренням GPU, підтримкою багатьох мов і пакетним опрацюванням. Уся транскрипція виконується локально — жодні аудіо-, відеофайли чи шляхи до файлів не передаються назовні.
|
|
4
8
|
|
|
5
9
|
> **Чому існує цей пакет?**
|
|
@@ -375,6 +379,8 @@ whisper-windows-mcp містить вбудовану архітектуру к
|
|
|
375
379
|
| `WHISPER_CLI_PATH` | Шлях до whisper-cli.exe (обов'язково) |
|
|
376
380
|
| `WHISPER_MODEL` | Шлях до файлу моделі .bin (обов'язково) |
|
|
377
381
|
| `WHISPER_THREADS` | Перевизначити кількість потоків CPU |
|
|
382
|
+
| `WHISPER_GPU_DEVICE` | Індекс пристрою Vulkan, до якого прив'язати транскрипцію, для систем із кількома GPU (індекс перелічення Vulkan — перевірте журнал запуску whisper-cli; не порядок GPU у Windows). Можна перевизначити для окремого виклику через `gpu_device`. Дивіться [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
|
|
383
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | Межа транскрипції на передньому плані в секундах (типово 210). Файли, виконання яких оцінюється як довше, спрямовуються у фоновий режим замість ризику ~4-хвилинного тайм-ауту інструмента Claude Desktop. |
|
|
378
384
|
| `FFMPEG_PATH` | Шлях до ffmpeg, якщо його немає в системному PATH |
|
|
379
385
|
| `WHISPER_PRIVACY_MODE` | При значенні `true` всі відповіді інструментів повертають лише метадані — жоден текст транскрипції не передається Claude. Для регульованого або конфіденційного контенту. Може бути перевизначено для окремого виклику через параметр `privacy_mode`. Дивіться [PRIVACY.md](PRIVACY.md). |
|
|
380
386
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | При значенні `true` пропускає одноразове розкриття згоди сеансу перед поверненням тексту транскрипції. Встановіть після ознайомлення з межами конфіденційності, коли нагадування більше не потрібне. Не має ефекту, коли режим конфіденційності активний. |
|
package/README.vi.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# whisper-windows-mcp
|
|
2
2
|
|
|
3
|
+
[](https://github.com/eviscerations/whisper-windows-mcp/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
[](https://glama.ai/mcp/servers/eviscerations/whisper-windows-mcp)
|
|
6
|
+
|
|
3
7
|
Máy chủ MCP (Model Context Protocol) dành riêng cho Windows. Sử dụng [whisper.cpp](https://github.com/ggml-org/whisper.cpp) để phiên âm tệp âm thanh và video cục bộ trong Claude Desktop — hỗ trợ tăng tốc GPU, đa ngôn ngữ và xử lý hàng loạt. Toàn bộ quá trình phiên âm chạy cục bộ — không có tệp âm thanh, video hay đường dẫn tệp nào được gửi ra ngoài.
|
|
4
8
|
|
|
5
9
|
> **Tại sao có gói này?**
|
|
@@ -364,6 +368,8 @@ Công cụ này được xây dựng để giảm thiểu các tương tác vớ
|
|
|
364
368
|
| `WHISPER_CLI_PATH` | Đường dẫn đến whisper-cli.exe (bắt buộc) |
|
|
365
369
|
| `WHISPER_MODEL` | Đường dẫn đến tệp mô hình .bin (bắt buộc) |
|
|
366
370
|
| `WHISPER_THREADS` | Ghi đè số luồng CPU |
|
|
371
|
+
| `WHISPER_GPU_DEVICE` | Chỉ số thiết bị Vulkan để ghim phiên âm, dành cho hệ thống nhiều GPU (chỉ số liệt kê của Vulkan — kiểm tra nhật ký khởi động của whisper-cli; không phải thứ tự GPU của Windows). Có thể ghi đè theo từng lệnh gọi bằng `gpu_device`. Xem [TROUBLESHOOTING.md](TROUBLESHOOTING.md). |
|
|
372
|
+
| `WHISPER_FOREGROUND_MAX_SEC` | Ngưỡng cắt phiên âm ở tiền cảnh tính bằng giây (mặc định 210). Các tệp được ước tính chạy lâu hơn sẽ được định tuyến sang chế độ nền thay vì mạo hiểm với thời gian chờ công cụ ~4 phút của Claude Desktop. |
|
|
367
373
|
| `FFMPEG_PATH` | Đường dẫn đến ffmpeg nếu không có trong PATH hệ thống |
|
|
368
374
|
| `WHISPER_PRIVACY_MODE` | Đặt thành `true` để tất cả phản hồi công cụ chỉ trả về siêu dữ liệu — không có văn bản phiên âm nào được trả về cho Claude. Dùng cho nội dung được quản lý hoặc bí mật. Có thể ghi đè theo từng lệnh gọi bằng tham số `privacy_mode`. Xem [PRIVACY.md](PRIVACY.md). |
|
|
369
375
|
| `WHISPER_CONSENT_ACKNOWLEDGED` | Đặt thành `true` để bỏ qua công khai đồng ý phiên một lần hiển thị trước khi trả về văn bản phiên âm. Đặt khi bạn hiểu ranh giới quyền riêng tư và không cần nhắc nhở nữa. Không có hiệu lực khi chế độ quyền riêng tư đang hoạt động. |
|
package/ROADMAP.es.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# whisper-windows-mcp — Hoja de Ruta
|
|
2
2
|
|
|
3
|
-
Versión actual: **v2.
|
|
3
|
+
Versión actual: **v2.4.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -118,9 +118,33 @@ Arquitectura de proceso desconectado: `transcribe_audio` con `background=true` c
|
|
|
118
118
|
- Campo `privacyMode: boolean` añadido a la interfaz `BatchState`.
|
|
119
119
|
- El tipo `BackgroundFormat` excluye `json` (json en modo en segundo plano no está soportado — cae de vuelta a `text`).
|
|
120
120
|
|
|
121
|
+
### ✅ v2.4.0 — Fortalecimiento, guarda de tiempo de espera en primer plano, conjunto de pruebas y CI
|
|
122
|
+
|
|
123
|
+
Una pasada de seguridad/robustez; la migración a Bun planificada se trasladó a v2.5.0.
|
|
124
|
+
|
|
125
|
+
**Seguridad y corrección:**
|
|
126
|
+
- Corrección de contención de rutas en `switch_model` — un directorio con prefijo hermano (p. ej. `…\models-evil`) antes podía satisfacer la comprobación de "dentro del directorio de modelos" mediante un `startsWith` ingenuo; reemplazado por contención normalizada basada en `relative()`. Cierra la fuga que describe SECURITY.md.
|
|
127
|
+
- Barrera de privacidad/consentimiento vinculada **por operación** (herramienta + argumentos) — confirmar una transcripción ya no puede satisfacer la barrera de una operación diferente.
|
|
128
|
+
- `download_model` rechaza descargas truncadas (comprobación de Content-Length) antes de promover un archivo `.part`. (La verificación completa del resumen SHA256 queda pendiente para una pasada posterior.)
|
|
129
|
+
- Coerción de entrada — los parámetros numéricos de herramientas que no son números reales se descartan en lugar de entregarse a whisper-cli como `NaN`.
|
|
130
|
+
|
|
131
|
+
**Robustez:**
|
|
132
|
+
- **Guarda de tiempo de espera en primer plano** — un archivo lo bastante largo como para superar el tiempo de espera de herramienta MCP de ~4 minutos de Claude Desktop en modo bloqueante se detecta de antemano y se enruta a segundo plano en lugar de agotar el tiempo silenciosamente. Umbral configurable mediante `WHISPER_FOREGROUND_MAX_SEC`. Estimaciones de tiempo corregidas (la antigua estimación de GPU subestimaba notablemente; ahora se modela el coste dominante de recarga del modelo — medido, no adivinado).
|
|
133
|
+
- Escrituras atómicas del estado de trabajos/lotes (archivo temporal + renombrado) para que un lector concurrente no pueda observar un archivo JSON a medio escribir.
|
|
134
|
+
- IDs de trabajo/lote/temporales a prueba de colisiones (con sufijo UUID).
|
|
135
|
+
- Apagado controlado ante SIGINT/SIGTERM que limpia los archivos temporales del modo bloqueante.
|
|
136
|
+
|
|
137
|
+
**Selección de dispositivo GPU:**
|
|
138
|
+
- Variable de entorno `WHISPER_GPU_DEVICE`, y `gpu_device` ahora propagado a través de `generate_subtitles` y la pasada de detección de idioma (antes solo `transcribe_audio`). `check_config` informa el dispositivo activo. `check_system` ya no informa erróneamente un problema de controlador cuando `wmic` (obsoleto en Windows 11 24H2+) no devuelve nada.
|
|
139
|
+
|
|
140
|
+
**Calidad:**
|
|
141
|
+
- Un conjunto de pruebas unitarias con `node:test` sobre la lógica pura (contención de rutas, clave de barrera, escrituras atómicas, coerción de entrada, la estimación de tiempo de espera), cero dependencias añadidas, además de un flujo de trabajo de CI de GitHub Actions que lo ejecuta en cada push/PR.
|
|
142
|
+
|
|
143
|
+
**Identificado para una versión futura:** una ruta de modelo persistente (p. ej. `whisper-server` de whisper.cpp) para eliminar el coste de recarga del modelo que se paga en cada transcripción — una gran mejora de rendimiento para trabajo por lotes/de archivo.
|
|
144
|
+
|
|
121
145
|
---
|
|
122
146
|
|
|
123
|
-
## Planificado — v2.
|
|
147
|
+
## Planificado — v2.5.0: Migración a Bun
|
|
124
148
|
|
|
125
149
|
Migrar el runtime de Node.js a [Bun](https://bun.sh).
|
|
126
150
|
|
|
@@ -140,13 +164,13 @@ Claude Desktop crea un nuevo servidor MCP en cada inicio de sesión, por lo que
|
|
|
140
164
|
|
|
141
165
|
---
|
|
142
166
|
|
|
143
|
-
## Planificado — v2.
|
|
167
|
+
## Planificado — v2.6.0: Formatos de salida mejorados para integración con herramientas externas
|
|
144
168
|
|
|
145
169
|
Soporte ampliado de formatos de salida orientado a flujos de trabajo de análisis e integración downstream. El alcance exacto se definirá basándose en los comentarios de usuarios tras v2.3.0.
|
|
146
170
|
|
|
147
171
|
---
|
|
148
172
|
|
|
149
|
-
## Planificado — v2.
|
|
173
|
+
## Planificado — v2.7.0: Modo de transcripción de micrófono en vivo
|
|
150
174
|
|
|
151
175
|
Transcripción en tiempo real desde entrada de micrófono en vivo. Transmite audio en fragmentos desde el dispositivo de grabación seleccionado a whisper, devolviendo segmentos de transcripción completados de forma continua.
|
|
152
176
|
|
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
|
|
|
@@ -118,9 +118,33 @@ Arsitektur proses terpisah: `transcribe_audio` dengan `background=true` menelurk
|
|
|
118
118
|
- Interface `BatchState` diperluas dengan field `privacyMode: boolean`.
|
|
119
119
|
- Tipe `BackgroundFormat` mengecualikan `json` (json dalam mode latar belakang tetap tidak didukung — kembali ke `text`).
|
|
120
120
|
|
|
121
|
+
### ✅ v2.4.0 — Penguatan, Pelindung Batas Waktu Latar Depan, Suite Pengujian & CI
|
|
122
|
+
|
|
123
|
+
Sebuah pas keamanan/ketangguhan; migrasi Bun yang direncanakan dipindahkan ke v2.5.0.
|
|
124
|
+
|
|
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`.
|
|
130
|
+
|
|
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.
|
|
136
|
+
|
|
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.
|
|
139
|
+
|
|
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.
|
|
142
|
+
|
|
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.
|
|
144
|
+
|
|
121
145
|
---
|
|
122
146
|
|
|
123
|
-
## Direncanakan — v2.
|
|
147
|
+
## Direncanakan — v2.5.0: Migrasi Bun
|
|
124
148
|
|
|
125
149
|
Migrasikan runtime dari Node.js ke [Bun](https://bun.sh).
|
|
126
150
|
|
|
@@ -140,13 +164,13 @@ Karena Claude Desktop menelurkan server MCP baru setiap kali sesi dimulai, waktu
|
|
|
140
164
|
|
|
141
165
|
---
|
|
142
166
|
|
|
143
|
-
## Direncanakan — v2.
|
|
167
|
+
## Direncanakan — v2.6.0: Format Output Lanjutan untuk Integrasi Alat Eksternal
|
|
144
168
|
|
|
145
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.
|
|
146
170
|
|
|
147
171
|
---
|
|
148
172
|
|
|
149
|
-
## Direncanakan — v2.
|
|
173
|
+
## Direncanakan — v2.7.0: Mode Transkripsi Mikrofon Langsung
|
|
150
174
|
|
|
151
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.
|
|
152
176
|
|
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
|
|
|
@@ -118,9 +118,33 @@ FFprobeを使用した`analyze_media`ツール:時間、サイズ、コーデ
|
|
|
118
118
|
- `BatchState`インターフェースに`privacyMode: boolean`フィールドを追加。
|
|
119
119
|
- `BackgroundFormat`型が`json`を除外(バックグラウンドモードでのjsonはサポートされず`text`にフォールバック)。
|
|
120
120
|
|
|
121
|
+
### ✅ v2.4.0 — 堅牢化、フォアグラウンドガード、テストスイート&CI
|
|
122
|
+
|
|
123
|
+
セキュリティ/堅牢性のための見直し。予定されていたBun移行はv2.5.0に延期されました。
|
|
124
|
+
|
|
125
|
+
**セキュリティと正確性:**
|
|
126
|
+
- `switch_model`のパス封じ込め修正 — 兄弟プレフィックスのディレクトリ(例:`…\models-evil`)が、以前は単純な`startsWith`によって「モデルディレクトリ内」チェックを満たし得ましたが、正規化された`relative()`ベースの封じ込めに置き換えました。SECURITY.mdが記述する脱出経路を塞ぎます。
|
|
127
|
+
- プライバシー/同意ゲートを**操作ごと**(ツール+引数)にキー化 — ある文字起こしを確認しても、別の操作のゲートを満たすことはできなくなりました。
|
|
128
|
+
- `download_model`は、`.part`ファイルを昇格させる前に、切り詰められたダウンロードを拒否します(Content-Lengthチェック)。(完全なSHA256ダイジェスト検証は後のパスで対応予定。)
|
|
129
|
+
- 入力の強制変換 — 実際の数値ではない数値型ツールパラメータは、`NaN`としてwhisper-cliに渡されるのではなく破棄されます。
|
|
130
|
+
|
|
131
|
+
**堅牢性:**
|
|
132
|
+
- **フォアグラウンドタイムアウトガード** — ブロッキングモードでClaude Desktopの約4分のMCPツールタイムアウトを超えるほど長いファイルを事前に検出し、静かにタイムアウトする代わりにバックグラウンドにルーティングします。しきい値は`WHISPER_FOREGROUND_MAX_SEC`で設定可能。時間推定を修正しました(旧GPU推定は大幅に過小評価していました。支配的なモデル再読み込みコストをモデル化 — 推測ではなく実測)。
|
|
133
|
+
- ジョブ/バッチ状態のアトミックな書き込み(一時ファイル+リネーム)により、並行リーダーが破損したJSONファイルを観測できないようにしました。
|
|
134
|
+
- 衝突しないジョブ/バッチ/一時ID(UUIDサフィックス付き)。
|
|
135
|
+
- ブロッキングモードの一時ファイルをクリーンアップする、SIGINT/SIGTERMの正常なシャットダウン。
|
|
136
|
+
|
|
137
|
+
**GPUデバイス選択:**
|
|
138
|
+
- `WHISPER_GPU_DEVICE`環境変数、および`gpu_device`が`generate_subtitles`と言語検出パスにも適用されるようになりました(以前は`transcribe_audio`のみ)。`check_config`はアクティブなデバイスを報告します。`check_system`は、`wmic`(Windows 11 24H2+で非推奨)が何も返さない場合にドライバーの問題を誤って報告しなくなりました。
|
|
139
|
+
|
|
140
|
+
**品質:**
|
|
141
|
+
- 純粋なロジック(パス封じ込め、ゲートのキー化、アトミック書き込み、入力強制変換、タイムアウト推定)を対象とした`node:test`ユニットテストスイート。追加依存関係はゼロ。さらに、すべてのpush/PRで実行するGitHub Actions CIワークフロー。
|
|
142
|
+
|
|
143
|
+
**将来のリリースで対応予定:** 永続モデルパス(例:whisper.cppの`whisper-server`)により、毎回の文字起こしで発生するモデル再読み込みコストを排除 — バッチ/アーカイブ作業で大きなスループット向上。
|
|
144
|
+
|
|
121
145
|
---
|
|
122
146
|
|
|
123
|
-
## 予定 — v2.
|
|
147
|
+
## 予定 — v2.5.0:Bunへの移行
|
|
124
148
|
|
|
125
149
|
ランタイムをNode.jsから[Bun](https://bun.sh)に移行します。
|
|
126
150
|
|
|
@@ -140,13 +164,13 @@ Claude Desktopはセッション起動のたびにMCPサーバーを新しく生
|
|
|
140
164
|
|
|
141
165
|
---
|
|
142
166
|
|
|
143
|
-
## 予定 — v2.
|
|
167
|
+
## 予定 — v2.6.0:外部ツール連携向け拡張出力フォーマット
|
|
144
168
|
|
|
145
169
|
下流の分析と連携ワークフローを対象とした拡張出力フォーマットサポート。正確なスコープはv2.3.0後のユーザーフィードバックに基づいて定義予定。
|
|
146
170
|
|
|
147
171
|
---
|
|
148
172
|
|
|
149
|
-
## 予定 — v2.
|
|
173
|
+
## 予定 — v2.7.0:ライブマイク文字起こしモード
|
|
150
174
|
|
|
151
175
|
ライブマイク入力からのリアルタイム文字起こし。選択した録音デバイスからの音声をチャンクでwhisperにストリーミングし、完了したセグメントをローリングトランスクリプトとして返す。
|
|
152
176
|
|
package/ROADMAP.ko.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
|
|
|
@@ -118,9 +118,33 @@ FFprobe를 사용한 `analyze_media` 도구: 재생 시간, 크기, 코덱, 전
|
|
|
118
118
|
- `BatchState` 인터페이스에 `privacyMode: boolean` 필드가 추가됩니다.
|
|
119
119
|
- `BackgroundFormat` 타입이 `json`을 제외합니다(백그라운드 모드의 json은 지원되지 않음 — `text`로 폴백).
|
|
120
120
|
|
|
121
|
+
### ✅ v2.4.0 — 강화, 포그라운드 가드, 테스트 스위트 및 CI
|
|
122
|
+
|
|
123
|
+
보안/견고성 점검 패스. 계획되었던 Bun 마이그레이션은 v2.5.0으로 연기되었습니다.
|
|
124
|
+
|
|
125
|
+
**보안 및 정확성:**
|
|
126
|
+
- `switch_model` 경로 격리 수정 — 형제 접두사 디렉터리(예: `…\models-evil`)가 이전에는 단순한 `startsWith`로 "모델 디렉터리 내부" 검사를 통과할 수 있었으나, 정규화된 `relative()` 기반 격리로 교체했습니다. SECURITY.md가 설명하는 탈출 경로를 막습니다.
|
|
127
|
+
- 개인 정보/동의 게이트를 **작업별**(도구 + 인수)로 키 지정 — 한 전사를 확인해도 더 이상 다른 작업의 게이트를 충족할 수 없습니다.
|
|
128
|
+
- `download_model`은 `.part` 파일을 승격하기 전에 잘린 다운로드를 거부합니다(Content-Length 검사). (전체 SHA256 다이제스트 검증은 이후 패스에서 추적합니다.)
|
|
129
|
+
- 입력 강제 변환 — 실제 숫자가 아닌 숫자형 도구 매개변수는 `NaN`으로 whisper-cli에 전달되는 대신 폐기됩니다.
|
|
130
|
+
|
|
131
|
+
**견고성:**
|
|
132
|
+
- **포그라운드 타임아웃 가드** — 차단 모드에서 Claude Desktop의 약 4분 MCP 도구 타임아웃을 초과할 만큼 긴 파일을 미리 감지하여 조용히 타임아웃되는 대신 백그라운드로 라우팅합니다. 임계값은 `WHISPER_FOREGROUND_MAX_SEC`로 구성 가능합니다. 시간 추정을 수정했습니다(이전 GPU 추정은 크게 과소평가했음. 이제 지배적인 모델 재로드 비용을 모델링 — 추측이 아닌 실측).
|
|
133
|
+
- 작업/배치 상태의 원자적 쓰기(임시 파일 + 이름 변경)로 동시 읽기에서 손상된 JSON 파일을 관찰할 수 없도록 했습니다.
|
|
134
|
+
- 충돌 방지 작업/배치/임시 ID(UUID 접미사).
|
|
135
|
+
- 차단 모드 임시 파일을 정리하는 SIGINT/SIGTERM 우아한 종료.
|
|
136
|
+
|
|
137
|
+
**GPU 장치 선택:**
|
|
138
|
+
- `WHISPER_GPU_DEVICE` 환경 변수, 그리고 `gpu_device`가 이제 `generate_subtitles`와 언어 감지 패스에도 적용됩니다(이전에는 `transcribe_audio`만). `check_config`는 활성 장치를 보고합니다. `check_system`은 `wmic`(Windows 11 24H2+에서 더 이상 사용되지 않음)가 아무것도 반환하지 않을 때 더 이상 드라이버 문제를 잘못 보고하지 않습니다.
|
|
139
|
+
|
|
140
|
+
**품질:**
|
|
141
|
+
- 순수 로직(경로 격리, 게이트 키 지정, 원자적 쓰기, 입력 강제 변환, 타임아웃 추정)에 대한 `node:test` 단위 테스트 스위트, 추가 의존성 제로, 그리고 모든 push/PR에서 실행하는 GitHub Actions CI 워크플로우.
|
|
142
|
+
|
|
143
|
+
**향후 릴리스를 위해 식별됨:** 모든 전사마다 발생하는 모델 재로드 비용을 제거하기 위한 영구 모델 경로(예: whisper.cpp의 `whisper-server`) — 배치/아카이브 작업에서 큰 처리량 향상.
|
|
144
|
+
|
|
121
145
|
---
|
|
122
146
|
|
|
123
|
-
## 계획됨 — v2.
|
|
147
|
+
## 계획됨 — v2.5.0: Bun 마이그레이션
|
|
124
148
|
|
|
125
149
|
런타임을 Node.js에서 [Bun](https://bun.sh)으로 마이그레이션합니다.
|
|
126
150
|
|
|
@@ -140,13 +164,13 @@ Claude Desktop은 모든 세션 시작 시 MCP 서버를 새로 생성하므로
|
|
|
140
164
|
|
|
141
165
|
---
|
|
142
166
|
|
|
143
|
-
## 계획됨 — v2.
|
|
167
|
+
## 계획됨 — v2.6.0: 외부 도구 통합을 위한 향상된 출력 포맷
|
|
144
168
|
|
|
145
169
|
다운스트림 분석 및 통합 워크플로우를 대상으로 하는 확장된 출력 포맷 지원. 정확한 범위는 v2.3.0 이후 사용자 피드백을 기반으로 결정됩니다.
|
|
146
170
|
|
|
147
171
|
---
|
|
148
172
|
|
|
149
|
-
## 계획됨 — v2.
|
|
173
|
+
## 계획됨 — v2.7.0: 실시간 마이크 전사 모드
|
|
150
174
|
|
|
151
175
|
라이브 마이크 입력에서의 실시간 전사. 선택된 녹음 장치에서 오디오를 청크 단위로 whisper에 스트리밍하여 완료된 전사 세그먼트를 롤링 방식으로 반환합니다.
|
|
152
176
|
|