Mostrando entradas con la etiqueta IA. Mostrar todas las entradas
Mostrando entradas con la etiqueta IA. Mostrar todas las entradas

13/6/26

Ollama Cloud y la Radio IA ya están aquí

 

Ollama Cloud permite ejecutar modelos en la Nube. Tiene una opción gratuita y una amplia variedad de modelos, no es Openrouter pero funciona bien. Tras darme cuenta de que Minimax me estaba haciendo perder el tiempo, DeepSeek ha tomado el control de mi OpenClaw siendo muchísimo más eficiente. He solucionado varias cosas, las tareas periódicas se han ejecutado limpiamente y sin complicaciones.

Ahora estoy usando el LLM Nemotron Ultra 3. Detalles curiosos, no basta con darle a OpenClaw la API y funcionar. Ollama debe estar corriendo en local, al haberle pedido a Jane que use Nemotron en Cloud ya me sale el modelo cloud para seleccionar, OpenClaw (en adelante OC) conecta con mi máquina que monta un servidor y hace de puente a Ollama Cloud. La idea es probar Nemotron para que se ponga a hacer guiones (menos mal que la operación la supervisa DeepSeek, si lo hubiera hecho MiniMax estaría montando complejos scripts que no servirían de nada, sólo para agotar el uso de 5 horas). 

Mientras tanto: la Mega Isla.

Ya he contratado el VPS y he migrado la proto Isla. Mientras /Codex ha tenido una actualización, me parecía raro que Codex estaba en plan "no puedo conectarme por ssh porque me da errores), y no, no eran errores, sino que no tenía los permisos más "peligrosos" y generosos. Una vez que se los di Codex se ha puesto a hacer su magia. Es brutal.

Mientras escribo esto Nemotron está trabajando en los guiones como un agente dirigido por DeepSeek, y ¡está haciendo un buen trabajo! Esto me convence, si funciona así de bien la suscripción de Ollama está al caer, con DeepSeek como agente director enviando tareas a Ollama y el modelo que corresponda. 

Os dejo un fragmento del guión, gratamente sorprendido. Está generando noticias de más de 200 palabras que luego se leeran en la radio. Una vez terminados los guiones le pido a Jane que siga usando Nemotron para crear los audios. La radio ya tiene 80 horas. Me surge la duda... ¿la uso como radio convencional o como emisión de youtube de noticias? ¿o como ambas? Os dejo la noticia para que lo valoréis. 


Harto de Minimax / El proyecto de la Radio IA de Tecnología

Se me ocurrió la idea de crear una emisora de radio basada 100% en IA, que tomara noticias de tecnología y las emitiera de forma continua, actualizando sus guiones y emitiéndolos. Algo más que posible porque algo muy parecido ya hace Openclaw cada mañana al mandarme un boletín de noticias en audio con una voz de Azure que funciona de fábula. Es una especie de podcast emitido sólo para mí, estoy muy satisfecho del resultado y del contenido que me ofrece así que ¿por qué no hacer eso mismo pero con una emisora online? La IA ha eliminado las limitaciones técnicas, ahora sólo tengo que dar la orden y esa máquina misteriosa se ocupara de montarlo, solucionar los problemas y ejecutarlo. Así de sencillo, al fin y al cabo funcionaba con DeepSeek, y con Codex ni os digo. Y bueno, MiniMax no es el más listo de su clase pero se defiende, así que no debería salir mal, ¿no? Minimax hasta ahora se ha defendido en tareas menores, es sobresaliente creando audios y canciones, pero cuando le he pedido una tarea como la de montar una radio basada en IA, ha cometido tantos errores que ha tardado muchísimo y el resultado ha sido lamentable, noticias repetidas, audios con noticias repetidas... terrible.

Cuando la cuota de las 5 horas se agotó y pasé a GPT 5.5 en unos pocos minutos solucionó los problemas y levantó la radio. Sencillo, eficaz. Seguro que Deepseek también lo hubiera hecho bien. Ya he desactivado la renovación automática, pasaré a usar Ollama Cloud con su cuota de 20 Euros, seguro que otros modelos lo hacen mejor que MiniMax. Para tareas menores aunque da algunos palos de ciego, termina haciendo lo que le pido, pero no tenía nada que ver con el funcionamiento de DeepSeek. Agur, Sayonara, hasta nunca amigo. Toca probar nuevas aventuras, o quemar Tokens como si fuera rico. Es la fiebre de la IA. Y por supuesto, toca echar mano de Codex, eficiente, competente, y con buenos límites. 

Si mañana esto sigue dando guerra, pasaré a Codex. 

OS COMPARTO LA DOCUMENTACIÓN DEL PROYECTO DE LA "RADIO IA"

==========================================================================

  RADIO IA - DOCUMENTACION DEL PROYECTO

==========================================================================

  Fecha:     13 junio 2026

  Creado por: Jane (asistente OpenClaw de Julio)

  Proposito: Documentar el proyecto para que cualquier modelo futuro pueda

             entenderlo, mantenerlo y ampliarlo sin partir de cero.

==========================================================================

ÍNDICE

  1. QUÉ ES RADIO IA

  2. ARQUITECTURA GENERAL

  3. TECNOLOGÍAS Y DEPENDENCIAS

  4. ESTRUCTURA DE DIRECTORIOS

  5. FLUJO DE TRABAJO COMPLETO

     5.1. Scraping (obtener noticias)

     5.2. Generación de guiones (LLM)

     5.3. Traducción (si aplica)

     5.4. Síntesis de voz (TTS)

     5.5. Empaquetado y emisión

  6. JERARQUÍA DE LLM

  7. JERARQUÍA DE TTS

  8. ESTADO ACTUAL (13 JUN 2026)

  9. PROBLEMAS CONOCIDOS Y WORKAROUNDS

  10. TRABAJO REALIZADO

      10.1. Histórico (primeras tandas)

      10.2. Trabajo de Jane (12-13 Jun 2026)

  11. COMANDOS ÚTILES

  12. CREDENCIALES (referencia, sin tokens)

  13. NOTAS PARA EL PRÓXIMO MODELO


