Voces nuevas: Nico v2, la voz de Rafa y los autores con más tráfico todavía sin clonar #189

Open
opened 2026-08-03 01:08:52 +00:00 by rafa · 1 comment
Owner

Continuación de #152 (voces clonadas por autor) y complemento de #188 (backlog de TTS). Aquí van las voces nuevas: la segunda de Nico, la de Rafa, y qué autores merece la pena clonar según el tráfico real.

1. Voz nueva de Nico — creada y localizada

Existe en la cuenta de MiniMax, verificado por API (POST /v1/get_voice, voice_type=voice_cloning):

voice_id Creada
NicoFeadulta2026 2026-06-17
FrayMarcosFeadulta2026 · PagolaFeadulta2026 · SicreFeadulta2026 · ArregiFeadulta2026 2026-07-09
nico_feadulta_es_20260802 2026-08-02

La clonó Hermes (sesión 20260730_083223_151be15f). Traza recuperada de ~/.hermes/state.db:

  • Fuente: /home/rafa/.hermes/audio_cache/audio_958cc8c685af.mp3 — grabación autorizada de Nico.
  • Subida con purpose=voice_clone a /v1/files/upload, clonada con /v1/voice_clone, modelo speech-2.8-hd.
  • Pruebas guardadas en /home/rafa/voice-memos/nico-feadulta/: nico-clone-preview.mp3 (demo de la clonación) y nico-clone-reuse-test.mp3 (reutilización con texto distinto, que es lo que había que demostrar).

⚠️ La fuente no cumple el estándar de calidad de #152

Medido con ffprobe sobre el fichero real:

Fuente de Nico Estándar de #152 Clips de los 4 autores
Duración 63 s 3-5 min ~2 min
Códec AAC 66 kbps mono, contenedor m4a

Extensión .mp3 pero contenedor mov/mp4/m4a con AAC a 66 kbps: es el perfil de una nota de voz de WhatsApp, que es justo lo que #152 descarta por escrito. Y las dos pruebas duran 7,6 s y 5,5 s — demuestran que la voz se reutiliza, no que aguante un artículo entero.

El propio Hermes lo dejó apuntado al cerrar: el siguiente salto sería pedirle 3-5 minutos adicionales de lectura para estabilizarla mejor en cartas largas. Coincido.

Prueba que falta antes de cablearla (barata, 1 audio): sintetizar un artículo real de ~4.000 caracteres (los del backlog rondan eso, unos 5 min de locución) con nico_feadulta_es_20260802 y compararlo con el mismo texto en NicoFeadulta2026. Si a los 4 minutos se deshilacha, hace falta la grabación larga.

Decisión: ¿sustituye a NicoFeadulta2026 como voz por defecto?

No es un detalle menor. NicoFeadulta2026 es el VOICE por defecto de tts_produce.py: todo autor sin voz clonada se locuta con ella. Estado actual:

