• Stars
    star
    125
  • Rank 286,335 (Top 6 %)
  • Language
    Python
  • License
    Mozilla Public Li...
  • Created almost 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

使用 spleeter 将视频中的人声提取出来(去除背景音),再对视频中的声音进行分析,分成静音部分和非静音部分,分别施加不同的速度,最后合成到一个新视频。

中文 | English

Gitee | Github

JumpCutter2

⭐ 简介

功能: 使用 spleeter 将视频中的人声提取出来(去除背景音),再对视频中的声音进行分析,分成静音部分和非静音部分,分别施加不同的速度,最后合成到一个新视频。

用途示例:

  • 录制教程、vlog 类视频,没有文字稿,就必然会有许多空隙片段,用于思考下一句说什么,这些片段多是没有信息含量的,加速剪掉,可以提升用户观看体验。
  • 在许多种类的视频中,只有有声音的片段是人在说话的,其他安静的片段信息含量很少,就可以对静音部分加倍速,减少无用信息。比如将一个网课视频有声速度调为 1,静音速度调为 9999。

下载:

使用教程视频地址:https://www.bilibili.com/video/BV165411N7By/

📝 背景

原来 JumpCutter 需要把视频所有帧都提取成照片,存储在硬盘上,一段100多兆的视频,就可能产生20多G的图片文件,对硬盘寿命影响很大。

改进后使用标准输入和标准输出,数据都是经过内存,不再频繁读写硬盘。

结合了 pyav 多进程读取视频、subprocess ffmpeg 写视频,速度是 JumpCutter 的 2 到 3 倍多。

Spleeter 可以将音频中的人声和背景声(音乐、风声、杂音)分开。如果你的视频的声音中,有大量杂音,影响自动分段,那就可以启用这个选项,脚本会先将音频声音中的背景音乐、杂音去掉,只留下纯净的人声,再进行分段变速。

再加上 spleeter 去除背景音,可以做到比 JumpCutter 更好的效果。

✨ 特性

两种运行方式:

  • 直接运行,文字引导
  • 命令行运行

🛠️ 安装

📦 发行版

需要提前安装上 FFmpeg、FFprobe,一般下载上 FFmpeg 后,包里就有 FFprobe

已为 Windows 64 位打包成可直接双击运行的包,请到 本仓库的 Releases 界面下载。总共有两个包,一个是依赖包(里面包含了 tensorflow 库、spleeter 模型),依赖包有 1GB 大小,下载后就不用再更新依赖包了,另一个是源码包(更新的时候只要下载新的源码包覆盖解压即可),将两个 7z 压缩包解压放在同一个文件夹后,文件夹内有一个 exe 文件,双击即可运行。

也可以从命令行运行:

JumpCutter2 -h

我没有其他系统(例如 Linux、MacOS)的电脑,所以无法为其他系统打包,这些系统的用户需要从源代码或 pip 安装使用。(参见下文)

⚙️ 用 pip 安装运行

需要提前安装上 FFmpeg、FFprobe 和 Python3

另外还需要从 spleeter 下载 5stems.tar.gz (训练好的模型),将其中的内容文件夹解压到 JumpCutter2/pretrained_models/5stems 文件夹中。

用 pip 从 pypi 安装

还未上传

用 pip 从源代码安装

将仓库克隆下来,进入仓库文件夹,运行:

pip install .

就安装上了。然后就可以运行以下命令使用了:

JumpCutter2

📄 从源代码直接运行

将仓库克隆下来,进入仓库文件夹,先安装依赖库:

pip install -r requirements.txt

再从 spleeter 下载 5stems.tar.gz (训练好的模型),将其中的内容文件夹解压到 JumpCutter2/pretrained_models/5stems 文件夹中。

然后就可以以模块的方式运行:

python -m JumpCutter2

在音频变速部分,优先使用 soundstretch ,这是一个 c 实现的开源的音频变速软件,可以不改变声调,对音频进行伸缩,许多知名项目都是用着它来进行音频变速。

但是它没有 python 实现,所以我只能调用他的二进制包。这个 repository 已经包含了 Windows 和 MacOS 的 soundstretch 二进制包。如果你想在其他系统上也用它来处理音频,请自行安装。

当然如果你没有安装 soundstretch 的话,会使用次选方案 audiotsm 进行变速。但是它的变速效果有些差。

💡 使用

python -m JumpCutter2
python -m JumpCutter2 -h

第一种方式是直接运行,会有文字提示引导你:

> python -m JumpCutter2

你没有输入任何文件,因此进入文字引导。
你可以在命令行加上 -h 参数运行此程序以获得
命令行运行的帮助。

程序的用处主要是对视频中的声音进行分析,
分成静音部分和非静音部分,
分别施加不同的速度,最后合成到一个新视频。


请输入要处理的视频或音频文件
请输入文件路径 或 直接拖入:

第二种方式是命令行传递参数运行:

> python -m JumpCutter2 -h

