EasyVoice后端服务本地化

📦 EasyVoice 部署方案对比

部署方式 Windows 11 国产系统(统信UOS/麒麟) 特点
Docker 部署 ✅ 支持 ✅ 支持 最简单,一键运行,推荐
Node.js 源码部署 ✅ 支持 ✅ 支持 适合二次开发
二次开发版 ✅ 支持 ⚠️ ARM架构需特殊镜像 新增多角色配音UI

🪟 Windows 11 系统部署 EasyVoice

方法一:Docker 部署(最简单,推荐)

1. 安装 Docker Desktop
  1. 访问 Docker 官网 下载 Docker Desktop for Windows

  2. 双击安装,务必勾选 "Use WSL 2 instead of Hyper-V"(性能更好)

  3. 安装完成后重启电脑

  4. 启动 Docker Desktop,等待右下角显示 "Engine running"

2. 验证 Docker 安装

打开 命令提示符(cmd)PowerShell,执行:

bash 复制代码
docker version

如果显示版本信息,说明安装成功 。

3. 一键部署 EasyVoice

在任意目录打开 命令提示符,依次执行:

bash 复制代码
# 创建存放音频文件的目录
mkdir audio

# 运行 EasyVoice 容器
docker run -d -p 3000:3000 -v "%CD%\audio:/app/audio" --name easyvoice cosincox/easyvoice:latest

命令解析

  • -d:后台运行

  • -p 3000:3000:将容器内3000端口映射到本机3000端口

  • -v "%CD%\audio:/app/audio":将当前目录下的audio文件夹挂载到容器,用于保存生成的音频

  • --name easyvoice:容器名称

4. 验证部署

打开浏览器,访问:http://localhost:3000

如果看到 EasyVoice 的 Web 界面,恭喜你,部署成功!

5. 常用 Docker 命令
bash 复制代码
# 查看容器运行状态
docker ps

# 查看日志
docker logs easyvoice

# 停止容器
docker stop easyvoice

# 启动容器
docker start easyvoice

# 重启容器
docker restart easyvoice

方法二:Node.js 源码部署(适合开发)

如果你需要二次开发或修改源码,可以采用这种方式。

1. 安装依赖环境
  • Node.js :下载并安装 Node.js 16+

  • pnpm:打开 PowerShell 执行:

    bash

    复制代码
    npm install -g pnpm
  • FFmpeg :下载 FFmpeg 并添加到系统环境变量

2. 克隆源码并运行

bash

复制代码
# 克隆项目
git clone https://github.com/cosin2077/easyVoice.git
cd easyVoice

# 安装依赖
pnpm install

# 启动开发服务器
pnpm dev

访问 http://localhost:5173 即可使用开发版本。


🐧 国产系统部署 EasyVoice

国产系统(统信UOS、麒麟等)通常基于 Linux 内核,部署方式与 Linux 类似。以下是针对国产系统的详细步骤。

方法一:Docker 部署(适配国产系统)

1. 安装 Docker

国产系统通常使用 命令行 安装 Docker。

打开终端,执行以下命令:

bash

复制代码
# 更新软件源
sudo apt update

# 安装 Docker
sudo apt install docker.io

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker version

如果系统是 麒麟统信UOS,也可以使用官方脚本安装:

bash

复制代码
curl -fsSL https://get.docker.com | sudo sh
2. 创建音频目录并部署

bash

复制代码
# 创建存放音频的目录
mkdir -p ~/easyvoice/audio

# 运行 EasyVoice 容器
sudo docker run -d -p 3000:3000 -v ~/easyvoice/audio:/app/audio --name easyvoice cosincox/easyvoice:latest
3. 防火墙配置(如需局域网访问)

如果你希望局域网内的其他设备也能访问(比如你的Vue前端从其他电脑调用):

bash

复制代码
# 开放3000端口
sudo ufw allow 3000

# 或者直接关闭防火墙(测试环境)
sudo ufw disable
4. 访问服务
  • 本机访问http://localhost:3000

  • 局域网访问http://<你的国产系统IP>:3000(可通过 ip addrifconfig 查看IP)

方法二:ARM 架构国产设备适配

