Streaming Captions 基于 streaming-sensevoice 项目,实现类似win11的 LiveCaptions
的实时字幕,加入 kernel32.dll
处理文本以适配 Lunatranslator 的 Hook
模式 。
PS: 因为不会用 python
实现 捕获内录音
,所以需要安装 Virtual Audio Cable (VAC) Lite版
作为 内录音输入设备
。
git clone -b dev/gui-development https://github.com/SNTube/Streaming-Captions.git
cd 到 项目目录
下,执行
pip install -r requirements.txt
-
用Virtual Audio Cable (VAC)作为内录接口,下载安装包。 ( Virtual Audio Cable这东西不好卸载,卸载时到安装目录内,
以管理员权限运行
delete_service.cmd
,然后在用GeekUninstaller之类的卸载工具正常卸载 ) -
把安装后显示的播放设备
Line 1
设置为默认设备 ( 即设为默认值
) 。 -
安装后显示的录制设备
Line 1
,选中并点开属性
,在侦听
分页中,勾选侦听此设备
,通过此设备播放
选择原本的扬声器设备
,应用
并确定
。 -
显示的录制设备中,选择
实际存在的麦克风设备
作为默认设备 ( 即设为默认值
) 。
PS: 如果没有麦克风设备只想用内录模式,请先安装VAC并将安装后显示的录制设备 Line 1
设为默认的麦克风设备。
python StreamingCaptions.py
-
界面一览无遗,简洁大方,清晰明了。
-
现在通过
kernel32.dll
摸一下文本,可以被Lunatranslator
的Hook
模式搜到了。 -
功能包括界面宽度、字号大小、优先语言、VAC模式(VAC专用模式)、标点恢复、文本居中与靠左、隐藏界面、隐藏按钮、热词增强、快捷键、复制当前显示文本、更改字体。
SimplePage文件夹
下放一个 hotwords.txt
,一行一个词,可以提升对指定词的准确率。
如有 Bug
请提 Issues
,我编程水平靠AI,能不能解决只能是看情况。
把下方代码保存 .bat
文件,运行即可。
@echo off
chcp 65001 >nul
echo 正在尝试清除注册表中 StreamingCaptions用户配置项 ...
reg delete "HKEY_CURRENT_USER\Software\SNTube\SNTrealtimeSubtitles" /f
if %errorlevel% equ 0 (
echo 用户配置项已成功清除。
) else (
echo 清除用户配置项失败。请检查 是否已经清除 或是 是否有权限问题。
)
pause
-
优先级
在线方案
和本地方案
都设定的情况下会使用在线方案
。可以都没有,也就是不设定加载界面,不妨碍运行。 -
本地方案
新建 SimplePage/LoadImg
文件夹,可以支持自定义背景,只要名字带 load
,gif、png、jpg、bmp等格式均可。
- 在线方案
SimplePage
文件夹中,建一个 load_url.txt
,里面可以放 图片链接
,或是 图片API
,一行一个链接(也是随机一行)。只要是 GET请求
, 直接显示图片
或是 返回URL图片链接
的都可以兼容。
Lunatranslator
如何使用不做赘述,仅说明相关部分
-
点开
Lunatranslator
的设置
(齿轮图标) -
核心设置
分栏中,找到文本输入
,开启HOOK
开关。HOOK设置
下,默认设置
的代码页
选UTF8_(CP65001)
。 -
HOOK设置
下,选择游戏
齿轮 ,点击此按钮后点击游戏窗口
后,点击本实时字幕的界面并·OK
,选择文本
齿轮,等待识别文字后,激活字幕所在行的前方开关。 -
文本处理
分栏中,开启并从上到下排序过滤历史重复LRU
、去除重复字符AAAABBBBCCCC->ABC
、去除重复行AABABCABCD->ABCD
、过滤换行符
、自定义python处理
。 -
自定义python处理
的齿轮点开,输入下方代码,保存
def POSTSOLVE(line):
# 请在这里编写自定义处理
lines = line.splitlines()
ll = lines【-1】
return ll
本项目基于streaming-sensevoice 项目,原项目采用了 Apache License 2.0
许可。
- 所以本项目声明如下
-
本项目采用了
Apache License 2.0
许可 -
本项目中,保留的所有原始文件,已保留其中所有的版权声明、专利声明、商标声明及归属声明。
-
说明修改与新增内容
- 删去了没有使用的运行文件、演示音频、演示图片
- 增加一个SC_SNTube.ico图标作为窗口图标
- StreamingCaptions.py为GUI界面,并在其中包含声明