一个基于 Python + Streamlit 的本地跳绳计数工具。上传跳绳视频后,程序会从视频中提取音频,识别绳子落地的冲击声,并给出跳绳总次数、速度变化趋势和多张分析图表,方便复盘训练节奏。
- 支持常见视频格式:
mp4、mov、avi、mkv、m4v - 自动从视频中提取音频并转为单声道分析
- 基于音频峰值估算跳绳次数
- 提供灵敏度和最小跳绳间隔两个调节参数
- 展示波形图、峰值强度图、速度变化曲线、响度图、频谱图
- 内置回放面板,播放时可同步查看识别到的跳绳点
- 可导出识别到的峰值时间点 CSV
- 支持打包为 Windows 可执行文件
- 训练后快速估算整段跳绳总次数
- 观察前中后段速度是否掉速
- 对比不同训练视频的节奏稳定性
- 辅助分析是否需要提升配速、稳定性或耐力
- 使用
moviepy从视频中提取音频。 - 对音频做带通滤波,保留更接近绳子拍地的频段。
- 使用
librosa提取更强调瞬态冲击的 onset strength。 - 使用
scipy.signal.find_peaks检测跳绳落地点。 - 根据峰值数量统计总次数,并根据相邻峰值间隔换算跳绳速度。
这是一种基于声音的估算方法,不是逐帧视觉识别。
- Python 3.11
- Windows
- 推荐使用带清晰拍地声的视频
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python launcher.py启动后浏览器会自动打开本地页面。默认地址通常是:
http://localhost:8501
.venv\Scripts\activate
pyinstaller JumpRopeCounter.spec --noconfirm打包完成后可执行文件位于:
dist\JumpRopeCounter.exe
.
├─ app.py # Streamlit 界面与图表
├─ analyzer.py # 音频分析与峰值检测
├─ launcher.py # Streamlit 启动入口
├─ JumpRopeCounter.spec # PyInstaller 单文件打包配置
├─ JumpRopeCounterDir.spec # PyInstaller 单目录打包配置
├─ docs/screenshots/ # README 截图
└─ requirements.txt # Python 依赖
- 尽量选择环境噪声较小的视频
- 绳子拍地声越清晰,识别通常越稳定
- 如果计数偏多,可适当提高灵敏度或增大最小跳绳间隔
- 如果计数偏少,可适当降低灵敏度
- 结合“跳绳速度变化”曲线看自己是否存在明显掉速
- 这是音频估算,不适合完全无拍地声的视频
- 背景音乐、说话声、强回声可能干扰识别
- 当前 EXE 体积较大,主要由科学计算和视频处理依赖带来
MIT


