Voz a comandos o texto sin conexión en todo el sistema, sistema conectable¶
Servicio SL5 Aura: características y compatibilidad del sistema operativo¶
¡Bienvenido al Servicio SL5 Aura! Este documento proporciona una descripción general rápida de nuestras funciones clave y su compatibilidad con el sistema operativo.
Aura no es sólo un transcriptor; es un potente motor de procesamiento fuera de línea que transforma su voz en acciones y texto precisos.
Es un asistente completo fuera de línea creado sobre Vosk y LanguageTool, diseñado para una máxima personalización a través de un sistema de reglas conectable y un motor de secuencias de comandos dinámico.
Traducciones: Este documento también existe en other languages.
Nota: Muchos textos son traducciones generadas automáticamente de la documentación original en inglés y están destinados únicamente a proporcionar orientación general. En caso de discrepancias o ambigüedades, siempre prevalecerá la versión en inglés. ¡Agradecemos la ayuda de la comunidad para mejorar esta traducción!
(https://skipvids.com/?v=tEijy8WRFCI)
Características clave¶
Sin conexión y privado: 100% local. Ningún dato sale nunca de su máquina.
Motor de scripting dinámico: Vaya más allá del reemplazo de texto. Las reglas pueden ejecutar secuencias de comandos Python personalizadas (
on_match_exec) para realizar acciones avanzadas como llamar a API (por ejemplo, buscar en Wikipedia), interactuar con archivos (por ejemplo, administrar una lista de tareas pendientes) o generar contenido dinámico (por ejemplo, un saludo por correo electrónico contextual).Motor de transformación de alto control: Implementa un proceso de procesamiento altamente personalizable y basado en configuración. La prioridad de las reglas, la detección de comandos y las transformaciones de texto están determinadas exclusivamente por el orden secuencial de las reglas en Fuzzy Maps, lo que requiere configuración, no codificación.
Uso conservador de RAM: Administra de forma inteligente la memoria, precargando modelos solo si hay suficiente RAM libre disponible, lo que garantiza que otras aplicaciones (como los juegos de PC) siempre tengan prioridad.
Multiplataforma: Funciona en Linux, macOS y Windows.
Totalmente automatizado: Administra su propio servidor LanguageTool (pero también puede usar uno externo).
Increíblemente rápido: El almacenamiento en caché inteligente garantiza notificaciones instantáneas de “escucha…” y un procesamiento rápido.
Documentación¶
Para obtener una referencia técnica completa, incluidos todos los módulos y scripts, visite nuestra página de documentación oficial. Se genera automáticamente y siempre está actualizado.
Estado de compilación¶
Lea esto en otros idiomas:
🇬🇧 English | 🇸🇦 العربية | 🇩🇪 Deutsch | 🇪🇸 Español | 🇫🇷 Français | 🇮🇳 हिन्दी | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇵🇱 Polski | 🇵🇹 Português | 🇧🇷 Português Brasil | 🇨🇳 简体中文
Instalación¶
La configuración es un proceso de dos pasos:
Clona este repositorio en tu computadora.
Ejecute el script de configuración única para su sistema operativo.
Los scripts de configuración manejan todo: dependencias del sistema, entorno Python y descarga de los modelos y herramientas necesarios (~4 GB) directamente desde nuestras versiones de GitHub para obtener la máxima velocidad.
Para Linux, macOS y Windows¶
Abra una terminal en el directorio raíz del proyecto y ejecute el script para su 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¶
Ejecute el script de configuración con privilegios de administrador “Ejecutar con PowerShell”.
Instale una herramienta para leer y ejecutar, p.e. CopyQ o AutoHotkey v2. Esto es necesario para el observador de escritura de texto.
Uso¶
1. Iniciar los servicios¶
En Linux y macOS¶
Un único script se encarga de todo. Inicia el servicio de dictado principal y el observador de archivos automáticamente en segundo plano.
# Run this from the project's root directory
./scripts/restart_venv_and_run-server.sh
En Windows¶
Iniciar el servicio es un proceso manual de dos pasos:
Inicie el servicio principal: Ejecute
start_dictation_v2.0.bat. o iniciar desde.venvel servicio conpython3
2. Configura tu tecla de acceso rápido¶
Para activar el dictado, necesita una tecla de acceso rápido global que cree un archivo específico. Recomendamos encarecidamente la herramienta multiplataforma CopyQ.
Nuestra recomendación: CopyQ¶
Cree un nuevo comando en CopyQ con un acceso directo global.
Comando para Linux/macOS:
touch /tmp/sl5_record.trigger
Comando para Windows cuando se usa CopyQ:
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()
);
}
Comando para Windows cuando se usa AutoHotkey:
; trigger-hotkeys.ahk
; AutoHotkey v2 Skript
#SingleInstance Force ; Stellt sicher, dass nur eine Instanz des Skripts läuft
;===================================================================
; Hotkey zum Auslösen des Aura Triggers
; Drücke Strg + Alt + T, um die Trigger-Datei zu schreiben.
;===================================================================
f9::
f10::
f11::
{
local TriggerFile := "c:\tmp\sl5_record.trigger"
FileAppend("t", TriggerFile)
ToolTip("Aura Trigger ausgelöst!")
SetTimer(() => ToolTip(), -1500)
}
3. ¡Empieza a dictar!¶
Haga clic en cualquier campo de texto, presione la tecla de acceso rápido y aparecerá una notificación “Escuchando…”. Habla con claridad y luego haz una pausa. El texto corregido se escribirá por usted.
Configuración avanzada (opcional)¶
Puede personalizar el comportamiento de la aplicación creando un archivo de configuración local.
Navegue hasta el directorio
config/.Cree una copia de
settings_local.py_Example.txty cámbiele el nombre asettings_local.py.Edite
settings_local.pypara anular cualquier configuración del archivo principalconfig/settings.py.
Este archivo settings_local.py es (tal vez) ignorado por Git, por lo que sus cambios personales (tal vez) no serán sobrescritos por las actualizaciones.
Estructura y lógica del complemento¶
La modularidad del sistema permite una extensión sólida a través del directorio plugins/.
El motor de procesamiento se adhiere estrictamente a una Cadena de prioridad jerárquica:
Orden de carga de módulos (prioridad alta): Las reglas cargadas desde los paquetes de idiomas principales (de-DE, en-US) tienen prioridad sobre las reglas cargadas desde el directorio plugins/ (que se cargan en último lugar alfabéticamente).
Orden en el archivo (microprioridad): Dentro de cualquier archivo de mapa determinado (FUZZY_MAP_pre.py), las reglas se procesan estrictamente por número de línea (de arriba a abajo).
Esta arquitectura garantiza que las reglas centrales del sistema estén protegidas, mientras que las reglas específicas del proyecto o contextuales (como las de CodeIgniter o los controles del juego) se pueden agregar fácilmente como extensiones de baja prioridad a través de complementos.
Scripts clave para usuarios de Windows¶
Aquí hay una lista de los scripts más importantes para configurar, actualizar y ejecutar la aplicación en un sistema Windows.
Configuración y actualización¶
setup/setup.bat: El script principal para la configuración inicial única del entorno.or
Ejecute powershell -Command "Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force; .\setup\windows11_setup.ps1"update.bat: ejecútelos desde la carpeta del proyecto obtenga el código y las dependencias más recientes.
Ejecutando la aplicación¶
start_dictation_v2.0.bat: un script principal para iniciar el servicio de dictado.
Scripts principales y auxiliares¶
dictation_service.py: el servicio principal de Python (generalmente iniciado por uno de los scripts anteriores).get_suggestions.py: un script auxiliar para funcionalidades específicas.
🚀 Funciones clave y compatibilidad con el sistema operativo¶
Leyenda de compatibilidad del sistema operativo:
🐧 Linux (por ejemplo, Arch, Ubuntu)
🍏 macOS
🪟 Windows
📱 Android (para funciones específicas de dispositivos móviles)
Motor principal de conversión de voz a texto (Aura)¶
Nuestro motor principal para el reconocimiento de voz y el procesamiento de audio sin conexión.
Aura-Core/ 🐧 🍏 🪟
├─ dictation_service.py (Servicio principal de Python que orquesta Aura) 🐧 🍏 🪟
├┬ Recarga en vivo (Configuración y mapas) 🐧 🍏 🪟
│├ Procesamiento y corrección de texto/ Agrupado por idioma (p. ej., de-DE, en-US, …)
│├ 1. normalize_punctuation.py (Estandariza la puntuación post-transcripción) 🐧 🍏 🪟
│├ 2. Precorrección inteligente (FuzzyMap Pre - The Primary Command Layer) 🐧 🍏 🪟
││ * Ejecución dinámica de secuencias de comandos: Las reglas pueden activar secuencias de comandos Python personalizadas (on_match_exec) para realizar acciones avanzadas como llamadas API, E/S de archivos o generar respuestas dinámicas.
││ * Ejecución en cascada: Las reglas se procesan secuencialmente y sus efectos son acumulativos. Las reglas posteriores se aplican al texto modificado por reglas anteriores.
││ * Criterio de detención de prioridad más alta: Si una regla logra una Coincidencia completa (^…$), todo el proceso de procesamiento para ese token se detiene inmediatamente. Este mecanismo es fundamental para implementar comandos de voz confiables.
│├ 3. correct_text_by_languagetool.py (Integra LanguageTool para corrección de gramática/estilo) 🐧 🍏 🪟
│└ 4. Postcorrección inteligente (FuzzyMap)– Refinamiento post-LT 🐧 🍏 🪟
││ * Se aplica después de LanguageTool para corregir resultados específicos de LT. Sigue la misma lógica estricta de prioridad en cascada que la capa de corrección previa.
││ * Ejecución dinámica de secuencias de comandos: Las reglas pueden activar secuencias de comandos Python personalizadas (on_match_exec) para realizar acciones avanzadas como llamadas API, E/S de archivos o generar respuestas dinámicas.
││ * Refuerzo difuso: La Comprobación de similitud difusa (controlada por un umbral, por ejemplo, 85%) actúa como la capa de corrección de errores de menor prioridad. Solo se ejecuta si toda la ejecución de la regla determinista/en cascada anterior no pudo encontrar una coincidencia (current_rule_matched es False), lo que optimiza el rendimiento evitando comprobaciones difusas lentas siempre que sea posible.
├┬ Gestión de modelos/
│├─ prioritize_model.py (Optimiza la carga/descarga del modelo según el uso) 🐧 🍏 🪟
│└─ setup_initial_model.py (Configura la configuración del modelo por primera vez) 🐧 🍏 🪟
├─ Tiempo de espera de VAD adaptable 🐧 🍏 🪟
├─ Tecla de acceso rápido adaptable (Iniciar/Detener) 🐧 🍏 🪟
└─ Cambio instantáneo de idioma (Experimental mediante precarga del modelo) 🐧 🍏
Utilidades del sistema/
├┬ Administración del servidor LanguageTool/
│├─ start_languagetool_server.py (Inicializa el servidor local de LanguageTool) 🐧 🍏 🪟
│└─ stop_languagetool_server.py (Cierra el servidor LanguageTool) 🐧 🍏
├─ monitor_mic.sh (por ejemplo, para usar con auriculares sin usar teclado ni monitor) 🐧 🍏 🪟
Gestión de modelos y paquetes¶
Herramientas para un manejo sólido de modelos de lenguaje grandes.
Gestión de modelos/ 🐧 🍏 🪟
├─ Descargador robusto de modelos (fragmentos de lanzamiento de GitHub) 🐧 🍏 🪟
├─ split_and_hash.py (Utilidad para que los propietarios de repositorios divida archivos grandes y genere sumas de verificación) 🐧 🍏 🪟
└─ download_all_packages.py (Herramienta para que los usuarios finales descarguen, verifiquen y vuelvan a ensamblar archivos de varias partes) 🐧 🍏 🪟
Ayudantes de desarrollo e implementación¶
Scripts para la configuración, prueba y ejecución del servicio del entorno.
DevHelpers/
├┬ Gestión del entorno virtual/
│├ scripts/restart_venv_and_run-server.sh (Linux/macOS) 🐧 🍏
│└ scripts/restart_venv_and_run-server.ahk (Windows) 🪟
├┬ Integración de dictado en todo el sistema/
│├ Integración Vosk-System-Listener 🐧 🍏 🪟
│├ scripts/monitor_mic.sh (monitoreo de micrófono específico de Linux) 🐧
│└ scripts/type_watcher.ahk (AutoHotkey escucha el texto reconocido y lo escribe en todo el sistema) 🪟
└─ Automatización CI/CD/
└─ Flujos de trabajo de GitHub ampliados (instalación, pruebas, implementación de documentos) 🐧 🍏 🪟 (Se ejecuta en GitHub Actions)
Próximas funciones/experimentales¶
Funciones actualmente en desarrollo o en estado de borrador.
Características experimentales/
├─ ENTER_AFTER_DICTATION_REGEX Ejemplo de regla de activación “(ExampleAplicationThatNotExist|Pi, tu IA personal)” 🐧
├┬Complementos
│╰┬ Live Lazy-Reload (*) 🐧 🍏 🪟
(Los cambios en la activación/desactivación del complemento y sus configuraciones se aplican en la siguiente ejecución del procesamiento sin reiniciar el servicio.)
│ ├ comandos git (control de voz para enviar comandos git) 🐧 🍏 🪟
│ ├ wannweil (Mapa de ubicación Alemania-Wannweil) 🐧 🍏 🪟
│ ├ Complemento de póquer (Draft) (Control por voz para aplicaciones de póquer) 🐧 🍏 🪟
│ └ Complemento 0 A.D. (borrador) (control por voz para el juego 0 A.D.) 🐧
├─ Salida de sonido al iniciar o finalizar una sesión (Descripción pendiente) 🐧
├─ Salida de voz para personas con discapacidad visual (Descripción pendiente) 🐧 🍏 🪟
└─ Prototipo de Android SL5 Aura (Aún no está completamente fuera de línea) 📱
(Nota: Distribuciones de Linux específicas como Arch (ARL) o Ubuntu (UBT) están cubiertas por el símbolo general de Linux 🐧. Es posible que se cubran distinciones detalladas en las guías de instalación).
{ find . -maxdepth 1 -type f \( -name "dictation_service.py" -o -name "get_suggestions.py" \) ; find . -path "./.venv" -prune -o -path "./.env" -prune -o -path "./backup" -prune -o -path "./LanguageTool-6.6" -prune -o -type f \( -name "*.bat" -o -name "*.ahk" -o -name "*.ps1" \) -print | grep -vE "make.bat|notification_watcher.ahk"; }
bit mira gráficamente para ver qué hay detrás:¶

Modelos usados:¶
Recomendación: utilice modelos de Mirror https://github.com/sl5net/SL5-aura-service/releases/tag/v0.2.0.1 (probablemente más rápido)
Estos modelos comprimidos deben guardarse en la carpeta modelos/
mv vosk-model-*.zip modelos/
Modelo |
Tamaño |
Tasa de error de palabra/Velocidad |
Notas |
Licencia |
|---|---|---|---|---|
1,8G |
5.69 (prueba de limpieza de librispeech) |
Modelo genérico preciso en inglés de EE. UU. |
Apache 2.0 |
|
1,9G |
9,83 (prueba Tuda-de) |
Gran modelo alemán para telefonía y servidor |
Apache 2.0 |
Esta tabla proporciona una descripción general de los diferentes modelos de Vosk, incluido su tamaño, velocidad o tasa de error de palabras, notas e información de licencia.
Modelos Vosk: Vosk-Model List
Herramienta de idioma:
(6.6) XMLDLINK34X
Licencia de LanguageTool: GNU Lesser General Public License (LGPL) v2.1 or later
Apoye el proyecto¶
Si encuentra útil esta herramienta, ¡considere invitarnos a un café! Su apoyo ayuda a impulsar mejoras futuras.
