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.
- package/.github/workflows/ci.yml +24 -0
- package/.github/workflows/publish.yml +24 -0
- package/{LICENSE-COMMERCIAL.md → COMMERCIAL-LICENSE.md} +58 -58
- package/LICENSE +40 -40
- package/PRIVACY.es.md +194 -135
- package/PRIVACY.id.md +194 -135
- package/PRIVACY.ja.md +194 -135
- package/PRIVACY.ko.md +194 -135
- package/PRIVACY.md +194 -135
- package/PRIVACY.pl.md +194 -135
- package/PRIVACY.pt-BR.md +194 -135
- package/PRIVACY.ro.md +194 -135
- package/PRIVACY.uk.md +194 -135
- package/PRIVACY.vi.md +194 -135
- package/README.es.md +80 -48
- package/README.id.md +83 -40
- package/README.ja.md +106 -72
- package/README.ko.md +69 -37
- package/README.md +82 -39
- package/README.pl.md +83 -40
- package/README.pt-BR.md +77 -45
- package/README.ro.md +84 -41
- package/README.uk.md +83 -40
- package/README.vi.md +73 -41
- package/ROADMAP.es.md +131 -45
- package/ROADMAP.id.md +86 -89
- package/ROADMAP.ja.md +93 -108
- package/ROADMAP.ko.md +82 -82
- package/ROADMAP.pl.md +125 -41
- package/ROADMAP.pt-BR.md +87 -87
- package/ROADMAP.ro.md +123 -41
- package/ROADMAP.uk.md +82 -90
- package/ROADMAP.vi.md +87 -87
- package/SECURITY.es.md +76 -47
- package/SECURITY.id.md +76 -47
- package/SECURITY.ja.md +76 -47
- package/SECURITY.ko.md +76 -47
- package/SECURITY.md +33 -4
- package/SECURITY.pl.md +76 -47
- package/SECURITY.pt-BR.md +76 -47
- package/SECURITY.ro.md +76 -47
- package/SECURITY.uk.md +76 -47
- package/SECURITY.vi.md +76 -47
- package/TROUBLESHOOTING.es.md +325 -323
- package/TROUBLESHOOTING.id.md +349 -323
- package/TROUBLESHOOTING.ja.md +415 -286
- package/TROUBLESHOOTING.ko.md +325 -323
- package/TROUBLESHOOTING.pl.md +371 -323
- package/TROUBLESHOOTING.pt-BR.md +325 -323
- package/TROUBLESHOOTING.ro.md +371 -323
- package/TROUBLESHOOTING.uk.md +385 -323
- package/TROUBLESHOOTING.vi.md +325 -323
- package/dist/index.js +743 -289
- package/dist/lib.d.ts +37 -0
- package/dist/lib.js +123 -0
- package/package.json +46 -45
- package/patch_roadmaps.py +0 -72
package/ROADMAP.uk.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# whisper-windows-mcp — Дорожня карта
|
|
2
2
|
|
|
3
|
-
Поточна версія: **v2.
|
|
3
|
+
Поточна версія: **v2.4.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,104 +54,95 @@
|
|
|
54
54
|
### ✅ v2.0.0 — Unicode-безпечні шляхи + Фоновий SRT
|
|
55
55
|
**Імена файлів Unicode:** Файли з не-ASCII символами в іменах спричиняли тихе невдале виконання фонової транскрипції. Виправлено шляхом спрямування всього виводу через санований тимчасовий шлях на основі ID завдання, а потім переміщення результату до правильного призначення після завершення.
|
|
56
56
|
|
|
57
|
-
**SRT у фоновому режимі:** `spawnDetached` раніше жорстко кодував `-otxt` незалежно від запитаного
|
|
57
|
+
**SRT у фоновому режимі:** `spawnDetached` раніше жорстко кодував `-otxt` незалежно від запитаного формату. Виправлено додаванням параметра `outputFormat` до `spawnDetached`, що підтримує вивід `text` і `srt` у фоновому режимі.
|
|
58
58
|
|
|
59
59
|
### ✅ v2.0.1 — Виправлення помилок (включено у v2.2.0)
|
|
60
|
-
- `--max-context 0` жорстко закодовано в `buildArgs` і `spawnDetached` — запобігає циклам галюцинацій на довгих аудіозаписах.
|
|
60
|
+
- `--max-context 0` жорстко закодовано в `buildArgs` і `spawnDetached` — запобігає циклам галюцинацій на довгих аудіозаписах.
|
|
61
61
|
- `--no-speech-thold 0.6` жорстко закодовано в обох функціях — сегменти нижче порогу впевненості обробляються як тиша, а не як галюцинований вміст.
|
|
62
62
|
- Перевірка шляху (`validateInputPath`) — відхиляє UNC-шляхи і обходи `..`.
|
|
63
63
|
- Захист розміру файлу `MAX_FILE_SIZE_MB = 10240`.
|
|
64
64
|
- Коментар безпеки ін'єкції транскрипції у `transcribeSingle`.
|
|
65
|
-
- Виправлено зламану команду CLI-пакету у TROUBLESHOOTING.md
|
|
65
|
+
- Виправлено зламану команду CLI-пакету у TROUBLESHOOTING.md.
|
|
66
66
|
|
|
67
67
|
### ✅ v2.1.0 — Набір інструментів управління моделями (включено у v2.2.0)
|
|
68
68
|
- `WHISPER_MODEL` змінено з `const` на `let` (змінюється в межах сеансу).
|
|
69
69
|
- `MODEL_REGISTRY` — 16 моделей, варіанти повної точності та квантизовані, URL завантаження Hugging Face.
|
|
70
70
|
- `ALLOWED_HF_PREFIXES` — список дозволених URL, що обмежує завантаження просторами імен `ggerganov/whisper.cpp` і `ggml-org`.
|
|
71
71
|
- Інструмент `list_models` — сканує теку моделей, показує активну модель, розміри, випадки використання, доступні завантаження.
|
|
72
|
-
- Інструмент `download_model` — завантажує з Hugging Face через вбудований `https` Node.js, атомарне
|
|
72
|
+
- Інструмент `download_model` — завантажує з Hugging Face через вбудований `https` Node.js, атомарне перейменування.
|
|
73
73
|
- Інструмент `switch_model` — перевіряє розширення `.bin`, обмеження теки, перевірку блокування процесу.
|
|
74
74
|
- `recommendedModel()` оновлено для рекомендації `large-v3-turbo` при VRAM 6 ГБ+.
|
|
75
75
|
|
|
76
|
-
### ✅ v2.2.0 — Розширення якості, параметрів і апаратного забезпечення
|
|
76
|
+
### ✅ v2.2.0 — Розширення якості, параметрів і апаратного забезпечення
|
|
77
77
|
- Інтерфейс `WhisperOptions` замінює позиційні аргументи в `buildArgs`.
|
|
78
78
|
- Нові параметри у `transcribe_audio`: `temperature`, `prompt`, `condition_on_prev_text`, `no_speech_thold`, `beam_size`, `best_of`, `gpu_device`, `processors`, `word_timestamps`, `max_segment_length`, `split_on_word`, `diarize`, `vad_model`, `offset_t`, `duration`.
|
|
79
79
|
- Нові параметри у `generate_subtitles`: `temperature`, `prompt`, `beam_size`, `best_of`, `diarize`, `vad_model`.
|
|
80
80
|
- Рефакторинг `spawnDetached` — усі прапорці якості тепер застосовуються у фоновому/пакетному режимі.
|
|
81
|
-
- `
|
|
82
|
-
- Виправлення виводу пакету — `readBatchProgress` тепер переміщає тимчасовий вивід до кінцевого призначення перед перевіркою (це була корінна причина всіх результатів "помилка" у пакеті).
|
|
81
|
+
- Виправлення виводу пакету — `readBatchProgress` тепер переміщає тимчасовий вивід до кінцевого призначення перед перевіркою.
|
|
83
82
|
|
|
84
|
-
**Примітка щодо сумісності прапорців:** `gpu_device` /
|
|
83
|
+
**Примітка щодо сумісності прапорців:** `gpu_device` / `--device` додано у whisper.cpp v1.8.4. Готовий Vulkan-бінарник у релізах є покоління v1.8.3 — цей параметр приймається інструментом, але не матиме ефекту, доки користувачі не оновляться до бінарника v1.8.4+.
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
### ✅ v2.2.2 — Патч
|
|
86
|
+
- Виправлення подвійної ліцензії — LICENSE і LICENSE-COMMERCIAL.md виправлено.
|
|
87
|
+
- Незначні виправлення документації.
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
### ✅ v2.3.0 — Автопросування пакету, архітектура конфіденційності, розширення форматів виводу
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
## Критична помилка — Автоматичне просування пакету (підтверджено, очікує виправлення)
|
|
94
|
-
|
|
95
|
-
### Пакет не просувається без активного опитування
|
|
96
|
-
|
|
97
|
-
`start_batch` не просуває чергу автономно між файлами. Пакет просувається лише при виклику `check_batch_progress`. Без опитування пакет зависає на невизначений час після кожного файлу — whisper-cli.exe завершується, новий процес не запускається, черга не просувається.
|
|
91
|
+
**Автопросування пакету (критичне виправлення помилки):** `start_batch` раніше вимагав активного опитування для просування черги. Тепер до кожного породженого дочірнього процесу whisper-cli прикріплено обробник `on('exit')`. Коли процес завершується, пакет самостійно просувається через зворотній виклик виходу з нульовими витратами на опитування і нульовим споживанням API. М'ютекс запобігає подвійному запуску між паралельним обробником виходу і викликами `check_batch_progress`.
|
|
98
92
|
|
|
99
|
-
|
|
93
|
+
**Архітектура конфіденційності:**
|
|
94
|
+
- Змінна середовища `WHISPER_PRIVACY_MODE` — при значенні `true` всі відповіді інструментів повертають лише метадані (ім'я файлу, кількість слів, шлях збереження). Жоден текст транскрипції не передається API Claude за жодних обставин. Транскрипції існують лише як локальні файли.
|
|
95
|
+
- Змінна середовища `WHISPER_CONSENT_ACKNOWLEDGED` — при значенні `true` пригнічує одноразові ворота згоди сеансу для нечутливого контенту.
|
|
96
|
+
- Параметр `privacy_mode` для окремого виклику у `transcribe_audio`, `transcribe_batch`, `start_batch` і `check_progress`. Перевизначає глобальну змінну середовища в обох напрямках. Перезапуск не потрібен для перемикання для окремого виклику.
|
|
97
|
+
- Ворота режиму конфіденційності (`checkPrivacyGate()`) — спрацьовують перед кожною операцією, коли ефективний режим конфіденційності активний.
|
|
98
|
+
- Ворота згоди сеансу (`transcriptPolicy()`) — спрацьовують один раз за сеанс перед першим викликом, що повертає транскрипцію, у стандартному режимі.
|
|
99
|
+
- `PRIVACY.md` — повна документація відповідності, що охоплює HIPAA, GDPR, адвокатську таємницю, FERPA, SOX, PCI-DSS і NDA/комерційну таємницю.
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
**Розширення форматів виводу:**
|
|
102
|
+
- `vtt` — вивід WebVTT через `-ovtt`. Доступний у `transcribe_audio`, `generate_subtitles`, `start_batch` і фоновому режимі.
|
|
103
|
+
- `lrc` — формат LRC текстів/караоке через `-olrc`. Доступний у `transcribe_audio` і фоновому режимі.
|
|
104
|
+
- `csv` — CSV з мітками часу через `-ocsv`. Доступний у `transcribe_audio` і фоновому режимі.
|
|
105
|
+
- Типовий `output_format` змінено з `"text"` на `"timestamps"` у всіх інструментах і шляхах коду.
|
|
102
106
|
|
|
103
|
-
|
|
107
|
+
**Виправлення помилок:**
|
|
108
|
+
- Помилка 1: `output_format` не передавався фоновим завданням — використовувався типовий `"text"` незалежно від запитаного формату. Виправлено зміною типового значення на `"timestamps"` і правильним пересиланням.
|
|
109
|
+
- Помилка 2: Тихий `catch {}` у операції переміщення виводу фонового завдання приховував збої. Додано явну перевірку `existsSync` з детальним повідомленням про збій після переміщення.
|
|
110
|
+
- Помилка 3: Додано коментар про дизайн у точці фонового запуску, що документує, чому ворота згоди навмисно відкладаються до `check_progress` для не-конфіденційних фонових завдань.
|
|
104
111
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
**Обхідне рішення (поточне):** Повторно викликайте `check_batch_progress` до завершення пакету. Приблизно один виклик опитування на файл.
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
+
**Додатково:**
|
|
113
|
+
- Автоматичне очищення тимчасової теки — `cleanupOldJobFiles()` запускається при старті, видаляє файли `.json` і `.log` старші 7 днів з `%TEMP%\whisper-mcp-jobs\`.
|
|
114
|
+
- `check_config` тепер повідомляє статус режиму конфіденційності.
|
|
115
|
+
- Журнал запуску повідомляє про увімкнення/вимкнення режиму конфіденційності.
|
|
112
116
|
|
|
113
|
-
|
|
117
|
+
### ✅ v2.4.0 — Посилення, захист тайм-ауту переднього плану, набір тестів і CI
|
|
114
118
|
|
|
115
|
-
|
|
119
|
+
Прохід із безпеки/надійності; заплановану міграцію на Bun перенесено на v2.5.0.
|
|
116
120
|
|
|
117
|
-
|
|
118
|
-
|
|
121
|
+
**Безпека та коректність:**
|
|
122
|
+
- Виправлення утримання шляхів у `switch_model` — каталог із братнім префіксом (напр. `…\models-evil`) раніше міг задовольнити перевірку «всередині каталогу моделей» через наївний `startsWith`; замінено на нормалізоване утримання на основі `relative()`. Закриває витік, який описує SECURITY.md.
|
|
123
|
+
- Бар'єр конфіденційності/згоди ключований **за операцією** (інструмент + аргументи) — підтвердження однієї транскрипції більше не може задовольнити бар'єр іншої операції.
|
|
124
|
+
- `download_model` відхиляє обрізані завантаження (перевірка Content-Length) перед підвищенням файлу `.part`. (Повну перевірку дайджесту SHA256 заплановано на пізніший прохід.)
|
|
125
|
+
- Приведення вводу — числові параметри інструментів, які не є справжніми числами, відкидаються замість передавання до whisper-cli як `NaN`.
|
|
119
126
|
|
|
120
|
-
|
|
127
|
+
**Надійність:**
|
|
128
|
+
- **Захист тайм-ауту переднього плану** — файл, достатньо довгий, щоб перевищити ~4-хвилинний тайм-аут MCP-інструмента Claude Desktop у блокувальному режимі, виявляється заздалегідь і спрямовується у фоновий режим замість мовчазного завершення за тайм-аутом. Поріг налаштовується через `WHISPER_FOREGROUND_MAX_SEC`. Оцінки часу виправлено (стара оцінка GPU сильно занижувала; домінувальну вартість перезавантаження моделі тепер змодельовано — виміряно, а не вгадано).
|
|
129
|
+
- Атомарні записи стану завдань/пакетів (тимчасовий файл + перейменування), щоб паралельний читач не міг побачити розірваний файл JSON.
|
|
130
|
+
- Стійкі до колізій ідентифікатори завдань/пакетів/тимчасові (із суфіксом UUID).
|
|
131
|
+
- Коректне завершення за SIGINT/SIGTERM, яке очищає тимчасові файли блокувального режиму.
|
|
121
132
|
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
- Жоден текст транскрипції не включається до жодної відповіді інструменту
|
|
125
|
-
- Claude не може читати, аналізувати або передавати вміст транскрипції в жодній формі
|
|
126
|
-
- Транскрипція існує лише як локальний `.txt`-файл
|
|
133
|
+
**Вибір пристрою GPU:**
|
|
134
|
+
- Змінна середовища `WHISPER_GPU_DEVICE`, а `gpu_device` тепер пробрасується через `generate_subtitles` і прохід визначення мови (раніше лише `transcribe_audio`). `check_config` повідомляє активний пристрій. `check_system` більше не повідомляє помилково про проблему драйвера, коли `wmic` (застарілий у Windows 11 24H2+) нічого не повертає.
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
**Якість:**
|
|
137
|
+
- Набір модульних тестів `node:test` над чистою логікою (утримання шляхів, ключування бар'єра, атомарні записи, приведення вводу, оцінка тайм-ауту), нуль доданих залежностей, плюс робочий процес CI GitHub Actions, що запускає його на кожному push/PR.
|
|
129
138
|
|
|
130
|
-
|
|
131
|
-
Коли `WHISPER_PRIVACY_MODE` не увімкнено (типово), будь-яка відповідь інструменту, що містить текст транскрипції, має передуватися повідомленням про розкриття інформації при першому використанні за сеанс. Це повідомлення має чітко передати, що текст транскрипції передається до API Anthropic, що це виходить за межі гарантії "дані не покидають ваш комп'ютер", і що користувачі, які працюють з регульованим контентом, мають перевірити зобов'язання відповідності перед продовженням.
|
|
132
|
-
|
|
133
|
-
Реалізація: змінна середовища `WHISPER_CONSENT_ACKNOWLEDGED` за замовчуванням `false`. При першому поверненні транскрипції за сеанс, якщо не підтверджено, Claude представляє повідомлення про розкриття і просить явного підтвердження. Після підтвердження для сеансу наступні транскрипції повертаються без повторного запиту.
|
|
134
|
-
|
|
135
|
-
### Документація `PRIVACY.md`
|
|
136
|
-
Створити `PRIVACY.md` у кореневій теці репозиторію:
|
|
137
|
-
- Які дані завжди залишаються локально: аудіо, відео, файли моделей
|
|
138
|
-
- Які дані можуть покидати локальне середовище (за замовчуванням): текст транскрипції у відповідях інструментів
|
|
139
|
-
- Які дані ніколи не покидають локальне середовище (з режимом конфіденційності): все
|
|
140
|
-
- Настанови щодо відповідності за галуззю (HIPAA, GDPR, адвокатська таємниця, FERPA, SOX, PCI-DSS, NDA/комерційна таємниця)
|
|
141
|
-
- Як налаштувати режим конфіденційності
|
|
142
|
-
- Відмова від відповідальності: автори інструменту не є юридичними радниками
|
|
143
|
-
|
|
144
|
-
### Попередження конфіденційності у схемі інструментів
|
|
145
|
-
Оновити описи інструментів `ListToolsRequestSchema`, включивши примітку про конфіденційність для будь-якого інструменту, що повертає текст транскрипції. Це відображається в описах інструментів Claude Desktop і підвищує обізнаність у точці використання.
|
|
146
|
-
|
|
147
|
-
### Автоматичне очищення тимчасової теки
|
|
148
|
-
`%TEMP%\whisper-mcp-jobs\` накопичує файли стану завдань і журнали з часом. Додати автоматичне очищення завершених файлів завдань після налаштованого вікна збереження (типово: 7 днів). Наразі вимагає ручного `Remove-Item` від користувача.
|
|
139
|
+
**Визначено для майбутнього випуску:** шлях постійної моделі (напр. `whisper-server` від whisper.cpp), щоб усунути вартість перезавантаження моделі, яка сплачується при кожній транскрипції — велике підвищення пропускної здатності для пакетної/архівної роботи.
|
|
149
140
|
|
|
150
141
|
---
|
|
151
142
|
|
|
152
|
-
## Заплановано — Міграція на Bun
|
|
143
|
+
## Заплановано — v2.5.0: Міграція на Bun
|
|
153
144
|
|
|
154
|
-
Перенести середовище виконання з Node.js на [Bun](https://bun.sh)
|
|
145
|
+
Перенести середовище виконання з Node.js на [Bun](https://bun.sh).
|
|
155
146
|
|
|
156
147
|
Оскільки Claude Desktop запускає MCP-сервер заново при кожному запуску сеансу, час запуску знаходиться на критичному шляху. Bun виконує TypeScript нативно без кроку компіляції, запускається значно швидше за Node і має швидший введення-виведення.
|
|
157
148
|
|
|
@@ -167,30 +158,25 @@
|
|
|
167
158
|
- Уся поведінка інструментів і формати виводу
|
|
168
159
|
- Конфігурація Claude Desktop для кінцевих користувачів
|
|
169
160
|
|
|
170
|
-
**Чому після конфіденційності, до v2.3.0:** Кодова база найлегше піддається міграції зараз. Міграція після додавання більшої кількості інструментів лише збільшує поверхню без вигоди. Архітектура конфіденційності має бути реалізована першою, як зазначено вище.
|
|
171
|
-
|
|
172
161
|
---
|
|
173
162
|
|
|
174
|
-
##
|
|
163
|
+
## Заплановано — v2.6.0: Розширені формати виводу для інтеграції зовнішніх інструментів
|
|
175
164
|
|
|
176
|
-
|
|
165
|
+
Розширена підтримка форматів виводу, орієнтована на робочі процеси аналізу нижнього рівня та інтеграції. Точний обсяг буде визначено на основі відгуків користувачів після v2.3.0.
|
|
177
166
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
**Комерційне використання:** Необхідна окрема комерційна ліцензійна угода. Дивіться [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
|
|
181
|
-
|
|
182
|
-
`WHISPER_PRIVACY_MODE` для регульованих галузей розробляється і планується у майбутньому релізі. Дивіться [PRIVACY.md](PRIVACY.md) для поточних рекомендацій.
|
|
167
|
+
---
|
|
183
168
|
|
|
184
|
-
## Заплановано — v2.
|
|
169
|
+
## Заплановано — v2.7.0: Режим живого транскрибування з мікрофона
|
|
185
170
|
|
|
186
|
-
|
|
187
|
-
Вивід WebVTT (`.vtt`) разом з SRT. VTT — веб-стандарт, що використовується YouTube, HTML5 `<video>` і більшістю сучасних програвачів. whisper-cli підтримує його нативно. Додати `vtt` як дійсний формат виводу у `transcribe_audio`, `generate_subtitles` і `spawnDetached`. Оновити `buildArgs` і всі відповідні схеми інструментів, README і багатомовну документацію.
|
|
171
|
+
Транскрибування в реальному часі з живого мікрофонного входу. Потокова передача аудіо з вибраного пристрою запису до whisper частинами із поверненням поточних сегментів транскрипції по мірі їх завершення.
|
|
188
172
|
|
|
189
|
-
|
|
190
|
-
|
|
173
|
+
**Обмеження проєктування:**
|
|
174
|
+
- Вибір пристрою має бути явним — без тихого захоплення пристрою за замовчуванням
|
|
175
|
+
- Користувач має мати можливість зупинити потік через взаємодію з Claude Desktop
|
|
176
|
+
- Не повинно конфліктувати з обмеженням одного екземпляра whisper одночасно
|
|
177
|
+
- Компроміс між затримкою і точністю має бути налаштовуваним користувачем
|
|
191
178
|
|
|
192
|
-
|
|
193
|
-
Вивід CSV (`.csv`) через `-ocsv`. Структуровані табличні дані з часовою розміткою сегментів — корисні для аналізу нижнього рівня, робочих процесів вирівнювання кліпів та імпорту в табличні інструменти. Нульові витрати на реалізацію — рідний прапорець CLI.
|
|
179
|
+
**Статус:** Фаза проєктування. Залежить від стабільного потокового API у whisper.cpp.
|
|
194
180
|
|
|
195
181
|
---
|
|
196
182
|
|
|
@@ -225,7 +211,7 @@ whisper-windows-mcp використовує подвійну ліцензію.
|
|
|
225
211
|
### Розрізнення доповідачів (pyannote-audio)
|
|
226
212
|
Повне розрізнення доповідачів у моно з мітками ID доповідача — позначає переходи між доповідачами по всьому запису незалежно від конфігурації каналів. Відрізняється від вбудованого стерео-прапорця `--diarize` (v2.2.0) і TinyDiarize.
|
|
227
213
|
|
|
228
|
-
**Реалізація:** Потребує [pyannote-audio](https://github.com/pyannote/pyannote-audio) — бібліотеки на основі Python з вимогою токена доступу до моделей Hugging Face. Повністю окремий стек
|
|
214
|
+
**Реалізація:** Потребує [pyannote-audio](https://github.com/pyannote/pyannote-audio) — бібліотеки на основі Python з вимогою токена доступу до моделей Hugging Face. Повністю окремий стек залежностей.
|
|
229
215
|
|
|
230
216
|
**Статус:** Необов'язкова розширена функція з власною документацією з налаштування. Не входить до основного пакету.
|
|
231
217
|
|
|
@@ -247,27 +233,33 @@ whisper-windows-mcp використовує подвійну ліцензію.
|
|
|
247
233
|
|
|
248
234
|
---
|
|
249
235
|
|
|
236
|
+
## Ліцензування
|
|
237
|
+
|
|
238
|
+
whisper-windows-mcp використовує подвійну ліцензію.
|
|
239
|
+
|
|
240
|
+
**Некомерційне використання:** MIT — безкоштовно для особистого, освітнього та некомерційного використання. Дивіться [LICENSE](LICENSE).
|
|
241
|
+
|
|
242
|
+
**Комерційне використання:** Необхідна окрема комерційна ліцензійна угода для будь-якого бізнес-, професійного або комерційного використання. Дивіться [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) для умов та контактної інформації.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
250
246
|
## Поширення
|
|
251
247
|
|
|
252
|
-
Доступно на [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org)
|
|
248
|
+
Доступно на [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), [Glama](https://glama.ai) і [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers).
|
|
253
249
|
|
|
254
250
|
---
|
|
255
251
|
|
|
256
252
|
## Багатомовна документація
|
|
257
253
|
|
|
258
|
-
|
|
254
|
+
Після кожного релізу необхідно оновлювати такі файли відповідно до англійської документації:
|
|
259
255
|
|
|
260
|
-
**Японська (`*.ja.md`)**
|
|
261
|
-
- `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
256
|
+
**Японська (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
262
257
|
|
|
263
|
-
**Корейська (`*.ko.md`)**
|
|
264
|
-
- `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
|
|
258
|
+
**Корейська (`*.ko.md`)** — `README.ko.md` / `TROUBLESHOOTING.ko.md` / `ROADMAP.ko.md` / `PRIVACY.ko.md` / `SECURITY.ko.md`
|
|
265
259
|
|
|
266
|
-
**В'єтнамська (`*.vi.md`)**
|
|
267
|
-
- `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
260
|
+
**В'єтнамська (`*.vi.md`)** — `README.vi.md` / `TROUBLESHOOTING.vi.md` / `ROADMAP.vi.md` / `PRIVACY.vi.md` / `SECURITY.vi.md`
|
|
268
261
|
|
|
269
|
-
**Індонезійська (`*.id.md`)**
|
|
270
|
-
- `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
|
|
262
|
+
**Індонезійська (`*.id.md`)** — `README.id.md` / `TROUBLESHOOTING.id.md` / `ROADMAP.id.md` / `PRIVACY.id.md` / `SECURITY.id.md`
|
|
271
263
|
|
|
272
264
|
**Українська (`*.uk.md`)** — `README.uk.md` / `TROUBLESHOOTING.uk.md` / `ROADMAP.uk.md` / `PRIVACY.uk.md` / `SECURITY.uk.md`
|
|
273
265
|
|
|
@@ -275,9 +267,9 @@ whisper-windows-mcp використовує подвійну ліцензію.
|
|
|
275
267
|
|
|
276
268
|
**Іспанська (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
277
269
|
|
|
278
|
-
|
|
270
|
+
**Польська (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
279
271
|
|
|
280
|
-
|
|
272
|
+
**Румунська (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
281
273
|
|
|
282
274
|
Внески спільноти для інших мов вітаються.
|
|
283
275
|
|
package/ROADMAP.vi.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# whisper-windows-mcp — Lộ trình phát triển
|
|
2
2
|
|
|
3
|
-
Phiên bản hiện tại: **v2.
|
|
3
|
+
Phiên bản hiện tại: **v2.4.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,143 +54,133 @@ Kiến trúc tiến trình tách rời: `transcribe_audio` với `background=tru
|
|
|
54
54
|
### ✅ v2.0.0 — Đường dẫn an toàn Unicode + SRT nền
|
|
55
55
|
**Tên tệp Unicode:** Tệp có ký tự không phải ASCII trong tên tệp gây ra phiên âm nền thất bại lặng lẽ. Đã sửa bằng cách định tuyến tất cả đầu ra qua đường dẫn tạm thời đã làm sạch dựa trên ID tác vụ, sau đó di chuyển kết quả đến đích chính xác sau khi hoàn thành.
|
|
56
56
|
|
|
57
|
-
**SRT trong chế độ nền:** `spawnDetached` trước đây mã cứng `-otxt` bất kể định dạng được yêu cầu
|
|
57
|
+
**SRT trong chế độ nền:** `spawnDetached` trước đây mã cứng `-otxt` bất kể định dạng được yêu cầu. Đã sửa bằng cách thêm tham số `outputFormat` vào `spawnDetached`, hỗ trợ đầu ra `text` và `srt` trong chế độ nền.
|
|
58
58
|
|
|
59
59
|
### ✅ v2.0.1 — Sửa lỗi (đã gộp vào v2.2.0)
|
|
60
|
-
- Mã cứng `--max-context 0` trong cả `buildArgs` và `spawnDetached` — ngăn vòng lặp ảo giác trên âm thanh dài.
|
|
60
|
+
- Mã cứng `--max-context 0` trong cả `buildArgs` và `spawnDetached` — ngăn vòng lặp ảo giác trên âm thanh dài.
|
|
61
61
|
- Mã cứng `--no-speech-thold 0.6` trong cả hai hàm — xử lý các đoạn dưới ngưỡng tin cậy là im lặng thay vì nội dung ảo giác.
|
|
62
62
|
- Xác thực đường dẫn (`validateInputPath`) — từ chối đường dẫn UNC và duyệt `..`.
|
|
63
63
|
- Bảo vệ kích thước tệp `MAX_FILE_SIZE_MB = 10240`.
|
|
64
64
|
- Chú thích bảo mật tiêm nhiễm phiên âm trong `transcribeSingle`.
|
|
65
|
-
- Sửa lệnh CLI batch bị hỏng trong TROUBLESHOOTING.md
|
|
65
|
+
- Sửa lệnh CLI batch bị hỏng trong TROUBLESHOOTING.md.
|
|
66
66
|
|
|
67
67
|
### ✅ v2.1.0 — Bộ quản lý mô hình (đã gộp vào v2.2.0)
|
|
68
68
|
- Thay đổi `WHISPER_MODEL` từ `const` sang `let` (có thể thay đổi trong phiên).
|
|
69
69
|
- `MODEL_REGISTRY` — 16 mô hình, biến thể độ chính xác đầy đủ và lượng tử hóa, URL tải xuống Hugging Face.
|
|
70
70
|
- `ALLOWED_HF_PREFIXES` — danh sách URL cho phép giới hạn tải xuống vào namespace `ggerganov/whisper.cpp` và `ggml-org`.
|
|
71
71
|
- Công cụ `list_models` — quét thư mục mô hình, hiển thị mô hình đang hoạt động, kích thước, trường hợp sử dụng, các tải xuống có sẵn.
|
|
72
|
-
- Công cụ `download_model` — tải xuống từ Hugging Face qua `https` tích hợp sẵn của Node.js, đổi tên nguyên
|
|
72
|
+
- Công cụ `download_model` — tải xuống từ Hugging Face qua `https` tích hợp sẵn của Node.js, đổi tên nguyên tử.
|
|
73
73
|
- Công cụ `switch_model` — xác thực phần mở rộng `.bin`, ràng buộc thư mục, kiểm tra khóa tiến trình.
|
|
74
74
|
- Cập nhật `recommendedModel()` để đề xuất `large-v3-turbo` cho VRAM 6GB+.
|
|
75
75
|
|
|
76
|
-
### ✅ v2.2.0 — Mở rộng chất lượng, tham số và phần cứng
|
|
76
|
+
### ✅ v2.2.0 — Mở rộng chất lượng, tham số và phần cứng
|
|
77
77
|
- Interface `WhisperOptions` thay thế đối số vị trí trong `buildArgs`.
|
|
78
78
|
- Tham số mới trong `transcribe_audio`: `temperature`, `prompt`, `condition_on_prev_text`, `no_speech_thold`, `beam_size`, `best_of`, `gpu_device`, `processors`, `word_timestamps`, `max_segment_length`, `split_on_word`, `diarize`, `vad_model`, `offset_t`, `duration`.
|
|
79
79
|
- Tham số mới trong `generate_subtitles`: `temperature`, `prompt`, `beam_size`, `best_of`, `diarize`, `vad_model`.
|
|
80
80
|
- Tái cấu trúc `spawnDetached` — tất cả flag chất lượng giờ được áp dụng trong chế độ nền/đợt.
|
|
81
|
-
-
|
|
82
|
-
- Sửa đầu ra đợt — `readBatchProgress` giờ di chuyển đầu ra tạm thời đến đích cuối cùng trước khi xác nhận (nguyên nhân gốc của tất cả kết quả "thất bại" trong đợt).
|
|
81
|
+
- Sửa đầu ra đợt — `readBatchProgress` giờ di chuyển đầu ra tạm thời đến đích cuối cùng trước khi xác nhận.
|
|
83
82
|
|
|
84
|
-
**Lưu ý tương thích flag:** `gpu_device` /
|
|
83
|
+
**Lưu ý tương thích flag:** `gpu_device` / `--device` được thêm trong whisper.cpp v1.8.4. Tệp nhị phân Vulkan đã biên dịch sẵn trong các bản phát hành là thế hệ v1.8.3 — tham số này được công cụ chấp nhận nhưng sẽ không có hiệu lực cho đến khi người dùng cập nhật lên tệp nhị phân v1.8.4+.
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
### ✅ v2.2.2 — Bản vá
|
|
86
|
+
- Sửa cấp phép kép — chỉnh sửa LICENSE và LICENSE-COMMERCIAL.md.
|
|
87
|
+
- Sửa lỗi tài liệu nhỏ.
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
### ✅ v2.3.0 — Tự động tiến đợt, kiến trúc quyền riêng tư, mở rộng định dạng đầu ra
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
## Lỗi nghiêm trọng — Tự động tiến đợt (đã xác nhận, chờ sửa)
|
|
94
|
-
|
|
95
|
-
### Đợt không tự động tiến khi không có polling tích cực
|
|
96
|
-
|
|
97
|
-
`start_batch` không tự chủ tiến queue giữa các tệp. Đợt chỉ tiến khi `check_batch_progress` được gọi. Không có polling, đợt dừng vô thời hạn sau mỗi tệp — whisper-cli.exe thoát, không có tiến trình mới được tạo, queue không tiến.
|
|
91
|
+
**Tự động tiến đợt (sửa lỗi nghiêm trọng):** `start_batch` trước đây yêu cầu polling tích cực để tiến queue. Giờ mỗi tiến trình con whisper-cli được tạo ra đều có handler `on('exit')` được gắn vào. Khi tiến trình thoát, đợt ngay lập tức tự động tiến qua exit callback — không tốn chi phí polling và API. Mutex ngăn tạo kép giữa exit handler + lệnh gọi `check_batch_progress` đồng thời.
|
|
98
92
|
|
|
99
|
-
|
|
93
|
+
**Kiến trúc quyền riêng tư:**
|
|
94
|
+
- Biến môi trường `WHISPER_PRIVACY_MODE` — khi đặt thành `true`, tất cả phản hồi công cụ chỉ trả về siêu dữ liệu (tên tệp, số từ, đường dẫn lưu). Không có văn bản phiên âm nào được gửi đến API của Claude. Bản phiên âm chỉ tồn tại dưới dạng tệp cục bộ.
|
|
95
|
+
- Biến môi trường `WHISPER_CONSENT_ACKNOWLEDGED` — khi đặt thành `true`, bỏ qua cổng đồng ý phiên một lần cho nội dung không nhạy cảm.
|
|
96
|
+
- Tham số `privacy_mode` theo từng lệnh gọi trong `transcribe_audio`, `transcribe_batch`, `start_batch`, `check_progress`. Ghi đè biến môi trường toàn cục theo cả hai hướng. Không cần khởi động lại để bật/tắt.
|
|
97
|
+
- Cổng chế độ quyền riêng tư (`checkPrivacyGate()`) — chạy trước mỗi thao tác khi chế độ quyền riêng tư hiệu quả đang hoạt động. Kích hoạt lần đầu gọi (hiển thị công khai), giải phóng lần gọi thứ hai (cho phép). Đặt lại sau mỗi thao tác. Hoàn toàn độc lập với cổng đồng ý phiên.
|
|
98
|
+
- Cổng đồng ý phiên (`transcriptPolicy()`) — chạy một lần mỗi phiên trước lệnh gọi trả về phiên âm đầu tiên ở chế độ tiêu chuẩn. Tiêu thụ bằng flag `sessionConsentGiven`.
|
|
99
|
+
- `PRIVACY.md` — tài liệu tuân thủ đầy đủ bao gồm HIPAA, GDPR, đặc quyền luật sư-khách hàng, FERPA, SOX, PCI-DSS, NDA/bí mật thương mại.
|
|
100
|
+
- Cảnh báo quyền riêng tư trong mô tả công cụ của tất cả công cụ trả về văn bản phiên âm.
|
|
100
101
|
|
|
101
|
-
**
|
|
102
|
+
**Mở rộng định dạng đầu ra:**
|
|
103
|
+
- `vtt` — đầu ra phụ đề WebVTT qua `-ovtt`. Có sẵn trong `transcribe_audio`, `generate_subtitles`, `start_batch` và chế độ nền.
|
|
104
|
+
- `lrc` — định dạng lời bài hát/karaoke LRC qua `-olrc`. Có sẵn trong `transcribe_audio` và chế độ nền.
|
|
105
|
+
- `csv` — CSV có dấu thời gian qua `-ocsv`. Có sẵn trong `transcribe_audio` và chế độ nền.
|
|
106
|
+
- Giá trị mặc định `output_format` thay đổi từ `"text"` sang `"timestamps"` trên tất cả công cụ và đường dẫn mã. Văn bản thuần túy giờ là tùy chọn.
|
|
102
107
|
|
|
103
|
-
**Sửa
|
|
108
|
+
**Sửa lỗi:**
|
|
109
|
+
- Lỗi 1: `output_format` không được truyền đến tác vụ nền — mặc định `"text"` được dùng bất kể định dạng được yêu cầu. Đã sửa bằng cách thay đổi mặc định thành `"timestamps"` và truyền đúng cách.
|
|
110
|
+
- Lỗi 2: `catch {}` im lặng trên thao tác di chuyển đầu ra tác vụ nền nuốt lỗi thất bại. Thêm kiểm tra `existsSync` rõ ràng sau khi di chuyển với thông báo thất bại chi tiết.
|
|
111
|
+
- Lỗi 3: Thêm chú thích thiết kế tại điểm tạo nền giải thích tại sao cổng đồng ý được trì hoãn có chủ ý đến `check_progress` cho tác vụ nền không riêng tư.
|
|
104
112
|
|
|
105
|
-
**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
**Bổ sung:**
|
|
114
|
+
- Tự động dọn dẹp thư mục tạm thời — `cleanupOldJobFiles()` chạy khi khởi động xóa tệp `.json` và `.log` cũ hơn 7 ngày trong `%TEMP%\whisper-mcp-jobs\`.
|
|
115
|
+
- `check_config` giờ báo cáo trạng thái chế độ quyền riêng tư.
|
|
116
|
+
- Báo cáo bật/tắt chế độ quyền riêng tư trong nhật ký khởi động.
|
|
117
|
+
- Trường `privacyMode: boolean` được thêm vào interface `Job`.
|
|
118
|
+
- Trường `privacyMode: boolean` được thêm vào interface `BatchState`.
|
|
119
|
+
- Kiểu `BackgroundFormat` loại trừ `json` (json trong chế độ nền không được hỗ trợ — dự phòng về `text`).
|
|
112
120
|
|
|
113
|
-
|
|
121
|
+
### ✅ v2.4.0 — Tăng cường, bộ bảo vệ thời gian chờ tiền cảnh, bộ kiểm thử & CI
|
|
114
122
|
|
|
115
|
-
|
|
123
|
+
Một lượt rà soát bảo mật/độ bền; việc chuyển đổi Bun đã lên kế hoạch được dời sang v2.5.0.
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
**Bảo mật & tính đúng đắn:**
|
|
126
|
+
- Sửa lỗi giới hạn đường dẫn của `switch_model` — một thư mục có tiền tố-anh em (ví dụ `…\models-evil`) trước đây có thể thỏa mãn kiểm tra "bên trong thư mục mô hình" thông qua `startsWith` ngây thơ; được thay bằng giới hạn chuẩn hóa dựa trên `relative()`. Đóng lỗ hổng thoát mà SECURITY.md mô tả.
|
|
127
|
+
- Cổng quyền riêng tư/đồng ý được khóa **theo từng thao tác** (công cụ + đối số) — việc xác nhận một phiên âm không còn có thể thỏa mãn cổng của một thao tác khác.
|
|
128
|
+
- `download_model` từ chối các lượt tải bị cắt cụt (kiểm tra Content-Length) trước khi thăng cấp tệp `.part`. (Việc xác minh đầy đủ digest SHA256 được theo dõi cho một lượt sau.)
|
|
129
|
+
- Ép kiểu đầu vào — các tham số công cụ dạng số nhưng không phải số thực sự sẽ bị loại bỏ thay vì được chuyển cho whisper-cli dưới dạng `NaN`.
|
|
119
130
|
|
|
120
|
-
|
|
131
|
+
**Độ bền:**
|
|
132
|
+
- **Bộ bảo vệ thời gian chờ tiền cảnh** — một tệp đủ dài để vượt quá thời gian chờ công cụ MCP ~4 phút của Claude Desktop ở chế độ chặn được phát hiện trước và được định tuyến sang nền thay vì âm thầm hết thời gian chờ. Ngưỡng có thể cấu hình qua `WHISPER_FOREGROUND_MAX_SEC`. Ước tính thời gian đã được sửa (ước tính GPU cũ dự đoán thiếu nghiêm trọng; chi phí tải lại mô hình chiếm ưu thế nay đã được mô hình hóa — đo lường, không phải phỏng đoán).
|
|
133
|
+
- Ghi trạng thái công việc/đợt theo kiểu nguyên tử (tệp tạm + đổi tên) để một trình đọc đồng thời không thể quan sát thấy tệp JSON bị rách.
|
|
134
|
+
- ID công việc/đợt/tạm chống xung đột (có hậu tố UUID).
|
|
135
|
+
- Tắt nhẹ nhàng khi nhận SIGINT/SIGTERM, dọn dẹp các tệp tạm của chế độ chặn.
|
|
121
136
|
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
- Không có văn bản phiên âm nào được bao gồm trong bất kỳ phản hồi công cụ nào
|
|
125
|
-
- Claude không thể đọc, phân tích hoặc chuyển tiếp nội dung phiên âm dưới bất kỳ hình thức nào
|
|
126
|
-
- Bản phiên âm chỉ tồn tại dưới dạng tệp `.txt` cục bộ
|
|
137
|
+
**Lựa chọn thiết bị GPU:**
|
|
138
|
+
- Biến môi trường `WHISPER_GPU_DEVICE`, và `gpu_device` nay được truyền qua `generate_subtitles` và lượt phát hiện ngôn ngữ (trước đây chỉ `transcribe_audio`). `check_config` báo cáo thiết bị đang hoạt động. `check_system` không còn báo cáo sai sự cố trình điều khiển khi `wmic` (đã ngừng dùng trên Windows 11 24H2+) không trả về gì.
|
|
127
139
|
|
|
128
|
-
|
|
140
|
+
**Chất lượng:**
|
|
141
|
+
- Một bộ kiểm thử đơn vị `node:test` trên phần logic thuần túy (giới hạn đường dẫn, khóa cổng, ghi nguyên tử, ép kiểu đầu vào, ước tính thời gian chờ), không thêm phụ thuộc, cùng với quy trình CI GitHub Actions chạy nó trên mỗi push/PR.
|
|
129
142
|
|
|
130
|
-
|
|
131
|
-
Khi `WHISPER_PRIVACY_MODE` không được bật (mặc định), bất kỳ phản hồi công cụ nào bao gồm văn bản phiên âm phải có thông báo tiết lộ ở lần sử dụng đầu tiên trong mỗi phiên. Thông báo tiết lộ phải truyền đạt rõ ràng rằng văn bản phiên âm được truyền đến API của Anthropic, rằng điều này nằm ngoài đảm bảo "không có dữ liệu nào rời khỏi máy", và rằng người dùng xử lý nội dung được quản lý phải xác nhận nghĩa vụ tuân thủ trước khi tiếp tục.
|
|
132
|
-
|
|
133
|
-
Triển khai: biến môi trường `WHISPER_CONSENT_ACKNOWLEDGED` mặc định là `false`. Ở lần trả về phiên âm đầu tiên trong phiên, nếu chưa được xác nhận, Claude trình bày thông báo tiết lộ và yêu cầu xác nhận rõ ràng. Sau khi được xác nhận trong phiên, các bản phiên âm tiếp theo được trả về mà không cần nhắc lại.
|
|
134
|
-
|
|
135
|
-
### Tài liệu `PRIVACY.md`
|
|
136
|
-
Tạo `PRIVACY.md` trong thư mục gốc repo bao gồm:
|
|
137
|
-
- Dữ liệu luôn ở cục bộ: tệp âm thanh, video, mô hình
|
|
138
|
-
- Dữ liệu có thể rời khỏi cục bộ (mặc định): văn bản phiên âm trong phản hồi công cụ
|
|
139
|
-
- Dữ liệu không bao giờ rời khỏi cục bộ (với chế độ riêng tư): tất cả
|
|
140
|
-
- Hướng dẫn khung tuân thủ theo ngành (HIPAA, GDPR, đặc quyền luật sư-khách hàng, FERPA, SOX, PCI-DSS, NDA/bí mật thương mại)
|
|
141
|
-
- Cách cấu hình chế độ riêng tư
|
|
142
|
-
- Tuyên bố miễn trách nhiệm rằng tác giả công cụ không phải là cố vấn pháp lý
|
|
143
|
-
|
|
144
|
-
### Cảnh báo riêng tư trong schema công cụ
|
|
145
|
-
Cập nhật mô tả công cụ `ListToolsRequestSchema` để bao gồm ghi chú riêng tư trên bất kỳ công cụ nào trả về văn bản phiên âm. Điều này hiển thị trong mô tả công cụ của Claude Desktop và tạo nhận thức tại điểm sử dụng.
|
|
146
|
-
|
|
147
|
-
### Tự động dọn dẹp thư mục tạm thời
|
|
148
|
-
`%TEMP%\whisper-mcp-jobs\` tích lũy tệp trạng thái tác vụ và nhật ký theo thời gian. Thêm tự động dọn dẹp tệp tác vụ hoàn thành sau khoảng thời gian lưu giữ có thể cấu hình (mặc định: 7 ngày). Hiện tại yêu cầu người dùng chạy `Remove-Item` thủ công.
|
|
143
|
+
**Đã xác định cho bản phát hành tương lai:** một đường dẫn mô hình bền vững (ví dụ `whisper-server` của whisper.cpp) để loại bỏ chi phí tải lại mô hình phải trả ở mỗi lần phiên âm — một mức tăng thông lượng lớn cho công việc theo đợt/lưu trữ.
|
|
149
144
|
|
|
150
145
|
---
|
|
151
146
|
|
|
152
|
-
## Đã lên kế hoạch — Chuyển đổi Bun
|
|
147
|
+
## Đã lên kế hoạch — v2.5.0: Chuyển đổi Bun
|
|
153
148
|
|
|
154
|
-
Chuyển đổi runtime từ Node.js sang [Bun](https://bun.sh)
|
|
149
|
+
Chuyển đổi runtime từ Node.js sang [Bun](https://bun.sh).
|
|
155
150
|
|
|
156
|
-
|
|
151
|
+
Claude Desktop tạo máy chủ MCP mới vào mỗi lần khởi động phiên, vì vậy thời gian khởi động nằm trên đường dẫn quan trọng. Bun chạy TypeScript gốc mà không cần bước biên dịch, khởi động nhanh hơn đáng kể so với Node và I/O cũng nhanh hơn.
|
|
157
152
|
|
|
158
153
|
**Những gì thay đổi:**
|
|
159
|
-
-
|
|
160
|
-
- Người dùng chạy trực tiếp
|
|
154
|
+
- Bước biên dịch `tsc` và thư mục `dist/` bị xóa
|
|
155
|
+
- Người dùng chạy mã nguồn TypeScript trực tiếp
|
|
161
156
|
- `tsconfig.json` trở thành tùy chọn
|
|
162
157
|
- Cập nhật script `package.json`
|
|
163
|
-
- Cập nhật quy trình
|
|
158
|
+
- Cập nhật quy trình phát hành npm
|
|
164
159
|
|
|
165
160
|
**Những gì không thay đổi:**
|
|
166
|
-
-
|
|
161
|
+
- Mã nguồn `src/index.ts` — Bun tương thích với TypeScript hiện tại và các API tích hợp sẵn của Node.js
|
|
167
162
|
- Tất cả hành vi công cụ và định dạng đầu ra
|
|
168
163
|
- Cấu hình Claude Desktop cho người dùng cuối
|
|
169
164
|
|
|
170
|
-
**Tại sao sau riêng tư, trước v2.3.0:** Codebase ở trạng thái dễ chuyển đổi nhất ngay bây giờ. Chuyển đổi sau khi thêm công cụ chỉ tăng khối lượng công việc mà không có lợi ích. Kiến trúc quyền riêng tư phải ra mắt trước như đã lưu ý ở trên.
|
|
171
|
-
|
|
172
165
|
---
|
|
173
166
|
|
|
174
|
-
##
|
|
167
|
+
## Đã lên kế hoạch — v2.6.0: Định dạng đầu ra nâng cao cho tích hợp công cụ bên ngoài
|
|
175
168
|
|
|
176
|
-
|
|
169
|
+
Hỗ trợ định dạng đầu ra mở rộng nhắm đến quy trình phân tích và tích hợp downstream. Phạm vi chính xác sẽ được xác định dựa trên phản hồi của người dùng sau v2.3.0.
|
|
177
170
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
**Sử dụng thương mại:** Cần có thỏa thuận giấy phép thương mại riêng. Xem [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
|
|
181
|
-
|
|
182
|
-
`WHISPER_PRIVACY_MODE` cho triển khai trong ngành được quản lý đang được phát triển và dự kiến trong phiên bản tương lai. Xem [PRIVACY.md](PRIVACY.md) để biết hướng dẫn hiện tại.
|
|
171
|
+
---
|
|
183
172
|
|
|
184
|
-
## Đã lên kế hoạch — v2.
|
|
173
|
+
## Đã lên kế hoạch — v2.7.0: Chế độ phiên âm microphone trực tiếp
|
|
185
174
|
|
|
186
|
-
|
|
187
|
-
Đầu ra WebVTT (`.vtt`) cùng với SRT. VTT là tiêu chuẩn web được YouTube, HTML5 `<video>` và hầu hết các trình phát hiện đại sử dụng. whisper-cli hỗ trợ gốc. Thêm `vtt` như định dạng đầu ra hợp lệ trong `transcribe_audio`, `generate_subtitles` và `spawnDetached`. Cập nhật `buildArgs` và tất cả schema công cụ liên quan, README và tài liệu đa ngôn ngữ.
|
|
175
|
+
Phiên âm theo thời gian thực từ đầu vào microphone trực tiếp. Phát trực tuyến âm thanh theo từng đoạn từ thiết bị ghi âm được chọn đến whisper, trả về các đoạn phiên âm đã hoàn thành theo cách cuộn.
|
|
188
176
|
|
|
189
|
-
|
|
190
|
-
|
|
177
|
+
**Ràng buộc thiết kế:**
|
|
178
|
+
- Lựa chọn thiết bị phải rõ ràng — không tự động thu microphone mặc định im lặng
|
|
179
|
+
- Người dùng phải có thể dừng luồng qua tương tác Claude Desktop
|
|
180
|
+
- Không được vi phạm ràng buộc một phiên bản whisper tại một thời điểm
|
|
181
|
+
- Đánh đổi giữa độ trễ và độ chính xác phải có thể cấu hình bởi người dùng
|
|
191
182
|
|
|
192
|
-
|
|
193
|
-
Đầu ra CSV (`.csv`) qua `-ocsv`. Dữ liệu bảng có cấu trúc với thời gian đoạn — hữu ích cho phân tích downstream, quy trình căn chỉnh clip và nhập vào công cụ bảng tính. Chi phí triển khai bằng không — flag CLI gốc.
|
|
183
|
+
**Trạng thái:** Giai đoạn thiết kế. Phụ thuộc vào API phát trực tuyến ổn định của whisper.cpp.
|
|
194
184
|
|
|
195
185
|
---
|
|
196
186
|
|
|
@@ -225,7 +215,7 @@ Cho người dùng quản lý các dự án chỉnh sửa video lớn với thư
|
|
|
225
215
|
### Phân tách người nói (pyannote-audio)
|
|
226
216
|
Phân tách người nói mono đầy đủ với nhãn ID người nói — đánh dấu chuyển đổi người nói trong toàn bộ bản ghi bất kể cấu hình kênh. Khác với flag `--diarize` stereo tích hợp (v2.2.0) và TinyDiarize.
|
|
227
217
|
|
|
228
|
-
**Triển khai:** Cần [pyannote-audio](https://github.com/pyannote/pyannote-audio) — thư viện dựa trên Python với yêu cầu token truy cập mô hình Hugging Face. Stack phụ thuộc hoàn toàn riêng biệt
|
|
218
|
+
**Triển khai:** Cần [pyannote-audio](https://github.com/pyannote/pyannote-audio) — thư viện dựa trên Python với yêu cầu token truy cập mô hình Hugging Face. Stack phụ thuộc hoàn toàn riêng biệt.
|
|
229
219
|
|
|
230
220
|
**Trạng thái:** Tính năng nâng cao tùy chọn với tài liệu cài đặt riêng. Không bao gồm trong gói chính.
|
|
231
221
|
|
|
@@ -247,15 +237,25 @@ Pipeline hậu xử lý:
|
|
|
247
237
|
|
|
248
238
|
---
|
|
249
239
|
|
|
240
|
+
## Giấy phép
|
|
241
|
+
|
|
242
|
+
whisper-windows-mcp được cấp phép kép.
|
|
243
|
+
|
|
244
|
+
**Sử dụng phi thương mại:** MIT — miễn phí cho mục đích cá nhân, giáo dục và phi thương mại. Xem [LICENSE](LICENSE).
|
|
245
|
+
|
|
246
|
+
**Sử dụng thương mại:** Cần có thỏa thuận giấy phép thương mại riêng cho bất kỳ mục đích kinh doanh, chuyên nghiệp hoặc tạo doanh thu nào. Xem [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md).
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
250
|
## Phân phối
|
|
251
251
|
|
|
252
|
-
Có sẵn trên [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org)
|
|
252
|
+
Có sẵn trên [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), [Glama](https://glama.ai) và [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) (PR đã gửi).
|
|
253
253
|
|
|
254
254
|
---
|
|
255
255
|
|
|
256
256
|
## Tài liệu đa ngôn ngữ
|
|
257
257
|
|
|
258
|
-
|
|
258
|
+
Sau mỗi bản phát hành, các tệp sau phải được cập nhật để khớp với tài liệu tiếng Anh:
|
|
259
259
|
|
|
260
260
|
**Tiếng Nhật (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
261
261
|
|
|
@@ -271,9 +271,9 @@ Tài liệu tiếng Nhật, tiếng Hàn và tiếng Việt được duy trì so
|
|
|
271
271
|
|
|
272
272
|
**Tiếng Tây Ban Nha (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
273
273
|
|
|
274
|
-
**
|
|
274
|
+
**Tiếng Ba Lan (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
275
275
|
|
|
276
|
-
**
|
|
276
|
+
**Tiếng Romania (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
277
277
|
|
|
278
278
|
Chào mừng đóng góp cộng đồng cho các ngôn ngữ khác.
|
|
279
279
|
|