From e30124cb870ce5e2d7bc0ad67c4e54aabe03deaf Mon Sep 17 00:00:00 2001 From: himeditator Date: Thu, 26 Jun 2025 23:04:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=BD=BD=E5=85=A5=E9=97=AE=E9=A2=98=E3=80=81=E5=BE=AE=E8=B0=83?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + README.md | 10 +++++----- README_en.md | 8 +++++--- assets/engine-manual_zh.md | 12 ++++++------ assets/user-manual_zh.md | 16 +++++++++------- src/main/control.ts | 4 +++- src/renderer/src/views/ControlPage.vue | 13 +++++++++++-- 7 files changed, 40 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49b5aab..27c18b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - 添加默认引擎的环境变量检查 - 添加配置数据文件保存和载入 - 添加字幕样式恢复默认的选项 +- 添加项目关于信息 ### 新增文档 diff --git a/README.md b/README.md index 54bbed6..81171e0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

auto-caption

-

Auto Caption 是一个跨平台的字幕显示软件。

+

Auto Caption 是一个跨平台的实时字幕显示软件。

| 简体中文 | English | @@ -22,9 +22,9 @@ ### 基本使用 -目前仅提供 Windows 平台的可安装版本。如果使用默认的 Gummy 字幕引擎,需要获取阿里云百炼平台的 API KEY 并配置到环境变量中才能正常使用该模型。相关教程:[获取API KEY](https://help.aliyun.com/zh/model-studio/get-api-key)、[将API Key配置到环境变量](https://help.aliyun.com/zh/model-studio/configure-api-key-through-environment-variables)。 +目前仅提供了 Windows 平台的可安装版本。如果使用默认的 Gummy 字幕引擎,需要获取阿里云百炼平台的 API KEY 并配置到环境变量中才能正常使用该模型。相关教程:[获取 API KEY](https://help.aliyun.com/zh/model-studio/get-api-key)、[将 API Key 配置到环境变量](https://help.aliyun.com/zh/model-studio/configure-api-key-through-environment-variables)。 -对于开发者,可以自己创建新的字幕引擎。具体通信规范请参考源代码。 +对于开发者,可以自己开发新的字幕引擎,自定义字幕引擎的开发请参考[字幕引擎说明文档](./assets/engine-manual_zh.md)。 ## ✨ 特性 - 丰富的字幕样式设置 @@ -53,7 +53,7 @@ npm install > > 所谓的字幕引擎实际上是一个子程序,它会实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。生成的字幕通过 IPC 输出为转换为字符串的 JSON 数据,并返回给主程序。主程序读取字幕数据,处理后显示在窗口上。 > ->目前项目默认使用[阿里云 Gummy 模型](https://help.aliyun.com/zh/model-studio/gummy-speech-recognition-translation/),需要获取阿里云百炼平台的 API KEY 并配置到环境变量中才能正常使用该模型,相关教程:[获取API KEY](https://help.aliyun.com/zh/model-studio/get-api-key)、[将API Key配置到环境变量](https://help.aliyun.com/zh/model-studio/configure-api-key-through-environment-variables)。 +>目前项目默认使用[阿里云 Gummy 模型](https://help.aliyun.com/zh/model-studio/gummy-speech-recognition-translation/),需要获取阿里云百炼平台的 API KEY 并配置到环境变量中才能正常使用该模型。 > > 本项目的 gummy 字幕引擎是一个 python 子程序,通过 pyinstaller 打包为可执行文件。 运行字幕引擎子程序的代码在 `src\main\utils\engine.ts` 文件中。 @@ -93,7 +93,7 @@ npm run dev ``` ### 构建项目 -注意目前软件没有适配 macOS 平台,请使用 Windows 或 Linux 系统进行构建。 +注意目前软件没有适配 macOS 平台,请使用 Windows 或 Linux 系统进行构建,更建议使用实现了完整功能的 Windows 平台。 ```bash # For windows diff --git a/README_en.md b/README_en.md index 0f7a550..9ad63e0 100644 --- a/README_en.md +++ b/README_en.md @@ -1,7 +1,7 @@

auto-caption

-

Auto Caption is a cross-platform subtitle display software.

+

Auto Caption is a cross-platform real-time subtitle display software.

