数字人对话系统 Linly-Talker

Linly-Talker是一个结合了Whisper、Linly、微软语音服务和SadTalker的AI系统,通过图像上传实现人机交互。利用Gradio部署,提供可视化界面和用户交互,支持多种技术的集成和性能优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🔥🔥🔥数字人对话系统 Linly-Talker🔥🔥🔥

English 简体中文

欢迎大家star我的仓库 https://github.com/Kedreamix/Linly-Talker

2023.12 更新 📆

用户可以上传任意图片进行对话

介绍

Linly-Talker是一个将大型语言模型与视觉模型相结合的智能AI系统,创建了一种全新的人机交互方式。它集成了各种技术,例如Whisper、Linly、微软语音服务和SadTalker会说话的生成系统。该系统部署在Gradio上,允许用户通过提供图像与AI助手进行交谈。用户可以根据自己的喜好进行自由的对话或内容生成。

在这里插入图片描述

创建环境

conda create -n linly python=3.8 
conda activate linly

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

conda install ffmpeg 

pip install -r requirements_app.txt

ASR - Whisper

借鉴OpenAI的Whisper,具体使用方法参考https://github.com/openai/whisper

TTS - Edge TTS

使用微软语音服务,具体使用方法参考https://github.com/rany2/edge-tts

THG - SadTalker

说话头生成使用SadTalker,参考CVPR 2023,详情见https://sadtalker.github.io

下载SadTalker模型:

bash scripts/download_models.sh  

LLM - Linly

Linly来自深圳大学数据工程国家重点实验室,参考https://github.com/CVI-SZU/Linly

下载Linly模型:https://huggingface.co/Linly-AI/Chinese-LLaMA-2-7B-hf

git lfs install
git clone https://huggingface.co/Linly-AI/Chinese-LLaMA-2-7B-hf

或使用API:

# 命令行
curl -X POST -H "Content-Type: application/json" -d '{"question": "北京有什么好玩的地方?"}' http://url:port  

# Python
import requests

url = "http://url:port"
headers = {
  "Content-Type": "application/json"
}

data = {
  "question": "北京有什么好玩的地方?" 
}

response = requests.post(url, headers=headers, json=data)
# response_text = response.content.decode("utf-8")
answer, tag = response.json()
# print(answer)
if tag == 'success':
    response_text =  answer[0]
else:
    print("fail")
print(response_text)

优化

一些优化:

  • 使用固定的输入人脸图像,提前提取特征,避免每次读取
  • 移除不必要的库,缩短总时间
  • 只保存最终视频输出,不保存中间结果,提高性能
  • 使用OpenCV生成最终视频,比mimwrite更快

Gradio

Gradio是一个Python库,提供了一种简单的方式将机器学习模型作为交互式Web应用程序来部署。

对Linly-Talker而言,使用Gradio有两个主要目的:

  1. 可视化与演示:Gradio为模型提供一个简单的Web GUI,上传图片和文本后可以直观地看到结果。这是展示系统能力的有效方式。

  2. 用户交互:Gradio的GUI可以作为前端,允许用户与Linly-Talker进行交互对话。用户可以上传自己的图片并输入问题,实时获取回答。这提供了更自然的语音交互方式。

具体来说,我们在app.py中创建了一个Gradio的Interface,接收图片和文本输入,调用函数生成回应视频,在GUI中显示出来。这样就实现了浏览器交互而不需要编写复杂的前端。

总之,Gradio为Linly-Talker提供了可视化和用户交互的接口,是展示系统功能和让最终用户使用系统的有效途径。

启动

python app.py

在这里插入图片描述

可以任意上传图片进行对话

python app_img.py

在这里插入图片描述

参考

