Skip to content

1hei1/XnneHangLab

 
 

Repository files navigation

魔女の实验室

uv ruff Gitmoji PyTorch FunASRStreamlit

English Documentation

魔女の实验室

文档网站(等等噢) · bilibili视频教程(再等等噢)

功能 · 演示 · 本地部署运行


它为什么诞生

我对它的期望是一个满足我日常音频所需的完整的工作流,主要有:

做视频: 视频字幕生成 -> 视频字幕速度调节和编辑 -> 字幕内嵌或者导出

啃生肉提高日语水平 b站视频下载 -> 视频字幕生成 -> 视频字幕翻译

tts/sts 数据集制作: 音频字幕生成 -> 自动裁剪音频 -> 响度匹配 -> 降噪 -> 字幕再次生成

tts/sts 微调和语音生成: 可能会把以前玩过的 Bert-ViTS2 集成进来,同样,也是做视频用。

为什么叫魔女の实验室

我在写这个项目的时经常想到伊蕾娜她小时候认真学习魔法的样子。

我大概也是以那种心态在写这个项目吧。不知道后面能不能直接把这个当毕设了。

功能

由于我总是忘记之后要什么,所以做了一个 To-Do-List 来提醒自己。分短期和长期任务,长期任务也可以作为 RoadMap。

最近正在支持 SenseVoice 的时间检测,以及视频输入的 GUI 版本还在赶来的路上。

Building...

正在用 Streamlit 重构 WebUI ,之后就可以直接集成进来。致力于从视频下载到音频处理以及字幕生成一条龙服务。

演示

从我的网站访问: xlab.xnnehang.top

我用 frp 和 一个外国的服务器把该项目部署到了我家的台式机并且可以通过网站访问。你可以在这里轻度体验。

近期可能网站经常下线,等到开发到稳定版本了应该才会比较稳定。

下面是一些截图。

todo

audio-recognize

本地部署

0.前置

uv 是本项目的包管理工具,它让你免于手动配置和调试环境。你可以从安装指南找到合适的安装方式~

just 是一款用 rust 编写的简单易用的命令执行工具,它可以让原本复杂的命令运行变得简单。安装方法请参考它的文档。该项非必须, Windows 比较难安装 just , 可以跳过。后续使用 bat 脚本替代即可。

ps: windows 用户也可以等待网盘的整合包。

1.从 Release 页面下载源码(XnneHangLab.zip)

Release 页面

建议下载最新,或者根据功能需求选择。

因为目前该项目处于高速开发期,我并不是以 PR 的形式提交代码,而是框框地直接 commit ,所以每天可能都有五六个甚至十几个 commit 。其中有一些新功能未成型,或者容易有一些 bug 。所以除非你想要参与到开发,不然并不建议从 dev 分支 进行构建。

2. 自动安装依赖并下载必要模型权重文件

如果你有 just:

just install-model

过程可能较久,因为需要先安装 python 环境,然后再下载模型, 模型和环境都不小, 建议可以先构建 cpu 版本进行功能预览,等有性能和批处理需求了再构建 gpu 版本的 torch。

更改 pyproject.toml 的这几行即可:

[tool.uv.sources]
torch = [
  { index = "pytorch-cu118", marker = "sys_platform == 'win32'" }, # sys_platform : 'win32' , 'linux' , 'Darwin'
  { index = "pytorch-cpu", marker = "sys_platform != 'win32'"}
]
torchaudio = [
  { index = "pytorch-cu118", marker = "sys_platform == 'win32'" },
  { index = "pytorch-cpu", marker = "sys_platform != 'win32'"}
]

默认 windows 下是 pytorch-cu118 , linux 和 mac 下是 pytorch-cpu 。

你可以通过重复运行来验证模型是否下载完整:

(xnnehanglab) xnne@xnne-PC:~/code/XnneHangLab$ just install-model
uv lock
Resolved 106 packages in 5ms
uv sync
Resolved 106 packages in 6ms
Audited 100 packages in 0.49ms
# ASR with hotwords
uv run modelscope download --model iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch --local_dir ./models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch
Downloading Model from https://www.modelscope.cn to directory: /home/xnne/code/XnneHangLab/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch
2025-03-31 20:41:31,448 - modelscope - WARNING - Model revision not specified, use revision: v2.0.4
uv run modelscope download --model iic/speech_fsmn_vad_zh-cn-16k-common-pytorch --local_dir ./models/speech_fsmn_vad_zh-cn-16k-common-pytorch
Downloading Model from https://www.modelscope.cn to directory: /home/xnne/code/XnneHangLab/models/speech_fsmn_vad_zh-cn-16k-common-pytorch
2025-03-31 20:41:34,048 - modelscope - WARNING - Model revision not specified, use revision: v2.0.4
uv run modelscope download --model iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --local_dir ./models/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
Downloading Model from https://www.modelscope.cn to directory: /home/xnne/code/XnneHangLab/models/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
2025-03-31 20:41:36,349 - modelscope - WARNING - Model revision not specified, use revision: v2.0.9
# SenseVoiceSmall
uv run modelscope download --model iic/SenseVoiceSmall --local_dir ./models/SenseVoiceSmall
Downloading Model from https://www.modelscope.cn to directory: /home/xnne/code/XnneHangLab/models/SenseVoiceSmall

如果你是 Windows 并且没有 just , 那么也可以通过手动运行下列命令来安装模型:

uv lock
uv sync

# ASR with hotwords
uv run modelscope download --model iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch --local_dir ./models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch
uv run modelscope download --model iic/speech_fsmn_vad_zh-cn-16k-common-pytorch --local_dir ./models/speech_fsmn_vad_zh-cn-16k-common-pytorch
uv run modelscope download --model iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch --local_dir ./models/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch

# SenseVoiceSmall
uv run modelscope download --model iic/SenseVoiceSmall --local_dir ./models/SenseVoiceSmall

可以通过阅读 justfile 得到。

3.运行程序

just start

之后进入弹出的 URL 即可:

(xnnehanglab) xnne@xnne-PC:~/code/XnneHangLab$ just start
uv lock
Resolved 106 packages in 6ms
uv sync
Resolved 106 packages in 6ms
Audited 100 packages in 0.31ms
uv run get_root
uv run streamlit run src/uiya/ui.py

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.123.109:8501

使用手册

参见那个还没出来的文档网站 =-= 。

RoadMap

  • 音频处理的批处理支持
  • 音频字幕编辑和微调
  • SenseVoice with TimeStamp 模型选项支持
  • 视频识别模块
  • yutto-uiya 的移重构 bilibili 视频下载 new package

引用的仓库

如何参与到开发:

详细参见: CONTRIBUTING.md

非常欢迎各位以任何形式的贡献,包括, bug 反馈,使用体验优化,第三方库和模型更新提醒,合理有益的功能需求等等。

About

一个基于 Funasr 的离线字幕生成工具~

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.1%
  • Just 0.9%