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!

SL5 Aura (v0.7.0.2): A Deep Dive Under the Hood – Live Coding & Core Concepts (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 >>

Estado de compilación

Linux Manjaro Linux Ubuntu Linux Suse macOS Windows 11

Documentation

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:

  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:

# 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:

  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.

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.

  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 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).

Haga clic para ver el comando utilizado para generar esta lista de scripts
{ 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:

yappi_call_graph

pydeps -v -o dependencies.svg scripts/py/func/main.py

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

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

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.

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.

ko-fi

Stripe-Buy Now