Más voces para idiomas no habituales en iOS con RHVoice

Desde 2023 Apple empezó a permitir que algunas aplicaciones aporten motores de síntesis de voz alternativos que pueden integrarse con VoiceOver y con cualquier app que utilice el motor TTS del sistema. RHVoice es una de esas aplicaciones, y su enfoque es especialmente interesante para quienes priorizan ligereza, rapidez y cobertura lingüística antes que la naturalidad “neuronal” de las voces comerciales.

RHVoice es un sintetizador de voz gratuito y de código abierto, pensado desde el inicio para ser útil a personas ciegas o con dificultad para acceder al texto impreso, y con especial interés en idiomas donde no siempre existen voces “premium” accesibles y de calidad para lectores de pantalla.

Al momento de escribir este artículo se incluyen voces para los idiomas luxemburgués, macedonio y albanés.

Este motor de síntesis de voz emplea síntesis paramétrica estadística (apoyándose en tecnologías abiertas como HTS y software relacionado). Debido a esto el tamaño de descarga suele ser reducido porque se almacenan modelos estadísticos en lugar de ficheros de sonido grandes.

Debido al pequeño tamaño de las voces la naturalidad puede ser inferior a la de sistemas basados en concatenación de grabaciones o redes neuronales, aunque la comprensibilidad de la voz es aceptable.

RHVoice en la App Store

La aplicación está publicada por Non-Routine LLC, es gratuita, ocupa alrededor de 10,5 MB y requiere iOS/iPadOS 16.2 o posterior. También ofrece versión para macOS (13.1 o posterior) y aparece listada para Apple Vision.

RHVoice no incluye voces “de serie”. Esto se hace para reducir el tamaño inicial y para que las actualizaciones de voces sean más simples.

Al abrir la app verás la lista de idiomas disponibles; al entrar en un idioma, se muestran las voces y puedes descargarlas con el botón correspondiente. Dentro de las opciones puedes cambiar entre dos niveles de calidad de voz.

Puedes descargar RHVoice desde la AppStore.

Más voces para tu iPhone y tu iPad con eSpeakNG

Desde iOS17 es posible instalar más voces para usar en los dispositivos móviles de Apple como el iPhone o el iPad.

Aunque la síntesis de voz en los dispositivos móviles actuales se asocia a voces neuronales de alta naturalidad y a catálogos cada vez más completos, también existe un espacio igualmente relevante para soluciones ligeras, abiertas y muy multilingües. En ese terreno se sitúa eSpeak-NG, una app disponible en la App Store que actúa como puente entre la biblioteca eSpeak-NG y VoiceOver, con el objetivo de hacer utilizables estas voces en iOS, iPadOS y macOS sin tener que recurrir a integraciones complejas por parte del usuario.

Este tipo de voces son de poco peso en memoria y muy personalizables. Además están disponibles en muchos idiomas para los que, oficialmente, no existen voces de alta calidad.

¿Qué es eSpeak-NG?

Se trata de la evolución comunitaria de eSpeak, el motor creado originalmente por Jonathan Duddington.

Este motor de síntesis de voz se enfoca en ofrecer soporte para muchos idiomas y variantes con un tamaño reducido y un consumo contenido de recursos, a costa de una sonoridad menos natural que la de sintetizadores basados en grabaciones humanas. Este enfoque, basado en síntesis por formantes, explica por qué eSpeak (y su “Next Generation”) sigue siendo útil en ámbitos donde la ligereza, la velocidad y la cobertura lingüística pesan más que el realismo.

eSpeak-NG en la AppStore

La app de eSpeak-NG para Apple, publicada por Yury Popov, se describe explícitamente como una “capa de compatibilidad” entre la librería eSpeak-NG y VoiceOver.

Con la instalación de esta app se consigue que el sistema y el lector de pantalla puedan acceder a esas voces y a su configuración sin que el usuario tenga que montar entornos externos, compilar nada o depender de otras soluciones.

Puedes instalar eSpeak-NG desde la AppStore.

Soporte para Vox libri

La aplicación de lectura de libros Vox libri es compatible con este motor. Esto implica que al instalar la aplicación de eSpeak-NG podremos utilizar las voces de eSpeak para leer nuestros libros con Vox libri.

Cómo crear una voz sintética con tu propia voz en macOS

La voz es una parte esencial de la identidad. No solo transmite información, también comunica personalidad, intención, estado de ánimo y cercanía. Por ese motivo, la posibilidad de conservar la voz y usarla como voz sintética en un ordenador no es un simple capricho tecnológico: es una herramienta con impacto real en autonomía, accesibilidad y dignidad, especialmente para personas que pueden perder la capacidad de hablar o que necesitan apoyos de comunicación.