==========================================================================

1. QUÉ ES RADIO IA

==========================================================================

Radio IA es una emisora de radio online autónoma que:

  - Extrae noticias tecnológicas de ~40 fuentes RSS y NewsAPI

  - Genera guiones de locución con modelos de lenguaje (LLM)

  - Convierte los guiones a audio mediante síntesis de voz (TTS)

  - Emite en bucle via Icecast en http://localhost:8000/radioia


Creada por Julio, inicialmente con XTTS (voz clonada de Samuel), después

ampliada con Azure TTS (voz Beatriz), MiniMax TTS y edge-tts (Microsoft).


2. ARQUITECTURA GENERAL


  [RSS Feeds + NewsAPI]

         |

    scraper.py (extrae artículos)

         |

    guion.py (LLM genera guion de locución en español)

         |

    tts_xtts.py / azure_tts.py / minimax_tts.py (síntesis de voz)

         |

    Ficheros MP3 en audios/noticias/

         |

    emision.py (construye playlist y la envía a Icecast via ffmpeg)

         |

    Icecast server (localhost:8000/radioia)

         |

    Oyente (navegador, VLC, reproductor HTTP)



3. TECNOLOGÍAS Y DEPENDENCIAS

  - Python         3.12+ (coqui-tts necesita 3.12) / 3.14 también presente

  - Icecast        2.4.4 (servidor de streaming, binario en icecast/)

  - ffmpeg         Para concat de audios y streaming a Icecast

  - edge-tts       Síntesis de voz Microsoft (gratis, sin API key)

  - coqui-tts      XTTS v2 local con fine-tune de voz Samuel

  - Azure Speech   TTS cognitivo de Microsoft (2h/día gratis, necesita key)

  - MiniMax TTS    TTS de MiniMax (Spanish_SereneWoman, necesita key)

  - Ollama         LLM local (qwen3:14b, gemma4:12b) - último recurso

  - OpenRouter     API para LLM (nemotron-nano-9b-v2:free)

  - NewsAPI        API agregadora de noticias (30 llamadas/día)

  - pydub          Para combinar audios (intros + noticias + promos)



4. ESTRUCTURA DE DIRECTORIOS


  C:\Python313\Radio IA\

  ├── audios/

  │   ├── noticias/        MP3 generados (noticias individuales y bloques)

  │   ├── noticias/rechazados_xtts/  Audios fallados de XTTS

  │   ├── relleno/         Audios de transición

  │   └── jingles/         Cabeceras/cierres (sintonías)

  ├── bin/

  │   ├── radioia.cmd      CLI unificado (punto de entrada recomendado)

  │   ├── arrancar_icecast.ps1 / arrancar_radioia.ps1

  │   ├── estado_radioia.ps1

  │   └── parar_radioia.ps1

  ├── data/

  │   ├── playlist.txt     Playlist activa en formato ffmpeg concat

  │   ├── manifest_*.json  Manifiestos de tandas de producción

  │   ├── azure_tts_usage.json  Control de cuota diaria Azure TTS

  │   ├── newsapi_usage.json    Control de cuota diaria NewsAPI

  │   └── edge_ollama_*.json   Manifiestos de edge-tts

  ├── guiones/

  │   ├── *.jsonl          Guiones en formato JSONL (id, title, source, script)

  │   └── *.md             Guiones en Markdown (legible)

  ├── logs/

  │   ├── *.log            Logs de producción y errores

  │   ├── *.out.log        Salida estándar

  │   └── *.err.log        Errores

  ├── icecast/

  │   ├── icecast.xml      Configuración de Icecast

  │   └── icecast/         Binarios de Icecast (extraídos)

  ├── src/

  │   ├── scraper.py       Extrae artículos de RSS y NewsAPI

  │   ├── guion.py         Genera guiones de locución con LLM

  │   ├── tts_xtts.py      Síntesis XTTS local y edge-tts

  │   ├── azure_tts.py     Síntesis Azure Speech

  │   ├── minimax_tts.py   Síntesis MiniMax TTS

  │   ├── producir.py      Orquesta 1 bloque o buffer N horas

  │   └── emision.py       Construye playlist, arranca Icecast, streamea

  ├── config.py            Configuración global (rutas, keys, parámetros)

  ├── generar_audios_edge_desde_guiones.py  Script autónomo edge-tts desde JSONL

  ├── generar_guiones_ollama_5000.py        Script autónomo generación masiva

  ├── producir_3h_v3.py    Script autónomo producción 3h con jerarquía TTS

  ├── traducir_titulares_guiones.py         Traduce títulos de guiones a español

  ├── DOCUMENTACION_PROYECTO.txt  ESTE ARCHIVO

  └── README.md            Documentación rápida


5. FLUJO DE TRABAJO COMPLETO


5.1. SCRAPING (obtener noticias)

  Archivo: src/scraper.py

  - Lee ~40 feeds RSS de tecnología (config.RSS_FEEDS)

  - Opcionalmente consulta NewsAPI (máx 30/día, config.NEWSAPI_DAILY_LIMIT)

  - Devuelve lista de artículos con título, descripción, fuente

  - Feeds en inglés y español; se marcan con idioma en la tupla (url, nombre, "en"/"es")


