GitHub 今日推荐|lipflow:无麦克风唇读文字输入工具
GitHub 今日推荐lipflow无麦克风唇读文字输入工具一句话看懂项目地址https://github.com/amywork777/lipflowlipflow 是一款本地运行的唇读文字输入工具。按住指定键位、无声做出口型松开后识别结果自动粘贴到光标位置。所有模型推理在本机完成不上传视频或文本。支持首次启动时通过 24 句练习适配个人口型可选语言模型修正同唇音错误。它解决什么问题传统语音输入需要发声和麦克风噪音环境干扰识别、公共场所泄露隐私。lipflow 完全无声、不录音仅通过摄像头读取口型转文字。适用于会议室安静记录、机场咖啡厅等噪音场所、或需要隐私保护的文字输入场景。macOS 版使用 Apple GPU 加速M4 Pro 上 9 秒语句编码耗时 0.16 秒松键到出字约 1-2 秒。核心概念速览homophenes同唇音指唇形相同但发音不同的音素例如 p/b/m、f/v。唇读无法从视觉区分这些音原始输出常出现替换WALLET OFFICER 实为 while in office。lipflow 通过语言模型或 LLM 后处理修正。CTCConnectionist Temporal Classification一种序列对齐算法允许输出序列比输入短。在 lipflow 中实时预览使用 greedy CTC 每 0.45 秒更新一次最终解码时 CTC 与 Transformer decoder 联合打分。beam search解码时保留多条候选路径求最优序列。lipflow 结合 CTC、语言模型和个人语言模型权重搜索默认 beam size 10。push-to-talk按住说话、松开发送的交互模式。lipflow 按住右 OptionmacOS或右 CtrlWindows录制双击进入免提 60 秒模式按 Esc 或其他键取消。fine-tune在预训练模型基础上用特定数据继续训练。lipflow 用户练习 24 句后在本机 GPU 上微调 VSR 模型仅保存变化张量同时用 Wispr Flow 历史训练个人语言模型权重 0.2 叠加打分。架构拆解lipflow 分为前端捕获层、视觉处理层、模型推理层和输出层。前端捕获层lipflow/camera.py从摄像头获取变帧率视频流记录每帧时间戳。lipflow/ptt.py监听键盘事件按下右 Option/右 Ctrl 触发录制松开后继续录 0.4 秒获取最后一个词的后续帧。视觉处理层lipflow/face.py使用 MediaPipe FaceLandmarker 提取面部关键点眼、鼻基、嘴锚点对齐训练均值脸并裁剪 96x96 灰度口型区域。变帧率序列重采样为 25fps 均匀索引。模型推理层lipflow/vsr.py封装 Auto-AVSR 模型口型数组归一化为张量后送入 3D-conv Conformer 编码器Apple GPU/CUDA输出编码张量到 CPU。Transformer decoder CTC beam search 结合解码器、CTC、语言模型和个人语言模型打分返回 nbest 候选大写句。输出层lipflow/cleanup.py调用 Claude/Codex CLI/本地 Qwen3-0.6BMLX/Ollama 修正同唇音错误拼接候选、上下文和用户词汇。lipflow/paste.py将修正句通过 Quartz 事件macOS或模拟 V 键Windows粘贴到光标。训练模块lipflow/practice.py生成练习句用户历史 Harvard 句录制 24 句保存带时间戳片段。lipflow/train_vsr.py和lipflow/train_lm.py分别微调视觉编码器和语言模型仅保存 delta 权重到~/Library/Application Support/Lipflow/。训练过程约 8 分钟仅在个人模型读取 24 句效果优于基础模型时保留。关键实现走读推理入口def read(self, rois: np.ndarray, fast: bool False) - tuple[str, float]: Return (UPPERCASE transcript, seconds spent). t0 time.time() enc self.encode(rois) text self.greedy(enc) if fast else self.beam_search(enc) return text, time.time() - t0做了什么LipReader.read接收口型数组调用encode编码根据fast参数选择 greedy CTC 或 beam search 解码返回大写转录和耗时。为什么这样写fast 模式用于实时预览每 0.45 秒greedy CTC 速度快但准确率低。最终解码用 beam search 结合多个语言模型打分准确率高但耗时 0.8-1.6 秒CPU。没有它会怎样无法切换解码策略实时预览和最终输出必须用同一算法无法平衡速度和准确率。按键时序逻辑def key_up(self, now: float | None None): if not self.down: return now time.time() if now is None else now self.down False held now - self.down_at if self.hands_free: self.hands_free self.active False self.on_stop() elif held TAP_MAX: if now - self.last_tap DOUBLE_TAP: self.hands_free True # second tap: keep listening until the next tap self.last_tap 0.0 self.on_start(hands_freeTrue) else: self.last_tap now self.active False self.on_cancel(silentTrue) elif self.active: self.active False self.on_stop()做了什么PushToTalkState.key_up处理松键事件。若在免提模式停止录制。若按住时长小于TAP_MAX0.25 秒判定为短按距上次 tap 小于DOUBLE_TAP0.35 秒则进入免提模式否则取消录制。若按住超过 0.25 秒且录制中停止录制触发推理。为什么这样写短按避免误触双击进入免提模式支持长句输入最长 60 秒。按住期间同时按其他键视为快捷键取消录制避免误粘贴。没有它会怎样无法区分短按、长按和双击误触会触发推理浪费资源无法支持免提模式。动手上手安装步骤克隆仓库到本地验证~/code/lipflow目录存在setup.sh。运行安装脚本cd ~/code/lipflow ./setup.sh验证脚本下载约 2GB 模型文件终端输出 Setup complete。启动应用macOSopen /Applications/Lipflow.app验证弹出摄像头、输入监控和辅助功能权限请求授予后应用启动。首次训练可选 应用启动后提示导入 Wispr Flow 历史或跳过录制 24 句练习约 3 分钟训练 8 分钟仅在个人模型效果更好时保留。 验证训练完成后重启按住右 Option 无声口型输入松开后文字粘贴到文本编辑器。命令行模式uv run lipflow file talk.mp4 --start 10 --end 20验证识别视频 10-20 秒片段输出大写转录。README 示例输出为 BORN IN NEW YORK CITY AND RAISED MOSTLY IN CHICAGO NANCY DAVIS GRADUATED FROM SMITH COLLEGE IN NINETEEN FORTY THREE。应用场景会议室无声记录按住键无声口型输入松开后文字粘贴到笔记应用。需授予摄像头、输入监控和辅助功能权限光线需充足使面部清晰。公共场所隐私输入机场、咖啡厅等噪音环境下不发声不录音只读唇输入文字。个人口型与训练集差异大时准确率下降首次 Setup 训练 8 分钟适配。Whisper 模式高准确率Settings 开启 Whisper mode按键期间软耳语 唇读联合识别。测试片段错误率从 31.9% 降至 6.9%。需麦克风权限模型 1.8GB 额外下载真实耳语比测试片段清晰度低。独立分析lipflow 当前 445 Star主语言 Pythontopics 为空创建于 2026 年 9 月 29 日最近 push 2026 年 10 月 3 日。活跃度较低但核心功能完整。对比 Wispr FlowWispr Flow 用麦克风录音识别需发声。lipflow 无声读唇无麦克风可导入 Wispr 历史学习用户词汇。两者目标场景不同lipflow 更适合隐私保护或噪音环境。对比传统语音输入语音输入需发声和麦克风环境噪音干扰。lipflow 完全无声但需摄像头和充足光线同唇音混淆依赖语言模型修正。独立分析真实无声口型比测试片段更难识别。README 明确指出 Silently mouthed speech is harder than filmed speech (smaller lip movements)无声口型动作幅度小训练集多为有声视频泛化能力受限。个人训练显著提升准确率Setup 第 4 步说明仅在个人模型效果更好时保留证明适配个人口型是提升准确率的关键。基于 LRS3 数据集的 Auto-AVSR 模型 benchmark WER 19.1%但实际使用中同唇音混淆、光线不足、口型差异都会提高错误率。开启 Whisper 模式或使用高质量 LLMClaude后处理能显著改善但前者需麦克风、后者增加延迟和成本。局限与风险技术局限同唇音p/b/m、f/v 等无法从视觉区分必须依赖语言模型或 LLM 纠正。个人口型差异大时需重新训练 8 分钟数据不足影响效果。平台差异Windows 无 NVIDIA GPU 时编码器 CPU 运行慢 1-2 秒训练时间数倍于 Mac。Linux 粘贴需 wl-clipboard wtype/ydotoolWayland 输入组权限GNOME 无活动窗口标题 API。使用限制免提模式最长 60 秒超出需重新触发。学习用户纠错功能仅 macOS 实现Windows/Linux 未支持。法律风险LRS3 模型权重仅限非商业研究使用。商业场景需评估许可证合规性。隐私保护个人数据视频片段、短语、训练模型保存在本地~/Library/Application Support/Lipflow/删除该目录可重置。所有推理本地完成不上传视频或文本但用户需授予摄像头和辅助功能权限。结论卡片适合需隐私保护、噪音环境或手部受限的文字输入场景。有 Wispr Flow 历史或专业术语的用户。愿意训练 8 分钟适配个人口型的用户。不适合无摄像头或光线不足环境。无法接受同唇音错误率的严肃场景除非开 Whisper 模式或高质量 LLM。需商业使用模型 license 限制。跟进价值适合探索本地唇读技术的开发者和对无声输入有真实需求的用户但生产环境需评估准确率和法律合规性。项目地址https://github.com/amywork777/lipflow

