[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-rizkiarm--LipNet":3,"tool-rizkiarm--LipNet":65},[4,18,32,40,48,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,3,"2026-04-06T03:28:53",[13,14,15,16],"开发框架","图像","Agent","视频","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85013,2,"2026-04-06T11:09:19",[14,27,16,28,15,29,30,13,31],"数据工具","插件","其他","语言模型","音频",{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":10,"last_commit_at":38,"category_tags":39,"status":17},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,30,29],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"status":17},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75097,"2026-04-07T22:51:14",[30,14,13,29],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":54,"last_commit_at":55,"category_tags":56,"status":17},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[13,29],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":54,"last_commit_at":63,"category_tags":64,"status":17},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65697,"2026-04-07T23:34:58",[13,29,27],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":80,"owner_twitter":80,"owner_website":82,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":97,"env_os":98,"env_gpu":99,"env_ram":98,"env_deps":100,"category_tags":106,"github_topics":80,"view_count":24,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":107,"updated_at":108,"faqs":109,"releases":138},5459,"rizkiarm\u002FLipNet","LipNet","Keras implementation of 'LipNet: End-to-End Sentence-level Lipreading'","LipNet 是一个基于 Keras 框架开发的开源项目，实现了端到端的句子级唇语识别功能。它旨在解决传统唇读技术依赖分字符号识别、难以处理连续自然语句的痛点，能够直接通过视频中的唇部动作序列生成完整的句子文本，显著提升了识别的流畅度与准确性。\n\n该工具的核心技术亮点在于其端到端的深度学习架构，无需预先分割单词或音素，即可在未见过的说话人场景中实现较低的词错误率（WER），并在重叠说话人测试中表现出极高的鲁棒性。项目基于 GRID 语料库进行训练，并提供了预训练权重，方便用户快速验证效果或作为基准进行研究。\n\nLipNet 主要适合人工智能研究人员、深度学习开发者以及对多模态感知感兴趣的技术爱好者使用。使用者需要具备一定的 Python 编程基础，熟悉 TensorFlow 和 Keras 环境，以便进行模型训练、参数调整或在自定义数据集上进行实验。对于希望探索语音视觉融合技术或构建无障碍辅助工具的团队来说，这是一个极具参考价值的起点。","# LipNet: End-to-End Sentence-level Lipreading\nKeras implementation of the method described in the paper 'LipNet: End-to-End Sentence-level Lipreading' by Yannis M. Assael, Brendan Shillingford, Shimon Whiteson, and Nando de Freitas (https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.01599).\n\n![LipNet performing prediction (subtitle alignment only for visualization)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frizkiarm_LipNet_readme_348c0449cf09.gif)\n\n## Results\n|       Scenario          | Epoch |  CER  |  WER  |  BLEU |\n|:-----------------------:|:-----:|:-----:|:-----:|:-----:|\n|  Unseen speakers [C]    |  N\u002FA  |  N\u002FA  |  N\u002FA  |  N\u002FA  |\n|    Unseen speakers      |  178  |  6.19%  |  14.19%  |  88.21%  |\n| Overlapped speakers [C] |  N\u002FA  |  N\u002FA  |  N\u002FA  |  N\u002FA  |\n|   Overlapped speakers   |  368  |  1.56%  |  3.38%  |  96.93%  |\n\n**Notes**:\n\n- [C] means using curriculum learning.\n- N\u002FA means either the training is in progress or haven't been performed.\n- Your contribution in sharing the results of this model is highly appreciated :)\n\n## Dependencies\n* Keras 2.0+\n* Tensorflow 1.0+\n* PIP (for package installation)\n\nPlus several other libraries listed on `setup.py`\n\n## Usage\nTo use the model, first you need to clone the repository:\n```\ngit clone https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\n```\nThen you can install the package:\n```\ncd LipNet\u002F\npip install -e .\n```\n**Note:** if you don't want to use CUDA, you need to edit the ``setup.py`` and change ``tensorflow-gpu`` to ``tensorflow``\n\nYou're done!\n\nHere is some ideas on what you can do next:\n* Modify the package and make some improvements to it.\n* Train the model using predefined training scenarios.\n* Make your own training scenarios.\n* Use [pre-trained weights](https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Ftree\u002Fmaster\u002Fevaluation\u002Fmodels) to do lipreading.\n* Go crazy and experiment on other dataset! by changing some hyperparameters or modify the model.\n\n## Dataset\nThis model uses GRID corpus (http:\u002F\u002Fspandh.dcs.shef.ac.uk\u002Fgridcorpus\u002F)\n\n## Pre-trained weights\nFor those of you who are having difficulties in training the model (or just want to see the end results), you can download and use the weights provided here: https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Ftree\u002Fmaster\u002Fevaluation\u002Fmodels. \n\nMore detail on saving and loading weights can be found in [Keras FAQ](https:\u002F\u002Fkeras.io\u002Fgetting-started\u002Ffaq\u002F#how-can-i-save-a-keras-model).\n\n## Training\nThere are five different training scenarios that are (going to be) available:\n\n### Prerequisites\n1. Download all video (normal) and align from the GRID Corpus website.\n2. Extracts all the videos and aligns.\n3. Create ``datasets`` folder on each training scenario folder.\n4. Create ``align`` folder inside the ``datasets`` folder.\n5. All current ``train.py`` expect the videos to be in the form of 100x50px mouthcrop image frames.\nYou can change this by adding ``vtype = \"face\"`` and ``face_predictor_path`` (which can be found in ``evaluation\u002Fmodels``) in the instantiation of ``Generator`` inside the ``train.py``\n6. The other way would be to extract the mouthcrop image using ``scripts\u002Fextract_mouth_batch.py`` (usage can be found inside the script).\n7. Create symlink from each ``training\u002F*\u002Fdatasets\u002Falign`` to your align folder.\n8. You can change the training parameters by modifying ``train.py`` inside its respective scenarios.\n\n### Random split (Unmaintained)\nCreate symlink from ``training\u002Frandom_split\u002Fdatasets\u002Fvideo`` to your video dataset folder (which contains ``s*`` directory).\n\nTrain the model using the following command:\n```\n.\u002Ftrain random_split [GPUs (optional)]\n```\n\n**Note:** You can change the validation split value by modifying the ``val_split`` argument inside the ``train.py``.\n### Unseen speakers\nCreate the following folder:\n* ``training\u002Funseen_speakers\u002Fdatasets\u002Ftrain``\n* ``training\u002Funseen_speakers\u002Fdatasets\u002Fval``\n\nThen, create symlink from ``training\u002Funseen_speakers\u002Fdatasets\u002F[train|val]\u002Fs*`` to your selection of ``s*`` inside of the video dataset folder.\n\nThe paper used ``s1``, ``s2``, ``s20``, and ``s22`` for evaluation and the remainder for training.\n\nTrain the model using the following command:\n```\n.\u002Ftrain unseen_speakers [GPUs (optional)]\n```\n### Unseen speakers with curriculum learning\nThe same way you do unseen speakers.\n\n**Note:** You can change the curriculum by modifying the ``curriculum_rules`` method inside the ``train.py``\n\n```\n.\u002Ftrain unseen_speakers_curriculum [GPUs (optional)]\n```\n\n### Overlapped Speakers\nRun the preparation script:\n```\npython prepare.py [Path to video dataset] [Path to align dataset] [Number of samples]\n```\n**Notes:**\n- ``[Path to video dataset]`` should be a folder with structure: ``\u002Fs{i}\u002F[video]``\n- ``[Path to align dataset]`` should be a folder with structure: ``\u002F[align].align``\n- ``[Number of samples]`` should be less than or equal to ``min(len(ls '\u002Fs{i}\u002F*'))``\n\nThen run training for each speaker:\n```\npython training\u002Foverlapped_speakers\u002Ftrain.py s{i}\n```\n\n### Overlapped Speakers with curriculum learning\nCopy the ``prepare.py`` from ``overlapped_speakers`` folder to ``overlapped_speakers_curriculum`` folder, \nand run it as previously described in overlapped speakers training explanation.\n\nThen run training for each speaker:\n```\npython training\u002Foverlapped_speakers_curriculum\u002Ftrain.py s{i}\n```\n**Note:** As always, you can change the curriculum by modifying the ``curriculum_rules`` method inside the ``train.py``\n\n## Evaluation\nTo evaluate and visualize the trained model on a single video \u002F image frames, you can execute the following command:\n```\n.\u002Fpredict [path to weight] [path to video]\n```\n**Example:**\n```\n.\u002Fpredict evaluation\u002Fmodels\u002Foverlapped-weights368.h5 evaluation\u002Fsamples\u002Fid2_vcd_swwp2s.mpg\n```\n## Work in Progress\nThis is a work in progress. Errors are to be expected.\nIf you found some errors in terms of implementation please report them by submitting issue(s) or making PR(s). Thanks!\n\n**Some todos:**\n- [X] Use ~~Stanford-CTC~~ Tensorflow CTC beam search\n- [X] Auto spelling correction\n- [X] Overlapped speakers (and its curriculum) training\n- [ ] Integrate language model for beam search\n- [ ] RGB normalization over the dataset.\n- [X] Validate CTC implementation in training.\n- [ ] Proper documentation\n- [ ] Unit tests\n- [X] (Maybe) better curriculum learning.\n- [ ] (Maybe) some proper scripts to do dataset stuff.\n\n## License\nMIT License\n","# LipNet：端到端句子级唇读\n由 Yannis M. Assael、Brendan Shillingford、Shimon Whiteson 和 Nando de Freitas 在论文《LipNet：端到端句子级唇读》中提出的方法的 Keras 实现（https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.01599）。\n\n![LipNet 进行预测（字幕对齐仅用于可视化）](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frizkiarm_LipNet_readme_348c0449cf09.gif)\n\n## 结果\n| 场景          | 轮次 | CER  | WER  | BLEU |\n|:-----------------------:|:-----:|:-----:|:-----:|:-----:|\n| 未见说话人 [C]    |  N\u002FA  |  N\u002FA  |  N\u002FA  |  N\u002FA  |\n|    未见说话人      |  178  |  6.19%  |  14.19%  |  88.21%  |\n| 重叠说话人 [C] |  N\u002FA  |  N\u002FA  |  N\u002FA  |  N\u002FA  |\n|   重叠说话人   |  368  |  1.56%  |  3.38%  |  96.93%  |\n\n**注释**：\n\n- [C] 表示使用课程学习。\n- N\u002FA 表示训练正在进行中或尚未进行。\n- 非常感谢您分享此模型的结果 :)\n\n## 依赖项\n* Keras 2.0+\n* Tensorflow 1.0+\n* PIP（用于安装包）\n\n此外还有 `setup.py` 中列出的其他几个库。\n\n## 使用方法\n要使用该模型，首先需要克隆仓库：\n```\ngit clone https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\n```\n然后可以安装该包：\n```\ncd LipNet\u002F\npip install -e .\n```\n**注意：** 如果您不想使用 CUDA，需要编辑 `setup.py`，将 `tensorflow-gpu` 改为 `tensorflow`。\n\n这样就完成了！\n\n以下是一些您可以继续尝试的想法：\n* 修改该包并对其进行改进。\n* 使用预定义的训练场景来训练模型。\n* 创建您自己的训练场景。\n* 使用 [预训练权重](https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Ftree\u002Fmaster\u002Fevaluation\u002Fmodels) 进行唇读。\n* 尽情发挥，通过更改一些超参数或修改模型，在其他数据集上进行实验。\n\n## 数据集\n该模型使用 GRID 语料库（http:\u002F\u002Fspandh.dcs.shef.ac.uk\u002Fgridcorpus\u002F）。\n\n## 预训练权重\n对于那些在训练模型时遇到困难（或只是想看看最终结果）的人，可以从这里下载并使用提供的权重：https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Ftree\u002Fmaster\u002Fevaluation\u002Fmodels。\n\n有关保存和加载权重的更多详细信息，请参阅 [Keras 常见问题解答](https:\u002F\u002Fkeras.io\u002Fgetting-started\u002Ffaq\u002F#how-can-i-save-a-keras-model)。\n\n## 训练\n目前有五种不同的训练场景可供选择：\n\n### 先决条件\n1. 从 GRID 语料库网站下载所有视频（正常）并进行对齐。\n2. 解压所有视频并完成对齐。\n3. 在每个训练场景文件夹中创建 `datasets` 文件夹。\n4. 在 `datasets` 文件夹内创建 `align` 文件夹。\n5. 当前的所有 `train.py` 脚本都假设视频是以 100x50px 口部裁剪图像帧的形式存在。您可以通过在 `train.py` 中实例化 `Generator` 时添加 `vtype = \"face\"` 和 `face_predictor_path`（可在 `evaluation\u002Fmodels` 中找到）来更改这一设置。\n6. 另一种方法是使用 `scripts\u002Fextract_mouth_batch.py` 提取口部裁剪图像（使用方法可在脚本中找到）。\n7. 为每个 `training\u002F*\u002Fdatasets\u002Falign` 创建指向您的对齐文件夹的符号链接。\n8. 您可以通过修改各自场景中的 `train.py` 来调整训练参数。\n\n### 随机划分（未维护）\n为 `training\u002Frandom_split\u002Fdatasets\u002Fvideo` 创建指向您的视频数据集文件夹（包含 `s*` 目录）的符号链接。\n\n使用以下命令训练模型：\n```\n.\u002Ftrain random_split [GPU（可选）]\n```\n\n**注意：** 您可以通过修改 `train.py` 中的 `val_split` 参数来更改验证集的比例。\n\n### 未见说话人\n创建以下文件夹：\n* `training\u002Funseen_speakers\u002Fdatasets\u002Ftrain`\n* `training\u002Funseen_speakers\u002Fdatasets\u002Fval`\n\n然后为 `training\u002Funseen_speakers\u002Fdatasets\u002F[train|val]\u002Fs*` 创建指向视频数据集文件夹中您所选 `s*` 的符号链接。\n\n论文中使用了 `s1`、`s2`、`s20` 和 `s22` 进行评估，其余用于训练。\n\n使用以下命令训练模型：\n```\n.\u002Ftrain unseen_speakers [GPU（可选）]\n```\n\n### 未见说话人（带课程学习）\n与未见说话人训练相同。\n\n**注意：** 您可以通过修改 `train.py` 中的 `curriculum_rules` 方法来调整课程计划。\n\n```\n.\u002Ftrain unseen_speakers_curriculum [GPU（可选）]\n```\n\n### 重叠说话人\n运行准备脚本：\n```\npython prepare.py [视频数据集路径] [对齐数据集路径] [样本数量]\n```\n\n**注释：**\n- `[视频数据集路径]` 应该是一个具有 `\u002Fs{i}\u002F[video]` 结构的文件夹。\n- `[对齐数据集路径]` 应该是一个具有 `\u002F[align].align` 结构的文件夹。\n- `[样本数量]` 应该小于或等于 `min(len(ls '\u002Fs{i}\u002F*'))`。\n\n然后为每位说话人运行训练：\n```\npython training\u002Foverlapped_speakers\u002Ftrain.py s{i}\n```\n\n### 重叠说话人（带课程学习）\n将 `prepare.py` 从 `overlapped_speakers` 文件夹复制到 `overlapped_speakers_curriculum` 文件夹，并按照之前关于重叠说话人训练的说明运行它。\n\n然后为每位说话人运行训练：\n```\npython training\u002Foverlapped_speakers_curriculum\u002Ftrain.py s{i}\n```\n\n**注意：** 同样，您可以通过修改 `train.py` 中的 `curriculum_rules` 方法来调整课程计划。\n\n## 评估\n要评估并在单个视频或图像帧上可视化训练好的模型，可以执行以下命令：\n```\n.\u002Fpredict [权重路径] [视频路径]\n```\n\n**示例：**\n```\n.\u002Fpredict evaluation\u002Fmodels\u002Foverlapped-weights368.h5 evaluation\u002Fsamples\u002Fid2_vcd_swwp2s.mpg\n```\n\n## 进度\n这是一个正在进行中的项目。可能会出现错误。\n如果您在实现过程中发现任何错误，请通过提交问题或拉取请求告知我们。谢谢！\n\n**待办事项：**\n- [X] 使用 ~~Stanford-CTC~~ TensorFlow CTC 束搜索\n- [X] 自动拼写纠正\n- [X] 重叠说话人（及其课程）的训练\n- [ ] 集成语言模型以用于束搜索\n- [ ] 对整个数据集进行 RGB 归一化。\n- [X] 验证训练中的 CTC 实现。\n- [ ] 完善文档\n- [ ] 单元测试\n- [X] （可能）更好的课程学习。\n- [ ] （可能）一些用于处理数据集的实用脚本。\n\n## 许可证\nMIT 许可证","# LipNet 快速上手指南\n\nLipNet 是一个端到端的句子级唇读模型，基于 Keras 和 TensorFlow 实现。本指南将帮助你快速搭建环境并运行预训练模型。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 需配置 WSL 或类似环境)\n*   **Python**: 建议 Python 3.6+\n*   **核心依赖**:\n    *   Keras 2.0+\n    *   TensorFlow 1.0+\n*   **硬件加速 (可选)**: 如需使用 GPU 加速，请确保已安装 CUDA 和 cuDNN，并安装 `tensorflow-gpu`。\n\n> **注意**：由于该项目基于 TensorFlow 1.x 开发，建议在独立的虚拟环境（如 `venv` 或 `conda`）中运行，以避免版本冲突。\n\n## 安装步骤\n\n### 1. 克隆仓库\n首先，从 GitHub 克隆项目代码：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\ncd LipNet\u002F\n```\n\n### 2. 安装依赖包\n使用 pip 安装项目所需依赖：\n\n```bash\npip install -e .\n```\n\n> **GPU\u002FCPU 切换提示**：\n> 默认情况下 `setup.py` 可能尝试安装 `tensorflow-gpu`。如果你不需要 GPU 支持或遇到安装问题，请先编辑 `setup.py` 文件，将其中的 `tensorflow-gpu` 修改为 `tensorflow`，然后再执行上述安装命令。\n>\n> **国内加速建议**：\n> 如果下载依赖较慢，推荐使用国内镜像源：\n> ```bash\n> pip install -e . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n安装完成后，你可以直接使用提供的预训练权重进行唇读预测，无需重新训练模型。\n\n### 运行预测\n使用 `.\u002Fpredict` 脚本加载权重并对视频文件进行分析。\n\n**命令格式：**\n```bash\n.\u002Fpredict [权重文件路径] [视频文件路径]\n```\n\n**示例：**\n以下命令使用针对“重叠说话人”场景训练的预训练模型（第 368 轮迭代权重）对示例视频进行预测：\n\n```bash\n.\u002Fpredict evaluation\u002Fmodels\u002Foverlapped-weights368.h5 evaluation\u002Fsamples\u002Fid2_vcd_swwp2s.mpg\n```\n\n运行后，终端将输出识别出的文本内容。如果需要处理其他视频，只需替换第二个参数为你的视频路径即可。\n\n> **提示**：预训练权重文件可从项目的 `evaluation\u002Fmodels` 目录获取。如果本地缺失，请前往 GitHub 仓库对应目录下载。","某安防团队正在处理一起监控录像取证任务，需要从一段嘈杂且无音频的嫌疑人视频中提取其说话内容。\n\n### 没有 LipNet 时\n- 人工唇语专家解读效率极低，面对长视频需耗费数天逐帧分析，且容易因疲劳产生误判。\n- 传统语音识别技术完全失效，因为原始视频文件缺失音频轨道或背景噪音过大掩盖了人声。\n- 无法实现自动化批量处理，每段新视频都需要重新投入昂贵的人力成本，难以应对海量监控数据。\n- 缺乏端到端的句子级识别能力，只能零散地猜测单词，难以还原完整的语义逻辑和上下文。\n\n### 使用 LipNet 后\n- 利用 LipNet 的端到端句子级唇读能力，系统可在几分钟内自动输出完整的文本转录，效率提升百倍。\n- 即使在没有音频或高噪音干扰的极端环境下，LipNet 仍能通过视觉特征精准识别口型，准确率高达 96% 以上。\n- 支持批量自动化部署，只需调用预训练权重即可对成千上万段监控视频进行无人值守的并行处理。\n- 直接输出连贯的句子而非孤立单词，结合 CTC 损失函数优化，确保了生成文本的语法通顺和语义完整。\n\nLipNet 将原本依赖昂贵人工经验的唇语解读工作，转化为高效、精准且可规模化的自动化视觉智能流程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frizkiarm_LipNet_70337dd4.png","rizkiarm","Muhammad Rizki Aulia Rahman Maulana","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frizkiarm_431320b5.jpg","Human",null,"Singapore","rizkiarm.com","https:\u002F\u002Fgithub.com\u002Frizkiarm",[85,89],{"name":86,"color":87,"percentage":88},"Python","#3572A5",98.7,{"name":90,"color":91,"percentage":92},"Shell","#89e051",1.3,688,246,"2026-03-16T05:08:27","MIT",4,"未说明","可选。默认配置需要 NVIDIA GPU 及 CUDA 支持（依赖 tensorflow-gpu）；若不使用 GPU，需手动修改 setup.py 将依赖改为 CPU 版 tensorflow。具体显卡型号、显存大小及 CUDA 版本未在文档中明确说明。",{"notes":101,"python":98,"dependencies":102},"该工具基于较旧的 TensorFlow 1.x 和 Keras 2.x 构建。若要在无 GPU 环境下运行，必须手动编辑 setup.py 文件，将 'tensorflow-gpu' 替换为 'tensorflow'。数据集需使用 GRID corpus，且训练前需将视频预处理为 100x50 像素的口部裁剪图像帧，或使用脚本自动提取。文档注明该项目仍在进行中（Work in Progress），可能存在错误。",[103,104,105],"Keras>=2.0","Tensorflow>=1.0","PIP",[31,16,29],"2026-03-27T02:49:30.150509","2026-04-08T17:16:14.220430",[110,115,120,125,130,134],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},24775,"运行 predict.py 时出现 'ImportError: No module named lipnet.lipreading.videos' 错误怎么办？","这通常是因为目录结构问题。lipnet 目录位于 evaluation 目录之外，导致脚本无法找到模块。请确保在正确的目录下运行命令，或者检查是否已使用 'pip install -e .' 正确安装了 lipnet 包。如果在 Windows 上遇到此问题，请特别留意路径配置。","https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Fissues\u002F1",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},24776,"如何解决 Python 3 环境下出现的 'SyntaxError: Missing parentheses in call to print' 错误？","该错误是因为代码是为 Python 2 编写的（使用了 print 语句），而在 Python 3 中 print 是函数。解决方法是将代码中所有的 'print \"xxx\"' 修改为 'print(\"xxx\")'。此外，建议在 Ubuntu 或 WSL (Windows Subsystem for Linux) 环境下运行以避免其他兼容性问题。","https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Fissues\u002F33",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},24777,"加载权重时出现 'ValueError: GRU(reset_after=False) is not compatible with GRU(reset_after=True)' 错误如何解决？","这是由于 TensorFlow\u002FKeras 版本不兼容导致的。建议严格按照以下版本组合安装依赖：\nKeras==2.0.2\neditdistance==0.5.3\nh5py==2.6.0\nmatplotlib==3.3.3\nnumpy==1.16.0\npython-dateutil==2.6.0\nscipy==1.0.1\nPillow==8.0.1\ntensorflow==1.14.0\nTheano==0.9.0\nnltk==3.2.2\nsk-video==1.1.10\ndlib==19.21.0 (或 19.21.1)\n请确保不要使用自动解析的最新版本，而是固定上述版本号。","https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Fissues\u002F109",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},24778,"训练时提示 'Found 0 videos for training\u002Fvalidation' 找不到视频数据怎么办？","这通常意味着数据集文件夹配置错误或路径不正确。请检查以下几点：\n1. 确认数据集文件夹路径是否正确配置。\n2. 检查视频文件和对齐文件（align）是否存在于指定的目录结构中。\n3. 确认是否有代码错误导致数据生成器（generator）失败。\n建议重新检查 prepare.py 的执行参数和视频\u002F对齐数据集的目录结构。","https:\u002F\u002Fgithub.com\u002Frizkiarm\u002FLipNet\u002Fissues\u002F51",{"id":131,"question_zh":132,"answer_zh":133,"source_url":124},24779,"在 Windows 或 Python 3.7 环境下运行项目需要安装哪些系统依赖和前置步骤？","如果在 WSL (Windows Subsystem for Linux) 或类似 Linux 环境下运行，需要先安装基础编译工具和多媒体库：\nsudo apt install c++\nsudo apt install gcc\ncsudo apt install cmake\nsudo apt install ffmpeg\n然后安装 python 包管理工具：\npip3 install wheel\n注意：如果从 Python 2 迁移到 Python 3，除了修改 print 语法外，还可能遇到 'scipy.misc.imresize' 被移除的问题（scipy > 1.0.0），需寻找替代方案或使用旧版 scipy。",{"id":135,"question_zh":136,"answer_zh":137,"source_url":114},24780,"运行预测脚本没有报错但也没有任何输出结果是什么原因？","如果执行 'python predict.py ...' 后既无错误也无输出，可能是数据加载静默失败或模型未正确初始化。请首先确认输入视频路径和权重文件路径是否正确。其次，检查是否遇到了上述的模块导入错误或版本兼容性问题，这些问题有时会导致程序在初始化阶段就停止但未抛出明显异常。建议开启详细日志或调试模式查看内部状态。",[]]