视频转文字在现在并不是什么稀奇事,后期圈之前就已经分享过这个工具:
AI大模型语音识别CapsWriter 最强PC端离线语音输入工具"支持视频转srt字幕
这个项目原本是作者开发的一个 PC 端离线语音输入工具,帮大家解决了语音识别模型+标点符号添加模型调用的问题
但没有图形化界面真的很麻烦!所以今天给大家带来了
CapsWriter-Offline是一款免费开源且可完全离线识别的低延迟高精度可视化语音输入工具,基于年久失修的 旧项目 进行Python开发 并fork翻新改进及较多功能优化整合升级。在原版的基础上融合新增了热键操作、声音提示、云端剪贴板、语音转翻译、更直观的GUI图形设置界面以及更好的标点符号 / 语音识别引擎等功能。
此款软件算是某些必须联网调用API或付费产品的平替工具,设置更直观,无登录接口,功能无限制,可离线使用,不联网翻译,基本能满足譬如会议记录、各种有输入光标的软件包括但不限于文档类、游戏输入窗口等出于不想打字且需要来回切换中英文输入法的大部分日常场合。可 CPU 处理(兼容 Cuda 加速),支持 Win10 – 11 系统。
十个功能特点:
- 按下键盘上的大写锁定键
CapsLock
,录音开始,当松开大写锁定键时,就会识别你的录音,并将识别结果立刻输入 - 按下键盘上的
Left Shift
再按CapsLock
可以将识别结果离线翻译为英文,并将识别结果立刻输入 - 按下键盘上的
Right Shift
再按CapsLock
可以将识别结果在线翻译为多国语言,默认设置翻译为日文,并将识别结果立刻输入 - 将音视频文件拖动到客户端
start_client_gui.exe
打开,即可转录生成 srt 字幕 - 按下客户端主界面的
云贴
按钮,即可将客户端文本框中的前 1024 个字节发布到云剪贴板 ,并生成获取链接和二维码 - 按下键盘上的
Ctrl
+Alt
+P
,可以将光标选中的中文
离线翻译为英文
,并自动覆盖替换原文 - 按下键盘上的
Ctrl
+Alt
+[
,可以将光标选中的任意语言
在线翻译为在线翻译目标语言
,并自动覆盖替换原文 - 按下键盘上的
Ctrl
+Alt
+F
,可以使用 everything 搜索光标选中的文字 - 快速双击
CapsLock
,可语音输入繁体。长按CapsLock
实现按键原有功能切换大写锁定。 - 可通过
edit_config_gui.exe
图形化配置界面安全地修改客户端/服务端配置,也可手动修改config.toml
文件
以下仅作简明版扼要:
1. 为避免文件缺失,此处提供的是一键整合懒人包开箱即用版,已包含相关组件,无需 py 部署且不必过多折腾(而项目中为拆开版本需自行合并),解压使用前请先关掉杀软和必要时的 Windows防火墙。直接解压后双击 start_server_gui.exe 运行服务端,但需等待自动加载 py 依赖环境及标点语音引擎完成会在底部提示“连接成功”字样方可开始使用(加载等待时长视电脑配置而定)。
默认长按 Caps Lock 调用麦克风 录制语音松开即可识别转文字,曾经有粘贴文字记录的请先清空(随便复制一个文件即可清空剪贴板记录)。自带服务端和客户端的系统托盘,右键对应图标点QUIT可退出程序。
🔧 功能:热词
如果你有专用名词需要替换,可以加入热词文件。规则文件中以 #
开头的行以及空行会被忽略,可以用作注释。
- 中文热词请写到
hot-zh.txt
文件,每行一个,替换依据为拼音,实测每 1 万条热词约引入 3ms 延迟 - 英文热词请写到
hot-en.txt
文件,每行一个,替换依据为字母拼写 - 自定义规则热词请写到
hot-rule.txt
文件,每行一个,将搜索和替换词以等号隔开,如毫安时 = mAh
你可以在 core_client.py
文件中配置是否匹配中文多音字,是否严格匹配拼音声调。
检测到修改后,客户端会动态载入热词,效果示例:
- 例如
hot-zh.txt
有热词「我家鸽鸽」,则所有识别结果中的「我家哥哥」都会被替换成「我家鸽鸽」 - 例如
hot-en.txt
有热词「ChatGPT」,则所有识别结果中的「chat gpt」都会被替换成「ChatGPT」 - 例如
hot-rule.txt
有热词「毫安时 = mAh」,则所有识别结果中的「毫安时」都会被替换成「mAh」
🔧 功能:日记、关键词
默认每次语音识别结束后,会以年、月为分类,保存录音文件和识别结果:
- 录音文件存放在「年/月/assets」文件夹下
- 识别结果存放在「年/月/日.md」Markdown 文件中
例如今天是 2023 年 6 月 5 号,示例:
- 语音输入任一句话后,录音就会被保存到
2023/06/assets
路径下,以时间和识别结果命名,并将识别结果保存到2023/06/05.md
文件中,方便我日后查阅 - 例如我在
keywords.txt
中定义了关键词「健康」,用于随时记录自己的身体状况,吃完饭后我可以按住CapsLock
说「健康今天中午吃了大米炒饭」,由于识别结果以「健康」关键词开头,这条识别记录就会被保存到2023/06/05-健康.md
中 - 例如我在
keywords.txt
中定义了关键词「重要」,用于随时记录突然的灵感,有想法时我就可以按住CapsLock
说「重要,xx 问题可以用 xxxx 方法解决」,由于识别结果以「重要」关键词开头,这条识别记录就会被保存到2023/06/05-重要.md
中
🔧 功能:转录文件
在服务端运行后,将音视频文件拖动到客户端打开,即可转录生成四个同名文件:
json
文件,包含了字级时间戳txt
文件,包含了分行结果merge.txt
文件,包含了带标点的整段结果srt
文件,字幕文件
如果生成的字幕有微小错误,可以在分行的 txt
文件中修改,然后将 txt
文件拖动到客户端打开,客户端检测到输入的是 txt
文件,就会查到同名的 json
文件,结合 json
文件中的字级时间戳和 txt
文件中修正结果,更新 srt
字幕文件。
注意事项
1. 本软件已测火绒无拦截,代码完全的透明。因采用 py整合打包编译,故部分杀软纯属误报。另外,为满足本地化隐私优先、完全离线随时随地使用的需求,故软件整体本身并不会太小。担心的扔到虚拟环境运行或自行抓包软件行为验证便知,介意的勿下勿用,嫌弃的推荐删除文件目录并转用其它工具。。。
2. 处理效率及识别质量主要取决于设备CPU处理器(兼容低配)、语音输入时长、语音速度、声音环境、有无背景杂音等诸多情况,在一定条件下 CPU 越好、音频越短、语速越中等、语音越清晰准确、语种越常见自然处理效率越快且识别率越高,不排除偶尔性浮动,反之亦然。