Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 270|回复: 2

HeyGen的平替HeyGem

[复制链接]

283

主题

414

帖子

2664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2664
发表于 2025-4-21 19:15:33 | 显示全部楼层 |阅读模式
先用virtualBox装的Docker,安装好之后,需要调整Docker内部的问题,(见issue 53),就没有调整,换wsl2 安装了(见后详细部署方法)。
在装好virtualBox之后,发现一个问题,
disk.vmdk只有19G大小,空间不够。
发现这个盘挂载在/dev/sda 上,/dev/sda1/ 上挂载了lib/docker (通过df -h查出了)
下面是扩充该盘空间的办法:
  1. .\vboxmanager.exe "E:\centos\centos.vmdk" "E:\centos\centos-python.vdi" -format VDI
复制代码

然后给VDI扩容:
  1. C:\Program Files\Oracle\VirtualBox>vboxmanage modifyhd "E:\centos\centos-python.vdi" --resize  51200
复制代码

注意单位是MB。

然后在vbox管理器中将硬盘换做这个新硬盘即可。(当然这只是理论上的容量,操作系统,比如linux,还是需要扩容,参考resize2fs等方法,本论坛也介绍了)。
如果tts出了问题,看日志:
  1. docker logs heygem-tts
复制代码
如果网络端口出了问题,看端口
  1. netstat -aon | findstr 18180

  2. netstat -an | grep 18180
复制代码
第一个是win的,第二个是linux的。



下面介绍在win10上面安装HeyGem的过程:


全版  HeyGem.ai 安装步骤:


1、安装ubuntu 220401 :
    打开Windows应用商店,输入wsl 2,在出现的Ubuntu列表里选择 Ubuntu 22.04.01, 安装。
2、安装terminal:
    同样是应用商店,输入terminal, 安装terminal终端,为的是好操作Ubuntu。
3、打开ubuntu:
    在terminal中打开下拉箭头,选择新建的ubuntu,第一次启动时会问用户名和密码,输入用户名和密码。
4、使用git clone  ssh://github.com/GuijiAI/HeyGem.ai.git

5、 在ubuntu中安装docker: 参考Ubuntu | Docker Docs
  1. # Add Docker's official GPG key:
  2. sudo apt-get update
  3. sudo apt-get install ca-certificates curl
  4. sudo install -m 0755 -d /etc/apt/keyrings
  5. sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  6. sudo chmod a+r /etc/apt/keyrings/docker.asc

  7. # Add the repository to Apt sources:
  8. echo \
  9.   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  10.   $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  11.   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  12. sudo apt-get update
复制代码
下面安装docker:
  1. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
复制代码
安好了没有:
  1. docker --version
复制代码

6、安装显卡驱动:https://www.nvidia.cn/drivers/lookup/
安装好后使用 nvidia-smi 验证。

7、安装NVIDIA Container Toolkit:
  1. curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  2.   && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  3.     sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  4.     sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
复制代码
下面允许apt安装试验性的包(可选):
  1. sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
复制代码
接下来,更新apt列表:
sudo apt-get update
然后,安装:
  1. sudo apt-get install -y nvidia-container-toolkit
复制代码
接下来安装(改写daemon.json)docker runtime:
  1.   sudo nvidia-ctk runtime configure --runtime=docker

  2. sudo systemctl restart docker
复制代码


安装好了之后验证:
  1. sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
复制代码
看到nvidia-smi的表格就算装好了。(注意,/etc/docker/daemon.json现在如下:)
  1. {
  2.     "registry-mirrors": [
  3.         "https://hub.littlediary.cn",
  4.         "https://docker.kejilion.pro",
  5.         "https://docker.1panelproxy.com"
  6.     ],
  7.     "runtimes": {
  8.         "nvidia": {
  9.             "args": [],
  10.             "path": "nvidia-container-runtime"
  11.         }
  12.     }
  13. }
复制代码
8、拉取服务端:先把上面daemon.json的上半部分写好,这个是用于拉取的时候使用国内的镜像的。见:教程 | 2025国内可用Docker镜像源配置指南(文末命令一键执行)_docker 国内镜像源-CSDN博客
下面安装 docker-compose:
  1. sudo apt install docker-compose
复制代码
然后下载源码:
  1. sudo git clone https://github.com/GuijiAI/HeyGem.ai.git
复制代码
然后进入HeyGem.ai的deploy目录,修改 docker-compose-linux.yml 为:
  1. networks:
  2.   ai_network:
  3.     driver: bridge

  4. services:
  5.   heygem-tts:
  6.     image: guiji2025/fish-speech-ziming
  7.     container_name: heygem-tts
  8.     restart: always
  9.     runtime: nvidia
  10.     environment:
  11.       - NVIDIA_VISIBLE_DEVICES=0
  12.       - NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility,video,display
  13.     ports:
  14.       - '18180:8080'
  15.     volumes:
  16.       - ~/heygem_data/voice/data:/code/data
  17.     command: /bin/bash -c "/opt/conda/envs/python310/bin/python3 tools/api_server.py --listen 0.0.0.0:8080"
  18.     networks:
  19.       - ai_network
  20.   heygem-asr:
  21.     image: guiji2025/fun-asr
  22.     container_name: heygem-asr
  23.     restart: always
  24.     runtime: nvidia
  25.     privileged: true
  26.     working_dir: /workspace/FunASR/runtime
  27.     ports:
  28.       - '10095:10095'
  29.     command: sh /run.sh
  30.     deploy:
  31.       resources:
  32.         reservations:
  33.           devices:
  34.             - driver: nvidia
  35.               count: all
  36.               capabilities: [gpu]
  37.     networks:
  38.       - ai_network
  39.   heygem-gen-video:
  40.     image: guiji2025/heygem.ai
  41.     container_name: heygem-gen-video
  42.     restart: always
  43.     runtime: nvidia
  44.     privileged: true
  45.     volumes:
  46.       - ~/heygem_data/face2face:/code/data
  47.     environment:
  48.       - PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
  49.     deploy:
  50.       resources:
  51.         reservations:
  52.           devices:
  53.             - driver: nvidia
  54.               count: all
  55.               capabilities: [gpu]
  56.     shm_size: '8g'
  57.     ports:
  58.       - '8383:8383'
  59.     command: python /code/app_local.py
  60.     networks:
  61.       - ai_network
复制代码
再之后,确保当前目录在deploy, 拉取:
  1. docker-compose -f docker-compose-linux.yml up -d
复制代码
如果内存比较小,无法同时拉取,就一项一项取得:
  1. sudo docker pull guiji2025/fish-speech-ziming:latest
  2. sudo docker pull guiji2025/fun-asr:latest
  3. sudo docker pull guiji2025/heygem.ai:latest
复制代码
然后再运行前一个命令。

OK!

下面是答疑时间。
1、我运行客户端,创建新角色报“Socket hang up.“
这个很可能是ubuntu 的 iptables 设置问题,见本论坛:iptables 允许转发 - 网络管理 - Discuz! BBS - Powered by Discuz!
利用里面的命令,放开所有的转发的drop或其他的阻滞即可。注意实在不行还可以关闭win10自带防火墙。
2、报SQL3 不支持保存,这个应该是内存过小或者宿主机存储audio的目录没有权限,见:TypeError: SQLite3 can only bind numbers, strings, bigints, buffers,and null · Issue #387 · GuijiAI/HeyGem.ai

3、sudo docker logs heygem-asr  :  里面显示没有安装 ffmpeg,用exec大法进行安装  sudo docker exec -it  ,进入交互界面后 sudo apt update  & sudo apt install ffmpeg  即可。


























回复

使用道具 举报

283

主题

414

帖子

2664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2664
 楼主| 发表于 2025-5-11 10:38:17 | 显示全部楼层
设置wsl2 参考这个:https://blog.csdn.net/xiaouncle/article/details/136910057
  1. # 更新 wsl
  2. wsl --update
  3. ## 将 wsl 版本设置为 wsl2
  4. wsl --set-default-version 2
复制代码

添加 wsl2 的内存,这样 Ubuntu 也可以增加内存了(ref: Windows环境下docker desktop修改最大内存 - Hello World)win + r,调出运行,输入“%UserProfile%”,进入用户文件夹

在用户文件夹下创建一个新的文件,改名为“.wslconfig”

打开文件,修改内容为:

  1. [wsl2]
  2. memory=30GB
  3. processors=4
  4. swap=0
  5. localhostForwarding=true
复制代码
参数说明:

memory: 表示可以使用的最大内存;
processors: 使用的核心数量,默认和你的 Windows 系统使用的核心数一样;
swap: 表示可以使用的swap大小,这里设置为不使用swap分区;
localhostForwarding: 默认值为 true。如果 WSL 2 VM 中绑定到通配符或 localhost 的端口应该可以通过 localhost:port 从主机连接


然后  wsl --shutdown
再启动ubuntu , 完成。
回复

使用道具 举报

283

主题

414

帖子

2664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2664
 楼主| 发表于 2025-5-11 16:55:21 | 显示全部楼层
compose 命令:
  1. sudo docker-compose ps
  2. sudo docker-compose -f docker-compose-linux.yml stop
  3. sudo docker-compose -f docker-compose-linux.yml start
  4. sudo docker-compose -f docker-compose-linux.yml down
  5. sudo docker-compose -f docker-compose-linux.yml up -d
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-6-7 10:18 , Processed in 0.018352 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表