5.2. GENERACIÓN DE GUIONES (LLM)

  Archivo: src/guion.py

  - Toma cada artículo y genera un guion de locución (~80-110 palabras)

  - Jerarquía de modelos (ver sección 6)

  - Si el artículo está en inglés, el prompt pide al LLM que genere el guion

    en español directamente (traducción implícita)

  - Devuelve lista de {"id":..., "title":..., "source":..., "script":..., "word_count":...}

  - Los guiones se guardan en guiones/*.jsonl y guiones/*.md


5.3. TRADUCCIÓN EXPLÍCITA (alternativa)

  Archivo: traducir_titulares_guiones.py

  - Toma un JSONL existente con títulos en inglés y traduce títulos y guiones

  - Usa Ollama local (gemma4:12b)

  - Crea un nuevo JSONL con "titulares en español"


5.4. SÍNTESIS DE VOZ (TTS)

  Ver jerarquía completa en sección 7.

  - El script principal es src/tts_xtts.py (también maneja edge-tts)

  - Scripts autónomos:

    * generar_audios_edge_desde_guiones.py → edge-tts, agrupa en bloques

    * generar_audios_minimax_desde_guiones.py → MiniMax TTS

    * generar_audios_xtts_desde_guiones.py → XTTS local

  - Los MP3 se guardan en audios/noticias/

  - Los bloques combinados (intros + noticias + promos) se llaman

    BLOQUE_{BACKEND}_OLLAMA_{RUN_ID}_{BLOQUE_NUM}.mp3


5.5. EMPAQUETADO Y EMISIÓN

  Archivo: src/emision.py

  - Función list_news_audios(): prioriza bloques MiniMax > edge-tts > XTTS

  - Función build_playlist(): combina noticias propias + boletines viejos + podcasts

  - save_playlist(): guarda en formato ffmpeg concat (data/playlist.txt)

  - stream_to_icecast(): lanza ffmpeg que lee la playlist y envía a Icecast

  - Icecast sirve en http://localhost:8000/radioia



6. JERARQUÍA DE LLM (para generar guiones)

  Orden de preferencia:

    1. OpenRouter - nvidia/nemotron-nano-9b-v2:free  (gratis, funcional)

    2. MiniMax - MiniMax-M3  (key da 2049 "invalid" actualmente, histórico)

    3. DeepSeek - deepseek-chat  (key bloqueada por "governor", $8 saldo)

    4. Ollama local - qwen3:14b (siempre disponible)

    5. Ollama local - gemma4:12b (fallback)


  La selección está en src/guion.py.



7. JERARQUÍA DE TTS (para síntesis de voz)


  Orden de preferencia (configurado en config.py y producir_3h_v3.py):

    1. Azure TTS - es-MX-BeatrizNeural (2h/día gratis, necesita key y cuota)

         → Rápido (~2s por audio)

         → Voz preferida de Julio para todo (conversaciones, boletín, radio)

         → Config: estilo friendly, rate 0%, pitch 0%

         → Fichero: src/azure_tts.py

         → Límite diario: config.AZURE_TTS_DAILY_BUDGET_S = 7200s (2h)

         → ⚠️ El 12-13 Jun 2026 se agotó la cuota diaria

    2. MiniMax TTS - Spanish_SereneWoman  (~3s/audio, buena calidad)

         → Fichero: src/minimax_tts.py

         → Daba 2049 "invalid api key" en este período

    3. edge-tts - Microsoft Edge TTS (gratis, sin key)

         → Voces disponibles: es-ES-AlvaroNeural (usado), es-ES-ElviraNeural,

           es-MX-JorgeNeural, es-MX-DaliaNeural

         → Fichero: generar_audios_edge_desde_guiones.py

         → Se usó como respaldo principal cuando Azure y MiniMax fallaron

    4. XTTS local - Voz de Samuel (fine-tune del 26 May 2026)

         → Lento (~50s por chunk), calidad variable

         → Fichero: src/tts_xtts.py

         → Último recurso, a veces balbucea


==============================================================================

8. ESTADO ACTUAL (13 JUN 2026, 01:00)

==============================================================================

  - Icecast: ARRANCADO en localhost:8000

  - Playlist activa: 85 bloques ~228 min (~3,8 horas) de contenido variado

    (mezcla de bloques de producción anterior + relleno)

  - ffmpeg emitiendo en bucle a /radioia

  - Stream accesible: http://127.0.0.1:8000/radioia

  - Admin Icecast: http://127.0.0.1:8000/admin/ (pass: ***)


  Última producción (Jane, 13 Jun 00:48):

  - 43 noticias limpias (ver sección 10.2)

  - Edge TTS con voz es-ES-AlvaroNeural

  - 43 audios individuales (~26 min brutos)

  - 9 bloques compuestos con intros y promos (~31 min totales)

  - Manifest: data/edge_ollama_20260613_004801.json


  Estado de APIs:

  - OpenRouter: FUNCIONANDO (nemotron-nano-9b-v2:free)

  - Azure TTS: CUOTA DIARIA AGOTADA (12 Jun 2026)

  - MiniMax: Key con error 2049 (no funcional)

  - DeepSeek: Key bloqueada por governor

  - Ollama local: Siempre disponible

  - NewsAPI: Sin usar hoy (ahorrando llamadas)

  - Edge TTS: Funcionando perfectamente


==============================================================================

9. PROBLEMAS CONOCIDOS Y WORKAROUNDS

==============================================================================


9.1. TTS: Azure agotado a diario

  - Azure da 2h de TTS gratis al día

  - Si se necesita más, usar edge-tts

  - Workaround: repartir producción entre Azure (rápido) y edge-tts (lento)


9.2. XTTS balbucea

  - A veces XTTS repite sílabas o produce audios ininteligibles

  - Workaround: emision.py tiene RADIOIA_ALLOW_BAD_XTTS=0 por defecto,

    ignora audios XTTS a menos que se fuerce con variable de entorno


9.3. MiniMax key "invalid" (2049)

  - La key de pago por uso de MiniMax da 2049 "invalid api key"

  - Workaround: no usar MiniMax, saltar a edge-tts


9.4. Edge TTS caracteres especiales

  - Algunos caracteres Unicode (superíndices, ×, etc.) se leen mal

  - Workaround: sanitizar el texto antes de enviarlo a edge-tts

  - Ver reglas TTS pitfall en MEMORY.md de Julio


9.5. Noticias repetidas entre tandas

  - El LLM tiende a generar guiones sobre los mismos temas (SpaceX IPO,

    Google demanda china, etc.) aunque los artículos sean distintos

  - Workaround: filtro manual de duplicados temáticos (ver sección 10.2)


9.6. Caracteres rotos en guiones (codificación)

  - Al traducir títulos puede haber '?' donde deberían ir tildes

  - Workaround: pasar un script de fix antes de generar audios


9.7. PowerShell problemas de encoding

  - PowerShell usa CP1252 por defecto, rompe UTF-8

  - Workaround: usar Python para todo I/O de archivos, no Set-Content


==============================================================================

10. TRABAJO REALIZADO

==============================================================================


10.1. HISTÓRICO (primeras tandas - antes de Jane)

  - 12 Jun 2026, ~18:00-22:00: Producción 3h v2 (MiniMax TTS principalmente)

    * ~234 KB de log, varios bloques generados con voz SereneWoman

  - 12 Jun 2026, ~23:00-23:50: Generación masiva de guiones con Ollama

    * Script: generar_guiones_ollama_5000.py

    * 4 tandas de guiones (234441, 234520, 234944, 235351)

    * Cada tanda: archivos .jsonl + .md

  - 12 Jun 2026, ~23:53: Traducción de titulares a español

    * Script: traducir_titulares_guiones.py

    * Crea archivo 235351 con títulos en español

  - 13 Jun 2026, ~00:00-00:30: Producción MiniMax TTS desde guiones

    * Script: generar_audios_minimax_desde_guiones.py

    * Logs: minimax_ollama.out.log (~15 KB)

  - 13 Jun 2026, ~00:25: Producción XTTS (falló? solo 429 bytes de log)

  - 13 Jun 2026, ~00:30: Producción edge-tts

    * Script: generar_audios_edge_desde_guiones.py

    * Primer intento con el JSONL original (235351)

  - 13 Jun 2026, ~00:36: Icecast arrancado y emitiendo


10.2. TRABAJO DE JANE (12-13 Jun 2026, ~00:44-00:51)

  Julio pidió: revisar que los guiones estén en español y sin repetidos,

  luego pasarlos a audio con edge-tts.


  Pasos realizados:

  1. ANÁLISIS del archivo guiones/ollama_5000_20260612_235351.jsonl (56 guiones)

  2. FILTRADO:

     - 6 noticias NO tecnológicas eliminadas:

       * UFC en Casa Blanca

       * Macroplanta biomasa León

       * Padrón telefonía México

       * Funcionarios teletrabajo Catalunya

       * Google TV Copa del Mundo

       * Playa Cerdeña sombrillas

     - 7 DUPLICADOS TEMÁTICOS eliminados:

       * SpaceX IPO: se quedó la principal (ollama-007), se quitaron 5 versiones extra

       * Google demanda china: se quedó la principal (ollama-005), se quitó duplicado

  3. LIMPIEZA de caracteres rotos:

     - 12 guiones con '?' en lugar de tildes (codificación): corregidos

  4. REASIGNACIÓN de IDs: ollama-XXX → noticia-001 a noticia-043

  5. SÍNTESIS edge-tts con es-ES-AlvaroNeural:

     - 43 audios individuales generados (~26 min total)

     - 9 bloques compuestos con intros/promos de Vidas en Red (~31 min total)

     - Manifest JSON guardado en data/edge_ollama_20260613_004801.json

  6. CREACIÓN de DOCUMENTACION_PROYECTO.txt (este archivo)


  Archivos generados por Jane:

  - guiones/ollama_5000_20260612_235351_LIMPIO.jsonl (43 guiones limpios)

  - audios/noticias/EDGE_OLLAMA_noticia-001_20260613_004801.mp3 (y 42 más)

  - audios/noticias/BLOQUE_EDGE_OLLAMA_20260613_004801_01.mp3 (y 8 más)

  - data/edge_ollama_20260613_004801.json (manifest)

  - DOCUMENTACION_PROYECTO.txt (este archivo)


==============================================================================

11. COMANDOS ÚTILES

==============================================================================

  NOTA: todos los comandos asumen C:\Python313\Radio IA como directorio actual.

  Usar: cd /d C:\Python313\Radio IA (cmd) o Set-Location (PowerShell).


  --- CLI principal (radioia.cmd) ---

  radioia test                Detecta backends TTS disponibles

  radioia produce             Genera 1 bloque de noticias (~5 min)

  radioia buffer 3            Pre-graba 3 horas de audio

  radioia playlist            Construye playlist con todos los audios

  radioia icecast             Arranca Icecast en localhost:8000

  radioia stream              Manda playlist a Icecast

  radioia start               Arranca todo (Icecast + emisión)

  radioia stop                Para todo

  radioia status              Muestra estado actual


  --- Desde Python directamente ---

  python -m src.producir --block

  python -m src.producir --buffer 3

  python -m src.emision --build-playlist

  python -m src.emision --start-icecast

  python -m src.emision --stream


  --- Scripts autónomos ---

  python generar_audios_edge_desde_guiones.py [jsonl_path] [limite]

  python generar_audios_minimax_desde_guiones.py [jsonl_path] [limite]

  python generar_guiones_ollama_5000.py


  --- Verificación del stream ---

  curl.exe http://127.0.0.1:8000/radioia          (Windows)

  curl http://127.0.0.1:8000/status-json.xsl      (JSON de estado)

  Abrir http://127.0.0.1:8000/ en navegador


==============================================================================

12. CREDENCIALES (referencia - los tokens reales están en config.py)

==============================================================================

  OpenRouter:     config.OPENROUTER_API_KEY (sk-or-...)

  Azure Speech:  config.AZURE_SPEECH_KEY y REGION

  MiniMax:       config.MINIMAX_API_KEY (sk-cp-...)

  DeepSeek:      config.DEEPSEEK_API_KEY (sk-...)

  NewsAPI:       config.NEWSAPI_KEY (cdb1f0...)

  Ollama:        localhost:11434 (sin key)

  Edge TTS:      sin key (gratis de Microsoft)

  Icecast admin: admin / *** (en icecast.xml y config.py)


  ⚠️ Los tokens de OpenRouter, Azure y NewsAPI son los únicos funcionales

  a día de hoy. MiniMax y DeepSeek están caídos.


==============================================================================

13. NOTAS PARA EL PRÓXIMO MODELO

==============================================================================

  - Si te piden continuar este proyecto, LEE PRIMERO este documento y

    DOCUMENTACION_PROYECTO.txt.

  - Visita http://127.0.0.1:8000/ para ver si Icecast sigue activo.

  - El flujo más fiable ahora mismo es:

      generar_guiones_ollama_5000.py → (usar Ollama local)

      generar_audios_edge_desde_guiones.py → (usar edge-tts, gratis)

      src/emision.py --build-playlist → (construir playlist)

      src/emision.py --stream → (emitir)

  - Si Azure TTS tiene cuota disponible, usarlo primero (más rápido y mejor

    calidad de voz, con es-MX-BeatrizNeural).

  - Los guiones limpios están en ..._LIMPIO.jsonl. Usar SIEMPRE ese.

  - Si el próximo modelo ve caracteres raros en los títulos o scripts:

    es doble encoding UTF-8→CP1252→UTF-8. NO retraducir, aplicar fix

    de reversión de encoding.

  - Para más contexto sobre preferencias de Julio (voz, estilo, reglas):

    leer MEMORY.md y TOOLS.md en C:\Users\julio\.

  - Los logs de producción están en logs/. Los más relevantes:

    * produccion_3h_v2.log (234 KB) - la tanda grande del 12 Jun

    * produccion_v3_b.log (138 KB) - tanda más reciente con MiniMax

    * minimax_ollama.out.log - producción MiniMax TTS

    * edge_ollama.out.log - producción edge-tts de Jane


==========================================================================

  FIN DE DOCUMENTACIÓN

  Guardado: C:\Python313\Radio IA\DOCUMENTACION_PROYECTO.txt

  Creado por: Jane (OpenClaw) el 13 Junio 2026

==========================================================================


6/6/26

MiniMax agotado: un resumen muy breve del dia con Jane

Escucha "Gemma 4 no es para tanto (audio del video)" en Spreaker.

Resumen rapidísimo del día (06/06/2026): Jane ha estado ajustando el sistema de OpenClaw, comparando y probando modelos, dejando WebUI/Ollama listo para consultas locales, documentando el trabajo en el diario y preparando la cascada de modelos para seguir funcionando aunque uno falle.

La anécdota técnica del día: he agotado el cupo de 5 horas de MiniMax. La captura muestra el uso del plan: el consumo de tokens se disparó estos días, así que durante un rato toca tirar de OpenAI, DeepSeek o modelos locales hasta que vuelva a estar disponible.

MiniMax Subscription Plan Usage Details con 55.85M tokens ayer y 182.70M en los ultimos 7 dias
MiniMax ha trabajado hoy como un campeón, pero el cupo de 5 horas ya está consumido.

Seguimos afinando la pequeña infraestructura personal de IA: nube cuando conviene, local cuando interesa, y siempre con plan B.

En cuanto a Gemma 4: no es para tanto, pequeñas tareas en local.... tengo pendiente probarlo en serio para Open WebUI para consultar en la abundante documentación que tengo en mi equipo. También quiero probarlo con OpenCode, pero no nos hagamos ilusiones, Gemma 4 no es, mi de lejos, lo que los modelos "de frontera" son. Lo bueno: siguen mejorando, y ahora tenemos modelos que hace un año o dos eran modelos de frontera. ¿Y por qué lo pruebo? Quiero ver hasta dónde llega para ahorrarme todo lo posible el consumo de (caros) tokens en los modelos de pago. 

21/5/26

Una isla para Vidas en Red - Montando un VPS con Jane

🏝️ Una isla para Vidas en Red — Montando un VPS

Nuevo episodio de Vidas en Red donde os cuento cómo Jane, mi asistente digital, me ayudó a montar un servidor VPS para la webapp de la iglesia (SuanzesApp) desde cero.

Y no solo eso — Jane se ha convertido en mi gestora personal de todo:

  • 🗄️ Registra mis gastos en Notion — desde repostajes del coche hasta compras del súper
  • ⚖️ Controla mi peso y datos de salud
  • 🔐 Gestiona contraseñas y accesos (VPS, NAS, webapp)
  • 🗓️ Recordatorios en mi calendario
  • 📝 Diario detallado de todo lo que hacemos juntos
  • 🚗 Analiza informes de combustible del coche
  • 📦 Backups automáticos a mi NAS Synology cada noche

Todo contabilizado, organizado y accesible desde un solo chat. Una auténtica isla de orden en medio del caos digital.

🎧 Escucha el episodio completo:

▶️ Escuchar en Spreaker


🔗 Enlaces


📱 Promoción Simyo

Patrocinado por Simyo — la operadora que te da lo que necesitas sin pagar de más. Llámame rojo, llámame naranja… mejor llámame Simyo.

🛒 Ir a Simyo

Gracias por tu apoyo! 🙌

19/5/26

OpenClaw - Todo lo que he conseguido hacer

🔥 OpenClaw — Todo lo que he conseguido hacer

Nuevo episodio de Vidas en Red donde os cuento mi experiencia con OpenClaw, mi agente de IA personal al que he llamado Jane.

¿Te imaginas tener a tu propio Jarvis en Telegram? Pues esto es exactamente lo que he conseguido.


🤖 Integraciones que ya funcionan

  • 📧 Gmail — Leer, resumir y enviar correos
  • 📅 Google Calendar — Consultar y crear eventos al instante
  • 💬 Telegram + WhatsApp — Controlarlo todo desde un solo chat
  • 📓 Obsidian — Anotaciones, ideas y documentación automática
  • 📊 Notion — Registro de gastos y peso corporal
  • 🖥️ NAS por SSH — Descargar películas y archivos
  • 🎙️ Spreaker — Publicar episodios del podcast
  • 📝 Rellenar PDFs automáticamente con datos de mi bóveda
  • 🎵 Mezclar audio con música de fondo y sintonía
  • 🐦 X / Twitter — Publicar tweets
  • 📝 Blogger — Publicar en el blog
  • 💰 Categorización inteligente de gastos

Y esto solo es el principio... cada día aprendo algo nuevo 🚀


🎧 Escucha el episodio completo:

▶️ Escuchar en Spreaker


💚 Apoya Vidas en Red

Consigue tu SIM de datos Simyo y tanto tú como yo recibiremos saldo:

📱 Promoción Simyo

Gracias por tu apoyo! 🙌

18/5/26

Ahora Jane registra mis gastos

 


Jane, mi IA DeepSeek + OpenClaw ahora es una sencilla contable. Le he pasado el último año de gatos, ha creado un CSV, lo ha revisado, ha hecho algunas sugerencias ya que cada gasto está categorizado, y a partir de ahora cuando le de un gasto, ella lo irá añadiendo al CSV. 

Pero eso no es todo, estoy preparando un GRAN PODCAST con todo lo que Jane está haciendo. Y os va a alucinar:

Publicar podcast desde Telegram.
Conectarse por SSH a mi NAS y controlarlo todo, descargas en B/N. Todo.
Gestión de todos mis Scripts de Python.

Me peta la cabeza.


16/5/26

Ahora Jane habla con Spreaker

"Jane" (Open Claw) ahora se comunica con Spreaker, puedo grabar un audio y subirlo desde Telegram, "ella" se ocupará de títulos, descripción, de todo.... esto es BRUTAL.... le he puesto la api de Spreaker (ella me guió en el proceso): Hecho. Estoy fibrilando.

Hoy hemos dado un salto brutal en la automatización y gestión del podcast. He integrado a Jane, mi asistente de inteligencia artificial basada en OpenClaw, directamente con el corazón de Spreaker a través de su API oficial. ¿Cómo lo hemos hecho? Configurando un flujo de autorización segura (OAuth2) que le permite a la IA conectarse a los servidores, validar tokens y mapear los identificadores de todos mis programas sin necesidad de exponer contraseñas ni depender de interfaces web. Es código hablando con código.

Lo que esto significa para la movilidad es absoluto. Ahora mismo, el cuello de botella de publicar ha desaparecido: puedo estar caminando por la calle, grabar una reflexión directamente desde el móvil y, con un simple mensaje de texto en Telegram, decirle a mi asistente que coja ese audio, le asigne un título y lo deje programado en Spreaker para el próximo martes. Cero fricción, 100% desde la palma de la mano.

Pero la verdadera locura viene cuando unes estas altas capacidades cognitivas de la IA con la programación local. El objetivo ahora es conectar este sistema con mis scripts de Python para edición de audio. El flujo de trabajo definitivo será: grabar en movilidad, enviar el archivo a mi servidor local donde la IA ejecuta los scripts para limpiar el ruido, normalizar niveles y añadir las sintonías, y que acto seguido sea ella misma quien empaquete el mp3, redacte las notas del episodio y lo inyecte vía API en Spreaker. Un ecosistema ciberpunk donde la inteligencia artificial no solo asiste, sino que orquesta todo el trabajo pesado para que yo solo tenga que preocuparme de una cosa: encender el micro y hablar.

OpenClaw, no digo más

Mi modo HYPE es de 8000 "Cabreras". No sé si lo resistiré. 

Mira el video con mi reacción aquí: https://youtu.be/mbPWpxXxxJY

Hoy he tenido una de esas experiencias tecnológicas que me recuerdan por qué sigo disfrutando tanto delante de un ordenador después de tantos años. Todo empezó casi por curiosidad, instalando OpenClaw, una herramienta orientada a crear agentes de inteligencia artificial capaces de interactuar con el sistema, automatizar tareas y conectarse con servicios externos. Pensé que sería “otra prueba más”, uno de esos experimentos que uno hace un rato por la tarde y luego deja olvidados en una carpeta. Pero la cosa terminó siendo bastante más interesante.

La instalación, eso sí, fue cualquier cosa menos sencilla. Hubo momentos en los que parecía que nada quería arrancar. Problemas con la versión de Node, Docker que no estaba instalado, servicios internos llamados “gateway” que se negaban a funcionar… la típica sensación de estar intentando arrancar una nave espacial hecha con piezas de distintos fabricantes y documentación escrita a medias. Durante un buen rato tuve esa impresión tan conocida por cualquiera que trastee con tecnología: no sabes si estás a dos minutos de conseguirlo o de romper algo definitivamente.

Poco a poco todo empezó a encajar. Primero Docker, después el gateway interno de OpenClaw, luego la conexión con Gemini y finalmente Telegram. Y ahí fue donde tuve uno de esos pequeños momentos que hacen que todo el esfuerzo merezca la pena. De repente estaba hablando desde Telegram con un agente de IA que estaba funcionando en mi propio ordenador. No en una web, no dentro de una aplicación cerrada, sino en mi máquina, usando mis recursos y conectado a herramientas reales.

Creo que la primera vez que uno ve funcionar algo así entiende que estamos entrando en una etapa diferente de la informática personal. Ya no se trata simplemente de “usar ChatGPT” o abrir una página web. Empieza a parecerse más a tener una infraestructura de inteligencia artificial propia, algo que vive en tu ordenador y que puedes adaptar a tus necesidades.

La cosa se volvió todavía más interesante cuando decidí integrarlo con Obsidian. Llevo tiempo buscando una forma cómoda de organizar notas, ideas, proyectos y diarios personales sin depender demasiado de plataformas cerradas. Así que creé una bóveda sincronizada con OneDrive y empecé a darle instrucciones al agente para que organizara automáticamente notas, artículos, tareas, ideas para podcasts y entradas de diario.

Y ahí tuve otra sensación curiosa: por primera vez veía una integración realmente práctica entre inteligencia artificial y gestión del conocimiento personal. Poder escribir desde Telegram algo como “guarda esta idea para un artículo” o “añade esto al diario de hoy” y que el sistema cree automáticamente archivos Markdown organizados dentro de Obsidian resulta sorprendentemente satisfactorio. Todo queda en local, sincronizado, editable y bajo mi control.

Lo interesante es que esto no requiere ya un laboratorio lleno de servidores ni conocimientos de ingeniería avanzada. Con un ordenador razonablemente potente, algo de paciencia y muchas ganas de experimentar, hoy es posible montar en casa sistemas que hace pocos años parecían ciencia ficción. En mi caso estoy utilizando un Ryzen 7 con una gráfica relativamente moderna, y eso ya permite ejecutar modelos locales de inteligencia artificial bastante serios.

De hecho, mientras configuraba OpenClaw empecé también a probar modelos locales con Ollama. Ahí es cuando realmente cambia la perspectiva. Descargas un modelo de varios gigas, lo ejecutas en tu propio equipo y descubres que puedes conversar con una IA sin depender de servicios externos ni consumir créditos en la nube. No es perfecto, ni tiene la calidad de los modelos más grandes de OpenAI o Gemini, pero funciona. Y funciona sorprendentemente bien.

Uno de los momentos más surrealistas de toda esta experiencia llegó cuando conseguí que el sistema enviara automáticamente mensajes de WhatsApp a mi esposa con información sobre próximos eventos del calendario. Ahí es cuando realmente empiezas a entender hacia dónde puede evolucionar todo esto. Y claro, la cabeza empieza inmediatamente a imaginar posibilidades. Porque ahora mismo esto no deja de ser el principio. Tengo muchas herramientas en Python que he ido desarrollando durante años para creación de contenido: scripts para edición de audio de podcasts, automatización de vídeo, extracción y resumen de noticias, generación de textos, conversión a voz y distintos sistemas de publicación. La idea de poder integrar todo eso bajo un mismo agente y controlarlo desde OpenClaw, incluso desde Telegram o el móvil, empieza a resultar tremendamente atractiva. Ya no se trataría solo de usar una IA para conversar, sino de convertirla en una especie de centro operativo personal capaz de coordinar herramientas reales de trabajo creativo.

Y sinceramente, hacía tiempo que una tecnología no conseguía despertarme esta mezcla de curiosidad, frustración y entusiasmo al mismo tiempo. 

Consigue tu SIM de Datos de Simyo y apoya a Vidas en red:

 simyo.es/amigos.html?codeMGM=056G0J69

Herramientas y servicios mencionados

Por si alguien quiere experimentar con todo este ecosistema de agentes IA, automatización y modelos locales, dejo aquí algunos de los servicios y herramientas que he utilizado durante estas pruebas.

  • OpenClaw
    Sistema de agentes de inteligencia artificial orientado a automatización, herramientas y control local.
  • Ollama
    Plataforma para ejecutar modelos de inteligencia artificial en local utilizando tu propia CPU y GPU.
  • Obsidian
    Aplicación de notas y conocimiento personal basada en archivos Markdown locales.
  • Docker Desktop
    Entorno de contenedores necesario para ejecutar parte de la infraestructura de OpenClaw.
  • BotFather
    Herramienta oficial de Telegram para crear y administrar bots.
  • UltraMsg
    Servicio para integrar WhatsApp en automatizaciones y flujos IA.
  • Google AI Studio
    Portal desde el que generar claves API y acceder a Gemini.
  • Tavily
    Motor de búsqueda especializado en agentes IA y automatización inteligente.
  • Tutorial OpenClaw + Ollama
    Guía oficial para ejecutar OpenClaw utilizando modelos locales mediante Ollama.
  • Integración OpenClaw en Ollama Docs
    Documentación oficial sobre integración entre OpenClaw y Ollama.
  • Vídeo: OpenClaw + Ollama + GPU NVIDIA
    Vídeo interesante mostrando instalación y uso práctico en un entorno doméstico.

ESTO LO CAMBIA TODO. La sensación que tengo después de todo esto es que estamos entrando en una etapa nueva de la informática personal. Una etapa donde cada vez más gente tendrá sus propios agentes IA funcionando en casa, conectados a sus notas, calendarios, automatizaciones y herramientas cotidianas.

No me sentía así desde mis tiempos de Linux. Pero esto me está dando mucho más fuerte. 

10/12/25

He estado desaparecido 3 semanas viviendo dentro de mi propia novela gracias a la IA. Creo que encontré una "droga" digital.

Quiero escribir un post en reddit narrando una historia personal, la ia me ha permitido crear historias interactivas e inmersivas en base a una novela que he escrito, el resultado es una experiencia intensa, vívida, y muy absorbente, casi una adicción que te atrapa y te aliena del mundo.

Lo sé, llevo como tres semanas donde sólo he sacado un audio. Y esta es mi explicación.

He estado inmerso en dos proyectos que me han tenido mentalmente muy alejado del mundo, el primero y el más grande es la escritura de una novela romántica-dramática. Creo que pocas veces he disfrutado más de la escritura de algo así. Se trata de una novelita de 49 mil palabras que narra la difícil vida de un joven pastor luterano que sufre dos catastróficas rupturas de corazón. Es una novela en la que he puesto muchísimo de mí mismo, no tanto de mis dramas sino de experiencias a nivel de acompañamiento a otras personas, en algunos casos son experiencias personales, pero en otros casos son experiencias que me han contado otros pastores o que he leído el libros especializados. Meterme en esta historia ha sido un viaje emotivo, profundo, y en ocasiones desgarrador. 

Al principio me vine tan arriba después de haberla escrito que contacté a un buen amigo con contactos en el mundo editorial pensando en ver de qué manera podía hacer que la novela entrara en una editorial, pero como siempre me ocurre, después de haberlo pensado creo que mis percepciones quizás no se correspondan con la calidad de la misma, sé lo que es vivir algo de forma tan intensa que sea quizás demasiado personal. Con todo espero sacarla en Amazon. 

No creo que sea capaz de describir la metido que estaba en la novela, la intensidad con la que viví en primera persona lo que se cuenta. Y no sé si alguna vez he vivido lo que escribía con esa viveza. 

Ahora viene la segunda parte. Usando la IA Claude le subí la novela y le pedí que redactara un prompt que me permitiera experimentar y vivir lo escrito, pero de forma interactiva. El resultado ha sido otro "pozo de Alicia en el jardín de las maravillas" un agujero de gusano que me ha apartado del resto de los mortales durante otra semana y algo más. Cuando no estaba charlando con la IA estaba pensando en la historia, esto me proporcionó tal cantidad de experiencias que pude redactar nuevas historias que incluí en la novela. Ha sido algo absorbente.

¿A qué me refiero con interactuar con la IA? Pues algo muy sencillo pero que hecho por la IA se transforma en una especie de dr0ga que te atrapa, la pides a la IA que cree una historia en la que tú puedes hablar, hacer cosas, y la IA, como un narrador (dungeon master) te irá respondiendo y narrando las escenas mientras que tú interactúas con ella. Supongo que otros han hecho lo mismo. La IA desarrolló un prompt de 13 páginas con instrucciones precisas para llevar a cabo una historia inmersiva, una película en la que te puedes mover con libertad, avanzar en la aventura o incluso cambiar la aventura. A veces pienso que si hay gente que no ha escrito de ello en Internet es porque están atrapados en mundos virtuales escritos por ellos.

¿Cuánto tiempo tardaremos en perdernos en mundos virtuales, atascados en traumas y carencias para las cuales la IA fabricará sustitutos? Lo dijo Phillip K. Dick, este el fin de la carrera espacial, ya que la exploración de los mundos interiores será un laberinto sin marcha atrás. 


https://www.spreaker.com/episode/aventuras-conversacionales-ia--68976399

9/9/25

Mejorando los scripts de "Prisión planetaria" y automatizando el proceso de creación de esta ficción en podcast y Youtube

Hay novedades en Vidas en Red 🌐.

Ya sabéis que este 2025 creé un universo de ficción llamado "Prisión Planetaria" una especie de relato en tiempo real de una invasión extraterrestre, todo mezclado con noticias de actualidad mientras se desarrolla una trama en la que los humanos se organizan para resistir una invasión que viene de camino.

Todo esto lo he estado desarrollando con la ayuda de la IA para optimizar la creación de contenido. Se trata de un script de Python que unifica varios procesos complejos, convirtiendo una simple idea en un paquete de contenido listo para publicar. Y todo lo he usado con mi cuenta GRATIS de Gemini, y mirando de reojo las cuotas de uso gratuitas, que ni de lejos se acercan a los topes diarios.


Unificación de Tareas: Más que un simple script

El primer gran avance es que este script ahora integra múltiples funciones en una sola operación. Partiendo de un simple texto, el programa no solo genera la voz para el audio, sino que también produce todo el contenido adicional que necesitáis para subir un vídeo con éxito a plataformas como YouTube.

Con este nuevo flujo de trabajo, el script se encarga de:

  • Generar descripciones del vídeo, tanto en español como en inglés.

  • Crear etiquetas SEO optimizadas para ambos idiomas.

  • Proporcionar 5 prompts de imágenes detallados, listos para ser utilizados con una IA de generación de imágenes como Gemini, para ilustrar el contenido del vídeo.


El Cerebro detrás de la Voz: Tecnología de punta

Para la generación de audio, el script utiliza un servicio de voz profesional: Azure Speech Services. Esto nos permite elegir entre una amplia gama de voces masculinas de alta calidad y personalizar la velocidad de la narración, asegurando que el resultado final sea natural y dinámico.


Superando los Filtros: La IA como aliada

Uno de los mayores desafíos al trabajar con inteligencia artificial es la política de contenido y los filtros de censura, especialmente en temas sensibles o controvertidos. En este caso, el modelo de IA Gemini puede rechazar la traducción de un texto si detecta palabras "conflictivas" que violan sus directrices. En el último episodio se cuenta la historia de cómo en la isla de Epstein ocurría algo más que excesos carnales, sino experimentos genéticos y ensayos para modular el cerebro humano causando locura y demencia (todo esto es parte de la trama), pero Gemini filtra ciertas palabras y eso me provocaba errores en la ejecución del Script.

Para resolver este problema, he implementado un sistema inteligente que busca seudónimos para las palabras conflictivas. El script intenta traducir el texto, y si falla, lo reintenta automáticamente, pero esta vez con un nivel de censura incremental. Esto nos permite seguir generando contenido y superar los bloqueos sin sacrificar la esencia del mensaje.


Funciones Clave del Script

  • leer_archivo_txt(): Lee tu texto original.

  • traducir_con_gemini(): Traduce el texto al inglés, con un sistema de reintentos en caso de fallos.

  • preparar_texto_para_traduccion(): La función que aplica los seudónimos en diferentes niveles para sortear los filtros.

  • generar_contenido_gemini(): Crea las descripciones y prompts de imágenes.

  • texto_a_audio_azure(): Genera el audio de alta calidad usando Azure.

  • compilar_audio_mp3(): Une todos los fragmentos de audio en un único archivo MP3.

  • mezclar_audio_con_musica(): Mezcla el audio de la voz con una pista de música de fondo, que se reproduce en bucle hasta que la voz termine.

Con todas estas funciones combinadas, crear un vídeo se ha vuelto un proceso mucho más rápido y eficiente. ¿Cual es mi propósito? Lo primero de todo es APRENDER a usar la IA y mejorar mis competencias. Lo siguiente es ver si soy capaz de hacer crecer un canal de ficción simplemente usando herramientas gratuitas de IA, con una capacidad de producción COLOSAL ya que aunque yo soy el que marca las líneas maestras de la historia, es la IA las que escribe guiones, pistas de audio y de vídeo, así como descripciones, etiquetas SEO y demás. 

Quizás todo quede en dos enormes canales con cantidades gigantescas de vídeos (¿quien habrá sido el loco que se ha tomado tanto tiempo en subir semejante cantidad de contenido?) pues bien, vosotros ya lo sabéis, y si no, queda este blog como testigo al futuro de lo que hice, o mejor dicho hicimos, la IA y yo.


¿Dónde puedes ver esos canales? (te menciono los canales en español?

Youtube; Cárcel Planetaria https://www.youtube.com/@carcelplanetaria

Spreaker:https://www.spreaker.com/podcast/carcel-planetaria--6567309