whisper-windows-mcp 2.2.2 → 2.3.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 (53) hide show
  1. package/{LICENSE-COMMERCIAL.md → COMMERCIAL-LICENSE.md} +58 -58
  2. package/LICENSE +40 -40
  3. package/PRIVACY.es.md +192 -135
  4. package/PRIVACY.id.md +192 -135
  5. package/PRIVACY.ja.md +192 -135
  6. package/PRIVACY.ko.md +192 -135
  7. package/PRIVACY.md +192 -135
  8. package/PRIVACY.pl.md +192 -135
  9. package/PRIVACY.pt-BR.md +192 -135
  10. package/PRIVACY.ro.md +192 -135
  11. package/PRIVACY.uk.md +192 -135
  12. package/PRIVACY.vi.md +192 -135
  13. package/README.es.md +74 -48
  14. package/README.id.md +77 -40
  15. package/README.ja.md +100 -72
  16. package/README.ko.md +63 -37
  17. package/README.md +76 -39
  18. package/README.pl.md +77 -40
  19. package/README.pt-BR.md +71 -45
  20. package/README.ro.md +78 -41
  21. package/README.uk.md +77 -40
  22. package/README.vi.md +67 -41
  23. package/ROADMAP.es.md +110 -48
  24. package/ROADMAP.id.md +77 -104
  25. package/ROADMAP.ja.md +84 -123
  26. package/ROADMAP.ko.md +73 -97
  27. package/ROADMAP.pl.md +104 -44
  28. package/ROADMAP.pt-BR.md +78 -102
  29. package/ROADMAP.ro.md +102 -44
  30. package/ROADMAP.uk.md +65 -97
  31. package/ROADMAP.vi.md +78 -102
  32. package/SECURITY.es.md +64 -47
  33. package/SECURITY.id.md +64 -47
  34. package/SECURITY.ja.md +64 -47
  35. package/SECURITY.ko.md +64 -47
  36. package/SECURITY.md +21 -4
  37. package/SECURITY.pl.md +64 -47
  38. package/SECURITY.pt-BR.md +64 -47
  39. package/SECURITY.ro.md +64 -47
  40. package/SECURITY.uk.md +64 -47
  41. package/SECURITY.vi.md +64 -47
  42. package/TROUBLESHOOTING.es.md +309 -323
  43. package/TROUBLESHOOTING.id.md +333 -323
  44. package/TROUBLESHOOTING.ja.md +399 -286
  45. package/TROUBLESHOOTING.ko.md +309 -323
  46. package/TROUBLESHOOTING.pl.md +355 -323
  47. package/TROUBLESHOOTING.pt-BR.md +309 -323
  48. package/TROUBLESHOOTING.ro.md +355 -323
  49. package/TROUBLESHOOTING.uk.md +369 -323
  50. package/TROUBLESHOOTING.vi.md +309 -323
  51. package/dist/index.js +591 -216
  52. package/package.json +45 -45
  53. package/patch_roadmaps.py +0 -72
