Skip to content

Releases: MurthiNext/ScriptDirector

v2.4.0 Rel 基本内容更新

18 May 05:51

Choose a tag to compare

虽然挤牙膏,但确实多了点新功能。

  • 首先是修复了之前超时没有选用常量的问题,导致处理长文本对齐时会意外终止进程。完成了Issue #4
  • 然后优化了台本预处理功能,现在清洗更加干净,可以排除常规的、不需要的台本内容。
  • 添加了视频输入的功能,使用该功能会调用ffmpeg分离音频轨。
  • 注意:这意味着你需要在_internal/ffmpeg/文件夹中添加ffmpeg.exe可执行程序,或在系统PATH中添加ffmpeg.exe,否则会报错。

关于近期。

  • 我最近在忙开源社区以外的事情,这相当复杂繁琐——因此这边进度会稍微放缓。
  • 但所有提上日程的内容我都会积极更新,时间实在不够用,我甚至希望一天能有72小时,以供我完成多个领域的进度推进。

MurthiNext今天也很可爱!

v2.3.5 Rel 防呆及架构更新

10 May 13:58

Choose a tag to compare

此次更新优化了项目结构,使得一些错误出现的频率更低。

  • 添加模型路径检查,防止选择错误模型路径。
  • 添加绝对路径转换,统一路径使用,防止错误引用cwd.
  • 转录/对齐工作分离,防止一步崩步步崩。
  • 实现双向IPC架构,实现子进程互相通信且不影响GUI.

孩子们此项目仍在维护。

  • 我没死,有问题随时说,玄学bug看运气修。
  • PyTorch CU129版本打包体积巨大是无解的,如果有人需要纯CPU PyTorch也可以提,没人提我就懒得搞了)
  • (GitHub上传文件真的好慢……速度只有12Mbps,是我代理的问题吗?)

MurthiNext今天也很可爱!

v2.3.0 Rel 结束了?结束了。

12 Apr 11:37

Choose a tag to compare

没人告诉我torch版本用错了吗?

  • 嗐,总之,我更换了PyTorch的版本为CU129,显卡支持同往常一样,但是性能可能会更好。
  • 只是这个文件确实变大了不少……我用极限压缩搞定了。
  • “这可是个大文件,请尝试小于2GB的文件。”

这大概是最后一个内容更新了?

  • 出于我自己可能不明智的决策,这个项目应该已经足够完善了。
  • Qwen3ASR我尝试了,效果并不理想而且无法使用单词级时间戳,性能似乎还要更差。
  • 至少我认为我的对齐算法还是有点用的。
  • 如果有Issue或Pull Request,我依然会积极处理,有更好的意见的话,我也会尝试推出更多大更新。
  • 目前,就这样了。

MurthiNext今天也很可爱。

v2.2.5 Rel 性能与UI更新

11 Apr 11:33

Choose a tag to compare

日志系统重构,现在logger也不会左右脑互搏了!(所以之前一直在……?)

  • main_logger.py增加setup_logging()setup_subprocess_logging(),支持同时输出到控制台、文件和队列,主进程与子进程日志分离,避免logger打架。
  • 图形界面不再向终端输出日志,仅写入 log.log 并通过日志队列记录日志,避免干扰。
  • 将对齐阶段的原始进度(80~99)正确映射为 0~100% 显示,修复旧版进度条跳动不准确的问题。
  • 现在所有文件共用一个logger,使用相同的初始化函数setup_logging()取用同一个logger,确保日志正常记录。

项目结构重构,优化内存占用,UI更完善了!(也许)

  • 将原本分散在 subtitles_toolkit.pypre_process.py 和部分director.py中的公共函数集中放在just_utils.py管理(我也不明白我为啥要天天重构代码,可维护性这一块无限趋近于0说是)。
  • 使用numpy预先计算sim_single(单词级相似度)和sim_multi(多词组合相似度),避免 DP 填充阶段重复计算。
  • DP表改用numpy保存,显著降低内存占用并提高一丢丢丢丢计算速度。
  • 避免了import的套娃式引用,免得出现“你引用我,我引用你”这种左脚踩右脚的事。
  • GUI新增部分引导,方便用户明白怎么切换到“只对齐模式”(老实讲这个设计挺失败的,但我实在不想写menu,凑合用吧。)

