whisper-windows-mcp 2.2.1 → 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/README.pt-BR.md CHANGED
@@ -1,393 +1,393 @@
1
- # whisper-windows-mcp
2
-
3
- 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
-
5
- > **Por que este pacote existe?**
6
- > O popular pacote `whisper-mcp` foi criado para macOS e assume um ambiente Unix. Ele não funciona no Windows. Este pacote foi escrito especificamente para usuários Windows que querem transcrição de IA local integrada ao Claude Desktop.
7
-
8
- ---
9
-
10
- ## O que você pode fazer
11
-
12
- Após a instalação, basta falar diretamente no Claude Desktop:
13
-
14
- - *"Transcreva C:\Users\Me\Downloads\meeting.mp3"*
15
- - *"Transcreva todas as gravações nesta pasta e salve cada uma como arquivo de texto"*
16
- - *"Crie legendas em português e inglês para este vídeo"*
17
- - *"Inicie a transcrição em lote de todos os arquivos nesta pasta"*
18
- - *"Quanto tempo vai levar para transcrever esses arquivos?"*
19
- - *"Verifique se a aceleração por GPU está funcionando"*
20
-
21
- ---
22
-
23
- ## Requisitos
24
-
25
- 1. **Node.js 18 ou superior** — [nodejs.org](https://nodejs.org)
26
- 2. **Binário do whisper.cpp com suporte a Vulkan GPU** — veja o Passo 1
27
- 3. **Arquivo de modelo Whisper** — veja o Passo 2
28
- 4. **FFmpeg** — necessário para arquivos de vídeo e formatos de áudio que não sejam WAV/MP3
29
-
30
- ---
31
-
32
- ## Passo 1 — Instalar o binário do whisper.cpp
33
-
34
- ### Opção A — Release Vulkan pré-compilado (recomendado)
35
-
36
- Baixe `whisper-vulkan-win-x64.zip` da [página de releases](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0).
37
-
38
- Esta é uma build personalizada com **aceleração Vulkan GPU** ativada. Funciona com GPUs AMD, NVIDIA e Intel — sem necessidade de SDKs específicos de fabricante.
39
-
40
- Extraia para `C:\whisper\Release\`. Você deverá ter:
41
-
42
- ```
43
- C:\whisper\Release\whisper-cli.exe
44
- C:\whisper\Release\ggml-vulkan.dll
45
- C:\whisper\Release\ggml.dll
46
- C:\whisper\Release\ggml-base.dll
47
- C:\whisper\Release\ggml-cpu.dll
48
- C:\whisper\Release\whisper.dll
49
- ```
50
-
51
- A aceleração por GPU é ativada automaticamente — nenhuma configuração adicional é necessária.
52
-
53
- ### Opção B — Compilar do código-fonte
54
-
55
- Necessário: Git, CMake, Visual Studio Build Tools 2022+ com "Desktop development with C++", Vulkan SDK do [lunarg.com](https://vulkan.lunarg.com/sdk/home#windows).
56
-
57
- ```
58
- git clone https://github.com/ggml-org/whisper.cpp
59
- cd whisper.cpp
60
- cmake -B build -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
61
- cmake --build build --config Release --target whisper-cli
62
- ```
63
-
64
- Copie os binários de `build\bin\Release\` para `C:\whisper\Release\`.
65
-
66
- > **Nota:** Os releases oficiais do whisper.cpp para Windows no GitHub não incluem build Vulkan. Use o release pré-compilado acima ou compile do código-fonte com `-DGGML_VULKAN=ON`.
67
-
68
- ---
69
-
70
- ## Passo 2 — Baixar o modelo Whisper
71
-
72
- | Modelo | Tamanho | Velocidade | Precisão | Melhor para |
73
- |---|---|---|---|---|
74
- | `ggml-tiny.en.bin` | 75 MB | Muito rápido | Básica | Testes rápidos |
75
- | `ggml-base.en.bin` | 142 MB | Rápido | Boa | Inglês do dia a dia |
76
- | `ggml-small.en.bin` | 466 MB | Moderado | Melhor | Gravações importantes |
77
- | `ggml-medium.en.bin` | 1,5 GB | Rápido na GPU | Muito boa | Inglês com máxima qualidade |
78
- | `ggml-large-v3-turbo.bin` | 1,6 GB | Rápido na GPU | Excelente | **Recomendado para lote em GPU — ~6x mais rápido que large-v3 com perda mínima de precisão** |
79
- | `ggml-large-v3.bin` | 2,9 GB | Rápido na GPU | Excelente | Multilíngue, precisão máxima |
80
- | `ggml-medium.en-q5_0.bin` | 514 MB | Rápido | Muito boa | **Melhor escolha CPU-only para inglês — alta precisão com baixo consumo de memória** |
81
- | `ggml-large-v3-turbo-q5_0.bin` | 547 MB | Rápido | Excelente | **Melhor escolha CPU-only multilíngue** |
82
- | `ggml-large-v3-q5_0.bin` | 1,1 GB | Moderado na CPU | Excelente | Multilíngue, amigável à CPU |
83
-
84
- Use `download_model` no Claude Desktop para instalar diretamente. Para **somente inglês**: `large-v3-turbo` (GPU) ou `medium.en-q5_0` (CPU). Para **multilíngue**: `large-v3-turbo` ou `large-v3-turbo-q5_0` (CPU). Modelos somente inglês (`*.en.bin`) geram `[FOREIGN]` em áudio que não seja inglês e não podem ser usados para outros idiomas.
85
-
86
- ---
87
-
88
- ## Passo 3 — Instalar o FFmpeg
89
-
90
- O FFmpeg é necessário para arquivos de vídeo e formatos de áudio não nativos.
91
-
92
- Instale via winget:
93
- ```
94
- winget install ffmpeg
95
- ```
96
-
97
- Ou baixe em [ffmpeg.org](https://ffmpeg.org/download.html) e adicione ao PATH.
98
-
99
- Verifique:
100
- ```
101
- ffmpeg -version
102
- ```
103
-
104
- ---
105
-
106
- ## Passo 4 — Instalar o servidor MCP
107
-
108
- ```
109
- npm install -g whisper-windows-mcp
110
- ```
111
-
112
- ---
113
-
114
- ## Passo 5 — Configurar o Claude Desktop
115
-
116
- Abra Claude Desktop → Configurações → Desenvolvedor → Editar Configuração.
117
-
118
- Adicione a entrada `whisper`:
119
-
120
- ```json
121
- {
122
- "mcpServers": {
123
- "whisper": {
124
- "command": "npx",
125
- "args": ["-y", "whisper-windows-mcp"],
126
- "env": {
127
- "WHISPER_CLI_PATH": "C:\\whisper\\Release\\whisper-cli.exe",
128
- "WHISPER_MODEL": "C:\\whisper\\models\\ggml-medium.en.bin"
129
- }
130
- }
131
- }
132
- }
133
- ```
134
-
135
- Local do arquivo de configuração: `C:\Users\SeuUsuário\AppData\Roaming\Claude\claude_desktop_config.json`
136
-
137
- > Use **barras invertidas duplas** em todos os caminhos.
138
-
139
- Salve e **reinicie completamente** o Claude Desktop. Você verá **whisper** listado com um emblema verde "em execução" em Configurações → Desenvolvedor.
140
-
141
- ---
142
-
143
- ## Passo 6 — Verificar a instalação
144
-
145
- No Claude Desktop, pergunte:
146
-
147
- > *"Verifique a configuração do whisper"*
148
-
149
- Depois:
150
-
151
- > *"Verifique o hardware do sistema"*
152
-
153
- Isso confirma que sua GPU foi detectada e a aceleração Vulkan está ativa.
154
-
155
- ---
156
-
157
- ## Ferramentas disponíveis
158
-
159
- ### `transcribe_audio`
160
- Transcreve um único arquivo. Suporta modo de bloqueio (padrão) ou em segundo plano para arquivos longos.
161
-
162
- | Parâmetro | Descrição |
163
- |---|---|
164
- | `file_path` | Caminho absoluto para o arquivo (obrigatório) |
165
- | `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` |
167
- | `save_to_file` | Salva a transcrição como .txt ao lado do arquivo de origem |
168
- | `background` | Executa como tarefa separada — retorna ID da tarefa imediatamente. Use `check_progress` para monitorar. Recomendado para arquivos com mais de 10 minutos. |
169
- | `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. |
171
- | `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
- | `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. |
175
- | `gpu_device` | Índice do dispositivo GPU para sistemas multi-GPU. Padrão 0. |
176
- | `processors` | Número de processadores paralelos. Padrão 1. |
177
- | `word_timestamps` | Uma palavra por segmento com carimbo de tempo. Útil para alinhamento de clipes. |
178
- | `max_segment_length` | Comprimento máximo do segmento em caracteres. |
179
- | `diarize` | Diarização de falantes estéreo — requer áudio estéreo com falantes em canais separados. |
180
- | `vad_model` | Caminho para o arquivo .bin do modelo Silero VAD. Remove silêncio antes de transcrever — reduz alucinações em arquivos ruidosos. |
181
- | `offset_t` | Deslocamento de início em milissegundos. |
182
- | `duration` | Duração a processar em milissegundos a partir do deslocamento. |
183
-
184
- ---
185
-
186
- ### `check_progress`
187
- Monitora uma tarefa de transcrição em segundo plano iniciada com `transcribe_audio` (background=true).
188
-
189
- Retorna o tempo decorrido, o último carimbo de tempo processado, a porcentagem e a transcrição completa ao terminar.
190
-
191
- | Parâmetro | Descrição |
192
- |---|---|
193
- | `job_id` | ID da tarefa retornado por `transcribe_audio` |
194
-
195
- ---
196
-
197
- ### `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.
199
-
200
- | Parâmetro | Descrição |
201
- |---|---|
202
- | `folder_path` | Caminho para a pasta (obrigatório) |
203
- | `language` | Código do idioma. Padrão: `en` |
204
- | `threads` | Substitui o número de threads da CPU |
205
-
206
- ---
207
-
208
- ### `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.
210
-
211
- | Parâmetro | Descrição |
212
- |---|---|
213
- | `batch_id` | ID do lote retornado por `start_batch` |
214
-
215
- ---
216
-
217
- ### `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.
219
-
220
- | Parâmetro | Descrição |
221
- |---|---|
222
- | `folder_path` | Caminho para a pasta (obrigatório) |
223
- | `file_index` | Qual arquivo processar (começa em 1). Omita para listar os arquivos primeiro. |
224
- | `language` | Código do idioma. Padrão: `en` |
225
- | `recursive` | Incluir subpastas |
226
-
227
- ---
228
-
229
- ### `generate_subtitles`
230
- Gera arquivos de legenda SRT. Suporta detecção automática de idioma e saída de tradução para inglês.
231
-
232
- | Parâmetro | Descrição |
233
- |---|---|
234
- | `file_path` | Caminho para o arquivo (obrigatório) |
235
- | `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. |
237
- | `threads` | Substitui o número de threads da CPU |
238
-
239
- Quando ambos são solicitados, dois arquivos são salvos ao lado da origem:
240
- - `arquivo.pt.srt` — idioma original
241
- - `arquivo.en.srt` — tradução para inglês
242
-
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.
244
-
245
- ---
246
-
247
- ### `analyze_media`
248
- Analisa um arquivo antes de transcrever. Retorna duração, tamanho, codec e estimativa de tempo de transcrição na CPU e GPU. Para pastas, exibe todos os arquivos em uma tabela ordenável com status de transcrição.
249
-
250
- | Parâmetro | Descrição |
251
- |---|---|
252
- | `path` | Caminho para um único arquivo ou pasta (obrigatório) |
253
- | `sort_by` | Para pastas: `duration` (padrão), `name` ou `size` |
254
-
255
- ---
256
-
257
- ### `check_config`
258
- Verifica se whisper-cli.exe, o arquivo de modelo e o FFmpeg estão todos acessíveis. Execute isso primeiro se algo não estiver funcionando.
259
-
260
- ---
261
-
262
- ### `list_models`
263
- Lista todos os arquivos de modelo Whisper instalados no seu diretório de modelos. Exibe nome do arquivo, tamanho, se está ativo, status de quantização e casos de uso recomendados. Sem chamadas de rede — lê apenas o sistema de arquivos local.
264
-
265
- ---
266
-
267
- ### `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.
269
-
270
- | Parâmetro | Descrição |
271
- |---|---|
272
- | `model_name` | Nome do modelo a baixar, ex.: `large-v3-turbo`, `large-v3-turbo-q5_0`, `medium.en-q5_0` |
273
-
274
- ---
275
-
276
- ### `switch_model`
277
- Troca o modelo Whisper ativo para a sessão atual sem reiniciar o Claude Desktop. A mudança é válida apenas para a sessão — não persiste após reinicialização. Para torná-la permanente, atualize `WHISPER_MODEL` na sua configuração.
278
-
279
- | Parâmetro | Descrição |
280
- |---|---|
281
- | `model_name` | Nome do arquivo de modelo (ex.: `ggml-large-v3-turbo.bin`) ou caminho completo. Deve ser um arquivo `.bin` no diretório de modelos configurado. |
282
-
283
- ---
284
-
285
- ### `check_system`
286
- Detecta o hardware GPU e confirma se a aceleração Vulkan está disponível. Reporta o nome da GPU, VRAM, presença do `ggml-vulkan.dll` e recomenda o melhor tamanho de modelo para seu hardware.
287
-
288
- ---
289
-
290
- ## Formatos suportados
291
-
292
- | Tipo | Formatos |
293
- |---|---|
294
- | Nativos (sem conversão) | `mp3`, `wav` |
295
- | Vídeo (convertido automaticamente via FFmpeg) | `mp4`, `mkv`, `avi`, `mov`, `webm`, `flv`, `wmv`, `m4v`, `ts`, `3gp` |
296
- | Áudio (convertido automaticamente via FFmpeg) | `m4a`, `ogg`, `flac` |
297
-
298
- ---
299
-
300
- ## Aceleração por GPU
301
-
302
- 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
-
304
- **Comparação de desempenho (modelo medium.en, arquivo de áudio ~5 minutos):**
305
-
306
- | Hardware | Tempo |
307
- |---|---|
308
- | Somente CPU (Ryzen 7 2700x, 8 threads) | 8–12 minutos |
309
- | GPU (Vega 56 via Vulkan) | 20–40 segundos |
310
-
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%.
312
-
313
- ---
314
-
315
- ## Suporte multilíngue
316
-
317
- O Whisper pode detectar automaticamente o idioma falado e transcrever nesse idioma. O modelo de tradução integrado traduz apenas **para o inglês**.
318
-
319
- Para a melhor precisão multilíngue, use o modelo `large-v3`. Modelos somente inglês (`*.en.bin`) não conseguem detectar ou transcrever outros idiomas.
320
-
321
- **Exemplo — vídeo em língua estrangeira com legendas:**
322
- 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
326
-
327
- ---
328
-
329
- ## Projetado para usuários do plano gratuito
330
-
331
- Esta ferramenta foi criada para minimizar as interações com a API do Claude. Todo o fluxo de trabalho de transcrição — varredura, análise, fila, execução, validação — é projetado para exigir o menor número possível de interações com o Claude. O trabalho pesado é feito localmente na sua máquina.
332
-
333
- ---
334
-
335
- ## Variáveis de ambiente opcionais
336
-
337
- | Variável | Descrição |
338
- |---|---|
339
- | `WHISPER_CLI_PATH` | Caminho para whisper-cli.exe (obrigatório) |
340
- | `WHISPER_MODEL` | Caminho para o arquivo de modelo .bin (obrigatório) |
341
- | `WHISPER_THREADS` | Substitui o número de threads da CPU |
342
- | `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
358
-
359
- ---
360
-
361
- ## Segurança e privacidade
362
-
363
- O whisper-windows-mcp foi projetado com segurança como princípio central.
364
-
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.
366
-
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.
368
-
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.
370
-
371
- **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
-
373
- **Consciência de injeção de transcrição.** Arquivos de áudio podem conter conteúdo falado que, quando transcrito, se assemelha a instruções. As defesas integradas do Claude lidam com isso, mas vale saber que o próprio servidor MCP trata o conteúdo de transcrição como dados — nunca como instruções.
374
-
375
- **Downloads de modelos são restritos.** A ferramenta `download_model` baixa apenas de dois namespaces confiáveis do Hugging Face (`ggerganov/whisper.cpp` e `ggml-org`). URLs arbitrários são rejeitados. Redirecionamentos são validados contra uma lista de permissões antes de serem seguidos.
376
-
377
- **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
-
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.
380
-
381
- ---
382
-
383
- ## Licença
384
-
385
- MIT
386
-
387
- ---
388
-
389
- ## Contribuições
390
-
391
- Pull requests são bem-vindos. Veja [ROADMAP.md](ROADMAP.md) para as funcionalidades planejadas.
392
-
393
- Se você testou a aceleração por GPU em hardware não listado acima, abra uma issue com os resultados — modelo da GPU, VRAM, tamanho do modelo e throughput observado.
1
+ # whisper-windows-mcp
2
+
3
+ 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
+
5
+ > **Por que este pacote existe?**
6
+ > O popular pacote `whisper-mcp` foi criado para macOS e assume um ambiente Unix. Ele não funciona no Windows. Este pacote foi escrito especificamente para usuários Windows que querem transcrição de IA local integrada ao Claude Desktop.
7
+
8
+ ---
9
+
10
+ ## O que você pode fazer
11
+
12
+ Após a instalação, basta falar diretamente no Claude Desktop:
13
+
14
+ - *"Transcreva C:\Users\Me\Downloads\meeting.mp3"*
15
+ - *"Transcreva todas as gravações nesta pasta e salve cada uma como arquivo de texto"*
16
+ - *"Crie legendas em português e inglês para este vídeo"*
17
+ - *"Inicie a transcrição em lote de todos os arquivos nesta pasta"*
18
+ - *"Quanto tempo vai levar para transcrever esses arquivos?"*
19
+ - *"Verifique se a aceleração por GPU está funcionando"*
20
+
21
+ ---
22
+
23
+ ## Requisitos
24
+
25
+ 1. **Node.js 18 ou superior** — [nodejs.org](https://nodejs.org)
26
+ 2. **Binário do whisper.cpp com suporte a Vulkan GPU** — veja o Passo 1
27
+ 3. **Arquivo de modelo Whisper** — veja o Passo 2
28
+ 4. **FFmpeg** — necessário para arquivos de vídeo e formatos de áudio que não sejam WAV/MP3
29
+
30
+ ---
31
+
32
+ ## Passo 1 — Instalar o binário do whisper.cpp
33
+
34
+ ### Opção A — Release Vulkan pré-compilado (recomendado)
35
+
36
+ Baixe `whisper-vulkan-win-x64.zip` da [página de releases](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0).
37
+
38
+ Esta é uma build personalizada com **aceleração Vulkan GPU** ativada. Funciona com GPUs AMD, NVIDIA e Intel — sem necessidade de SDKs específicos de fabricante.
39
+
40
+ Extraia para `C:\whisper\Release\`. Você deverá ter:
41
+
42
+ ```
43
+ C:\whisper\Release\whisper-cli.exe
44
+ C:\whisper\Release\ggml-vulkan.dll
45
+ C:\whisper\Release\ggml.dll
46
+ C:\whisper\Release\ggml-base.dll
47
+ C:\whisper\Release\ggml-cpu.dll
48
+ C:\whisper\Release\whisper.dll
49
+ ```
50
+
51
+ A aceleração por GPU é ativada automaticamente — nenhuma configuração adicional é necessária.
52
+
53
+ ### Opção B — Compilar do código-fonte
54
+
55
+ Necessário: Git, CMake, Visual Studio Build Tools 2022+ com "Desktop development with C++", Vulkan SDK do [lunarg.com](https://vulkan.lunarg.com/sdk/home#windows).
56
+
57
+ ```
58
+ git clone https://github.com/ggml-org/whisper.cpp
59
+ cd whisper.cpp
60
+ cmake -B build -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
61
+ cmake --build build --config Release --target whisper-cli
62
+ ```
63
+
64
+ Copie os binários de `build\bin\Release\` para `C:\whisper\Release\`.
65
+
66
+ > **Nota:** Os releases oficiais do whisper.cpp para Windows no GitHub não incluem build Vulkan. Use o release pré-compilado acima ou compile do código-fonte com `-DGGML_VULKAN=ON`.
67
+
68
+ ---
69
+
70
+ ## Passo 2 — Baixar o modelo Whisper
71
+
72
+ | Modelo | Tamanho | Velocidade | Precisão | Melhor para |
73
+ |---|---|---|---|---|
74
+ | `ggml-tiny.en.bin` | 75 MB | Muito rápido | Básica | Testes rápidos |
75
+ | `ggml-base.en.bin` | 142 MB | Rápido | Boa | Inglês do dia a dia |
76
+ | `ggml-small.en.bin` | 466 MB | Moderado | Melhor | Gravações importantes |
77
+ | `ggml-medium.en.bin` | 1,5 GB | Rápido na GPU | Muito boa | Inglês com máxima qualidade |
78
+ | `ggml-large-v3-turbo.bin` | 1,6 GB | Rápido na GPU | Excelente | **Recomendado para lote em GPU — ~6x mais rápido que large-v3 com perda mínima de precisão** |
79
+ | `ggml-large-v3.bin` | 2,9 GB | Rápido na GPU | Excelente | Multilíngue, precisão máxima |
80
+ | `ggml-medium.en-q5_0.bin` | 514 MB | Rápido | Muito boa | **Melhor escolha CPU-only para inglês — alta precisão com baixo consumo de memória** |
81
+ | `ggml-large-v3-turbo-q5_0.bin` | 547 MB | Rápido | Excelente | **Melhor escolha CPU-only multilíngue** |
82
+ | `ggml-large-v3-q5_0.bin` | 1,1 GB | Moderado na CPU | Excelente | Multilíngue, amigável à CPU |
83
+
84
+ Use `download_model` no Claude Desktop para instalar diretamente. Para **somente inglês**: `large-v3-turbo` (GPU) ou `medium.en-q5_0` (CPU). Para **multilíngue**: `large-v3-turbo` ou `large-v3-turbo-q5_0` (CPU). Modelos somente inglês (`*.en.bin`) geram `[FOREIGN]` em áudio que não seja inglês e não podem ser usados para outros idiomas.
85
+
86
+ ---
87
+
88
+ ## Passo 3 — Instalar o FFmpeg
89
+
90
+ O FFmpeg é necessário para arquivos de vídeo e formatos de áudio não nativos.
91
+
92
+ Instale via winget:
93
+ ```
94
+ winget install ffmpeg
95
+ ```
96
+
97
+ Ou baixe em [ffmpeg.org](https://ffmpeg.org/download.html) e adicione ao PATH.
98
+
99
+ Verifique:
100
+ ```
101
+ ffmpeg -version
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Passo 4 — Instalar o servidor MCP
107
+
108
+ ```
109
+ npm install -g whisper-windows-mcp
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Passo 5 — Configurar o Claude Desktop
115
+
116
+ Abra Claude Desktop → Configurações → Desenvolvedor → Editar Configuração.
117
+
118
+ Adicione a entrada `whisper`:
119
+
120
+ ```json
121
+ {
122
+ "mcpServers": {
123
+ "whisper": {
124
+ "command": "npx",
125
+ "args": ["-y", "whisper-windows-mcp"],
126
+ "env": {
127
+ "WHISPER_CLI_PATH": "C:\\whisper\\Release\\whisper-cli.exe",
128
+ "WHISPER_MODEL": "C:\\whisper\\models\\ggml-medium.en.bin"
129
+ }
130
+ }
131
+ }
132
+ }
133
+ ```
134
+
135
+ Local do arquivo de configuração: `C:\Users\SeuUsuário\AppData\Roaming\Claude\claude_desktop_config.json`
136
+
137
+ > Use **barras invertidas duplas** em todos os caminhos.
138
+
139
+ Salve e **reinicie completamente** o Claude Desktop. Você verá **whisper** listado com um emblema verde "em execução" em Configurações → Desenvolvedor.
140
+
141
+ ---
142
+
143
+ ## Passo 6 — Verificar a instalação
144
+
145
+ No Claude Desktop, pergunte:
146
+
147
+ > *"Verifique a configuração do whisper"*
148
+
149
+ Depois:
150
+
151
+ > *"Verifique o hardware do sistema"*
152
+
153
+ Isso confirma que sua GPU foi detectada e a aceleração Vulkan está ativa.
154
+
155
+ ---
156
+
157
+ ## Ferramentas disponíveis
158
+
159
+ ### `transcribe_audio`
160
+ Transcreve um único arquivo. Suporta modo de bloqueio (padrão) ou em segundo plano para arquivos longos.
161
+
162
+ | Parâmetro | Descrição |
163
+ |---|---|
164
+ | `file_path` | Caminho absoluto para o arquivo (obrigatório) |
165
+ | `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` |
167
+ | `save_to_file` | Salva a transcrição como .txt ao lado do arquivo de origem |
168
+ | `background` | Executa como tarefa separada — retorna ID da tarefa imediatamente. Use `check_progress` para monitorar. Recomendado para arquivos com mais de 10 minutos. |
169
+ | `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. |
171
+ | `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
+ | `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. |
175
+ | `gpu_device` | Índice do dispositivo GPU para sistemas multi-GPU. Padrão 0. |
176
+ | `processors` | Número de processadores paralelos. Padrão 1. |
177
+ | `word_timestamps` | Uma palavra por segmento com carimbo de tempo. Útil para alinhamento de clipes. |
178
+ | `max_segment_length` | Comprimento máximo do segmento em caracteres. |
179
+ | `diarize` | Diarização de falantes estéreo — requer áudio estéreo com falantes em canais separados. |
180
+ | `vad_model` | Caminho para o arquivo .bin do modelo Silero VAD. Remove silêncio antes de transcrever — reduz alucinações em arquivos ruidosos. |
181
+ | `offset_t` | Deslocamento de início em milissegundos. |
182
+ | `duration` | Duração a processar em milissegundos a partir do deslocamento. |
183
+
184
+ ---
185
+
186
+ ### `check_progress`
187
+ Monitora uma tarefa de transcrição em segundo plano iniciada com `transcribe_audio` (background=true).
188
+
189
+ Retorna o tempo decorrido, o último carimbo de tempo processado, a porcentagem e a transcrição completa ao terminar.
190
+
191
+ | Parâmetro | Descrição |
192
+ |---|---|
193
+ | `job_id` | ID da tarefa retornado por `transcribe_audio` |
194
+
195
+ ---
196
+
197
+ ### `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.
199
+
200
+ | Parâmetro | Descrição |
201
+ |---|---|
202
+ | `folder_path` | Caminho para a pasta (obrigatório) |
203
+ | `language` | Código do idioma. Padrão: `en` |
204
+ | `threads` | Substitui o número de threads da CPU |
205
+
206
+ ---
207
+
208
+ ### `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.
210
+
211
+ | Parâmetro | Descrição |
212
+ |---|---|
213
+ | `batch_id` | ID do lote retornado por `start_batch` |
214
+
215
+ ---
216
+
217
+ ### `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.
219
+
220
+ | Parâmetro | Descrição |
221
+ |---|---|
222
+ | `folder_path` | Caminho para a pasta (obrigatório) |
223
+ | `file_index` | Qual arquivo processar (começa em 1). Omita para listar os arquivos primeiro. |
224
+ | `language` | Código do idioma. Padrão: `en` |
225
+ | `recursive` | Incluir subpastas |
226
+
227
+ ---
228
+
229
+ ### `generate_subtitles`
230
+ Gera arquivos de legenda SRT. Suporta detecção automática de idioma e saída de tradução para inglês.
231
+
232
+ | Parâmetro | Descrição |
233
+ |---|---|
234
+ | `file_path` | Caminho para o arquivo (obrigatório) |
235
+ | `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. |
237
+ | `threads` | Substitui o número de threads da CPU |
238
+
239
+ Quando ambos são solicitados, dois arquivos são salvos ao lado da origem:
240
+ - `arquivo.pt.srt` — idioma original
241
+ - `arquivo.en.srt` — tradução para inglês
242
+
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.
244
+
245
+ ---
246
+
247
+ ### `analyze_media`
248
+ Analisa um arquivo antes de transcrever. Retorna duração, tamanho, codec e estimativa de tempo de transcrição na CPU e GPU. Para pastas, exibe todos os arquivos em uma tabela ordenável com status de transcrição.
249
+
250
+ | Parâmetro | Descrição |
251
+ |---|---|
252
+ | `path` | Caminho para um único arquivo ou pasta (obrigatório) |
253
+ | `sort_by` | Para pastas: `duration` (padrão), `name` ou `size` |
254
+
255
+ ---
256
+
257
+ ### `check_config`
258
+ Verifica se whisper-cli.exe, o arquivo de modelo e o FFmpeg estão todos acessíveis. Execute isso primeiro se algo não estiver funcionando.
259
+
260
+ ---
261
+
262
+ ### `list_models`
263
+ Lista todos os arquivos de modelo Whisper instalados no seu diretório de modelos. Exibe nome do arquivo, tamanho, se está ativo, status de quantização e casos de uso recomendados. Sem chamadas de rede — lê apenas o sistema de arquivos local.
264
+
265
+ ---
266
+
267
+ ### `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.
269
+
270
+ | Parâmetro | Descrição |
271
+ |---|---|
272
+ | `model_name` | Nome do modelo a baixar, ex.: `large-v3-turbo`, `large-v3-turbo-q5_0`, `medium.en-q5_0` |
273
+
274
+ ---
275
+
276
+ ### `switch_model`
277
+ Troca o modelo Whisper ativo para a sessão atual sem reiniciar o Claude Desktop. A mudança é válida apenas para a sessão — não persiste após reinicialização. Para torná-la permanente, atualize `WHISPER_MODEL` na sua configuração.
278
+
279
+ | Parâmetro | Descrição |
280
+ |---|---|
281
+ | `model_name` | Nome do arquivo de modelo (ex.: `ggml-large-v3-turbo.bin`) ou caminho completo. Deve ser um arquivo `.bin` no diretório de modelos configurado. |
282
+
283
+ ---
284
+
285
+ ### `check_system`
286
+ Detecta o hardware GPU e confirma se a aceleração Vulkan está disponível. Reporta o nome da GPU, VRAM, presença do `ggml-vulkan.dll` e recomenda o melhor tamanho de modelo para seu hardware.
287
+
288
+ ---
289
+
290
+ ## Formatos suportados
291
+
292
+ | Tipo | Formatos |
293
+ |---|---|
294
+ | Nativos (sem conversão) | `mp3`, `wav` |
295
+ | Vídeo (convertido automaticamente via FFmpeg) | `mp4`, `mkv`, `avi`, `mov`, `webm`, `flv`, `wmv`, `m4v`, `ts`, `3gp` |
296
+ | Áudio (convertido automaticamente via FFmpeg) | `m4a`, `ogg`, `flac` |
297
+
298
+ ---
299
+
300
+ ## Aceleração por GPU
301
+
302
+ 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
+
304
+ **Comparação de desempenho (modelo medium.en, arquivo de áudio ~5 minutos):**
305
+
306
+ | Hardware | Tempo |
307
+ |---|---|
308
+ | Somente CPU (Ryzen 7 2700x, 8 threads) | 8–12 minutos |
309
+ | GPU (Vega 56 via Vulkan) | 20–40 segundos |
310
+
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%.
312
+
313
+ ---
314
+
315
+ ## Suporte multilíngue
316
+
317
+ O Whisper pode detectar automaticamente o idioma falado e transcrever nesse idioma. O modelo de tradução integrado traduz apenas **para o inglês**.
318
+
319
+ Para a melhor precisão multilíngue, use o modelo `large-v3`. Modelos somente inglês (`*.en.bin`) não conseguem detectar ou transcrever outros idiomas.
320
+
321
+ **Exemplo — vídeo em língua estrangeira com legendas:**
322
+ 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
326
+
327
+ ---
328
+
329
+ ## Projetado para usuários do plano gratuito
330
+
331
+ Esta ferramenta foi criada para minimizar as interações com a API do Claude. Todo o fluxo de trabalho de transcrição — varredura, análise, fila, execução, validação — é projetado para exigir o menor número possível de interações com o Claude. O trabalho pesado é feito localmente na sua máquina.
332
+
333
+ ---
334
+
335
+ ## Variáveis de ambiente opcionais
336
+
337
+ | Variável | Descrição |
338
+ |---|---|
339
+ | `WHISPER_CLI_PATH` | Caminho para whisper-cli.exe (obrigatório) |
340
+ | `WHISPER_MODEL` | Caminho para o arquivo de modelo .bin (obrigatório) |
341
+ | `WHISPER_THREADS` | Substitui o número de threads da CPU |
342
+ | `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
358
+
359
+ ---
360
+
361
+ ## Segurança e privacidade
362
+
363
+ O whisper-windows-mcp foi projetado com segurança como princípio central.
364
+
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.
366
+
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.
368
+
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.
370
+
371
+ **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
+
373
+ **Consciência de injeção de transcrição.** Arquivos de áudio podem conter conteúdo falado que, quando transcrito, se assemelha a instruções. As defesas integradas do Claude lidam com isso, mas vale saber que o próprio servidor MCP trata o conteúdo de transcrição como dados — nunca como instruções.
374
+
375
+ **Downloads de modelos são restritos.** A ferramenta `download_model` baixa apenas de dois namespaces confiáveis do Hugging Face (`ggerganov/whisper.cpp` e `ggml-org`). URLs arbitrários são rejeitados. Redirecionamentos são validados contra uma lista de permissões antes de serem seguidos.
376
+
377
+ **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
+
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.
380
+
381
+ ---
382
+
383
+ ## Licença
384
+
385
+ **Uso não comercial:** MIT — gratuito para uso pessoal, educacional e não comercial. Veja [LICENSE](LICENSE).
386
+
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.
388
+
389
+ ## Contribuições
390
+
391
+ Pull requests são bem-vindos. Veja [ROADMAP.md](ROADMAP.md) para as funcionalidades planejadas.
392
+
393
+ Se você testou a aceleração por GPU em hardware não listado acima, abra uma issue com os resultados — modelo da GPU, VRAM, tamanho do modelo e throughput observado.