También las personas con trastorno del espectro autista u otros perfiles de discapacidad cognitiva se pueden beneficiar de esta característica al incluir la voz de un familiar o un terapeuta de confianza para la persona. De esta forma la atención y la seguridad se unen a los beneficios de esta característica.

En el ecosistema de Apple podemos encontrar Personal Voice, más conocido como Voz personal, una función de accesibilidad que permite crear una voz sintética a partir de las grabaciones de una voz humana real.

Esta voz puede ser utilizada en el sistema para las notificaciones, el servicio de Live Speech (Voz en tiempo real) o para VoiceOver, el lector de pantallas de Apple.

Requisitos y consideraciones antes de empezar

En macOS Personal Voice está disponible solo en ordenadores con procesadores Apple silicon, y no está disponible en todos los idiomas o regiones. Además, Apple indica que para crear una Voz personal en el Mac necesitas tener contraseña de inicio de sesión configurada, ya que se solicita durante el proceso de creación.

Aunque el proceso oficialmente dura pocos minutos, este tiempo dependerá de la versión del hardware y del sistema operativo que estemos utilizando.

Crear tu voz paso a paso

En el menú de ajustes del Mac, debemos ir al apartado de accesibilidad y allí buscar la opción de Voz personal.

Dentro encontraremos el botón Crear una voz personal. Este botón comienza el proceso de creación.

Además en esta pantalla encontramos información sobre esta característica de accesibilidad, cuántas voces tenemos creadas, si queremos compartir nuestra voz con todos nuestros dispositivos de Apple y si queremos que nuestra voz pueda ser utilizada por otras aplicaciones como, por ejemplo, aplicaciones de lectura de libros.

El proceso de creación

Al pulsar el botón de Crear una voz personal daremos comienzo al proceso de creación.

Al comenzar el proceso de creación el sistema te guiará por una grabación de frases. El objetivo de estas lecturas es capturar suficientes muestras para que el modelo genere una voz que se parezca a la voz original.

Se puede grabar con el micrófono integrado del Macbook, pero se recomienda un micrófono externo o unos auriculares con micrófono integrado ya que con mejor calidad en la grabación obtendremos mayor calidad en la voz resultante.

Aparecerá la petición de autenticación en tu cuenta de iCloud. Tras identificarnos aparecerá un diálogo con información sobre el proceso:

Grábate,

Tendrás que leer en voz alta un conjunto de 10 frases.

Genera tu voz personal,

El Mac creará tu voz personal y la almacenará de forma segura.

Usa tu voz personal,

Usa la voz en tiempo real para decir lo que escribas.

Si has creado una voz personal, también la podrás usar con las funciones de lectura y voz, VoiceOver y las apps de comunicación aumentativa.

Y unos botones para cancelar y continuar.

Apple también contempla la posibilidad de pausar y retomar el proceso, guardando el progreso para continuar en otro momento.

Al pulsar el botón de Continuar deberemos seleccionar el idioma para realizar la grabación.

En el momento de escribir este artículo los idiomas disponibles son: inglés de Estados unidos, español de México y chino mandarín de China continental.

En nuestro caso elegiremos español y volveremos a pulsar en Continuar.

En el siguiente paso el sistema nos pregunta por el nombre que le daremos a la voz.

Luego se necesita realizar una descarga de un contenido previo para la grabación de 1Gb. Debemos esperar a que termine la descarga.

Si se necesita configurar algún aspecto de la red se puede volver al proceso al abrir de nuevo los ajustes del Macbook, accesibilidad y de nuevo entrar en el panel de Voz personal.

En la lista de voces veremos nuestra voz en un estado similar a quedan 10 frases por grabar.

Al terminar de grabar las frases el procesamiento se realizará de forma segura en el propio dispositivo y el sistema te avisará cuando la voz esté lista para usarse.

Durante el proceso de grabación tendremos que verbalizar frases del tipo: Estoy creando una voz personal con mi Mac, ¿Te gusta coleccionar pósters de películas?, .

En el caso de utilizar lector de pantallas es recomendable que utilicemos auriculares para evitar que la voz de VoiceOver se mezcle con la grabación.

Cada vez que grabemos una de las frases, pulsando el botón de grabar, podemos escuchar el resultado o pasar a la siguiente frase.

Una vez terminado el proceso de grabación se mostrará un mensaje del tipo:

Recibirás una notificación,

Cuando se haya terminado de generar tu voz personal, recibirás una notificación. El proceso no debería tardar más de un minuto..

Recomendaciones prácticas para una mejor calidad

Aunque el sistema guía el proceso, la calidad final suele mejorar cuando se graba en un entorno silencioso y estable, se mantiene una distancia constante al micrófono y se evita cambios bruscos de postura.

