heygem ai数字人本地部署(服务端linux+客户端windows)

前置条件说明

官网推荐服务端和客户端都在windows进行部署,本次把服务端部署到linux,客户端在windows环境。需要做一些改造。

部署架构图

image-20250319125219461.png

由于官方采用windows部署时,相关视频和音频的存储是客户端和服务端一起共享的,要解决存储一致的问题就需要通过NFS文件共享实现数据同步和一致性。

linux部署服务端

networks:
  ai_network:
    driver: bridge

services:
  heygem-tts:
    image: guiji2025/fish-speech-ziming
    container_name: heygem-tts
    restart: always
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=0
      - NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility,video,display
    ports:
      - '18180:8080'
    volumes:
      - ./heygem_data/heygem_data/voice/data:/code/data   #./heygem_data/heygem_data/ 需要作为nfs的共享目录
    command: /bin/bash -c "/opt/conda/envs/python310/bin/python3 tools/api_server.py --listen 0.0.0.0:8080"
    networks:
      - ai_network
  heygem-asr:
    image: guiji2025/fun-asr
    container_name: heygem-asr
    restart: always
    runtime: nvidia
    privileged: true
    working_dir: /workspace/FunASR/runtime
    ports:
      - '10095:10095'
    command: sh /run.sh
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    networks:
      - ai_network
  heygem-f2f:
    image: guiji2025/heygem.ai
    container_name: heygem-f2f
    restart: always
    runtime: nvidia
    privileged: true
    volumes:
      - ./heygem_data/heygem_data/face2face:/code/data
    environment:
      - PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    shm_size: '8g'
    ports:
      - '8383:8383'
    command: python /code/app_local.py
    networks:
      - ai_network

linux 配置NFS

软件安装省略,自行搜索

(base) [root@docker-243 HeyGem]# cat /etc/exports
/appdata/tengyun/HeyGem/heygem_data  *(rw,sync)

windows 配置NFS挂在

image-20250319130219017.png

映射网络驱动器

image-20250319130353672.png

客户端部署

克隆https://github.com/GuijiAI/HeyGem.ai.git 代码

  • 修改配置文件src\main\config\config.js
export const serviceUrl = {
  face2face: isDev ? 'http://192.168.101.243:8383/easy' : 'http://192.168.101.243:8383/easy',
  tts: isDev ? 'http://192.168.101.243:18180' : 'http://192.168.101.243:18180'
}

192.168.101.243 为linux服务端的ip地址

  • 修改音视频存储的路径为NFS挂在的客户端
export const assetPath = {
  model: path.join('F:','heygem_data', 'face2face', 'temp'), // 模特视频
  ttsProduct: path.join('F:','heygem_data', 'face2face', 'temp'), // TTS 产物
  ttsRoot: path.join('F:','heygem_data', 'voice', 'data'), // TTS服务根目录
  ttsTrain: path.join('F:','heygem_data', 'voice', 'data','origin_audio') // TTS 训练产物
}

F:是网络驱动器的路径,根据自己设置的进行配置

  • 重新打包编译客户端

npm run build:win

运行效果

image-20250319130623635.png
image-20250319130639757.png
image-20250319130713303.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容