对着摄像头动动嘴唇就能打字:本地实时唇语识别工具 Chaplin 从零实测 对着摄像头动动嘴唇就能打字本地实时唇语识别工具 Chaplin 从零实测【免费下载链接】chaplinA real-time silent speech recognition tool.项目地址: https://gitcode.com/gh_mirrors/chapl/chaplin深夜加班开视频会你想插一句话可四周静得能听见键盘声——于是你只能对着摄像头无声地动动嘴唇屏幕上立刻打出了那句话。这不是科幻片而是本地实时唇语识别工具 Chaplin 每天都在做的事把无声的嘴型实时翻译成能直接输入的文字。一句话说清 Chaplin 是什么Chaplin 是一个完全本地运行的实时视觉语音识别VSR工具它读取摄像头画面中你的唇部动作识别出你无声说出的话再把修正后的文字自动敲到光标所在的位置。整条链路——从唇部检测到模型推理再到文本修正——都在你机器上完成不依赖任何云端服务数据不出门。它依托的是在LRS3 唇读数据集上训练出的 Auto-AVSR 模型配合 RNN 语言模型和本地 Ollama 上的大模型做两级校对最终把闭嘴打字变成现实。从下载到第一次开口全程就三条命令上手过程短得让人意外核心只有三步克隆仓库、跑一键脚本、启动程序。git clone https://gitcode.com/gh_mirrors/chapl/chaplin cd chaplin ./setup.shsetup.sh会自动从 Hugging Face Hub 拉取两个模型预训练的 LRS3_V_WER19.1 识别模型以及配套的英文子词语言模型并放入benchmarks/目录的对应位置。这一步虽然要等一会儿但胜在完全自动化不需要手工对路径。接下来装两样东西Ollama并拉取qwen3:4b模型用于文本修正和 uv 包管理器。然后在项目根目录敲这一条uv run --with-requirements requirements.txt --python 3.12 main.py \ config_filename./configs/LRS3_V_WER19.1.ini detectormediapipe摄像头画面弹出后按下Alt 键Mac 上是 Option开始录制对着镜头无声说话再按一次停止。这时你会看到终端里打出原始识别结果RAW OUTPUT紧接着修正后的句子会被自动输入到当前光标处——就像有个看不见的秘书在替你打字。按q退出。这段代码只做一件事加载模型、打开摄像头、把全局热键和识别线程挂起来。真正打字的逻辑藏在 Chaplin 类里。按下 Alt 键之后机器里发生了什么它内部其实是一条五段流水线每一段都像一个分工明确的车间唇部定位默认用 MediaPipe也可换 RetinaFace在每一帧里框出人脸和关键点相当于给嘴唇标好坐标。启用face_trackTrue后还会做面部跟踪避免每帧重复全图检测。裁剪对齐按眼睛、鼻尖、嘴心的稳定点位做仿射变换把嘴部区域裁成统一的 96×96 小图就像证件照机器自动把脸摆正。特征提取一串嘴唇小图先过 Conv3D 网络抽时空特征再交给 ResNet 骨干网络编码。嘴型的运动模式在这里被压缩成计算机能读懂的动作轨迹。序列解码Transformer 编码器-解码器结合 CTC 损失做 Beam Search。配置里的beam_size40意味着解码时同时保留 40 条候选句子路径像走迷宫时一次开 40 条路最后挑最通顺的一条。两级文本校正第一级是 RNN 语言模型lm_weight0.3在解码时兜底第二级把结果丢给本地 Ollama 上的qwen3:4b让它把明显的错词改对、补上标点、恢复大小写。最后这一环最有意思大模型不只是改对它还会返回一份list_of_changes——明确告诉你它改了哪些词这在排查识别问题时是极好的调试信息。一个反直觉的冷知识它故意把画面录糊Chaplin 在录制时做了三件看起来自降画质的事把分辨率缩小到原来的三分之一、转成灰度图、用 JPEG 质量 25 压缩后写盘。你可能会想这么糙的输入能认出来才怪但反过来想模型训练时吃的本来就不是高清画面而是 LRS3 数据集里那种裁剪好、转灰度的嘴部特写。让实时输入尽量贴近训练分布反而比画质越好越准更符合模型预期。另一个隐藏规则是录制片段短于 2 秒会被直接丢弃——嘴型序列太短模型根本无从判断你说的是什么。所以想测试时别只挤一个单词试着说完整的一句话效果会好很多。两个真实场景把 Chaplin 玩出花场景一给无声教学视频自动生成英文字幕不接摄像头也行InferencePipeline可以直接吃视频文件。写个十几行的脚本遍历目录里所有.mp4逐段识别、写进 txt就能给口型清晰的教学视频批量生成文本from pipelines.pipeline import InferencePipeline import torch pipeline InferencePipeline( config_filename./configs/LRS3_V_WER19.1.ini, devicetorch.device(cuda:0 if torch.cuda.is_available() else cpu), detectormediapipe) transcript pipeline(video_path) print(transcript)这段代码解决的核心问题只有一个把实时摄像头换成离线视频文件其余识别链路完全复用。场景二给无声输入做一个小接口你可以把识别包成一个 HTTP 接口让其他设备把帧传过来、拿回文本。思路极简全局初始化一个 pipeline收到请求就cv2.imdecode解码图片喂给process_frame一类的方法返回 JSON。Chaplin 的模块化设计让这种二次封装非常省力唯一的注意点是模型是英文优化的基于 LRS3 英文数据集想支持中文需要自己换模型或做微调。我踩过的几个坑帮你提前避开没启动 Ollama 就开跑识别那一步可能正常但最后的修正环节会静默失败。务必先ollama pull qwen3:4b并把 Ollama 服务跑起来。Alt 是全局热键代码用pynput注册了全局GlobalHotKeys也就是说哪怕焦点不在摄像头窗口按 Alt 也会触发录制开关。如果你在用 Alt 切换窗口之类的快捷键记得先规划好。多摄像头机器程序默认cv2.VideoCapture(0)如果识别的是错误的那路画面改一下索引即可。光线和角度是硬约束背光、侧脸、手挡嘴都会让识别率断崖式下跌。正对镜头、均匀打光是最便宜的参数调优。写在最后闭嘴是为了让文字先开口Chaplin 打动我的不是准确率有多高而是它把一套原本要写几百行样板代码的视觉语音识别流程压缩成了一次按键体验按下 Alt动动嘴唇文字自己出现在屏幕上。它适合安静场合的无声输入适合语言障碍者的辅助交流也适合任何想研究 VSR 落地细节的开发者——因为它开源、模块清晰pipelines/下的检测器、数据加载、模型推理都是可以单独拎出来读的代码。不必等技术成熟下载、跑通、看 RAW OUTPUT 和list_of_changes的差异你就已经站在读懂这套系统的门口了。下一次想说话却开不了口时不妨让 Chaplin 替你开口。【免费下载链接】chaplinA real-time silent speech recognition tool.项目地址: https://gitcode.com/gh_mirrors/chapl/chaplin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