usage: __main__.py [-h] [--version] [--suffix Suffix] [--silence-speed Speed] [--sounded-speed Speed] [--buffer-frame Number] [--threshold Threshold] [--codec Codec] [--crf Number] [--only-audio] [--aux File] [--no-spleeter] File [File ...]

功能:对视频中的声音进行分析,分成静音部分和非静音部分,分别施加不同的速度,最后合成到一个新视频。

positional arguments:
  File                  要处理的音频或视频文件,可一次添加多个文件

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --suffix Suffix       处理后生成的文件名后缀 (default: _JumpCut)
  --silence-speed Speed
                        静音片段速度 (default: 8.0)
  --sounded-speed Speed
                        有声片段速度 (default: 1.0)
  --buffer-frame Number
                        片段间缓冲帧数 (default: 4)
  --threshold Threshold
                        声音检测相对阈值 (default: 0.04)
  --codec Codec         视频编码器 (default: libx264)
  --crf Number          视频质量crf参数 (default: 23.0)
  --only-audio          只处理音频 (default: False)
  --aux File            辅助音频文件 (default: )
  --no-spleeter         不要使用 spleeter 生成辅助音频文件 (default: False)

🔋 打赏

本软件完全开源,用爱发电,如果你愿意,可以以打赏的方式为我充电:

sponsor

😀 交流

如果有软件方面的反馈可以提交 issues,或者加入 QQ 群:1146626791

More Repositories

1

QuickCut

Your most handy video processing software
Python
2,343
star
2

CapsWriter-Offline

CapsWriter 的离线版,一个好用的 PC 端的语音输入工具
Python
1,375
star
3

QuickHand

快速的仿手写文字的图片生成器。基于 https://github.com/Gsllchb/Handright/ 的 GUI。
Python
364
star
4

CapsWriter

一款电脑语音输入工具,运行后,按下大写锁定键超过 0.3 秒,就开始语音识别,松开按键之后,自动输入识别结果。
Python
353
star
5

color-trace

将位图转为彩色矢量 svg 图片
Python
145
star
6

ali-audio-to-srt

功能: 使用阿里云智能语音服务中的录音文件识别 API,实现将视频、音频文件转写出 srt 字幕
Python
105
star
7

Protect-Windows-Context-Menu

Batchfile
85
star
8

Markdown-Toolbox

Move your Markdown to another folder along with it's relatively refered pics and attachments.
Python
57
star
9

PyInstaller-Perfect-Build-Method

如果我要写一个 Python 项目,打包成 exe 运行(方便在没有 Python 的电脑上使用),我需要打包出的根目录结构美观,没有多余的、杂乱的依赖文件在那里碍眼,而且需要在发现 bug 时,我还需要能够修改里面的代码后,无需再次打包,就能正常运行,该怎么做呢? 就以一个 Hello 项目为例,记一下我找到的完美方法。
Python
51
star
10

ShortcutMapper_Chinese

可视化、交互式的快捷键映射图,中文版本,可以直观地查找快捷键。不懂编程也可以方便地修改、添加快捷键。
HTML
41
star
11

web_remote_input

JavaScript
32
star
12

MakePracticeBook

为考研习题册制作好用的「做题本」
Python
14
star
13

FunASR-Online-Paraformer-Test

Python
13
star
14

RcloneVault

Crypt-type remote of rclone can be used as users File Vault, and this script is ment to make managing, editing, opening and closing File Vaults easier.
Python
8
star
15

audio-video-resync

功能: 通过波形比较,得到两个音频的时间戳偏移值,合成新视频。 用途示例: 录制 vlog 时,使用录音笔实现更好的收声,再将相机的视频与录音笔的录音同步。
Python
7
star
16

ali-audio-text-sync

Python
6
star
17

Chinese-ITN

中文逆文本正则化 (Chinese ITN, Chinese Inverse Text Normalization) ,即将文本中的中文数字转为阿拉伯数字。
Python
6
star
18

my-photo-storage-backup-scheme

my-photo-storage-backup-scheme
Python
5
star
19

windows-batch-script

我收集、自己写的 Windows 下的 bat 脚本
HTML
4
star
20

blink-prompt

让屏幕主动提示你眨眼,避名长时间不眨眼而患上「干眼症」
Python
4
star
21

JumpCutter-Improved

Python
4
star
22

QuickMath

顾名思义,Quick Math 是用于快速输入数学公式的一个工具。在软件上手写公式,然后通过云api识别。
Python
4
star
23

python-template

My python program template
Python
2
star
24

baidu-ime-skin-manage-tool

Python
2
star
25

SubWriter

用 Paraformer 离线生成分段良好的字幕,能用了,但暂时无力写文档
Python
2
star
26

wubi86-revert-query

86五笔反查
Python
1
star
27

ytb-vtt-to-srt

Convert a YouTube vtt subtitle to srt format.
Python
1
star
28

my-pay-code-three-in-one-

我的付款码
HTML
1
star