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.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.4.0**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -54,143 +54,133 @@ 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
|
-
- Saída de lote corrigida — `readBatchProgress` agora move a saída temporária para o destino final antes de validar (esta era a causa raiz de todos os resultados de lote "com falha").
|
|
81
|
+
- Saída de lote corrigida — `readBatchProgress` agora move a saída temporária para o destino final antes de validar.
|
|
83
82
|
|
|
84
|
-
**Nota de compatibilidade de flags:** `gpu_device` /
|
|
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+.
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
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
88
|
|
|
89
|
-
|
|
89
|
+
### ✅ v2.3.0 — Avanço automático de lote, arquitetura de privacidade, expansão de formatos de saída
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
## Bug crítico — Avanço automático do lote (confirmado, aguardando correção)
|
|
94
|
-
|
|
95
|
-
### Lote não avança sem polling ativo
|
|
96
|
-
|
|
97
|
-
`start_batch` não avança a fila autonomamente entre os arquivos. O lote só avança quando `check_batch_progress` é chamado. Sem polling, o lote fica parado indefinidamente após cada arquivo — o whisper-cli.exe sai, nenhum novo processo é criado e a fila não avança.
|
|
98
|
-
|
|
99
|
-
Isso destrói o objetivo de design central de processamento em lote autônomo durante a noite e viola diretamente o princípio de design de minimizar chamadas à API do Claude. Um lote de 95 clipes curtos exigiu cerca de 200 chamadas de polling ao longo de 100 minutos para ser concluído.
|
|
100
|
-
|
|
101
|
-
**Causa raiz:** `readBatchProgress` contém toda a lógica de avanço de fila. Ele só é executado quando `check_batch_progress` é chamado explicitamente. Não há timer em segundo plano, observador de arquivo ou loop autônomo.
|
|
102
|
-
|
|
103
|
-
**Correção planejada — Opção B (callback de saída, fortemente preferido):** Attach de um handler `on('exit')` ao processo filho whisper-cli criado. Quando o processo sair, imediatamente chamar a lógica de avanço para validar a saída e criar a próxima tarefa. Baseado em eventos, disparado exatamente uma vez por conclusão de arquivo, sem overhead de polling, sem chamadas de API consumidas.
|
|
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`.
|
|
104
92
|
|
|
105
|
-
**
|
|
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.
|
|
106
101
|
|
|
107
|
-
**
|
|
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.
|
|
108
107
|
|
|
109
|
-
**
|
|
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.
|
|
110
112
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
A ferramenta atualmente garante que nenhum **áudio** sai da máquina. Ela não estende essa garantia ao **texto de transcrição** — quando o conteúdo de transcrição é retornado inline em uma resposta de ferramenta, esse texto é processado pela API do Claude e sai do ambiente local.
|
|
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`).
|
|
119
120
|
|
|
120
|
-
|
|
121
|
+
### ✅ v2.4.0 — Fortalecimento, guarda de tempo limite em primeiro plano, suíte de testes e CI
|
|
121
122
|
|
|
122
|
-
|
|
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
|
|
123
|
+
Uma passagem de segurança/robustez; a migração para Bun planejada foi movida para v2.5.0.
|
|
127
124
|
|
|
128
|
-
|
|
125
|
+
**Segurança e correção:**
|
|
126
|
+
- Correção de contenção de caminho em `switch_model` — um diretório com prefixo-irmão (p. ex. `…\models-evil`) podia antes satisfazer a verificação de "dentro do diretório de modelos" por meio de um `startsWith` ingênuo; substituído por contenção normalizada baseada em `relative()`. Fecha a fuga que o SECURITY.md descreve.
|
|
127
|
+
- Barreira de privacidade/consentimento chaveada **por operação** (ferramenta + argumentos) — confirmar uma transcrição não pode mais satisfazer a barreira de uma operação diferente.
|
|
128
|
+
- `download_model` rejeita downloads truncados (verificação de Content-Length) antes de promover um arquivo `.part`. (A verificação completa do digest SHA256 fica para uma passagem posterior.)
|
|
129
|
+
- Coerção de entrada — parâmetros numéricos de ferramentas que não são números reais são descartados em vez de entregues ao whisper-cli como `NaN`.
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
**Robustez:**
|
|
132
|
+
- **Guarda de tempo limite em primeiro plano** — um arquivo longo o suficiente para exceder o tempo limite de ferramenta MCP de ~4 minutos do Claude Desktop em modo de bloqueio é detectado de antemão e roteado para segundo plano em vez de esgotar o tempo silenciosamente. Limite configurável via `WHISPER_FOREGROUND_MAX_SEC`. Estimativas de tempo corrigidas (a antiga estimativa de GPU subestimava muito; o custo dominante de recarga do modelo agora é modelado — medido, não adivinhado).
|
|
133
|
+
- Gravações atômicas do estado de trabalhos/lotes (arquivo temporário + renomeação) para que um leitor concorrente não possa observar um arquivo JSON parcialmente escrito.
|
|
134
|
+
- IDs de trabalho/lote/temporários à prova de colisão (com sufixo UUID).
|
|
135
|
+
- Encerramento gracioso em SIGINT/SIGTERM que limpa os arquivos temporários do modo de bloqueio.
|
|
132
136
|
|
|
133
|
-
|
|
137
|
+
**Seleção de dispositivo GPU:**
|
|
138
|
+
- Variável de ambiente `WHISPER_GPU_DEVICE`, e `gpu_device` agora propagado por `generate_subtitles` e pela passagem de detecção de idioma (antes apenas `transcribe_audio`). `check_config` reporta o dispositivo ativo. `check_system` não reporta mais erroneamente um problema de driver quando o `wmic` (descontinuado no Windows 11 24H2+) não retorna nada.
|
|
134
139
|
|
|
135
|
-
|
|
136
|
-
|
|
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
|
|
140
|
+
**Qualidade:**
|
|
141
|
+
- Uma suíte de testes unitários `node:test` sobre a lógica pura (contenção de caminho, chaveamento da barreira, gravações atômicas, coerção de entrada, a estimativa de tempo limite), zero dependências adicionadas, além de um fluxo de trabalho de CI do GitHub Actions executando-a a cada push/PR.
|
|
143
142
|
|
|
144
|
-
|
|
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.
|
|
143
|
+
**Identificado para um lançamento futuro:** um caminho de modelo persistente (p. ex. o `whisper-server` do whisper.cpp) para eliminar o custo de recarga do modelo pago em cada transcrição — um grande ganho de throughput para trabalho em lote/de arquivo.
|
|
149
144
|
|
|
150
145
|
---
|
|
151
146
|
|
|
152
|
-
## Planejado — Migração para
|
|
147
|
+
## Planejado — v2.5.0: Migração para Bun
|
|
153
148
|
|
|
154
|
-
Migrar o runtime
|
|
149
|
+
Migrar o runtime de Node.js para o [Bun](https://bun.sh).
|
|
155
150
|
|
|
156
|
-
|
|
151
|
+
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
152
|
|
|
158
153
|
**O que muda:**
|
|
159
|
-
-
|
|
160
|
-
- Os usuários executam o código TypeScript
|
|
154
|
+
- Etapa de compilação `tsc` e diretório `dist/` removidos
|
|
155
|
+
- Os usuários executam o código-fonte TypeScript diretamente
|
|
161
156
|
- `tsconfig.json` torna-se opcional
|
|
162
|
-
- Scripts `package.json` atualizados
|
|
163
|
-
- Fluxo de
|
|
157
|
+
- Scripts do `package.json` atualizados
|
|
158
|
+
- Fluxo de publicação no npm atualizado
|
|
164
159
|
|
|
165
160
|
**O que não muda:**
|
|
166
161
|
- Código-fonte `src/index.ts` — o Bun é compatível com o TypeScript existente e as APIs integradas do Node.js
|
|
167
162
|
- Todos os comportamentos de ferramentas e formatos de saída
|
|
168
163
|
- Configuração do Claude Desktop para usuários finais
|
|
169
164
|
|
|
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
165
|
---
|
|
173
166
|
|
|
174
|
-
##
|
|
167
|
+
## Planejado — v2.6.0: Formatos de saída aprimorados para integração com ferramentas externas
|
|
175
168
|
|
|
176
|
-
|
|
169
|
+
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.
|
|
177
170
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
**Uso comercial:** É necessário um contrato de licença comercial separado. Veja [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
|
|
181
|
-
|
|
182
|
-
`WHISPER_PRIVACY_MODE` para implantações em setores regulamentados está em desenvolvimento e planejado para uma versão futura. Veja [PRIVACY.md](PRIVACY.md) para orientações atuais.
|
|
171
|
+
---
|
|
183
172
|
|
|
184
|
-
## Planejado — v2.
|
|
173
|
+
## Planejado — v2.7.0: Modo de transcrição de microfone ao vivo
|
|
185
174
|
|
|
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.
|
|
175
|
+
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
176
|
|
|
189
|
-
|
|
190
|
-
|
|
177
|
+
**Restrições de design:**
|
|
178
|
+
- A seleção do dispositivo deve ser explícita — sem captura silenciosa do microfone padrão
|
|
179
|
+
- O usuário deve poder parar o stream através da interação com o Claude Desktop
|
|
180
|
+
- Não deve violar a restrição de uma única instância do whisper por vez
|
|
181
|
+
- O trade-off entre latência e precisão deve ser configurável pelo usuário
|
|
191
182
|
|
|
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.
|
|
183
|
+
**Status:** Fase de design. Depende de uma API de streaming estável do whisper.cpp.
|
|
194
184
|
|
|
195
185
|
---
|
|
196
186
|
|
|
@@ -225,7 +215,7 @@ Para usuários que gerenciam grandes projetos de edição de vídeo com diretór
|
|
|
225
215
|
### Diarização de falantes (pyannote-audio)
|
|
226
216
|
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
217
|
|
|
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
|
|
218
|
+
**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
219
|
|
|
230
220
|
**Status:** Funcionalidade avançada opcional com sua própria documentação de configuração. Não incluída no pacote principal.
|
|
231
221
|
|
|
@@ -247,15 +237,25 @@ Pipeline de pós-processamento:
|
|
|
247
237
|
|
|
248
238
|
---
|
|
249
239
|
|
|
240
|
+
## Licenciamento
|
|
241
|
+
|
|
242
|
+
O whisper-windows-mcp usa licença dupla.
|
|
243
|
+
|
|
244
|
+
**Uso não comercial:** MIT — gratuito para uso pessoal, educacional e não comercial. Veja [LICENSE](LICENSE).
|
|
245
|
+
|
|
246
|
+
**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).
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
250
|
## Distribuição
|
|
251
251
|
|
|
252
|
-
Disponível no [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org)
|
|
252
|
+
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
253
|
|
|
254
254
|
---
|
|
255
255
|
|
|
256
256
|
## Documentação multilíngue
|
|
257
257
|
|
|
258
|
-
|
|
258
|
+
Os seguintes arquivos devem ser atualizados para corresponder aos documentos em inglês após cada release:
|
|
259
259
|
|
|
260
260
|
**Japonês (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
261
261
|
|
|
@@ -271,9 +271,9 @@ A documentação em japonês, coreano, vietnamita, indonésio, ucraniano, portug
|
|
|
271
271
|
|
|
272
272
|
**Espanhol (`*.es.md`)** — `README.es.md` / `TROUBLESHOOTING.es.md` / `ROADMAP.es.md` / `PRIVACY.es.md` / `SECURITY.es.md`
|
|
273
273
|
|
|
274
|
-
**
|
|
274
|
+
**Polonês (`*.pl.md`)** — `README.pl.md` / `TROUBLESHOOTING.pl.md` / `ROADMAP.pl.md` / `PRIVACY.pl.md` / `SECURITY.pl.md`
|
|
275
275
|
|
|
276
|
-
**
|
|
276
|
+
**Romeno (`*.ro.md`)** — `README.ro.md` / `TROUBLESHOOTING.ro.md` / `ROADMAP.ro.md` / `PRIVACY.ro.md` / `SECURITY.ro.md`
|
|
277
277
|
|
|
278
278
|
Contribuições da comunidade para outros idiomas são bem-vindas.
|
|
279
279
|
|
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.4.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,185 @@ 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
|
-
|
|
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+.
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
### ✅ v2.2.2 — Patch
|
|
86
|
+
- Corecție licență duală — LICENSE și LICENSE-COMMERCIAL.md corectate.
|
|
87
|
+
- Corecții minore de documentație.
|
|
86
88
|
|
|
87
|
-
###
|
|
89
|
+
### ✅ v2.3.0 — Avansare automată lot, arhitectură confidențialitate, extindere formate de ieșire
|
|
88
90
|
|
|
89
|
-
`start_batch`
|
|
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`.
|
|
90
92
|
|
|
91
|
-
**
|
|
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.
|
|
92
100
|
|
|
93
|
-
**
|
|
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.
|
|
94
106
|
|
|
95
|
-
|
|
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.
|
|
96
111
|
|
|
97
|
-
|
|
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.
|
|
98
116
|
|
|
99
|
-
###
|
|
100
|
-
Adaugă `WHISPER_PRIVACY_MODE` ca variabilă de mediu în `claude_desktop_config.json`. Când este activată, toate răspunsurile instrumentelor returnează doar metadate — niciun text de transcriere nu este inclus.
|
|
117
|
+
### ✅ v2.4.0 — Întărire, gardă de expirare în prim-plan, suită de teste și CI
|
|
101
118
|
|
|
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.
|
|
119
|
+
O trecere de securitate/robustețe; migrarea la Bun planificată a fost mutată la v2.5.0.
|
|
104
120
|
|
|
105
|
-
|
|
106
|
-
|
|
121
|
+
**Securitate și corectitudine:**
|
|
122
|
+
- Remediere a izolării căilor în `switch_model` — un director cu prefix-frate (de ex. `…\models-evil`) putea anterior satisface verificarea „în interiorul directorului de modele” printr-un `startsWith` naiv; înlocuit cu izolare normalizată bazată pe `relative()`. Închide evadarea pe care o descrie SECURITY.md.
|
|
123
|
+
- Bariera de confidențialitate/consimțământ cheiată **per operațiune** (instrument + argumente) — confirmarea unei transcrieri nu mai poate satisface bariera unei alte operațiuni.
|
|
124
|
+
- `download_model` respinge descărcările trunchiate (verificare Content-Length) înainte de a promova un fișier `.part`. (Verificarea completă a digestului SHA256 este urmărită pentru o trecere ulterioară.)
|
|
125
|
+
- Coerciția intrărilor — parametrii numerici de instrument care nu sunt numere reale sunt eliminați în loc să fie predați lui whisper-cli ca `NaN`.
|
|
107
126
|
|
|
108
|
-
|
|
109
|
-
|
|
127
|
+
**Robustețe:**
|
|
128
|
+
- **Gardă de expirare în prim-plan** — un fișier suficient de lung încât să depășească expirarea de ~4 minute a instrumentului MCP al Claude Desktop în mod blocant este detectat din timp și direcționat în fundal în loc să expire în tăcere. Prag configurabil prin `WHISPER_FOREGROUND_MAX_SEC`. Estimările de timp corectate (vechea estimare GPU subestima grav; costul dominant de reîncărcare a modelului este acum modelat — măsurat, nu ghicit).
|
|
129
|
+
- Scrieri atomice ale stării lucrărilor/loturilor (fișier temporar + redenumire) astfel încât un cititor concurent să nu poată observa un fișier JSON rupt.
|
|
130
|
+
- ID-uri de lucrare/lot/temporare rezistente la coliziuni (cu sufix UUID).
|
|
131
|
+
- Oprire grațioasă la SIGINT/SIGTERM care curăță fișierele temporare ale modului blocant.
|
|
110
132
|
|
|
111
|
-
|
|
133
|
+
**Selectarea dispozitivului GPU:**
|
|
134
|
+
- Variabila de mediu `WHISPER_GPU_DEVICE`, iar `gpu_device` este acum transmis prin `generate_subtitles` și prin trecerea de detectare a limbii (anterior doar `transcribe_audio`). `check_config` raportează dispozitivul activ. `check_system` nu mai raportează greșit o problemă de driver atunci când `wmic` (depreciat în Windows 11 24H2+) nu returnează nimic.
|
|
112
135
|
|
|
113
|
-
|
|
136
|
+
**Calitate:**
|
|
137
|
+
- O suită de teste unitare `node:test` peste logica pură (izolarea căilor, cheierea barierei, scrieri atomice, coerciția intrărilor, estimarea expirării), zero dependențe adăugate, plus un flux de lucru CI GitHub Actions care o rulează la fiecare push/PR.
|
|
114
138
|
|
|
115
|
-
|
|
139
|
+
**Identificat pentru o versiune viitoare:** o cale de model persistentă (de ex. `whisper-server` din whisper.cpp) pentru a elimina costul de reîncărcare a modelului plătit la fiecare transcriere — un câștig mare de debit pentru lucrul în lot/de arhivă.
|
|
116
140
|
|
|
117
141
|
---
|
|
118
142
|
|
|
119
|
-
##
|
|
143
|
+
## Planificat — v2.5.0: Migrare la Bun
|
|
120
144
|
|
|
121
|
-
|
|
145
|
+
Migrează runtime-ul de la Node.js la [Bun](https://bun.sh).
|
|
122
146
|
|
|
123
|
-
|
|
147
|
+
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.
|
|
148
|
+
|
|
149
|
+
**Ce se schimbă:**
|
|
150
|
+
- Elimină pasul de build `tsc` și directorul `dist/`
|
|
151
|
+
- Utilizatorii rulează direct codul sursă TypeScript
|
|
152
|
+
- `tsconfig.json` devine opțional
|
|
153
|
+
- Scripturi `package.json` actualizate
|
|
154
|
+
- Flux de lucru publicare npm actualizat
|
|
155
|
+
|
|
156
|
+
**Ce nu se schimbă:**
|
|
157
|
+
- Codul sursă `src/index.ts` — Bun este compatibil cu TypeScript existent și API-urile Node.js integrate
|
|
158
|
+
- Tot comportamentul instrumentelor și formatele de ieșire
|
|
159
|
+
- Configurația Claude Desktop pentru utilizatorii finali
|
|
124
160
|
|
|
125
|
-
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Planificat — v2.6.0: Formate de ieșire îmbunătățite pentru integrarea instrumentelor externe
|
|
126
164
|
|
|
127
|
-
|
|
165
|
+
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.
|
|
166
|
+
|
|
167
|
+
---
|
|
128
168
|
|
|
129
|
-
## Planificat — v2.
|
|
169
|
+
## Planificat — v2.7.0: Modul de transcriere live din microfon
|
|
130
170
|
|
|
131
|
-
|
|
132
|
-
Ieșire WebVTT (`.vtt`) împreună cu SRT. Standard web folosit de YouTube, HTML5 `<video>` și majoritatea playerelor moderne.
|
|
171
|
+
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
172
|
|
|
134
|
-
|
|
135
|
-
|
|
173
|
+
**Constrângeri de proiectare:**
|
|
174
|
+
- Selecția dispozitivului trebuie să fie explicită — fără captare silențioasă a dispozitivului implicit
|
|
175
|
+
- Utilizatorul trebuie să poată opri fluxul printr-o interacțiune Claude Desktop
|
|
176
|
+
- Nu trebuie să intre în conflict cu constrângerea unei singure instanțe whisper simultan
|
|
177
|
+
- Compromisul latență vs precizie trebuie să fie configurabil de utilizator
|
|
136
178
|
|
|
137
|
-
|
|
138
|
-
Ieșire CSV (`.csv`) prin `-ocsv`. Date tabulare structurate cu sincronizare segmente.
|
|
179
|
+
**Status:** Faza de proiectare. Depinde de un API de streaming stabil în whisper.cpp.
|
|
139
180
|
|
|
140
181
|
---
|
|
141
182
|
|
|
142
183
|
## Planificat — Versiuni viitoare
|
|
143
184
|
|
|
144
185
|
### TinyDiarize
|
|
145
|
-
Suport pentru indicatorul `--tinydiarize` cu variante de model care suportă `tdrz
|
|
186
|
+
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.
|
|
187
|
+
|
|
188
|
+
**Status:** Planificat. Depinde de `download_model` care suportă variantele de model tdrz.
|
|
146
189
|
|
|
147
190
|
### Transcriere URL YouTube
|
|
148
|
-
Transcriere directă din URL-uri YouTube prin yt-dlp. Necesită yt-dlp instalat și în PATH.
|
|
191
|
+
Transcriere directă din URL-uri YouTube prin yt-dlp. Descarcă audio și transcrie într-un singur pas. Necesită yt-dlp instalat și în PATH.
|
|
192
|
+
|
|
193
|
+
**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
194
|
|
|
150
195
|
### Instrumente flux de lucru proiect video
|
|
151
|
-
Pentru utilizatorii care gestionează proiecte mari de editare video cu directoare de clipuri sursă și editate
|
|
196
|
+
Pentru utilizatorii care gestionează proiecte mari de editare video cu directoare de clipuri sursă și editate:
|
|
197
|
+
|
|
198
|
+
1. Scanează directorul sursă și subdirectorul de clipuri
|
|
199
|
+
2. Potrivire fuzzy a transcrierilor clipurilor editate față de transcrierile sursă pentru a localiza punctele de origine
|
|
200
|
+
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
|
|
201
|
+
4. Căutare transcrieri în directorul proiectului cu rezultate în coduri de timp
|
|
202
|
+
|
|
203
|
+
**Constrângeri de proiectare:**
|
|
204
|
+
- Fișierele sursă nu sunt **niciodată redenumite sau modificate**
|
|
205
|
+
- Toate redenumirile necesită **confirmarea explicită a utilizatorului**
|
|
206
|
+
- Căutarea este un instrument independent, utilizabil independent
|
|
207
|
+
- Analiza și potrivirea au loc local — Claude este invocat doar când utilizatorul revizuiește rezultatele, minimizând apelurile API
|
|
208
|
+
|
|
209
|
+
**Status:** Faza de proiectare.
|
|
152
210
|
|
|
153
211
|
### Diarizare vorbitori (pyannote-audio)
|
|
154
|
-
Diarizare completă mono cu etichete ID vorbitor
|
|
212
|
+
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.
|
|
213
|
+
|
|
214
|
+
**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ă.
|
|
215
|
+
|
|
216
|
+
**Status:** Funcție avansată opțională cu propria documentație de configurare. Nu este inclusă în pachetul principal.
|
|
155
217
|
|
|
156
218
|
### Traducere în limbi non-engleze
|
|
157
219
|
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
220
|
|
|
221
|
+
**Opțiuni luate în considerare:** LibreTranslate (auto-găzduit, local prioritar), traducere LLM local sau documentație explicită în afara domeniului.
|
|
222
|
+
|
|
223
|
+
**Status:** Amânat în așteptarea deciziei de proiectare privind local prioritar vs dependența API.
|
|
224
|
+
|
|
159
225
|
### Curățare și formatare transcrieri
|
|
160
|
-
Pipeline de post-procesare:
|
|
226
|
+
Pipeline de post-procesare:
|
|
227
|
+
- Eliminarea cuvintelor de umplutură și a pornirilor false (opțional, controlat de utilizator)
|
|
228
|
+
- Pauze de paragraf la granițele naturale ale subiectelor
|
|
229
|
+
- Formatare conștientă de vorbitor combinată cu ieșire diarizare
|
|
230
|
+
- Export în PDF sau DOCX
|
|
231
|
+
|
|
232
|
+
**Status:** Planificat. Varianta conștientă de vorbitor depinde de diarizare.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Licențiere
|
|
237
|
+
|
|
238
|
+
whisper-windows-mcp folosește licențiere duală.
|
|
239
|
+
|
|
240
|
+
**Utilizare non-comercială:** MIT — gratuit pentru uz personal, educațional și non-comercial. Vezi [LICENSE](LICENSE).
|
|
241
|
+
|
|
242
|
+
**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
243
|
|
|
162
244
|
---
|
|
163
245
|
|
|
164
246
|
## Distribuție
|
|
165
247
|
|
|
166
|
-
Disponibil pe [npm](https://www.npmjs.com/package/whisper-windows-mcp), [mcpservers.org](https://mcpservers.org)
|
|
248
|
+
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
249
|
|
|
168
250
|
---
|
|
169
251
|
|
|
170
252
|
## Documentație multilingvă
|
|
171
253
|
|
|
172
|
-
|
|
254
|
+
După fiecare versiune, următoarele fișiere trebuie actualizate pentru a corespunde documentelor în engleză:
|
|
173
255
|
|
|
174
256
|
**Japoneză (`*.ja.md`)** — `README.ja.md` / `TROUBLESHOOTING.ja.md` / `ROADMAP.ja.md` / `PRIVACY.ja.md` / `SECURITY.ja.md`
|
|
175
257
|
|