如果你是在 国产 ARM 设备 (如麒麟信创终端、鲲鹏服务器)上部署,需要注意:官方镜像 cosincox/easyvoice:latest 可能不支持 ARMv7 架构。

此时可以使用 二次开发版,该版本已适配 ARM 架构 :

bash

复制代码
# 查看系统架构
uname -m

# 如果是 armv7l,使用这个镜像
sudo docker run -d -p 3000:3000 -v ~/easyvoice/audio:/app/audio --name easyvoice tannic666/easyvoice:v1.1-armv7

# 如果是 aarch64(ARM64),使用这个镜像
sudo docker run -d -p 3000:3000 -v ~/easyvoice/audio:/app/audio --name easyvoice tannic666/easyvoice:v1.1

方法三:使用 Docker Compose(更规范)

在国产系统上,你也可以使用 docker-compose 来管理服务,这样配置更清晰。

1. 安装 Docker Compose

bash

复制代码
sudo apt install docker-compose
2. 创建配置文件

创建一个目录并新建 docker-compose.yml

bash

复制代码
mkdir ~/easyvoice && cd ~/easyvoice
nano docker-compose.yml

粘贴以下内容:

yaml

复制代码
services:
  easyvoice:
    image: cosincox/easyvoice:latest
    restart: unless-stopped
    container_name: easyvoice
    ports:
      - "3000:3000"
    environment:
      - DEBUG=true
    volumes:
      - ./audio:/app/audio
3. 启动服务

bash

复制代码
sudo docker-compose up -d

🔌 将你的 Vue 前端连接到本地 EasyVoice 服务

部署好 EasyVoice 后,修改你之前的 Vue 项目中的环境变量:

修改 .env 文件

env

复制代码
# Windows 11 本地部署
VITE_EASYVOICE_API_URL=http://localhost:3000/api/tts
VITE_EASYVOICE_WS_URL=ws://localhost:3000/ws

# 国产系统局域网部署(假设国产系统IP是 192.168.1.100)
# VITE_EASYVOICE_API_URL=http://192.168.1.100:3000/api/tts
# VITE_EASYVOICE_WS_URL=ws://192.168.1.100:3000/ws

验证连通性

在 Vue 项目中,可以通过浏览器开发者工具的 Network 标签查看 API 请求是否成功。


✅ 部署验证清单

完成部署后,请检查以下事项:

检查项 预期结果 验证方法
Docker 容器状态 运行中 docker ps 看到 easyvoice 容器
Web 界面访问 可打开页面 浏览器访问 http://localhost:3000
文本转语音 能生成音频 输入文字点击生成,能播放
音频文件保存 文件生成 检查 ~/easyvoice/audio 或 Windows 的 audio 文件夹
Vue 前端调用 能获取语音 运行你的 Vue 项目,测试 TTS 功能

📝 注意事项

  1. 端口冲突 :如果 3000 端口被占用,可以在 Docker 命令中修改映射,如 -p 3001:3000,前端也要相应修改

  2. 音频存储路径:确保挂载的目录有写入权限

  3. 国产系统防火墙:如需局域网访问,记得开放对应端口

  4. ARM 架构兼容性:国产 ARM 设备务必使用适配的镜像

相关推荐
天才熊猫君3 分钟前
配置与数据分离:一种可视化搭建的属性编辑方案
前端·javascript
林希_Rachel_傻希希13 分钟前
web性能之相关路径——AI总结
前端·javascript·面试
竹林81821 分钟前
用 wagmi v2 踩坑两天,我终于搞懂了多链钱包切换在 DeFi 前端中的正确姿势
前端·javascript
用户21366100357224 分钟前
Vue项目搜索功能与面包屑导航
前端·javascript
星栈28 分钟前
LiveView 的实时通信,爽是爽,但 PubSub 和广播也最容易把自己绕晕
前端·前端框架·elixir
用户29307509766928 分钟前
告别关键词匹配,拥抱向量语义 —— RAG 搜索从零到一
前端
独孤留白38 分钟前
从C到Rust:告别 C 的"指针 + 长度"手动模式
前端·rust
掘金安东尼1 小时前
中小厂前端候选人简历面试拆解:从 HR 面、技术面到主管面的双赢提问法
前端·面试
天平10 小时前
油猴脚本创建webworker踩坑记录
前端·javascript·typescript