python-vimrc主题美化教程:wombat256mod与Airline状态栏定制

python-vimrc主题美化教程:wombat256mod与Airline状态栏定制

python-vimrc主题美化教程:wombat256mod与Airline状态栏定制 【免费下载链接】python-vimrc VIM Configuration for Python / Cython / C Development 项目地址: https://gitcode.com/gh_mirrors/py/python-vimrc 想让 Vim 既专业又赏心悦目?pyth…

2026/8/18 18:13:15
code-minimap 核心源码深度解析:从代码行到字符画 minimap 的完整流水线

code-minimap 核心源码深度解析:从代码行到字符画 minimap 的完整流水线

code-minimap 核心源码深度解析:从代码行到字符画 minimap 的完整流水线 【免费下载链接】code-minimap 🛰 A high performance code minimap render. 项目地址: https://gitcode.com/gh_mirrors/co/code-minimap code-minimap 是一个用 Rust 编写…

2026/8/18 18:13:15
awesome-deepseek-agent 实战:AstrBot 接入 DeepSeek 打造 QQ/微信/飞书机器人

awesome-deepseek-agent 实战:AstrBot 接入 DeepSeek 打造 QQ/微信/飞书机器人

awesome-deepseek-agent 实战:AstrBot 接入 DeepSeek 打造 QQ/微信/飞书机器人 【免费下载链接】awesome-deepseek-agent 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-deepseek-agent 想让 QQ、微信、飞书里的好友直接和 DeepSeek 对话吗&am…

2026/8/18 18:13:15
挑战者手册:如何修改 NCSA Mosaic 2.7 源码并添加新功能

挑战者手册:如何修改 NCSA Mosaic 2.7 源码并添加新功能

挑战者手册:如何修改 NCSA Mosaic 2.7 源码并添加新功能 【免费下载链接】ncsa-mosaic NCSA Mosaic 2.7 项目地址: https://gitcode.com/gh_mirrors/nc/ncsa-mosaic 如果你正在寻找一份NCSA Mosaic 源码修改入门指南,那么恭喜你找到了宝藏。作为 …

2026/8/18 18:13:15
Lumen Passport差异化TTL指南:如何为不同客户端设置不同令牌过期时间

Lumen Passport差异化TTL指南:如何为不同客户端设置不同令牌过期时间

Lumen Passport差异化TTL指南:如何为不同客户端设置不同令牌过期时间 【免费下载链接】lumen-passport Making Laravel Passport work with Lumen 项目地址: https://gitcode.com/gh_mirrors/lu/lumen-passport 在基于 Lumen 构建的 API 服务中,L…

2026/8/18 18:13:15
awesome-deepseek-agent 教程:GitHub Copilot CLI 接入 DeepSeek V4 的 BYOK 配置

awesome-deepseek-agent 教程:GitHub Copilot CLI 接入 DeepSeek V4 的 BYOK 配置

awesome-deepseek-agent 教程:GitHub Copilot CLI 接入 DeepSeek V4 的 BYOK 配置 【免费下载链接】awesome-deepseek-agent 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-deepseek-agent GitHub Copilot CLI 是运行在终端里的 AI 编程助手&a…

2026/8/18 18:08:15