heygen服务端与客户端分离布署

项目安装

服务端

linux系统
1.仓库地址:
https://github.com/GuijiAI/HeyGem.ai

git clone https://github.com/GuijiAI/HeyGem.ai

改成自己实际情况配置
vim deploy/docker-compose.yml
    volumes:
      - d:/xxx/heygem_data/voice/data:/code/data

采用Docker方式安装,docker-compose如下:

  1. docker-compose.yml文件在/deploy目录下。
  2. /deploy目录执行docker-compose up -d如果您想使用lite版本,请执行docker-compose -f docker-compose-lite.yml up -d
  3. 耐心等待一段时间(半小时左右,速度取决于网速),下载会消耗70G左右流量,注意连WIFI

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2c86a1f0d8b guiji2025/fish-speech-ziming “/opt/nvidia/nvidia_…” 12 hours ago Up 3 hours 0.0.0.0:18180->8080/tcp, :::18180->8080/tcp heygem-tts
eec942ac4d30 guiji2025/heygem.ai “python /code/app_lo…” 12 hours ago Up 3 hours 22/tcp, 80/tcp, 0.0.0.0:8383->8383/tcp, :::8383->8383/tcp heygem-f2f
70a182ead12e guiji2025/fun-asr “sh /run.sh” 14 hours ago Up 3 hours 0.0.0.0:10095->10095/tcp, :::10095->10095/tcp heygem-asr
为启动成功

2.N卡驱动(cuda):
https://www.nvidia.cn/drivers/lookup/
自行处理

客户端

https://github.com/GuijiAI/HeyGem.ai/releases
双击HeyGem-x.x.x-setup.exe即可安装

配置

配置服务端

由于官网的开源项目是服务端及客户端同一机器,不支持分开所以需要实现

  1. 客户端机器端口转发
  2. 目录共享及映射

端口转发

目前开源编译后的不支持服务端地址配置所以只能转发处理


@echo off
title Windows IPv4/IPv6端口转发管理工具
color 0A

:menu
cls
echo ========================================
echo    Windows IPv4/IPv6端口转发管理工具
echo ========================================
echo  1. 查看所有转发规则
echo  2. 添加IPv4转发规则
echo  3. 添加IPv6转发规则
echo  4. 添加IPv4转IPv6规则
echo  5. 添加IPv6转IPv4规则
echo  6. 删除转发规则
echo  7. 检查防火墙状态
echo  8. 重置所有规则
echo  9. 退出程序
echo ========================================
choice /C 123456789 /N /M "请选择操作(1-9):"

if errorlevel 9 goto :eof
if errorlevel 8 goto resetRules
if errorlevel 7 goto checkFirewall
if errorlevel 6 goto deleteRule
if errorlevel 5 goto addv6tov4
if errorlevel 4 goto addv4tov6
if errorlevel 3 goto addv6tov6
if errorlevel 2 goto addv4tov4
if errorlevel 1 goto showRules

:showRules
cls
echo 当前所有转发规则:
echo ========================================
netsh interface portproxy show all
echo ========================================
pause
goto menu

:addv4tov4
cls
echo 添加IPv4转发规则
call :addRule v4tov4
goto menu

:addv6tov6
cls
echo 添加IPv6转发规则
call :addRule v6tov6
goto menu

:addv4tov6
cls
echo 添加IPv4转IPv6规则
call :addRule v4tov6
goto menu

:addv6tov4
cls
echo 添加IPv6转IPv4规则
call :addRule v6tov4
goto menu

:addRule
echo ========================================
set /p listenport="输入本地监听端口: "
set /p listenaddr="输入本地监听地址(IPv4默认0.0.0.0,IPv6默认[::]): "
if "%listenaddr%"=="" (
    if "%1"=="v4tov4" set listenaddr=0.0.0.0
    if "%1"=="v6tov6" set listenaddr=[::]
    if "%1"=="v4tov6" set listenaddr=0.0.0.0
    if "%1"=="v6tov4" set listenaddr=[::]
)
set /p connectport="输入目标端口: "
set /p connectaddr="输入目标地址: "

