Loading...
Loading...
Audio and media assets for HyperFrames compositions, produced by one shared audio engine (`scripts/audio.mjs`) — multi-provider TTS (HeyGen / ElevenLabs / Kokoro local), background music + sound effects (HeyGen audio-library retrieval by default, with local Lyria / MusicGen BGM generation and a bundled SFX library as the no-credential fallback), Whisper transcription, background removal, and caption authoring. Use for voiceover / TTS, BGM, SFX / sound effects, transcription, captions / subtitles / lyrics / karaoke / per-word styling, voice + provider selection, and music-mood prompting.
npx skill4agent add openmontageinc/openmontage hyperframes-mediahyperframes-corescripts/audio.mjsaudio_request.jsonaudio_meta.jsonassets/voice|bgm|sfx# <MEDIA_DIR> = this skill's directory
node <MEDIA_DIR>/scripts/audio.mjs --request ./audio_request.json --hyperframes . --out ./audio_meta.json$HEYGEN_API_KEY$HYPERFRAMES_API_KEY~/.heygen| Capability | HeyGen credential present | absent |
|---|---|---|
| TTS | HeyGen Starfish REST (native word timestamps) | → ElevenLabs → Kokoro (chain |
| BGM | HeyGen music retrieval | Lyria → MusicGen local generation (detached) |
| SFX | HeyGen sound-effects retrieval (min_score 0.4) | bundled 21-file library ( |
audio_request.json{ provider?, lang?, speed?, lines: [{ id, text, sfx?: [names] }], bgm: { mode?, query?, prompt? } }idbgm.moderetrieve | generate | noneretrievewait-bgmaudio_meta.json{ 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--outbgm_pending: truescripts/wait-bgm.mjsscripts/heygen-tts.mjsaudio_meta.jsonscripts/audio.mjs.envnpx hyperframes auth statusexit 1npx hyperframes auth loginnpx hyperframes auth login --api-key~/.heygen.envpipnpx hyperframes auth status --json{ configured, recommended_action, offline_engines }npxnpx hyperframes auth loginreferences/requirements.mdnpx hyperframes tts "..."| Order | Provider | Detected when | Word timestamps |
|---|---|---|---|
| 1 | HeyGen (Starfish) | | Yes, native — pass |
| 2 | ElevenLabs | | No — chain |
| 3 | Kokoro-82M (local, 54 voices) | always (no key required) | No — chain |
The publishedCLI is often the local-only build (itshyperframes ttssays "Kokoro-82M", no--help/--provider) and silently falls back to Kokoro even with--wordsset. That is why the engine's HeyGen path is the self-contained$HEYGEN_API_KEY(REST), NOT the CLI; the CLI is used only for the Kokoro path. Seescripts/heygen-tts.mjs.references/tts.md
/v3/audio/sounds| Asset | HeyGen | Lands in | Fallback (no credential) |
|---|---|---|---|
| BGM | | | Lyria / MusicGen generation |
| SFX | | | bundled 21-file library ( |
references/bgm.mdreferences/sfx.md| Task | Read |
|---|---|
The audio engine — request/meta schema, | |
| |
| BGM — HeyGen retrieval + local Lyria / MusicGen generation | |
| SFX — HeyGen retrieval (min_score 0.4) + bundled local library | |
| |
| |
| TTS → transcription → captions (no recorded voiceover) | |
| Caption authoring — style detection, layout, word grouping, exit | |
| Transcript handling — input formats, quality gates, cleanup, APIs | |
| Caption motion — karaoke, marker effects, audio-reactive | |
| Model caches, system dependencies, troubleshooting | |
scripts/audio.mjsheygen-tts.mjsaudio_request.jsonheygenCredential()hyperframes ttshyperframes bgmhyperframes sfxam_michael--voice--provider--modeltranscribesmall.enreferences/transcribe.mdtranscribe--wordstranscribe{ id, text, start, end }references/transcribe.mdremove-background --background-outputreferences/remove-background.md/audio/soundsglass shatterdramatic soundreferences/sfx.mdreferences/bgm.md.hyperframes/caption-skin.htmlcompositions/captions.htmlcompositions/captions.htmlcaptions.mjs