[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71060":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":16,"starSnapshotCount":16,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},71060,"LiveTalking","lipku\u002FLiveTalking","lipku","Real time interactive streaming digital human","https:\u002F\u002Flivetalking-doc.readthedocs.io\u002F",null,"Python",7938,1275,68,396,0,67,171,311,201,40.32,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39],"aigc","digihuman","digital-human","er-nerf","lip-sync","metahuman-stream","musetalk","nerf","realtime","streaming","talking-head","virtualhumans","wav2lip","2026-06-12 02:02:47","\n # [English](.\u002FREADME-EN.md) | 中文版  \n \u003Cp align=\"center\">\n \u003Cimg src=\".\u002Fassets\u002FLiveTalking-logo.jpg\" align=\"middle\" width = \"300\"\u002F>\n\u003Cp align=\"center\">\n\u003Cp align=\"center\">\n    \u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202-dfd.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flipku\u002FLiveTalking\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Flipku\u002FLiveTalking?color=ffa\">\u003C\u002Fa>\n    \u003Ca href=\"\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-aff.svg\">\u003C\u002Fa>\n    \u003Ca href=\"\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fos-linux%2C%20win%2C%20mac-pink.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flipku\u002FLiveTalking\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Flipku\u002FLiveTalking?color=c4f042&style=flat-square\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flipku\u002FLiveTalking\u002Fnetwork\u002Fmembers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Flipku\u002FLiveTalking?color=8ae8ff\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flipku\u002FLiveTalking\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Flipku\u002FLiveTalking?color=ccf\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n 实时交互流式数字人，实现音视频同步对话。基本可以达到商用效果  \n[wav2lip效果](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1scwBeyELA\u002F) | [ernerf效果](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1G1421z73r\u002F) | [musetalk效果](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1bUwezvEnG\u002F)  \n国内镜像地址:\u003Chttps:\u002F\u002Fgitee.com\u002Flipku\u002FLiveTalking> \n\n## 为避免与3d数字人混淆，原项目metahuman-stream改名为livetalking，原有链接地址继续可用\n\n## Features\n1. 支持多种数字人模型: ernerf、musetalk、wav2lip、Ultralight-Digital-Human\n2. 支持声音克隆\n3. 支持数字人说话被打断\n4. 支持webrtc、rtmp、虚拟摄像头输出\n5. 支持动作编排：不说话时播放自定义视频\n6. 支持多并发\n7. 支持自定义数字人形象\n\n## 1. Installation\n\nTested on Ubuntu 24.04, Python3.10, Pytorch 2.5.0 and CUDA 12.4\n\n### 1.1 Install dependency\n\n```bash\nconda create -n nerfstream python=3.10\nconda activate nerfstream\n#如果cuda版本不为12.4(运行nvidia-smi确认版本)，根据\u003Chttps:\u002F\u002Fpytorch.org\u002Fget-started\u002Fprevious-versions\u002F>安装对应版本的pytorch \nconda install pytorch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 pytorch-cuda=12.4 -c pytorch -c nvidia\npip install -r requirements.txt\n``` \n安装常见问题[FAQ](https:\u002F\u002Flivetalking-doc.readthedocs.io\u002Fzh-cn\u002Flatest\u002Ffaq.html)  \nlinux cuda环境搭建可以参考这篇文章 \u003Chttps:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F674972886>  \n视频连不上解决方法 \u003Chttps:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FMVUkxxhV2cgMMHalphr2cg>\n\n\n## 2. Quick Start\n- 下载模型  \n夸克云盘\u003Chttps:\u002F\u002Fpan.quark.cn\u002Fs\u002F83a750323ef0>    \nGoogleDriver \u003Chttps:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1FOC_MD6wdogyyX_7V1d4NDIO7P9NlSAJ?usp=sharing>  \n将wav2lip256.pth拷到本项目的models下, 重命名为wav2lip.pth;  \n将wav2lip256_avatar1.tar.gz解压后整个文件夹拷到本项目的data\u002Favatars下\n- 运行  \npython app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1  \n\u003Cfont color=red>服务端需要开放端口 tcp:8010; udp:1-65536 \u003C\u002Ffont>  \n客户端可以选用以下两种方式:  \n(1)用浏览器打开http:\u002F\u002Fserverip:8010\u002Fwebrtcapi.html , 先点‘start',播放数字人视频；然后在文本框输入任意文字，提交。数字人播报该段文字  \n(2)用客户端方式, 下载地址\u003Chttps:\u002F\u002Fpan.quark.cn\u002Fs\u002Fd7192d8ac19b>   \n\n- 快速体验  \n[在线镜像](https:\u002F\u002Fwww.compshare.cn\u002Fimages\u002F4458094e-a43d-45fe-9b57-de79253befe4?referral_code=3XW3852OBmnD089hMMrtuU&ytag=GPU_GitHub_livetalking) 用该镜像创建实例即可运行成功\n\n安装运行过程中如果访问不了huggingface，在运行前\n```\nexport HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n``` \n\n## 3. Architecture\n### 数据流程图\n\u003Cimg src=\".\u002Fassets\u002Fdataflow.png\" align=\"middle\" \u002F>  \n\n### 系统架构图\n\n```mermaid\ngraph TD\n    User[\"User \u002F Frontend Web\"] -->|\"Text Input \u002F Audio File\"| API[\"API Routes: \u002Fhuman, \u002Fhumanaudio\"]\n    \n    subgraph \"Server Layer\"\n        API --> SessionMgr[\"Session Manager\"]\n        SessionMgr --> AvatarSession[\"Avatar Session Instance\"]\n    end\n\n    subgraph \"Logic Layer\"\n        AvatarSession -->|\"Request Type: chat\"| LLM[\"LLM Response Engine\"]\n        LLM -->|\"Generated Text\"| TTS[\"TTS Engine: Edge\u002FCosyVoice\u002FTencent...\"]\n        AvatarSession -->|\"Request Type: echo\"| TTS\n        TTS -->|\"PCM Audio (16k)\"| ASR[\"Audio Feature Extraction\"]\n        API -->|\"Uploaded audio\"| ASR\n    end\n\n    subgraph \"Rendering Layer\"\n        ASR -->|\"Audio Features \u002F Mel\"| Infer[\"Inference Engine: Wav2Lip\u002FMuseTalk\u002FERNeRF\"]\n        Infer -->|\"Generated Mouth Sync\"| Paste[\"Paste Back\"]\n    end\n\n    subgraph \"Streaming Layer\"\n        Paste -->|\"Video Frames\"| Output[\"Output Module: WebRTC\u002FRTMP\u002FVirtualcam\"]\n        ASR -->|\"Audio Frames\"| Output\n        Output -->|\"Real-time Media Stream\"| User\n    end\n\n    subgraph \"Modular Plugin System\"\n        Reg[\"Registry\"] -.-> TTS\n        Reg -.-> Infer\n        Reg -.-> Output\n    end\n\n    style User fill:#f9f,stroke:#333,stroke-width:2px\n    style Reg fill:#fff2cc,stroke:#d6b656,stroke-width:2px\n    style LLM fill:#dae8fc,stroke:#6c8ebf,stroke-width:2px\n    style Infer fill:#d5e8d4,stroke:#82b366,stroke-width:2px\n```\n\n### 1. API层\n- **接口端点**：\n    - `\u002Fhuman`：接收文本，用于“（echo）”（直接播放）或“聊天（chat）”（大语言模型交互）场景。\n    - `\u002Fhumanaudio`：接收原始音频文件用于播放。\n- **会话管理**：每个连接都会分配一个`sessionid`，用于维护状态并处理多用户并发请求。\n\n### 2. 逻辑层\n- **大语言模型（LLM）引擎**：与通义千问（Qwen）等模型对接，生成对话式回复。\n- **语音合成（TTS）引擎**：模块化系统，支持多种服务商（EdgeTTS、GPT-SoVITS等），实现文本到语音的转换。\n- **语音特征提取**：提取视觉唇形同步所需的声学特征（如梅尔频谱图）。\n\n### 3. 渲染层\n- **模型推理**：基于深度学习模型（如Wav2Lip、MuseTalk），根据音频特征生成唇形同步的视频帧。\n- **后处理**：将生成的嘴部区域平滑叠加回原始高清虚拟形象视频上。\n\n### 4. 流媒体层\n- **传输协议**：\n    - **WebRTC**：低延迟的浏览器端流媒体传输协议。\n    - **RTMP**：适用于YouTube、哔哩哔哩等平台的标准流媒体协议。\n    - **虚拟摄像头**：允许将输出内容作为系统摄像头使用。\n\n### 5. 插件系统\n- **注册中心**：采用去中心化的注册机制（[registry.py](.\u002Fregistry.py)），开发者可轻松新增语音合成（TTS）、虚拟形象（Avatar）或输出（Output）模块。 欢迎效果更好的模型和服务接入，也可以进行商业合作。\n\n## 4. More Usage\n使用说明: \u003Chttps:\u002F\u002Flivetalking-doc.readthedocs.io\u002F>\n  \n## 5. Docker Run  \n不需要前面的安装，直接运行。\n```\ndocker run --gpus all -it --network=host --rm registry.cn-beijing.aliyuncs.com\u002Fcodewithgpu2\u002Flipku-metahuman-stream:2K9qaMBu8v\n```\n代码在\u002Froot\u002Fmetahuman-stream，先git pull拉一下最新代码，然后执行命令同第2、3步 \n\n提供如下网络镜像\n- ucloud镜像: \u003Chttps:\u002F\u002Fwww.compshare.cn\u002Fimages\u002F4458094e-a43d-45fe-9b57-de79253befe4?referral_code=3XW3852OBmnD089hMMrtuU&ytag=GPU_GitHub_livetalking>  \n[ucloud教程](https:\u002F\u002Flivetalking-doc.readthedocs.io\u002Fzh-cn\u002Flatest\u002Fucloud\u002Fucloud.html) \n- autodl镜像: \u003Chttps:\u002F\u002Fwww.codewithgpu.com\u002Fi\u002Flipku\u002Flivetalking\u002Fbase>   \n[autodl教程](https:\u002F\u002Flivetalking-doc.readthedocs.io\u002Fzh-cn\u002Flatest\u002Fautodl\u002FREADME.html)，autodl由于不能开放udp端口，需要部署转发服务，如果看不到视频，请自行部署srs或turn服务\n\n\n## 6. 性能\n- 性能主要跟cpu和gpu相关: 每路视频压缩需要消耗cpu，cpu性能与视频分辨率正相关；每路口型推理跟gpu性能相关。  \n- 不说话时的并发数跟cpu相关，同时说话的并发数跟gpu相关。  \n- 后端日志inferfps表示显卡推理帧率，finalfps表示最终推流帧率。两者都要在25以上才能实时。如果inferfps在25以上，finalfps达不到25表示cpu性能不足。  \n- 实时推理性能  \n\n模型    |显卡型号   |fps\n:----   |:---   |:---\nwav2lip256 | 3060    | 60\nwav2lip256 | 3080Ti  | 120\nmusetalk   | 3080Ti  | 42\nmusetalk   | 3090    | 45\nmusetalk   | 4090    | 72 \n\nwav2lip256显卡3060以上即可，musetalk需要3080Ti以上。 \n\n## 7. 商业版\n提供如下扩展功能，适用于对开源项目已经比较熟悉，需要扩展产品功能的用户\n1. 高清wav2lip模型\n2. 完全语音交互，数字人回答过程中支持通过唤醒词或者按钮打断提问\n3. 实时同步字幕，给前端提供数字人每句话播报开始、结束事件\n4. 提供实时音频流输入接口\n5. 数字人透明背景，叠加动态背景 \n6. avatar实时切换  \n7. 同一画面里多个数字人互动  \n8. 摄像头驱动数字人形象动作和表情  \n9. 与livekit对接\n\n更多详情\u003Chttps:\u002F\u002Flivetalking-doc.readthedocs.io\u002Fzh-cn\u002Flatest\u002Fservice.html>\n\n## 8. 声明\n基于本项目开发并发布在B站、视频号、抖音等网站上的视频需带上LiveTalking水印和标识。\n\n---  \n如果本项目对你有帮助，帮忙点个star。也欢迎感兴趣的朋友一起来完善该项目.\n* 知识星球: https:\u002F\u002Ft.zsxq.com\u002F7NMyO 沉淀高质量常见问题、最佳实践经验、问题解答  \n* 微信：wxwubug (加群请备注)      \n* Telegram: https:\u002F\u002Ft.me\u002Flivetalking  \n* Discord: https:\u002F\u002Fdiscord.gg\u002Fn5jSPCT3Uf  \n* Email: lipku@foxmail.com  \n* 微信公众号：数字人技术    \n\u003Cimg src=\".\u002Fassets\u002Fqrcode-wechat.jpg\" align=\"middle\" \u002F>\n\n","LiveTalking 是一个用于创建实时交互流式数字人的项目，能够实现音视频同步对话。其核心功能包括支持多种数字人模型（如 ernerf、musetalk 和 wav2lip）、声音克隆以及数字人在说话时被打断的能力。此外，它还提供了通过 WebRTC、RTMP 或虚拟摄像头输出的功能，并且允许用户自定义数字人形象和不说话时的动作编排。该项目适合需要在直播、在线教育、客户服务等场景下使用虚拟人物进行互动交流的应用场合。基于 Python 开发，适用于 Linux、Windows 和 macOS 系统。",2,"2026-06-11 03:35:43","high_star"]