@@ -1,323 +1,309 @@
1
- # whisper-windows-mcp — Khắc phục sự cố
2
-
3
- ---
4
-
5
- ## Danh sách kiểm tra nhanh
6
-
7
- Trước khi tìm hiểu sâu hơn, hãy xác nhận tất cả những điều sau:
8
-
9
- - Đường dẫn trong `claude_desktop_config.json` dùng **dấu gạch chéo ngược kép** (`C:\\whisper\\...`)
10
- - `whisper-cli.exe` tồn tại tại đường dẫn được chỉ định trong `WHISPER_CLI_PATH`
11
- - Tệp mô hình `.bin` tồn tại tại đường dẫn được chỉ định trong `WHISPER_MODEL`
12
- - FFmpeg đã cài đặt và có thể truy cập (`ffmpeg -version` hoạt động trong command prompt)
13
- - Claude Desktop đã được **khởi động lại hoàn toàn** sau khi chỉnh sửa cấu hình (thoát từ system tray, không chỉ đóng cửa sổ)
14
- - Máy chủ whisper hiển thị **đang chạy** (huy hiệu màu xanh) trong Cài đặt → Nhà phát triển
15
-
16
- ---
17
-
18
- ## "whisper không được kết nối" hoặc không có công cụ nào
19
-
20
- **Nguyên nhân phổ biến nhất:** Claude Desktop không được khởi động lại hoàn toàn sau khi chỉnh sửa cấu hình.
21
-
22
- 1. Nhấp chuột phải vào biểu tượng Claude trong system tray → Thoát
23
- 2. Mở lại Claude Desktop
24
- 3. Đi đến Cài đặt → Nhà phát triển và kiểm tra huy hiệu **đang chạy** màu xanh bên cạnh whisper
25
-
26
- Nếu vẫn không hiển thị:
27
-
28
- 1. Mở `claude_desktop_config.json` và kiểm tra lỗi cú pháp JSON (thiếu dấu phẩy, dấu ngoặc không khớp)
29
- 2. Đảm bảo tất cả đường dẫn dùng dấu gạch chéo ngược kép
30
- 3. Chạy `check_config` trong Claude Desktop để nhận thông tin chẩn đoán
31
-
32
- ---
33
-
34
- ## download_model bị timeout với mô hình lớn
35
-
36
- Claude Desktop có thời gian timeout 4 phút cho các lệnh gọi công cụ MCP. Tải xuống mô hình lớn trên kết nối chậm có thể vượt quá giới hạn này.
37
-
38
- **Kích thước tệp:**
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
- Trên kết nối nhanh (100 Mbps+), ngay cả large-v3 cũng tải trong vòng 4 phút. Trên kết nối chậm hơn, hãy dùng trình duyệt hoặc PowerShell để tải trực tiếp và đặt tệp vào thư mục mô hình thủ công:
47
-
48
- ```powershell
49
- # Ví dụ — tải trực tiếp large-v3-turbo
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
- Sau đó dùng `switch_model ggml-large-v3-turbo.bin` để kích hoạt.
55
-
56
- ---
57
-
58
- ## `check_config` báo không tìm thấy whisper-cli.exe
59
-
60
- Đường dẫn trong cấu hình không khớp với vị trí thực tế của tệp.
61
-
62
- Xác nhận tệp tồn tại:
63
- ```
64
- dir C:\whisper\Release\whisper-cli.exe
65
- ```
66
-
67
- Nếu ở vị trí khác, hãy cập nhật `WHISPER_CLI_PATH` trong cấu hình để khớp với đường dẫn thực tế.
68
-
69
- ---
70
-
71
- ## `check_config` báo không tìm thấy FFmpeg
72
-
73
- FFmpeg chưa được cài đặt hoặc không có trong PATH hệ thống.
74
-
75
- Cài đặt qua winget:
76
- ```
77
- winget install ffmpeg
78
- ```
79
-
80
- Hoặc tải xuống từ [ffmpeg.org](https://ffmpeg.org/download.html), giải nén và thêm thư mục `bin` vào PATH hệ thống.
81
-
82
- Sau khi cài đặt, mở command prompt mới và xác nhận:
83
- ```
84
- ffmpeg -version
85
- ```
86
-
87
- Nếu bạn cài FFmpeg ở vị trí không chuẩn, hãy đặt biến môi trường `FFMPEG_PATH` trong cấu hình Claude Desktop:
88
- ```json
89
- "env": {
90
- "FFMPEG_PATH": "C:\\ffmpeg\\bin\\ffmpeg.exe"
91
- }
92
- ```
93
-
94
- ---
95
-
96
- ## Kết quả phiên âm đầy thẻ `[FOREIGN]`
97
-
98
- **Nguyên nhân:** Bạn đang dùng mô hình chỉ tiếng Anh (ví dụ: `ggml-medium.en.bin`) với âm thanh không phải tiếng Anh. Mô hình chỉ tiếng Anh không thể xử lý các ngôn ngữ khác và xuất ra `[FOREIGN]` cho mọi đoạn không thể xử lý.
99
-
100
- **Cách sửa:** Tải xuống và sử dụng `ggml-large-v3.bin` — mô hình đa ngôn ngữ. Đây là yêu cầu bắt buộc cho bất kỳ phiên âm không phải tiếng Anh, tự động phát hiện ngôn ngữ hoặc dịch nào.
101
-
102
- ```
103
- https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
104
- ```
105
-
106
- Lưu vào `C:\whisper\models\` và cập nhật cấu hình:
107
- ```json
108
- "WHISPER_MODEL": "C:\\whisper\\models\\ggml-large-v3.bin"
109
- ```
110
-
111
- Hoặc ghi đè từng lần phiên âm bằng tham số `model` trong `transcribe_audio` hoặc `generate_subtitles`.
112
-
113
- > **Lưu ý:** Mô hình chỉ tiếng Anh (`*.en.bin`) nhanh hơn và chính xác hơn cho nội dung tiếng Anh nhưng hoàn toàn không thể xử lý các ngôn ngữ khác. Nếu bạn làm việc với nội dung đa ngôn ngữ, `large-v3` là mô hình đúng bất kể phần cứng.
114
-
115
- ---
116
-
117
- ## Phiên âm không tạo ra đầu ra hoặc tệp trống
118
-
119
- **Nguyên nhân có thể:**
120
-
121
- 1. **Mô hình sai cho ngôn ngữ** — Mô hình chỉ tiếng Anh (`*.en.bin`) không thể phiên âm các ngôn ngữ khác. Sử dụng `ggml-large-v3.bin` cho nội dung đa ngôn ngữ.
122
-
123
- 2. **Chất lượng âm thanh quá thấp** — Tệp có bitrate rất thấp (ví dụ: bản ghi điện thoại `.3gp` cũ dùng codec AMR-NB ~12kbps) có thể ở ranh giới whisper có thể xử lý. Môi trường nhiều tạp âm (tiếng ồn nền, vang, người nói xa) cũng gặp khó khăn. Hãy thử `large-v3` vì nó xử lý âm thanh kém chất lượng tốt hơn các mô hình nhỏ.
124
-
125
- 3. **Tệp im lặng hoặc bị hỏng** — Chạy `analyze_media` trên tệp để kiểm tra xem FFprobe có phát hiện luồng âm thanh hợp lệ không.
126
-
127
- 4. **Lỗi chuyển đổi** — Tệp có thể không chuyển đổi sang WAV đúng cách. Thử chuyển đổi thủ công trước:
128
- ```
129
- ffmpeg -i yourfile.3gp -ar 16000 -ac 1 output.wav
130
- ```
131
- Sau đó phiên âm tệp WAV trực tiếp.
132
-
133
- ---
134
-
135
- ## Tác vụ nền thất bại với tên tệp chứa ký tự đặc biệt hoặc Unicode
136
-
137
- **Nguyên nhân:** whisper-cli.exe không thể ghi tệp đầu ra khi đường dẫn chứa ký tự Unicode (tiếng Việt, tiếng Nhật, tiếng Hàn, emoji, dấu ngoặc, v.v.) hoặc một số ký tự đặc biệt nhất định.
138
-
139
- **Giải pháp tạm thời hiện tại:** Đổi tên tệp để chỉ dùng ký tự ASCII trước khi phiên âm, sau đó đổi lại nếu cần.
140
-
141
- ```
142
- ren "ten_file_tieng_viet.mp4" "temp_transcribe.mp4"
143
- ```
144
-
145
- **Trạng thái:** Đây là lỗi đã biết. Đang lên kế hoạch sửa bằng cách định tuyến đầu ra qua đường dẫn tạm thời đã làm sạch và di chuyển kết quả đến đích chính xác sau khi hoàn thành.
146
-
147
- ---
148
-
149
- ## Tác vụ nền hiển thị "thất bại" không có đầu ra
150
-
151
- **Nguyên nhân có thể:**
152
-
153
- 1. **Tên tệp Unicode** — Xem ở trên.
154
-
155
- 2. **Đường dẫn mô hình sai** — Tiến trình tách rời không kế thừa đường dẫn đã sửa. Chạy `check_config` để xác nhận đường dẫn.
156
-
157
- 3. **Tiến trình bị tắt** — Nếu whisper-cli.exe bị tắt thủ công giữa chừng, sẽ không có tệp đầu ra. Thử lại.
158
-
159
- 4. **VRAM không đủ** — Mô hình lớn trên GPU ít VRAM có thể thất bại lặng lẽ. Thử mô hình nhỏ hơn.
160
-
161
- 5. **Lỗi chuyển đổi tệp** — Thử phiên âm tệp WAV trực tiếp để xác định vấn đề là ở chuyển đổi hay phiên âm.
162
-
163
- ---
164
-
165
- ## Phiên âm nền không tạo ra đầu ra SRT
166
-
167
- **Nguyên nhân:** Chế độ nền (`background=true` trong `transcribe_audio`) hiện chỉ tạo ra đầu ra `.txt`. Định dạng SRT trong chế độ nền chưa được triển khai.
168
-
169
- **Giải pháp tạm thời:** Với tệp dưới ~4 phút, sử dụng `generate_subtitles` ở chế độ chặn. Với tệp dài hơn, trước tiên phiên âm ở chế độ nền để lấy `.txt`, sau đó nếu cần SRT, hãy dùng `generate_subtitles` trên cùng tệp đó (sẽ phiên âm lại).
170
-
171
- **Trạng thái:** Hỗ trợ SRT trong chế độ nền được lên kế hoạch cho bản phát hành tương lai.
172
-
173
- ---
174
-
175
- ## GPU không được sử dụng (CPU cao trên 50%)
176
-
177
- **Nguyên nhân:** Bạn đang chạy tệp nhị phân chỉ dùng CPU đi kèm với bản phát hành whisper.cpp tiêu chuẩn.
178
-
179
- **Cách sửa:** Tải xuống bản build có Vulkan từ [trang phát hành](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0) và giải nén vào `C:\whisper\Release\`.
180
-
181
- Xác nhận tăng tốc GPU đang hoạt động:
182
- - Yêu cầu Claude `check_system`
183
- - Tìm `✅ Vulkan binary: ggml-vulkan.dll found` trong đầu ra
184
- - Theo dõi Task Manager → Hiệu suất → GPU trong quá trình phiên âm — mức sử dụng GPU sẽ tăng lên 15–30%
185
-
186
- ---
187
-
188
- ## `check_system` báo dung lượng VRAM sai
189
-
190
- Đây là giới hạn đã biết của Windows. Lệnh `wmic` đọc VRAM từ registry, trên nhiều card AMD báo một nửa VRAM vật lý. Card Vega 56 có 8GB HBM2 thường hiển thị 4GB. Đây chỉ là vấn đề hiển thị — whisper sử dụng đầy đủ VRAM vật lý trong quá trình suy luận.
191
-
192
- ---
193
-
194
- ## Lỗi "Đang phiên âm"
195
-
196
- Có một tiến trình `whisper-cli.exe` đang chạy từ tác vụ trước. Chờ nó hoàn thành, hoặc:
197
-
198
- 1. Mở Task Manager → tab Chi tiết
199
- 2. Tìm `whisper-cli.exe`
200
- 3. Nhấp chuột phải → Kết thúc tác vụ
201
-
202
- Sau đó thử lại.
203
-
204
- ---
205
-
206
- ## Tự động phát hiện ngôn ngữ sai
207
-
208
- Tự động phát hiện của Whisper chạy trên 30 giây đầu tiên của âm thanh. Nếu tệp bắt đầu bằng ngôn ngữ khác với phần lớn nội dung, việc phát hiện có thể sai.
209
-
210
- **Cách sửa:** Chỉ định ngôn ngữ rõ ràng (ví dụ: `language=vi`) thay vì dựa vào tự động phát hiện.
211
-
212
- ---
213
-
214
- ## Tạo phụ đề tạo ra "(đang nói bằng tiếng nước ngoài)" trong suốt
215
-
216
- Whisper phát hiện giọng nói nhưng không thể phiên âm. Nguyên nhân phổ biến nhất:
217
-
218
- 1. **Mô hình sai** — Đang dùng mô hình chỉ tiếng Anh với âm thanh không phải tiếng Anh. Dùng `large-v3`.
219
-
220
- 2. **Chất lượng âm thanh** — Môi trường nhiều tạp âm (nhà bếp, đám đông, tiếng vang) có thể vượt quá khả năng của mô hình medium. Thử `large-v3`.
221
-
222
- 3. **Ngôn ngữ hỗn hợp** — Tệp có hai ngôn ngữ xen kẽ sẽ có ngôn ngữ thiểu số được thay thế bằng ký hiệu chỗ giữ khi dùng cài đặt một ngôn ngữ.
223
-
224
- ---
225
-
226
- ## Dịch phụ đề chỉ ra tiếng Anh
227
-
228
- Đây là hành vi có chủ ý. Flag `--translate` tích hợp của Whisper chỉ dịch **sang tiếng Anh**. Để dịch sang các ngôn ngữ đích khác, hãy xử lý nội dung tệp `.srt` riêng biệt.
229
-
230
- ---
231
-
232
- ## Phiên âm hàng loạt ngừng tiến triển
233
-
234
- Gọi `check_batch_progress` lại. Nếu vẫn bị kẹt:
235
-
236
- 1. Kiểm tra Task Manager xem có tiến trình `whisper-cli.exe` đang chạy không
237
- 2. Kiểm tra nhật ký tác vụ trong `%TEMP%\whisper-mcp-jobs\`
238
- 3. Các tệp thất bại được đánh dấu trong báo cáo đợt — hãy chạy lại từng tệp riêng lẻ bằng `transcribe_audio`
239
-
240
- ---
241
-
242
- ## Dọn dẹp thư mục tệp tạm thời
243
-
244
- whisper-windows-mcp ghi tệp trạng thái tác vụ và nhật ký vào `%TEMP%\whisper-mcp-jobs\` trong quá trình phiên âm. Chúng tích lũy theo thời gian và có thể chiếm dung lượng đĩa, đặc biệt là các tệp `.log` từ các tác vụ phiên âm dài.
245
-
246
- Sau khi đợt hoặc tác vụ hoàn thành và bạn đã xác nhận các bản phiên âm đầu ra, bạn có thể xóa an toàn mọi thứ trong thư mục này:
247
-
248
- ```powershell
249
- Remove-Item "$env:TEMP\whisper-mcp-jobs\*" -Recurse -Force
250
- ```
251
-
252
- Thư mục sẽ được tạo lại tự động vào lần phiên âm tiếp theo. Không có tệp đầu ra phiên âm nào được lưu vĩnh viễn ở đây — chúng được di chuyển đến thư mục nguồn khi hoàn thành. Chỉ có siêu dữ liệu tác vụ và nhật ký còn lại.
253
-
254
- **Lưu ý:** Không xóa thư mục này trong khi đang phiên âm — các tệp trạng thái đợt cần thiết để `check_batch_progress` hoạt động.
255
-
256
- ---
257
-
258
- ## Xử lý hàng loạt lớn không giám sát từ dòng lệnh
259
-
260
- Với các đợt rất lớn mà bạn muốn chạy qua đêm không cần Claude, hãy sử dụng PowerShell.
261
-
262
- **Quan trọng:** whisper-cli.exe không thể đọc trực tiếp MP4, MKV hoặc hầu hết các định dạng video. FFmpeg phải chuyển đổi từng tệp sang WAV trước. whisper cũng ghi bản phiên âm vào stdout và đầu ra chẩn đoán vào stderr — sử dụng `Start-Process -RedirectStandardOutput` để bắt bản phiên âm đúng cách. Dùng pipe `|` hoặc chuyển hướng stderr với `2>$null` sẽ không bắt được gì.
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
- Thay `*.mp4` bằng `*.mkv`, `*.m4a` v.v. để khớp với loại tệp của bạn. Kiểm tra bỏ qua `Test-Path` có nghĩa là chạy lại script sau khi bị gián đoạn sẽ không xử lý lại các tệp đã hoàn thành.
290
-
291
- Script này ghi tệp `.txt` bên cạnh mỗi tệp nguồn. Các công cụ MCP sẽ nhận ra chúng là đã được phiên âm khi bạn chạy `analyze_media` hoặc `start_batch` sau đó.
292
-
293
- ---
294
-
295
- ## Vị trí tệp cấu hình
296
-
297
- ```
298
- C:\Users\TênNgườiDùng\AppData\Roaming\Claude\claude_desktop_config.json
299
- ```
300
-
301
- Nếu `AppData` không hiển thị: Xem → Hiển thị → Mục ẩn trong File Explorer.
302
-
303
- ---
304
-
305
- ## Ví dụ cấu hình hoàn chỉnh hoạt động
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` mặc định là `ffmpeg` (giả sử có trong PATH). Chỉ đặt rõ ràng nếu FFmpeg được cài đặt ở vị trí không chuẩn.
1
+ # whisper-windows-mcp — Khắc phục sự cố
2
+
3
+ ---
4
+
5
+ ## Danh sách kiểm tra nhanh
6
+
7
+ Trước khi tìm hiểu sâu hơn, hãy xác nhận tất cả những điều sau:
8
+
9
+ - Đường dẫn trong `claude_desktop_config.json` dùng **dấu gạch chéo ngược kép** (`C:\\whisper\\...`)
10
+ - `whisper-cli.exe` tồn tại tại đường dẫn được chỉ định trong `WHISPER_CLI_PATH`
11
+ - Tệp mô hình `.bin` tồn tại tại đường dẫn được chỉ định trong `WHISPER_MODEL`
12
+ - FFmpeg đã cài đặt và có thể truy cập (`ffmpeg -version` hoạt động trong command prompt)
13
+ - Claude Desktop đã được **khởi động lại hoàn toàn** sau khi chỉnh sửa cấu hình (thoát từ system tray, không chỉ đóng cửa sổ)
14
+ - Máy chủ whisper hiển thị **đang chạy** (huy hiệu màu xanh) trong Cài đặt → Nhà phát triển
15
+
16
+ ---
17
+
18
+ ## "whisper không được kết nối" hoặc không có công cụ nào
19
+
20
+ **Nguyên nhân phổ biến nhất:** Claude Desktop không được khởi động lại hoàn toàn sau khi chỉnh sửa cấu hình.
21
+
22
+ 1. Nhấp chuột phải vào biểu tượng Claude trong system tray → Thoát
23
+ 2. Mở lại Claude Desktop
24
+ 3. Đi đến Cài đặt → Nhà phát triển và kiểm tra huy hiệu **đang chạy** màu xanh bên cạnh whisper
25
+
26
+ Nếu vẫn không hiển thị:
27
+
28
+ 1. Mở `claude_desktop_config.json` và kiểm tra lỗi cú pháp JSON (thiếu dấu phẩy, dấu ngoặc không khớp)
29
+ 2. Đảm bảo tất cả đường dẫn dùng dấu gạch chéo ngược kép
30
+ 3. Chạy `check_config` trong Claude Desktop để nhận thông tin chẩn đoán
31
+
32
+ ---
33
+
34
+ ## download_model bị timeout với mô hình lớn
35
+
36
+ Claude Desktop có thời gian timeout 4 phút cho các lệnh gọi công cụ MCP. Tải xuống mô hình lớn trên kết nối chậm có thể vượt quá giới hạn này.
37
+
38
+ **Kích thước tệp:**
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
+ Trên kết nối nhanh (100 Mbps+), ngay cả large-v3 cũng tải trong vòng 4 phút. Trên kết nối chậm hơn, hãy dùng trình duyệt hoặc PowerShell để tải trực tiếp và đặt tệp vào thư mục mô hình thủ công:
47
+
48
+ ```powershell
49
+ # Ví dụ — tải trực tiếp large-v3-turbo
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
+ Sau đó dùng `switch_model ggml-large-v3-turbo.bin` để kích hoạt.
55
+
56
+ ---
57
+
58
+ ## `check_config` báo không tìm thấy whisper-cli.exe
59
+
60
+ Đường dẫn trong cấu hình không khớp với vị trí thực tế của tệp.
61
+
62
+ Xác nhận tệp tồn tại:
63
+ ```
64
+ dir C:\whisper\Release\whisper-cli.exe
65
+ ```
66
+
67
+ Nếu ở vị trí khác, hãy cập nhật `WHISPER_CLI_PATH` trong cấu hình để khớp với đường dẫn thực tế.
68
+
69
+ ---
70
+
71
+ ## `check_config` báo không tìm thấy FFmpeg
72
+
73
+ FFmpeg chưa được cài đặt hoặc không có trong PATH hệ thống.
74
+
75
+ Cài đặt qua winget:
76
+ ```
77
+ winget install ffmpeg
78
+ ```
79
+
80
+ Hoặc tải xuống từ [ffmpeg.org](https://ffmpeg.org/download.html), giải nén và thêm thư mục `bin` vào PATH hệ thống.
81
+
82
+ Sau khi cài đặt, mở command prompt mới và xác nhận:
83
+ ```
84
+ ffmpeg -version
85
+ ```
86
+
87
+ Nếu bạn cài FFmpeg ở vị trí không chuẩn, hãy đặt biến môi trường `FFMPEG_PATH` trong cấu hình Claude Desktop:
88
+ ```json
89
+ "env": {
90
+ "FFMPEG_PATH": "C:\\ffmpeg\\bin\\ffmpeg.exe"
91
+ }
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Kết quả phiên âm đầy thẻ `[FOREIGN]`
97
+
98
+ **Nguyên nhân:** Bạn đang dùng mô hình chỉ tiếng Anh (ví dụ: `ggml-medium.en.bin`) với âm thanh không phải tiếng Anh. Mô hình chỉ tiếng Anh không thể xử lý các ngôn ngữ khác và xuất ra `[FOREIGN]` cho mọi đoạn không thể xử lý.
99
+
100
+ **Cách sửa:** Tải xuống và sử dụng `ggml-large-v3.bin` — mô hình đa ngôn ngữ. Đây là yêu cầu bắt buộc cho bất kỳ phiên âm không phải tiếng Anh, tự động phát hiện ngôn ngữ hoặc dịch nào.
101
+
102
+ ```
103
+ https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
104
+ ```
105
+
106
+ Lưu vào `C:\whisper\models\` và cập nhật cấu hình:
107
+ ```json
108
+ "WHISPER_MODEL": "C:\\whisper\\models\\ggml-large-v3.bin"
109
+ ```
110
+
111
+ Hoặc ghi đè từng lần phiên âm bằng tham số `model` trong `transcribe_audio` hoặc `generate_subtitles`.
112
+
113
+ > **Lưu ý:** Mô hình chỉ tiếng Anh (`*.en.bin`) nhanh hơn và chính xác hơn cho nội dung tiếng Anh nhưng hoàn toàn không thể xử lý các ngôn ngữ khác. Nếu bạn làm việc với nội dung đa ngôn ngữ, `large-v3` là mô hình đúng bất kể phần cứng.
114
+
115
+ ---
116
+
117
+ ## Phiên âm không tạo ra đầu ra hoặc tệp trống
118
+
119
+ **Nguyên nhân có thể:**
120
+
121
+ 1. **Mô hình sai cho ngôn ngữ** — Mô hình chỉ tiếng Anh (`*.en.bin`) không thể phiên âm các ngôn ngữ khác. Sử dụng `ggml-large-v3.bin` cho nội dung đa ngôn ngữ.
122
+
123
+ 2. **Chất lượng âm thanh quá thấp** — Tệp có bitrate rất thấp (ví dụ: bản ghi điện thoại `.3gp` cũ dùng codec AMR-NB ~12kbps) có thể ở ranh giới whisper có thể xử lý. Môi trường nhiều tạp âm (tiếng ồn nền, vang, người nói xa) cũng gặp khó khăn. Hãy thử `large-v3` vì nó xử lý âm thanh kém chất lượng tốt hơn các mô hình nhỏ.
124
+
125
+ 3. **Tệp im lặng hoặc bị hỏng** — Chạy `analyze_media` trên tệp để kiểm tra xem FFprobe có phát hiện luồng âm thanh hợp lệ không.
126
+
127
+ 4. **Lỗi chuyển đổi** — Tệp có thể không chuyển đổi sang WAV đúng cách. Thử chuyển đổi thủ công trước:
128
+ ```
129
+ ffmpeg -i yourfile.3gp -ar 16000 -ac 1 output.wav
130
+ ```
131
+ Sau đó phiên âm tệp WAV trực tiếp.
132
+
133
+ ---
134
+
135
+ ## Tác vụ nền thất bại với tên tệp chứa ký tự đặc biệt hoặc Unicode
136
+
137
+ **Nguyên nhân:** whisper-cli.exe không thể ghi tệp đầu ra khi đường dẫn chứa ký tự Unicode (tiếng Việt, tiếng Nhật, tiếng Hàn, emoji, dấu ngoặc, v.v.) hoặc một số ký tự đặc biệt nhất định.
138
+
139
+ **Đã sửa trong v2.0.0.** Nếu bạn đang chạy phiên bản hiện tại, vấn đề này sẽ không xảy ra. Nếu vẫn xảy ra, hãy cập nhật bằng `npm install -g whisper-windows-mcp` và khởi động lại Claude Desktop.
140
+
141
+ Nếu bạn đang dùng phiên bản cũ, giải pháp tạm thời: đổi tên tệp để chỉ dùng ký tự ASCII trước khi phiên âm, sau đó đổi lại nếu cần.
142
+
143
+ ```
144
+ ren "ten_file_tieng_viet.mp4" "temp_transcribe.mp4"
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Tác vụ nền hiển thị "thất bại" không có đầu ra
150
+
151
+ **Nguyên nhân có thể:**
152
+
153
+ 1. **Đường dẫn mô hình sai** — Tiến trình tách rời không kế thừa đường dẫn đã sửa. Chạy `check_config` để xác nhận đường dẫn.
154
+
155
+ 2. **Tiến trình bị tắt** — Nếu whisper-cli.exe bị tắt thủ công giữa chừng, sẽ không có tệp đầu ra. Thử lại.
156
+
157
+ 3. **VRAM không đủ** — Mô hình lớn trên GPU ít VRAM có thể thất bại lặng lẽ. Thử mô hình nhỏ hơn.
158
+
159
+ 4. **Lỗi chuyển đổi tệp** — Thử phiên âm tệp WAV trực tiếp để xác định vấn đề là ở chuyển đổi hay phiên âm.
160
+
161
+ ---
162
+
163
+ ## GPU không được sử dụng (CPU cao trên 50%)
164
+
165
+ **Nguyên nhân:** Bạn đang chạy tệp nhị phân chỉ dùng CPU đi kèm với bản phát hành whisper.cpp tiêu chuẩn.
166
+
167
+ **Cách sửa:** Tải xuống bản build có Vulkan từ [trang phát hành](https://github.com/eviscerations/whisper-windows-mcp/releases/tag/v1.4.0) và giải nén vào `C:\whisper\Release\`.
168
+
169
+ Xác nhận tăng tốc GPU đang hoạt động:
170
+ - Yêu cầu Claude `check_system`
171
+ - Tìm `✅ Vulkan binary: ggml-vulkan.dll found` trong đầu ra
172
+ - Theo dõi Task Manager → Hiệu suất → GPU trong quá trình phiên âm — mức sử dụng GPU sẽ tăng lên 15–30%
173
+
174
+ ---
175
+
176
+ ## `check_system` báo dung lượng VRAM sai
177
+
178
+ Đây là giới hạn đã biết của Windows. Lệnh `wmic` đọc VRAM từ registry, trên nhiều card AMD báo một nửa VRAM vật lý. Card Vega 56 có 8GB HBM2 thường hiển thị 4GB. Đây chỉ là vấn đề hiển thị — whisper sử dụng đầy đủ VRAM vật lý trong quá trình suy luận.
179
+
180
+ ---
181
+
182
+ ## Lỗi "Đang phiên âm"
183
+
184
+ Có một tiến trình `whisper-cli.exe` đang chạy từ tác vụ trước. Chờ nó hoàn thành, hoặc:
185
+
186
+ 1. Mở Task Manager → tab Chi tiết
187
+ 2. Tìm `whisper-cli.exe`
188
+ 3. Nhấp chuột phải → Kết thúc tác vụ
189
+
190
+ Sau đó thử lại.
191
+
192
+ ---
193
+
194
+ ## Tự động phát hiện ngôn ngữ sai
195
+
196
+ Tự động phát hiện của Whisper chạy trên 30 giây đầu tiên của âm thanh. Nếu tệp bắt đầu bằng ngôn ngữ khác với phần lớn nội dung, việc phát hiện có thể sai.
197
+
198
+ **Cách sửa:** Chỉ định ngôn ngữ rõ ràng (ví dụ: `language=vi`) thay vì dựa vào tự động phát hiện.
199
+
200
+ ---
201
+
202
+ ## Tạo phụ đề tạo ra "(đang nói bằng tiếng nước ngoài)" trong suốt
203
+
204
+ Whisper phát hiện giọng nói nhưng không thể phiên âm. Nguyên nhân phổ biến nhất:
205
+
206
+ 1. **Mô hình sai** — Đang dùng mô hình chỉ tiếng Anh với âm thanh không phải tiếng Anh. Dùng `large-v3`.
207
+
208
+ 2. **Chất lượng âm thanh** — Môi trường nhiều tạp âm (nhà bếp, đám đông, tiếng vang) có thể vượt quá khả năng của mô hình medium. Thử `large-v3`.
209
+
210
+ 3. **Ngôn ngữ hỗn hợp** — Tệp có hai ngôn ngữ xen kẽ sẽ có ngôn ngữ thiểu số được thay thế bằng ký hiệu chỗ giữ khi dùng cài đặt một ngôn ngữ.
211
+
212
+ ---
213
+
214
+ ## Dịch phụ đề chỉ ra tiếng Anh
215
+
216
+ Đây là hành vi có chủ ý. Flag `--translate` tích hợp của Whisper chỉ dịch **sang tiếng Anh**. Để dịch sang các ngôn ngữ đích khác, hãy xử lý nội dung tệp `.srt` riêng biệt.
217
+
218
+ ---
219
+
220
+ ## Phiên âm hàng loạt ngừng tiến triển
221
+
222
+ Gọi `check_batch_progress` lại. Nếu vẫn bị kẹt:
223
+
224
+ 1. Kiểm tra Task Manager xem có tiến trình `whisper-cli.exe` đang chạy không
225
+ 2. Kiểm tra nhật ký tác vụ trong `%TEMP%\whisper-mcp-jobs\`
226
+ 3. Các tệp thất bại được đánh dấu trong báo cáo đợt — hãy chạy lại từng tệp riêng lẻ bằng `transcribe_audio`
227
+
228
+ ---
229
+
230
+ ## Dọn dẹp thư mục tệp tạm thời
231
+
232
+ whisper-windows-mcp ghi tệp trạng thái tác vụ và nhật ký vào `%TEMP%\whisper-mcp-jobs\` trong quá trình phiên âm. Máy chủ tự động dọn dẹp các tệp cũ hơn 7 ngày khi khởi động. Để dọn dẹp thủ công, sau khi đợt hoặc tác vụ hoàn thành và bạn đã xác nhận các bản phiên âm đầu ra, bạn có thể xóa an toàn mọi thứ trong thư mục này:
233
+
234
+ ```powershell
235
+ Remove-Item "$env:TEMP\whisper-mcp-jobs\*" -Recurse -Force
236
+ ```
237
+
238
+ Thư mục sẽ được tạo lại tự động vào lần phiên âm tiếp theo. Không có tệp đầu ra phiên âm nào được lưu vĩnh viễn ở đây — chúng được di chuyển đến thư mục nguồn khi hoàn thành. Chỉ có siêu dữ liệu tác vụ và nhật ký còn lại.
239
+
240
+ **Lưu ý:** Không xóa thư mục này trong khi đang phiên âm — các tệp trạng thái đợt cần thiết để `check_batch_progress` hoạt động.
241
+
242
+ ---
243
+
244
+ ## Xử lý hàng loạt lớn không giám sát từ dòng lệnh
245
+
246
+ Với các đợt rất lớn mà bạn muốn chạy qua đêm không cần Claude, hãy sử dụng PowerShell.
247
+
248
+ **Quan trọng:** whisper-cli.exe không thể đọc trực tiếp MP4, MKV hoặc hầu hết các định dạng video. FFmpeg phải chuyển đổi từng tệp sang WAV trước. whisper cũng ghi bản phiên âm vào stdout và đầu ra chẩn đoán vào stderr — sử dụng `Start-Process -RedirectStandardOutput` để bắt bản phiên âm đúng cách. Dùng pipe `|` hoặc chuyển hướng stderr với `2>$null` sẽ không bắt được gì.
249
+
250
+ ```powershell
251
+ $whisper = "C:\whisper\Release\whisper-cli.exe"
252
+ $model = "C:\whisper\models\ggml-medium.en.bin"
253
+ $dir = "C:\path\to\your\folder"
254
+ $ffmpeg = "ffmpeg"
255
+ $tmp = "$env:TEMP\whisper_convert.wav"
256
+
257
+ Get-ChildItem "$dir\*.mp4" | ForEach-Object {
258
+ $out = ($_.FullName -replace '\.mp4$', '') + ".txt"
259
+ if (Test-Path $out) {
260
+ Write-Host "SKIP (exists): $($_.Name)"
261
+ return
262
+ }
263
+ Write-Host "Converting: $($_.Name)"
264
+ & $ffmpeg -y -i $_.FullName -ar 16000 -ac 1 -c:a pcm_s16le $tmp 2>$null
265
+ Write-Host "Transcribing: $($_.Name)"
266
+ $wArgs = "-m `"$model`" -f `"$tmp`" --threads 8 --condition-on-previous-text 0 --no-speech-thold 0.6"
267
+ Start-Process -FilePath $whisper -ArgumentList $wArgs -RedirectStandardOutput $out -Wait -NoNewWindow
268
+ Write-Host "Done: $($_.BaseName).txt"
269
+ }
270
+
271
+ Remove-Item $tmp -ErrorAction SilentlyContinue
272
+ Write-Host "All done."
273
+ ```
274
+
275
+ Thay `*.mp4` bằng `*.mkv`, `*.m4a` v.v. để khớp với loại tệp của bạn. Kiểm tra bỏ qua `Test-Path` có nghĩa là chạy lại script sau khi bị gián đoạn sẽ không xử lý lại các tệp đã hoàn thành.
276
+
277
+ Script này ghi tệp `.txt` bên cạnh mỗi tệp nguồn. Các công cụ MCP sẽ nhận ra chúng là đã được phiên âm khi bạn chạy `analyze_media` hoặc `start_batch` sau đó.
278
+
279
+ ---
280
+
281
+ ## Vị trí tệp cấu hình
282
+
283
+ ```
284
+ C:\Users\TênNgườiDùng\AppData\Roaming\Claude\claude_desktop_config.json
285
+ ```
286
+
287
+ Nếu `AppData` không hiển thị: Xem → Hiển thị → Mục ẩn trong File Explorer.
288
+
289
+ ---
290
+
291
+ ## Ví dụ cấu hình hoàn chỉnh hoạt động
292
+
293
+ ```json
294
+ {
295
+ "mcpServers": {
296
+ "whisper": {
297
+ "command": "npx",
298
+ "args": ["-y", "whisper-windows-mcp"],
299
+ "env": {
300
+ "WHISPER_CLI_PATH": "C:\\whisper\\Release\\whisper-cli.exe",
301
+ "WHISPER_MODEL": "C:\\whisper\\models\\ggml-medium.en.bin",
302
+ "FFMPEG_PATH": "ffmpeg"
303
+ }
304
+ }
305
+ }
306
+ }
307
+ ```
308
+
309
+ `FFMPEG_PATH` mặc định là `ffmpeg` (giả sử có trong PATH). Chỉ đặt rõ ràng nếu FFmpeg được cài đặt ở vị trí không chuẩn.