You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-47Lines changed: 8 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,26 +34,11 @@
34
34
35
35
<aname="What's New"></a>
36
36
## What's New🚀
37
-
- 2026/08/30 FunClip adds the third-party [OpenMOSS/MOSS-Transcribe-Diarize](https://github.com/OpenMOSS/MOSS-Transcribe-Diarize) model as an opt-in `moss` path. It provides long-form ASR, anonymous speaker labels, and segment timestamps without external `vad_model` or `spk_model`, through FunASR's vLLM adapter. OpenMOSS owns and maintains the model; FunClip only integrates its published contract.
38
-
- 2026/08/03 [FunClip v2.1.1](https://github.com/modelscope/FunClip/releases/tag/v2.1.1) fixes fresh Gradio 4 installations by constraining the incompatible Starlette 1.x runtime, keeps `--listen` container startup private unless `--share` is explicitly requested, makes transcript matching case-insensitive, and adds MiniMax M2.7 provider routes.
39
-
- 2026/07/24 [FunClip v2.1.0](https://github.com/modelscope/FunClip/releases/tag/v2.1.0) is the first versioned GitHub release. It packages the current Fun-ASR-Nano, SenseVoice, Paraformer, and LLM-assisted clipping application as checksum-protected source archives for a stable rollback point.
40
-
- 2026/05/20 FunClip now supports [Fun-ASR-Nano](https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512) and [SenseVoice](https://huggingface.co/FunAudioLLM/SenseVoiceSmall) models. The `fun-asr-nano` option loads the flagship Fun-ASR-Nano-2512 checkpoint for Mandarin, English, Japanese, 7 Chinese dialect groups, and 26 regional accents; it does not load the separate 31-language Fun-ASR-MLT-Nano-2512 checkpoint. SenseVoice adds emotion recognition and audio event detection. Run `python funclip/launch.py -m fun-asr-nano` or `-m sensevoice` to try. For precise text-based clipping, use Paraformer because the released Nano checkpoint does not provide reliable character-level timestamps.
41
-
- 2024/06/12 FunClip now supports recognizing and clipping English audio files. Run `python funclip/launch.py -l en` to try.
42
-
- 🔥2024/05/13 FunClip v2.0.0 now supports smart clipping with large language models, integrating models from the qwen series, GPT series, etc., providing default prompts. You can also explore and share tips for setting prompts, the usage is as follows:
43
-
1. After the recognition, select the name of the large model and configure your own apikey;
44
-
2. Click on the 'LLM Inference' button, and FunClip will automatically combine two prompts with the video's srt subtitles;
45
-
3. Click on the 'AI Clip' button, and based on the output results of the large language model from the previous step, FunClip will extract the timestamps for clipping;
46
-
4. You can try changing the prompt to leverage the capabilities of the large language models to get the results you want;
47
-
- 2024/05/09 FunClip updated to v1.1.0, including the following updates and fixes:
48
-
- Support configuration of output file directory, saving ASR intermediate results and video clipping intermediate files;
49
-
- UI upgrade (see guide picture below), video and audio cropping function are on the same page now, button position adjustment;
50
-
- Fixed a bug introduced due to FunASR interface upgrade, which has caused some serious clipping errors;
51
-
- Support configuring different start and end time offsets for each paragraph;
52
-
- Code update, etc;
53
-
- 2024/03/06 Fix bugs in using FunClip with command line.
54
-
- 2024/02/28 [FunASR](https://github.com/modelscope/FunASR) is updated to 1.0 version, use FunASR1.0 and SeACo-Paraformer to conduct ASR with hotword customization.
55
-
- 2023/10/17 Fix bugs in multiple periods chosen, used to return video with wrong length.
56
-
- 2023/10/10 FunClipper now supports recognizing with speaker diarization ability, choose 'yes' button in 'Recognize Speakers' and you will get recognition results with speaker id for each sentence. And then you can clip out the periods of one or some speakers (e.g. 'spk0' or 'spk0#spk3') using FunClipper.
37
+
- 2026/09/01 [FunClip v2.2.1](https://github.com/modelscope/FunClip/releases/tag/v2.2.1) preserves selected subtitle colors with a Pillow renderer and publishes the latest MOSS speaker-label boundaries in checksum-protected source archives.
38
+
- 2026/08/30 [FunClip v2.2.0](https://github.com/modelscope/FunClip/releases/tag/v2.2.0) adds the third-party [MOSS-Transcribe-Diarize](https://github.com/OpenMOSS/MOSS-Transcribe-Diarize) path for long-form ASR, timestamps, and anonymous speaker labels without external VAD or speaker models.
> See [GitHub Releases](https://github.com/modelscope/FunClip/releases) for the complete history and downloadable assets.
57
42
58
43
<aname="On Going"></a>
59
44
## On Going🌵
@@ -77,39 +62,15 @@ cd FunClip
77
62
pip install -r ./requirements.txt
78
63
```
79
64
80
-
For a versioned snapshot, download [FunClip-2.1.1.tar.gz](https://github.com/modelscope/FunClip/releases/download/v2.1.1/FunClip-2.1.1.tar.gz) or [FunClip-2.1.1.zip](https://github.com/modelscope/FunClip/releases/download/v2.1.1/FunClip-2.1.1.zip), then verify it with the published [SHA256SUMS](https://github.com/modelscope/FunClip/releases/download/v2.1.1/SHA256SUMS). Model weights are downloaded separately when FunClip starts and are not included in these source archives.
65
+
For a versioned snapshot, download [FunClip-2.2.1.tar.gz](https://github.com/modelscope/FunClip/releases/download/v2.2.1/FunClip-2.2.1.tar.gz) or [FunClip-2.2.1.zip](https://github.com/modelscope/FunClip/releases/download/v2.2.1/FunClip-2.2.1.zip), then verify it with the published [SHA256SUMS](https://github.com/modelscope/FunClip/releases/download/v2.2.1/SHA256SUMS). Model weights are downloaded separately when FunClip starts and are not included in these source archives.
81
66
82
-
FunClip v2.1.1 supports Gradio 4 with `starlette<1.0`. Existing installations should run `pip install -U -r requirements.txt` before restarting. Container users can pass `--listen` to bind all interfaces; a public Gradio sharing tunnel is created only when `--share` is also supplied.
67
+
FunClip v2.2.1 keeps the supported Gradio 4 runtime and renders built-in subtitles with Pillow so the selected foreground color survives video encoding. Existing installations should run `pip install -U -r requirements.txt` before restarting.
83
68
84
69
FunClip's current model and subtitle compatibility paths require `funasr>=1.4.9`. This includes the MOSS vLLM adapter, long-audio generation controls, normalized `sentence_info` speaker segments, and the earlier SenseVoice and realtime fixes. If you installed FunClip before this requirement was updated, run `pip install -U "funasr>=1.4.9"` before starting the Gradio service. [Release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.9) · [PyPI](https://pypi.org/project/funasr/1.4.9/)
85
70
86
71
### imagemagick install (Optional)
87
72
88
-
If you want to clip video file with embedded subtitles
The built-in subtitle renderer in v2.2.1 uses Pillow and the bundled font, so standard subtitle clipping no longer requires ImageMagick. Install ImageMagick only for the legacy `funclip/test/imagemagick_test.py` example or your own MoviePy `TextClip` workflow.
FunClip v2.2.1 makes embedded subtitle colors reliable and packages the latest MOSS deployment boundaries as a stable, checksum-protected snapshot.
4
+
5
+
## Highlights
6
+
7
+
- Preserve selected subtitle colors with a Pillow RGBA renderer and the bundled font. The standard subtitle path no longer depends on ImageMagick text rasterization.
8
+
- Keep subtitle timing, bottom-center placement, `SubtitlesClip` composition, and FFmpeg video encoding unchanged.
9
+
- Clarify that MOSS-Transcribe-Diarize produces anonymous speaker labels for turns within one recording. It does not identify a known person or provide voiceprint verification.
10
+
- Retain the third-party MOSS path for long-form ASR, segment timestamps, speaker SRT, and speaker-based clipping without an external VAD or speaker model.
11
+
12
+
## Install or upgrade
13
+
14
+
Download either source archive below, verify it with `SHA256SUMS`, extract it, and install the declared dependencies:
15
+
16
+
```bash
17
+
sha256sum -c SHA256SUMS --ignore-missing
18
+
pip install -U -r requirements.txt
19
+
python funclip/launch.py
20
+
```
21
+
22
+
The current MOSS and subtitle integration requires `funasr>=1.4.9`. Model weights are downloaded separately when FunClip starts.
23
+
24
+
## Assets
25
+
26
+
-`FunClip-2.2.1.tar.gz`: versioned source archive for Linux and macOS workflows.
27
+
-`FunClip-2.2.1.zip`: versioned source archive for Windows and general-purpose extraction.
28
+
-`SHA256SUMS`: SHA-256 digests for both archives.
29
+
30
+
The archives contain tracked FunClip application source, documentation, fonts, and dependency manifests. Runtime dependencies and model weights are not bundled; model weights are not bundled because every model retains its own license and distribution terms.
31
+
32
+
## Validation
33
+
34
+
- Subtitle foreground regression covers black, white, green, and red pixels.
35
+
-`SubtitlesClip` plus `CompositeVideoClip` verifies final-frame color composition.
36
+
- A one-second encoded MP4 was decoded with 1,297 red subtitle pixels and zero white subtitle pixels.
37
+
- Release archives are built twice and compared byte-for-byte before the signed tag is published.
38
+
39
+
## Changes since v2.2.0
40
+
41
+
See the [full changelog](https://github.com/modelscope/FunClip/compare/v2.2.0...v2.2.1).
0 commit comments