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
@@ -1,323 +1,325 @@
1
- # whisper-windows-mcp — Solução de Problemas
2
-
3
- ---
4
-
5
- ## Lista de verificação rápida
6
-
7
- Antes de investigar mais fundo, verifique todos os itens a seguir:
8
-
9
- - Caminhos em `claude_desktop_config.json` usam **barras invertidas duplas** (`C:\\whisper\\...`)
10
- - `whisper-cli.exe` existe no caminho especificado em `WHISPER_CLI_PATH`
11
- - O arquivo de modelo `.bin` existe no caminho especificado em `WHISPER_MODEL`
12
- - FFmpeg está instalado e acessível (`ffmpeg -version` funciona no prompt de comando)
13
- - O Claude Desktop foi **completamente reiniciado** após editar a configuração (saindo da bandeja do sistema, não apenas fechando a janela)
14
- - O servidor whisper aparece como **em execução** (emblema verde) em Configurações → Desenvolvedor
15
-
16
- ---
17
-
18
- ## "whisper não está conectado" ou nenhuma ferramenta disponível
19
-
20
- **Causa mais comum:** O Claude Desktop não foi completamente reiniciado após editar a configuração.
21
-
22
- 1. Clique com o botão direito no ícone do Claude na bandeja do sistema → Sair
23
- 2. Reabra o Claude Desktop
24
- 3. Vá para Configurações → Desenvolvedor e verifique o emblema verde **em execução** ao lado do whisper
25
-
26
- Se ainda não aparecer:
27
-
28
- 1. Abra `claude_desktop_config.json` e verifique erros de sintaxe JSON (vírgulas faltando, chaves não correspondentes)
29
- 2. Certifique-se de que todos os caminhos usam barras invertidas duplas
30
- 3. Execute `check_config` no Claude Desktop para obter um diagnóstico
31
-
32
- ---
33
-
34
- ## download_model atinge timeout em modelos grandes
35
-
36
- O Claude Desktop tem um timeout de 4 minutos em chamadas de ferramentas MCP. Downloads de modelos grandes em conexões lentas podem exceder esse limite.
37
-
38
- **Tamanhos dos arquivos:**
39
- - `large-v3` — 2,9 GB
40
- - `large-v3-turbo` — 1,6 GB
41
- - `large-v3-q5_0` — 1,1 GB
42
- - `large-v3-turbo-q5_0` — 547 MB
43
- - `medium.en` — 1,5 GB
44
- - `medium.en-q5_0` — 514 MB
45
-
46
- Em uma conexão rápida (100 Mbps+), até o large-v3 termina em menos de 4 minutos. Em conexões mais lentas, use um navegador ou PowerShell para baixar diretamente e coloque o arquivo no diretório de modelos manualmente:
47
-
48
- ```powershell
49
- # Exemplo — baixar large-v3-turbo diretamente
50
- Invoke-WebRequest -Uri "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin" `
51
- -OutFile "C:\whisper\models\ggml-large-v3-turbo.bin"
52
- ```
53
-
54
- Depois use `switch_model ggml-large-v3-turbo.bin` para ativá-lo.
55
-
56
- ---
57
-
58
- ## `check_config` reporta que whisper-cli.exe não foi encontrado
59
-
60
- O caminho na sua configuração não corresponde ao local real do arquivo.
61
-
62
- Verifique se o arquivo existe:
63
- ```
64
- dir C:\whisper\Release\whisper-cli.exe
65
- ```
66
-
67
- Se estiver em outro lugar, atualize `WHISPER_CLI_PATH` na sua configuração para corresponder ao caminho real.
68
-
69
- ---
70
-
71
- ## `check_config` reporta que FFmpeg não foi encontrado
72
-
73
- O FFmpeg não está instalado ou não está no PATH do sistema.
74
-
75
- Instale via winget:
76
- ```
77
- winget install ffmpeg
78
- ```
79
-
80
- Ou baixe em [ffmpeg.org](https://ffmpeg.org/download.html), extraia e adicione a pasta `bin` ao PATH do sistema.
81
-
82
- Após instalar, abra um novo prompt de comando e verifique:
83
- ```
84
- ffmpeg -version
85
- ```
86
-
87
- Se você instalou o FFmpeg em um local não padrão, defina a variável de ambiente `FFMPEG_PATH` na sua configuração do Claude Desktop:
88
- ```json
89
- "env": {
90
- "FFMPEG_PATH": "C:\\ffmpeg\\bin\\ffmpeg.exe"
91
- }
92
- ```
93
-
94
- ---
95
-
96
- ## A saída da transcrição está cheia de tags `[FOREIGN]`
97
-
98
- **Causa:** Você está usando um modelo somente inglês (ex.: `ggml-medium.en.bin`) em áudio que não é inglês. Modelos somente inglês não conseguem processar outros idiomas e geram `[FOREIGN]` como marcador para cada segmento que não conseguem processar.
99
-
100
- **Correção:** Baixe e use `ggml-large-v3.bin` — o modelo multilíngue. Isso é necessário para qualquer transcrição que não seja em inglês, detecção automática de idioma ou tradução.
101
-
102
- ```
103
- https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
104
- ```
105
-
106
- Salve em `C:\whisper\models\` e atualize sua configuração:
107
- ```json
108
- "WHISPER_MODEL": "C:\\whisper\\models\\ggml-large-v3.bin"
109
- ```
110
-
111
- Ou substitua por transcrição usando o parâmetro `model` em `transcribe_audio` ou `generate_subtitles`.
112
-
113
- > **Nota:** Modelos somente inglês (`*.en.bin`) são mais rápidos e precisos para conteúdo em inglês, mas são completamente incapazes de processar outros idiomas. Se você trabalha com conteúdo multilíngue, `large-v3` é o modelo correto independentemente do hardware.
114
-
115
- ---
116
-
117
- ## A transcrição não produz saída ou arquivo vazio
118
-
119
- **Possíveis causas:**
120
-
121
- 1. **Modelo errado para o idioma** — Modelos somente inglês (`*.en.bin`) não conseguem transcrever outros idiomas. Use `ggml-large-v3.bin` para conteúdo multilíngue.
122
-
123
- 2. **Qualidade de áudio muito baixa** — Arquivos com taxa de bits muito baixa (ex.: gravações antigas de celular `.3gp` usando codec AMR-NB a ~12kbps) podem estar no limite do que o whisper consegue processar. Ambientes ruidosos (ruído de fundo, eco, falantes distantes) também são desafiadores. Tente `large-v3`, que lida melhor com áudio degradado.
124
-
125
- 3. **Arquivo silencioso ou corrompido** — Execute `analyze_media` no arquivo para verificar se o FFprobe detecta um fluxo de áudio válido.
126
-
127
- 4. **Falha na conversão** — O arquivo pode não estar sendo convertido para WAV corretamente. Tente converter manualmente primeiro:
128
- ```
129
- ffmpeg -i yourfile.3gp -ar 16000 -ac 1 output.wav
130
- ```
131
- Depois transcreva o WAV diretamente.
132
-
133
- ---
134
-
135
- ## Tarefa em segundo plano falha em arquivos com caracteres especiais ou Unicode no nome
136
-
137
- **Causa:** O whisper-cli.exe não consegue gravar o arquivo de saída quando o caminho contém caracteres Unicode (português, japonês, chinês, emoji, colchetes etc.) ou certos caracteres especiais.
138
-
139
- **Solução alternativa atual:** Renomeie o arquivo para usar apenas caracteres ASCII antes de transcrever, depois renomeie de volta se necessário.
140
-
141
- ```
142
- ren "arquivo_português.mp4" "temp_transcribe.mp4"
143
- ```
144
-
145
- **Status:** Este é um bug conhecido. Uma correção está planejada que roteará a saída por um caminho temporário sanitizado e moverá o resultado para o destino correto após a conclusão.
146
-
147
- ---
148
-
149
- ## Tarefa em segundo plano mostra "falha" sem saída
150
-
151
- **Possíveis causas:**
152
-
153
- 1. **Nome de arquivo Unicode** — Veja acima.
154
-
155
- 2. **Caminho do modelo incorreto** — O processo separado não herda os caminhos corrigidos. Execute `check_config` para verificar os caminhos.
156
-
157
- 3. **Processo foi encerrado** — Se o whisper-cli.exe foi manualmente encerrado no meio de uma tarefa, nenhum arquivo de saída existirá. Tente novamente.
158
-
159
- 4. **VRAM insuficiente** — Modelos grandes em GPUs com pouca VRAM podem falhar silenciosamente. Tente um modelo menor.
160
-
161
- 5. **Falha na conversão do arquivo** — Tente transcrever um arquivo WAV diretamente para isolar se o problema está na conversão ou na transcrição.
162
-
163
- ---
164
-
165
- ## A transcrição em segundo plano não produz saída SRT
166
-
167
- **Causa:** O modo em segundo plano (`background=true` em `transcribe_audio`) atualmente produz apenas saída `.txt`. O formato SRT no modo em segundo plano ainda não foi implementado.
168
-
169
- **Solução alternativa:** Para arquivos abaixo de ~4 minutos, use `generate_subtitles` no modo de bloqueio. Para arquivos mais longos, transcreva primeiro no modo em segundo plano para obter o `.txt`, depois se precisar do SRT, use `generate_subtitles` no mesmo arquivo (ele vai transcrever novamente).
170
-
171
- **Status:** O suporte a SRT no modo em segundo plano está planejado para um release futuro.
172
-
173
- ---
174
-
175
- ## GPU não está sendo usada (CPU travada acima de 50%)
176
-
177
- **Causa:** Você está executando o binário somente CPU que acompanha o release padrão do whisper.cpp.
178
-
179
- **Correção:** Baixe a build com Vulkan ativado da [página de releases](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0) e extraia para `C:\whisper\Release\`.
180
-
181
- Verifique se a aceleração GPU está ativa:
182
- - Peça ao Claude para executar `check_system`
183
- - Procure `✅ Vulkan binary: ggml-vulkan.dll found` na saída
184
- - Observe o Gerenciador de Tarefas → Desempenho → GPU durante uma transcrição — a utilização da GPU deve subir para 15–30%
185
-
186
- ---
187
-
188
- ## `check_system` reporta quantidade de VRAM incorreta
189
-
190
- Esta é uma limitação conhecida do Windows. O comando `wmic` lê a VRAM do registro, que em muitas placas AMD reporta metade da VRAM física. Uma Vega 56 com 8GB HBM2 normalmente mostrará 4GB. Este é apenas um problema de exibição — o whisper usa toda a VRAM física durante a inferência.
191
-
192
- ---
193
-
194
- ## Erro "Transcrição já em andamento"
195
-
196
- Um processo `whisper-cli.exe` está sendo executado de uma tarefa anterior. Aguarde-o terminar, ou:
197
-
198
- 1. Abra o Gerenciador de Tarefas → aba Detalhes
199
- 2. Encontre `whisper-cli.exe`
200
- 3. Clique com o botão direito → Encerrar tarefa
201
-
202
- Depois tente novamente.
203
-
204
- ---
205
-
206
- ## Detecção automática de idioma incorreta
207
-
208
- A detecção automática do Whisper é executada nos primeiros 30 segundos do áudio. Se o arquivo começar em um idioma diferente da maior parte do seu conteúdo, a detecção pode estar errada.
209
-
210
- **Correção:** Especifique o idioma explicitamente (ex.: `language=pt`) em vez de depender da detecção automática.
211
-
212
- ---
213
-
214
- ## A geração de legendas produz "(falando em língua estrangeira)" em todo o vídeo
215
-
216
- O Whisper detectou fala mas não conseguiu transcrever. Causas mais comuns:
217
-
218
- 1. **Modelo errado** — Usando um modelo somente inglês em áudio que não é inglês. Use `large-v3`.
219
-
220
- 2. **Qualidade do áudio** — Ambientes ruidosos (cozinhas, multidões, eco) podem superar o modelo medium. Tente `large-v3`.
221
-
222
- 3. **Idioma misto** — Arquivos com dois idiomas alternando terão o idioma minoritário substituído por marcadores com configuração de idioma único.
223
-
224
- ---
225
-
226
- ## A tradução de legendas só produz inglês
227
-
228
- Este é o comportamento esperado. O flag `--translate` integrado do Whisper traduz apenas **para o inglês**. Para tradução para outros idiomas de destino, processe o conteúdo do arquivo `.srt` separadamente.
229
-
230
- ---
231
-
232
- ## A transcrição em lote parou de avançar
233
-
234
- Chame `check_batch_progress` novamente. Se ainda estiver travado:
235
-
236
- 1. Verifique no Gerenciador de Tarefas se há um processo `whisper-cli.exe` em execução
237
- 2. Verifique os logs de tarefas em `%TEMP%\whisper-mcp-jobs\`
238
- 3. Arquivos com falha são sinalizados no relatório do lote — execute-os individualmente com `transcribe_audio`
239
-
240
- ---
241
-
242
- ## Limpando o diretório temporário de tarefas
243
-
244
- O whisper-windows-mcp grava arquivos de estado de tarefas e logs em `%TEMP%\whisper-mcp-jobs\` durante a transcrição. Eles se acumulam ao longo do tempo e podem consumir espaço em disco, especialmente os arquivos `.log` de tarefas de transcrição longas.
245
-
246
- Depois que um lote ou tarefa estiver concluído e você tiver verificado as transcrições de saída, você pode excluir com segurança tudo neste diretório:
247
-
248
- ```powershell
249
- Remove-Item "$env:TEMP\whisper-mcp-jobs\*" -Recurse -Force
250
- ```
251
-
252
- O diretório será recriado automaticamente na próxima transcrição. Nenhum arquivo de saída de transcrição é armazenado permanentemente aqui — eles são movidos para o diretório de origem na conclusão. Apenas metadados de tarefas e logs permanecem.
253
-
254
- **Nota:** Não exclua este diretório enquanto uma transcrição estiver em andamento — os arquivos de estado do lote são necessários para que `check_batch_progress` funcione.
255
-
256
- ---
257
-
258
- ## Lote grande sem supervisão pela linha de comando
259
-
260
- Para lotes muito grandes onde você quer executar durante a noite sem o Claude, use o PowerShell.
261
-
262
- **Importante:** O whisper-cli.exe não consegue ler MP4, MKV ou a maioria dos formatos de vídeo diretamente. O FFmpeg deve pré-converter cada arquivo para WAV primeiro. O whisper também grava a transcrição no stdout e a saída de diagnóstico no stderr — use `Start-Process -RedirectStandardOutput` para capturar a transcrição corretamente. Usar pipe com `|` ou redirecionar stderr com `2>$null` não captura nada.
263
-
264
- ```powershell
265
- $whisper = "C:\whisper\Release\whisper-cli.exe"
266
- $model = "C:\whisper\models\ggml-medium.en.bin"
267
- $dir = "C:\path\to\your\folder"
268
- $ffmpeg = "ffmpeg"
269
- $tmp = "$env:TEMP\whisper_convert.wav"
270
-
271
- Get-ChildItem "$dir\*.mp4" | ForEach-Object {
272
- $out = ($_.FullName -replace '\.mp4$', '') + ".txt"
273
- if (Test-Path $out) {
274
- Write-Host "SKIP (exists): $($_.Name)"
275
- return
276
- }
277
- Write-Host "Converting: $($_.Name)"
278
- & $ffmpeg -y -i $_.FullName -ar 16000 -ac 1 -c:a pcm_s16le $tmp 2>$null
279
- Write-Host "Transcribing: $($_.Name)"
280
- $wArgs = "-m `"$model`" -f `"$tmp`" --threads 8 --condition-on-previous-text 0 --no-speech-thold 0.6"
281
- Start-Process -FilePath $whisper -ArgumentList $wArgs -RedirectStandardOutput $out -Wait -NoNewWindow
282
- Write-Host "Done: $($_.BaseName).txt"
283
- }
284
-
285
- Remove-Item $tmp -ErrorAction SilentlyContinue
286
- Write-Host "All done."
287
- ```
288
-
289
- Altere `*.mp4` para `*.mkv`, `*.m4a` etc. para corresponder aos seus tipos de arquivo. A verificação de pulo `Test-Path` significa que executar novamente o script após uma interrupção não reprocessará arquivos já concluídos.
290
-
291
- Isso grava arquivos `.txt` ao lado de cada fonte. As ferramentas MCP os reconhecerão como já transcritos quando você executar `analyze_media` ou `start_batch` depois.
292
-
293
- ---
294
-
295
- ## Local do arquivo de configuração
296
-
297
- ```
298
- C:\Users\SeuUsuário\AppData\Roaming\Claude\claude_desktop_config.json
299
- ```
300
-
301
- Se `AppData` não estiver visível: Exibir → Mostrar → Itens ocultos no Explorador de Arquivos.
302
-
303
- ---
304
-
305
- ## Exemplo de configuração completa funcionando
306
-
307
- ```json
308
- {
309
- "mcpServers": {
310
- "whisper": {
311
- "command": "npx",
312
- "args": ["-y", "whisper-windows-mcp"],
313
- "env": {
314
- "WHISPER_CLI_PATH": "C:\\whisper\\Release\\whisper-cli.exe",
315
- "WHISPER_MODEL": "C:\\whisper\\models\\ggml-medium.en.bin",
316
- "FFMPEG_PATH": "ffmpeg"
317
- }
318
- }
319
- }
320
- }
321
- ```
322
-
323
- `FFMPEG_PATH` tem como padrão `ffmpeg` (assume que está no PATH). Defina explicitamente apenas se o FFmpeg estiver instalado em um local não padrão.
1
+ # whisper-windows-mcp — Solução de Problemas
2
+
3
+ ---
4
+
5
+ ## Lista de verificação rápida
6
+
7
+ Antes de investigar mais fundo, verifique todos os itens a seguir:
8
+
9
+ - Caminhos em `claude_desktop_config.json` usam **barras invertidas duplas** (`C:\\whisper\\...`)
10
+ - `whisper-cli.exe` existe no caminho especificado em `WHISPER_CLI_PATH`
11
+ - O arquivo de modelo `.bin` existe no caminho especificado em `WHISPER_MODEL`
12
+ - FFmpeg está instalado e acessível (`ffmpeg -version` funciona no prompt de comando)
13
+ - O Claude Desktop foi **completamente reiniciado** após editar a configuração (saindo da bandeja do sistema, não apenas fechando a janela)
14
+ - O servidor whisper aparece como **em execução** (emblema verde) em Configurações → Desenvolvedor
15
+
16
+ ---
17
+
18
+ ## "whisper não está conectado" ou nenhuma ferramenta disponível
19
+
20
+ **Causa mais comum:** O Claude Desktop não foi completamente reiniciado após editar a configuração.
21
+
22
+ 1. Clique com o botão direito no ícone do Claude na bandeja do sistema → Sair
23
+ 2. Reabra o Claude Desktop
24
+ 3. Vá para Configurações → Desenvolvedor e verifique o emblema verde **em execução** ao lado do whisper
25
+
26
+ Se ainda não aparecer:
27
+
28
+ 1. Abra `claude_desktop_config.json` e verifique erros de sintaxe JSON (vírgulas faltando, chaves não correspondentes)
29
+ 2. Certifique-se de que todos os caminhos usam barras invertidas duplas
30
+ 3. Execute `check_config` no Claude Desktop para obter um diagnóstico
31
+
32
+ ---
33
+
34
+ ## download_model atinge timeout em modelos grandes
35
+
36
+ O Claude Desktop tem um timeout de 4 minutos em chamadas de ferramentas MCP. Downloads de modelos grandes em conexões lentas podem exceder esse limite.
37
+
38
+ **Tamanhos dos arquivos:**
39
+ - `large-v3` — 2,9 GB
40
+ - `large-v3-turbo` — 1,6 GB
41
+ - `large-v3-q5_0` — 1,1 GB
42
+ - `large-v3-turbo-q5_0` — 547 MB
43
+ - `medium.en` — 1,5 GB
44
+ - `medium.en-q5_0` — 514 MB
45
+
46
+ Em uma conexão rápida (100 Mbps+), até o large-v3 termina em menos de 4 minutos. Em conexões mais lentas, use um navegador ou PowerShell para baixar diretamente e coloque o arquivo no diretório de modelos manualmente:
47
+
48
+ ```powershell
49
+ # Exemplo — baixar large-v3-turbo diretamente
50
+ Invoke-WebRequest -Uri "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin" `
51
+ -OutFile "C:\whisper\models\ggml-large-v3-turbo.bin"
52
+ ```
53
+
54
+ Depois use `switch_model ggml-large-v3-turbo.bin` para ativá-lo.
55
+
56
+ ---
57
+
58
+ ## `check_config` reporta que whisper-cli.exe não foi encontrado
59
+
60
+ O caminho na sua configuração não corresponde ao local real do arquivo.
61
+
62
+ Verifique se o arquivo existe:
63
+ ```
64
+ dir C:\whisper\Release\whisper-cli.exe
65
+ ```
66
+
67
+ Se estiver em outro lugar, atualize `WHISPER_CLI_PATH` na sua configuração para corresponder ao caminho real.
68
+
69
+ ---
70
+
71
+ ## `check_config` reporta que FFmpeg não foi encontrado
72
+
73
+ O FFmpeg não está instalado ou não está no PATH do sistema.
74
+
75
+ Instale via winget:
76
+ ```
77
+ winget install ffmpeg
78
+ ```
79
+
80
+ Ou baixe em [ffmpeg.org](https://ffmpeg.org/download.html), extraia e adicione a pasta `bin` ao PATH do sistema.
81
+
82
+ Após instalar, abra um novo prompt de comando e verifique:
83
+ ```
84
+ ffmpeg -version
85
+ ```
86
+
87
+ Se você instalou o FFmpeg em um local não padrão, defina a variável de ambiente `FFMPEG_PATH` na sua configuração do Claude Desktop:
88
+ ```json
89
+ "env": {
90
+ "FFMPEG_PATH": "C:\\ffmpeg\\bin\\ffmpeg.exe"
91
+ }
92
+ ```
93
+
94
+ ---
95
+
96
+ ## A saída da transcrição está cheia de tags `[FOREIGN]`
97
+
98
+ **Causa:** Você está usando um modelo somente inglês (ex.: `ggml-medium.en.bin`) em áudio que não é inglês. Modelos somente inglês não conseguem processar outros idiomas e geram `[FOREIGN]` como marcador para cada segmento que não conseguem processar.
99
+
100
+ **Correção:** Baixe e use `ggml-large-v3.bin` — o modelo multilíngue. Isso é necessário para qualquer transcrição que não seja em inglês, detecção automática de idioma ou tradução.
101
+
102
+ ```
103
+ https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
104
+ ```
105
+
106
+ Salve em `C:\whisper\models\` e atualize sua configuração:
107
+ ```json
108
+ "WHISPER_MODEL": "C:\\whisper\\models\\ggml-large-v3.bin"
109
+ ```
110
+
111
+ Ou substitua por transcrição usando o parâmetro `model` em `transcribe_audio` ou `generate_subtitles`.
112
+
113
+ > **Nota:** Modelos somente inglês (`*.en.bin`) são mais rápidos e precisos para conteúdo em inglês, mas são completamente incapazes de processar outros idiomas. Se você trabalha com conteúdo multilíngue, `large-v3` é o modelo correto independentemente do hardware.
114
+
115
+ ---
116
+
117
+ ## A transcrição não produz saída ou arquivo vazio
118
+
119
+ **Possíveis causas:**
120
+
121
+ 1. **Modelo errado para o idioma** — Modelos somente inglês (`*.en.bin`) não conseguem transcrever outros idiomas. Use `ggml-large-v3.bin` para conteúdo multilíngue.
122
+
123
+ 2. **Qualidade de áudio muito baixa** — Arquivos com taxa de bits muito baixa (ex.: gravações antigas de celular `.3gp` usando codec AMR-NB a ~12kbps) podem estar no limite do que o whisper consegue processar. Ambientes ruidosos (ruído de fundo, eco, falantes distantes) também são desafiadores. Tente `large-v3`, que lida melhor com áudio degradado que modelos menores.
124
+
125
+ 3. **Arquivo silencioso ou corrompido** — Execute `analyze_media` no arquivo para verificar se o FFprobe detecta um fluxo de áudio válido.
126
+
127
+ 4. **Falha na conversão** — O arquivo pode não estar sendo convertido para WAV corretamente. Tente converter manualmente primeiro:
128
+ ```
129
+ ffmpeg -i yourfile.3gp -ar 16000 -ac 1 output.wav
130
+ ```
131
+ Depois transcreva o WAV diretamente.
132
+
133
+ ---
134
+
135
+ ## "Este arquivo dura ~X — execute-o em segundo plano" / a transcrição em primeiro plano expira
136
+
137
+ O Claude Desktop impõe um tempo limite de ~4 minutos em qualquer chamada individual de ferramenta MCP. Um arquivo longo transcrito em modo **primeiro plano** (bloqueante) pode excedê-lo — a transcrição ainda termina e é gravada no disco, mas a própria chamada da ferramenta dá erro. Para evitar essa falha silenciosa, `transcribe_audio` e `generate_subtitles` estimam o tempo de execução de antemão e, se ele provavelmente cruzaria o teto, retornam uma mensagem dizendo para você reexecutar com `background=true`. O modo em segundo plano retorna um ID de tarefa imediatamente e não tem esse limite — monitore-o com `check_progress`.
138
+
139
+ Grande parte do tempo real de uma transcrição é **carregamento do modelo**, não transcrição: o whisper-cli recarrega o modelo a cada invocação, e um modelo grande (p. ex. `large-v3`, 2,9 GB) em uma GPU com memória limitada pode levar ~2 minutos para carregar antes mesmo de a transcrição começar (um modelo menor ou quantizado carrega mais rápido). O limite da guarda é configurável com `WHISPER_FOREGROUND_MAX_SEC` (segundos; padrão 210).
140
+
141
+ ## Tarefa em segundo plano falha em arquivos com caracteres especiais ou Unicode no nome
142
+
143
+ **Causa:** O whisper-cli.exe não consegue gravar o arquivo de saída quando o caminho contém caracteres Unicode (português, japonês, chinês, emoji, colchetes etc.) ou certos caracteres especiais.
144
+
145
+ **Corrigido na v2.0.0.** Se você está executando a versão atual, este problema não deve ocorrer. Se ainda ocorrer, atualize com `npm install -g whisper-windows-mcp` e reinicie o Claude Desktop.
146
+
147
+ Se você estiver usando uma versão mais antiga, a solução alternativa é renomear o arquivo para usar apenas caracteres ASCII antes de transcrever, depois renomeie de volta se necessário.
148
+
149
+ ```
150
+ ren "arquivo_português.mp4" "temp_transcribe.mp4"
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Tarefa em segundo plano mostra "falha" sem saída
156
+
157
+ **Possíveis causas:**
158
+
159
+ 1. **Caminho do modelo incorreto** — O processo separado não herda os caminhos corrigidos. Execute `check_config` para verificar os caminhos.
160
+
161
+ 2. **Processo foi encerrado** — Se o whisper-cli.exe foi manualmente encerrado no meio de uma tarefa, nenhum arquivo de saída existirá. Tente novamente.
162
+
163
+ 3. **VRAM insuficiente** — Modelos grandes em GPUs com pouca VRAM podem falhar silenciosamente. Tente um modelo menor.
164
+
165
+ 4. **Falha na conversão do arquivo** — Tente transcrever um arquivo WAV diretamente para isolar se o problema está na conversão ou na transcrição.
166
+
167
+ ---
168
+
169
+ ## GPU não está sendo usada (CPU travada acima de 50%)
170
+
171
+ **Causa:** Você está executando o binário somente CPU que acompanha o release padrão do whisper.cpp.
172
+
173
+ **Correção:** Baixe a build com Vulkan ativado da [página de releases](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0) e extraia para `C:\whisper\Release\`.
174
+
175
+ Verifique se a aceleração GPU está ativa:
176
+ - Peça ao Claude para executar `check_system`
177
+ - Procure `✅ Vulkan binary: ggml-vulkan.dll found` na saída
178
+ - Observe o Gerenciador de Tarefas → Desempenho → GPU durante uma transcrição — a utilização da GPU deve subir para 15–30%
179
+
180
+ ---
181
+
182
+ ## A transcrição é executada na GPU errada (sistemas com múltiplas GPUs)
183
+
184
+ Por padrão, o whisper-cli usa o dispositivo Vulkan 0. Em uma máquina com múltiplas GPUs, essa pode não ser a placa que você quer. Fixe um dispositivo específico com a variável de ambiente `WHISPER_GPU_DEVICE` (ou o parâmetro `gpu_device` por chamada, que agora também funciona em `generate_subtitles`):
185
+
186
+ ```json
187
+ "env": { "WHISPER_GPU_DEVICE": "1" }
188
+ ```
189
+
190
+ ⚠️ **O índice é a ordem de enumeração do Vulkan, NÃO a ordem "GPU 0 / GPU 1" do Windows** — elas frequentemente diferem. Para encontrar o número certo, execute o `whisper-cli.exe` em qualquer arquivo uma vez e leia seu log de inicialização: ele imprime `ggml_vulkan: 0 = <nome>`, `ggml_vulkan: 1 = <nome>`. Use o índice que lista a placa desejada. O `check_config` exibe o dispositivo ativo para você confirmar que a fixação funcionou.
191
+
192
+ ## `check_system` reporta quantidade de VRAM incorreta
193
+
194
+ Esta é uma limitação conhecida do Windows. O comando `wmic` lê a VRAM do registro, que em muitas placas AMD reporta metade da VRAM física. Uma Vega 56 com 8GB HBM2 normalmente mostrará 4GB. Este é apenas um problema de exibição — o whisper usa toda a VRAM física durante a inferência.
195
+
196
+ ---
197
+
198
+ ## Erro "Transcrição já em andamento"
199
+
200
+ Um processo `whisper-cli.exe` está sendo executado de uma tarefa anterior. Aguarde-o terminar, ou:
201
+
202
+ 1. Abra o Gerenciador de Tarefas → aba Detalhes
203
+ 2. Encontre `whisper-cli.exe`
204
+ 3. Clique com o botão direito → Encerrar tarefa
205
+
206
+ Depois tente novamente.
207
+
208
+ ---
209
+
210
+ ## Detecção automática de idioma incorreta
211
+
212
+ A detecção automática do Whisper é executada nos primeiros 30 segundos do áudio. Se o arquivo começar em um idioma diferente da maior parte do seu conteúdo, a detecção pode estar errada.
213
+
214
+ **Correção:** Especifique o idioma explicitamente (ex.: `language=pt`) em vez de depender da detecção automática.
215
+
216
+ ---
217
+
218
+ ## A geração de legendas produz "(falando em língua estrangeira)" em todo o vídeo
219
+
220
+ O Whisper detectou fala mas não conseguiu transcrever. Causas mais comuns:
221
+
222
+ 1. **Modelo errado** — Usando um modelo somente inglês em áudio que não é inglês. Use `large-v3`.
223
+
224
+ 2. **Qualidade do áudio** — Ambientes ruidosos (cozinhas, multidões, eco) podem superar o modelo medium. Tente `large-v3`.
225
+
226
+ 3. **Idioma misto** — Arquivos com dois idiomas alternando terão o idioma minoritário substituído por marcadores com configuração de idioma único.
227
+
228
+ ---
229
+
230
+ ## A tradução de legendas só produz inglês
231
+
232
+ Este é o comportamento esperado. O flag `--translate` integrado do Whisper traduz apenas **para o inglês**. Para tradução para outros idiomas de destino, processe o conteúdo do arquivo `.srt` separadamente.
233
+
234
+ ---
235
+
236
+ ## A transcrição em lote parou de avançar
237
+
238
+ Chame `check_batch_progress` novamente. Se ainda estiver travado:
239
+
240
+ 1. Verifique no Gerenciador de Tarefas se há um processo `whisper-cli.exe` em execução
241
+ 2. Verifique os logs de tarefas em `%TEMP%\whisper-mcp-jobs\`
242
+ 3. Arquivos com falha são sinalizados no relatório do lote — execute-os individualmente com `transcribe_audio`
243
+
244
+ ---
245
+
246
+ ## Limpando o diretório temporário de tarefas
247
+
248
+ O whisper-windows-mcp grava arquivos de estado de tarefas e logs em `%TEMP%\whisper-mcp-jobs\` durante a transcrição. O servidor limpa automaticamente arquivos com mais de 7 dias na inicialização. Para limpar manualmente, depois que um lote ou tarefa estiver concluído e você tiver verificado as transcrições de saída, você pode excluir com segurança tudo neste diretório:
249
+
250
+ ```powershell
251
+ Remove-Item "$env:TEMP\whisper-mcp-jobs\*" -Recurse -Force
252
+ ```
253
+
254
+ O diretório será recriado automaticamente na próxima transcrição. Nenhum arquivo de saída de transcrição é armazenado permanentemente aqui — eles são movidos para o diretório de origem na conclusão. Apenas metadados de tarefas e logs permanecem.
255
+
256
+ **Nota:** Não exclua este diretório enquanto uma transcrição estiver em andamento — os arquivos de estado do lote são necessários para que `check_batch_progress` funcione.
257
+
258
+ ---
259
+
260
+ ## Lote grande sem supervisão pela linha de comando
261
+
262
+ Para lotes muito grandes onde você quer executar durante a noite sem o Claude, use o PowerShell.
263
+
264
+ **Importante:** O whisper-cli.exe não consegue ler MP4, MKV ou a maioria dos formatos de vídeo diretamente. O FFmpeg deve pré-converter cada arquivo para WAV primeiro. O whisper também grava a transcrição no stdout e a saída de diagnóstico no stderr — use `Start-Process -RedirectStandardOutput` para capturar a transcrição corretamente. Usar pipe com `|` ou redirecionar stderr com `2>$null` não captura nada.
265
+
266
+ ```powershell
267
+ $whisper = "C:\whisper\Release\whisper-cli.exe"
268
+ $model = "C:\whisper\models\ggml-medium.en.bin"
269
+ $dir = "C:\path\to\your\folder"
270
+ $ffmpeg = "ffmpeg"
271
+ $tmp = "$env:TEMP\whisper_convert.wav"
272
+
273
+ Get-ChildItem "$dir\*.mp4" | ForEach-Object {
274
+ $out = ($_.FullName -replace '\.mp4$', '') + ".txt"
275
+ if (Test-Path $out) {
276
+ Write-Host "SKIP (exists): $($_.Name)"
277
+ return
278
+ }
279
+ Write-Host "Converting: $($_.Name)"
280
+ & $ffmpeg -y -i $_.FullName -ar 16000 -ac 1 -c:a pcm_s16le $tmp 2>$null
281
+ Write-Host "Transcribing: $($_.Name)"
282
+ $wArgs = "-m `"$model`" -f `"$tmp`" --threads 8 --condition-on-previous-text 0 --no-speech-thold 0.6"
283
+ Start-Process -FilePath $whisper -ArgumentList $wArgs -RedirectStandardOutput $out -Wait -NoNewWindow
284
+ Write-Host "Done: $($_.BaseName).txt"
285
+ }
286
+
287
+ Remove-Item $tmp -ErrorAction SilentlyContinue
288
+ Write-Host "All done."
289
+ ```
290
+
291
+ Altere `*.mp4` para `*.mkv`, `*.m4a` etc. para corresponder aos seus tipos de arquivo. A verificação de pulo `Test-Path` significa que executar novamente o script após uma interrupção não reprocessará arquivos já concluídos.
292
+
293
+ Isso grava arquivos `.txt` ao lado de cada fonte. As ferramentas MCP os reconhecerão como já transcritos quando você executar `analyze_media` ou `start_batch` depois.
294
+
295
+ ---
296
+
297
+ ## Local do arquivo de configuração
298
+
299
+ ```
300
+ C:\Users\SeuUsuário\AppData\Roaming\Claude\claude_desktop_config.json
301
+ ```
302
+
303
+ Se `AppData` não estiver visível: Exibir → Mostrar → Itens ocultos no Explorador de Arquivos.
304
+
305
+ ---
306
+
307
+ ## Exemplo de configuração completa funcionando
308
+
309
+ ```json
310
+ {
311
+ "mcpServers": {
312
+ "whisper": {
313
+ "command": "npx",
314
+ "args": ["-y", "whisper-windows-mcp"],
315
+ "env": {
316
+ "WHISPER_CLI_PATH": "C:\\whisper\\Release\\whisper-cli.exe",
317
+ "WHISPER_MODEL": "C:\\whisper\\models\\ggml-medium.en.bin",
318
+ "FFMPEG_PATH": "ffmpeg"
319
+ }
320
+ }
321
+ }
322
+ }
323
+ ```
324
+
325
+ `FFMPEG_PATH` tem como padrão `ffmpeg` (assume que está no PATH). Defina explicitamente apenas se o FFmpeg estiver instalado em um local não padrão.