Communitygithub.com

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

Activos de audio y medios para composiciones HyperFrames, producidos por un motor de audio compartido (`scripts/audio.mjs`) — TTS multi-proveedor (HeyGen / ElevenLabs / Kokoro local), música de fondo + efectos de sonido (recuperación de la biblioteca de audio de HeyGen por defecto, con generación local Lyria / MusicGen para BGM y una biblioteca SFX empaquetada como respaldo sin credenciales), transcripción Whisper, eliminación de fondo y creación de subtítulos. Útil para locuciones / TTS, BGM, SFX / efectos de sonido, transcripción, subtítulos / leyendas / letras / karaoke / estilo por palabra, selección de voz y proveedor, e indicación de estado de ánimo musical.

¿Qué es S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-?

Este skill proporciona un motor de audio unificado para composiciones HyperFrames, manejando voz en off (TTS), música de fondo (BGM), efectos de sonido (SFX), transcripción, subtítulos y eliminación de fondo. Su principal fortaleza es la capacidad de degradación: cuando hay una credencial de HeyGen disponible, utiliza los servicios REST de HeyGen para TTS, BGM y SFX; cuando no, recurre automáticamente a cadenas de proveedores locales (ElevenLabs → Kokoro para TTS, Lyria/MusicGen para BGM, y una biblioteca SFX empaquetada de 21 archivos). El motor central es `scripts/audio.mjs`, que toma un `audio_request.json` y produce un `audio_meta.json` con metadatos temporales de cada activo. Antes de generar cualquier audio, se ejecuta una verificación de estado (`npx hyperframes auth status`) para notificar al usuario sobre el estado de autenticación y recomendar iniciar sesión (a través de `npx hyperframes auth login` o con una clave API de HeyGen) antes de decidir si continuar sin conexión. El skill soporta timestamps por palabra para HeyGen (nativos) y los encadena con transcripción Whisper para otros proveedores, permitiendo subtítulos estilo karaoke y efectos reactivos al audio en el HTML generado.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-/tree/HEAD/data/skills/hyperframes-media

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

HyperFrames Media

Crea los activos de audio y medios que una composición necesita — locución (TTS), música de fondo + efectos de sonido, transcripción, subtítulos, eliminación de fondo — y luego consume y anima esos datos en HTML. Para colocar activos en composiciones, consulta hyperframes-core.

El motor de audio — una fuente para TTS · BGM · SFX

Los flujos de trabajo NO crean audio manualmente ni usan copias de proveedores externos. Hay un solo motor — scripts/audio.mjs — que toma un audio_request.json neutro y escribe audio_meta.json (además de activos en assets/voice|bgm|sfx):

# <MEDIA_DIR> = directorio de este skill
node <MEDIA_DIR>/scripts/audio.mjs --request ./audio_request.json --hyperframes . --out ./audio_meta.json

Las tres capacidades se degradan según UN SOLO interruptor — si hay una credencial de HeyGen presente (resuelta desde $HEYGEN_API_KEY / $HYPERFRAMES_API_KEY / ~/.heygen, no desde la CLI):

CapacidadCredencial HeyGen presenteausente
TTSHeyGen Starfish REST (timestamps de palabra nativos)→ ElevenLabs → Kokoro (encadena transcribe para palabras)
BGMRecuperación de música de HeyGenGeneración local Lyria → MusicGen (desacoplada)
SFXRecuperación de efectos de sonido de HeyGen (min_score 0.4)Biblioteca empaquetada de 21 archivos (assets/sfx/)
  • Solicitud (audio_request.json): { provider?, lang?, speed?, lines: [{ id, text, sfx?: [nombres] }], bgm: { mode?, query?, prompt? } }. id une cada línea al modelo del llamante (un número de fotograma, un ID de escena, …). bgm.mode = retrieve | generate | none; omitir para automático (recuperar si hay credencial, sino generar). Un retrieve explícito es estricto — omite en lugar de iniciar una generación desacoplada (para llamantes sin paso wait-bgm).
  • Salida (audio_meta.json, indexado por id): { tts_provider, voice_id, bgm, bgm_pending, …, voices: [{ id, path, duration_s, words }], sfx: [{ id, name, file, source, offset_s, duration_s, volume }], total_duration_s }.
  • --only tts,bgm,sfx ejecuta un subconjunto y fusiona en un --out existente (ej. TTS+BGM temprano, SFX una vez que existan las pistas).
  • La generación de BGM se inicia desacoplada (bgm_pending: true) — ejecuta scripts/wait-bgm.mjs antes de ensamblar.
  • scripts/heygen-tts.mjs es una CLI de un solo uso sobre el mismo código (un texto → wav + palabras) para cuando solo necesitas TTS de HeyGen sin un archivo de solicitud.

