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.
- package/{LICENSE-COMMERCIAL.md → COMMERCIAL-LICENSE.md} +58 -58
- package/LICENSE +40 -40
- package/PRIVACY.es.md +192 -135
- package/PRIVACY.id.md +192 -135
- package/PRIVACY.ja.md +192 -135
- package/PRIVACY.ko.md +192 -135
- package/PRIVACY.md +192 -135
- package/PRIVACY.pl.md +192 -135
- package/PRIVACY.pt-BR.md +192 -135
- package/PRIVACY.ro.md +192 -135
- package/PRIVACY.uk.md +192 -135
- package/PRIVACY.vi.md +192 -135
- package/README.es.md +74 -48
- package/README.id.md +77 -40
- package/README.ja.md +100 -72
- package/README.ko.md +63 -37
- package/README.md +76 -39
- package/README.pl.md +77 -40
- package/README.pt-BR.md +71 -45
- package/README.ro.md +78 -41
- package/README.uk.md +77 -40
- package/README.vi.md +67 -41
- package/ROADMAP.es.md +110 -48
- package/ROADMAP.id.md +77 -104
- package/ROADMAP.ja.md +84 -123
- package/ROADMAP.ko.md +73 -97
- package/ROADMAP.pl.md +104 -44
- package/ROADMAP.pt-BR.md +78 -102
- package/ROADMAP.ro.md +102 -44
- package/ROADMAP.uk.md +65 -97
- package/ROADMAP.vi.md +78 -102
- package/SECURITY.es.md +64 -47
- package/SECURITY.id.md +64 -47
- package/SECURITY.ja.md +64 -47
- package/SECURITY.ko.md +64 -47
- package/SECURITY.md +21 -4
- package/SECURITY.pl.md +64 -47
- package/SECURITY.pt-BR.md +64 -47
- package/SECURITY.ro.md +64 -47
- package/SECURITY.uk.md +64 -47
- package/SECURITY.vi.md +64 -47
- package/TROUBLESHOOTING.es.md +309 -323
- package/TROUBLESHOOTING.id.md +333 -323
- package/TROUBLESHOOTING.ja.md +399 -286
- package/TROUBLESHOOTING.ko.md +309 -323
- package/TROUBLESHOOTING.pl.md +355 -323
- package/TROUBLESHOOTING.pt-BR.md +309 -323
- package/TROUBLESHOOTING.ro.md +355 -323
- package/TROUBLESHOOTING.uk.md +369 -323
- package/TROUBLESHOOTING.vi.md +309 -323
- package/dist/index.js +591 -216
- package/package.json +45 -45
- package/patch_roadmaps.py +0 -72
package/ROADMAP.pt-BR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# whisper-windows-mcp — Roadmap
|
|
2
2
|
|
|
3
|
-
Versão atual: **v2.
|
|
3
|
+
Versão atual: **v2.3.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,143 +54,109 @@ Arquitetura de processo desanexado: `transcribe_audio` com `background=true` cri
|
|
|
54
54
|
### ✅ v2.0.0 — Caminhos seguros para Unicode + SRT em segundo plano
|
|
55
55
|
**Nomes de arquivo Unicode:** Arquivos com caracteres não-ASCII nos nomes causavam falha silenciosa na transcrição em segundo plano. Corrigido roteando toda a saída por um caminho temporário sanitizado baseado em ID de tarefa, depois movendo o resultado para o destino correto após a conclusão.
|
|
56
56
|
|
|
57
|
-
**SRT no modo em segundo plano:** `spawnDetached` anteriormente codificava rigidamente `-otxt` independentemente do formato solicitado
|
|
57
|
+
**SRT no modo em segundo plano:** `spawnDetached` anteriormente codificava rigidamente `-otxt` independentemente do formato solicitado. Corrigido adicionando parâmetro `outputFormat` ao `spawnDetached`, suportando saída `text` e `srt` no modo em segundo plano.
|
|
58
58
|
|
|
59
59
|
### ✅ v2.0.1 — Correções de bugs (incluído no v2.2.0)
|
|
60
|
-
- `--max-context 0` fixo em `buildArgs` e `spawnDetached` — previne loops de alucinação em áudio longo.
|
|
60
|
+
- `--max-context 0` fixo em `buildArgs` e `spawnDetached` — previne loops de alucinação em áudio longo.
|
|
61
61
|
- `--no-speech-thold 0.6` fixo em ambas as funções — segmentos abaixo do limiar de confiança são tratados como silêncio em vez de conteúdo alucinado.
|
|
62
62
|
- Validação de caminho (`validateInputPath`) — rejeita caminhos UNC e travessias `..`.
|
|
63
63
|
- Proteção de tamanho de arquivo `MAX_FILE_SIZE_MB = 10240`.
|
|
64
64
|
- Comentário de segurança de injeção de transcrição em `transcribeSingle`.
|
|
65
|
-
- Comando CLI de lote corrigido no TROUBLESHOOTING.md
|
|
65
|
+
- Comando CLI de lote corrigido no TROUBLESHOOTING.md.
|
|
66
66
|
|
|
67
67
|
### ✅ v2.1.0 — Suite de gerenciamento de modelos (incluído no v2.2.0)
|
|
68
68
|
- `WHISPER_MODEL` alterado de `const` para `let` (mutável dentro da sessão).
|
|
69
69
|
- `MODEL_REGISTRY` — 16 modelos, variantes de precisão total e quantizadas, URLs de download do Hugging Face.
|
|
70
70
|
- `ALLOWED_HF_PREFIXES` — lista de permissões de URL que limita downloads aos namespaces `ggerganov/whisper.cpp` e `ggml-org`.
|
|
71
71
|
- Ferramenta `list_models` — varre o diretório de modelos, mostra o modelo ativo, tamanhos, casos de uso, downloads disponíveis.
|
|
72
|
-
- Ferramenta `download_model` — baixa do Hugging Face via `https` integrado do Node.js, renomeação atômica
|
|
72
|
+
- Ferramenta `download_model` — baixa do Hugging Face via `https` integrado do Node.js, renomeação atômica.
|
|
73
73
|
- Ferramenta `switch_model` — valida extensão `.bin`, restrição de diretório, verificação de bloqueio de processo.
|
|
74
74
|
- `recommendedModel()` atualizado para recomendar `large-v3-turbo` para VRAM de 6GB+.
|
|
75
75
|
|
|
76
|
-
### ✅ v2.2.0 — Expansão de qualidade, parâmetros e hardware
|
|
76
|
+
### ✅ v2.2.0 — Expansão de qualidade, parâmetros e hardware
|
|
77
77
|
- Interface `WhisperOptions` substituindo argumentos posicionais em `buildArgs`.
|
|
78
78
|
- Novos parâmetros em `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
|
- Novos parâmetros em `generate_subtitles`: `temperature`, `prompt`, `beam_size`, `best_of`, `diarize`, `vad_model`.
|
|
80
80
|
- `spawnDetached` refatorado — todos os flags de qualidade agora são aplicados no modo em segundo plano/lote.
|
|
81
|
-
- `
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Essa lacuna é invisível para usuários que razoavelmente interpretam "nenhum dado sai da sua máquina" como cobrindo todo o conteúdo derivado do seu áudio.
|
|
121
|
-
|
|
122
|
-
Adicionar `WHISPER_PRIVACY_MODE` como variável de ambiente em `claude_desktop_config.json`. Quando ativado:
|
|
123
|
-
- Todas as respostas das ferramentas retornam apenas metadados: nome do arquivo, duração, contagem de palavras, status de conclusão
|
|
124
|
-
- Nenhum texto de transcrição é incluído em qualquer resposta de ferramenta
|
|
125
|
-
- O Claude não pode ler, analisar ou retransmitir conteúdo de transcrição de nenhuma forma
|
|
126
|
-
- As transcrições existem apenas como arquivos `.txt` locais
|
|
127
|
-
|
|
128
|
-
Esta é a configuração correta para implantações médicas, jurídicas, financeiras e corporativas. Zero chamadas de API, zero transmissão de dados, zero risco de conformidade.
|
|
129
|
-
|
|
130
|
-
### Gateway de consentimento para conteúdo de transcrição
|
|
131
|
-
Quando `WHISPER_PRIVACY_MODE` não está ativado (padrão), qualquer resposta de ferramenta que inclua texto de transcrição deve ser precedida de uma divulgação no primeiro uso por sessão. A divulgação deve comunicar claramente que o texto de transcrição é enviado à API da Anthropic, que isso está fora da garantia "nenhum dado sai da sua máquina", e que usuários que lidam com conteúdo regulamentado devem verificar suas obrigações de conformidade antes de prosseguir.
|
|
132
|
-
|
|
133
|
-
Implementação: variável de ambiente `WHISPER_CONSENT_ACKNOWLEDGED` com padrão `false`. No primeiro retorno de transcrição por sessão, se não reconhecido, o Claude apresenta a divulgação e solicita confirmação explícita. Uma vez reconhecido para a sessão, as transcrições subsequentes são retornadas sem solicitar novamente.
|
|
134
|
-
|
|
135
|
-
### Documentação `PRIVACY.md`
|
|
136
|
-
Criar `PRIVACY.md` na raiz do repositório cobrindo:
|
|
137
|
-
- Quais dados sempre ficam locais: arquivos de áudio, vídeo, modelos
|
|
138
|
-
- Quais dados podem sair do local (por padrão): texto de transcrição em respostas de ferramentas
|
|
139
|
-
- Quais dados nunca saem do local (com modo de privacidade): tudo
|
|
140
|
-
- Orientação de framework de conformidade por setor (HIPAA, GDPR, privilégio advogado-cliente, FERPA, SOX, PCI-DSS, NDA/segredo comercial)
|
|
141
|
-
- Como configurar o modo de privacidade
|
|
142
|
-
- Isenção de responsabilidade de que os autores da ferramenta não são consultores jurídicos
|
|
143
|
-
|
|
144
|
-
### Avisos de privacidade no esquema de ferramentas
|
|
145
|
-
Atualizar as descrições de ferramentas `ListToolsRequestSchema` para incluir uma nota de privacidade em qualquer ferramenta que retorne texto de transcrição. Isso aparece nas descrições de ferramentas do Claude Desktop e cria consciência no ponto de uso.
|
|
146
|
-
|
|
147
|
-
### Limpeza automática do diretório temporário
|
|
148
|
-
`%TEMP%\whisper-mcp-jobs\` acumula arquivos de estado de tarefas e logs ao longo do tempo. Adicionar limpeza automática de arquivos de tarefas concluídas após uma janela de retenção configurável (padrão: 7 dias). Atualmente requer `Remove-Item` manual pelo usuário.
|
|
81
|
+
- Saída de lote corrigida — `readBatchProgress` agora move a saída temporária para o destino final antes de validar.
|
|
82
|
+
|
|
83
|
+
**Nota de compatibilidade de flags:** `gpu_device` / `--device` foi adicionado no whisper.cpp v1.8.4. Os binários Vulkan pré-compilados nos releases são da era v1.8.3 — este parâmetro é aceito pela ferramenta mas não terá efeito até que os usuários atualizem para binários v1.8.4+.
|
|
84
|
+
|
|
85
|
+
### ✅ v2.2.2 — Patch
|
|
86
|
+
- Correção de licença dual — revisão de LICENSE e LICENSE-COMMERCIAL.md.
|
|
87
|
+
- Correções menores de documentação.
|
|
88
|
+
|
|
89
|
+
### ✅ v2.3.0 — Avanço automático de lote, arquitetura de privacidade, expansão de formatos de saída
|
|
90
|
+
|
|
91
|
+
**Avanço automático de lote (correção de bug crítico):** `start_batch` antes exigia polling ativo para avançar a fila. Agora cada processo filho whisper-cli criado tem um handler `on('exit')` anexado. Quando o processo termina, o lote avança imediatamente de forma autônoma através do callback de saída — sem custo de polling nem chamadas de API. Um mutex previne a criação dupla entre o handler de saída e chamadas simultâneas a `check_batch_progress`.
|
|
92
|
+
|
|
93
|
+
**Arquitetura de privacidade:**
|
|
94
|
+
- Variável de ambiente `WHISPER_PRIVACY_MODE` — quando definida como `true`, todas as respostas das ferramentas retornam apenas metadados (nome do arquivo, contagem de palavras, caminho de salvamento). Nenhum texto de transcrição é enviado à API do Claude. As transcrições existem apenas como arquivos locais.
|
|
95
|
+
- Variável de ambiente `WHISPER_CONSENT_ACKNOWLEDGED` — quando definida como `true`, suprime a porta de consentimento única por sessão para conteúdo não sensível.
|
|
96
|
+
- Parâmetro `privacy_mode` por chamada em `transcribe_audio`, `transcribe_batch`, `start_batch`, `check_progress`. Substitui a variável de ambiente global em ambas as direções. Não requer reinicialização para ativar/desativar.
|
|
97
|
+
- Porta do modo de privacidade (`checkPrivacyGate()`) — executada antes de cada operação quando o modo de privacidade efetivo está ativo. Primeira chamada ativa (exibe divulgação), segunda chamada libera (permite). Reinicia após cada operação. Completamente independente da porta de consentimento de sessão.
|
|
98
|
+
- Porta de consentimento de sessão (`transcriptPolicy()`) — executada uma vez por sessão antes da primeira chamada que retorne transcrição no modo padrão. Consumida pelo flag `sessionConsentGiven`.
|
|
99
|
+
- `PRIVACY.md` — documentação de conformidade completa cobrindo HIPAA, GDPR, privilégio advogado-cliente, FERPA, SOX, PCI-DSS, NDA/segredo comercial.
|
|
100
|
+
- Avisos de privacidade nas descrições de ferramentas de todas as ferramentas que retornam texto de transcrição.
|
|
101
|
+
|
|
102
|
+
**Expansão de formatos de saída:**
|
|
103
|
+
- `vtt` — saída de legenda WebVTT via `-ovtt`. Disponível em `transcribe_audio`, `generate_subtitles`, `start_batch` e modo em segundo plano.
|
|
104
|
+
- `lrc` — formato de letras/karaokê LRC via `-olrc`. Disponível em `transcribe_audio` e modo em segundo plano.
|
|
105
|
+
- `csv` — CSV com carimbos de tempo via `-ocsv`. Disponível em `transcribe_audio` e modo em segundo plano.
|
|
106
|
+
- O valor padrão de `output_format` muda de `"text"` para `"timestamps"` em todas as ferramentas e caminhos de código. Texto simples agora é opcional.
|
|
107
|
+
|
|
108
|
+
**Correções de bugs:**
|
|
109
|
+
- Bug 1: `output_format` não era passado para tarefas em segundo plano — `"text"` padrão era usado independentemente do formato solicitado. Corrigido mudando o padrão para `"timestamps"` e passando corretamente.
|
|
110
|
+
- Bug 2: `catch {}` silencioso na operação de movimentação de saída de tarefa em segundo plano engolia falhas. Adicionada verificação `existsSync` explícita após a movimentação com mensagem de falha detalhada.
|
|
111
|
+
- Bug 3: Adicionado comentário de design no ponto de criação em segundo plano explicando por que a porta de consentimento é adiada intencionalmente para `check_progress` para tarefas em segundo plano não privadas.
|
|
112
|
+
|
|
113
|
+
**Adições:**
|
|
114
|
+
- Limpeza automática do diretório temporário — `cleanupOldJobFiles()` é executado na inicialização e exclui arquivos `.json` e `.log` com mais de 7 dias em `%TEMP%\whisper-mcp-jobs\`.
|
|
115
|
+
- `check_config` agora reporta o status do modo de privacidade.
|
|
116
|
+
- O log de inicialização reporta modo de privacidade ativado/desativado.
|
|
117
|
+
- Campo `privacyMode: boolean` adicionado à interface `Job`.
|
|
118
|
+
- Campo `privacyMode: boolean` adicionado à interface `BatchState`.
|
|
119
|
+
- O tipo `BackgroundFormat` exclui `json` (json no modo em segundo plano não é suportado — cai de volta para `text`).
|
|
149
120
|
|
|
150
121
|
---
|
|
151
122
|
|
|
152
|
-
## Planejado — Migração para
|
|
123
|
+
## Planejado — v2.4.0: Migração para Bun
|
|
153
124
|
|
|
154
|
-
Migrar o runtime
|
|
125
|
+
Migrar o runtime de Node.js para o [Bun](https://bun.sh).
|
|
155
126
|
|
|
156
|
-
|
|
127
|
+
O Claude Desktop cria um novo servidor MCP a cada início de sessão, portanto o tempo de inicialização está no caminho crítico. O Bun executa TypeScript nativamente sem etapa de compilação, inicia significativamente mais rápido que o Node e tem E/S mais rápida.
|
|
157
128
|
|
|
158
129
|
**O que muda:**
|
|
159
|
-
-
|
|
160
|
-
- Os usuários executam o código TypeScript
|
|
130
|
+
- Etapa de compilação `tsc` e diretório `dist/` removidos
|
|
131
|
+
- Os usuários executam o código-fonte TypeScript diretamente
|
|
161
132
|
- `tsconfig.json` torna-se opcional
|
|
162
|
-
- Scripts `package.json` atualizados
|
|
163
|
-
- Fluxo de
|
|
133
|
+
- Scripts do `package.json` atualizados
|
|
134
|
+
- Fluxo de publicação no npm atualizado
|
|
164
135
|
|
|
165
136
|
**O que não muda:**
|
|
166
137
|
- Código-fonte `src/index.ts` — o Bun é compatível com o TypeScript existente e as APIs integradas do Node.js
|
|
167
138
|
- Todos os comportamentos de ferramentas e formatos de saída
|
|
168
139
|
- Configuração do Claude Desktop para usuários finais
|
|
169
140
|
|
|
170
|
-
**Por que após a privacidade, antes do v2.3.0:** O código-fonte está em seu estado mais fácil de migrar agora. Migrar após adicionar mais ferramentas apenas aumenta a área de superfície sem benefício. A arquitetura de privacidade deve ser lançada primeiro conforme observado acima.
|
|
171
|
-
|
|
172
141
|
---
|
|
173
142
|
|
|
174
|
-
##
|
|
175
|
-
|
|
176
|
-
whisper-windows-mcp usa licença dupla.
|
|
177
|
-
|
|
178
|
-
**Uso não comercial:** MIT — gratuito para uso pessoal, educacional e não comercial. Veja [LICENSE](LICENSE).
|
|
143
|
+
## Planejado — v2.5.0: Formatos de saída aprimorados para integração com ferramentas externas
|
|
179
144
|
|
|
180
|
-
|
|
145
|
+
Suporte expandido de formatos de saída voltado para fluxos de trabalho de análise e integração downstream. O escopo exato será definido com base no feedback dos usuários após o v2.3.0.
|
|
181
146
|
|
|
182
|
-
|
|
147
|
+
---
|
|
183
148
|
|
|
184
|
-
## Planejado — v2.
|
|
149
|
+
## Planejado — v2.6.0: Modo de transcrição de microfone ao vivo
|
|
185
150
|
|
|
186
|
-
|
|
187
|
-
Saída WebVTT (`.vtt`) junto com SRT. VTT é o padrão web usado pelo YouTube, HTML5 `<video>` e a maioria dos players modernos. O whisper-cli o suporta nativamente. Adicionar `vtt` como formato de saída válido em `transcribe_audio`, `generate_subtitles` e `spawnDetached`. Atualizar `buildArgs` e todos os esquemas de ferramentas relevantes, README e documentação multilíngue.
|
|
151
|
+
Transcrição em tempo real a partir de entrada de microfone ao vivo. Transmite áudio em fragmentos do dispositivo de gravação selecionado para o whisper, retornando segmentos de transcrição concluídos de forma contínua.
|
|
188
152
|
|
|
189
|
-
|
|
190
|
-
|
|
153
|
+
**Restrições de design:**
|
|
154
|
+
- A seleção do dispositivo deve ser explícita — sem captura silenciosa do microfone padrão
|
|
155
|
+
- O usuário deve poder parar o stream através da interação com o Claude Desktop
|
|
156
|
+
- Não deve violar a restrição de uma única instância do whisper por vez
|
|
157
|
+
- O trade-off entre latência e precisão deve ser configurável pelo usuário
|
|
191
158
|
|
|
192
|
-
|
|
193
|
-
Saída CSV (`.csv`) via `-ocsv`. Dados tabulares estruturados com timing de segmentos — útil para análise downstream, fluxos de trabalho de alinhamento de clipes e importação em ferramentas de planilha. Custo de implementação zero — flag CLI nativo.
|
|
159
|
+
**Status:** Fase de design. Depende de uma API de streaming estável do whisper.cpp.
|
|
194
160
|
|
|
195
161
|
---
|
|
196
162
|
|
|
@@ -225,7 +191,7 @@ Para usuários que gerenciam grandes projetos de edição de vídeo com diretór
|
|
|
225
191
|
### Diarização de falantes (pyannote-audio)
|
|
226
192
|
Diarização de falantes mono completa com rótulos de ID de falante — marca transições de falantes em toda a gravação independentemente da configuração de canal. Diferente do flag `--diarize` estéreo integrado (v2.2.0) e do TinyDiarize.
|
|
227
193
|
|
|
228
|
-
**Implementação:** Requer [pyannote-audio](https://github.com/pyannote/pyannote-audio) — biblioteca baseada em Python com requisito de token de acesso a modelos do Hugging Face. Pilha de dependências completamente separada
|
|
194
|
+
**Implementação:** Requer [pyannote-audio](https://github.com/pyannote/pyannote-audio) — biblioteca baseada em Python com requisito de token de acesso a modelos do Hugging Face. Pilha de dependências completamente separada.
|
|
229
195
|
|
|
230
196
|
**Status:** Funcionalidade avançada opcional com sua própria documentação de configuração. Não incluída no pacote principal.
|
|
231
197
|
|
|
@@ -247,15 +213,25 @@ Pipeline de pós-processamento:
|
|
|
247
213
|
|
|
248
214
|
---
|
|
249
215
|
|
|
216
|
+
## Licenciamento
|
|
217
|
+
|
|
218
|
+
O whisper-windows-mcp usa licença dupla.
|
|
219
|
+
|
|
220
|
+
**Uso não comercial:** MIT — gratuito para uso pessoal, educacional e não comercial. Veja [LICENSE](LICENSE).
|
|
221
|
+
|
|
222
|
+
**Uso comercial:** É necessário um contrato de licença comercial separado para qualquer uso empresarial, profissional ou que gere receita. Veja [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md).
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
250
226
|
## Distribuição
|
|
251
227
|
|
|
252
|
-
Disponível no [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org)
|
|
228
|
+
Disponível no [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), [Glama](https://glama.ai) e [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) (PR enviado).
|
|
253
229
|
|
|
254
230
|
---
|
|
255
231
|
|
|
256
232
|
## Documentação multilíngue
|
|
257
233
|
|
|
258
|
-
|
|
234
|
+
Os seguintes arquivos devem ser atualizados para corresponder aos documentos em inglês após cada release:
|
|
259
235
|
|
|
260
236
|
**Japonês (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
261
237
|
|
|
@@ -271,9 +247,9 @@ A documentação em japonês, coreano, vietnamita, indonésio, ucraniano, portug
|
|
|
271
247
|
|
|
272
248
|
**Espanhol (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
273
249
|
|
|
274
|
-
**
|
|
250
|
+
**Polonês (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
275
251
|
|
|
276
|
-
**
|
|
252
|
+
**Romeno (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
277
253
|
|
|
278
254
|
Contribuições da comunidade para outros idiomas são bem-vindas.
|
|
279
255
|
|
package/ROADMAP.ro.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# whisper-windows-mcp — Foaie de parcurs
|
|
2
2
|
|
|
3
|
-
Versiunea curentă: **v2.
|
|
3
|
+
Versiunea curentă: **v2.3.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,7 +54,7 @@ Arhitectură proces detașat: `transcribe_audio` cu `background=true` pornește
|
|
|
54
54
|
### ✅ v2.0.0 — Căi sigure Unicode + SRT în fundal
|
|
55
55
|
**Nume fișiere Unicode:** Fișierele cu caractere non-ASCII în nume cauzau eșecuri silențioase ale transcrierii în fundal. Remediat prin direcționarea tuturor ieșirilor printr-o cale temporară igienizată bazată pe ID sarcină, apoi mutarea rezultatului la destinația corectă după finalizare.
|
|
56
56
|
|
|
57
|
-
**SRT în modul fundal:** `spawnDetached` anterior codifica rigid `-otxt` indiferent de formatul solicitat
|
|
57
|
+
**SRT în modul fundal:** `spawnDetached` anterior codifica rigid `-otxt` indiferent de formatul solicitat. Remediat prin adăugarea parametrului `outputFormat` la `spawnDetached`, suportând ieșire `text` și `srt` în modul fundal.
|
|
58
58
|
|
|
59
59
|
### ✅ v2.0.1 — Corecții erori (incluse în v2.2.0)
|
|
60
60
|
- `--max-context 0` codificat rigid în `buildArgs` și `spawnDetached` — previne buclele de halucinație pe audio lung.
|
|
@@ -73,103 +73,161 @@ Arhitectură proces detașat: `transcribe_audio` cu `background=true` pornește
|
|
|
73
73
|
- Instrument `switch_model` — validează extensia `.bin`, restricție director, verificare blocare proces.
|
|
74
74
|
- `recommendedModel()` actualizat pentru a recomanda `large-v3-turbo` pentru VRAM 6GB+.
|
|
75
75
|
|
|
76
|
-
### ✅ v2.2.0 — Extindere calitate, parametri și hardware
|
|
76
|
+
### ✅ v2.2.0 — Extindere calitate, parametri și hardware
|
|
77
77
|
- Interfață `WhisperOptions` înlocuind argumentele poziționale în `buildArgs`.
|
|
78
78
|
- Parametri noi în `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
|
- Parametri noi în `generate_subtitles`: `temperature`, `prompt`, `beam_size`, `best_of`, `diarize`, `vad_model`.
|
|
80
80
|
- `spawnDetached` refactorizat — toate indicatoarele de calitate sunt acum aplicate în modul fundal/lot.
|
|
81
81
|
- Ieșire lot corectată — `readBatchProgress` acum mută ieșirea temporară la destinația finală înainte de validare.
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
## Bug critic — Avansare automată lot (confirmat, în așteptarea remedierii)
|
|
83
|
+
**Notă compatibilitate indicatoare:** `gpu_device` / `--device` a fost adăugat în whisper.cpp v1.8.4. Binarul Vulkan precompilat în versiuni este de generație v1.8.3 — acest parametru este acceptat de instrument dar nu va avea efect până când utilizatorii nu actualizează la un binar v1.8.4+.
|
|
86
84
|
|
|
87
|
-
###
|
|
85
|
+
### ✅ v2.2.2 — Patch
|
|
86
|
+
- Corecție licență duală — LICENSE și LICENSE-COMMERCIAL.md corectate.
|
|
87
|
+
- Corecții minore de documentație.
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
### ✅ v2.3.0 — Avansare automată lot, arhitectură confidențialitate, extindere formate de ieșire
|
|
90
90
|
|
|
91
|
-
**
|
|
91
|
+
**Avansare automată lot (corecție bug critic):** `start_batch` necesita anterior interogare activă pentru a avansa coada. Un handler `on('exit')` este acum atașat fiecărui proces copil whisper-cli pornit. Când procesul iese, lotul avansează automat prin callback-ul de ieșire cu zero costuri de interogare și zero apeluri API consumate. Un mutex previne lansarea dublă între handler-ul de ieșire concurrent și apelurile `check_batch_progress`.
|
|
92
92
|
|
|
93
|
-
**
|
|
93
|
+
**Arhitectură confidențialitate:**
|
|
94
|
+
- Variabila de mediu `WHISPER_PRIVACY_MODE` — când `true`, toate răspunsurile instrumentelor returnează doar metadate (numele fișierului, numărul de cuvinte, calea de salvare). Niciun text de transcriere nu este transmis vreodată la API-ul Claude. Transcrierile există doar ca fișiere locale.
|
|
95
|
+
- Variabila de mediu `WHISPER_CONSENT_ACKNOWLEDGED` — când `true`, suprimă poarta de consimțământ unică per sesiune pentru conținut non-sensibil.
|
|
96
|
+
- Parametrul `privacy_mode` per apel în `transcribe_audio`, `transcribe_batch`, `start_batch` și `check_progress`. Suprascrie variabila de mediu globală în ambele direcții. Nu necesită repornire pentru a comuta per apel.
|
|
97
|
+
- Poarta modului de confidențialitate (`checkPrivacyGate()`) — se activează înainte de fiecare operațiune când modul de confidențialitate efectiv este activ.
|
|
98
|
+
- Poarta de consimțământ sesiune (`transcriptPolicy()`) — se activează o dată per sesiune înainte de primul apel care returnează transcriere în modul standard.
|
|
99
|
+
- `PRIVACY.md` — documentație completă de conformitate acoperind HIPAA, GDPR, privilegiu avocat-client, FERPA, SOX, PCI-DSS și NDA/secret comercial.
|
|
94
100
|
|
|
95
|
-
|
|
101
|
+
**Extindere formate de ieșire:**
|
|
102
|
+
- `vtt` — ieșire WebVTT prin `-ovtt`. Disponibil în `transcribe_audio`, `generate_subtitles`, `start_batch` și modul fundal.
|
|
103
|
+
- `lrc` — format LRC versuri/karaoke prin `-olrc`. Disponibil în `transcribe_audio` și modul fundal.
|
|
104
|
+
- `csv` — CSV cu marcaje de timp prin `-ocsv`. Disponibil în `transcribe_audio` și modul fundal.
|
|
105
|
+
- `output_format` implicit schimbat din `"text"` în `"timestamps"` în toate instrumentele și căile de cod.
|
|
96
106
|
|
|
97
|
-
|
|
107
|
+
**Corecții bug:**
|
|
108
|
+
- Bug 1: `output_format` nu era transmis sarcinilor în fundal — implicit `"text"` era folosit indiferent de formatul solicitat. Remediat prin schimbarea implicită la `"timestamps"` și transmitere corectă.
|
|
109
|
+
- Bug 2: `catch {}` silențios în operațiunea de mutare a ieșirii sarcinii în fundal înghițea eșecurile. Adăugat verificare explicită `existsSync` cu mesaj de eșec detaliat după mutare.
|
|
110
|
+
- Bug 3: Comentariu de design adăugat la punctul de lansare în fundal documentând de ce poarta de consimțământ este intenționat amânată la `check_progress` pentru sarcinile în fundal fără mod de confidențialitate.
|
|
98
111
|
|
|
99
|
-
|
|
100
|
-
|
|
112
|
+
**Suplimentar:**
|
|
113
|
+
- Curățare automată director temporar — `cleanupOldJobFiles()` rulează la pornire, șterge fișierele `.json` și `.log` mai vechi de 7 zile din `%TEMP%\whisper-mcp-jobs\`.
|
|
114
|
+
- `check_config` raportează acum starea modului de confidențialitate.
|
|
115
|
+
- Jurnalul de pornire raportează modul de confidențialitate activat/dezactivat.
|
|
101
116
|
|
|
102
|
-
|
|
103
|
-
Când `WHISPER_PRIVACY_MODE` nu este activat (implicit), orice răspuns al instrumentului care include text de transcriere trebuie precedat de o dezvăluire la prima utilizare per sesiune.
|
|
117
|
+
---
|
|
104
118
|
|
|
105
|
-
|
|
106
|
-
Creează `PRIVACY.md` în rădăcina depozitului cu îndrumări complete privind confidențialitatea și cadre de conformitate.
|
|
119
|
+
## Planificat — v2.4.0: Migrare la Bun
|
|
107
120
|
|
|
108
|
-
|
|
109
|
-
Adaugă curățare automată a fișierelor de sarcini finalizate după o fereastră de retenție configurabilă (implicit: 7 zile).
|
|
121
|
+
Migrează runtime-ul de la Node.js la [Bun](https://bun.sh).
|
|
110
122
|
|
|
111
|
-
|
|
123
|
+
Deoarece Claude Desktop pornește serverul MCP din nou la fiecare pornire de sesiune, timpul de pornire este pe calea critică. Bun rulează TypeScript nativ fără pas de compilare, pornește semnificativ mai rapid decât Node și are I/O mai rapid.
|
|
112
124
|
|
|
113
|
-
|
|
125
|
+
**Ce se schimbă:**
|
|
126
|
+
- Elimină pasul de build `tsc` și directorul `dist/`
|
|
127
|
+
- Utilizatorii rulează direct codul sursă TypeScript
|
|
128
|
+
- `tsconfig.json` devine opțional
|
|
129
|
+
- Scripturi `package.json` actualizate
|
|
130
|
+
- Flux de lucru publicare npm actualizat
|
|
114
131
|
|
|
115
|
-
|
|
132
|
+
**Ce nu se schimbă:**
|
|
133
|
+
- Codul sursă `src/index.ts` — Bun este compatibil cu TypeScript existent și API-urile Node.js integrate
|
|
134
|
+
- Tot comportamentul instrumentelor și formatele de ieșire
|
|
135
|
+
- Configurația Claude Desktop pentru utilizatorii finali
|
|
116
136
|
|
|
117
137
|
---
|
|
118
138
|
|
|
119
|
-
##
|
|
139
|
+
## Planificat — v2.5.0: Formate de ieșire îmbunătățite pentru integrarea instrumentelor externe
|
|
120
140
|
|
|
121
|
-
|
|
141
|
+
Suport extins pentru formate de ieșire destinat fluxurilor de lucru de analiză și integrare din aval. Domeniul exact va fi definit pe baza feedback-ului utilizatorilor după v2.3.0.
|
|
122
142
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
**Utilizare comercială:** Este necesar un acord de licență comercială separat. Vezi [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
|
|
126
|
-
|
|
127
|
-
`WHISPER_PRIVACY_MODE` pentru implementări în sectoare reglementate este în curs de dezvoltare și planificat pentru o versiune viitoare. Vezi [PRIVACY.md](PRIVACY.md) pentru îndrumări actuale.
|
|
143
|
+
---
|
|
128
144
|
|
|
129
|
-
## Planificat — v2.
|
|
145
|
+
## Planificat — v2.6.0: Modul de transcriere live din microfon
|
|
130
146
|
|
|
131
|
-
|
|
132
|
-
Ieșire WebVTT (`.vtt`) împreună cu SRT. Standard web folosit de YouTube, HTML5 `<video>` și majoritatea playerelor moderne.
|
|
147
|
+
Transcriere în timp real din intrare microfon live. Transmite audio de la un dispozitiv de înregistrare selectat la whisper în bucăți, returnând segmente de transcriere continue pe măsură ce se finalizează.
|
|
133
148
|
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
**Constrângeri de proiectare:**
|
|
150
|
+
- Selecția dispozitivului trebuie să fie explicită — fără captare silențioasă a dispozitivului implicit
|
|
151
|
+
- Utilizatorul trebuie să poată opri fluxul printr-o interacțiune Claude Desktop
|
|
152
|
+
- Nu trebuie să intre în conflict cu constrângerea unei singure instanțe whisper simultan
|
|
153
|
+
- Compromisul latență vs precizie trebuie să fie configurabil de utilizator
|
|
136
154
|
|
|
137
|
-
|
|
138
|
-
Ieșire CSV (`.csv`) prin `-ocsv`. Date tabulare structurate cu sincronizare segmente.
|
|
155
|
+
**Status:** Faza de proiectare. Depinde de un API de streaming stabil în whisper.cpp.
|
|
139
156
|
|
|
140
157
|
---
|
|
141
158
|
|
|
142
159
|
## Planificat — Versiuni viitoare
|
|
143
160
|
|
|
144
161
|
### TinyDiarize
|
|
145
|
-
Suport pentru indicatorul `--tinydiarize` cu variante de model care suportă `tdrz
|
|
162
|
+
Suport pentru indicatorul `--tinydiarize` cu variante de model care suportă `tdrz` (ex.: `large-v2-tdrz`). Spre deosebire de indicatorul `--diarize` stereo, TinyDiarize funcționează pe înregistrări mono. Necesită descărcarea unui variant de model special. Precizie mai mică decât diarizarea bazată pe pyannote, dar zero dependențe suplimentare în afara fișierului model.
|
|
163
|
+
|
|
164
|
+
**Status:** Planificat. Depinde de `download_model` care suportă variantele de model tdrz.
|
|
146
165
|
|
|
147
166
|
### Transcriere URL YouTube
|
|
148
|
-
Transcriere directă din URL-uri YouTube prin yt-dlp. Necesită yt-dlp instalat și în PATH.
|
|
167
|
+
Transcriere directă din URL-uri YouTube prin yt-dlp. Descarcă audio și transcrie într-un singur pas. Necesită yt-dlp instalat și în PATH.
|
|
168
|
+
|
|
169
|
+
**Constrângere de proiectare:** yt-dlp este opțional. Instrumentul trebuie să degradeze elegant cu instrucțiuni clare de instalare dacă nu este găsit. Fără modificări ale funcționalității de bază pentru utilizatorii care nu au nevoie de aceasta.
|
|
149
170
|
|
|
150
171
|
### Instrumente flux de lucru proiect video
|
|
151
|
-
Pentru utilizatorii care gestionează proiecte mari de editare video cu directoare de clipuri sursă și editate
|
|
172
|
+
Pentru utilizatorii care gestionează proiecte mari de editare video cu directoare de clipuri sursă și editate:
|
|
173
|
+
|
|
174
|
+
1. Scanează directorul sursă și subdirectorul de clipuri
|
|
175
|
+
2. Potrivire fuzzy a transcrierilor clipurilor editate față de transcrierile sursă pentru a localiza punctele de origine
|
|
176
|
+
3. Afișează nume de fișiere descriptive sugerate de Claude bazate pe conținutul transcrierii, necesitând confirmarea explicită a utilizatorului înainte de orice redenumire
|
|
177
|
+
4. Căutare transcrieri în directorul proiectului cu rezultate în coduri de timp
|
|
178
|
+
|
|
179
|
+
**Constrângeri de proiectare:**
|
|
180
|
+
- Fișierele sursă nu sunt **niciodată redenumite sau modificate**
|
|
181
|
+
- Toate redenumirile necesită **confirmarea explicită a utilizatorului**
|
|
182
|
+
- Căutarea este un instrument independent, utilizabil independent
|
|
183
|
+
- Analiza și potrivirea au loc local — Claude este invocat doar când utilizatorul revizuiește rezultatele, minimizând apelurile API
|
|
184
|
+
|
|
185
|
+
**Status:** Faza de proiectare.
|
|
152
186
|
|
|
153
187
|
### Diarizare vorbitori (pyannote-audio)
|
|
154
|
-
Diarizare completă mono cu etichete ID vorbitor
|
|
188
|
+
Diarizare completă mono cu etichete ID vorbitor — marchează tranzițiile vorbitorilor pe toată înregistrarea indiferent de configurația canalelor. Diferit de indicatorul `--diarize` stereo integrat (v2.2.0) și TinyDiarize.
|
|
189
|
+
|
|
190
|
+
**Implementare:** Necesită [pyannote-audio](https://github.com/pyannote/pyannote-audio) — bibliotecă bazată pe Python cu cerință de token acces modele Hugging Face. Stivă de dependențe complet separată.
|
|
191
|
+
|
|
192
|
+
**Status:** Funcție avansată opțională cu propria documentație de configurare. Nu este inclusă în pachetul principal.
|
|
155
193
|
|
|
156
194
|
### Traducere în limbi non-engleze
|
|
157
195
|
Indicatorul `--translate` al Whisper țintește doar engleza. Suportarea limbilor țintă arbitrare necesită un API de traducere extern sau un model de traducere local.
|
|
158
196
|
|
|
197
|
+
**Opțiuni luate în considerare:** LibreTranslate (auto-găzduit, local prioritar), traducere LLM local sau documentație explicită în afara domeniului.
|
|
198
|
+
|
|
199
|
+
**Status:** Amânat în așteptarea deciziei de proiectare privind local prioritar vs dependența API.
|
|
200
|
+
|
|
159
201
|
### Curățare și formatare transcrieri
|
|
160
|
-
Pipeline de post-procesare:
|
|
202
|
+
Pipeline de post-procesare:
|
|
203
|
+
- Eliminarea cuvintelor de umplutură și a pornirilor false (opțional, controlat de utilizator)
|
|
204
|
+
- Pauze de paragraf la granițele naturale ale subiectelor
|
|
205
|
+
- Formatare conștientă de vorbitor combinată cu ieșire diarizare
|
|
206
|
+
- Export în PDF sau DOCX
|
|
207
|
+
|
|
208
|
+
**Status:** Planificat. Varianta conștientă de vorbitor depinde de diarizare.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Licențiere
|
|
213
|
+
|
|
214
|
+
whisper-windows-mcp folosește licențiere duală.
|
|
215
|
+
|
|
216
|
+
**Utilizare non-comercială:** MIT — gratuit pentru uz personal, educațional și non-comercial. Vezi [LICENSE](LICENSE).
|
|
217
|
+
|
|
218
|
+
**Utilizare comercială:** Este necesar un acord de licență comercială separat pentru orice utilizare în afaceri, profesională sau generatoare de venituri. Vezi [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) pentru termeni și informații de contact.
|
|
161
219
|
|
|
162
220
|
---
|
|
163
221
|
|
|
164
222
|
## Distribuție
|
|
165
223
|
|
|
166
|
-
Disponibil pe [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org)
|
|
224
|
+
Disponibil pe [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org), [Glama](https://glama.ai) și [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers).
|
|
167
225
|
|
|
168
226
|
---
|
|
169
227
|
|
|
170
228
|
## Documentație multilingvă
|
|
171
229
|
|
|
172
|
-
|
|
230
|
+
După fiecare versiune, următoarele fișiere trebuie actualizate pentru a corespunde documentelor în engleză:
|
|
173
231
|
|
|
174
232
|
**Japoneză (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
175
233
|
|