Voz Audios
NicoFeadulta2026 95
(sin meta fea_audio_voice, anteriores a #152 — también Nico) 43
FrayMarcosFeadulta2026 43
PagolaFeadulta2026 13
SicreFeadulta2026 10
ArregiFeadulta2026 4
Total 208

Son 138 audios con la Nico vieja. Si la nueva la sustituye, hay que decidir si se regeneran (~14 puntos de cuota semanal, media jornada de cron) o si conviven las dos. Recordatorio de #188: listpending ya trata como pendiente lo locutado con una voz distinta de la esperada, así que basta con cambiar el mapping para que la regeneración entre sola en la cola. Cuidado con eso: es potente y es fácil disparar 138 audios sin querer.

Nota menor: nico_feadulta_es_20260802 rompe el convenio de nombres (NombreFeadulta2026). El código acepta cualquier cadena, pero conviene decidir si se unifica.

2. Voz de Rafa

Pendiente de grabar. Aplicar el protocolo del §4: 3-5 min, grabadora del móvil o vídeo, sin música ni ruido.

Pregunta antes de nada: existe el autor 396 «Rafael Calvo Beca», con 183 artículos ES publicados (156 sin audio) y 11.138 visitas en GA4. ¿La voz a digitalizar es para firmar como ese autor, o es para narración general (intros, secciones sin autor)? No lo doy por supuesto: son dos cosas distintas y el cableado en AUTHOR_VOICES solo aplica a la primera.

3. Qué autores clonar, por tráfico real

De GA4, 14-oct-2025 a 02-ago-2026, cruzando pagePath → id de K2 → meta _fgj2wp_old_k2_id → post. Excluidas las páginas de listado (/itemlist/), que si no la página de autor de Fray Marcos se cuela como si fuera un artículo.

# id Autor Vistas Artículos sin audio Vistas/artículo ¿Voz?
1 382 Fray Marcos 131.653 970 67
2 774 José Luis Sicre 65.307 591 101
3 383 José Antonio Pagola 65.186 360 165
4 384 Enrique Martínez Lozano 60.442 827 68
5 385 José Enrique Galarreta 56.572 408 139
6 408 «Nuevo Testamento» 54.686 236 231
7 583 Fidel Aizpurúa 40.254 139 262
8 395 Florentino Ulibarri 40.212 352 112
9 387 Eloy Roy 27.032 87 311
10 389 Vicente Martínez 25.985 395 66
11 775 Miguel A. Munárriz 25.066 266 84
12 388 Dolores Aleixandre 19.497 132 148
13 746 Vicky Irigaray 19.080 638 29
14 386 José Arregi 14.560 390 35
16 396 Rafael Calvo Beca 11.138 156 68

Lo que dice esta tabla: las cuatro voces existentes se eligieron por quién firma la carta semanal, no por quién se lee. Arregi es el 14º por tráfico, por debajo de siete autores sin clonar. Enrique Martínez Lozano tiene casi tanto tráfico como Sicre o Pagola y 827 artículos esperando.

Orden propuesto: 384 Enrique → 385 Galarreta → 583 Aizpurúa → 395 Ulibarri. Aizpurúa sube puestos porque con solo 139 artículos pendientes se cierra entero en unos días y tiene la mejor relación vistas/artículo del grupo (262).

Dos casos a decidir aparte:

  • 408 «Nuevo Testamento» no parece una persona sino una sección. Si no hay una voz humana detrás, va con la voz por defecto y no necesita clon — pero son 54.686 visitas, así que merece la pena mirar qué es exactamente.
  • 387 Eloy Roy tiene la mejor relación vistas/artículo de toda la tabla (311) con solo 87 pendientes. Barato y rentable si se consigue grabación.

Restricción real: para clonar hace falta grabación limpia. En #152 salieron de YouTube. Para autores sin vídeo público, o lo graban ellos o no hay voz.

4. Protocolo de calidad (consolidado)

De #152, más lo aprendido aquí:

  1. 3-5 minutos de lectura continua. 63 s se han demostrado suficientes para clonar, no para dar por buena la voz en textos largos.
  2. Grabadora del móvil o vídeo. Nunca nota de voz de WhatsApp (AAC ~64 kbps la degrada, y es lo que ha pasado con la fuente de Nico).
  3. Si viene de YouTube: revisar el espectrograma antes de clonar. La música de intro se cuela — pasó con Pagola, dos tramos descartados.
  4. Huecos de silencio por debajo de -45 dB y sin tonos persistentes. El candidato de Arregi se descartó por ruido a -41 dB y un tono a 12,5 kHz.
  5. Prueba de aceptación nueva: un artículo real completo (~4.000 caracteres), no una frase. Es lo que faltó aquí.

5. Decisiones abiertas

  • ¿nico_feadulta_es_20260802 sustituye a NicoFeadulta2026 por defecto? ¿Y se regeneran los 138 audios viejos?
  • ¿Se le pide a Nico la grabación de 3-5 min para rehacer la voz con el estándar bueno?
  • La voz de Rafa, ¿es para el autor 396 o para narración general?
  • ¿Se confirma el orden 384 → 385 → 583 → 395?
  • ¿Qué es el autor 408 «Nuevo Testamento»?

Datos de GA4 y de la BD medidos el 2026-08-02. La traza de la clonación de Nico sale de ~/.hermes/state.db, sesión 20260730_083223_151be15f.

Continuación de #152 (voces clonadas por autor) y complemento de #188 (backlog de TTS). Aquí van las **voces nuevas**: la segunda de Nico, la de Rafa, y qué autores merece la pena clonar según el tráfico real. ## 1. Voz nueva de Nico — creada y localizada Existe en la cuenta de MiniMax, verificado por API (`POST /v1/get_voice`, `voice_type=voice_cloning`): | voice_id | Creada | |---|---| | `NicoFeadulta2026` | 2026-06-17 | | `FrayMarcosFeadulta2026` · `PagolaFeadulta2026` · `SicreFeadulta2026` · `ArregiFeadulta2026` | 2026-07-09 | | **`nico_feadulta_es_20260802`** | **2026-08-02** | La clonó Hermes (sesión `20260730_083223_151be15f`). Traza recuperada de `~/.hermes/state.db`: - **Fuente:** `/home/rafa/.hermes/audio_cache/audio_958cc8c685af.mp3` — grabación autorizada de Nico. - Subida con `purpose=voice_clone` a `/v1/files/upload`, clonada con `/v1/voice_clone`, modelo `speech-2.8-hd`. - **Pruebas guardadas** en `/home/rafa/voice-memos/nico-feadulta/`: `nico-clone-preview.mp3` (demo de la clonación) y `nico-clone-reuse-test.mp3` (**reutilización con texto distinto**, que es lo que había que demostrar). ### ⚠️ La fuente no cumple el estándar de calidad de #152 Medido con `ffprobe` sobre el fichero real: | | Fuente de Nico | Estándar de #152 | Clips de los 4 autores | |---|---|---|---| | Duración | **63 s** | 3-5 min | ~2 min | | Códec | AAC 66 kbps mono, contenedor m4a | — | — | Extensión `.mp3` pero contenedor `mov/mp4/m4a` con AAC a 66 kbps: es el perfil de una **nota de voz de WhatsApp**, que es justo lo que #152 descarta por escrito. Y las dos pruebas duran **7,6 s y 5,5 s** — demuestran que la voz se reutiliza, no que aguante un artículo entero. El propio Hermes lo dejó apuntado al cerrar: *el siguiente salto sería pedirle 3-5 minutos adicionales de lectura para estabilizarla mejor en cartas largas*. Coincido. **Prueba que falta antes de cablearla (barata, 1 audio):** sintetizar un artículo real de ~4.000 caracteres (los del backlog rondan eso, unos 5 min de locución) con `nico_feadulta_es_20260802` y compararlo con el mismo texto en `NicoFeadulta2026`. Si a los 4 minutos se deshilacha, hace falta la grabación larga. ### Decisión: ¿sustituye a `NicoFeadulta2026` como voz por defecto? No es un detalle menor. `NicoFeadulta2026` es el `VOICE` por defecto de `tts_produce.py`: **todo autor sin voz clonada se locuta con ella**. Estado actual: | Voz | Audios | |---|---| | `NicoFeadulta2026` | 95 | | (sin meta `fea_audio_voice`, anteriores a #152 — también Nico) | 43 | | `FrayMarcosFeadulta2026` | 43 | | `PagolaFeadulta2026` | 13 | | `SicreFeadulta2026` | 10 | | `ArregiFeadulta2026` | 4 | | **Total** | **208** | Son **138 audios con la Nico vieja**. Si la nueva la sustituye, hay que decidir si se regeneran (~14 puntos de cuota semanal, media jornada de cron) o si conviven las dos. Recordatorio de #188: `listpending` ya trata como pendiente lo locutado con una voz distinta de la esperada, así que **basta con cambiar el mapping para que la regeneración entre sola en la cola**. Cuidado con eso: es potente y es fácil disparar 138 audios sin querer. Nota menor: `nico_feadulta_es_20260802` rompe el convenio de nombres (`NombreFeadulta2026`). El código acepta cualquier cadena, pero conviene decidir si se unifica. ## 2. Voz de Rafa Pendiente de grabar. Aplicar el protocolo del §4: 3-5 min, grabadora del móvil o vídeo, sin música ni ruido. **Pregunta antes de nada:** existe el autor **396 «Rafael Calvo Beca»**, con 183 artículos ES publicados (156 sin audio) y **11.138 visitas** en GA4. ¿La voz a digitalizar es para firmar como ese autor, o es para narración general (intros, secciones sin autor)? No lo doy por supuesto: son dos cosas distintas y el cableado en `AUTHOR_VOICES` solo aplica a la primera. ## 3. Qué autores clonar, por tráfico real De GA4, 14-oct-2025 a 02-ago-2026, cruzando `pagePath` → id de K2 → meta `_fgj2wp_old_k2_id` → post. Excluidas las páginas de listado (`/itemlist/`), que si no la página de autor de Fray Marcos se cuela como si fuera un artículo. | # | id | Autor | Vistas | Artículos sin audio | Vistas/artículo | ¿Voz? | |---|---|---|---|---|---|---| | 1 | 382 | Fray Marcos | 131.653 | 970 | 67 | ✅ | | 2 | 774 | José Luis Sicre | 65.307 | 591 | 101 | ✅ | | 3 | 383 | José Antonio Pagola | 65.186 | 360 | 165 | ✅ | | 4 | **384** | **Enrique Martínez Lozano** | **60.442** | **827** | 68 | ❌ | | 5 | **385** | **José Enrique Galarreta** | **56.572** | **408** | 139 | ❌ | | 6 | **408** | **«Nuevo Testamento»** | **54.686** | **236** | **231** | ❌ | | 7 | **583** | **Fidel Aizpurúa** | **40.254** | **139** | **262** | ❌ | | 8 | **395** | **Florentino Ulibarri** | **40.212** | **352** | 112 | ❌ | | 9 | 387 | Eloy Roy | 27.032 | 87 | **311** | ❌ | | 10 | 389 | Vicente Martínez | 25.985 | 395 | 66 | ❌ | | 11 | 775 | Miguel A. Munárriz | 25.066 | 266 | 84 | ❌ | | 12 | 388 | Dolores Aleixandre | 19.497 | 132 | 148 | ❌ | | 13 | 746 | Vicky Irigaray | 19.080 | 638 | 29 | ❌ | | 14 | 386 | José Arregi | 14.560 | 390 | 35 | ✅ | | 16 | 396 | Rafael Calvo Beca | 11.138 | 156 | 68 | ❌ | **Lo que dice esta tabla:** las cuatro voces existentes se eligieron por quién firma la carta semanal, no por quién se lee. **Arregi es el 14º por tráfico**, por debajo de siete autores sin clonar. Enrique Martínez Lozano tiene casi tanto tráfico como Sicre o Pagola y **827 artículos** esperando. **Orden propuesto:** 384 Enrique → 385 Galarreta → 583 Aizpurúa → 395 Ulibarri. Aizpurúa sube puestos porque con solo 139 artículos pendientes se cierra entero en unos días y tiene la mejor relación vistas/artículo del grupo (262). **Dos casos a decidir aparte:** - **408 «Nuevo Testamento»** no parece una persona sino una sección. Si no hay una voz humana detrás, va con la voz por defecto y no necesita clon — pero son 54.686 visitas, así que merece la pena mirar qué es exactamente. - **387 Eloy Roy** tiene la mejor relación vistas/artículo de toda la tabla (311) con solo 87 pendientes. Barato y rentable si se consigue grabación. **Restricción real:** para clonar hace falta grabación limpia. En #152 salieron de YouTube. Para autores sin vídeo público, o lo graban ellos o no hay voz. ## 4. Protocolo de calidad (consolidado) De #152, más lo aprendido aquí: 1. **3-5 minutos** de lectura continua. 63 s se han demostrado suficientes para clonar, **no** para dar por buena la voz en textos largos. 2. Grabadora del móvil o vídeo. **Nunca nota de voz de WhatsApp** (AAC ~64 kbps la degrada, y es lo que ha pasado con la fuente de Nico). 3. Si viene de YouTube: **revisar el espectrograma antes de clonar.** La música de intro se cuela — pasó con Pagola, dos tramos descartados. 4. Huecos de silencio por debajo de -45 dB y sin tonos persistentes. El candidato de Arregi se descartó por ruido a -41 dB y un tono a 12,5 kHz. 5. **Prueba de aceptación nueva: un artículo real completo (~4.000 caracteres), no una frase.** Es lo que faltó aquí. ## 5. Decisiones abiertas - [ ] ¿`nico_feadulta_es_20260802` sustituye a `NicoFeadulta2026` por defecto? ¿Y se regeneran los 138 audios viejos? - [ ] ¿Se le pide a Nico la grabación de 3-5 min para rehacer la voz con el estándar bueno? - [ ] La voz de Rafa, ¿es para el autor 396 o para narración general? - [ ] ¿Se confirma el orden 384 → 385 → 583 → 395? - [ ] ¿Qué es el autor 408 «Nuevo Testamento»? --- _Datos de GA4 y de la BD medidos el 2026-08-02. La traza de la clonación de Nico sale de `~/.hermes/state.db`, sesión `20260730_083223_151be15f`._
Author
Owner

Aclaración de Rafa (2026-08-02): su voz es para narración general

La voz de Rafa NO va asociada al autor 396. Rafa no es autor del portal; «Rafael Calvo Beca» (396, 183 artículos, 11.138 visitas) es otra persona.

Su voz se quiere como alternativa a Nico para narración general, es decir, como la voz por defecto de todo lo que no tiene autor con voz clonada.

Qué implica en el código, que no es lo mismo que las otras voces:

  • No entra en AUTHOR_VOICES de scripts/minimax_tts.py. Ese mapping es author_id → voz y solo aplica a artículos firmados.
  • Es candidata a la constante VOICE de scripts/tts_produce.py, hoy NicoFeadulta2026. O sea que compite con Nico por el mismo puesto: la voz por defecto es una sola.
  • Por tanto la decisión abierta del §5 («¿nico_feadulta_es_20260802 sustituye a NicoFeadulta2026?») pasa a ser a tres bandas: Nico v1, Nico v2 y la voz de Rafa. Con 138 audios ya locutados con Nico v1, conviene decidirlo una sola vez y no ir cambiando.

Sigue aplicando lo del §4 para grabarla: 3-5 min de lectura continua, grabadora del móvil o vídeo, sin música ni ruido de fondo, y la prueba de aceptación con un artículo real completo de ~4.000 caracteres, no con una frase.

Actualizadas las decisiones abiertas del §5 en consecuencia.

## Aclaración de Rafa (2026-08-02): su voz es para narración general **La voz de Rafa NO va asociada al autor 396.** Rafa no es autor del portal; «Rafael Calvo Beca» (396, 183 artículos, 11.138 visitas) es otra persona. Su voz se quiere como **alternativa a Nico para narración general**, es decir, como la voz por defecto de todo lo que no tiene autor con voz clonada. **Qué implica en el código, que no es lo mismo que las otras voces:** - **No entra en `AUTHOR_VOICES`** de `scripts/minimax_tts.py`. Ese mapping es `author_id → voz` y solo aplica a artículos firmados. - Es candidata a la constante `VOICE` de `scripts/tts_produce.py`, hoy `NicoFeadulta2026`. O sea que compite con Nico por el mismo puesto: **la voz por defecto es una sola**. - Por tanto la decisión abierta del §5 («¿`nico_feadulta_es_20260802` sustituye a `NicoFeadulta2026`?») pasa a ser a **tres bandas**: Nico v1, Nico v2 y la voz de Rafa. Con 138 audios ya locutados con Nico v1, conviene decidirlo una sola vez y no ir cambiando. Sigue aplicando lo del §4 para grabarla: 3-5 min de lectura continua, grabadora del móvil o vídeo, sin música ni ruido de fondo, y la prueba de aceptación con un artículo real completo de ~4.000 caracteres, no con una frase. Actualizadas las decisiones abiertas del §5 en consecuencia.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rafa/feadulta#189