Voz offline em todo o sistema para comandos ou texto, sistema conectável¶
Serviço SL5 Aura - Recursos e compatibilidade de sistema operacional¶
Bem-vindo ao Serviço SL5 Aura! Este documento fornece uma visão geral rápida dos nossos principais recursos e da compatibilidade do sistema operacional.
Aura não é apenas uma transcritora; é um poderoso mecanismo de processamento off-line que transforma sua voz em ações e textos precisos.
É um assistente offline completo baseado em Vosk e LanguageTool, projetado para personalização definitiva por meio de um sistema de regras conectável e um mecanismo de script dinâmico.
Traduções: Este documento também existe em other languages.
Nota: Muitos textos são traduções geradas automaticamente da documentação original em inglês e destinam-se apenas a orientação geral. Em caso de discrepâncias ou ambiguidades, prevalece sempre a versão em inglês. Agradecemos a ajuda da comunidade para melhorar esta tradução!
( https://skipvids.com/?v=tEijy8WRFCI )
Principais recursos¶
Off-line e privado: 100% local. Nenhum dado sai da sua máquina.
Mecanismo de script dinâmico: Vá além da substituição de texto. As regras podem executar scripts Python personalizados (
on_match_exec) para executar ações avançadas, como chamar APIs (por exemplo, pesquisar na Wikipedia), interagir com arquivos (por exemplo, gerenciar uma lista de tarefas) ou gerar conteúdo dinâmico (por exemplo, uma saudação por e-mail com reconhecimento de contexto).Mecanismo de transformação de alto controle: Implementa um pipeline de processamento altamente personalizável e orientado por configuração. A prioridade das regras, a detecção de comandos e as transformações de texto são determinadas puramente pela ordem sequencial das regras nos Mapas Fuzzy, exigindo configuração, não codificação.
Uso conservador de RAM: Gerencia a memória de forma inteligente, pré-carregando modelos apenas se houver RAM livre suficiente disponível, garantindo que outros aplicativos (como jogos de PC) sempre tenham prioridade.
Plataforma cruzada: Funciona em Linux, macOS e Windows.
Totalmente Automatizado: Gerencia seu próprio servidor LanguageTool (mas você também pode usar um externo).
Extremamente rápido: O cache inteligente garante notificações instantâneas de “escuta…” e processamento rápido.
Documentação¶
Para uma referência técnica completa, incluindo todos os módulos e scripts, visite nossa página de documentação oficial. Ele é gerado automaticamente e está sempre atualizado.
Status da compilação¶
Leia isto em outros idiomas:
🇬🇧 English | 🇸🇦 العربية | 🇩🇪 Deutsch | 🇪🇸 Español | 🇫🇷 Français | 🇮🇳 हिन्दी | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇵🇱 Polski | 🇵🇹 Português | 🇧🇷 Português Brasil | 🇨🇳 简体中文
Instalação¶
A configuração é um processo de duas etapas:
Clone este repositório em seu computador.
Execute o script de configuração único para seu sistema operacional.
Os scripts de configuração cuidam de tudo: dependências do sistema, ambiente Python e download dos modelos e ferramentas necessários (~ 4 GB) diretamente de nossas versões do GitHub para velocidade máxima.
Para Linux e macOS e Windows¶
Abra um terminal no diretório raiz do projeto e execute o script para o seu sistema:
# For Ubuntu/Debian, Manjaro/Arch, macOs or other derivatives
bash setup/{your-os}_setup.sh
# For Windows in Admin-Powershell
setup/windows11_setup.ps1
Para Windows¶
Execute o script de configuração com privilégios de administrador “Executar com PowerShell”.
Instale uma ferramenta para leitura e execução, por exemplo. CopyQ ou AutoHotkey v2. Isso é necessário para o observador de digitação de texto.
Uso¶
1. Inicie os serviços¶
No Linux e macOS¶
Um único script cuida de tudo. Ele inicia o serviço principal de ditado e o observador de arquivos automaticamente em segundo plano.
# Run this from the project's root directory
./scripts/restart_venv_and_run-server.sh
No Windows¶
Iniciar o serviço é um processo manual de duas etapas:
Inicie o serviço principal: Execute
start_dictation_v2.0.bat. ou inicie em.venvo serviço compython3
2. Configure sua tecla de atalho¶
Para acionar o ditado, você precisa de uma tecla de atalho global que crie um arquivo específico. Recomendamos enfaticamente a ferramenta multiplataforma CopyQ.
Nossa recomendação: CopyQ¶
Crie um novo comando no CopyQ com um atalho global.
Comando para Linux/macOS:
touch /tmp/sl5_record.trigger
Comando para Windows ao usar CopyQ: CODE_BLOCO_3
Comando para Windows ao usar AutoHotkey:
copyq:
var filePath = 'c:/tmp/sl5_record.trigger';
var f = File(filePath);
if (f.openAppend()) {
f.close();
} else {
popup(
'error',
'cant read or open:\n' + filePath
+ '\n' + f.errorString()
);
}
3. Comece a ditar!¶
Clique em qualquer campo de texto, pressione a tecla de atalho e uma notificação “Ouvindo…” aparecerá. Fale claramente e depois faça uma pausa. O texto corrigido será digitado para você.
Configuração avançada (opcional)¶
Você pode personalizar o comportamento do aplicativo criando um arquivo de configurações locais.
Navegue até o diretório
config/.Crie uma cópia de
settings_local.py_Example.txte renomeie-a parasettings_local.py.Edite
settings_local.pypara substituir qualquer configuração do arquivo principalconfig/settings.py.
Este arquivo settings_local.py é (talvez) ignorado pelo Git, então suas alterações pessoais (talvez) não serão substituídas por atualizações.
Estrutura e lógica do plug-in¶
A modularidade do sistema permite uma extensão robusta através do diretório plugins/.
O mecanismo de processamento segue estritamente uma Cadeia de Prioridade Hierárquica:
Ordem de carregamento do módulo (alta prioridade): As regras carregadas dos pacotes de idiomas principais (de-DE, en-US) têm precedência sobre as regras carregadas do diretório plugins/ (que são carregadas por último em ordem alfabética).
Ordem no arquivo (Micro Prioridade): Dentro de qualquer arquivo de mapa (FUZZY_MAP_pre.py), as regras são processadas estritamente por número de linha (de cima para baixo).
Essa arquitetura garante que as regras básicas do sistema sejam protegidas, enquanto regras específicas do projeto ou sensíveis ao contexto (como aquelas para CodeIgniter ou controles de jogos) podem ser facilmente adicionadas como extensões de baixa prioridade por meio de plug-ins.
Scripts principais para usuários do Windows¶
Aqui está uma lista dos scripts mais importantes para configurar, atualizar e executar o aplicativo em um sistema Windows.
Configuração e atualização¶
setup/setup.bat: O script principal para a configuração inicial única do ambiente.or
Executar powershell -Command "Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force; .\setup\windows11_setup.ps1"update.bat: Execute-os na pasta do projeto obtenha o código e as dependências mais recentes.
Executando o aplicativo¶
start_dictation_v2.0.bat: Um script primário para iniciar o serviço de ditado.
Scripts principais e auxiliares¶
dictation_service.py: O serviço principal do Python (geralmente iniciado por um dos scripts acima).get_suggestions.py: Um script auxiliar para funcionalidades específicas.
🚀 Principais recursos e compatibilidade de sistema operacional¶
Legenda para compatibilidade de sistema operacional:
🐧 Linux (por exemplo, Arch, Ubuntu)
🍏 macOS
🪟 Windows
📱 Android (para recursos específicos para dispositivos móveis)
Motor principal de conversão de fala em texto (Aura)¶
Nosso principal mecanismo para reconhecimento de fala offline e processamento de áudio.
Aura-Core/ 🐧 🍏 🪟
├─ dictation_service.py (principal serviço Python orquestrando Aura) 🐧 🍏 🪟
├┬ Live Hot-Reload (Configuração e Mapas) 🐧 🍏 🪟
│├ Processamento e correção de texto/ Agrupado por idioma (por exemplo, de-DE, en-US, …)
│├ 1. normalize_punctuation.py (padroniza a pontuação pós-transcrição) 🐧 🍏 🪟
│├ 2. Pré-correção inteligente (FuzzyMap Pre - The Primary Command Layer) 🐧 🍏 🪟
││ * Execução dinâmica de script: As regras podem acionar scripts Python personalizados (on_match_exec) para executar ações avançadas como chamadas de API, E/S de arquivo ou gerar respostas dinâmicas.
││ * Execução em Cascata: As regras são processadas sequencialmente e seus efeitos são cumulativos. Regras posteriores se aplicam ao texto modificado por regras anteriores.
││ * Critério de parada de prioridade mais alta: Se uma regra atingir uma Correspondência completa (^…$), todo o pipeline de processamento desse token será interrompido imediatamente. Este mecanismo é fundamental para implementar comandos de voz confiáveis.
│├ 3. correct_text_by_languagetool.py (Integra o LanguageTool para correção de gramática/estilo) 🐧 🍏 🪟
│└ 4. Pós-Correção Inteligente (FuzzyMap)– Refinamento Pós-LT 🐧 🍏 🪟
││ * Aplicado após o LanguageTool para corrigir saídas específicas do LT. Segue a mesma lógica estrita de prioridade em cascata da camada de pré-correção.
││ * Execução dinâmica de script: As regras podem acionar scripts Python personalizados (on_match_exec) para executar ações avançadas, como chamadas de API, E/S de arquivo ou gerar respostas dinâmicas.
││ * Fuzzy Fallback: A Verificação de similaridade difusa (controlada por um limite, por exemplo, 85%) atua como a camada de correção de erros de prioridade mais baixa. Ele só será executado se toda a execução anterior da regra determinística/em cascata não conseguir encontrar uma correspondência (current_rule_matched é False), otimizando o desempenho evitando verificações difusas lentas sempre que possível.
├┬ Gerenciamento de modelo/
│├─ prioritize_model.py (otimiza o carregamento/descarregamento do modelo com base no uso) 🐧 🍏 🪟
│└─ setup_initial_model.py (configura a configuração inicial do modelo) 🐧 🍏 🪟
├─ Tempo limite do VAD adaptável 🐧 🍏 🪟
├─ Tecla de atalho adaptativa (Iniciar/Parar) 🐧 🍏 🪟
└─ Troca instantânea de idioma (Experimental via pré-carregamento de modelo) 🐧 🍏
Utilitários do Sistema/
├┬ Gerenciamento de servidor LanguageTool/
│├─ start_languagetool_server.py (inicializa o servidor LanguageTool local) 🐧 🍏 🪟
│└─ stop_languagetool_server.py (Desliga o servidor LanguageTool) 🐧 🍏
├─ monitor_mic.sh (por exemplo, para uso com fone de ouvido sem usar teclado e monitor) 🐧 🍏 🪟
Gerenciamento de modelos e pacotes¶
Ferramentas para manipulação robusta de modelos de linguagem grandes.
Gerenciamento de modelo/ 🐧 🍏 🪟
├─ Downloader de modelo robusto (pedaços de lançamento do GitHub) 🐧 🍏 🪟
├─ split_and_hash.py (Utilitário para proprietários de repositórios dividirem arquivos grandes e gerarem somas de verificação) 🐧 🍏 🪟
└─ download_all_packages.py (ferramenta para usuários finais baixarem, verificarem e remontarem arquivos de várias partes) 🐧 🍏 🪟
Ajudantes de desenvolvimento e implantação¶
Scripts para configuração de ambiente, teste e execução de serviço.
DevHelpers/
├┬ Gerenciamento de ambiente virtual/
│├ scripts/restart_venv_and_run-server.sh (Linux/macOS) 🐧 🍏
│└ scripts/restart_venv_and_run-server.ahk (Windows) 🪟
├┬ Integração de ditado em todo o sistema/
│├ Integração Vosk-System-Listener 🐧 🍏 🪟
│├ scripts/monitor_mic.sh (monitoramento de microfone específico do Linux) 🐧
│└ scripts/type_watcher.ahk (AutoHotkey escuta texto reconhecido e digita-o em todo o sistema) 🪟
└─ Automação CI/CD/
└─ Fluxos de trabalho expandidos do GitHub (instalação, teste, implantação de documentos) 🐧 🍏 🪟 (Executado em ações do GitHub)
Recursos futuros/experimentais¶
Recursos atualmente em desenvolvimento ou em status de rascunho.
Recursos Experimentais/
├─ ENTER_AFTER_DICTATION_REGEX Exemplo de regra de ativação “(ExampleAplicationThatNotExist|Pi, sua IA pessoal)” 🐧
├┬Plugins
│╰┬ Live Lazy-Reload (*) 🐧 🍏 🪟
(Alterações na ativação/desativação do plug-in e suas configurações são aplicadas na próxima execução de processamento sem reinicialização do serviço.)
│ ├ comandos git (Controle de voz para enviar comandos git) 🐧 🍏 🪟
│ ├ wannweil (Mapa para localização Alemanha-Wannweil) 🐧 🍏 🪟
│ ├ Poker Plugin (Draft) (Controle de voz para aplicativos de pôquer) 🐧 🍏 🪟
│ └ Plugin 0 A.D. (Draft) (Controle de voz para jogo 0 A.D.) 🐧
├─ Saída de som ao iniciar ou encerrar uma sessão (descrição pendente) 🐧
├─ Saída de fala para deficientes visuais (Descrição pendente) 🐧 🍏 🪟
└─ Protótipo SL5 Aura Android (Ainda não totalmente offline) 📱
(Nota: Distribuições específicas do Linux como Arch (ARL) ou Ubuntu (UBT) são cobertas pelo símbolo geral do Linux 🐧. Distinções detalhadas podem ser abordadas nos guias de instalação.)
CODE_BLOCO_5
observe graficamente o que está por trás:¶

Modelos Usados:¶
Recomendação: use modelos do Mirror https://github.com/sl5net/SL5-aura-service/releases/tag/v0.2.0.1 (provavelmente mais rápido)
Estes modelos compactados devem ser salvos na pasta models/
mv vosk-model-*.zip modelos/
Modelo |
Tamanho |
Taxa/velocidade de erros de palavras |
Notas |
Licença |
|---|---|---|---|---|
1,8G |
5,69 (librisspeech test-clean) |
Modelo genérico preciso do inglês dos EUA |
Apache2.0 |
|
1,9G |
9,83 (teste Tuda-de) |
Grande modelo alemão para telefonia e servidor |
Apache2.0 |
Esta tabela fornece uma visão geral dos diferentes modelos Vosk, incluindo tamanho, taxa ou velocidade de erro de palavras, notas e informações de licença.
Modelos Vosk: Vosk-Model List
Ferramenta de Idioma:
(6.6)https://languagetool.org/download/
Licença do LanguageTool: GNU Lesser General Public License (LGPL) v2.1 or later
Apoie o Projeto¶
Se você achar esta ferramenta útil, considere comprar um café para nós! Seu apoio ajuda a impulsionar melhorias futuras.
