LunaTranslator 语音识别(SR)功能完全指南:Windows 语音识别模型的直接调用与 LiveCaptions 间接读取

发布时间:2026/9/15 13:32:51
LunaTranslator 语音识别(SR)功能完全指南:Windows 语音识别模型的直接调用与 LiveCaptions 间接读取 LunaTranslator 语音识别SR功能完全指南Windows 语音识别模型的直接调用与 LiveCaptions 间接读取【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslatorLunaTranslator 在 Windows 10/11 上提供语音识别Speech RecognitionSR能力可作为独立文本源把系统识别出的语音文字实时送入翻译流水线。本篇技术指南以 docs/cht/sr.md 为骨架结合 mssr.py、mssr.cpp 与 config.json 等源码实现讲解「直接调用模式」与「间接读取模式」两种方案的适用场景、部署步骤、模型获取方法与全部可调参数读完即可在实机上配置出可用的语音翻译链路。功能概述语音识别在翻译器中的角色语音识别SR是 LunaTranslator 众多文本源textsource之一。它借助 Windows 系统自带的语音识别能力将麦克风、扬声器或系统环回音频中的人声实时转写为文本转写结果会像其他文本源一样经过「识别 → 翻译 → 显示」的完整管线最终以译文形式呈现。其典型应用场景包括观看无字幕的外语视频/直播时将画面中的人声实时翻译为字幕游玩含大量语音对白、但无文字脚本的游戏借助语音转写弥补文本钩子无法提取内容的缺口需要监听系统内其他应用产生的语音内容并翻译。从配置结构看语音识别位于文本源配置体系sourcestatus2之下其默认配置定义于 src/LunaTranslator/defaultconfig/config.jsonsourcestatus2: { mssr: { path: , source: loopback, use: false, refreshinterval: 1.5, refreshinterval2: 1.5, mode: indirect, hidewindow: true, autokill: true }, ... }其中use控制总开关mode决定走「直接调用」还是「间接读取」两种实现其余字段为各模式的细分参数。下文将逐一展开。两种工作模式直接调用 vs 间接读取LunaTranslator 的语音识别提供两套互斥的实现方案用户可在设置界面的「模式」下拉框中切换内部值direct/indirect对应界面代码见 src/LunaTranslator/gui/setting/textinput.py对比维度直接调用模式direct间接读取模式indirect实现原理直接加载 Windows 语音识别模型与运行时由 LunaTranslator 子进程完成识别读取系统LiveCaptions实时字幕窗口中的识别文字间接获得结果支持系统Windows 10、Windows 11仅 Windows 11依赖 LiveCaptions 应用性能更好识别结果直接回流稍差需轮询窗口文字License / 运行时兼容性存在限制见下文语言包加密问题无 License 与运行时兼容性问题默认开关由mode决定由mode决定从源码看两种模式在 mssr.py 的mssr.init()中按mode分派当系统存在 LiveCaptions.exe 且mode indirect时启动LiveCaptions引擎否则尝试MSSR直接识别引擎。若直接引擎初始化失败如找不到模型或运行时会通过 UI 消息提示错误原因。直接调用模式部署与使用直接调用模式直接驱动 Windows 语音识别模型是性能优先时的首选。Windows 11开箱即用在 Windows 11 上LunaTranslator 能直接检测到系统内已安装的语言及其语音识别模型。使用步骤打开「核心设置」→「其他」→「语音识别」在「语言」下拉框中选择要识别的语言即选择对应的识别模型包打开「使用」开关启用功能识别即开始。如果需要的识别语言没有出现在选项列表中有两种补全途径在系统设置中安装对应语言自行寻找该语言的识别模型包解压到软件目录后程序会通过目录扫描自动发现它见下文「模型发现机制」。Windows 10 与低版本 Windows 11补齐运行时与模型Windows 10 系统内缺少直接调用所需的运行时与识别模型若 Windows 11 版本过低系统自带运行时版本也可能不满足要求。此时需要先部署作者打包好的运行时与中日英语言识别模型压缩包包含运行环境和中日英三种语言模型将其解压到软件目录中。软件启动后会在软件目录中扫描并识别到该运行时与模型从而正常启用功能。模型发现机制与目录扫描直接调用模式下LunaTranslator 通过以下方式定位语言模型对应 mssr.py 中MSSR.findallmodel枚举系统已安装的MicrosoftWindows.Speech.*包通过NativeUtils.FindPackages递归遍历软件运行目录查找以MicrosoftWindows.Speech.开头的目录即手动解压的模型包每个候选包通过读取其根目录下的sr.ini获得locale-id与license-version进而映射出对应的语言windows.LCIDToLocaleName用于界面语言下拉框的展示。识别运行时即执行识别所需的核心 DLL的查找顺序为对应MSSR.finddlldirectory系统固定路径C:\Windows\SystemApps\MicrosoftWindows.Client.Core_cw5n1h2txyewy\LiveCaptions软件运行目录C:\Windows\SystemApps递归扫描。判断运行时的标志文件是Microsoft.CognitiveServices.Speech.extension.embedded.sr.dll。这正是微软嵌入式语音识别扩展 DLL因此部署包的核心内容就是「模型包目录 该运行时 DLL」。获取其他语言模型的通用方法若默认部署包中日英不满足需求可自行获取其他语言的识别模型步骤如下在提供 Windows 商店包MSIX下载的第三方站点上使用PackageFamilyName进行搜索搜索关键格式为MicrosoftWindows.Speech.{LANGUAGE}.1_cw5n1h2txyewy其中{LANGUAGE}替换为所需语言的代码。例如法语对应的完整名称为MicrosoftWindows.Speech.fr-FR.1_cw5n1h2txyewy在搜索结果中下载最新版本的 MSIX 包将 MSIX 包解压到软件目录中即可被自动识别。语言包加密限制重要警告需特别注意微软更改了较新版本语言包的加密方法导致系统中安装的语言包以及自行下载的较新版本语言包无法被直接使用。若使用此类语言包出现无法识别的问题可参考社区中关于此加密机制变更的说明文章关键词微软语音包加密、LiveCaptions 模型或改用部署包中已验证可用的旧版模型。这一限制也是间接读取模式仍有存在价值的原因之一——它完全不依赖模型包的 License 校验。直接调用模式的参数直接调用模式界面见 textinput.py可调参数如下参数内部键界面名称默认值取值范围/说明path语言空选择识别语言对应的模型包路径为空时自动探测第一个可用模型refreshinterval刷新间隔1.5 秒010 秒、步进 0.1控制识别结果回流的合并/上报节奏source音源loopback见下方音源说明use使用false总开关音源source详解直接调用模式支持多种音频输入对应 mssr.cpp 中的音源分支逻辑loopback环回录制捕获系统播放的全部声音如视频、游戏、直播采样率统一重采样为 16 kHz、16 bit、单声道经推流输入识别器。这是「翻译无字幕视频/游戏语音」场景的核心选项i默认麦克风输入o默认扬声器输出捕获i{设备ID}/o{设备ID}指定具体音频端点设备设备 ID 由NativeUtils.ListEndpoints枚举获得。界面的音源下拉框会列出loopback、DefaultSpeakerOutput以及所有枚举到的输入/输出端点textinput.py切换音源后文本源会自动重新初始化。环境限制说明若系统不支持环回录制引擎会通过子进程回传错误码界面上提示「系统不支持环回录制」及对应的 HRESULT 错误信息mssr.py。直接调用模式的底层实现直接调用模式的完整链路为mssr文本源→MSSRPython 封装→LunaSubProcess.mssrC 子进程→ Microsoft Cognitive Services Speech SDK。C 侧 mssr.cpp 的关键实现使用EmbeddedSpeechConfig::FromPath从模型包路径加载嵌入式语音识别配置并遍历GetSpeechRecognitionModels()为每个模型设置 License Key若模型包的license-version非 0会使用用户配置的额外 LicensePython 侧从globalconfig[MicrosoftWindows.Speech.License]读取见 mssr.py识别采用连续识别模式Recognizing中间结果与Recognized最终结果事件分别回调中间结果按刷新间隔合并上报最终结果则直接推送通过命名管道与宿主进程通信传递结果类型、识别状态、时间偏移与文本并监听目标进程 PID 以跟随窗口变化切换识别焦点。Python 侧 mssr.py 的监听循环会消费子进程回传的记录其中kind result时做增量文本合并text[len(last):]与按refreshinterval的节流上报kind status时反馈「正在加载语音识别模型 / 加载完毕」等状态kind error时抛出错误并提示。间接读取模式LiveCaptions 文字接管间接读取模式不直接驱动识别引擎而是读取系统 LiveCaptions实时字幕窗口中已经识别好的文字来实现因此仅适用于 Windows 11LiveCaptions 是 Win11 系统组件对应可执行文件C:\Windows\System32\LiveCaptions.exe或C:\Windows\Sysnative\LiveCaptions.exe按运行位宽选择见 mssr.py性能略逊于直接模式依赖窗口文字轮询完全不存在 License 校验与运行时兼容性问题。启用方式在「核心设置」→「其他」→「语音识别」中将模式切换为「间接读取」并激活「使用」开关即可。由于 LiveCaptions 使用的是系统级实时字幕其对音频来源麦克风/系统声音的捕获由 Windows 自身管理LunaTranslator 只需取回字幕文本。间接读取模式的工作原理LiveCaptions类mssr.py的实现要点在系统进程列表中查找LiveCaptions.exe定位其 PID找不到则使用固定可执行路径通过NativeUtils.AutoKillProcess拉起或复用LiveCaptions 进程并可选择在识别期间隐藏其窗口hidewindow参数循环调用NativeUtils.GetLiveCaptionsText(pid)读取窗口当前字幕文本取最后一行有效文本按refreshinterval2节流若距上次上报超过刷新间隔且文本有变化则dispatchtext推送翻译否则仅updaterawtext更新原文。间接模式的界面参数textinput.py参数内部键界面名称默认值说明refreshinterval2刷新间隔1.5 秒0.110 秒、步进 0.1字幕文本上报节流间隔hidewindow隐藏窗口true识别期间隐藏 LiveCaptions 窗口源码注释提到该开关与窗口显隐实时联动autokill自动结束进程true会话结束时是否自动结束 LiveCaptions 进程附加能力LiveCaptions 文本钩子除「读取窗口文字」外仓库中还提供了一条针对 LiveCaptions 的底层文本钩子实现 livecaptions.cpp它定位Microsoft.CognitiveServices.Speech.extension.embedded.sr.dll中的字符串拷贝函数通过特征码扫描注入 Hook以 UTF-8 字符串方式捕获 LiveCaptions 内部的识别文本。这条实现与「间接读取」的窗口轮询属不同路径可作为深入理解系统实时字幕内部数据流的参考。使用注意事项与排查思路路径必须为 ASCII直接调用模式要求模型包路径不能包含非英文字符否则会抛出「请勿使用非英文路径」异常mssr.py运行时缺失若报「找不到运行时」说明系统中既无MicrosoftWindows.Client.Core的 LiveCaptions 组件目录软件目录内也未部署运行时 DLL需按上文补齐无可用语言模型包与系统语言包均未检测到时直接模式无法启动License 错误高版本模型包因加密机制变更无法通过校验时可考虑旧版模型或切换间接读取模式规避系统版本门槛直接模式要求 Windows 10/11间接模式要求 Windows 11。界面代码在系统不满足条件时会直接显示「系统不支持」textinput.py。小结LunaTranslator 的语音识别功能以「直接调用」与「间接读取」双模式覆盖了不同的系统环境与性能诉求前者直连 Windows 嵌入式语音识别模型性能好且兼容 Win10但受制于语言包加密与运行时部署后者借道 LiveCaptions 窗口文字仅限 Win11 却无任何 License 负担。配合loopback环回音源即可构建「系统发声 → 实时语音转写 → 自动翻译」的完整字幕翻译链路。所有可调参数均沉淀于 config.json 的sourcestatus2.mssr节点界面入口位于「核心设置」→「其他」→「语音识别」核心实现可进一步研读 mssr.py 与 mssr.cpp。【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考