feat(perfiles): la máquina HABLA — 114 idiomas en los cinco escritorios
`censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente afuera de
verdad: sin voz, una distro no es incómoda para quien no ve — es **inusable**. Y ninguna otra métrica
del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la máquina es muda.
espeak-ng 21 MB · 114 diccionarios de idioma · síntesis formante, sin modelos ni red ni GPU
7 símbolos de audio + 3 libs de sonido en NEEDED + 364 ficheros de datos
pcaudiolib la salida de audio (pulse + alsa). Sin ella espeak-ng COMPILA IGUAL y sintetiza a
.wav sin reproducir: `espeak-ng "hola"` no haría ruido
sonic velocidad sin cambiar el tono. No es opcional aunque su find_library no lleve
REQUIRED: si no la encuentra, espeak-ng la CLONA de git y el sandbox no tiene red
Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los scripts viejos
invocan los dos primeros.
Seis intentos, y lo que los hizo valer la pena es que **cada uno bajó un nivel real de la cadena**
en vez de repetir el mismo error: el `.pc` que me inventé · el patrón de detección de backends ·
el `else()` de cmake que clona de git · los `-l` de pulse/alsa que un `.a` no propaga · `libsndfile`
tres saltos más abajo · y mi guardián mirando el binario en vez de la `.so`.
⚠ Lo que NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y `py3-gobject`, los
dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a `librsvg`, con el mismo
coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro **habla**; que además **lea
la pantalla** es la otra mitad y es una decisión de campaña.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
1 files · +120 −0
- docs/state/targets.toml +120 −0
diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index fd0f3faa..3a03d96f 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -546,6 +546,30 @@ paquetes = [
# menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
# `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
"fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+ # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+ # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+ # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+ # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+ # máquina es muda.
+ #
+ # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+ # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+ # scripts viejos invocan los dos primeros.
+ #
+ # Los tres van juntos y el orden es el de la cadena:
+ # `espeak-ng` el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+ # `pcaudiolib` la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+ # sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+ # la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+ # `sonic` cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+ # `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+ # en tiempo de build, y el sandbox no tiene red
+ #
+ # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+ # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+ # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+ # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+ "espeak-ng", "pcaudiolib", "sonic",
"fontconfig-shared", # /etc/fonts/fonts.conf y el soname que enlaza el riel
"freetype-shared", # libfontconfig.so.1 pide libfreetype.so.6: sin ella el riel muere al cargar
"libpng-shared", # y freetype pide libpng16.so.16 — la cadena entera entro por querer letras
@@ -683,6 +707,30 @@ paquetes = [
# menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
# `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
"fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+ # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+ # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+ # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+ # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+ # máquina es muda.
+ #
+ # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+ # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+ # scripts viejos invocan los dos primeros.
+ #
+ # Los tres van juntos y el orden es el de la cadena:
+ # `espeak-ng` el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+ # `pcaudiolib` la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+ # sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+ # la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+ # `sonic` cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+ # `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+ # en tiempo de build, y el sandbox no tiene red
+ #
+ # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+ # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+ # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+ # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+ "espeak-ng", "pcaudiolib", "sonic",
# `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de
# iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las
# statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream
@@ -1330,6 +1378,30 @@ paquetes = [
# menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
# `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
"fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+ # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+ # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+ # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+ # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+ # máquina es muda.
+ #
+ # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+ # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+ # scripts viejos invocan los dos primeros.
+ #
+ # Los tres van juntos y el orden es el de la cadena:
+ # `espeak-ng` el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+ # `pcaudiolib` la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+ # sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+ # la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+ # `sonic` cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+ # `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+ # en tiempo de build, y el sandbox no tiene red
+ #
+ # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+ # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+ # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+ # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+ "espeak-ng", "pcaudiolib", "sonic",
# `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de
# iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las
# statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream
@@ -1617,6 +1689,30 @@ paquetes = [
# menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
# `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
"fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+ # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+ # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+ # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+ # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+ # máquina es muda.
+ #
+ # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+ # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+ # scripts viejos invocan los dos primeros.
+ #
+ # Los tres van juntos y el orden es el de la cadena:
+ # `espeak-ng` el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+ # `pcaudiolib` la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+ # sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+ # la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+ # `sonic` cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+ # `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+ # en tiempo de build, y el sandbox no tiene red
+ #
+ # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+ # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+ # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+ # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+ "espeak-ng", "pcaudiolib", "sonic",
# ⚠ «sin puntero» lo decía este comentario desde que se escribió y NO era cierto: `cosmic-icons`
# instala iconos de aplicación, no cursores, así que este perfil llegó a 43/43 con el puntero
# INVISIBLE. Lo cazó `vigia-imagen.py` el 2026-09-04. Los cursores son su propia raíz.
@@ -1923,6 +2019,30 @@ paquetes = [
# menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
# `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
"fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+ # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+ # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+ # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+ # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+ # máquina es muda.
+ #
+ # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+ # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+ # scripts viejos invocan los dos primeros.
+ #
+ # Los tres van juntos y el orden es el de la cadena:
+ # `espeak-ng` el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+ # `pcaudiolib` la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+ # sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+ # la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+ # `sonic` cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+ # `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+ # en tiempo de build, y el sandbox no tiene red
+ #
+ # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+ # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+ # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+ # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+ "espeak-ng", "pcaudiolib", "sonic",
# `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de
# iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las
# statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream