Auto Caption 跨平台的实时字幕显示软件

Auto Caption 是一个跨平台的字幕显示软件,支持Windows、macOS和Linux,能够实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。软件提供的默认字幕引擎(使用阿里云 Gummy 模型)支持九种语言(中、英、日、韩、德、法、俄、西、意)的识别与翻译。
Windows
Linux
MacOS
网盘下载:

软件简介

Auto Caption 是一个跨平台的字幕显示软件,能够实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。软件提供的默认字幕引擎(使用阿里云 Gummy 模型)支持九种语言(中、英、日、韩、德、法、俄、西、意)的识别与翻译。

目前软件默认字幕引擎在 Windows、 macOS 和 Linux 平台下均拥有完整功能,在 macOS 要获取系统音频输出需要额外配置。

测试过可正常运行的操作系统信息如下,软件不能保证在非下列版本的操作系统上正常运行。

软件缺点

要使用默认的 Gummy 字幕引擎需要获取阿里云的 API KEY。

在 macOS 平台获取音频输出需要额外配置。

软件使用 Electron 构建,因此软件体积不可避免的较大。

Gummy 引擎使用前准备

要使用软件提供的默认字幕引擎(阿里云 Gummy),需要从阿里云百炼平台获取 API KEY,然后将 API KEY 添加到软件设置中或者配置到环境变量中(仅 Windows 平台支持读取环境变量中的 API KEY)。

国际版的阿里云服务并没有提供 Gummy 模型,因此目前非中国用户无法使用默认字幕引擎。

Vosk 引擎使用前准备

如果要使用 Vosk 本地字幕引擎,首先需要在 Vosk Models(https://alphacephei.com/vosk/models)页面下载你需要的模型。然后将下载的模型安装包解压到本地,并将对应的模型文件夹的路径添加到软件的设置中。

使用 SOSV 模型

使用 SOSV 模型的方式和 Vosk 一样

软件使用

修改设置

字幕设置可以分为三类:通用设置、字幕引擎设置、字幕样式设置。需要注意的是,修改通用设置是立即生效的。但是对于其他两类设置,修改后需要点击对应设置模块右上角的“应用”选项,更改才会真正生效。如果点击“取消更改”那么当前修改将不会被保存,而是回退到上次修改的状态。

启动和关闭字幕

在修改完全部配置后,点击界面的“启动字幕引擎”按钮,即可启动字幕。如果需要独立的字幕展示窗口,单击界面的“打开字幕窗口”按钮即可激活独立的字幕展示窗口。如果需要暂停字幕识别,单击界面的“关闭字幕引擎”按钮即可。

调整字幕展示窗口

如下图为字幕展示窗口,该窗口实时展示当前最新字幕。窗口右上角三个按钮的功能分别是:将窗口固定在最前面、打开字幕控制窗口、关闭字幕展示窗口。该窗口宽度可以调整,将鼠标移动至窗口的左右边缘,拖动鼠标即可调整宽度。

字幕记录的导出

在字幕控制窗口中可以看到当前收集的所有字幕的记录,点击“导出字幕”按钮,即可将字幕记录导出为 JSON 或 SRT 文件。

字幕引擎

所谓的字幕引擎实际上是一个子程序,它会实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。生成的字幕通过转换为字符串的 JSON 数据,并通过标准输出传递给主程序。主程序读取字幕数据,处理后显示在窗口上。

软件提供了两个默认的字幕引擎,如果你需要其他的字幕引擎,可以通过打开自定义引擎选项来调用其他字幕引擎(其他引擎需要针对该软件进行开发)。其中引擎路径是自定义字幕引擎在你的电脑上的路径,引擎指令是自定义字幕引擎的运行参数,这部分需要按该字幕引擎的规则进行填写。

注意使用自定义字幕引擎时,前面的字幕引擎的设置将全部不起作用,自定义字幕引擎的配置完全通过引擎指令进行配置。

特性

生成音频输出或麦克风输入的字幕

支持调用本地 Ollama 模型或云端 Google 翻译 API 进行翻译

跨平台(Windows、macOS、Linux)、多界面语言(中文、英语、日语)支持

丰富的字幕样式设置(字体、字体大小、字体粗细、字体颜色、背景颜色等)

灵活的字幕引擎选择(阿里云 Gummy 云端模型、本地 Vosk 模型、本地 SOSV 模型、还可以自己开发模型)

多语言识别与翻译(自带字幕引擎说明”)

字幕记录展示与导出(支持导出 .srt 和 .json 格式)

基本使用

软件已经适配了 Windows、macOS 和 Linux 平台。

字幕引擎介绍

所谓的字幕引擎实际上是一个子程序,它会实时获取系统音频输入(麦克风)或输出(扬声器)的流式数据,并调用音频转文字的模型生成对应音频的字幕。生成的字幕转换为 JSON 格式的字符串数据,并通过标准输出传递给主程序(需要保证主程序读取到的字符串可以被正确解释为 JSON 对象)。主程序读取并解释字幕数据,处理后显示在窗口上。

字幕引擎进程和 Electron 主进程之间的通信遵循的标准为:caption engine api-doc。

运行流程

主进程和字幕引擎通信的流程:

启动引擎

Electron 主进程:使用 child_process.spawn() 启动字幕引擎进程

字幕引擎进程:创建 TCP Socket 服务器线程,创建后在标准输出中输出转化为字符串的 JSON 对象,该对象中包含 command 字段,值为 connect

主进程:监听字幕引擎进程的标准输出,尝试将标准输出按行分割,解析为 JSON 对象,并判断对象的 command 字段值是否为 connect,如果是则连接 TCP Socket 服务器

字幕识别

字幕引擎进程:新建线程监听系统音频输出,将获取的音频数据块放入共享队列中(shared_data.chunk_queue)。字幕引擎不断读取共享队列中的音频数据块并解析。字幕引擎还可能新建线程执行翻译操作。最后字幕引擎通过标准输出发送解析的字幕数据对象字符串

Electron 主进程:持续监听字幕引擎的标准输出,并根据解析的对象的 command 字段采取不同的操作

关闭引擎

Electron 主进程:当用户在前端操作关闭字幕引擎时,主进程通过 Socket 通信给字幕引擎进程发送 command 字段为 stop 的对象字符串

字幕引擎进程:接收主引擎进程发送的字幕数据对象字符串,将字符串解析为对象,如果对象的 command 字段为 stop,则将全局变量 shared_data.status 的值设置为 stop

字幕引擎进程:主线程循环监听系统音频输出,当 thread_data.status 的值不为 running 时,则结束循环,释放资源,结束运行

Electron 主进程:如果检测到字幕引擎进程结束,进行相应处理,并向前端反馈

免责声明

本站提供的所有信息、教程、软件版权归原公司所有,仅供日常学习和研究使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!如有侵权、不妥之处,请第一时间联系我们删除!
本站如果侵犯你的利益,携带权利证明请发送邮箱到 admin@pan.kim,我们会很快的为您处理。