From fb4e80276d3428666a9b43e52cddb0945349b8f1 Mon Sep 17 00:00:00 2001 From: ikaros <327209194@qq.com> Date: Mon, 18 Mar 2024 16:28:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E5=AD=97=E4=BA=BA=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=99=A8=E6=96=B0=E5=A2=9ESadtalker=E3=80=81?= =?UTF-8?q?GeneFace++?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- config.json | 1 + config.json.bak | 1 + utils/audio.py | 1 + webui.py | 8 +++++++- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9086d415..3408db95 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ `Luna AI` 是一款结合了最先进技术的虚拟AI主播。它的核心是一系列高效的人工智能模型,包括 `ChatterBot、GPT、Claude、langchain、chatglm、text-generation-webui、讯飞星火、智谱AI、谷歌Bard、文心一言、通义星尘、通义千问、千帆大模型、Gemini、Kimi Chat、QAnything、koboldcpp、FastGPT`。这些模型既可以在本地运行,也可以通过云端服务提供支持。当然,为了让对话照进现实,还结合了多模态模型,包括 `Gemini` 的图像识别能力,获取电脑画面进行分析讲解。 -`Luna AI` 的外观由 `Live2D、Vtube Studio、xuniren、UE5 结合 Audio2Face、EasyAIVtuber、数字人视频播放器(Easy-Wav2Lip)` 技术打造,为用户提供了一个生动、互动的虚拟形象。这使得 `Luna AI` 能够在各大直播平台,如 `Bilibili、抖音、快手、微信视频号、斗鱼、YouTube、Twitch 和 TikTok`,进行实时互动直播。当然,它也可以在本地环境中与您进行个性化对话。 +`Luna AI` 的外观由 `Live2D、Vtube Studio、xuniren、UE5 结合 Audio2Face、EasyAIVtuber、数字人视频播放器(Easy-Wav2Lip、Sadtalker、GeneFace++)` 技术打造,为用户提供了一个生动、互动的虚拟形象。这使得 `Luna AI` 能够在各大直播平台,如 `Bilibili、抖音、快手、微信视频号、斗鱼、YouTube、Twitch 和 TikTok`,进行实时互动直播。当然,它也可以在本地环境中与您进行个性化对话。 为了使交流更加自然,`Luna AI` 使用了先进的自然语言处理技术,结合文本转语音系统,如 `Edge-TTS、VITS-Fast、elevenlabs、bark-gui、VALL-E-X、睿声AI、genshinvoice.top、tts.ai-lab.top、OpenVoice、GPT_SoVITS、clone-voice、Azure TTS、fish-speech`。这不仅让它能够生成流畅的回答,还可以通过 `so-vits-svc 和 DDSP-SVC` 实现声音的变化,以适应不同的场景和角色。 diff --git a/config.json b/config.json index c9f3417d..2af8c57d 100644 --- a/config.json +++ b/config.json @@ -29,6 +29,7 @@ "api_ip_port": "http://127.0.0.1:7888" }, "digital_human_video_player": { + "type": "easy_wav2lip", "api_ip_port": "http://127.0.0.1:8091" }, "play_audio": { diff --git a/config.json.bak b/config.json.bak index c9f3417d..2af8c57d 100644 --- a/config.json.bak +++ b/config.json.bak @@ -29,6 +29,7 @@ "api_ip_port": "http://127.0.0.1:7888" }, "digital_human_video_player": { + "type": "easy_wav2lip", "api_ip_port": "http://127.0.0.1:8091" }, "play_audio": { diff --git a/utils/audio.py b/utils/audio.py index c7fc47f2..81865964 100644 --- a/utils/audio.py +++ b/utils/audio.py @@ -349,6 +349,7 @@ async def digital_human_video_player_api(self, audio_path=""): url = urljoin(self.config.get('digital_human_video_player', 'api_ip_port'), "/show") data = { + "type": self.config.get('digital_human_video_player', 'type'), "audio_path": os.path.abspath(audio_path), "insert_index": -1 } diff --git a/webui.py b/webui.py index 454276b4..b5969d17 100644 --- a/webui.py +++ b/webui.py @@ -1557,6 +1557,7 @@ def common_textarea_handle(content): config_data["EasyAIVtuber"]["api_ip_port"] = input_EasyAIVtuber_api_ip_port.value if config.get("webui", "show_card", "visual_body", "digital_human_video_player"): + config_data["digital_human_video_player"]["type"] = select_digital_human_video_player_type.value config_data["digital_human_video_player"]["api_ip_port"] = input_digital_human_video_player_api_ip_port.value """ @@ -3501,8 +3502,13 @@ def clear_tts_common_audio_card(file_path): if config.get("webui", "show_card", "visual_body", "digital_human_video_player"): with ui.card().style(card_css): - ui.label("digital_human_video_player") + ui.label("数字人视频播放器") with ui.row(): + select_digital_human_video_player_type = ui.select( + label='类型', + options={"easy_wav2lip": "easy_wav2lip", "sadtalker": "sadtalker", "genefaceplusplus": "GeneFacePlusPlus"}, + value=config.get("digital_human_video_player", "type") + ).style("width:150px") input_digital_human_video_player_api_ip_port = ui.input(label='API地址', value=config.get("digital_human_video_player", "api_ip_port"), placeholder='对接 数字人视频播放器 监听的ip和端口')