Ir al contenido

Cómo funciona

Qué pasa entre tu palabra y la respuesta.

Una palabra de activación en el dispositivo, voz a texto mientras hablas, vía rápida o modelo local, skills, memoria y una voz propia, todo en hardware que es tuyo.

El personaje de Domia detrás de un pequeño nodo iluminado, bajo un arco con cuatro pasos: escuchar, entender, pensar, hablar

El pipeline de voz: un turno hablado

Elige un turno real y pulsa play: cada barra es una etapa de ese turno, en el momento en que ocurrió de verdad.

Este turno: primer sonido 2,2 s después de la última palabra.

Elige un turno
  • sonido
  • pensando
  • vía rápida
  • llamada a una skill

fin del habla detectado
el silencio y un modelo de turno pequeño coinciden
primer sonido
2,2 s después de la última palabra
  1. Hablas
    micrófono · se captura en el dispositivo hasta que haces una pausa
  2. Te entiende
    voz a texto · la transcripción está lista en cuanto terminas
  3. Decide
    enrutado · una orden conocida se ejecuta al momento; si no, la toma el modelo
  4. Piensa
    modelo de lenguaje · arma el prompt y luego escribe la respuesta
  5. Actúa
    se omite en este turno
  6. Habla
    texto a voz · frase a frase
  7. La oyes
    la respuesta · la reproducción empieza con la primera frase

Después del turno

  • El micrófono se reabre: responde sin más, sin palabra de activación.
  • Si hablas mientras responde, se calla y te escucha.
  • Más tarde, en reposo, reflexiona en segundo plano: ajusta su ánimo y recuerda hechos nuevos.

Los tiempos salen de la traza de cada turno capturado, en una máquina de escritorio capaz. En los benchmarks del propio proyecto en una máquina de clase hub, una conversación empieza a hablar unos 1,5 s después de que terminas, y una orden conocida en 600 a 800 ms.

Hablas
La palabra de activación y la detección de voz funcionan en el dispositivo; tu voz se captura hasta que se detecta una pausa. se captura en el dispositivo hasta que haces una pausa
Te entiende
Con un micrófono en vivo el texto se va formando mientras hablas. Estos turnos se enviaron como grabaciones, así que aquí corre justo después de la última palabra. la transcripción está lista en cuanto terminas
Decide
Una orden conocida se salta el modelo; lo demás va a él. La sección de enrutado, más abajo, muestra la decisión con tus propias frases. una orden conocida se ejecuta al momento; si no, la toma el modelo
Piensa
El prompt se arma con la persona, el ánimo actual, los hechos sobre ti, tus notas y los últimos turnos. Después las palabras salen según se generan. arma el prompt y luego escribe la respuesta
Actúa
El modelo ve una lista corta de las skills que encajan con la petición. Si llama a una, el nodo comprueba la política de esa skill, ejecuta la llamada (varias a la vez si hace falta) y responde con la respuesta propia de la skill o con una segunda pasada del modelo que lee el resultado. solo cuando el modelo decide llamar a una skill
Habla
En cuanto una frase está completa se convierte en voz, mientras el modelo sigue escribiendo la siguiente. frase a frase
La oyes
La reproducción empieza con la primera frase; las demás se encolan detrás sin pausas. la reproducción empieza con la primera frase
fin del habla detectado
el silencio y un modelo de turno pequeño coinciden
Mira los tiempos de cada turno en la consola

¿Vía rápida o modelo?

Toda petición busca primero una vía rápida: una orden conocida se resuelve al momento, sin ningún modelo. Todo lo demás va al modelo de lenguaje, que ve las skills que encajan y decide si usa alguna o simplemente responde. Prueba una frase y mira por dónde va.

Prueba una frase

apaga la luz de la cocina

¿Es una orden conocida?

Sí: Lo hace Home Assistant: apagar la luz de la cocina. En un nodo real el dispositivo responde al momento

Sí

Se resuelve sin el modelo

