FunClip: LLM-Assisted Video Clipping on Top of FunASR
FunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI.
At a glance
- What is it?
- FunClip is a locally deployed Gradio app that transcribes video with FunASR Paraformer models, lets you pick text segments or speakers, and exports clips plus SRT files. The design is coherent for Chinese-language editing, but the model dependencies and the LLM clipping path are where adoption decisions actually get made.
- Who is it for?
- Adopt FunClip if you are cutting Chinese-language interview, podcast, or lecture footage on a machine with enough GPU memory for Paraformer-Large and you want clips and SRT files without uploading media anywhere. Do not adopt it if you need English-first transcription quality, if you cannot install and manage ModelScope model weights, or if your editing workflow depends on frame-accurate cuts that the ASR timestamp granularity cannot provide.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The editing step FunClip removes
Cutting a clip out of a recorded talk usually means scrubbing a timeline until you find the sentence you remember, then marking in and out points by ear. FunClip replaces the scrubbing with a transcript. The README describes the flow plainly: FunASR Paraformer models run speech recognition on the video, then the user chooses text segments or speakers from the recognition results and clicks the clip button to get the matching video segment. That is the whole product idea, and it is a good one because the transcript is a better index than a waveform for anything spoken. The target user is someone editing Chinese-language video who is willing to run a local service. The README points at interview and speaker-segmented material through its CAM++ integration, and at entity-heavy speech through SeACo-Paraformer hotwords. It is not aimed at someone who wants a hosted editor with a timeline, effects, and collaborative review. It is aimed at the person who already knows which sentence they want and does not want to hunt for it.
How the ASR, speaker, and clipping layers connect
The mechanism visible in the material is a pipeline, not a monolith. FunASR performs recognition and, per the README, Paraformer-Large can "accurately predict timestamps in an integrated manner," which is what makes text-to-video mapping possible at all. Those timestamps become the bridge: a selected text span corresponds to a time range, and the clip is cut from that range. On top of the base recognizer sit two optional models. SeACo-Paraformer adds hotword customization so that names and entity words can be supplied before recognition to improve results. CAM++ adds speaker recognition, and the README states that the auto-recognized speaker ID can be used as the trimming target, so you can extract every segment belonging to one speaker rather than every segment containing one phrase. Release v2.2.0 adds a third path: MOSS-Transcribe-Diarize for long-form ASR, timestamps, and anonymous speaker labels without external VAD or speaker models. The output side is equally concrete. FunClip returns full-video SRT subtitles and target-segment SRT subtitles, and v2.2.1 renders built-in subtitles with Pillow specifically so that a selected foreground color survives video encoding. That last detail is a real engineering fix, not a cosmetic one: text rendered before encoding often shifts color, and the release note says the Pillow renderer preserves it.
Running the Gradio service and choosing a model
Installation is a clone plus a requirements install. The README gives `git clone https://github.com/modelscope/FunClip.git`, `cd FunClip`, then `pip install -r ./requirements.txt`. The service starts with `python funclip/launch.py`. Model selection is passed as flags on that same command. The README lists `-m fun-asr-nano` for the flagship Fun-ASR-Nano model covering Mandarin, English, Japanese, seven Chinese dialect groups, and 26 regional accents; `-m sensevoice` for multilingual ASR plus emotion and audio event detection; `--model moss` for OpenMOSS long-form ASR with anonymous speaker labels and timestamps; `-l en` for English audio; `-p xxx` for the port; and `-s True` to expose the service for public access. There is a versioned snapshot path too: download FunClip-2.2.1.tar.gz or the zip from the release, then verify against the published SHA256SUMS. Model weights are not in those archives; the README says they are downloaded separately when FunClip starts. Two upgrade commands matter. Existing installations should run `pip install -U -r requirements.txt` before restarting, and because the current model and subtitle compatibility paths require it, run `pip install -U "funasr>=1.4.9"` if FunClip was installed before that requirement changed. ImageMagick is now optional: the v2.2.1 Pillow renderer covers standard subtitle clipping, and ImageMagick is only needed for the legacy `funclip/test/imagemagick_test.py` example or your own MoviePy TextClip workflow.
Where the dependency chain becomes the real cost
The heaviest constraint is not FunClip's own code, it is what sits underneath. The README notes that ASR with Whisper timestamps requires massive GPU memory, and that the project supports timestamp prediction for vanilla Paraformer in FunASR to work around this. That sentence tells you the maintainers hit a memory wall and routed around it rather than solving it. The practical consequence: your hardware budget is set by the recognizer, and if you want the long-form MOSS path you are adding a third-party model with its own vLLM adapter requirement. The README states that the MOSS vLLM adapter is part of what `funasr>=1.4.9` brings in, which means the FunASR version pin is not incidental. Pin it wrong and the model path or the normalized `sentence_info` speaker segments will not behave as documented. A second limitation is language. The project's center of gravity is Chinese. English is reachable through `-l en` and through Fun-ASR-Nano's multilingual coverage, but the README's own framing puts Paraformer-Large forward as "one of the best-performing open-source Chinese ASR models," and the ongoing list still marks Whisper support as something to come. If your library is English-first, you are on the secondary path. A third issue is the roadmap itself. Reverse-period selection while clipping and silence removal are both still unchecked boxes, so cutting around pauses is manual work today.
FunClip against Whisper-based clipping tools
The obvious comparison is a Whisper-based transcription-and-cut pipeline. The difference is not accuracy claims, it is architecture. FunClip delegates recognition to Paraformer-family models served through FunASR and gets timestamps from the recognizer itself, which is why it can run the whole thing locally without a separate forced-alignment step. A typical Whisper clipping setup either accepts Whisper's segment-level timestamps, which are coarse, or adds an alignment model to sharpen them, and the README's own note about Whisper timestamping needing massive GPU memory describes exactly that pressure. Where Whisper-based tools usually win is language breadth and the size of the surrounding ecosystem, particularly for non-Chinese audio. Where FunClip wins is the Chinese-specific stack: SeACo-Paraformer hotwords, CAM++ speaker targeting, and MOSS anonymous speaker labels are all wired into the same Gradio surface, so a Chinese interview workflow gets speaker-aware clipping without assembling three separate tools. Note what is not comparable from the material: there are no accuracy numbers, no speed numbers, and no head-to-head evaluation in the README, so treat the model descriptions as the project's characterization rather than measured results.
Licence, upgrades, and what maintenance actually involves
FunClip is MIT-licensed, which is permissive and places few obligations on how you use or redistribute the application code. That licence does not automatically extend to the model weights, which are downloaded separately from ModelScope and carry their own terms. The README does not state those terms, so check each model you launch with before shipping anything commercial. Do not read the MIT label as covering the full stack. Upgrade cost is modest but not zero. The release cadence visible in the material is three releases in about a month (v2.1.1 in early August, v2.2.0 in late August, v2.2.1 on September 1), which means the install instructions and the funasr pin move. The concrete maintenance actions are the two upgrade commands above plus a restart, and the SHA256SUMS verification if you deploy from a release archive rather than a clone. There is no migration tooling and no compatibility matrix beyond the funasr>=1.4.9 statement, so a version bump is something you test rather than assume.
A narrow tool that knows its audience
FunClip is a focused utility with a clear boundary. It transcribes, it maps text and speakers to time ranges, it cuts, and it writes SRT. It does not edit beyond that, and the two unchecked roadmap items (reverse-period selection, silence removal) are the features most likely to send you back to a full editor for finishing work. The v2.2.x line shows active maintenance on the parts that break in practice: subtitle color fidelity, fresh Gradio installs, private-by-default container startup, case-insensitive matching, and MiniMax routing. That is a maintenance pattern aimed at people running the tool, not at people reading about it. The judgement is straightforward. If your source material is Chinese and your machine can host the recognizer, FunClip collapses a tedious manual step into a text selection, and the local deployment means the footage never leaves your hardware. If any of those conditions fails, the dependency chain will cost you more than the clipping saves.
Editorial conclusion
Adopt FunClip if you are cutting Chinese-language interview, podcast, or lecture footage on a machine with enough GPU memory for Paraformer-Large and you want clips and SRT files without uploading media anywhere. Do not adopt it if you need English-first transcription quality, if you cannot install and manage ModelScope model weights, or if your editing workflow depends on frame-accurate cuts that the ASR timestamp granularity cannot provide. Before committing, verify three things: that funasr>=1.4.9 resolves in your environment, that the Pillow subtitle renderer produces the foreground color you selected after encoding, and that your target language is actually covered by the model you launch with.
Community notes