<think>好的,我现在需要帮助用户解决在OpenEuler 24.03 LTS SP1系统上部署Linly-Talker项目的问题,同时适配CUDA 1.28环境。首先,我得仔细分析用户的需求和提供的引用资料,确保解决方案的准确性。 首先,用户提到的OpenEuler 24.03 LTS SP1是一个较新的Linux发行版,可能使用较新的内核和库版本。而CUDA 1.28可能是指CUDA Toolkit 12.8,不过通常CUDA版本是像11.3、11.8、12.1这样的版本号,所以这里可能存在笔误。比如,用户可能是指CUDA 12.8,但需要确认是否该版本存在。目前最新的稳定版本是CUDA 12.5,因此可能需要进一步澄清。不过,假设用户确实需要CUDA 12.8或类似的版本,可能需要处理驱动和兼容性问题。 接下来,参考用户提供的引用,特别是引用[2]中的安装步骤,其中提到了安装PyTorch 1.12.1,对应CUDA 11.3。但用户现在需要适配CUDA 1.28(假设是12.8),所以需要考虑PyTorch版本是否支持该CUDA版本。例如,PyTorch 2.x可能支持CUDA 12.x。因此,可能需要调整PyTorch的安装命令,以匹配CUDA 12.8环境。 此外,OpenEuler系统可能使用dnf作为包管理器,而项目原来的安装步骤是基于Anaconda和conda的环境创建。需要确保在OpenEuler上安装必要的依赖库,比如ffmpeg、CUDA驱动、cuDNN等,并且这些库的版本与CUDA 12.8兼容。可能需要进行源码编译安装某些依赖项,特别是如果OpenEuler的官方仓库中没有预编译的包。 另一个考虑点是系统内核和驱动版本是否兼容CUDA 12.8。需要检查NVIDIA官方文档,确认OpenEuler 24.03的内核版本是否被支持,并安装相应的NVIDIA驱动。如果驱动不支持,可能需要升级内核或寻找其他解决方法。 此外,项目依赖的其他组件,如Whisper模型,可能需要特定的Python库版本,这些库在CUDA 12.8下的兼容性也需要验证。可能需要调整requirements_app.txt中的依赖版本,或手动安装某些库的兼容版本。 最后,部署过程中可能会遇到环境变量配置、权限问题、路径设置等问题,需要逐步排查。例如,设置LD_LIBRARY_PATH以包含CUDA库路径,确保conda环境中正确识别GPU等。 总结下来,步骤可能包括: 1. 确认CUDA版本的正确性,安装对应的NVIDIA驱动。 2. 创建conda环境,安装适配CUDA 12.8的PyTorch版本。 3. 安装系统依赖,如ffmpeg,可能需要源码编译。 4. 调整项目依赖的Python包版本,解决兼容性问题。 5. 处理可能出现的库路径和权限问题,确保项目运行环境正确配置。</think>### Linly-Talker在OpenEuler 24.03 LTS SP1的本地化部署方法 #### 一、环境准备 1. **系统兼容性验证** OpenEuler 24.03 LTS SP1默认使用Linux 6.x内核,需确保NVIDIA驱动版本≥535.129.03以支持CUDA 12.8[^4]。 ```bash nvidia-smi # 验证驱动版本 ``` 2. **CUDA 12.8环境配置** - 从NVIDIA官网下载CUDA 12.8安装包 - 安装完成后验证环境变量: ```bash echo $PATH | grep cuda-12.8 # 检查CUDA路径 nvcc --version # 确认CUDA编译器版本 ``` #### 二、依赖安装与适配 1. **创建Conda虚拟环境** ```bash conda create -n linly_oepnuler python=3.10 conda activate linly_oepnuler ``` 2. **PyTorch版本调整** 原项目使用CUDA 11.3对应的PyTorch 1.12.1,需替换为支持CUDA 12.8的版本: ```bash conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==0.13.0 pytorch-cuda=12.1 -c pytorch -c nvidia ``` 3. **系统级依赖编译** OpenEuler需手动编译安装部分依赖: ```bash sudo dnf install ffmpeg-devel libsndfile-devel git clone https://gitcode.com/gh_mirrors/li/Linly-Talker.git cd Linly-Talker pip install -r requirements_app.txt --no-cache-dir # 强制重新编译二进制扩展 ``` #### 三、兼容性修复 1. **CUDA算子适配** 若出现`CUDA kernel failed`错误,需修改`torch.utils.cpp_extension`加载参数: ```python # 在涉及CUDA扩展的代码中添加 torch.utils.cpp_extension.load(..., extra_cuda_cflags=["-O3", "--use_fast_math"]) ``` 2. **动态库路径配置** 在`~/.bashrc`中添加: ```bash export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH ``` #### 四、部署验证 ```bash python app.py --cuda_id 0 # 指定GPU运行 ``` 若输出`Successfully initialized CUDA context`则表示部署成功[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风信子的猫Redamancy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值