Se compara con las plantillas de órdenes que traen tus skills.

Lo hace Home Assistant: apagar la luz de la cocina.

En un nodo real el dispositivo responde al momento

No

El modelo decide

Ve las skills que encajan con la petición y llama a una o responde con sus propias palabras.

Las plantillas de órdenes se comprueban contra un corpus de prueba: una frase que no es una orden nunca coincidió con ninguna.

Memoria: lo que Domia recuerda

Cinco capas, todas guardadas en el nodo. Todas pueden llegar al prompt: los turnos recientes siempre, los hechos y el conocimiento cuando son relevantes, los episodios y el modelo de usuario una vez por sesión. La reflexión escribe hechos, episodios y modelo de usuario cuando está en reposo.

  1. en el prompt

    Los últimos intercambios, en el prompt.

    "Y la cocina también." Domia sabe a qué luz te refieres.

    lo escribeun turno

  2. en el prompt

    Cosas que le contaste, en el prompt cuando son relevantes.

    "La perra se llama Nala y duerme en la cocina."

    lo escribela reflexión

  3. en el prompt

    Lo que escribiste para ella (wifi, normas de la casa), en el prompt cuando es relevante.

    "El wifi de invitados es casa-guest. La basura sale el martes por la noche."

    lo escribetú

  4. en el prompt, una vez por sesión

    Resúmenes de sesiones pasadas, en el prompt una vez por sesión.

    "La semana pasada planeaste una cena para seis y pediste la lista de la compra."

    lo escribela reflexión

  5. en el prompt, una vez por sesión

    Quién eres para ella: intereses, hábitos y cuánta confianza hay.

    "Prefiere respuestas cortas y sin charla."

    lo escribela reflexión

Todo se queda en el nodo. Nada se persiste en otro nodo; el contexto viaja dentro de una petición delegada.

Turnos recientes
Una ventana deslizante con los últimos intercambios de la sesión actual. Siempre va en el prompt, así que una continuación se resuelve sin repetirte.
Hechos
Los extrae una pasada de reflexión en segundo plano, después del turno, nunca la propia respuesta. Se recuperan por relevancia con lo que acabas de decir.
Base de conocimiento
Notas que redactas en la consola o a través de la API. Se buscan por relevancia y se añaden al prompt cuando encajan con la petición.
Episodios
Un resumen breve que la reflexión escribe al terminar una sesión. Los más recientes se cargan en el prompt una vez por sesión, no se buscan en cada turno.
Modelo de usuario
Un retrato breve de ti: intereses, tendencias y preferencias. La reflexión lo actualiza entre sesiones.
Mira la pantalla Memorias de la consola

Despliegues: un dispositivo, un hub o una malla

Todos los nodos Domia funcionan con el mismo software; una plantilla de la consola decide si es una compañera independiente, un hub completo para toda una propiedad o uno de varios hubs que se reparten el trabajo. Cada flecha de abajo se queda dentro de tu red.

Elige:

Un hub escucha a través de un altavoz en cada habitación.

  • Nodo Domiahub · máquina de clase hub · Nova, Sage, Ember · memoria · guardada en este nodo
  • Home Assistant Voice PEfirmware de fábrica · vinculado a Nova
  • Sala de navegadornavegador o app · vinculado a Sage
  • Tu propia placahecho por ti · protocolo de referencia de Domia · vinculado a Ember
  • Satélite Wyomingdispositivos de la comunidad · vinculado a Nova
