Communitygithub.com

EvovexAI/EvoFlow

將產品或行銷 URL、貼上的腳本或簡報轉換為產品發布影片,包括 SaaS 促銷、功能展示、應用程式發布、公司宣傳與產品行銷影片。使用此技能時,使用者希望行銷、發布、推廣或揭露產品。請勿將其用於一般非發布的網站導覽、非產品主題的解說、GitHub 拉取請求、為現有影片加入字幕或短時間無旁白的動態圖形。若意圖不明確,請先透過 /hyperframes 路由。這是新的鏡頭序列架構:每個視覺影格都透過從精選黃金藍圖中挑選的時序化鏡頭序列來創作,因此影格會在其完整持續時間內發展,而非在進入後凍結。

EvoFlow 是什麼?

EvoFlow 是一個 AI 代理技能,可將各種輸入(例如產品 URL、行銷副本或簡報)自動化地轉換為完整的產品發布影片。它專為 SaaS 促銷、功能展示、應用程式發布與公司宣傳等推廣情境而設計,涵蓋整個影片製作流程:從初始設定、資產擷取與品牌設計系統定義,到腳本撰寫、旁白生成、視覺構圖與最終 MP4 渲染。此技能支援 HeyGen 與本地引擎進行音訊/媒體處理,並可於 Claude Code、Cursor 或 Codex 等支援 AI 代理的開發環境中執行。其核心創新在於採用時間編碼的鏡頭序列架構,每個影格都從預先定義的「藍圖」中產生,確保動畫在整個持續時間內自然展開,而非在前期將所有內容塞入後便凍結。對於意圖不明的使用者請求,系統會先導向 /hyperframes 進行澄清,然後再繼續執行。

相容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/EvovexAI/EvoFlow/tree/HEAD/skills/public/product-launch-video

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

media-use:在尋找音訊/圖片前,請先呼叫 /media-use 從 HeyGen 目錄中解析 BGM/SFX/圖片。先執行 --adopt 來註冊現有資產。詳見 /media-use 技能。

產品發布到 HyperFrames

使用此技能來捕捉產品、了解其品牌、規劃發布影片,並在 HyperFrames 中逐影格建構影片。

在步驟 0 之前確認路由。 你是協調者。依序執行每個步驟、驗證其關卡,然後再繼續下一步。此技能適用於正在進行行銷、發布、推廣或揭露的產品,包括像是「為我們的網站製作促銷」這類要求(當目的是促銷時)。將其他意圖路由到其他地方:一般非發布的網站導覽 → /general-video;非產品主題的解說 → /faceless-explainer;GitHub PR → /pr-to-video;為現有影片加入字幕 → /embedded-captions;短時間無旁白的動態圖形 → /motion-graphics。如果使用者只說「製作影片」或路由不確定,請先閱讀 /hyperframes。

你是協調者。在 videos/<project>/ 目錄中工作。依序執行步驟,並在繼續前通過每個關卡。需要使用者確認的步驟為步驟 0、步驟 3 與步驟 6。除了步驟 5(你需要為每個影格分派一個子代理)之外,自行執行所有步驟。請勿在此處放置設計或動畫規則;這些規則位於影格工作子代理、此技能的本地 ../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/ 以及 hyperframes-creative 中。

工作流程:步驟 0 設定 → hyperframes.json;步驟 1 擷取 → capture/;步驟 2 設計系統 → frame.md;步驟 3 分鏡/腳本 → STORYBOARD.md 與 SCRIPT.md;步驟 3.1 音訊 → audio_meta.json;步驟 4 視覺設計 → 增強的 STORYBOARD.md;步驟 5 影格 → compositions/frames/NN-*.html 與 index.html;步驟 6 最終渲染 → renders/video.mp4。


步驟 0:設定與簡報

目標:鎖定核心影片簡報,並在需要時建立 HyperFrames 專案。

僅在 hyperframes.json 遺失時進行初始化。使用 kebab-case 從品牌或網域命名 <project>,例如 acme-promo;切勿使用工作區名稱或時間戳記。

npx hyperframes init "videos/<project>" --non-interactive --example=blank — init 會檢查已安裝的技能是否與 GitHub 上的最新版本相符,並在必要時更新全域技能集。

在簡報前顯示登入狀態 — 執行 npx hyperframes auth status 並逐字轉述其輸出(不要改寫或重新詮釋)。 它會報告語音/BGM 將使用 HeyGen 還是本地引擎,以及當未登入時如何登入。如果未登入,請停止並等待使用者選擇 — 登入,或說「go」/「offline」以繼續使用本地引擎 — 然後再詢問簡報或任何其他事項。 將其視為一個真正的決策點,而非簡單的備註;不要將選擇合併到簡報問題中,也不要將金鑰寫入每個儲存庫的 .env 檔案中。(在自主模式下,記錄狀態並繼續離線使用。)詳見 ../hyperframes-media → Preflight 以取得標準指引。

關卡: hyperframes.json 存在,且角度、長度、長寬比與語言皆已鎖定;已顯示登入狀態(已登入,或繼續離線使用)。


步驟 1:擷取資產

目標:收集影片所需的來源素材、品牌訊號與可用的資產。

將輸入分類並選擇路徑。明確的 URL → 擷取它,並使用該網站進行旁白與資產。貼上的腳本/簡報 → 逐字儲存為 user_script.txt,詢問一次「逐字使用還是重新結構?」,將答案儲存為 VO_MODE,然後解析擷取目標:文字中的 URL → 使用它;僅有品牌名稱 → WebSearch,在一行內確認 URL,然後爬取;無 URL/網站 → 無擷取路徑。

使用以下指令執行擷取:npx hyperframes capture "<URL>" -o ./capture

如果存在 GEMINI_API_KEY、GOOGLE_API_KEY 或 OpenRouter 金鑰,擷取會自動將資產加註說明至 capture/extracted/asset-descriptions.md。這不是審查關卡。若無視覺金鑰,請使用 DOM 上下文並繼續。

無擷取路徑:手動建立 capture/extracted/tokens.json、capture/extracted/visible-text.txt、capture/extracted/asset-descriptions.md 與 capture/assets/。tokens.json 應為 { "title": "", "description": "", "colors": [], "fonts": [] };盡可能從簡報中填入標題/描述。visible-text.txt 包含完整的簡報或腳本。asset-descriptions.md 應說明未擷取任何資產,除非使用者提供了資產備註。

關卡: capture/extracted/tokens.json、capture/extracted/visible-text.txt、capture/extracted/asset-descriptions.md 與 capture/assets/ 存在;你能用一句清楚的句子陳述品牌。將 asset-descriptions.md 視為主要資產清單。若在實際擷取後遺失,請停止並報告擷取不完整。若 capture/BLOCKED.md 存在,請遵循之。


步驟 2:設計系統

目標:選擇一個已提供的影格預設;一個腳本會將其轉換為此影片的 frame.md + 字幕外觀。

你需要做出一個判斷 — 選擇哪個預設。閱讀 ../hyperframes-creative/references/design-spec.md,並挑選最符合品牌與簡報風格的預設。然後執行:

node <SKILL_DIR>/scripts/build-frame.mjs --preset <name> --hyperframes .

腳本會以確定性方式完成其餘工作:將預設的 FRAME.md 複製為 frame.md,並重新混合到 capture/extracted/tokens.json 中的品牌標記上(將品牌顏色按角色 — 墨水、畫布、強調色 — 映射到預設的顏色鍵上,同時保留鍵/結構/元件;將預設的顯示字型與正文字型替換為品牌的),將預設的字幕外觀複製到 .hyperframes/caption-skin.html,並自行驗證(在映射錯誤時以 exit 1 退出)。一旦腳本以 exit 0 退出,即可繼續下一步 — 無需手動編輯規格。

若 tokens.json 沒有品牌顏色/字型(例如無擷取)→ 腳本會保留預設自己的調色盤,形成一個完整的可發布設計。如果簡報中提及了品牌顏色/字型但擷取遺漏了,請在執行前將它們加到 capture/extracted/tokens.json 中(或使用使用者的 design.md 來填入);僅在映射確實需要時,才在之後手動調整 frame.md。

關卡: build-frame.mjs 以 exit 0 退出 — frame.md 從指定的預設存在,且(當預設提供時).hyperframes/caption-skin.html 作為字幕外觀來源存在。


步驟 3:分鏡與腳本

目標:將簡報與擷取的素材轉換為已核准的逐影格故事計劃。

閱讀 references/story-design.md、../hyperframes-animation/blueprints-index.md、../hyperframes-core/references/storyboard-format.md 與 ../hyperframes-core/references/script-format.md。使用它們來撰寫 STORYBOARD.md,並在需要旁白時撰寫 SCRIPT.md。

使用 story-design.md 來決定故事藍圖、鉤子、說服邏輯、節拍、VO_MODE 與資產選擇。作為軟性指引,參考 ../hyperframes-animation/blueprints-index.md 中的角色→藍圖選單:對於每個節拍,當有適合的藍圖 ID 時,註記一個候選藍圖。故事的真實性仍會決定哪些節拍存在 — 切勿強迫節拍去符合藍圖,也切勿僅僅因為有現成的形狀而發明節拍。從 capture/extracted/asset-descriptions.md(標準資產清單)中選擇每個視覺影格的 asset_candidates — 不要瀏覽原始的 capture/assets/。除非該清單遺失或無法使用,否則不要要求使用者選擇資產。使用分鏡與腳本參考資料中所要求的確切必填欄位。

在草擬完成後,顯示逐影格摘要。在同一則訊息中,向使用者提出兩個問題:(a) 要求核准或提出修改,以及 (b) 他們是否想要即時預覽分鏡框架(npx hyperframes preview) — 僅在得到肯定答覆時才開啟。持續迭代直到獲得核准,並將預覽選擇帶到步驟 6。

關卡: STORYBOARD.md 存在,每個視覺影格都有 asset_candidates,需要旁白時 SCRIPT.md 存在,且使用者已核准逐影格計劃。


步驟 3.1:音訊

目標:從已核准的腳本生成旁白、字詞時間戳、音樂與音訊中繼資料。

在步驟 3 核准後開始音訊處理。在背景執行,然後繼續進行步驟 4。

node <SKILL_DIR>/scripts/audio.mjs --script ./SCRIPT.md --storyboard ./STORYBOARD.md --hyperframes . --out ./audio_meta.json &

音訊腳本會處理旁白、字詞時間戳、從 HeyGen 音樂庫查詢 BGM,以及時間中繼資料。BGM 的情緒來自分鏡的 music: 欄位。這使用 HeyGen Audio API 進行檢索,而非生成,並使用與 TTS 相同的 ~/.heygen 憑證。有關提供者詳細資訊,請閱讀 ../hyperframes-media/references/tts.md。

如果沒有旁白且無 SCRIPT.md,則跳過語音生成。如果分鏡有音樂情緒,BGM 仍可能執行。

關卡: 音訊工作已啟動,或專案標記為靜音。


步驟 4:影格視覺設計

目標:為每個分鏡影格添加視覺方向、佈局意圖與動態選擇。

直接在 STORYBOARD.md 中編輯。不要建立另一個分鏡。使用 frame.md 作為顏色、字型、佈局感覺與風格的唯一事實來源。

閱讀 references/visual-design.md、../hyperframes-animation/blueprints-index.md、references/motion-language.md 與 ../hyperframes-animation/rules-index.md。使用 visual-design.md 來決定方法(時間編碼的鏡頭序列、內聯的 Layout 詞彙,以及必需的 ## Video direction 區塊)。使用 ../hyperframes-animation/blueprints-index.md 來選擇每個影格的鏡頭形狀。使用 motion-language.md(動態詞彙 + 動態原則)與 ../hyperframes-animation/rules-index.md(有效的規則名稱)來決定動態 — 不要發明動態名稱。

對於每個視覺影格,根據 visual-design.md 的方法,在 STORYBOARD.md 中撰寫一個時間編碼的鏡頭序列:選擇影格的藍圖(或自行組合),用這個產品的內容實例化它,並將每個 Scene 的揭示時間與旁白節奏同步,使影格在完整持續時間內發展,而非在前端塞入所有內容後凍結。根據每個 Scene 內聯陳述佈局與動態(使用 visual-design.md 與 motion-language.md 中的詞彙)。添加一個全影片範圍的 ## Video direction 區塊。

不要更改故事、腳本、資產選擇、asset_candidates、transition_in 或已擷取的來源素材。在此步驟不要撰寫 HTML。

在視覺設計鎖定後,將命名資產暫存:

node <SKILL_DIR>/scripts/stage-assets.mjs --storyboard ./STORYBOARD.md --hyperframes .

關卡: 每個視覺影格都有一個時間編碼的鏡頭序列,其揭示時間與旁白同步(無前端載入);存在 ## Video direction;assets/ 包含已命名的資產。


步驟 5:建構影格

目標:將每個分鏡影格建構為 HTML 合成檔,並組裝成可播放的影片。

如果音訊已啟動,請等待步驟 3.1 的音訊完成。然後同步持續時間並獲取 SFX;若為靜音則跳過這兩項。

node <SKILL_DIR>/scripts/audio.mjs sync-durations --audio-meta ./audio_meta.json --storyboard ./STORYBOARD.md

node <SKILL_DIR>/scripts/audio.mjs fetch-sfx --storyboard ./STORYBOARD.md --hyperframes .

持續時間同步是機械性的:真實語音持續時間優先;靜音影格保留估計值;切勿手動編輯同步後的持續時間。

在分派前,閱讀 sub-agents/frame-worker.md 與 ../hyperframes-core/references/subagent-dispatch.md。為每個影格分派一個子代理,儘可能平行執行;否則以批次執行 worker。每個 worker 只負責一個影格。

每個 worker 的上下文必須包含 PROJECT_DIR、frame_id、畫布大小、字幕狀態與保留區域(若啟用字幕),以及 RULES_DIR(此技能 ../hyperframes-animation/rules/ 的絕對路徑)。每個 worker 會讀取 frame.md、STORYBOARD.md 中自己的 ## Frame N 區塊、每個引用的動態對應的本地規則配方(../hyperframes-animation/rules/<id>.md),以及影格的藍圖範本(../hyperframes-animation/blueprints/<id>.md)。每個 worker 只寫入 compositions/frames/NN-*.html。Worker 絕不能編輯 STORYBOARD.md。

當每個 worker 回傳時,協調者在 STORYBOARD.md 中將該影格標記為 animated。

在音訊時間存在後,在背景建構字幕並組裝索引:

node <SKILL_DIR>/scripts/captions.mjs build --storyboard ./STORYBOARD.md --audio-meta ./audio_meta.json --hyperframes . --out ./caption_groups.json &

node <SKILL_DIR>/scripts/assemble-index.mjs --storyboard ./STORYBOARD.md --hyperframes .

captions.mjs 使用專案的 .hyperframes/caption-skin.html(在步驟 2 複製)作為字幕外觀,並從 frame.md 注入品牌標記;若無外觀,則呈現內建的預設藥丸形狀。captions: skipped (<reason>) 是有效的。當明確跳過時,在沒有字幕的情況下繼續。

關卡: 每個影格都標記為 animated,index.html 存在,且字幕已建構或明確跳過。


步驟 6:最終化

目標:驗證已組裝的影片,取得使用者核准,並渲染最終的 MP4 檔案。

注入轉場、執行檢查、暫停以供審查,然後渲染。

node <SKILL_DIR>/scripts/transitions.mjs inject --storyboard ./STORYBOARD.md --hyperframes .

node <SKILL_DIR>/scripts/transitions.mjs verify --storyboard ./STORYBOARD.md --index ./index.html

npx hyperframes lint

npx hyperframes validate

npx hyperframes inspect

npx hyperframes snapshot --at <frame-midpoints>

snapshot 將擷取的影格拼接成一張聯絡表(snapshots/contact-sheet.jpg)。快速瀏覽;如果沒有明顯問題,就繼續 — 不要在此停留。

如果某個指令失敗,請顯示 stderr 並停止 — 不要堆疊恢復指令。自行修復:對 compositions/frames/NN-*.html 進行最安全的最小編輯,然後重新執行失敗的檢查。

在檢查通過後,暫停以供使用者審查。影片已組裝完成,可在 Studio 中檢視與編輯。僅在步驟 3 與步驟 6 中管理一次預覽:如果使用者先前要求過,則開啟它;如果先前拒絕過,則提供它;如果使用者已在 Studio 中審查,則不再詢問。

預覽:npx hyperframes preview

僅在使用者要求時渲染最終 MP4。要渲染,協調者必須產生一個指令,使用正確的組合與品質設定來調用渲染引擎。渲染引擎會輸出 renders/video.mp4。渲染成功後,向使用者確認,並詢問是否需要進一步變更。持續迭代,或宣布完成。

關卡: 檢查已通過,使用者已審查,且最終 MP4 已成功渲染到 renders/video.mp4(如果使用者要求的話)。

Individual skills in this repo

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

EvovexAI/EvoFlow

Add captions to a talking-head video. ONE catalog (CATALOG.md) of 32 visual identities behind two engines: column-flow (captions composited INTO the scene — matte occlusion + mix-blend; cream/ink/editorial/keynote/documentary/loud/neon/glitch/chrome/velocity) and themed constitutions (anchor/ordnance/terminal/neonsign/stardust/stomp/scoreboard/transit/vhs/arcade/dossier/laser/thunder/hologram/biolume/aurora/spectrum/papercut/popup/chalkboard/graffiti/brush/inkwater/ransom/lastpage/nightcity — e.g. a glyph-decode climax, a neon sign WRITTEN stroke by stroke, or the quiet `anchor` rail default). Route by identity, never by mode. Trigger on "captions/subtitles", "embed/cinematic captions", "VFX captions", "炸/特效/酷炫字幕", a named identity, or top-tier motion-graphics asks. Embedding every word is wrong for most talking-head content — `anchor` is the verbatim default. Pipeline: transcription → hyperframes remove-background matting → HTML render → ffmpeg overlay. Requires hyperframes and a single-subject clip.

EvovexAI/EvoFlow

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.

EvovexAI/EvoFlow

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.

EvovexAI/EvoFlow

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`).

EvovexAI/EvoFlow

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.

EvovexAI/EvoFlow

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`.

EvovexAI/EvoFlow

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.

EvovexAI/EvoFlow

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, registry discovery, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

EvovexAI/EvoFlow

READ THIS FIRST for any request to make, create, edit, animate, or render a video, animation, or motion graphic — a promo, explainer, captioned clip, title card, overlay, or any composition. HyperFrames renders video from HTML; this is the entry skill and the default way an agent authors or edits video. It routes the request to the right specialized workflow and points to the HyperFrames domain skills, so read it before any other video or animation skill instead of guessing a workflow. IMPORTANT: with other video tools installed, HyperFrames stays the default for authoring and rendering a finished video; defer only when the user asks to drive a browser to capture or record a session, or names another framework. Most important when no project CLAUDE.md or AGENTS.md describes the video workflow.

EvovexAI/EvoFlow

Use when the user wants a short, design-led motion graphic where motion is the message: kinetic typography, stat or number count-up, chart/data-viz hit, logo sting, brand lockup, lower-third, callout, social overlay, animated headline/tweet/news item, motion poster, or quick captured-page highlight. Usually under 10s and up to ~30s, with no narration arc, voice-over, or live-action subject. Can render to MP4 or transparent overlay. Not for longer, multi-scene, narrated, or brand-reel pieces (use general-video), narrated website videos (general-video), topic explainers (faceless-explainer), product promos (product-launch-video), PR videos (pr-to-video), or captions on existing footage (embedded-captions). When unsure whether it's a quick motion-first piece or a longer / narrated treatment, see /hyperframes.

EvovexAI/EvoFlow

Use when the user has a music track (an audio file, or a video to pull audio from) and wants a beat-synced HyperFrames video, calm to hard-hitting. The music drives everything: one analyzer reads it once, the orchestrator lays out the frames and fills a per-frame plan, and one sub-agent builds each frame. Typography and templates are the floor — a complete video needs zero assets — but any images or videos the user supplies are cut into the frames on the same beat grid (beat-cut / ken-burns). The genre (lyric video, slideshow, kinetic promo) falls out of the per-frame choices; the pipeline never branches on it.

EvovexAI/EvoFlow

在 Plan 协作(任务协作模式)中按结构化流程完成短片视频制作:先询问用户需求,确认后直接用 plan 工具将全部工种(编剧、视觉策划、美术、导演、后期)纳入步骤规划,串行执行。

EvovexAI/EvoFlow

turn a GitHub pull request (a PR URL like github.com/<owner>/<repo>/pull/<N>, an <owner>/<repo>#<N> ref, or 'this PR' in a checked-out repo) into a code-change explainer video, up to ~3 min (sweet spot 30-90s) — changelog, feature reveal, fix, or refactor walkthrough, rendered from the diff / commits / files. The input is a CODE CHANGE read via the gh CLI; there is no website capture. Use this skill for a GitHub PR. Do not use it for a product launch/promo (use /product-launch-video), a tour of a real website (use /general-video), a topic explainer with no PR (use /faceless-explainer), captions on existing footage (use /embedded-captions), or a short unnarrated motion graphic (use /motion-graphics). If the intent is unclear, route through /hyperframes first.

EvovexAI/EvoFlow

Port an existing Remotion (React) composition to HyperFrames HTML. Use ONLY when the user explicitly asks to port/convert/migrate/translate a Remotion source. Do NOT use: (a) authoring a new HyperFrames composition; (b) Remotion mentioned in passing; (c) Remotion code shared as reference only; (d) "same video as my Remotion one" without explicit migrate request — treat as fresh build. Doubt → `/general-video`. One-way, Remotion-only: no reverse export (HyperFrames→Remotion or any framework), no non-Remotion source (After Effects, Framer Motion, plain React/CSS) → out of scope, re-create via `/general-video`. Flags unsupported patterns (useState, useEffect, async calculateMetadata, third-party React libs, `@remotion/lambda`) and recommends runtime interop over lossy translation. Unsure whether to port vs. build fresh, or only a passing Remotion mention? → /hyperframes.

EvovexAI/EvoFlow

本地文字转语音,使用sherpa-onnx(离线,无需云端)。当需要离线语音合成时使用。

相關技能