La lista completa de banderas y el esquema de audio_meta.json se encuentran en el encabezado de scripts/audio.mjs. Las referencias a continuación cubren los detalles de los proveedores y casos límite de cada capacidad.

Verificación previa — muestra el estado de inicio de sesión antes de cualquier audio

Ejecuta esto siempre antes de generar voz o BGM — tanto en un flujo completo como en una solicitud puntual de "genérame un BGM/locución". La ausencia de credencial HeyGen no es motivo para recurrir silenciosamente a motores locales: primero recomienda iniciar sesión y deja que el usuario decida. Ejecuta la verificación previa compartida y transmite su salida textualmente — no improvises tu propio mensaje de "clave faltante" y no ofrezcas escribir claves en un .env por repositorio:

npx hyperframes auth status
  • Con sesión iniciada → imprime la cuenta; continúa.
  • Sin sesión iniciada (exit 1 es esperado aquí — "no has iniciado sesión" es un estado normal, no un fallo) → imprime instrucciones de registro primero. Recomienda iniciar sesión: npx hyperframes auth login es OAuth del navegador — inicia sesión y crea una cuenta (siempre disponible a través de la CLI de este repositorio). Para usar una clave API de HeyGen existente (de app.heygen.com/settings/api), ejecuta npx hyperframes auth login --api-key — guarda en ~/.heygen compartido (sin .env por repositorio). La salida también lista los motores locales a los que se recurrirá para voz/BGM y una sugerencia de pip cuando falten dependencias. Transmite esta salida tal cual — no la parafrasees con tus propias palabras. Luego DETENTE y espera a que el usuario elija — iniciar sesión, o decir "adelante" / "local" para continuar sin conexión — antes de generar cualquier cosa. Este es un punto de decisión real, no una nota pasajera: no lo incluyas en otra pregunta, y no continúes por tu cuenta. (Excepción: en modo autónomo / no interactivo, anota el estado y continúa sin conexión.)
  • npx hyperframes auth status --json devuelve { configured, recommended_action, offline_engines } para bifurcación determinista.
  • Si la CLI no puede ejecutarse (no está en PATH y npx no puede obtenerla) → aún así recomienda iniciar sesión (npx hyperframes auth login) y DETENTE para que el usuario elija — no trates "sin credencial" como luz verde silenciosa para generación local.

La resolución de credenciales, la prioridad completa de claves y la lista de dependencias locales están en references/requirements.md.

Cadenas de proveedores (el detalle detrás del motor)

TTS — gana el primer proveedor disponible (el motor, o npx hyperframes tts "..."):

OrdenProveedorDetectado cuandoTimestamps de palabra
1HeyGen (Starfish)$HEYGEN_API_KEY / hyperframes auth loginSí, nativos — pasa --words narration.words.json para capturarlos
2ElevenLabs$ELEVENLABS_API_KEY configuradaNo — encadena transcribe después
3Kokoro-82M (local, 54 voces)siempre (sin clave requerida)No — encadena transcribe después

La CLI publicada hyperframes tts suele ser la compilación solo local (su --help dice "Kokoro-82M", sin --provider/--words) y recurre silenciosamente a Kokoro incluso con $HEYGEN_API_KEY configurada. Por eso la ruta de HeyGen del motor es el autónomo scripts/heygen-tts.mjs (REST), NO la CLI; la CLI se usa solo para la ruta de Kokoro. Consulta references/tts.md.

BGM y SFX — por defecto se recuperan de la biblioteca de audio de HeyGen (/v3/audio/sounds), misma credencial que para TTS de HeyGen, con el respaldo sin credencial del interruptor anterior:

