whisper-windows-mcp 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -1
- package/LICENSE-COMMERCIAL.md +58 -0
- package/PRIVACY.es.md +135 -0
- package/PRIVACY.id.md +135 -0
- package/PRIVACY.ja.md +135 -0
- package/PRIVACY.ko.md +135 -0
- package/PRIVACY.md +135 -0
- package/PRIVACY.pl.md +135 -0
- package/PRIVACY.pt-BR.md +135 -0
- package/PRIVACY.ro.md +135 -0
- package/PRIVACY.uk.md +135 -0
- package/PRIVACY.vi.md +135 -0
- package/README.es.md +393 -0
- package/README.id.md +393 -0
- package/README.ja.md +402 -397
- package/README.ko.md +393 -0
- package/README.md +393 -388
- package/README.pl.md +393 -0
- package/README.pt-BR.md +393 -0
- package/README.ro.md +393 -0
- package/README.uk.md +393 -0
- package/README.vi.md +393 -0
- package/ROADMAP.es.md +200 -0
- package/ROADMAP.id.md +289 -0
- package/ROADMAP.ja.md +301 -268
- package/ROADMAP.ko.md +286 -0
- package/ROADMAP.pl.md +198 -0
- package/ROADMAP.pt-BR.md +286 -0
- package/ROADMAP.ro.md +200 -0
- package/ROADMAP.uk.md +290 -0
- package/ROADMAP.vi.md +286 -0
- package/SECURITY.es.md +47 -0
- package/SECURITY.id.md +47 -0
- package/SECURITY.ja.md +47 -0
- package/SECURITY.ko.md +47 -0
- package/SECURITY.md +14 -2
- package/SECURITY.pl.md +47 -0
- package/SECURITY.pt-BR.md +47 -0
- package/SECURITY.ro.md +47 -0
- package/SECURITY.uk.md +47 -0
- package/SECURITY.vi.md +47 -0
- package/TROUBLESHOOTING.es.md +323 -0
- package/TROUBLESHOOTING.id.md +323 -0
- package/TROUBLESHOOTING.ko.md +323 -0
- package/TROUBLESHOOTING.pl.md +323 -0
- package/TROUBLESHOOTING.pt-BR.md +323 -0
- package/TROUBLESHOOTING.ro.md +323 -0
- package/TROUBLESHOOTING.uk.md +323 -0
- package/TROUBLESHOOTING.vi.md +323 -0
- package/glama.json +6 -0
- package/package.json +10 -3
- package/patch_roadmaps.py +72 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# whisper-windows-mcp — Solución de Problemas
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Lista de verificación rápida
|
|
6
|
+
|
|
7
|
+
Antes de investigar más a fondo, verifica todos los siguientes puntos:
|
|
8
|
+
|
|
9
|
+
- Las rutas en `claude_desktop_config.json` usan **barras invertidas dobles** (`C:\\whisper\\...`)
|
|
10
|
+
- `whisper-cli.exe` existe en la ruta especificada en `WHISPER_CLI_PATH`
|
|
11
|
+
- El archivo de modelo `.bin` existe en la ruta especificada en `WHISPER_MODEL`
|
|
12
|
+
- FFmpeg está instalado y accesible (`ffmpeg -version` funciona en el símbolo del sistema)
|
|
13
|
+
- Claude Desktop fue **completamente reiniciado** tras editar la configuración (saliendo desde la bandeja del sistema, no solo cerrando la ventana)
|
|
14
|
+
- El servidor whisper aparece como **en ejecución** (insignia verde) en Configuración → Desarrollador
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## "whisper no está conectado" o no hay herramientas disponibles
|
|
19
|
+
|
|
20
|
+
**Causa más común:** Claude Desktop no fue completamente reiniciado tras editar la configuración.
|
|
21
|
+
|
|
22
|
+
1. Clic derecho en el ícono de Claude en la bandeja del sistema → Salir
|
|
23
|
+
2. Vuelve a abrir Claude Desktop
|
|
24
|
+
3. Ve a Configuración → Desarrollador y verifica la insignia verde **en ejecución** junto a whisper
|
|
25
|
+
|
|
26
|
+
Si sigue sin aparecer:
|
|
27
|
+
|
|
28
|
+
1. Abre `claude_desktop_config.json` y verifica errores de sintaxis JSON (comas faltantes, llaves no coincidentes)
|
|
29
|
+
2. Asegúrate de que todas las rutas usen barras invertidas dobles
|
|
30
|
+
3. Ejecuta `check_config` en Claude Desktop para obtener un diagnóstico
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## download_model alcanza timeout en modelos grandes
|
|
35
|
+
|
|
36
|
+
Claude Desktop tiene un timeout de 4 minutos en las llamadas a herramientas MCP. Las descargas de modelos grandes en conexiones lentas pueden exceder este límite.
|
|
37
|
+
|
|
38
|
+
**Tamaños de archivo:**
|
|
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
|
+
En una conexión rápida (100 Mbps+), incluso large-v3 termina en menos de 4 minutos. En conexiones más lentas, usa un navegador o PowerShell para descargar directamente y coloca el archivo en tu directorio de modelos manualmente:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
# Ejemplo — descargar large-v3-turbo directamente
|
|
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
|
+
Luego usa `switch_model ggml-large-v3-turbo.bin` para activarlo.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## `check_config` reporta que whisper-cli.exe no fue encontrado
|
|
59
|
+
|
|
60
|
+
La ruta en tu configuración no coincide con la ubicación real del archivo.
|
|
61
|
+
|
|
62
|
+
Verifica que el archivo existe:
|
|
63
|
+
```
|
|
64
|
+
dir C:\whisper\Release\whisper-cli.exe
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Si está en otro lugar, actualiza `WHISPER_CLI_PATH` en tu configuración para que coincida con la ruta real.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## `check_config` reporta que FFmpeg no fue encontrado
|
|
72
|
+
|
|
73
|
+
FFmpeg no está instalado o no está en el PATH del sistema.
|
|
74
|
+
|
|
75
|
+
Instala via winget:
|
|
76
|
+
```
|
|
77
|
+
winget install ffmpeg
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
O descarga desde [ffmpeg.org](https://ffmpeg.org/download.html), extrae y agrega la carpeta `bin` al PATH del sistema.
|
|
81
|
+
|
|
82
|
+
Tras instalar, abre un nuevo símbolo del sistema y verifica:
|
|
83
|
+
```
|
|
84
|
+
ffmpeg -version
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Si instalaste FFmpeg en una ubicación no estándar, establece la variable de entorno `FFMPEG_PATH` en tu configuración de Claude Desktop:
|
|
88
|
+
```json
|
|
89
|
+
"env": {
|
|
90
|
+
"FFMPEG_PATH": "C:\\ffmpeg\\bin\\ffmpeg.exe"
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## La salida de transcripción está llena de etiquetas `[FOREIGN]`
|
|
97
|
+
|
|
98
|
+
**Causa:** Estás usando un modelo solo inglés (ej.: `ggml-medium.en.bin`) en audio que no es inglés. Los modelos solo inglés no pueden procesar otros idiomas y generan `[FOREIGN]` como marcador para cada segmento que no pueden manejar.
|
|
99
|
+
|
|
100
|
+
**Solución:** Descarga y usa `ggml-large-v3.bin` — el modelo multilingüe. Esto es necesario para cualquier transcripción que no sea inglés, detección automática de idioma o traducción.
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Guarda en `C:\whisper\models\` y actualiza tu configuración:
|
|
107
|
+
```json
|
|
108
|
+
"WHISPER_MODEL": "C:\\whisper\\models\\ggml-large-v3.bin"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
O anula por transcripción usando el parámetro `model` en `transcribe_audio` o `generate_subtitles`.
|
|
112
|
+
|
|
113
|
+
> **Nota:** Los modelos solo inglés (`*.en.bin`) son más rápidos y precisos para contenido en inglés, pero son completamente incapaces de manejar otros idiomas. Si trabajas con contenido multilingüe, `large-v3` es el modelo correcto independientemente del hardware.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## La transcripción no produce salida o el archivo está vacío
|
|
118
|
+
|
|
119
|
+
**Posibles causas:**
|
|
120
|
+
|
|
121
|
+
1. **Modelo incorrecto para el idioma** — Los modelos solo inglés (`*.en.bin`) no pueden transcribir otros idiomas. Usa `ggml-large-v3.bin` para contenido multilingüe.
|
|
122
|
+
|
|
123
|
+
2. **Calidad de audio muy baja** — Los archivos con tasa de bits muy baja (ej.: grabaciones antiguas de celular `.3gp` usando códec AMR-NB a ~12kbps) pueden estar en el límite de lo que whisper puede procesar. Los entornos ruidosos (ruido de fondo, eco, hablantes distantes) también son desafiantes. Prueba `large-v3`, que maneja mejor el audio degradado.
|
|
124
|
+
|
|
125
|
+
3. **Archivo silencioso o corrupto** — Ejecuta `analyze_media` en el archivo para verificar si FFprobe detecta un flujo de audio válido.
|
|
126
|
+
|
|
127
|
+
4. **Fallo en la conversión** — El archivo puede no estar convirtiéndose a WAV correctamente. Intenta convertir manualmente primero:
|
|
128
|
+
```
|
|
129
|
+
ffmpeg -i yourfile.3gp -ar 16000 -ac 1 output.wav
|
|
130
|
+
```
|
|
131
|
+
Luego transcribe el WAV directamente.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## La tarea en segundo plano falla en archivos con caracteres especiales o Unicode en el nombre
|
|
136
|
+
|
|
137
|
+
**Causa:** whisper-cli.exe no puede escribir el archivo de salida cuando la ruta contiene caracteres Unicode (español, japonés, chino, emoji, corchetes, etc.) o ciertos caracteres especiales.
|
|
138
|
+
|
|
139
|
+
**Solución alternativa actual:** Renombra el archivo para usar solo caracteres ASCII antes de transcribir, luego renombra de vuelta si es necesario.
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
ren "archivo_español.mp4" "temp_transcribe.mp4"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Estado:** Este es un bug conocido. Hay una corrección planificada que enrutará la salida a través de una ruta temporal saneada y moverá el resultado al destino correcto tras completarse.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## La tarea en segundo plano muestra "fallo" sin salida
|
|
150
|
+
|
|
151
|
+
**Posibles causas:**
|
|
152
|
+
|
|
153
|
+
1. **Nombre de archivo Unicode** — Ver arriba.
|
|
154
|
+
|
|
155
|
+
2. **Ruta del modelo incorrecta** — El proceso separado no hereda las rutas corregidas. Ejecuta `check_config` para verificar las rutas.
|
|
156
|
+
|
|
157
|
+
3. **Proceso fue terminado** — Si whisper-cli.exe fue terminado manualmente a mitad de una tarea, no existirá ningún archivo de salida. Vuelve a intentarlo.
|
|
158
|
+
|
|
159
|
+
4. **VRAM insuficiente** — Los modelos grandes en GPUs con poca VRAM pueden fallar silenciosamente. Prueba un modelo más pequeño.
|
|
160
|
+
|
|
161
|
+
5. **Fallo en la conversión del archivo** — Intenta transcribir un archivo WAV directamente para aislar si el problema está en la conversión o en la transcripción.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## La transcripción en segundo plano no produce salida SRT
|
|
166
|
+
|
|
167
|
+
**Causa:** El modo en segundo plano (`background=true` en `transcribe_audio`) actualmente solo produce salida `.txt`. El formato SRT en modo en segundo plano aún no ha sido implementado.
|
|
168
|
+
|
|
169
|
+
**Solución alternativa:** Para archivos de menos de ~4 minutos, usa `generate_subtitles` en modo de bloqueo. Para archivos más largos, transcribe primero en modo en segundo plano para obtener el `.txt`, luego si necesitas el SRT, usa `generate_subtitles` en el mismo archivo (volverá a transcribir).
|
|
170
|
+
|
|
171
|
+
**Estado:** El soporte de SRT en modo en segundo plano está planificado para un release futuro.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## La GPU no está siendo usada (CPU atascada por encima del 50%)
|
|
176
|
+
|
|
177
|
+
**Causa:** Estás ejecutando el binario solo CPU que viene con el release estándar de whisper.cpp.
|
|
178
|
+
|
|
179
|
+
**Solución:** Descarga la build con Vulkan activado desde la [página de releases](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0) y extrae en `C:\whisper\Release\`.
|
|
180
|
+
|
|
181
|
+
Verifica que la aceleración GPU está activa:
|
|
182
|
+
- Pide a Claude ejecutar `check_system`
|
|
183
|
+
- Busca `✅ Vulkan binary: ggml-vulkan.dll found` en la salida
|
|
184
|
+
- Observa el Administrador de Tareas → Rendimiento → GPU durante una transcripción — la utilización de GPU debería subir al 15–30%
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## `check_system` reporta cantidad de VRAM incorrecta
|
|
189
|
+
|
|
190
|
+
Esta es una limitación conocida de Windows. El comando `wmic` lee la VRAM del registro, que en muchas tarjetas AMD reporta la mitad de la VRAM física. Una Vega 56 con 8GB HBM2 típicamente mostrará 4GB. Esto es solo un problema de visualización — whisper usa toda la VRAM física durante la inferencia.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Error "Transcripción ya en progreso"
|
|
195
|
+
|
|
196
|
+
Hay un proceso `whisper-cli.exe` ejecutándose de una tarea anterior. Espera a que termine, o:
|
|
197
|
+
|
|
198
|
+
1. Abre el Administrador de Tareas → pestaña Detalles
|
|
199
|
+
2. Encuentra `whisper-cli.exe`
|
|
200
|
+
3. Clic derecho → Finalizar tarea
|
|
201
|
+
|
|
202
|
+
Luego vuelve a intentarlo.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## La detección automática de idioma es incorrecta
|
|
207
|
+
|
|
208
|
+
La detección automática de Whisper se ejecuta en los primeros 30 segundos del audio. Si el archivo comienza en un idioma diferente al de la mayoría de su contenido, la detección puede ser incorrecta.
|
|
209
|
+
|
|
210
|
+
**Solución:** Especifica el idioma explícitamente (ej.: `language=es`) en lugar de depender de la detección automática.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## La generación de subtítulos produce "(hablando en idioma extranjero)" en todo el video
|
|
215
|
+
|
|
216
|
+
Whisper detectó habla pero no pudo transcribir. Causas más comunes:
|
|
217
|
+
|
|
218
|
+
1. **Modelo incorrecto** — Usando un modelo solo inglés en audio que no es inglés. Usa `large-v3`.
|
|
219
|
+
|
|
220
|
+
2. **Calidad de audio** — Los entornos ruidosos (cocinas, multitudes, eco) pueden superar al modelo medium. Prueba `large-v3`.
|
|
221
|
+
|
|
222
|
+
3. **Idioma mixto** — Los archivos con dos idiomas alternando tendrán el idioma minoritario reemplazado por marcadores con una configuración de idioma único.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## La traducción de subtítulos solo produce inglés
|
|
227
|
+
|
|
228
|
+
Este es el comportamiento esperado. El flag `--translate` integrado de Whisper solo traduce **al inglés**. Para traducción a otros idiomas de destino, procesa el contenido del archivo `.srt` por separado.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## La transcripción por lotes dejó de avanzar
|
|
233
|
+
|
|
234
|
+
Llama a `check_batch_progress` nuevamente. Si sigue atascado:
|
|
235
|
+
|
|
236
|
+
1. Verifica en el Administrador de Tareas si hay un proceso `whisper-cli.exe` en ejecución
|
|
237
|
+
2. Revisa los logs de tareas en `%TEMP%\whisper-mcp-jobs\`
|
|
238
|
+
3. Los archivos con error están marcados en el informe del lote — ejecútalos individualmente con `transcribe_audio`
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Limpiar el directorio temporal de tareas
|
|
243
|
+
|
|
244
|
+
whisper-windows-mcp escribe archivos de estado de tareas y logs en `%TEMP%\whisper-mcp-jobs\` durante la transcripción. Estos se acumulan con el tiempo y pueden consumir espacio en disco, especialmente los archivos `.log` de tareas de transcripción largas.
|
|
245
|
+
|
|
246
|
+
Una vez que un lote o tarea esté completo y hayas verificado las transcripciones de salida, puedes eliminar de forma segura todo en este directorio:
|
|
247
|
+
|
|
248
|
+
```powershell
|
|
249
|
+
Remove-Item "$env:TEMP\whisper-mcp-jobs\*" -Recurse -Force
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
El directorio se recreará automáticamente en la siguiente transcripción. Ningún archivo de salida de transcripción se almacena permanentemente aquí — se mueven al directorio de origen al completarse. Solo quedan metadatos de tareas y logs.
|
|
253
|
+
|
|
254
|
+
**Nota:** No elimines este directorio mientras una transcripción esté en progreso — los archivos de estado del lote son necesarios para que `check_batch_progress` funcione.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Lote grande sin supervisión desde la línea de comandos
|
|
259
|
+
|
|
260
|
+
Para lotes muy grandes donde quieres ejecutar durante la noche sin Claude, usa PowerShell.
|
|
261
|
+
|
|
262
|
+
**Importante:** whisper-cli.exe no puede leer MP4, MKV ni la mayoría de los formatos de video directamente. FFmpeg debe pre-convertir cada archivo a WAV primero. Whisper también escribe la transcripción al stdout y la salida de diagnóstico al stderr — usa `Start-Process -RedirectStandardOutput` para capturar la transcripción correctamente. Usar pipe con `|` o redirigir stderr con `2>$null` no 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
|
+
Cambia `*.mp4` por `*.mkv`, `*.m4a` etc. para que coincida con tus tipos de archivo. La verificación de salto `Test-Path` significa que volver a ejecutar el script tras una interrupción no reprocesará los archivos ya completados.
|
|
290
|
+
|
|
291
|
+
Esto escribe archivos `.txt` junto a cada fuente. Las herramientas MCP los reconocerán como ya transcritos cuando ejecutes `analyze_media` o `start_batch` después.
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Ubicación del archivo de configuración
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
C:\Users\TuUsuario\AppData\Roaming\Claude\claude_desktop_config.json
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Si `AppData` no es visible: Ver → Mostrar → Elementos ocultos en el Explorador de archivos.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Ejemplo de configuración 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` tiene como predeterminado `ffmpeg` (asume que está en el PATH). Establécelo explícitamente solo si FFmpeg está instalado en una ubicación no estándar.
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# whisper-windows-mcp — Pemecahan Masalah
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Daftar Periksa Cepat
|
|
6
|
+
|
|
7
|
+
Sebelum menyelidiki lebih dalam, verifikasi semua hal berikut:
|
|
8
|
+
|
|
9
|
+
- Jalur di `claude_desktop_config.json` menggunakan **dua backslash** (`C:\\whisper\\...`)
|
|
10
|
+
- `whisper-cli.exe` ada di jalur yang ditentukan dalam `WHISPER_CLI_PATH`
|
|
11
|
+
- File model `.bin` ada di jalur yang ditentukan dalam `WHISPER_MODEL`
|
|
12
|
+
- FFmpeg terpasang dan dapat diakses (`ffmpeg -version` berfungsi di command prompt)
|
|
13
|
+
- Claude Desktop sudah **di-restart penuh** setelah mengedit konfigurasi (keluar dari system tray, bukan sekadar menutup jendela)
|
|
14
|
+
- Server whisper menampilkan **berjalan** (lencana hijau) di Pengaturan → Pengembang
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## "whisper tidak terhubung" atau tidak ada alat yang tersedia
|
|
19
|
+
|
|
20
|
+
**Penyebab paling umum:** Claude Desktop tidak di-restart penuh setelah mengedit konfigurasi.
|
|
21
|
+
|
|
22
|
+
1. Klik kanan ikon Claude di system tray → Keluar
|
|
23
|
+
2. Buka kembali Claude Desktop
|
|
24
|
+
3. Buka Pengaturan → Pengembang dan periksa lencana **berjalan** berwarna hijau di sebelah whisper
|
|
25
|
+
|
|
26
|
+
Jika masih tidak muncul:
|
|
27
|
+
|
|
28
|
+
1. Buka `claude_desktop_config.json` dan periksa kesalahan sintaks JSON (koma yang hilang, kurung kurawal yang tidak cocok)
|
|
29
|
+
2. Pastikan semua jalur menggunakan dua backslash
|
|
30
|
+
3. Jalankan `check_config` di Claude Desktop untuk mendapatkan diagnostik
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## download_model timeout pada model besar
|
|
35
|
+
|
|
36
|
+
Claude Desktop memiliki timeout 4 menit untuk panggilan alat MCP. Unduhan model besar pada koneksi lambat mungkin melebihi batas ini.
|
|
37
|
+
|
|
38
|
+
**Ukuran file:**
|
|
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
|
+
Pada koneksi cepat (100 Mbps+), bahkan large-v3 selesai diunduh dalam waktu kurang dari 4 menit. Pada koneksi lebih lambat, gunakan browser atau PowerShell untuk mengunduh langsung dan tempatkan file di direktori model secara manual:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
# Contoh — unduh large-v3-turbo secara langsung
|
|
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
|
+
Kemudian gunakan `switch_model ggml-large-v3-turbo.bin` untuk mengaktifkannya.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## `check_config` melaporkan whisper-cli.exe tidak ditemukan
|
|
59
|
+
|
|
60
|
+
Jalur di konfigurasi tidak cocok dengan lokasi file yang sebenarnya.
|
|
61
|
+
|
|
62
|
+
Verifikasi file ada:
|
|
63
|
+
```
|
|
64
|
+
dir C:\whisper\Release\whisper-cli.exe
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Jika ada di tempat lain, perbarui `WHISPER_CLI_PATH` di konfigurasi Anda agar sesuai dengan jalur yang sebenarnya.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## `check_config` melaporkan FFmpeg tidak ditemukan
|
|
72
|
+
|
|
73
|
+
FFmpeg tidak terpasang atau tidak ada di PATH sistem Anda.
|
|
74
|
+
|
|
75
|
+
Pasang via winget:
|
|
76
|
+
```
|
|
77
|
+
winget install ffmpeg
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Atau unduh dari [ffmpeg.org](https://ffmpeg.org/download.html), ekstrak, dan tambahkan folder `bin` ke PATH sistem Anda.
|
|
81
|
+
|
|
82
|
+
Setelah memasang, buka command prompt baru dan verifikasi:
|
|
83
|
+
```
|
|
84
|
+
ffmpeg -version
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Jika Anda memasang FFmpeg ke lokasi non-standar, atur variabel lingkungan `FFMPEG_PATH` di konfigurasi Claude Desktop:
|
|
88
|
+
```json
|
|
89
|
+
"env": {
|
|
90
|
+
"FFMPEG_PATH": "C:\\ffmpeg\\bin\\ffmpeg.exe"
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Output transkripsi penuh dengan tag `[FOREIGN]`
|
|
97
|
+
|
|
98
|
+
**Penyebab:** Anda menggunakan model khusus bahasa Inggris (misalnya `ggml-medium.en.bin`) pada audio non-Inggris. Model khusus bahasa Inggris tidak dapat memproses bahasa lain dan menghasilkan `[FOREIGN]` sebagai placeholder untuk setiap segmen yang tidak dapat ditangani.
|
|
99
|
+
|
|
100
|
+
**Solusi:** Unduh dan gunakan `ggml-large-v3.bin` — model multibahasa. Ini diperlukan untuk transkripsi non-Inggris, deteksi bahasa otomatis, atau terjemahan.
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Simpan ke `C:\whisper\models\` dan perbarui konfigurasi:
|
|
107
|
+
```json
|
|
108
|
+
"WHISPER_MODEL": "C:\\whisper\\models\\ggml-large-v3.bin"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Atau ganti per-transkripsi menggunakan parameter `model` di `transcribe_audio` atau `generate_subtitles`.
|
|
112
|
+
|
|
113
|
+
> **Catatan:** Model khusus bahasa Inggris (`*.en.bin`) lebih cepat dan akurat untuk konten bahasa Inggris tetapi sama sekali tidak dapat menangani bahasa lain. Jika Anda bekerja dengan konten multibahasa, `large-v3` adalah model yang tepat terlepas dari hardware.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Transkripsi tidak menghasilkan output atau file kosong
|
|
118
|
+
|
|
119
|
+
**Kemungkinan penyebab:**
|
|
120
|
+
|
|
121
|
+
1. **Model salah untuk bahasa** — Model khusus bahasa Inggris (`*.en.bin`) tidak dapat mentranskrip bahasa lain. Gunakan `ggml-large-v3.bin` untuk konten multibahasa.
|
|
122
|
+
|
|
123
|
+
2. **Kualitas audio terlalu rendah** — File dengan bitrate sangat rendah (misalnya rekaman ponsel `.3gp` lama menggunakan codec AMR-NB ~12kbps) mungkin berada di batas kemampuan whisper. Lingkungan yang bising (kebisingan latar belakang, gema, pembicara jauh) juga menantang. Coba `large-v3` yang lebih baik menangani audio yang terdegradasi.
|
|
124
|
+
|
|
125
|
+
3. **File diam atau rusak** — Jalankan `analyze_media` pada file untuk memeriksa apakah FFprobe mendeteksi aliran audio yang valid.
|
|
126
|
+
|
|
127
|
+
4. **Kegagalan konversi** — File mungkin tidak dikonversi ke WAV dengan benar. Coba konversi secara manual terlebih dahulu:
|
|
128
|
+
```
|
|
129
|
+
ffmpeg -i yourfile.3gp -ar 16000 -ac 1 output.wav
|
|
130
|
+
```
|
|
131
|
+
Kemudian transkripsi WAV secara langsung.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Tugas latar belakang gagal pada file dengan karakter khusus atau Unicode di nama file
|
|
136
|
+
|
|
137
|
+
**Penyebab:** whisper-cli.exe tidak dapat menulis file output saat jalur mengandung karakter Unicode (bahasa Indonesia, Jepang, Korea, emoji, tanda kurung, dll.) atau karakter khusus tertentu.
|
|
138
|
+
|
|
139
|
+
**Solusi sementara saat ini:** Ubah nama file agar hanya menggunakan karakter ASCII sebelum transkripsi, lalu ubah nama kembali jika diperlukan.
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
ren "nama_file_indonesia.mp4" "temp_transcribe.mp4"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Status:** Ini adalah bug yang diketahui. Perbaikan direncanakan yang akan merutekan output melalui jalur temp yang disanitasi dan memindahkan hasilnya ke tujuan yang benar setelah selesai.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Tugas latar belakang menampilkan "gagal" tanpa output
|
|
150
|
+
|
|
151
|
+
**Kemungkinan penyebab:**
|
|
152
|
+
|
|
153
|
+
1. **Nama file Unicode** — Lihat di atas.
|
|
154
|
+
|
|
155
|
+
2. **Jalur model salah** — Proses terpisah tidak mewarisi jalur yang telah dikoreksi. Jalankan `check_config` untuk memverifikasi jalur.
|
|
156
|
+
|
|
157
|
+
3. **Proses dihentikan** — Jika whisper-cli.exe dihentikan secara manual di tengah tugas, tidak ada file output yang akan ada. Coba lagi.
|
|
158
|
+
|
|
159
|
+
4. **VRAM tidak cukup** — Model besar pada GPU dengan VRAM rendah mungkin gagal secara diam-diam. Coba model yang lebih kecil.
|
|
160
|
+
|
|
161
|
+
5. **Konversi file gagal** — Coba transkripsi file WAV langsung untuk mengisolasi apakah masalahnya ada di konversi atau transkripsi.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Transkripsi latar belakang tidak menghasilkan output SRT
|
|
166
|
+
|
|
167
|
+
**Penyebab:** Mode latar belakang (`background=true` di `transcribe_audio`) saat ini hanya menghasilkan output `.txt`. Format SRT dalam mode latar belakang belum diimplementasikan.
|
|
168
|
+
|
|
169
|
+
**Solusi:** Untuk file di bawah ~4 menit, gunakan `generate_subtitles` dalam mode pemblokiran. Untuk file yang lebih panjang, transkripsi dalam mode latar belakang terlebih dahulu untuk mendapatkan `.txt`, kemudian jika SRT diperlukan, gunakan `generate_subtitles` pada file yang sama (akan mentranskrip ulang).
|
|
170
|
+
|
|
171
|
+
**Status:** Dukungan SRT dalam mode latar belakang direncanakan untuk rilis mendatang.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## GPU tidak digunakan (CPU macet di atas 50%)
|
|
176
|
+
|
|
177
|
+
**Penyebab:** Anda menjalankan binary khusus CPU yang disertakan dengan rilis whisper.cpp standar.
|
|
178
|
+
|
|
179
|
+
**Solusi:** Unduh build yang mengaktifkan Vulkan dari [halaman rilis](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0) dan ekstrak ke `C:\whisper\Release\`.
|
|
180
|
+
|
|
181
|
+
Verifikasi akselerasi GPU aktif:
|
|
182
|
+
- Minta Claude `check_system`
|
|
183
|
+
- Cari `✅ Vulkan binary: ggml-vulkan.dll found` dalam output
|
|
184
|
+
- Pantau Task Manager → Performa → GPU selama transkripsi — utilisasi GPU seharusnya naik ke 15–30%
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## `check_system` melaporkan jumlah VRAM yang salah
|
|
189
|
+
|
|
190
|
+
Ini adalah keterbatasan Windows yang diketahui. Perintah `wmic` membaca VRAM dari registry, yang pada banyak kartu AMD melaporkan setengah VRAM fisik. Vega 56 dengan 8GB HBM2 biasanya menampilkan 4GB. Ini hanya masalah tampilan — whisper menggunakan VRAM fisik penuh selama inferensi.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Error "Transkripsi sudah berlangsung"
|
|
195
|
+
|
|
196
|
+
Ada proses `whisper-cli.exe` yang berjalan dari tugas sebelumnya. Tunggu hingga selesai, atau:
|
|
197
|
+
|
|
198
|
+
1. Buka Task Manager → tab Detail
|
|
199
|
+
2. Temukan `whisper-cli.exe`
|
|
200
|
+
3. Klik kanan → Akhiri tugas
|
|
201
|
+
|
|
202
|
+
Kemudian coba lagi.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Deteksi bahasa otomatis salah
|
|
207
|
+
|
|
208
|
+
Deteksi otomatis Whisper berjalan pada 30 detik pertama audio. Jika file dimulai dalam bahasa yang berbeda dari sebagian besar kontennya, deteksi mungkin salah.
|
|
209
|
+
|
|
210
|
+
**Solusi:** Tentukan bahasa secara eksplisit (misalnya `language=id`) daripada mengandalkan deteksi otomatis.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Pembuatan subtitle menghasilkan "(berbicara dalam bahasa asing)" di seluruh bagian
|
|
215
|
+
|
|
216
|
+
Whisper mendeteksi ucapan tetapi tidak dapat mentranskrip. Penyebab paling umum:
|
|
217
|
+
|
|
218
|
+
1. **Model salah** — Menggunakan model khusus bahasa Inggris pada audio non-Inggris. Gunakan `large-v3`.
|
|
219
|
+
|
|
220
|
+
2. **Kualitas audio** — Lingkungan yang bising (dapur, kerumunan, gema) mungkin mengalahkan model medium. Coba `large-v3`.
|
|
221
|
+
|
|
222
|
+
3. **Bahasa campuran** — File dengan dua bahasa yang bergantian akan membuat bahasa minoritas diisi placeholder dengan pengaturan satu bahasa.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Terjemahan subtitle hanya menghasilkan bahasa Inggris
|
|
227
|
+
|
|
228
|
+
Ini adalah desain yang disengaja. Flag `--translate` bawaan Whisper hanya menerjemahkan **ke bahasa Inggris**. Untuk terjemahan ke bahasa target lain, terjemahkan konten file `.srt` secara terpisah.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Transkripsi batch berhenti maju
|
|
233
|
+
|
|
234
|
+
Panggil `check_batch_progress` lagi. Jika masih macet:
|
|
235
|
+
|
|
236
|
+
1. Periksa Task Manager untuk proses `whisper-cli.exe` yang berjalan
|
|
237
|
+
2. Periksa log tugas di `%TEMP%\whisper-mcp-jobs\`
|
|
238
|
+
3. File yang gagal ditandai dalam laporan batch — jalankan ulang secara individual dengan `transcribe_audio`
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Membersihkan direktori tugas sementara
|
|
243
|
+
|
|
244
|
+
whisper-windows-mcp menulis file status tugas dan log ke `%TEMP%\whisper-mcp-jobs\` selama transkripsi. File-file ini terakumulasi dari waktu ke waktu dan dapat menghabiskan ruang disk, terutama file `.log` dari tugas transkripsi yang panjang.
|
|
245
|
+
|
|
246
|
+
Setelah batch atau tugas selesai dan Anda telah memverifikasi transkrip output, Anda dapat dengan aman menghapus semua yang ada di direktori ini:
|
|
247
|
+
|
|
248
|
+
```powershell
|
|
249
|
+
Remove-Item "$env:TEMP\whisper-mcp-jobs\*" -Recurse -Force
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Direktori akan dibuat ulang secara otomatis pada transkripsi berikutnya. Tidak ada file output transkrip yang disimpan secara permanen di sini — file dipindahkan ke direktori sumber saat selesai. Hanya metadata tugas dan log yang tersisa.
|
|
253
|
+
|
|
254
|
+
**Catatan:** Jangan hapus direktori ini saat transkripsi sedang berlangsung — file status batch diperlukan agar `check_batch_progress` berfungsi.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Batch besar tanpa pengawasan dari command line
|
|
259
|
+
|
|
260
|
+
Untuk batch yang sangat besar di mana Anda ingin menjalankan semalaman tanpa Claude, gunakan PowerShell.
|
|
261
|
+
|
|
262
|
+
**Penting:** whisper-cli.exe tidak dapat membaca MP4, MKV, atau sebagian besar format video secara langsung. FFmpeg harus mengkonversi setiap file ke WAV terlebih dahulu. whisper juga menulis transkrip ke stdout dan output diagnostik ke stderr — gunakan `Start-Process -RedirectStandardOutput` untuk menangkap transkrip dengan benar. Menggunakan pipe `|` atau mengalihkan stderr dengan `2>$null` tidak menangkap apa pun.
|
|
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
|
+
Ganti `*.mp4` dengan `*.mkv`, `*.m4a`, dll. sesuai jenis file Anda. Pemeriksaan lewati `Test-Path` berarti menjalankan ulang skrip setelah gangguan tidak akan memproses ulang file yang sudah selesai.
|
|
290
|
+
|
|
291
|
+
Script ini menulis file `.txt` di sebelah setiap sumber. Alat MCP akan mengenali file-file ini sebagai sudah ditranskripsi saat Anda menjalankan `analyze_media` atau `start_batch` setelahnya.
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Lokasi file konfigurasi
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
C:\Users\NamaPengguna\AppData\Roaming\Claude\claude_desktop_config.json
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Jika `AppData` tidak terlihat: Tampilan → Tampilkan → Item tersembunyi di File Explorer.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Contoh konfigurasi lengkap yang berfungsi
|
|
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` default ke `ffmpeg` (mengasumsikan ada di PATH). Atur secara eksplisit hanya jika FFmpeg dipasang di lokasi non-standar.
|