2026 | Logs
一月
01.26~02.01
01.26
等待项目审批通过中。
01.27
今天从Max那里得知了Eva审批项目通过,可以开始(虽然教务处那边似乎还没给我录入系统)于是我翻出来了之前做的那个Demo并且结合了以往的那些问题向Gemini提问。之前,我用的是FunASR-LLM-XTTSv2的组成,你要说能用吧我那个demo就在那,确实能输入,能识别,能输出。但你要说不能用吧,我也认可。毕竟10秒往上的延迟,再加上那么烂的准确率,我只能说不如我自己翻。
对于这个项目,我比较担心的除了学分到底什么时候给我算上之外,主要的就是我到底能不能做出来,能做成什么样子。首先现在的保底就是Demo,能用,但只能用一点点。不过我不打算就此开摆,总要先试试。现在在一个很难开始的状况下,因为我希望了解的越多越好,这样开始之前有一个所谓的全局观,或许开发的时候才能少走点弯路。
开始之前我先在没有前情提要的情况下咨询了Gemini,它给出的模块确实是我之前没发现的一些东西。当然我在想怎么记录和LLM的对话,这也是个问题。在S-T-S这三部分里面,Gemini给出的建议是Faster Whisper + 本地小模型(Qwen/MarianMT) + GPT-SoVITS。
首先Faster Whisper这玩意我是用过很多的。我知道V3模型在识别中文的开头结尾的时候很容易产生幻觉,出现什么“请点点关注,谢谢观看xx频道”之类的数据污染问题。不过Gemini声称这玩意好解决,只要你不让它录到空白就行了,这事我们再看是不是真的。本地小模型么,我确实得筛选一批好用的出来,毕竟之前那套系统我单独把LLM放在16G的电脑上跑,这要给普通用户来用门槛有点高了。据我现在所知,如果不用额外数据调整小模型(3b以下)我知道效果很烂(也有可能是我打开方式不对罢),这也是一个要解决的点。最后呢就是这个我从未听说过的GPT-SoVITS,草率看了一眼似乎很强大的一个VITS,十秒语音就可以模仿并超越(划掉)。这估计比XTTS要强很多,甚至能在这个流程里代替RVC的存在。
Gemini建议我用cursor编辑器+Claude3.5,一点一点把代码写出来而不是一下子把所有的东西全部写出来。另外OBS串流字幕那边它也建议用html+css来实现,这确实之前没有想到。另外它也建议常用Git及逆行本地存档。不过其它可能存在但我预测不到的问题它也预测不到,所以这个再议。至于日志,我们可以写在这里。
Gemini建议从模块化的第一部分开始,用Faster-Whisper把听写部分跑通,然后再处理剩下的内容。这里主要的问题在于如何让听写系统预处理,片段化输入之类的。另外目前似乎没有办法把Faster-Whisper这部分客制化,也就是让客户自己训练一个声音识别模型(或许直接用Faster-Whisper已经足够了)。Gemini提到,为了让STT系统识别更准确,可以使用prompt让它吸收某领域的专业词汇,这样据说识别正确率会高很多。另外它还提到可以试试Whisper-Fine tuning,据说数据量也不大。这个也可以再议。
至于第二部分翻译层,则可以用RAG或者Few Shot来让模型知道我们在干什么,我们需要哪些信息。最后的TTS部分, Gemini似乎非常相信GPT-SoVITS这块的能力,我看了他们的Demo确实觉得挺厉害的。在目前的这个预计设定下,这个系统应该可以输入中英杂糅的内容,然后输出为英语或者中文。最后我目前能想到的一个希望实现的特殊点就是类似于Zoom会议自动字幕矫正错误的功能,Gemini提到用Rolling Buffer这种动态缓冲区来截取过去5-10秒的内容给Whisper,随着缓冲区音频越多,上下文越完整,识别内容就越准确。不过这可能会拖慢翻译速度。Gemini推荐把这些东西分为稳定文本和不稳定文本,在检测到“没想好”的内容时不推送给翻译程序,在半句话(标点分割)或者一句话(句号分割)结束之后再送去翻译。另外,它还推荐了faster-whisper-streaming这类封装库,比如whisper-streaming或者Faster-Whisper流式,结合VAD(语音活动检测)和重叠推理(Overlapping Inference)来提升正确率,减少一段只识别几秒钟的没头没尾风险。
Gemini也推荐我学一下Miniconda环境隔离。
所以目前看来计划是这样:
计划
第一阶段:基础设施 (W1-W2)
- 目标: 环境搭建与音频路由。
- 任务: * 安装 CUDA/cuDNN 环境。
- 跑通本地虚拟声卡路由(实现需求 10 的双向录音地基)。
- 写出第一个“录音机”脚本。
第二阶段:流式听写模块 (W3-W4)
- 目标: 实现低延迟、无幻觉的 STT。
- 任务: * 部署 Faster-Whisper,集成 Silero-VAD。
- 实现“动态刷新文字”的逻辑。
- 完成 SRT/TXT 两种格式的文件流写入。
第三阶段:翻译与定制化 (W5-W6)
- 目标: 专业领域翻译。
- 任务: * 部署 Qwen-1.8B 模型。
- 编写“术语注入”功能(通过修改 System Prompt)。
- 测试中英双向切换。
第四阶段:TTS 与声音克隆 (W7-W8)
- 目标: 让翻译开口说话。
- 任务: * 部署 GPT-SoVITS。
- 录制并微调你自己的音色模型。
- 难点攻克: 减少 TTS 推理的首字延迟(First-fix latency)。
第五阶段:集成与 OBS 字幕 (W9-W10)
- 目标: 联调与可视化。
- 任务: * 开发基于网页的实时字幕板(OBS Source)。
- 将 STT、NMT、TTS 串联。
- 实现双录音文件实时写入。
第六阶段:优化与轻量化 (W11-W12)
- 目标: 压榨性能,确保 8GB VRAM。
- 任务: * 模型量化(使用 4-bit 量化)。
- 显存回收机制优化。
第七阶段:交付准备 (W13-W14)
- 任务: 编写 README、录制 Demo、整理 180 小时开发日志。
最后Gemini推荐我用Cursor作为IDE。我暂且相信它一回,等学分确定下来了就开七天试用。
二月
02.02~02.08
---
No comments to display
No comments to display