ActivoTipo de HeyGenDestinoRespaldo (sin credencial)
BGMmusicassets/bgm/track.mp3 (recuperación) · track.wav (generación)Generación Lyria / MusicGen
SFXsound_effects (min_score 0.4)assets/sfx/<slug>.mp3Biblioteca empaquetada de 21 archivos (assets/sfx/* + manifest.json)

Consulta references/bgm.md y references/sfx.md.

Enrutamiento

TareaLectura
El motor de audio — esquema de solicitud/meta, --only, el interruptorscripts/audio.mjs (comentario de encabezado)
npx hyperframes tts / heygen-tts.mjs — proveedores, voces, palabrasreferences/tts.md
BGM — recuperación de HeyGen + generación local Lyria/MusicGenreferences/bgm.md
SFX — recuperación de HeyGen (min_score 0.4) + biblioteca local empaquetadareferences/sfx.md
npx hyperframes transcribe — Whisper, reglas de modelo, forma de salidareferences/transcribe.md
npx hyperframes remove-background — recortes transparentesreferences/remove-background.md
TTS → transcripción → subtítulos (sin locución grabada)references/tts-to-captions.md
Creación de subtítulos — detección de estilo, diseño, agrupación de palabras, salidareferences/captions/authoring.md
Manejo de transcripciones — formatos de entrada, puertas de calidad, limpieza, APIsreferences/captions/transcript-handling.md
Movimiento de subtítulos — karaoke, efectos de marcador, reactivos al audioreferences/captions/motion.md
Cachés de modelo, dependencias del sistema, solución de problemasreferences/requirements.md

Reglas no negociables

  • Un solo motor, sin copias de proveedores. Produce audio mediante scripts/audio.mjs (o heygen-tts.mjs para TTS de HeyGen de un solo uso). No reimplementes TTS/BGM/SFX dentro de un flujo de trabajo — escribe un adaptador de audio_request.json y llama al motor.
  • "HeyGen disponible" = una credencial resoluble, no la CLI. Todo el interruptor depende de heygenCredential(); la CLI publicada hyperframes tts puede ser solo Kokoro, y no hay ningún comando hyperframes bgm / hyperframes sfx.
  • Los IDs de voz son específicos del proveedor. am_michael es solo de Kokoro; los UUID de HeyGen no funcionan en Kokoro. Si pasas --voice, también fija --provider para evitar una deriva silenciosa de proveedor cuando cambia el entorno del usuario.
  • Pasa siempre --model a transcribe. El valor predeterminado de la CLI small.en traduce silenciosamente audio no inglés. Consulta references/transcribe.md → "Regla de idioma".
  • HeyGen devuelve timestamps de palabra; ElevenLabs / Kokoro no lo hacen. El motor encadena transcribe automáticamente para estos dos últimos; de forma independiente, pasa --words a HeyGen o ejecuta transcribe contra el archivo de audio.
  • Los subtítulos consumen el formato de matriz plana de palabras con { id, text, start, end }. Consulta references/transcribe.md → "Forma de salida".
  • remove-background --background-output es recorte de agujero, no relleno. Para "escena sin la persona", se necesita una herramienta diferente. Consulta references/remove-background.md → "Cuándo NO es la herramienta adecuada".
  • BGM/SFX por defecto recuperan de HeyGen; el respaldo sin credencial es generación (BGM) o la biblioteca empaquetada (SFX). /audio/sounds clasifica por una consulta de texto — nombra los efectos de forma concreta (glass shatter, no dramatic sound); una falta de coincidencia omite, nunca bloquea la renderización. Los SFX se sitúan a un volumen de aproximadamente 0.35 por debajo de la voz + BGM. Consulta references/sfx.md / references/bgm.md.
  • Trata el HTML de subtítulos del flujo de trabajo como salida generada. Para videos respaldados por plantillas, la fuente de skin reutilizable vive en .hyperframes/caption-skin.html y el script del flujo de trabajo escribe compositions/captions.html; no edites compositions/captions.html generado para corregir el skin. Reconstruye mediante el captions.mjs del flujo de trabajo, o usa el mecanismo de anulaciones explícitas de ese flujo de trabajo cuando esté presente.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

The fallback workflow for authoring custom HyperFrames video compositions at any length or format — longer or multi-scene pieces, brand / sizzle reels, montages, title cards, static loops, and freeform compositions. Input- and length-agnostic. If a specialized workflow clearly fits the input — a marketed product, a website, a topic explainer, a GitHub PR, existing footage, a short motion graphic, or a Remotion port — prefer it (see /hyperframes); use this only as the general fallback when none fit.

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). HyperFrames-native: single paused timeline, seek-safe, deterministic.

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

HyperFrames CLI dev loop. Use when running npx hyperframes init, add, catalog, capture, lint, validate, inspect, layout, snapshot, preview, play, render, publish, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, tts, or remove-background, or when troubleshooting the HyperFrames build/render environment. Entry point for AWS Lambda cloud rendering (`hyperframes lambda deploy / render / progress / destroy / policies`).

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

Capture a general website/URL and turn it into a HyperFrames video (site tour, showcase, or social clip from the site's own visuals). Uses headless Chrome screenshots + brand assets. Use when intent is general — portfolio/blog/landing-page showcase or social clip from the site. NOT for: product/SaaS launch or promo (→ /product-launch-video, even from a URL); topic explainer with no site (→ /faceless-explainer); GitHub PR (→ /pr-to-video); adding captions to existing video (→ /embedded-captions); short unnarrated page-highlight motion graphic (→ /motion-graphics). Unclear launch-vs-general-site? Ask one question or start at /hyperframes.

Manavv007/S.A.R.A.L.-Scheme-Access-Retrieval-Analysis-Layer-

S.A.R.A.L. is an advanced AI-powered platform designed to bridge the "information gap" between rural Indian citizens and government welfare. While thousands of schemes exist, the complex language of official PDFs often makes them inaccessible to the common man.

Skills relacionados