相关新闻

基于机器学习的学生成绩预测与学情分析系统开题报告(计算机毕业设计)

基于机器学习的学生成绩预测与学情分析系统开题报告(计算机毕业设计)

一、选题背景与研究意义 (一)选题背景 随着智慧教育、教育数字化改革的持续推进,传统教学管理模式逐步向数据化、智能化转型。当前中小学及高校教学管理中,积累了海量学生学习数据,包含日常考勤、课堂表现、作业完成…

2026/10/5 9:59:41 阅读更多 →
ATGM332D配置实战:PMTK命令修改波特率与NMEA过滤

ATGM332D配置实战:PMTK命令修改波特率与NMEA过滤

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 9:58:41 阅读更多 →
MATLAB三维泊松盘采样:生成带最小间距约束的随机点集

MATLAB三维泊松盘采样:生成带最小间距约束的随机点集

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 9:58:41 阅读更多 →

最新新闻

SpringBoot+Vue宠物健康顾问系统:从架构设计到前后端分离实践

SpringBoot+Vue宠物健康顾问系统:从架构设计到前后端分离实践

1. 项目概览:这个“宠物健康顾问”到底是什么 先说结论:这套SpringBootVue的宠物健康顾问系统,核心是做“宠物医院的轻量级数字化管理”。它不是一个花架子demo,而是把真实宠物门诊日常要干的几件事——宠物档案建档、在线问诊、疫…

