TMSpeech:Windows离线语音转文字实时字幕,会议纪要救星实战笔记
2026/8/21 17:03:27 网站建设 项目流程

TMSpeech:Windows离线语音转文字实时字幕,会议纪要救星实战笔记

【免费下载链接】TMSpeech腾讯会议摸鱼工具项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech

TMSpeech 是一款 Windows 离线语音转文字工具,捕获电脑正在播放的声音,实时转成文字上屏。全程本地运行、不联网,哪怕把音量彻底关到零,识别照样进行——这是它最戳我的一个特点。

开会走神被点名,是我最真实的场景

上个月一场 45 分钟的需求评审,我走神大概走了 20 分钟。产品经理突然cue我"刚才那段你怎么看",我大脑一片空白,只能硬着头皮说"同意"。散会后回看,其实那 20 分钟里有一个关键变更跟我负责的部分直接相关。

我当时想的不是一款录音软件——录完还是要听 45 分钟音频——而是"能立刻读到的文字"。字幕要够快,记录要能翻,这才是刚需。

后来我找到了 TMSpeech。它捕获电脑播放的声音,实时转成歌词式字幕显示在屏幕上:走神几分钟,瞟一眼字幕就能接回话题;散会后打开历史记录,把整场会议翻出来整理成纪要。

五分钟跑起来

它没有安装向导,也不要求注册账号。从项目仓库的 Release 页面下载最新压缩包,解压后运行TMSpeech.exe就能跑;想用源码自己构建的话,执行git clone https://gitcode.com/gh_mirrors/tm/TMSpeech

首次运行做三件事:

  1. 打开设置,切到"资源"标签页,给中文模型点"安装"(约 300MB,只需一次)
  2. 回到主窗口,点红色按钮开始识别
  3. 识别结果会按日期自动存进"我的文档"的TMSpeechLogs文件夹

配置文件在%AppData%/TMSpeech/config.json,正常使用完全不用手动碰。Release 包附带一个重置配置的 bat 脚本,配置改乱了跑一下就能回到出厂状态,新手最担心的"调坏了怎么办"基本不存在。

三种音频源怎么选:你想"听"什么

音频源决定声音从哪来,内置三种,各自对应一类场景:

  • Windows 系统内录:捕获电脑正在播放的全部声音,底层是 WASAPI CaptureLoopback。适合会议软件、在线课程、视频播放。附带一个很实用的效果:系统音量静音也不影响识别,因为音频是从系统内部直接取的
  • Windows 麦克风输入:录你自己的说话声。适合语音笔记、口述草稿
  • Windows 进程音频:只录指定程序的输出,其他应用一律忽略。适合只想盯某一个播放器或会议客户端。注意它要求较新的 Windows 版本(Win11 或 21H2 及以上)

一句话建议:大多数人用系统内录就够了,覆盖面最广;只有明确要录自己或某个特定程序时,才切另外两种。

识别引擎怎么选,语言模型怎么装

设置里切到"语音识别"标签页,就是识别器选择区。内置三类离线语音转文字引擎,定位差异很明显:

  • Sherpa-Onnx 离线识别器:默认项,为普通 CPU 优化,装好模型即用。大多数人保持它
  • Sherpa-Ncnn 离线识别器:支持 GPU 加速,对识别速度和资源占用有更激进要求的用户试试
  • 命令行识别器:面向高级用户的开放接口。它启动一个外部子进程,把子进程的标准输出当字幕文本读,标准错误输出写日志文件,几乎任何能输出文字的识别程序都能接进来

下面这张截图是设置页面的语音识别区域,重点看中间的识别器下拉框和下方的模型配置项。

引擎是发动机,模型是燃料。设置里的"资源"标签页集中管理模型安装,目前提供 Zipformer-transducer 系列的中文、英文、中英双语模型,每项旁边就是"安装"按钮,中文模型体积在 300MB 级别,装完会显示已安装。

内置模型不合口味也不死路:去 sherpa-onnx 的预训练模型列表挑一个更合适的流式模型,回设置里改模型路径即可。

字幕显示与历史记录

点开始之后,电脑里的声音就变成屏幕上的实时字幕。字幕是一个无边框小窗口,可任意拖动、调整大小,右键能改字体、字号、颜色、透明度、阴影。把它贴在视频下方或会议窗口旁边,基本不挡内容。

下面是运行中的识别窗口,就一行当前语音,简单到没有学习成本。

与此同时,识别结果按句子落盘到"我的文档/TMSpeechLogs",每次识别一个文件。开完会打开当天文件稍作整理,会议纪要就有了。历史记录页面支持右键或 Ctrl-C 复制,摘关键段落很方便。

还有个容易忽略的功能:设置"通知"标签页里可以填敏感词,某句话里出现就弹桌面通知。把同事的昵称填进去,会议里被提到就立刻有提示,挺香的。

命令行识别器:把自己的识别程序接进来

内置引擎都不满意的话,命令行识别器的扩展空间最大。它的协议很简单:

  • 子进程标准输出里,以单个换行(\n)结尾的行是临时结果,用于更新当前句子
  • 以多个换行(\n\n)结尾的行是最终结果,会被存入历史记录
  • 标准错误输出写入日志文件,双方统一 UTF-8 编码

这个设计允许模型"边出字边纠正":临时结果可以被后续结果改写,最终留下的是一条稳定的完整句子。参考 Python 脚本放在 external_recognizer/ 目录,改改就能跑起来。

有几个容易翻车的细节:

  • 命令行识别器模式下,子进程独立获取音频,设置里的音频源切换不生效
  • 程序参数用空格分隔,路径里带空格要用双引号转义
  • 指定 bat 脚本时,开头加@隐藏命令回显,结尾别写pause(会导致无法检测进程退出)

⚡️## 真实感受与关键数据

体感上,作者实测在 AMD 5800u 笔记本上 CPU 占用不到 5%,我连挂一场一个半小时的会,风扇几乎没有动静,电池消耗也在预期内。音频按 16kHz 单声道采集,识别链路是"边说边出字"的节奏,滞后感基本察觉不到——不依赖网络往返,响应天然就快。

讲真,短板也有:识别准确率很大程度取决于模型。普通话标准的时候基本可用,但环境嘈杂、多人抢话、口音重的场景,错字会明显变多。好在模型只有 300MB 级别,换模型试错的成本很低。

📌 踩坑与高频问题

录不到系统内音。多数情况不是 TMSpeech 的问题,而是 Windows 音频设备设置。打开"声音控制面板"的"录制"标签页,启用"立体声混音"设备(没显示就右键空白处勾选"显示禁用的设备")。

识别准确率不理想。先排查环境:环境音太吵、多人同时说话、音量不合适;再确认音频源选对没有。都正常的话多半是模型和场景不匹配,换一个模型,或去 sherpa-onnx 预训练列表找更合适的流式模型,在设置里改模型路径。

历史记录找不到。检查"我的文档/TMSpeechLogs"文件夹是否存在、有无写入权限。权限异常时,以管理员身份运行程序通常能解决。

CPU 占用偏高。配置一般的机器,选 Sherpa-Onnx 识别器、换轻量模型,能省下一部分开销。

命令行识别器没输出。九成是协议问题:临时结果要以单个\n结尾,句子结束要补一个空行。先翻它写入的 stderr 日志,一般能直接定位。

掀开引擎盖

TMSpeech 的代码是"核心框架 + 功能插件"结构。核心在 src/TMSpeech.Core/,管插件加载、任务调度、配置和资源;具体功能放在 src/Plugins/ 下,每个插件目录里有一个tmmodule.json自述文件,程序启动时扫描plugins目录,按描述加载对应程序集。

音频链路大致是:WASAPI 低延迟采集 →JobManager接收音频 → 识别器的Feed()方法流式识别 →TextChanged/SentenceDone事件更新界面。配置是 JSON 文件且支持热重载,改完字幕样式立刻生效,不用重启。

这套机制意味着:新增一个音频源、识别引擎或翻译功能,只需实现对应接口再放进插件目录,核心代码一行不用动:

IAudioSource IRecognizer ITranslator

项目用 C# 加 Avalonia 编写,结构清晰,想读源码的话是个友好的仓库。

回到开头那个走神的场景:现在开会我会让 TMSpeech 后台挂着,被点名时瞟一眼字幕就能接上话,散会后翻历史记录十分钟写完纪要。它免费、开源、离线,装好后几分钟就能干活。如果你正好需要一款 Windows 离线语音转文字工具,或者只是想让自己开会走神得安心一点,可以拉下来试试。项目对反馈很开放,用得不顺手直接提 Issue,发现了效果更好的开源模型,也欢迎推荐给项目方。

【免费下载链接】TMSpeech腾讯会议摸鱼工具项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询