| 简体中文 | English | @@ -28,7 +28,8 @@ Currently, only an installable version for the Windows platform is provided. If using the default Gummy subtitle engine, you need to obtain an API KEY from Alibaba Cloud's Bailian platform and configure it in the environment variables to use the model properly. Related tutorials: [Get API KEY](https://help.aliyun.com/zh/model-studio/get-api-key), [Configure API Key through Environment Variables](https://help.aliyun.com/zh/model-studio/configure-api-key-through-environment-variables). -For developers, you can create new subtitle engines. Please refer to the source code for specific communication specifications. +For developers, you can create a new subtitle engine. For instructions on customizing the subtitle engine, please refer to the [Caption Engine Documentation (Chinese)](./assets/engine-manual_zh.md). + ## ✨ Features @@ -99,7 +100,8 @@ npm run dev ### Build the Project -Please note that the software is not currently adapted for macOS. Use Windows or Linux systems for building. +Please note that the software is currently not compatible with the macOS platform. Use Windows or Linux systems for building, with Windows being more recommended as it implements the full set of features. + ```bash # For Windows diff --git a/assets/engine-manual_zh.md b/assets/engine-manual_zh.md index 214f091..c70edc1 100644 --- a/assets/engine-manual_zh.md +++ b/assets/engine-manual_zh.md @@ -4,19 +4,19 @@ ## 字幕引擎介绍 -所谓的字幕引擎实际上是一个子程序,它会实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。生成的字幕通过 IPC 输出为转换为字符串的 JSON 数据,并返回给主程序。主程序读取字幕数据,处理后显示在窗口上。 +所谓的字幕引擎实际上是一个子程序,它会实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。生成的字幕通过 IPC 输出为转换为 JSON 格式的字符串数据,并返回给主程序。主程序读取字幕数据,处理后显示在窗口上。 ## 字幕引擎需要实现的功能 ### 音频获取 -首先,你的字幕引擎需要获取系统音频输入(录音)或输出(播放声音)的流式数据。如果使用 Python 开发,可以使用 PyAudio 模块获取麦克风音频输入数据(全平台通用)。使用 PyAudioWPatch 模块获取音频音频输出(仅适用于 Windows 平台)。 +首先,你的字幕引擎需要获取系统音频输入(录音)或输出(播放声音)的流式数据。如果使用 Python 开发,可以使用 PyAudio 库获取麦克风音频输入数据(全平台通用)。使用 PyAudioWPatch 库获取系统音频输出(仅适用于 Windows 平台)。 -一般获取的音频流数据实际上是一个个时间比较短的音频块,需要根据模型调整音频块的大小。比如阿里云的Gummy 模型使用 0.05 秒大小的音频块识别效果优于使用 0.2 秒大小的音频块。 +一般获取的音频流数据实际上是一个一个的时间比较短的音频块,需要根据模型调整音频块的大小。比如阿里云的 Gummy 模型使用 0.05 秒大小的音频块识别效果优于使用 0.2 秒大小的音频块。 ### 音频处理 -获取到的音频流在转文字之前可能需要进行预处理。比如阿里云的Gummy模型只能识别单通道的音频流,而收集的音频流一般是双通道的,因此要将双通道音频流转换为单通道。 +获取到的音频流在转文字之前可能需要进行预处理。比如阿里云的 Gummy 模型只能识别单通道的音频流,而收集的音频流一般是双通道的,因此要将双通道音频流转换为单通道。通道数的转换可以使用 NumPy 库中的方法实现。 ### 音频转文字 @@ -36,7 +36,7 @@ export interface CaptionItem { } ``` -如果使用 python 语言,可以参考以下方式将数据传递给主程序。 +如果使用 python 语言,可以参考以下方式将数据传递给主程序: ```python # python-subprocess\audio2text\gummy.py @@ -84,4 +84,4 @@ export interface CaptionItem { ## 参考代码 -本项目 `python-subprocess` 文件夹下的 `main-gummy.py` 文件为默认字幕引擎的入口代码。`src\main\utils\engine.ts` 为服务端获取字幕引擎数据和进行处理的代码。可以根据需要阅读了解字幕引擎的实现细节和完整运行原过程。 \ No newline at end of file +本项目 `python-subprocess` 文件夹下的 `main-gummy.py` 文件为默认字幕引擎的入口代码。`src\main\utils\engine.ts` 为服务端获取字幕引擎数据和进行处理的代码。可以根据需要阅读了解字幕引擎的实现细节和完整运行过程。 \ No newline at end of file diff --git a/assets/user-manual_zh.md b/assets/user-manual_zh.md index b4feb0b..cb7045d 100644 --- a/assets/user-manual_zh.md +++ b/assets/user-manual_zh.md @@ -1,8 +1,10 @@ # Auto Caption 用户手册 +对应版本:v0.1.0 + ## 软件简介 -Auto Caption 是一个跨平台的字幕显示软件,能够实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。软件提供的默认字幕引擎(使用阿里云Gummy模型)支持九种语言(中英日韩德法俄西意)的识别与翻译。 +Auto Caption 是一个跨平台的字幕显示软件,能够实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。软件提供的默认字幕引擎(使用阿里云 Gummy 模型)支持九种语言(中英日韩德法俄西意)的识别与翻译。 目前软件默认字幕引擎只有在 Windows 平台下才拥有完整功能。在 Linux 平台下只能生成音频输入(麦克风)的字幕,暂不支持音频输出(播放声音)的字幕生成。 @@ -18,17 +20,17 @@ Auto Caption 是一个跨平台的字幕显示软件,能够实时获取系统 ### 准备阿里云百炼平台 API KEY -要使用软件提供的默认字幕引擎(阿里云Gummy),需要从阿里云百炼平台获取 API KEY 并在本机环境变量中配置。 +要使用软件提供的默认字幕引擎(阿里云 Gummy),需要从阿里云百炼平台获取 API KEY 并在本机环境变量中配置。 这部分阿里云提供了详细的教程,可参考: -- [获取API KEY](https://help.aliyun.com/zh/model-studio/get-api-key) +- [获取 API KEY](https://help.aliyun.com/zh/model-studio/get-api-key) -- [将API Key配置到环境变量](https://help.aliyun.com/zh/model-studio/configure-api-key-through-environment-variables)。 +- [将 API Key 配置到环境变量](https://help.aliyun.com/zh/model-studio/configure-api-key-through-environment-variables)。 ### 修改字幕设置 -字幕设置可以分为两类:修改字幕引擎配置、修改字幕样式设置。需要注意的是在调整的设置的参数后,需要点击配置分类右上角的“更改设置”(字幕引擎设置)或“应用样式”(字幕样式设置),更改才会真正生效。如果点击“取消更改”那么当前设置将不会被保存,而是回到上次修改的状态。 +字幕设置可以分为两类:修改字幕引擎配置、修改字幕样式设置。需要注意的是,在调整的设置的参数后,需要点击每个设置模块右上角的“更改设置”(字幕引擎设置)或“应用样式”(字幕样式设置),更改才会真正生效。如果点击“取消更改”那么当前设置将不会被保存,而是回到上次修改的状态。 ### 启动和关闭字幕 @@ -48,10 +50,10 @@ Auto Caption 是一个跨平台的字幕显示软件,能够实时获取系统 所谓的字幕引擎实际上是一个子程序,它会实时获取系统音频输入(录音)或输出(播放声音)的流式数据,并调用音频转文字的模型生成对应音频的字幕。生成的字幕通过 IPC 输出为转换为字符串的 JSON 数据,并返回给主程序。主程序读取字幕数据,处理后显示在窗口上。 -软件提供的一个默认的字幕引擎,如果你需要其他的字幕引擎,可以通过打开自定义引擎选项来调用其他字幕引擎。其中引擎路径是自定义字幕引擎在你的电脑上的路径,引擎指令是自定义字幕引擎的运行参数,这部分需要按该字幕引擎的规则进行填写。 +软件提供了一个默认的字幕引擎,如果你需要其他的字幕引擎,可以通过打开自定义引擎选项来调用其他字幕引擎(其他引擎需要针对进行开发)。其中引擎路径是自定义字幕引擎在你的电脑上的路径,引擎指令是自定义字幕引擎的运行参数,这部分需要按该字幕引擎的规则进行填写。 ![](./img/02.png) -注意使用自定义字幕引擎时,前面的字幕引擎的设置将全部不起作用,字幕引擎的配置完全通过引擎指令进行配置。 +注意使用自定义字幕引擎时,前面的字幕引擎的设置将全部不起作用,自定义字幕引擎的配置完全通过引擎指令进行配置。 如果你是开发者,想开发自定义字幕引擎,请查看[字幕引擎说明文档](./engine-manual_zh.md)。 \ No newline at end of file diff --git a/src/main/control.ts b/src/main/control.ts index 9802302..a3cf626 100644 --- a/src/main/control.ts +++ b/src/main/control.ts @@ -13,7 +13,8 @@ import { sendCaptionLog, setControls, sendControls, - readConfig + readConfig, + writeConfig } from './utils/config' class ControlWindow { @@ -52,6 +53,7 @@ class ControlWindow { this.window.on('closed', () => { this.window = undefined + writeConfig() }) this.window.webContents.setWindowOpenHandler((details) => { diff --git a/src/renderer/src/views/ControlPage.vue b/src/renderer/src/views/ControlPage.vue index 88fb388..47afc90 100644 --- a/src/renderer/src/views/ControlPage.vue +++ b/src/renderer/src/views/ControlPage.vue @@ -24,17 +24,26 @@

Auto Caption 项目

-

一个跨平台的字幕显示软件。

+

一个跨平台的实时字幕显示软件。

作者:HiMeditator

版本:v0.1.0

项目地址: - + GitHub | auto-caption

+

+ 用户手册: + + GitHub | user-manual_zh.md + +

2026 年 6 月 26 日