También ayuda leer con una dicción natural, sin forzar un tono de locutor, porque el objetivo no es interpretar, sino capturar la voz cotidiana. Si se tiene fatiga vocal, es preferible pausar y continuar más tarde; Apple permite retomar la grabación sin perder el progreso.

Uso de nuestra voz personal

Una vez creada la voz podemos activarla para compartirla entre todos nuestros dispositivos y con otras aplicaciones.Podemos realizar una prueba con la función de Voz en tiempo real que aparece en los ajustes de accesibilidad de nuestro Mac. Para ello en el campo de idioma dejamos el valor de Idioma de voz del sistema y como voz seleccionamos el nombre de nuestra voz personal.En el campo de frases para hablar introducimos el texto que queremos verbalizar y pulsamos el botón Hablar o pulsamos la tecla enter.

Creación de la voz en otros dispositivos

Este proceso también se puede completar en un iPhone, un iPad o unas Apple Vision Pro. Se recomienda realizar, en cambio, el proceso en el Mac porque el procesador es más potente y se pueden utilizar micrófonos externos con mayor facilidad.

Se puede consultar la ayuda oficial de Apple para la creación de voces en su portal de soporte.

Color Asset Creator

La gestión de colores en proyectos para iOS, iPadOS, macOS o visionOS ha evolucionado mucho en los últimos años. Apple introdujo los color assets como parte de los catálogos de recursos de Xcode, ofreciendo una forma estructurada y escalable de definir la paleta de una aplicación. Sin embargo, la interfaz gráfica actual de Xcode para crear y editar estos recursos presenta graves problemas de accesibilidad para desarrolladores ciegos.

La gestión de colores desde la interfaz gráfica de XCode implica interactuar con controles visuales complejos, selectores de color, paneles flotantes y zonas de arrastre que no siempre exponen correctamente su información a las APIs de accesibilidad. Esto provoca dificultades a la hora de crear o modificar conjuntos de colores o de definir comportamientos en los conjuntos creados.

Con el proyecto Color Asset Creator se propone una solución concreta: una extensión de Xcode diseñada específicamente para crear color assets de forma accesible, aprovechando una interfaz basada en código y controles estándar que sí son compatibles con tecnologías de apoyo.

En lugar de depender del panel visual de Xcode, la extensión ofrece una interfaz basada en formularios y controles estándar que se integran con VoiceOver y con el resto de tecnologías de apoyo. De este modo, un desarrollador ciego puede definir un nuevo color con nombre de forma estructurada, introducir los valores de sus componentes de color mediante campos de texto y controles accesibles y generar los ficheros y entradas necesarias en el catálogo de recursos del proyecto.

Qué son los color assets en Xcode

En XCode, los catálogos de recursos (asset catalogs) permiten agrupar imágenes, colores, símbolos y otros elementos bajo una estructura común, normalmente en ficheros Assets.xcassets. Dentro de estos catálogos, los color assets son definiciones de color con nombre que pueden utilizarse en cualquier parte de la app, tanto en código como en interfaces visuales.

En lugar de definir colores “al vuelo” con valores RGB o hexadecimales dispersos por el código, los color assets permiten centralizar la paleta en un único lugar. Cada entrada de color se guarda como un conjunto (.colorset) con su correspondiente definición interna, tal y como describe la documentación oficial de Apple sobre los tipos de color.

Estos color assets pueden adaptarse a diferentes condiciones: por ejemplo, ofrecer variantes específicas para modo claro y modo oscuro, o para distintos espacios de color. De este modo, el mismo nombre de color se ajusta automáticamente según el contexto visual del sistema, lo que facilita la creación de interfaces coherentes, accesibles y visualmente consistentes.

El rotor de verbosidad de VoiceOver en macOS

VoiceOver, el lector de pantallas que Apple incluye en sus productos, proporciona varios elementos para personalizar su comportamiento para que se adapte a las necesidades de cada usuario. Una de estas herramientas de personalización es el rotor de verbosidad.

El rotor de verbosidad permite ajustar, de forma inmediata, la cantidad y el tipo de información que VoiceOver comunica al usuario mientras trabaja. algunos de los elementos que se pueden personalizar son la verbalización de puntuación, eco de escritura, avisos de estado, mayúsculas, atributos de texto, etc..

Activación y modificación de valores

Para abrir el rotor de verbosidad debemos pulsar VO+v. Esto abrirá un menú interactivo de VoiceOver.

Con el rotor abierto podemos cambiar entre los distintos elementos usando las flechas de izquierda o derecha.

Una vez en un elemento del rotor podemos elegir un valor usando las flechas de arriba o abajo y seleccionar el valor pulsando la tecla enter.

