diff --git a/bloque1/audios/tema8.mp3 b/bloque1/audios/tema8.mp3 new file mode 100644 index 0000000..511dc54 Binary files /dev/null and b/bloque1/audios/tema8.mp3 differ diff --git a/bloque1/audios/tema9.mp3 b/bloque1/audios/tema9.mp3 new file mode 100644 index 0000000..3f5238b Binary files /dev/null and b/bloque1/audios/tema9.mp3 differ diff --git a/bloque1/md_a_audio_con_edge.py b/bloque1/md_a_audio_con_edge.py new file mode 100644 index 0000000..9a0fd73 --- /dev/null +++ b/bloque1/md_a_audio_con_edge.py @@ -0,0 +1,29 @@ +import asyncio +import edge_tts +import re +from pathlib import Path + +def limpiar_markdown(texto): + texto = re.sub(r'```.*?```', ' [código] ', texto, flags=re.DOTALL) + texto = re.sub(r'\|.*?\|', '', texto) + texto = re.sub(r'[#*_~`>]', '', texto) + return ' '.join(texto.split()) + +async def convertir_archivo(path_md): + audio_output = path_md.with_suffix('.mp3') + texto = path_md.read_text(encoding="utf-8") + texto_limpio = limpiar_markdown(texto) + + # La voz "Alvaro" es muy natural para estudiar + comunicar = edge_tts.Communicate(texto_limpio, "es-ES-AlvaroNeural") + await comunicar.save(audio_output) + print(f"✅ Generado: {audio_output}") + +async def main(): + archivos = sorted(Path('.').glob('tema*.md')) + for md in archivos: + print(f"Procesando: {md.name}...") + await convertir_archivo(md) + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/bloque1/md_a_audio_con_openai.py b/bloque1/md_a_audio_con_openai.py index d272f19..dc757af 100644 --- a/bloque1/md_a_audio_con_openai.py +++ b/bloque1/md_a_audio_con_openai.py @@ -1,15 +1,64 @@ +import os +import re +from pathlib import Path from openai import OpenAI -import pathlib -client = OpenAI() +# Configura tu API Key aquí o mediante variable de entorno +client = OpenAI(api_key="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") -texto = open("tema1.md", "r", encoding="utf-8").read() -print("hola") -speech_file = pathlib.Path("tema1.mp3") +def limpiar_markdown(texto): + """Limpieza profunda para que la IA no lea símbolos innecesarios.""" + texto = re.sub(r'```.*?```', ' [bloque de código] ', texto, flags=re.DOTALL) + texto = re.sub(r'\|.*?\|', '', texto) # Eliminar tablas + texto = re.sub(r'[-:]{3,}', '', texto) + texto = re.sub(r'!\[.*?\]\(.*?\)', '', texto) # Imágenes + texto = re.sub(r'\[(.*?)\]\(.*?\)', r'\1', texto) # Enlaces + texto = re.sub(r'[#*_~`>]', '', texto) + return ' '.join(texto.split()) -with client.audio.speech.with_streaming_response.create( - model="gpt-4o-mini-tts", - voice="alloy", - input=texto -) as response: - response.stream_to_file(speech_file) \ No newline at end of file +def dividir_texto(texto, max_chars=4000): + """Divide el texto en fragmentos para no superar el límite de la API.""" + return [texto[i:i + max_chars] for i in range(0, len(texto), max_chars)] + +def convertir_md_a_audio(path_md): + base_name = path_md.stem + audio_output = path_md.with_suffix('.mp3') + + print(f"\n--- Procesando: {path_md.name} ---") + + try: + texto = path_md.read_text(encoding="utf-8") + texto_limpio = limpiar_markdown(texto) + + if len(texto_limpio.strip()) < 5: + print("⚠️ Texto insuficiente.") + return + + # Dividimos el texto si es muy largo + fragmentos = dividir_texto(texto_limpio) + + # Procesamos y guardamos el audio (OpenAI genera archivos de alta calidad) + # Voces recomendadas: 'alloy' (neutra), 'onyx' (profunda), 'nova' (femenina enérgica) + response = client.audio.speech.create( + model="tts-1", + voice="onyx", + input=texto_limpio + ) + + response.stream_to_file(audio_output) + print(f"✅ Audio generado con éxito: {audio_output}") + + except Exception as e: + print(f"❌ Error en {path_md.name}: {e}") + +def procesar_carpeta(): + archivos = sorted(Path('.').glob('tema*.md')) + if not archivos: + print("No se encontraron archivos .md") + return + + for md in archivos: + convertir_md_a_audio(md) + +if __name__ == "__main__": + procesar_carpeta() \ No newline at end of file diff --git a/bloque1/para_convertir_a_audio/tema8.md b/bloque1/para_convertir_a_audio/tema8.md deleted file mode 100644 index 11c6661..0000000 --- a/bloque1/para_convertir_a_audio/tema8.md +++ /dev/null @@ -1,184 +0,0 @@ -# Bloque 1 · Tema 8 -## Acceso electrónico a los servicios públicos -## Registros, notificaciones y medios electrónicos -## Esquema Nacional de Seguridad (ENS) -## Esquema Nacional de Interoperabilidad (ENI) -## Normas Técnicas de Interoperabilidad (NTI) - -## Introducción - -El acceso electrónico a los servicios públicos constituye un eje esencial de la Administración electrónica y del funcionamiento ordinario de las Administraciones Públicas. - -Este tema es especialmente relevante en el examen TAI por su carácter práctico y normativo, y por la conexión directa con las Leyes 39/2015 y 40/2015, así como con el ENS y el ENI. - -## 1. Acceso electrónico a los servicios públicos - -### 1.1. Derecho de los ciudadanos - -Las personas tienen derecho a: -- Relacionarse con las Administraciones Públicas por medios electrónicos. -- Acceder a los servicios públicos de forma electrónica. - -Este derecho se reconoce con carácter general en la **Ley 39/2015**, del Procedimiento Administrativo Común. - -### 1.2. Obligación de relacionarse electrónicamente - -Están obligados a relacionarse electrónicamente, entre otros: -- Personas jurídicas. -- Entidades sin personalidad jurídica. -- Profesionales colegiados para trámites derivados de su actividad. -- Empleados públicos en el ejercicio de sus funciones. - -### 🧠 Mini-resumen apartado 1 - -- Derecho general de acceso electrónico. -- Determinados sujetos están obligados. -- Regulación principal en la Ley 39/2015. - -## 2. Medios electrónicos en las Administraciones Públicas - -### 2.1. Uso de medios electrónicos - -Las Administraciones Públicas deben: -- Garantizar la disponibilidad de medios electrónicos. -- Asegurar la accesibilidad, seguridad e interoperabilidad. -- Facilitar la identificación y firma electrónica. - -### 2.2. Sede electrónica - -La sede electrónica es la dirección electrónica disponible para los ciudadanos a través de redes de telecomunicaciones. - -Debe garantizar: -- Identidad del titular. -- Integridad de la información. -- Disponibilidad y accesibilidad permanente. - -### 🧠 Mini-resumen apartado 2 - -- Uso obligatorio de medios electrónicos. -- La sede electrónica es el punto de acceso seguro. - -## 3. Registros electrónicos - -### 3.1. Registro electrónico general - -Cada Administración debe disponer de un: -- Registro electrónico general. - -Permite: -- La presentación de documentos todos los días del año. -- Las 24 horas del día. - -### 3.2. Asiento registral y cómputo de plazos - -- La fecha y hora oficial determina el cómputo de plazos. -- Los registros electrónicos se rigen por la fecha y hora oficial de la sede. - -### 🧠 Mini-resumen apartado 3 - -- Registro electrónico general obligatorio. -- Presentación 24/7. -- Fecha y hora oficiales determinan plazos. - -## 4. Notificaciones electrónicas - -### 4.1. Sistema de notificación - -Las notificaciones se practicarán preferentemente: -- Por medios electrónicos. - -En determinados casos son obligatorias. - -### 4.2. Puesta a disposición y rechazo - -- La notificación se entiende practicada cuando se accede a su contenido. -- Si no se accede en **10 días naturales**, se entiende rechazada. - -👉 Muy típico de examen: -Rechazo por inacción tras 10 días. - -### 🧠 Mini-resumen apartado 4 - -- Notificación preferente u obligatoria. -- Rechazo automático a los 10 días. - -## 5. Esquema Nacional de Seguridad (ENS) - -### 5.1. Concepto y finalidad - -El ENS tiene por objeto: -- Establecer la política de seguridad en la utilización de medios electrónicos. -- Garantizar la seguridad de la información y los servicios. - -### 5.2. Ámbito de aplicación - -Se aplica a: -- Sector público. -- Proveedores que presten servicios a las Administraciones Públicas. - -### 5.3. Principios básicos - -- Seguridad integral. -- Gestión de riesgos. -- Prevención, detección y respuesta. -- Proporcionalidad. -- Mejora continua. - -### 🧠 Mini-resumen apartado 5 - -- ENS = seguridad de la información. -- Aplicable al sector público. -- Basado en gestión de riesgos. - -## 6. Esquema Nacional de Interoperabilidad (ENI) - -### 6.1. Concepto y finalidad - -El ENI establece: -- Los criterios y recomendaciones para la interoperabilidad. -- El intercambio de información entre Administraciones Públicas. - -### 6.2. Principios básicos - -- Interoperabilidad organizativa. -- Interoperabilidad semántica. -- Interoperabilidad técnica. -- Reutilización y cooperación. - -### 🧠 Mini-resumen apartado 6 - -- ENI = intercambio de información. -- Garantiza interoperabilidad entre Administraciones. - -## 7. Normas Técnicas de Interoperabilidad (NTI) - -### 7.1. Concepto - -Las NTI desarrollan el ENI y establecen: -- Condiciones técnicas comunes. -- Reglas para documentos y expedientes electrónicos. - -### 7.2. Ámbitos regulados - -Entre otros: -- Documento electrónico. -- Expediente electrónico. -- Digitalización de documentos. -- Política de gestión de documentos electrónicos. -- Reutilización de recursos. - -### Mini-resumen apartado 7 - -- NTI desarrollan el ENI. -- Regulan aspectos técnicos concretos. -- Garantizan uniformidad. - -## Mini-resumen final del tema - -- Acceso electrónico reconocido y, en algunos casos, obligatorio. -- Registros electrónicos 24/7. -- Notificaciones electrónicas con rechazo a los 10 días. -- ENS → seguridad. -- ENI → interoperabilidad. -- NTI → desarrollo técnico del ENI. -- Tema muy frecuente en preguntas prácticas y conceptuales. diff --git a/bloque1/para_convertir_a_audio/tema8.mp3 b/bloque1/para_convertir_a_audio/tema8.mp3 deleted file mode 100644 index e69de29..0000000 diff --git a/bloque1/para_convertir_a_audio/tema9.md b/bloque1/para_convertir_a_audio/tema9.md deleted file mode 100644 index cc5587d..0000000 --- a/bloque1/para_convertir_a_audio/tema9.md +++ /dev/null @@ -1,210 +0,0 @@ -# Bloque 1 · Tema 9 - -## Instrumentos de acceso electrónico - -## Sedes electrónicas, canales, identificación y autenticación - -## Infraestructuras y servicios comunes - -## Introducción - -Los instrumentos de acceso electrónico permiten a la ciudadanía relacionarse con las Administraciones Públicas de forma segura, accesible y eficaz. - -Este tema es habitual en el examen TAI, especialmente en preguntas sobre: - -* Conceptos básicos de Administración electrónica. -* Diferencias entre identificación y autenticación. -* Función de las sedes electrónicas. -* Servicios comunes de la Administración electrónica. - -## 1. Instrumentos de acceso electrónico - -### 1.1. Concepto - -Los instrumentos de acceso electrónico son los medios y herramientas que permiten: - -* El acceso a los servicios públicos electrónicos. -* La interacción segura con las Administraciones Públicas. - -Incluyen: - -* Sedes electrónicas. -* Canales de acceso. -* Sistemas de identificación y autenticación. -* Infraestructuras y servicios comunes. - -> ### Mini-resumen apartado 1 -> -> * Permiten el acceso electrónico a los servicios públicos. -> * Garantizan seguridad, accesibilidad y eficacia. - -## 2. Sedes electrónicas - -### 2.1. Concepto - -La sede electrónica es la dirección electrónica disponible para los ciudadanos a través de redes de telecomunicaciones, cuya titularidad, gestión y administración corresponde a una Administración Pública. - -Constituye la “oficina virtual” oficial de un organismo, desde la que se realizan actuaciones con efectos jurídicos. - -No es una simple página web informativa. - -### 2.2. Características y garantías - -La sede electrónica debe garantizar: - -* La identificación del titular de la sede. -* La integridad de la información publicada. -* La veracidad y actualización de los contenidos. -* La disponibilidad permanente. -* La accesibilidad y la seguridad. - -La Administración titular es responsable de toda la información y servicios ofrecidos en la sede. - -### 2.3. Elementos obligatorios de la sede electrónica - -Toda sede electrónica debe incluir, al menos: - -* Identificación de la sede y de su titular. -* Sistemas de identificación y firma electrónica. -* Relación de servicios y procedimientos disponibles. -* Fecha y hora oficial, a efectos de cómputo de plazos. -* Acceso al registro electrónico. -* En su caso, enlace al tablón de anuncios o edictos. - -### 2.4. Diferencia entre sede electrónica y portal de Internet - -Distinción típica de examen: - -* Portal de Internet: - - * Finalidad informativa. - * Contiene noticias, organigramas o guías. - * No requiere certificados ni genera efectos jurídicos. - -* Sede electrónica: - - * Finalidad transaccional. - * Permite realizar trámites administrativos. - * Genera efectos jurídicos plenos. - -### 2.5. Punto de Acceso General (PAG) - -El Punto de Acceso General de la Administración General del Estado actúa como puerta de entrada común a las sedes electrónicas de los distintos organismos. - -Facilita: - -* La localización de servicios. -* El acceso unificado a las sedes electrónicas. - -> ### Mini-resumen apartado 2 -> -> * La sede electrónica es el punto de acceso oficial. -> * Garantiza identidad, integridad y seguridad. -> * Es distinta del portal web informativo. -> * El PAG centraliza el acceso a las sedes. - -## 3. Canales de acceso - -### 3.1. Tipos de canales - -Las Administraciones Públicas pueden ofrecer: - -* Canal presencial. -* Canal telefónico. -* Canal electrónico. - -Los canales deben ser: - -* Accesibles. -* Interoperables. -* Seguros. - -> ### Mini-resumen apartado 3 -> -> * Existen varios canales de acceso. -> * El canal electrónico es esencial en la Administración actual. - -## 4. Identificación y autenticación - -### 4.1. Identificación electrónica - -La identificación electrónica permite conocer: - -* Quién es la persona que accede al servicio. - -Sistemas admitidos: - -* Certificados electrónicos. -* DNI electrónico. -* Sistemas de claves concertadas (Cl@ve). -* Otros sistemas admitidos por las Administraciones Públicas. - -### 4.2. Autenticación electrónica - -La autenticación electrónica permite: - -* Verificar la identidad declarada por el usuario. -* Confirmar que la persona es quien dice ser. - -Identificación y autenticación son conceptos relacionados, pero no idénticos. - -> ### Mini-resumen apartado 4 -> -> * Identificación: quién es el usuario. -> * Autenticación: verificación de esa identidad. -> * Se utilizan distintos sistemas electrónicos. - -## 5. Infraestructuras y servicios comunes - -### 5.1. Concepto - -Las infraestructuras y servicios comunes son plataformas compartidas que: - -* Facilitan la prestación de servicios electrónicos. -* Evitan duplicidades entre Administraciones. -* Garantizan interoperabilidad y seguridad. - -### 5.2. Principales servicios comunes - -Entre los más relevantes (muy preguntados en examen): - -* **Cl@ve**: sistema común de identificación y firma electrónica. -* **@firma**: validación de certificados y firmas electrónicas. -* **SIR**: Sistema de Interconexión de Registros. -* **DIR3**: directorio común de unidades orgánicas, oficinas y unidades. -* **Plataforma de Intermediación de Datos**: consulta de datos entre Administraciones sin pedirlos al ciudadano. -* **Notifica / DEHú**: servicio común de notificaciones electrónicas. -* **FACe / FACeB2B**: punto general de entrada de facturas electrónicas. -* **GEISER / ORVE**: gestión y digitalización del registro. -* **SOROLLA2**: sistema común de gestión económico-presupuestaria y gastos. -* **NÓMINAe**: **solución común para la gestión de la nómina de los empleados públicos**. - -#### Herramientas de ciberseguridad del CCN-CERT (trampa habitual de examen) - -* **GLORIA**: **herramienta SIEM del CCN** para la **gestión de eventos e información de seguridad**. -* **CLARA**: herramienta de **clasificación y análisis de información** (no es un sistema de trazabilidad del dato). -* **ELENA**: plataforma de **formación y concienciación en ciberseguridad**. -* **MONICA**: herramienta de **monitorización**, **no** es el SIEM oficial del CCN. - -⚠️ **Trampas típicas de examen**: - -* *NÓMINAe* → nóminas de personal. -* *SOROLLA2* → presupuestos y gastos (**no** nóminas). -* *Gestión de eventos de seguridad / SIEM* → **GLORIA**. - -> ### Mini-resumen apartado 5 - -> * Servicios compartidos por las Administraciones. -> * Facilitan interoperabilidad y eficiencia. -> * Incluyen aplicaciones transversales como NÓMINAe y SOROLLA2. -> * Muy habituales en preguntas tipo test. - -> ## Mini-resumen final del tema -> -> * Los instrumentos de acceso permiten la relación electrónica. -> * La sede electrónica es el acceso oficial con efectos jurídicos. -> * El portal es solo informativo. -> * Identificación y autenticación no son lo mismo. -> * Existen infraestructuras y servicios comunes de la AGE. -> * **NÓMINAe gestiona nóminas; SOROLLA2 gestiona presupuestos**. -> * Tema muy frecuente por conceptos y ejemplos prácticos. diff --git a/bloque1/para_convertir_a_audio/tema9.mp3 b/bloque1/para_convertir_a_audio/tema9.mp3 deleted file mode 100644 index e69de29..0000000 diff --git a/bloque1/tema1.mp3 b/bloque1/tema1.mp3 new file mode 100644 index 0000000..de88aaf Binary files /dev/null and b/bloque1/tema1.mp3 differ diff --git a/bloque1/tema2.mp3 b/bloque1/tema2.mp3 new file mode 100644 index 0000000..191a491 Binary files /dev/null and b/bloque1/tema2.mp3 differ diff --git a/bloque1/tema3.mp3 b/bloque1/tema3.mp3 new file mode 100644 index 0000000..aed6013 Binary files /dev/null and b/bloque1/tema3.mp3 differ diff --git a/bloque1/tema4.mp3 b/bloque1/tema4.mp3 new file mode 100644 index 0000000..8d6b612 Binary files /dev/null and b/bloque1/tema4.mp3 differ diff --git a/bloque1/tema5.mp3 b/bloque1/tema5.mp3 new file mode 100644 index 0000000..53c31dc Binary files /dev/null and b/bloque1/tema5.mp3 differ diff --git a/bloque1/tema6.mp3 b/bloque1/tema6.mp3 new file mode 100644 index 0000000..8f4185e Binary files /dev/null and b/bloque1/tema6.mp3 differ diff --git a/bloque1/tema7.mp3 b/bloque1/tema7.mp3 new file mode 100644 index 0000000..89c5c9b Binary files /dev/null and b/bloque1/tema7.mp3 differ diff --git a/bloque1/tema8.mp3 b/bloque1/tema8.mp3 new file mode 100644 index 0000000..988ffc7 Binary files /dev/null and b/bloque1/tema8.mp3 differ diff --git a/bloque1/tema9.mp3 b/bloque1/tema9.mp3 new file mode 100644 index 0000000..86406d5 Binary files /dev/null and b/bloque1/tema9.mp3 differ diff --git a/bloque1/para_convertir_a_audio/md_a_audio.py b/md_a_audio.py similarity index 100% rename from bloque1/para_convertir_a_audio/md_a_audio.py rename to md_a_audio.py diff --git a/md_a_audio_con_openai.py b/md_a_audio_con_openai.py new file mode 100644 index 0000000..4e7f78c --- /dev/null +++ b/md_a_audio_con_openai.py @@ -0,0 +1,15 @@ +from openai import OpenAI +import pathlib + +client = OpenAI() + +texto = open("tema1.md", "r", encoding="utf-8").read() + +speech_file = pathlib.Path("tema1.mp3") + +with client.audio.speech.with_streaming_response.create( + model="gpt-4o-mini-tts", + voice="alloy", + input=texto +) as response: + response.stream_to_file(speech_file) \ No newline at end of file diff --git a/ucademy/01_esquemas.pdf b/ucademy/01_esquemas.pdf new file mode 100644 index 0000000..aacd4b2 Binary files /dev/null and b/ucademy/01_esquemas.pdf differ diff --git a/ucademy/02_esquemas.pdf b/ucademy/02_esquemas.pdf new file mode 100644 index 0000000..f29ef39 Binary files /dev/null and b/ucademy/02_esquemas.pdf differ diff --git a/ucademy/bloque1/2-las-cortes-generales.pdf b/ucademy/bloque1/2-las-cortes-generales.pdf new file mode 100644 index 0000000..2c83e5e Binary files /dev/null and b/ucademy/bloque1/2-las-cortes-generales.pdf differ diff --git a/ucademy/bloque1/2-ppt.pdf b/ucademy/bloque1/2-ppt.pdf new file mode 100644 index 0000000..3d0c8c4 Binary files /dev/null and b/ucademy/bloque1/2-ppt.pdf differ diff --git a/ucademy/bloque1/3-el-gobierno.pdf b/ucademy/bloque1/3-el-gobierno.pdf new file mode 100644 index 0000000..df9d2af Binary files /dev/null and b/ucademy/bloque1/3-el-gobierno.pdf differ diff --git a/ucademy/bloque1/3-ppt.pdf b/ucademy/bloque1/3-ppt.pdf new file mode 100644 index 0000000..ba8bd9e Binary files /dev/null and b/ucademy/bloque1/3-ppt.pdf differ diff --git a/ucademy/reglas_examen.pdf b/ucademy/reglas_examen.pdf new file mode 100644 index 0000000..b90da09 Binary files /dev/null and b/ucademy/reglas_examen.pdf differ diff --git a/ucademy/temario_tai.pdf b/ucademy/temario_tai.pdf new file mode 100644 index 0000000..969a258 Binary files /dev/null and b/ucademy/temario_tai.pdf differ