# 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](https://github.com/sl5net/SL5-aura-service/tree/master/docs).
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://www.youtube.com/watch?v=tEijy8WRFCI)
(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.
[**Go to Documentation >>**](https://sl5net.github.io/SL5-aura-service/)
### Estado de compilación
[](https://youtu.be/D9ylPBnP2aQ)
[](https://github.com/sl5net/SL5-aura-service/actions/workflows/ubuntu_setup.yml)
[](https://github.com/sl5net/SL5-aura-service/actions/workflows/suse_setup.yml)
[](https://github.com/sl5net/SL5-aura-service/actions/workflows/macos_setup.yml)
[](https://github.com/sl5net/SL5-aura-service/actions/workflows/windows11_setup_bat.yml)
[](https://sl5net.github.io/SL5-aura-service/)
**Lea esto en otros idiomas:**
[🇬🇧 English](README.md) | [🇸🇦 العربية](docs/README/README-arlang.md) | [🇩🇪 Deutsch](docs/README/README-delang.md) | [🇪🇸 Español](docs/README/README-eslang.md) | [🇫🇷 Français](docs/README/README-frlang.md) | [🇮🇳 हिन्दी](docs/README/README-hilang.md) | [🇯🇵 日本語](docs/README/README-jalang.md) | [🇰🇷 한국어](docs/README/README-kolang.md) | [🇵🇱 Polski](docs/README/README-pllang.md) | [🇵🇹 Português](docs/README/README-ptlang.md) | [🇧🇷 Português Brasil](docs/README/README-pt-BRlang.md) | [🇨🇳 简体中文](docs/README/README-zh-CNlang.md)
---
## Instalación
La configuración es un proceso de dos pasos:
1. Clona este repositorio en tu computadora.
2. 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:
```bash
# 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](https://github.com/hluk/CopyQ) o [AutoHotkey v2](https://www.autohotkey.com/)**. 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.
```bash
# 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**:
1. **Inicie el servicio principal:** Ejecute `start_dictation_v2.0.bat`. o iniciar desde `.venv` el servicio con `python3`
### 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](https://github.com/hluk/CopyQ).
#### Nuestra recomendación: CopyQ
Cree un nuevo comando en CopyQ con un acceso directo global.
**Comando para Linux/macOS:**
```bash
touch /tmp/sl5_record.trigger
```
**Comando para Windows cuando se usa [CopyQ](https://github.com/hluk/CopyQ):**
```js
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](https://AutoHotkey.com):**
```sh
; 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.
1. Navegue hasta el directorio `config/`.
2. Cree una copia de `settings_local.py_Example.txt` y cámbiele el nombre a `settings_local.py`.
3. Edite `settings_local.py` para anular cualquier configuración del archivo principal `config/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**:
1. **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).
2. **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](https://github.com/sl5net/SL5-aura-service/actions/runs/16548962826/job/46800935182) `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](../CreatingNewPluginModules-eslang.md)) 🐧 🍏 🪟
││ * **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](../advanced-scripting-eslang.md)) 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).*
Haga clic para ver el comando utilizado para generar esta lista de scripts
```bash
{ 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 |
| -------------------------------------------------------------------------------------- | ---- | --------------------------------------------------------------------------------------- | ----------------------------------------- | ---------- |
| [vosk-model-en-us-0.22](https://alphacephei.com/vosk/models/vosk-model-en-us-0.22.zip) | 1,8G | 5.69 (prueba de limpieza de librispeech)
6.05 (tedlium)
29.78 (centro de llamadas) | Modelo genérico preciso en inglés de EE. UU. | Apache 2.0 |
| [vosk-model-de-0.21](https://alphacephei.com/vosk/models/vosk-model-de-0.21.zip) | 1,9G | 9,83 (prueba Tuda-de)
24,00 (podcast)
12,82 (prueba cv)
12,42 (mls)
33,26 (mtedx) | 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](https://alphacephei.com/vosk/models)
- **Herramienta de idioma:**
(6.6) XMLDLINK34X
**Licencia de LanguageTool:** [GNU Lesser General Public License (LGPL) v2.1 or later](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)
---
## Apoye el proyecto
Si encuentra útil esta herramienta, ¡considere invitarnos a un café! Su apoyo ayuda a impulsar mejoras futuras.
[](https://ko-fi.com/C0C445TF6)
[Stripe-Buy Now](https://buy.stripe.com/3cIdRa1cobPR66P1LP5kk00)