netsh interface portproxy add %1 listenport=%listenport% listenaddress=%listenaddr% connectport=%connectport% connectaddress=%connectaddr% protocol=tcp

if errorlevel 1 (
    echo 添加规则失败!
) else (
    echo 添加规则成功!
)
pause
goto :eof

:deleteRule
cls
echo 删除转发规则
echo ========================================
echo 当前转发规则:
netsh interface portproxy show all
echo ========================================
set /p listenport="输入要删除的本地监听端口: "
set /p listenaddr="输入要删除的本地监听地址: "

netsh interface portproxy delete v4tov4 listenport=%listenport% listenaddress=%listenaddr%
netsh interface portproxy delete v6tov6 listenport=%listenport% listenaddress=%listenaddr%
netsh interface portproxy delete v4tov6 listenport=%listenport% listenaddress=%listenaddr%
netsh interface portproxy delete v6tov4 listenport=%listenport% listenaddress=%listenaddr%

echo 删除操作完成!
pause
goto menu

:checkFirewall
cls
echo 检查防火墙状态
echo ========================================
netsh advfirewall show allprofiles state
echo ========================================
choice /C YN /N /M "是否需要关闭防火墙?(Y/N)"
if errorlevel 2 goto menu
if errorlevel 1 (
    netsh advfirewall set allprofiles state off
    echo 防火墙已关闭!
)
pause
goto menu

:resetRules
cls
echo 正在重置所有转发规则...
echo ========================================
netsh interface portproxy reset
echo 所有转发规则已重置!
pause
goto menu

使用管理员权限运行批处理,并以ipv6将18180、8383、10095转发到服务端
转发结果
在这里插入图片描述

========================================

侦听 ipv4: 连接到 ipv4:

地址 端口 地址 端口


0.0.0.0 18180 192.168.9.45 18180
0.0.0.0 10095 192.168.9.45 10095
0.0.0.0 8383 192.168.9.45 8383

侦听 ipv6: 连接到 ipv6:

地址 端口 地址 端口


0.0.0.0 18180 192.168.9.45 18180
0.0.0.0 10095 192.168.9.45 10095
0.0.0.0 8383 192.168.9.45 8383

========================================

在客户端机器直接访问http://127.0.0.1:18180/显示接口文档即为成功

目录共享并映射

分析得知客户端的视频并没有上传到服务端,而是与服务端共用的同一目录,并且音频剥离也是在客户端完成的。
由于服务端是linux,客户端是win所以选用共享软件为samba

服务端

# 1. 安装Samba Debian/Ubuntu
sudo apt update && sudo apt install samba

# 2. 创建共享目录
sudo mkdir -p /xxx共享目录
sudo chmod 777 /xxx共享目录  # 根据需求调整权限
sudo chown -R nobody:nogroup /xxx共享目录 #

# 3. 编辑Samba配置文件
# 打开配置文件 /etc/samba/smb.conf,在末尾添加以下内容
[shared]
   path = /xxx共享目录
   browsable = yes
   read only = no
   # 需要用户认证(设为yes允许匿名访问)
   guest ok = yes 
   # valid users = your_username  # 指定可访问的用户

# 4. 重启Samba服务
sudo systemctl restart smbd nmbd  # Debian/Ubuntu

# 5. 查看配置生效状态
sudo testparm

# 6. 不成功查看端口是否被占用
sudo netstat -tulpn | grep ':13[7-9]\|:445'

客户端

直接在运行中访问//服务端ip/,能打开且看到共享目录说明共享成功,如有问题自行AI吧

命令说明(cmd以管理员运行):
C:\WINDOWS\system32>mklink
创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target

    /D      创建目录符号链接。默认为文件
            符号链接。
    /H      创建硬链接而非符号链接。
    /J      创建目录联接。
    Link    指定新的符号链接名称。
    Target  指定新链接引用的路径
            (相对或绝对)。

创建目录映射
mklink /D d:\heygem_data \192.168.9.45\shared
创建成功提示:
为 d:\heygem_data <<===>> \192.168.9.45\shared 创建的符号链接
注意:不能使用快捷方式创建
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值