防呆机制加强,以及,嗯……

  • load_config()不再要求配置文件完整,缺少的项会使用默认值并记录警告,不会直接报错(其实是因为我一直懒得做GUI的高级配置)。
  • 如果你是个习惯阅读更新日志的人,那你应该能意识到我又挤牙膏了——虽然如此,我还是花了相当多时间修改代码。
  • 我是计划先把目前的代码发布,然后做个宣传视频,然后再搞大动作,不然到时候宣传视频白做了,甚至有史以来最大的更新v2.0.0 Rel “永远进步,永远开源”更新我都没做宣传片,我怀疑大伙都忘了我还在更新这个项目了……尴尬!( ´゚ж゚` )

MurthiNext今天也很可爱!啊……

  • 我最近感觉好累啊,不知道为什么。

v2.2.0 Rel 全面重构|史山清理更新

08 Apr 11:26

Choose a tag to compare

这个版本其实是和v2.1.5 Rel同一天发布的,不过并不算hotfix

  • 我花了一个上午的时间完成了v2.1.5 Rel 代码细节更新的内容,又花了一个下午来优化这个项目。
  • 老实讲,这个代码并不算太史山,毕竟我一直在保持代码风格一致,还维护了很多类型注释。
  • 但是……啊,可能是因为强迫症吧,总之我给这些代码来了个大扫除。
  • 统一了logger的引入,优化了项目结构,同时在很多代码层面的细节做了些优化。
  • 就当这个版本是v2.1.5 Rel的延续补充吧。

修复了一个GUI的历史遗留问题。

  • 之前我一直在思考:为什么check_queues收不到msg[0] == 'success'
  • 今天请教了DeepSeek V3.2,才发现是processing_thread捕获到msg[0] == 'start'后,会直接丢弃其余的内容。
  • 通过把两个queues分开运行, 现在GUI可以正确识别结束信号了。

其余小更新。

  • 几乎重写了60%的日志输出内容,现在日志文件变得更易读了。
  • 使用numpy优化了_align_sentence_lists,减少了内存占用,但依然无法阻止它O(m*n*K)时间复杂度带来的超长耗时。
    (m=字幕单词数,n=台本句子数,K=max_combine)
  • [common][advanced]配置的读取挪到一个函数里重复调用,现在配置文件不会左右脑互搏了。
    (不会真有人一边运行一边改配置吧??)
  • 修改了一下调用model.transcribe时传入的参数,并且修改了一些之前写的临时代码,现在GUI可以隐藏命令行窗口了。
    • 就是不知道为啥有时候那个命令行窗口还是会跳出来刷存在感。(恼)

孩子们,牢AMD和牢英好像无法获得支持了。

  • 我捣鼓半天也没研究明白DirectML怎么支持它俩的显卡,这种方案似乎行不通。(就算行通了性能也拉胯……)
  • 所以,要么用CPU硬干,要么用WSL试试Linux部署,短时间内对NVIDIA以外的显卡的支持将变得遥遥无期。
  • 你们看着办吧,跑路了兄弟,跑路了。(此项目仍然维护。)

MurthiNext今天也很可爱!♪

v2.1.5 Rel 代码细节更新

08 Apr 05:55

Choose a tag to compare

由于我最近灵感枯竭,这次更新算得上是挤牙膏……

  • 提取插值逻辑到timeline.py
  • director.py文件头部添加常量设置,同时提前编译正则表达式。
  • 子进程异常传递使用元组,用以区分异常与字幕结果。
  • cli.py中的文件类型识别增强。
  • load_advanced_config函数添加配置文件损坏处理。
  • 子进程清理统一使用psutil
  • 现在日志可以并发处理,GUI日志不再输出到日志文件。
  • 修复对齐回溯的continue问题。
  • GUI使用体验增强。

配置文件默认值更新。

  • max_combine的参数默认值从5上调到20。
  • 为啥这东西会出现在更新日志里?搞得跟游戏更新一样?
    • 在上个版本里我调试了大半天都没搞明白:为啥一个句子只能对齐寥寥几个单词?
    • 然后我才想起来,在v1.2.5 Rel 图形化界面与配置文件更新里我添加了个max_combine参数。
    • 由于之前设置的max_combine是针对“一句对一句”优化的,更新到单词级对齐后,这玩意我忘记改了……于是就成bug了。
  • 总之,现在对齐函数的性能与时间开销大大增加,但是精度也大大增加。有需要可自行改回。
  • 听写进度:0-80%,对齐进度:80-99%,收尾进度:99-100%.
  • CLI的对齐部分已添加新的进度条Aligning

牢AMD:孩子们,问了吗?

  • 再问停止支持。
  • 我会在下个大版本更新中尝试使用DirectML拯救牢AMD,在此之前你们先试试用Linux部署吧()

MurthiNext今天也很可爱!☆

v2.1.0 Rel 对齐逻辑更新

01 Apr 10:27

Choose a tag to compare

现在,ScriptDirector真正实现了一句对多词!

  • 重写了align_sentence_lists,现在可以用一句话对应多个单词。
  • 旧版本的align_sentence_lists函数已经转移到only_align.py中,用于一句对一句。
  • 理论上讲,现在的对齐能更精准一点,但是嘛~
  • 精度瓶颈一直都在ASR(语音识别)上,所以本次更新只称得上常规迭代。

优化了日志输出。

  • 现在,日志文件会记录更多有用的信息。
  • 单词对齐详情也可直接查看了。

有关AMD ROCm版本的更新:

  • AMD ROCm打包起来太过费劲,调试也麻烦,所以除非是我明确标注了“ROCm”字样的版本,一般都基于cuda-venv环境构建。
  • 对于AMD显卡的兼容还在调试,只有在重大更新时,我才会主动提供ROCm Ver. Release。
  • 当然!如果你需要,请直接告知,我会尽快帮你构建最新版本的ROCm Ver.(能不能用就不好说了……)
  • 啊,也许我也可以试试用GitHub Actions帮我构建?我之后研究一下!

MurthiNext今天也很可爱!♡

v2.0.0 Rel “永远进步,永远开源”更新

31 Mar 06:35

Choose a tag to compare

是的,2.0.0!在此感谢每一位为开源作出贡献的开发者与支持者!♪

  • 这一次更新相当于给底层代码来了次彻彻底底的大换血。
  • 语音识别库由Faster Whisper转向Stable Whisper。
  • 语音识别模型仍然使用Faster Whisper CTranslate2格式模型。
  • 整体识别精度再上一个台阶!(也许吧,我这边测试样本不多。)

AMD显卡支持!☆

  • 通过使用特定版本的Python与PyTorch,ScriptDirector现已支持AMD显卡,请下载专属客户端。
    • Q: 为毛ROCm版本体积是CUDA版本的四倍?
    • A: 因为ROCm有四种写法——开玩笑的,是因为我在其中封装了ROCm SDK,类似于一个中间层前置,所以才把体积撑的这么大。
  • 如果有需要,请转到“rocm-version”频道查看AMD专属自述文件。
  • 理论上讲,现在ScriptDirector可以使用ROCm运行CTranslate2了,但……我也不确定。
  • 如果你愿意为此项目作出贡献,请帮我试着在有AMD显卡的电脑上部署源代码并调试。
  • 任何错误日志与发现都是有用的!请积极汇报!我会尽量支持AMD的!(CUDA太好用了你们知道吗)

“只对齐”功能加入!

  • 现在,你可以通过输入一份台本文件与一份字幕文件来运行只对齐功能,如下。
  • .\cli.exe process "script.txt,subtitles.srt" -t lrc -n output
  • GUI则可以输入“台本文件”与“已有字幕”来自动选择只对齐功能。
  • 但请注意:只对齐模式下无法使用短句模式。
  • Issue #1 完成!

一些小更新~

  • 优化了日志处理与进度条计算方式。
    • 现在ScriptDirector处理完成后,会在日志输出具体对齐信息(只能看个大概就是了)。
  • 优化了项目结构。
  • 精简部分冗余代码。

MurthiNext今天也很可爱!♡

v1.9.9 Alpha 全面重构|Stable Whisper更新

30 Mar 14:41

Choose a tag to compare

你可能会好奇,为什么版本号变化这么大?

  • 这个版本中,我大量修改了源代码,实现了单词级的文本对齐。
  • 使用了Stable Whisper后,项目的运行效果也得到了大幅度改善。
  • 现在,你可以在CLI中使用“-s”或“--shorter”参数来体验这份新功能,例子如下。
  • .\cli.exe process "script.txt,audio.wav" -n output -t lrc -p -s
  • GUI中则可以在左侧配置区域勾选此功能。

为什么是偏偏是v1.9.9?还是Alpha?

  • 我正在为v2.0.0 Rel铺垫更多新功能,除此次更新内容以外,包括……
    • 添加对齐已有字幕与台本功能。
    • 添加字幕结果校对功能。
    • 添加AMD显卡支持。
  • 在此,感谢Scorpio天蝎君提供的思路~以及大家为这个项目提出的意见!

MurthiNext今天也很可爱!

v1.2.5 Rel 图形化界面与配置文件更新

28 Mar 02:25

Choose a tag to compare

现在图形化界面更好看也更好用了!

  • GUI分为两部分,左边为配置信息,右边为日志输出。
  • 现在GUI可以直观看到处理进度了。
  • 优化了日志处理。

拓展更多高级配置!

  • 本次更新新增四个高级配置项:max_combine, beam_size, vad_filter, vad_parameters
  • 如果你知道你在干什么,那你便可以让这个工具更加好用一些。
  • VAD默认为关闭状态,有需要现在可自行开启。