Si no queremos modificar nada y cerrar el rotor debemos pulsar la tecla de escape.

Categorías disponibles

A continuación se describen las categorías que, según la versión de macOS y el contexto, suelen estar disponibles en el rotor. Todas ellas cuentan con opciones predeterminadas y, en muchos casos, se pueden personalizar desde la Utilidad VoiceOver.

Puntuación

Controla cuánta puntuación se verbaliza durante la lectura: toda, alguna o ninguna. En contextos de programación suele ser útil elevar la verbosidad; para lectura continua, reducirla.

Eco de escritura

Define qué se anuncia al escribir: caracteres, palabras, caracteres y palabras o nada.

Mayúsculas

Establece cómo se indican las mayúsculas (cambio de tono, aviso verbal, o sin indicación).

Números

Permite elegir entre lectura como palabras o como dígitos.

Atributos de texto

Gestiona cómo se comunican cambios de formato (negrita, cursiva, tamaño, color) y otras características del texto. Puede optarse por tonos, avisos verbales o silencio.

Braille

Cuando se utiliza una línea braille, puede ajustarse un nivel de verbosidad específico (alto/medio/bajo) y cómo se presentan determinados atributos. Estos ajustes también pueden alternarse desde el rotor en ciertos casos.

Habla

Similar a la configuración de verbosidad para braille pero sólo afecta a la información proporcionada por la síntesis de voz utilizada por VoiceOver.

Cómo etiquetar imágenes y componentes visuales en Android con Content Description

En el desarrollo de aplicaciones para Android, la accesibilidad es un aspecto que no puede dejarse de lado. Uno de los errores más comunes en las interfaces de aplicaciones móviles es utilizar iconos o imágenes sin acompañarlos de una descripción accesible. Para los usuarios que dependen de TalkBack u otros lectores de pantalla, estos elementos pueden convertirse en barreras de accesibilidad muy severas si no cuentan con la información adecuada para identificar la funcionalidad de dichos botones o elementos visuales.

La propiedad contentDescription permite añadir una etiqueta textual a cualquier componente visual, de forma que TalkBack la anuncie en lugar de limitarse a leer un nombre técnico como “ic_send” o a ignorar la imagen por completo.

Ejemplo básico en XML

Un caso clásico es un botón con un icono de avión de papel que representa la acción de enviar un mensaje. Visualmente resulta evidente, pero sin descripción accesible no es comprensible para quien no puede ver la pantalla:

<ImageButton
android:id="@+id/sendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_send"
android:contentDescription="Enviar mensaje"
/>

En este ejemplo, TalkBack leerá “Enviar mensaje” al situarse sobre el botón, en lugar de un nombre de archivo técnico.

Ejemplo con Jetpack Compose

En Compose, la accesibilidad se maneja mediante modificadores de semántica. El equivalente a contentDescription sería:

IconButton(
onClick = { /* Acción para enviar */ },
modifier = Modifier.semantics { contentDescription = "Enviar mensaje" }
) {
Icon(
imageVector = Icons.Default.Send,
contentDescription = null // Evitamos redundancia
)
}

En este ejemplo el botón anuncia la etiqueta “Enviar mensaje” al interactuar con TalkBack. El icono interno no necesita contentDescription porque ya se ha definido en el contenedor.

Buenas prácticas

La propiedad contentDescription es sencilla de usar, pero conviene aplicarla con criterio:

  1. Priorizar la función: un icono de engranaje para un botón para ir a los ajustes de la app no debería describirse como “rueda dentada”, sino como “Ajustes”, que es la acción real.
  2. Ser breve y claro: descripciones cortas facilitan la navegación. Un botón que abre un chat debe decir “Abrir chat”, no “Icono de burbuja de diálogo para iniciar conversación”.
  3. Evitar redundancias: si un TextView ya tiene texto visible, no es necesario repetirlo en contentDescription. TalkBack lo leerá automáticamente.
  4. Ocultar lo decorativo: para imágenes que solo son decorativas, se debe establecer android:contentDescription=»@null» en XML o contentDescription = null en Compose. De esta forma TalkBack las ignora.

Etiquetar adecuadamente los componentes visuales no solo es una buena práctica de desarrollo, sino un compromiso con la inclusión digital. Al igual que ocurre con cualquier aspecto del diseño, dedicar unos segundos a escribir una descripción accesible marca la diferencia entre una app usable y otra que excluye a parte de sus usuarios. La propiedad contentDescription es una de las herramientas más simples y a la vez más poderosas que Android pone en manos de los desarrolladores para mejorar la accesibilidad. Añadir una descripción clara y precisa a imágenes e iconos garantiza que los usuarios con lectores de pantalla comprendan e interactúen con la interfaz en igualdad de condiciones.