2026/10/5 13:57:20 阅读更多 →
SpringBoot+Vue宠物健康顾问系统全栈开发实战解析

SpringBoot+Vue宠物健康顾问系统全栈开发实战解析

毕业后第一次做全栈项目,不少人会直接选“宠物健康顾问系统”。说实话,这个题目在毕设和课设里出现的频率相当高,数据模型清晰、业务边界明确、技术栈又刚好踩在主流Java后端和前端框架上,用来锻炼完整的项目开发流程再合适不过。…

2026/10/5 13:57:20 阅读更多 →
Ubuntu 20.04 源码编译 OpenCV 3.3.1 全流程与避坑指南

Ubuntu 20.04 源码编译 OpenCV 3.3.1 全流程与避坑指南

简介:针对 Ubuntu 20.04 重新适配的 OpenCV 3.3.1 资源包,面向需要在较新系统上编译旧版 OpenCV 的开发者、人工智能与计算机视觉学习者。作者已修正 CODEC_FLAG_GLOBAL_HEADER、AVFMT_RAWPICTURE 未声明及 const char* 转 char* 等编译错误,…

2026/10/5 13:56:20 阅读更多 →
苏凌丘国庆希尔顿酒店举办订婚宴 学霸女神情定金秋

苏凌丘国庆希尔顿酒店举办订婚宴 学霸女神情定金秋

(2026年10月3日) 国庆佳节,喜事临门。曾因江苏卫视《非诚勿扰》备受关注的“学霸女神”苏凌丘,于国庆在希尔顿酒店举办订婚宴,正式与男友许下携手一生的承诺。这是继今年8月男友在W酒店秘密求婚后,两人感情…

2026/10/5 13:56:20 阅读更多 →
用 @Docs 与项目 README 约束幻觉:Cursor 文档索引配置与提问模板

用 @Docs 与项目 README 约束幻觉:Cursor 文档索引配置与提问模板

用 Docs 与项目 README 约束幻觉:Cursor 文档索引配置与提问模板 Agent 「一本正经地胡说」时,观众爱骂模型;工程上更常缺的是材料与约束:没有版本对齐的文档索引,没有当真相源的 README,提问又允许它「凭印…

2026/10/5 13:56:20 阅读更多 →
Python自动化:PPT一键转视频的完整技术方案与代码实践

Python自动化:PPT一键转视频的完整技术方案与代码实践

做这行的朋友应该都有过这种经历:汇报前夜改了八遍PPT,第二天发现讲稿和页面顺序对不上;或者要录一节网课,手动点鼠标翻页加录音折腾到凌晨。当"幻灯片"和"视频"这两个词出现在同一个需求里,很多人…

2026/10/5 13:56:20 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →