TTS y STT: voz local, dictado y transcripción en macOS

App macOS que une STT, modelo local y TTS en un ciclo privado: dictado global, voces neuronales, transcripción de audios, bot Telegram y exportación a Obsidian.

Admin14 de octubre de 2026, 10:0024 min de lectura

TTS-STT es una aplicación para Mac que junta en un solo sitio tres cosas que normalmente están separadas:

  • STT (Speech To Text): convertir tu voz en texto.
  • Un modelo de inteligencia artificial que corre en tu propio Mac y responde a lo que dices o escribes.
  • TTS (Text To Speech): convertir un texto en voz, para que el Mac te lea las respuestas.

El resultado es un ciclo completo:

hablas → se convierte en texto → el modelo responde → la respuesta se lee en voz alta

Todo ocurre dentro de tu ordenador. No hay cuentas, no hay suscripciones y no se envía tu voz ni tus textos a ningún servidor.

Pero lo más útil es que no te obliga a vivir dentro de su ventana. La app también funciona desde la barra de menús, desde atajos de teclado, desde el menú contextual de cualquier programa y desde direcciones especiales (ttsstt://). Así puedes dictar dentro de Obsidian, pedir que te lea lo que has seleccionado en Safari o transcribir un audio desde el Finder, sin abrir la app.

PlataformamacOS 15 (Sequoia) o superior. Probada en macOS Tahoe 26.5.1
LenguajeSwift 6
InterfazSwiftUI + AppKit
Dependencias para funcionarNinguna: solo componentes que ya trae el Mac
OpcionalesVoz neuronal Kokoro, codificador MP3 (lame), Ollama
PrivacidadTodo se procesa en local

Es una pregunta muy buena. macOS ya trae dictado, lectura de texto en voz alta y Apple Intelligence. Entonces, ¿qué añade TTS-STT?

Lo que ya hace tu Mac por su cuenta:

  • Dictado básico.
  • Leer una selección en voz alta con las voces del sistema.
  • Charlar con Apple Intelligence.

Lo que TTS-STT añade y el sistema no ofrece de serie:

FunciónQué te da
Ciclo completo en una ventanaDictas, el modelo responde y se lee en voz alta, todo junto
Voces neuronales (Kokoro)Voces mucho más naturales que las del sistema, incluido español de España
Dictado en cualquier appAtajo global, panel flotante con tu transcripción en vivo y elección de cómo se inserta el texto
Transcripción de audiosClic derecho sobre un audio en el Finder y listo; también por lotes y a subtítulos
Leer selección o portapapelesCon atajo global y la voz que tú elijas
Editor de texto y reproductor de audioAbrir, editar, guardar y convertir ficheros (.md, .txt, .mp3, .wav…)
Conversaciones largas sin romperseEl modelo resume lo antiguo para no quedarse sin memoria
Bot de TelegramEscribes o mandas una nota de voz desde el móvil y tu Mac responde
AutomatizaciónAtajos de Apple, Raycast, Alfred, Obsidian, scripts…
Historial y exportación a ObsidianTus conversaciones y transcripciones guardadas y buscables

Dicho claro: si solo quieres dictar un mensaje y charlar con Apple Intelligence, tu Mac ya te basta. TTS-STT merece la pena si quieres voces más naturales, dictado y lectura con atajos propios en cualquier app, transcribir audios, o conectarlo con Telegram, Obsidian y tus automatizaciones.


La app tiene tres “motores”, como tres especialistas que trabajan en equipo:

EspecialistaQué haceQuién lo hace
Oído (voz → texto)Escucha y escribe lo que dicesEl reconocimiento de voz de Apple. En macOS 26 usa el motor nuevo (SpeechAnalyzer), más preciso; en macOS 15 usa el clásico (SFSpeechRecognizer)
Cerebro (texto → texto)Entiende y respondeEl modelo de Apple Intelligence que ya vive en tu Mac (FoundationModels). Alternativamente, Ollama
Voz (texto → voz)Lee en voz altaLas voces del sistema y, si quieres, la voz neuronal Kokoro
 🎤 Tu voz ──► [ Oído ] ──► texto ──► [ Cerebro ] ──► respuesta ──► [ Voz ] ──► 🔊

La app está pensada para no romperse nunca:

  • ¿Tu Mac no tiene Apple Intelligence? La app cambia sola a un modo alternativo (sin modelo, con reglas simples) y te avisa en la barra lateral.
  • ¿No has instalado la voz neuronal? Usa la mejor voz del sistema para tu idioma.
  • ¿No has concedido Accesibilidad? Lo que no funciona es escribir o leer en otras apps, y la app te lo dice en pantalla, en vez de fallar en silencio.

La app no ordena las voces por orden alfabético, sino por calidad: neuronal, premium, mejorada y estándar. Al arrancar, usa Santa (español de España, neuronal) si no has guardado otra. Si el motor neuronal no está, usa la mejor voz del sistema para el idioma de tu Mac.

Kokoro es un modelo de voz pequeño (unos 310 MB) que funciona en el procesador, sin tarjeta gráfica. La app lo ejecuta en un proceso aparte que se queda abierto: cargar el modelo tarda unos segundos, pero una vez cargado, las respuestas llegan en décimas de segundo. Se carga la primera vez que lo necesitas, no al abrir la app. Está en una carpeta propia con su propio Python, así que no ensucia tu sistema: desinstalarlo es borrar esa carpeta.


Imprescindible

  • Un Mac con macOS 15 (Sequoia) o superior.

  • Las herramientas de línea de comandos de Apple (Command Line Tools). No hace falta Xcode. Se instalan con:

    xcode-select --install

Para la inteligencia artificial local

  • macOS 26 (Tahoe) con Apple Intelligence activada y un Mac compatible. Sin esto, la app funciona igual, pero con el modo alternativo en lugar del modelo.

Opcionales (cada uno añade algo y ninguno es obligatorio)

OpcionalPara qué sirveTamaño aproximado
Voz neuronal KokoroVoces muy naturales~480 MB (modelo, voces y entorno Python)
lame (o ffmpeg)Guardar audio en MP3Muy pequeño
OllamaUsar otro modelo de texto en tu Mac, además del de AppleDepende del modelo
Certificado de firma localQue macOS no te pida los permisos de nuevo cada vez que recompilasNada

Dependencias de terceros: ninguna. Todo se apoya en componentes de Apple (Speech, AVFoundation, FoundationModels, PDFKit, ScreenCaptureKit…). Incluso el bot de Telegram habla con la API usando solo herramientas del propio sistema, así que no hay paquetes ajenos que revisar ni actualizar.


  • El reconocimiento de voz lo hace el sistema.
  • El modelo de texto es el de Apple (o Ollama, solo contra tu propio Mac, nunca hacia fuera).
  • Las voces se generan en tu Mac.
  • Ninguna petición de dictado, transcripción o generación sale de tu equipo.

Excepciones, siempre voluntarias:

  • Telegram: solo si enciendes el bot. Lo que escribas viaja por los servidores de Telegram, como cualquier mensaje de Telegram. Si nunca pegas un token, la app no abre ni una conexión de red.
  • Leer una página web: solo si tú se lo pides, y la descarga es una acción explícita.
  • Descargas puntuales: al instalar Kokoro, y los modelos de idioma del reconocimiento de voz de Apple si tu Mac los necesita.

Permisos: la app solo pide los que de verdad usa: reconocimiento de voz, micrófono y Accesibilidad (y, si quieres grabar reuniones, grabación de pantalla y audio del sistema). Puedes revisarlos o quitarlos cuando quieras en Ajustes del Sistema › Privacidad y seguridad.


Importante: hay que empaquetar la app. macOS solo concede los permisos de micrófono, reconocimiento de voz y Accesibilidad a programas con un paquete .app y un Info.plist que explique para qué los quiere. Si ejecutas el binario suelto, la app arranca y sirve para escribir, pero no podrá dictar.

xcode-select --install

Desde la carpeta del proyecto:

./Scripts/build-app.sh
open /Applications/TTS-STT.app

Este script hace todo: compila, crea el .app, escribe el Info.plist, genera el icono, firma la app y la instala en /Applications. Si tu cuenta no puede escribir ahí, la deja en ~/Applications.

Otras variantes:

./Scripts/build-app.sh --debug        # compilación de depuración
./Scripts/build-app.sh --no-install   # solo deja el paquete en dist/
swift run TTSSTTApp                   # probar rápido, sin empaquetar (no dicta)

  1. Reconocimiento de voz: se pide al arrancar.
  2. Micrófono: se pide la primera vez que pulsas dictar.
  3. Accesibilidad: necesaria para escribir el dictado en otras apps y leer la selección. Se concede en Ajustes del Sistema › Privacidad y seguridad › Accesibilidad. El botón Conceder de la barra lateral abre ese panel directamente.

./Scripts/setup-kokoro.sh

Instala el modelo, las voces y un entorno de Python propio en ~/Library/Application Support/TTS-STT/kokoro, y comprueba que funciona. La app lo detecta al arrancar y muestra la etiqueta Neuronal en la barra lateral.

¿Prefieres otra carpeta?

./Scripts/setup-kokoro.sh --dir /ruta
TTSSTT_KOKORO_DIR=/ruta open dist/TTS-STT.app

Para desinstalarla, borra la carpeta kokoro.

macOS sabe leer MP3, pero no sabe crearlos. Para poder guardar en MP3, instala un codificador:

brew install lame

La app lo detecta sola. Si no está, la opción MP3 aparece desactivada con una explicación, y puedes usar M4A, que suena igual de bien.

Una firma “ad-hoc” cambia en cada compilación y macOS puede volver a pedirte los permisos. Para evitarlo, el proyecto incluye Scripts/setup-signing.sh, que te guía (y te pide confirmación) para crear un certificado de firma local. Después, build-app.sh lo usa solo.

En Ajustes › Sistema puedes activar que la app se abra sola, para tener los atajos listos desde el principio.


Tiene tres zonas:

  • Barra lateral: estado de los tres motores, métricas rápidas (turnos, voces, voz activa), selector de voz con velocidad y botón “Probar voz”, opciones de dictado, atajos, interruptor del bot y la tarjeta de permisos.
  • Conversación: el hilo de mensajes en burbujas. Los mensajes que nacen de audio llevan marcado su origen: dictado (micrófono) o audio (fichero). Al pasar el ratón por una burbuja aparecen sus acciones: copiar, leer en voz alta y guardar como audio.
  • Cuadro de escritura: para dictar (⌘R), escribir a mano, enviar (⌘↩), detener la generación (⌘.) y controlar la reproducción (pausar, reanudar, detener).

Las respuestas llegan palabra a palabra y las puedes cortar a mitad. El modelo recuerda la conversación, así que puedes seguir preguntando sin repetir nada.

  1. Dictar en la ventana (⌘R).
  2. Dictar en otra aplicación (⌥⌘D).
  3. Leer la selección de cualquier app (⌥⌘L).
  4. Abrir un audio para transcribirlo.

Pulsa ⌘R y habla. Verás el texto aparecer en tiempo real, con un medidor de nivel de entrada. Al terminar, el texto queda en el cuadro de escritura, o se envía solo si tienes activado Enviar al terminar de hablar.

Pon el cursor en un campo de texto (TextEdit, Obsidian, Safari, Terminal…), pulsa ⌥⌘D y habla. Mientras grabas aparece un panel flotante que muestra el nivel de entrada, la app de destino y la transcripción en vivo, sin quitarle el foco a nadie. Al terminar, el texto aparece donde tenías el cursor.

Hay dos formas de insertar el texto:

MétodoCómo funcionaCuándo usarlo
Pegar con ⌘VCopia el texto y pegaFunciona en casi todo, incluidas las apps Electron
AccesibilidadEscribe directamenteNo toca tu portapapeles. Si la app no lo admite, cae sola al pegado

Si algo falla, el texto se queda en el portapapeles para que no lo pierdas.

Además puedes elegir:

  • Mantener pulsado para hablar (push-to-talk): mientras mantienes el atajo, graba; al soltar, escribe. O el modo clásico: pulsas para empezar y pulsas para parar.
  • Fin automático por silencio: si dejas de hablar un momento, termina solo. Puedes ajustar cuánto silencio y lo sensible que es, o desactivarlo.
  • Sonidos al empezar y terminar, por si el panel no está a la vista.
  • Cancelar una grabación sin enviar nada.

Antes de insertar el texto, la app puede limpiarlo (todo opcional):

  • Quitar muletillas y repeticiones (“eh”, “o sea”, palabras repetidas).
  • Mejorar la puntuación y las mayúsculas con el modelo local, con la orden estricta de no cambiar lo que dijiste.
  • Comandos de voz: puedes decir “punto”, “coma”, “nueva línea”, “nuevo párrafo”, “abre comillas” o “borra eso”, en español e inglés.
  • Perfiles por aplicación: cada programa puede tener su configuración. Por ejemplo, en la Terminal sin puntuación automática, y en Obsidian con formato Markdown.
  • Siempre puedes ver el texto original frente al procesado y desactivarlo con un gesto.

El dictado funciona en 11 idiomas y variantes: español (España, México, EE. UU.), inglés (EE. UU., Reino Unido), catalán, gallego, portugués de Brasil, francés, alemán e italiano.

  • ⌥⌘L: lee la selección de la app que tengas delante.
  • ⌥⌘B: lee el contenido del portapapeles.
  • Lectura automática: cada respuesta del modelo se lee sola (se puede desactivar).
  • Pausar, reanudar y detener en cualquier momento (⌘. detiene).
  • Empieza a hablar enseguida: la app no espera a que el modelo termine; lee la primera frase en cuanto está completa, mientras sigue escribiendo el resto. Así la respuesta se siente mucho más rápida.
  • Velocidad ajustable de 0,5× a 1,8×, y también velocidad distinta para cada voz.
  • Probar la voz con una frase de muestra.
  • Diccionario de pronunciación: si la voz pronuncia mal una palabra (un nombre, una marca, una sigla), la corriges una vez y queda guardada.

La lista junta las voces neuronales primero y después las del sistema, cada una con su idioma y calidad. Hay una lista corta con la mejor voz de cada idioma, y un interruptor para ver el catálogo completo.


La app incluye un editor de texto y un reproductor de audio, para que no tengas que salir de ella.

Puedes tener varios documentos abiertos en pestañas.

AcciónAtajo
Nuevo⌘N
Abrir⌘O
Abrir recientesmenú Archivo
Guardar⌘S
Guardar como⇧⌘S
Cerrar⌘W
Cerrar todo / Revertirmenú Archivo

Formatos de texto que abre y guarda:

FormatoPara qué
.txtTexto plano
.md / .markdownMarkdown (con vista previa)
.rtfTexto enriquecido
.htmlPáginas web
.jsonDatos
.csvTablas
.srt y .vttSubtítulos
.logRegistros

Cuidados que se tienen contigo:

  • Detecta la codificación al abrir (UTF-8, UTF-16, ISO-8859-1, Windows-1252) para que las tildes y la eñe salgan bien. Puedes elegirla al guardar. Por defecto, UTF-8.
  • Punto en la pestaña cuando hay cambios sin guardar, y aviso al cerrar (Guardar / No guardar / Cancelar), también al salir de la app.
  • Guardado seguro: nunca pierdes el fichero original si algo falla. Si el archivo cambió en el disco mientras lo tenías abierto, te avisa antes de sobrescribir.
  • Borradores automáticos: si la app se cierra de golpe, recuperas tu trabajo.
  • Puedes arrastrar ficheros a la ventana, usar Abrir con ▸ TTS-STT desde el Finder, o ttsstt://open?path=….

Voz sobre tus documentos:

  • Lee el documento entero o solo la selección, resaltando la frase que se está leyendo.
  • Dicta directamente donde tengas el cursor.
  • Pídele al modelo que resuma, corrija o traduzca la selección, y aplica el resultado con un clic. Se puede deshacer con ⌘Z.

Se pueden abrir: .wav, .mp3, .m4a, .aac, .aiff, .caf, .flac, y el audio de vídeos .mp4 y .mov.

Reproductor integrado: reproducir, pausar, saltar a cualquier punto, velocidad de 0,5× a 2×, forma de onda y duración.

Se pueden guardar o exportar:

FormatoDisponible
.wavSiempre
.m4a (AAC)Siempre
.aiffSiempre
.cafSiempre
.flacSiempre
.mp3Solo si tienes lame o ffmpeg instalado (128, 192, 256 o 320 kbps)

Cualquier respuesta del asistente se puede guardar como audio en el formato que elijas. También puedes convertir un audio a otro formato, cambiando la frecuencia de muestreo o pasándolo a mono o estéreo, con barra de progreso y botón de cancelar.


Hay cinco formas de transcribir un audio:

  1. El botón “Abrir audio…”.
  2. Arrastrar el fichero sobre la conversación.
  3. El menú de la barra de menús (“Transcribir un audio…”).
  4. Clic derecho sobre el audio en el Finder › Servicios › Transcribir con TTS-STT.
  5. La dirección ttsstt://transcribe?path=….

El resultado se abre como un documento nuevo, que puedes guardar como .txt, .md, .srt o .vtt.

Transcripción avanzada:

  • Marcas de tiempo por fragmento, para subtítulos y para localizar partes.
  • Por lotes: arrastra varias carpetas o ficheros y se procesan en cola, con progreso y cancelación. Cada transcripción se guarda junto a su audio. Si se interrumpe, se reanuda sin repetir lo ya hecho.
  • Audios largos: con el motor nuevo de macOS 26 aguantan bien.
  • Aviso del Centro de notificaciones cuando termina.

  • Usa Apple Intelligence (FoundationModels), que ya está en tu Mac.
  • Respuestas en directo, que puedes detener a mitad.
  • Memoria de la conversación: cada turno recibe los anteriores.
  • No se queda sin memoria: el modelo tiene una “ventana” limitada de lo que puede recordar. La app lo controla, y cuando la conversación se hace larga resume automáticamente lo antiguo y conserva lo reciente. Verás un indicador discreto de “conversación resumida” y podrás leer ese resumen.
  • Otros modelos: puedes elegir Ollama (un programa que ejecuta modelos de IA en tu Mac) como alternativa, si el de Apple se te queda corto. Se conecta solo a tu propio ordenador.
  • Herramientas del modelo (opcional): puede leer el portapapeles, la selección, abrir un documento, guardar texto en un fichero o buscar en tu historial. Las que hacen cambios vienen desactivadas y las activas tú en Ajustes. Cada vez que usa una, la conversación lo muestra (“Ha leído el portapapeles”).

  • La app guarda tus conversaciones y transcripciones en tu Mac, en una carpeta propia. Puedes buscar en ellas, borrar una o todas, o desactivar el historial.
  • Exportar a Markdown con cabecera de datos (fecha, idioma, origen, voz), lista para guardarse en tu bóveda de Obsidian.

Lleva tu voz y tu modelo al móvil. Se configura una vez:

  1. Escribe /newbot a @BotFather en Telegram y copia el token.
  2. Pégalo en Ajustes › Telegram y pulsa Probar.
  3. Enciende Escuchar en Telegram. El primer chat que le escriba queda autorizado automáticamente.

Qué entiende:

Tú envíasEl bot responde
Un texto cualquieraTe lo devuelve como nota de voz con la voz que elegiste
Una nota de vozLa transcribe; si lo activas, el modelo responde y te lee la respuesta
/decir textoLo lee en voz alta
/preguntar textoEl modelo responde (en texto y, si quieres, en voz)
/voz nombreCambia la voz (vale un trozo del nombre)
/estadoDice qué motor y voz están activos y el último error
/pararDetiene la locución
/ayuda o /startLista los comandos

También entiende variantes en inglés (/ask, /status, /stop, /voice…).

Seguridad:

  • Lista blanca de chats: si desactivas Autorizar el primer chat automáticamente, solo atiende a los de la lista. Es la diferencia entre un bot privado y uno público que gasta la CPU de tu Mac.
  • Sin servidor ni abrir puertos: funciona preguntando a Telegram cada poco (“¿hay mensajes?”), así que va detrás de cualquier router.
  • Respuestas pensadas para oírse: el modelo contesta en dos o tres frases, sin listas ni Markdown, y los textos largos se trocean.
  • El token se guarda en el Llavero de macOS (la app migra solo el valor antiguo la primera vez).
  • El bot es independiente de la ventana: su conversación no se mezcla con la tuya.

AtajoAcción
⌥⌘DDictar y escribir en la app activa
⌥⌘LLeer la selección
⌥⌘BLeer el portapapeles

Se graban desde Ajustes. Funcionan aunque la app esté en segundo plano.

⌥⌘V no se usa a propósito: muchas apps lo tienen para “Pegar y ajustar estilo” y un atajo global se comería la pulsación.

AtajoAcción
⌘RDictar en la ventana
⌘↩Enviar
⌘.Detener generación o voz
⌘KBorrar la conversación
⌘,Abrir ajustes
⌘N / ⌘O / ⌘S / ⇧⌘S / ⌘WNuevo, abrir, guardar, guardar como, cerrar
⇧⌘OAbrir audio
⇧⌘D / ⇧⌘L / ⌥⌘LVariantes de menú: dictar fuera, leer selección, leer portapapeles

Icono con las mismas acciones, que cambia mientras dictas y muestra el estado del bot. Ideal para no tener que recordar combinaciones.

Aparecen en el menú contextual de cualquier app:

  • Leer la selección con TTS-STT.
  • Leer el contenido del portapapeles.
  • Transcribir con TTS-STT (clic derecho sobre un audio en el Finder).

Este camino no necesita Accesibilidad: macOS te entrega el texto ya recogido. Si no aparecen tras instalar, hay un botón para volver a registrarlos en Ajustes › Sistema.

Cualquier programa puede pedirle cosas a la app abriendo una dirección:

open "ttsstt://speak?text=Hola%20mundo"      # leer un texto
open "ttsstt://speak?clipboard=1"            # leer el portapapeles
open "ttsstt://read"                         # leer la selección
open "ttsstt://dictate"                      # dictar en la app activa
open "ttsstt://transcribe?path=/tmp/a.wav"   # transcribir un audio
open "ttsstt://open?path=/tmp/nota.md"       # abrir un documento
open "ttsstt://stop"                         # detener la voz
open "ttsstt://telegram"                     # encender o apagar el bot
open "ttsstt://window"                       # traer la ventana
open "ttsstt://settings"                     # abrir ajustes

Sirven en Atajos de Apple, Raycast, Alfred, Automator, Obsidian o un script. Entienden rutas en español y en inglés, y lo que no reconocen no lo ejecutan: mejor callar que adivinar. Si la orden llega con la app cerrada, se guarda y se ejecuta en cuanto está lista.

Las acciones principales (dictar, leer selección, leer portapapeles, transcribir un audio, preguntar al modelo y detener la voz) aparecen también como acciones nativas en la app Atajos y en Spotlight.


  • Leer una página web o un PDF: extrae el texto principal y lo lee, con cola de lectura, avance y retroceso por párrafo, y recuerda dónde te quedaste.
  • Grabar reuniones: captura el audio del sistema y el micrófono, lo guarda en .m4a o .wav y lo transcribe después. Pide un permiso extra, muestra un aviso visible mientras graba, y recuerda que grabar a otras personas puede tener implicaciones legales: avísalas siempre.
  • Avisos del Centro de notificaciones: transcripción terminada, bot detenido, chat autorizado. Solo se piden con tu permiso.

Se abren con ⌘,. Todo se guarda solo, sin botón de guardar.

PestañaQué configuras
GeneralLectura automática, envío automático, idioma, voz, velocidad, motor de texto, estado del motor neuronal
VozCatálogo de voces con detalle (motor, idioma, calidad), velocidad por voz y diccionario de pronunciación
DictadoMétodo de inserción, modo (mantener o conmutar), silencio automático, postprocesado, perfiles por app, panel flotante y sonidos
AtajosLos atajos globales con grabador, restaurar los de fábrica y otras formas de entrar
TelegramToken, qué contesta, chats autorizados y registro
SistemaPermiso de Accesibilidad, arranque al iniciar sesión, icono de la barra, Servicios y avisos
AvanzadoDiagnóstico de motores, recargar motores, actualizar voces y “zona de riesgo” (restaurar ajustes o borrar la conversación)

El proyecto se divide en piezas pequeñas, cada una con una sola responsabilidad:

PiezaQué contiene
TTSCoreLas “reglas del juego”: protocolos, modelos, catálogo de voces, gestión del contexto. Sin dependencias
TTSEnginesLos motores reales: Speech, AVFoundation, FoundationModels, Kokoro, conversión de audio
TTSCoreMocksMotores simulados para tests y modo alternativo
TTSTelegramEl bot, sin interfaz gráfica para poder probarlo sin ventana
TTSSTTAppLa aplicación y la elección de qué motor usar

Gracias a esto, cambiar un motor no obliga a tocar la interfaz. La app usa una sola instancia de dictado y de bot, así que nunca hay dos sesiones de micrófono peleándose.

Se compila con concurrencia estricta de Swift 6 y cero avisos, y lleva tests que no piden permisos (se hacen con motores simulados y audios de prueba). Se lanzan con:

swift build -Xswiftc -strict-concurrency=complete -Xswiftc -warnings-as-errors
./Scripts/test.sh

Limitaciones que conviene conocer

  • MP3 necesita un codificador externo (lame), porque macOS no lo trae.
  • Apple Intelligence exige macOS 26 y un Mac compatible. Sin ello, modo alternativo.
  • Firma local: sin certificado propio, macOS puede volver a pedir permisos tras recompilar.
  • Sin Xcode: no hay proyecto .xcodeproj ni notarización de serie (requiere una cuenta de desarrollador de Apple).
  • Algunos formatos como .ogg/.opus dependen de lo que soporte la conversión interna.

Problemas típicos y su solución

ProblemaSolución
No puedo dictarComprueba que ejecutas el .app (no swift run) y que concediste Micrófono y Reconocimiento
Dicta en la ventana pero no en otras appsFalta el permiso de Accesibilidad
No me aparecen los ServiciosAjustes › Sistema › volver a registrar, y usa siempre la copia de /Applications
Me vuelve a pedir permisosCambió la firma al recompilar: usa un certificado estable
No oigo la voz neuronalEjecuta ./Scripts/setup-kokoro.sh y reinicia la app; revisa Ajustes › Avanzado
No puedo guardar MP3Instala lame con brew install lame
Un atajo no respondeOtra app lo usa; cámbialo en Ajustes › Atajos
La respuesta del modelo es muy básicaTu Mac no tiene Apple Intelligence activa: la app está en modo alternativo
Dos copias de la appMantén solo la de /Applications para que macOS no abra la equivocada

  • Voz neuronal sin Python, más ligera (cuantizada) y con instalación más simple.
  • Identificación de hablantes en las transcripciones.
  • Más motores de voz y de texto bajo demanda.
  • Notarización y actualizaciones automáticas para distribuirla fácilmente.
  • Proyecto .xcodeproj nativo.

PalabraSignifica
STTConvertir voz en texto
TTSConvertir texto en voz
On-device / localSe hace en tu Mac, sin internet
ModeloEl “cerebro” de IA que responde
NeuronalVoz generada por IA, más natural
StreamingLlega poco a poco, no de golpe
VADDetector de silencio
Push-to-talkMantener pulsado para hablar
HUD / panel flotanteVentanita que flota mientras dictas
AccesibilidadPermiso de macOS para escribir o leer en otras apps
Bundle / .appEl paquete que macOS necesita para dar permisos
Firma ad-hocFirma básica que cambia en cada compilación
LlaveroCaja fuerte de macOS para contraseñas
TokenContraseña de un bot de Telegram
OllamaPrograma para ejecutar modelos de IA en tu Mac
MarkdownFormato de texto simple (.md)

¿Necesito internet? No para dictar, transcribir, conversar con el modelo ni leer en voz alta. Solo para instalar Kokoro, descargar modelos de idioma, usar Telegram o leer páginas web.

¿Es gratis? Sí. No hay cuentas ni suscripciones.

¿Puedo usarla sin Apple Intelligence? Sí. Dictado, voces, archivos y transcripción funcionan igual; solo el modelo pasa a un modo básico.

¿Funciona en macOS 15? Sí, con el reconocimiento clásico y sin el modelo de Apple.

¿Se guarda lo que digo? Solo en tu Mac, en el historial, que puedes borrar o desactivar.

¿Puedo cambiar los atajos? Sí, desde Ajustes o la barra lateral.

¿Funciona con Obsidian? Sí: dicta dentro de Obsidian, exporta tu historial a tu bóveda y usa ttsstt:// desde sus plugins.

¿Puedo desinstalarla? Borra la app de /Applications y, si instalaste la voz neuronal, la carpeta ~/Library/Application Support/TTS-STT.


TTS-STT convierte tu Mac en un asistente de voz completo, privado y que no depende de nadie. No pretende sustituir lo que macOS ya hace bien, sino unirlo y llevarlo más lejos: voces naturales, dictado y lectura en cualquier app con tus propios atajos, transcripción de audios, edición de ficheros, automatización y hasta un bot en el móvil.

Si te interesa hablar con tu ordenador sin enviar nada a la nube, es una muy buena base para empezar.

TTS y STT

Explora las ramas del artículo

Compartir este artículo