ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TMSpeech 开发路线图全解析:从跨平台重构到插件生态的演进规划

TMSpeech 开发路线图全解析:从跨平台重构到插件生态的演进规划 桌面应用语音AI 应用本地部署【免费下载链接】TMSpeech腾讯会议摸鱼工具项目地址https://gitcode.com/gh_mirrors/tm/TMSpeech点击查看免费下载TMSpeech 是一个基于 WASAPI 捕获内音、通过 sherpa-onnx 流式模型实现中文实时语音字幕的 Windows 桌面工具即腾讯会议摸鱼工具。本文以仓库根目录下的 ROADMAP.md 为骨架结合 src 目录下的核心源码逐版本拆解 0.11.0 的功能规划、已完成项的实现证据与未完成项的落地路径帮助你理解该项目的架构演进逻辑也为二次开发、插件编写和贡献者提供可对照的功能清单。路线图概览一张表看懂版本规划ROADMAP.md 以里程碑Milestone的形式组织从 0.1 一直规划到 1.0并用复选框[x]/[ ]明确区分已完成与规划中版本核心主题状态0.1跨平台迁移 AvaloniaUI识别器/语音源/翻译器插件化✅ 已完成0.2运行异常通知资源SherpaOnnx 模型等管理✅ 已完成0.3字幕锁定、背景色、字体艺术效果敏感词通知✅ 已完成0.4插件下载、禁用、自动更新资源/插件分发渠道✅ 已完成0.5官方插件英文小写、繁简体转换翻译器插件化⏳ 规划中0.6Linux PulseAudio 语音源Linux 平台运行一致⏳ 规划中1.0官方网站分发渠道自动更新稳定插件接口与开发文档⏳ 规划中下面逐版本展开并对照仓库源码给出实现依据。0.1跨平台重构与插件生态奠基路线图 0.1 的两个目标——迁移到 AvaloniaUI、将识别器/语音源/翻译器与程序本体分离——是 TMSpeech 整个架构的基石在源码中均有完整落点。AvaloniaUI 跨平台 UI从项目结构可以看到 UI 层位于 src/TMSpeech.GUI主窗口、配置窗口、历史记录窗口分别定义于 MainWindow.axaml、ConfigWindow.axaml、HistoryWindow.axaml以.axamlAvalonia XAML描述界面应用入口 App.axaml 与 Program.cs 组成启动链路字幕组件位于 CaptionView.axaml历史记录组件位于 HistoryView.axaml说明 UI 采用视图 控件 ViewModel的常规 MVVM 组织方式ViewModels。路线图明确写的是首先保证在 Windows 正常运行因此即便 UI 框架已具备跨平台能力当前发布形态仍以 Windows 为准。插件生态三大接口与动态加载0.1 的插件化在核心工程 src/TMSpeech.Core/Plugins 中体现为三层接口IPlugin.cs所有插件的公共契约包含GUID、Name、Version、SupportVersion、Author、License等元数据以及LoadConfig(string config)、Init()、Destroy()、CreateConfigEditor()、Available等生命周期方法IAudioSource.cs语音源继承IPlugin与IRunable通过DataAvailable事件向外部推送byte[]音频数据状态通过SourceStatusUnavailable/Ready/Busy上报IRecognizer.cs识别器提供Feed(byte[] data)喂入音频并通过TextChanged临时结果与SentenceDone一句话识别完成两个事件输出识别文本TextInfo 附带时间戳ITranslator.cs翻译器仅一个方法string Translate(string text)——这也是 0.5 版本翻译器插件化的基础接口。插件实际的加载逻辑位于 PluginManager.cs程序启动时扫描可执行文件目录下的plugins子目录读取每个插件目录中的tmmodule.json描述文件结构见 ModuleInfo.cs再通过自定义PluginLoadContextAssemblyLoadContext子类隔离加载程序集并自动处理原生库runtimes/win-x64/native等的解析。仓库内已内置四个官方插件TMSpeech.Recognizer.SherpaOnnx其 tmmodule.json 声明了apiLevel: 1与程序集列表TMSpeech.Recognizer.SherpaNcnnTMSpeech.Recognizer.Command命令行识别器TMSpeech.AudioSource.WindowsWASAPI 回环/麦克风语音源含LoopbackAudioSource.cs、MicrophoneAudioSource.cs等从PluginManagerImpl的实现可以看到Plugins、AudioSources、Recognizers、Translators四个字典均以模块ID!插件GUID复合键索引这就是设置界面中切换识别器/语音源数据来源。0.2运行异常通知与资源管理器通知模块路线图 0.2 的第一项是实现运行异常通知对应核心层 Notification 目录NotificationManager.cs 采用单例模式NotificationManager.Instance支持注册多个INotificationService并有一个全局通知级别_level只有type _level的通知才会被分发INotificationService.cs 定义通知类型枚举NotificationTypeInfo/Warning/Error/Fatal与通知服务接口。有趣的是通知机制不仅服务于运行异常在源码中还被插件加载、资源下载等场景复用例如 PluginManager.cs 在解析插件 JSON 失败、加载插件代码失败时会通过NotificationManager.Instance.Notify(..., 错误, NotificationType.Error)提醒用户。资源管理器资源例如 SherpaOnnx 模型文件管理对应 ResourceManager.cs。它统一管理两类资源目录程序目录下的plugins随安装包分发不可移除CanRemove false用户数据目录下的plugins用户安装/下载可移除。每个资源目录都以tmmodule.json作为唯一标识描述文件字段包括id、version、typeplugin/sherpaonnx_model/sherpancnn_model见 ModuleInfo.cs、assemblies插件程序集列表、install安装步骤等。该管理器的实现与路线图 0.4 的分发渠道直接关联详见下文。0.3字幕增强与敏感词通知字幕锁定、背景色、字体艺术效果0.3 的字幕能力对应 GUI 层的 CaptionView.axaml 及其代码后置文件配合主窗口 MainWindow.axaml 实现歌词字幕式展示。README 中展示的识别窗口截图即为无边框、可拖动、可调整大小的字幕窗口效果。字幕锁定、背景色、字体等配置项可在 ConfigWindow 中调整配置读写由 ConfigManager.cs 与 ConfigTypes.cs 承担默认值定义在 DefaultConfig.cs。敏感词通知敏感词通知复用 0.2 的通知基础设施属于对NotificationType的典型业务扩展当识别文本命中用户配置的敏感词时触发通知。README 中设置页面截图可直观看到相关配置入口0.4插件生态闭环与分发渠道0.4 是插件生态从本地加载走向线上分发的一步对应源码中的两个关键机制插件下载、禁用、自动更新下载任务管理位于 DownloadManager.cs维护DownloadItem任务表状态机为Idle → Pending → Downloading → Installing → (Paused/Failed)支持断点、进度与速度统计安装过程由ModuleInfo.InstallSteps驱动ModuleInfo.cs步骤类型支持download、extract、write_file、write_module_json即下载压缩包 → 解压到指定目录 → 写入文件 → 生成模块描述的声明式安装流程禁用与自动更新更新到更高version的判断依据是Resource.NeedUpdate远端版本大于本地版本与本地/远端ModuleInfo的对比见 ResourceManager.cs。分发渠道ResourceManager.GetRemoteResources()ResourceManager.cs通过 HTTP 拉取远端marketplace.json模块市场清单与本地资源合并后形成全部资源列表网络异常、超时、数据格式错误都有对应的 Warning 通知兜底。这就是路线图所述资源下载、插件下载分发渠道的服务端对接实现UI 层对应 ResourceManagerView 与 ResourceManagerViewModel.cs。0.5官方插件与翻译器插件化规划中路线图 0.5 规划了两件事均未开始[ ]官方插件的小功能SherpaOnnx 的英文小写转换、繁简体转换——从现有识别器插件 SherpaOnnxRecognizer.cs 与配置编辑器 SherpaOnnxConfigEditor.cs 的结构看这类文本后处理最自然的落点是作为独立IRecognizer包装器或新增插件类型翻译器插件化支持谷歌翻译、有道翻译等——基础接口 ITranslator.cs 已在 0.1 就位PluginManager也已有Translators字典因此该项更多是写实现 接 UI属于接口已预留、实现待补充的状态。0.6Linux 跨平台规划中0.6 规划了 Linux 桌面支持官方实现 PulseAudio 语音源、保证 Linux 上运行一致。从源码可以印证两点插件加载器 PluginManager.cs 的原生库解析已兼容win-*、linux-*、osx-*三种 RIDLoadUnmanagedDll会依次尝试.dll、.so、.dylib说明运行时层面已具备 Linux 加载能力目前仓库中官方语音源只有 Windows 的 TMSpeech.AudioSource.WindowsWASAPI 回环与麦克风PulseAudio 语音源确实尚属空白与路线图状态一致。1.0分发、自动更新与插件接口稳定规划中1.0 的三个目标目前均为未完成状态官方网站提供下载、文档、社区自动更新核心层已存在占位实现 AutoUpdateManager.cs其中CheckUpdate()方法仅写了// TODO: implement it并返回null说明该功能正是 1.0 要落地的目标稳定插件接口 插件开发文档当前插件接口以IPlugin/IAudioSource/IRecognizer/ITranslatortmmodule.json描述文件的形式存在apiLevel字段见各插件 tmmodule.json正是为未来接口版本管理预留的钩子——届时围绕如何编写并分发插件的开发文档将极大降低第三方接入门槛。待办 Issues已知问题清单ROADMAP.md 末尾单独列出了尚未纳入具体版本的问题清单是社区反馈与内部已知缺陷的聚合问题说明代理设置网络下载/市场访问需支持代理目前HttpClient未提供代理配置入口插件离线安装目前插件只能通过市场下载或随包分发缺少本地安装包导入路径历史记录保存历史识别记录仅内存展示HistoryView.axaml持久化待实现历史记录复制优化当前支持右键/Ctrl-C 复制体验优化待办移除插件可能卡死涉及Directory.Delete与程序集占用冲突ResourceManager.cs 已有IOException/UnauthorizedAccessException兜底右键菜单增加重置窗口位置针对无边框字幕窗口的便利功能贡献者可以从这些 Issue 入手它们大多改动范围清晰、与核心架构耦合度低。小结如何用路线图指导开发与贡献从 ROADMAP.md 可以看到 TMSpeech 清晰的演进逻辑0.1 打好 UI 与插件基座 → 0.2/0.3 补齐通知、资源、字幕体验 → 0.4 打通线上分发闭环 → 0.5/0.6/1.0 走向官方插件矩阵、Linux 与正式分发。对照源码验证时可以形成一套路线图条目 → 源码路径的检查方法插件生态看 src/TMSpeech.Core/Plugins 的接口与PluginManager通知与资源看 src/TMSpeech.Core/Services/Notification 与 src/TMSpeech.Core/Services/Resource字幕与 UI看 src/TMSpeech.GUI 的CaptionView与MainWindow自动更新看 AutoUpdateManager.cs 中的TODO占位。对于计划贡献者当前最高价值的切入点依次是完成AutoUpdateManager的TODO、实现 0.5 的官方文本处理插件、补齐 Linux PulseAudio 语音源以及Issues 清单中改动量较小的历史记录保存与代理设置。赞分享桌面应用语音AI 应用本地部署【免费下载链接】TMSpeech腾讯会议摸鱼工具项目地址https://gitcode.com/gh_mirrors/tm/TMSpeech点击查看免费下载相关推荐Meshery 路线图全解从 v0.5 到 v1.3 的云原生管理平台演进规划Meshery 路线图全解从 v0.5 到 v1.3 的云原生管理平台演进规划 Meshery 是开源社区中领先的云原生管理平台cloud native m云原生微服务运维DevOps让 AI 助手玩转 Obsidianobsidian-skills 从安装到实战的完整指南让 AI 助手玩转 Obsidianobsidian skills 从安装到实战的完整指南 obsidian skills 是一套给 AI Agent 用的技AI 技能AI 插件node-bunyan v2 开发路线图解析API 演进、架构规划与日志生态的远期设想node bunyan v2 开发路线图解析API 演进、架构规划与日志生态的远期设想 导读 本文以 node bunyan 仓库中的 TODO.md htt后端上一篇三步卸载 Edge 不再失败EdgeRemover 让 Windows 官方卸载器亲自动手下一篇NTFS 硬盘插上 Mac 只能读不能写三步配置实现完整读写创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表