時(shí)交互數(shù)字人服務(wù)的完整指南)
從 0 到 60 FPS用 LiveTalking 搭建實(shí)時(shí)交互數(shù)字人服務(wù)的完整指南【免費(fèi)下載鏈接】metahuman-streamReal time interactive streaming digital human項(xiàng)目地址: https://gitcode.com/GitHub_Trending/me/metahuman-streamLiveTalking 是一個(gè)開(kāi)源的實(shí)時(shí)交互流式數(shù)字人引擎把文字或語(yǔ)音輸入變成口型同步的視頻流讓你能搭出一套可對(duì)話的數(shù)字人服務(wù)。項(xiàng)目已在 Ubuntu 22.04、Python 3.12、CUDA 12.8 環(huán)境驗(yàn)證wav2lip256 模型在 RTX 3060 上即可跑出 60 FPS 的推理幀率適合做 AI 客服、虛擬主播這類(lèi)低延遲實(shí)時(shí)數(shù)字人應(yīng)用。 項(xiàng)目定位LiveTalking 解決什么問(wèn)題很多數(shù)字人方案只能念稿沒(méi)法在說(shuō)話過(guò)程中被打斷、也沒(méi)法同時(shí)服務(wù)多個(gè)用戶。LiveTalking 把文本/語(yǔ)音輸入、TTS 合成、口型推理和流媒體輸出串成一條實(shí)時(shí)管道每個(gè)連接拿到獨(dú)立sessionid天然支持多用戶并發(fā)。核心能力大致是這五條可以只改--model一個(gè)參數(shù)在 wav2lip、musetalk、ultralight 三套模型間切換。前者輕快RTX 3060 實(shí)測(cè) 60 FPSmusetalk 畫(huà)質(zhì)更好但需要 3080Ti 級(jí)別顯卡。試試在控制臺(tái)里傳一段 16kHz 參考音頻配合REF_FILE參數(shù)就能讓數(shù)字人用克隆的聲音說(shuō)話TTS 引擎可在tts/目錄的多種實(shí)現(xiàn)間任選。數(shù)字人說(shuō)話到一半/interrupt_talk接口可以隨時(shí)打斷它這是做邊說(shuō)邊聽(tīng)客服交互的關(guān)鍵。輸出端覆蓋 WebRTC、RTMP、虛擬攝像頭三種通道瀏覽器頁(yè)面、直播平臺(tái)、會(huì)議軟件各取所需。并發(fā)上限由max_session默認(rèn) 5控制多路會(huì)話互不串線。 從零跑通實(shí)時(shí)數(shù)字人服務(wù)的最小化上手路徑只走能跑起來(lái)的最短鏈路完整環(huán)境細(xì)節(jié)以 README 安裝一節(jié)為準(zhǔn)。先拿代碼倉(cāng)庫(kù)只讀使用無(wú)需改動(dòng)git clone https://gitcode.com/GitHub_Trending/me/metahuman-stream cd metahuman-stream建 conda 環(huán)境并裝依賴(lài)。注意 torch 要先按nvidia-smi顯示的 CUDA 版本選對(duì)應(yīng) wheel 安裝完整命令見(jiàn) READMEconda create -n livetalking python3.12 conda activate livetalking # 先按 CUDA 版本安裝 PyTorch 2.9.1再執(zhí)行 pip install -r requirements.txt模型文件wav2lip256.pth與形象包wav2lip256_avatar1.tar.gz從官方網(wǎng)盤(pán)下載入口在 README 的快速開(kāi)始一節(jié)。放好后直接啟動(dòng)cp wav2lip256.pth models/wav2lip.pth tar -xzf wav2lip256_avatar1.tar.gz -C data/avatars/ python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1然后打開(kāi)http://服務(wù)器IP:8010/index.html點(diǎn)開(kāi)始連接播放數(shù)字人視頻在文本框輸入文字提交即可。注意服務(wù)端需放行 TCP 8010 與 UDP 1-65536否則瀏覽器拉不到流。?? 核心功能與使用要點(diǎn)拆解換形象、換聲音改一行配置形象放在data/avatars/下啟動(dòng)參數(shù)--avatar_id指向誰(shuí)就用誰(shuí)切換不需要?jiǎng)哟a。聲音側(cè)在config.yaml里設(shè)tts可選edgetts、gpt-sovits、cosyvoice、tencent等要做音色克隆把REF_FILE指到一段 16kHz 單聲道 wav配上REF_TEXT參考文本即可。Web 控制臺(tái)還允許按單個(gè)連接覆蓋 avatar 和音色不重啟服務(wù)就能換人設(shè)。想從一段真人視頻生成新形象打開(kāi)/avatar.html上傳視頻即可流程見(jiàn) docs/avatar_api.md。接上 LLM從復(fù)讀機(jī)到對(duì)話/human接口有兩種模式echo直接復(fù)讀文本chat先經(jīng) LLM 生成回復(fù)再合成語(yǔ)音后者才構(gòu)成真正的對(duì)話。對(duì)話邏輯在llm.pyconfig.yaml里llm_provider支持dashscope與orcarouterOpenAI 兼容網(wǎng)關(guān)llm_model留空即用默認(rèn)模型。畫(huà)面輸出去哪WebRTC、RTMP 還是虛擬攝像頭WebRTC--transport webrtc延遲最低適合瀏覽器直連RTMP 推給直播平臺(tái)虛擬攝像頭把數(shù)字人偽裝成系統(tǒng)攝像頭OBS、騰訊會(huì)議、Zoom 都能直接選它當(dāng)輸入源。虛擬攝像頭模式自帶控制頁(yè)web/virtualcam.html支持CtrlEnter發(fā)送、Escape打斷不打開(kāi)頁(yè)面也能用接口驅(qū)動(dòng)此模式 sessionid 固定為 0curl -X POST http://localhost:8010/human \ -H Content-Type: application/json \ -d {sessionid:0,type:chat,text:你好介紹一下你自己}不說(shuō)話時(shí)播什么動(dòng)作編排config.yaml的customvideo_config或每連接的custom_configJSON可以編排數(shù)字人不說(shuō)話時(shí)播放的自定義視頻片段用來(lái)填充停頓、避免長(zhǎng)時(shí)間靜止帶來(lái)的違和感。 配置調(diào)優(yōu)與常見(jiàn)坑版本與硬件要求匯總項(xiàng)目版本/型號(hào)說(shuō)明操作系統(tǒng)Ubuntu 22.04README 測(cè)試環(huán)境Python3.12conda 環(huán)境PyTorch2.9.1需與nvidia-smi的 CUDA 版本匹配CUDA12.8其他版本換對(duì)應(yīng) PyTorch wheelwav2lip256 顯卡RTX 3060 及以上入門(mén)即可實(shí)時(shí)musetalk 顯卡RTX 3080Ti 及以上畫(huà)質(zhì)優(yōu)先場(chǎng)景實(shí)測(cè)推理幀率并發(fā)壓力上來(lái)后按這張表規(guī)劃 GPU模型顯卡實(shí)測(cè) FPSwav2lip256RTX 306060wav2lip256RTX 3080Ti120musetalkRTX 3080Ti / 309042 / 45musetalkRTX 409072高頻問(wèn)題速查詳見(jiàn) assets/faq.mdpytorch3d 裝不上常因缺少匹配的官方 wheelclone 源碼后python setup.py install從源碼編譯。RTMP 推流失敗多為 ffmpeg 缺 libx264運(yùn)行ffmpeg看輸出里有沒(méi)有 libx264沒(méi)有就換帶該編碼器的構(gòu)建。虛擬攝像頭起不來(lái)報(bào)virtual camera output could not be started時(shí)先啟動(dòng)一次 OBS Studio 再退出讓虛擬攝像頭設(shè)備完成注冊(cè)。掉幀不實(shí)時(shí)看后端日志的inferfpsGPU 推理幀率和finalfps最終推流幀率兩者都 ≥25 才算實(shí)時(shí)不夠就降max_session并發(fā)或換更輕的模型。數(shù)字人不眨眼訓(xùn)練數(shù)據(jù)缺 AU45 眨眼動(dòng)作單元用 OpenFace 提取后把 au.csv 放進(jìn)對(duì)應(yīng) data 目錄重新訓(xùn)練。調(diào)優(yōu)時(shí)batch_size默認(rèn) 16先保持默認(rèn)并發(fā)吃緊優(yōu)先動(dòng)max_session而不是動(dòng)分辨率。 典型落地場(chǎng)景你可以把它接進(jìn)企業(yè)知識(shí)庫(kù)做成 7×24 在線的 AI 數(shù)字人客服用戶語(yǔ)音提問(wèn)數(shù)字人實(shí)時(shí)回答說(shuō)錯(cuò)還能打斷重說(shuō)。做 24 小時(shí)無(wú)人直播時(shí)讓 LLM 自動(dòng)生成帶貨話術(shù)配合動(dòng)作編排填充停頓直播間不會(huì)冷場(chǎng)。把--transport換成virtualcam數(shù)字人就能以攝像頭身份走進(jìn)騰訊會(huì)議、Zoom當(dāng)你的出鏡替身。批量產(chǎn)出口播內(nèi)容也可以通過(guò)/human/record接口提交文案直接拿回?cái)?shù)字人出鏡的 mp4 視頻不用真人拍攝。 項(xiàng)目速覽模塊/功能路徑一句話說(shuō)明啟動(dòng)入口app.py解析參數(shù)、加載模型與形象、起 HTTP/WebRTC 服務(wù)全局配置config.yamlmodel、tts、transport 等命令行參數(shù)可覆蓋數(shù)字人模型avatars/wav2lip、musetalk、ultralight 三套實(shí)現(xiàn)音頻特征提取avatars/audio_features/Mel 頻譜、Whisper、HuBERT 等特征語(yǔ)音合成tts/EdgeTTS、GPT-SoVITS、CosyVoice 等繼承base_tts.py流媒體輸出streamout/webrtc.py、rtmp.py、virtualcam.py三通道會(huì)話與推流server/會(huì)話并發(fā)管理、WebRTC 連接、路由插件注冊(cè)registry.py擴(kuò)展 TTS/Avatar/Output 模塊的注冊(cè)機(jī)制接口文檔docs/api.md、avatar_api.md、admin_api.mdWeb 頁(yè)面web/index.html 控制臺(tái)、avatar.html 形象生成開(kāi)源版目前覆蓋三套數(shù)字人模型與三種輸出通道wav2lip 鏈路在 3060 級(jí)別顯卡上就能實(shí)時(shí)跑通musetalk 的高畫(huà)質(zhì)則需要 3080Ti 起步。建議先按 WebRTC 最小路徑跑通一個(gè) demo再根據(jù)延遲、畫(huà)質(zhì)和部署位置的要求調(diào)整模型與推流通道?!久赓M(fèi)下載鏈接】metahuman-streamReal time interactive streaming digital human項(xiàng)目地址: https://gitcode.com/GitHub_Trending/me/metahuman-stream創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考