Nodo Domia
El mismo software que cualquier otro nodo. Su rol sale de la plantilla que aplicas en la consola, no de una compilación distinta.
Identidad
Una identidad tiene su propia voz, persona y memoria.
Identidad delegada
La persona y el contexto de Milo viajan dentro de la petición; nada se guarda en el hub B.
Palabra de activación
La palabra de activación se detecta antes que todo lo demás.
Voz a texto
En streaming, en este nodo, uno de ocho motores.
Enrutado
Una orden conocida va por la vía rápida y se ejecuta sin el modelo. Lo demás va al modelo, que recibe las skills que encajan y decide si llama a una o responde.
Modelo de lenguaje
Un modelo local servido en tu propio hardware; nada sale de tu red.
Texto a voz
Uno de seis motores, una voz por identidad.
Memoria
Memoria por identidad guardada en este nodo. Nada se guarda en un par.
Micrófono
Vale cualquier micrófono integrado o USB; el audio se queda en la máquina.
Altavoz
La respuesta se sintetiza aquí y suena en el mismo dispositivo.
Home Assistant Voice PE
Hardware de serie con su firmware de fábrica; no hay que cambiar nada.
Sala de navegador
Una sala a la que pueden unirse navegadores y apps.
Tu propia placa
Construida sobre el protocolo de referencia de Domia, para satélites que haces tú.
Satélite Wyoming
Funciona con cualquier satélite que hable Wyoming.
Par de clase hub
Un par con margen; los vecinos pueden tomar prestado su modelo de lenguaje.
Una máquina más modesta
La voz a texto y el texto a voz funcionan a bordo; su modelo de lenguaje funciona en el hub B.
Cualquier dispositivo, mismo comportamiento
Cada tipo de satélite se trata igual una vez conectado; cambia de hardware sin más.
Las apps también pueden hablarle
Las apps que hablan la API OpenAI Realtime se conectan directamente al nodo y pasan por las mismas etapas.

Satélites: un micrófono en cada habitación

Cuatro tipos de satélite, un mismo comportamiento: el dispositivo escucha y reproduce, y todo lo demás ocurre en tu nodo Domia.

Tu nodo Domia

Voz a texto, enrutado, el modelo, la voz y la memoria viven aquí. Cada tipo de satélite se trata igual: el dispositivo escucha y reproduce, el nodo hace el resto.

Elige:

Qué hace este dispositivo

Home Assistant Voice PE

el nodo se conecta al dispositivo

En el dispositivo

  • palabra de activación
  • micrófono
  • altavoz
  • LEDs

Entre el dispositivo y el nodo

  • audio del micrófono
  • audio de la respuesta en el formato que anuncia el dispositivo
  • anuncios

Conviene saber

  • El modo de seguimiento funciona con el firmware de fábrica y viene activado por defecto.
  • El dispositivo solo reproduce el formato que anuncia, así que el nodo convierte cada respuesta para él.
  • El nodo detecta cuándo un dispositivo deja de responder.

Las apps también pueden hablarle

Las apps hechas para la API OpenAI Realtime se conectan al nodo y pasan por las mismas etapas.

Cualquiera de estos dispositivos, mismo comportamiento
Cada tipo de satélite se trata igual: el dispositivo escucha y reproduce, el nodo hace el resto.
Configura un satélite

Skills: lo que puede hacer

Herramientas integradas, skills listas para Home Assistant y Music Assistant, cualquier servidor MCP que añadas y rutinas que las encadenan.

Desactiva un grupo para ver qué cambia:

El rayo marca lo que la vía rápida responde sin el modelo. «Preguntar antes» marca las pocas acciones que piden confirmación antes de ejecutarse; puedes cambiarlo en cada skill.

Integradas

Activo desde el principio
13 herramientas que trae cada nodo. 6 de ellas existen solo para la vía rápida y no se muestran al modelo.
  • horavía rápida
  • fechavía rápida
  • temporizadorvía rápida
  • recordatoriovía rápida
  • alarmavía rápida
  • recordar
  • olvidarpreguntar antes

Home Assistant

Al conectarlo
Una skill sobre MCP para luces, interruptores, persianas, clima y escenas. Algunas de sus herramientas están bloqueadas porque una herramienta integrada ya las cubre.
  • lucesvía rápida
  • interruptoresvía rápida
  • persianas y puertasvía rápidapreguntar antes
  • climavía rápida
  • ventiladoresvía rápida
  • aspiradoravía rápida
  • cortacéspedvía rápida
  • cerrar y abrir cerraduraspreguntar antes
  • paneles de alarmapreguntar antes
  • sirenaspreguntar antes
  • estado en vivo

Music Assistant

Al conectarlo
Una skill sobre MCP. La reproducción y el volumen van por la vía rápida; las búsquedas y la cola pasan por el modelo.
  • reproducir
  • pausarvía rápida
  • saltarvía rápida
  • volumenvía rápida
  • qué suenavía rápida
  • buscar

Tu servidor MCP

Al conectarlo
Cualquier herramienta, sin código en el nodo.

Apunta un nodo a cualquier servidor MCP y sus herramientas se convierten en skills.

Un servidor puede incluir frases y pistas para sus herramientas; el nodo tiene siempre la última palabra sobre qué puede ejecutarse.

Rutinas

Activo desde el principio
Una herramienta que ejecuta varios pasos en orden.

"Buenas noches"

  1. Apagar las luces del salón
  2. Pausar la música
  3. Poner una alarma a las siete

Hasta 8 pasos ordenados, sin rutinas dentro de rutinas. La política más estricta de un paso se aplica a toda la rutina, y responde con una sola frase.

Qué viene activado. Las herramientas integradas funcionan desde el primer turno. Home Assistant, Music Assistant y otros servidores MCP empiezan a funcionar cuando los conectas en la consola. Cada uno se puede desactivar por identidad.

No se muestra al modelo
Solo la vía rápida puede llegar aquí.

Los motores detrás de un turno

Cada etapa es un motor intercambiable que se elige en la configuración. Estos son los que Domia incluye o con los que habla.

  • Palabra de activación

    Un detector de palabra clave pequeño que funciona en el dispositivo que escucha.

    • sherpa-onnx keyword spotting
  • Voz a texto

    Transcribe mientras hablas, dentro del nodo o mediante un servidor de voz local.

    • Whisper
    • Moonshine
    • Zipformer
    • Parakeet
    • Nemotron
    • NeMo-Speech
    • OpenAI-compatible server
  • Detección de turno

    El silencio y un modelo pequeño deciden cuándo has terminado, no un tiempo fijo.

    • Silero VAD
    • Smart Turn
  • Modelo de lenguaje

    Un modelo de lenguaje servido en tu propio hardware. La reflexión puede usar un segundo modelo, más pequeño, para no estorbar a la voz.

    • Ollama
    • llama.cpp
    • OpenAI-compatible server
  • Texto a voz

    Una voz por identidad, definida en la configuración.

    • Kokoro
    • Pocket
    • VITS
    • Kitten
    • Matcha
    • Supertonic
  • Memoria y búsqueda

    La búsqueda en lo que Domia recuerda se hace en el nodo. Hechos, episodios y la base de conocimiento viven en una base de datos local en el nodo.

    • SQLite
    • local embeddings

Funciona con

  • Home Assistant
  • Music Assistant
  • MCP servers
  • ESPHome
  • Wyoming
  • LiveKit

Los motores de voz funcionan dentro del nodo o en un servidor local a su lado, y el modelo de lenguaje funciona en un servidor local.

Cómo ponerla en marcha en tu hardware

Lo que se queda en tu red

  • Se queda en tu red
    Audio, transcripciones y memoria nunca pasan por un tercero. No hay cuentas ni respaldo en la nube.
  • Malla protegida por defecto
    Los nodos necesitan un secreto compartido antes de hablarse. El transporte cifrado, la rotación del secreto y las listas de acceso de red son opcionales.
  • Cada Domia guarda su propia memoria
    Cada identidad tiene sus propios hechos, notas y estado de ánimo. Lo que oye una sala no se comparte con otra salvo que tú lo decidas, y la memoria se puede apagar por identidad.

Míralo en el código

Todo lo que ves en esta página es código abierto. Léelo, ejecútalo, cámbialo.