Docker 部署 EasyVoice 文字转语音服务 🎤
📋 目录导航
🎯 项目简介
EasyVoice
是一款开源的智能文本转语音(TTS)工具,作为文本、小说智能转语音解决方案,旨在帮助用户轻松将文本内容转换为高质量的语音输出。它提供简单易用的 RESTful API 接口,支持多种语音风格和语言选项,是内容创作、有声读物制作、语音提示等场景的理想选择。🔊✨
✨ 核心特性
特性类别 |
功能描述 |
优势 |
🚀 智能语音生成 |
支持多维度参数控制,包括语速、音高、音量三级调节 |
精细控制语音输出效果,满足不同场景需求 |
🎭 角色演绎引擎 |
内置多种预置声线,支持同一场景下多角色同步配音 |
实现拟真对话合成,提升内容表现力 |
⚡ 实时流式处理 |
采用分块传输技术,实现音频实时生成 |
减少等待时间,提升用户体验 |
🌐 多引擎支持 |
可接入 Microsoft Azure TTS、OpenAI、Edge-TTS 等服务 |
灵活选择合成引擎,保证服务稳定性 |
🔒 安全可靠 |
本地化部署,所有数据保存在本地 |
确保隐私安全,数据自主可控 |
🛠 易用性 |
提供 Web 管理界面和 RESTful API |
开箱即用,易于集成到各种应用 |
📊 批量处理 |
支持批量文本转语音处理 |
提高大批量内容处理效率 |
💾 文件管理 |
自动保存和管理生成的语音文件 |
方便查找和使用生成的内容 |
🐳 一、Docker 部署 EasyVoice
1. 创建部署目录和 docker-compose.yml
文件 📁
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
mkdir -p /mnt/mydisk/home/easyvoice && cd $_ && \
cat > docker-compose.yml <<'EOF'
services:
easyvoice:
image: cosincox/easyvoice:latest
container_name: easyvoice
ports:
- "9549:3000" # 🌐 主机端口:容器端口
volumes:
- ./audio:/app/audio # 💾 语音文件存储目录
environment:
- TZ=Asia/Shanghai # ⏰ 时区设置
- DEBUG=true # 🐛 调试模式
- OPENAI_BASE_URL=https://openrouter.ai/api/v1/ # 🤖 OpenAI API地址(可选)
restart: unless-stopped # 🔄 自动重启
EOF
|
2. 拉取镜像并启动容器 🚀
🚀 二、使用 EasyVoice
1. 访问 Web 界面 💻
- 本地访问:
http://localhost:9549
- 域名访问:
https://easyvoice.example.com
(配置反向代理后)
2. 基本使用方式 🖱️
- 打开浏览器访问上述地址
- 点击"立即体验"进入操作界面
- 在左侧输入文本或上传 TXT 文件
- 在右侧设置语音参数(语言、性别、配音角色、语速、音量、音调等)
- 点击"生成语音"开始转换
- 播放或下载生成的音频文件
3. API 使用示例 🚀
基本文字转语音请求
1
2
3
4
5
6
7
8
9
|
curl -X POST "http://localhost:9549/api/tts/generate" \
-H "Content-Type: application/json" \
-d '{
"text": "你好,欢迎使用EasyVoice文字转语音服务",
"voice": "zh-CN-XiaoxiaoNeural",
"speed": 1.0,
"pitch": 0,
"volume": 1.0
}'
|
多角色配音请求
1
2
3
4
5
6
7
|
curl -X POST "http://localhost:9549/api/tts/generate" \
-H "Content-Type: application/json" \
-d '{
"text": "[角色1: 徐凤年] 寒风如刀,割裂着崖壁上的残雪。\n[角色2: 凌雪儿] 一阵轻盈的脚步声打破了寂静。",
"speed": 1.0,
"pitch": 0
}'
|
4. 查看生成的语音文件 📂
所有生成的语音文件将保存在本地的 ./audio
目录中:
1
2
|
# 查看生成的语音文件
ls -la /mnt/mydisk/home/easyvoice/audio/
|
🌐 三、Nginx 反向代理配置
访问地址示例:
https://easyvoice.example.com
1. 创建 Nginx 配置文件 🔧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
mkdir -p /etc/nginx/conf.d && \
cat > /etc/nginx/conf.d/easyvoice.conf <<'EOF'
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name easyvoice.example.com; # 🌐 请替换为您的实际域名
# SSL 证书配置
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
# 安全头部
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
# 文件上传大小限制
client_max_body_size 10M;
location / {
proxy_pass http://localhost:9549;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_buffering on;
proxy_http_version 1.1;
# 超时设置(语音生成可能需要较长时间)
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
# 错误页面处理
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF
|
2. 测试并重载 Nginx 🔄
1
|
sudo nginx -t && sudo systemctl reload nginx
|
🔧 四、容器维护命令
1. Docker Compose 命令 🐳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# 进入项目目录
cd /mnt/mydisk/home/easyvoice
# 停止并删除容器
docker-compose down
# 拉取最新镜像
docker-compose pull
# 启动容器
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看服务日志
docker-compose logs
# 跟踪服务日志
docker-compose logs -f
# 完整升级流程
docker-compose down && \
docker-compose pull && \
docker-compose up -d && \
docker image prune -f
|
2. Docker 容器命令 📦
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# 查看所有容器名称
docker ps -a --format "{{.Names}}"
# 查看运行中容器
docker ps
# 停止/启动/重启容器
docker stop easyvoice # 停止容器
docker start easyvoice # 启动容器
docker restart easyvoice # 重启容器
# 删除容器
docker rm easyvoice # 删除已停止容器
docker rm -f easyvoice # 强制删除运行中容器
# 进入容器Shell
docker exec -it easyvoice sh # 使用sh进入容器
docker exec -it easyvoice bash # 使用bash进入容器
# 查看容器详情和资源使用
docker inspect easyvoice # 查看详细配置
docker stats easyvoice # 实时资源监控
## 容器日志管理
docker logs easyvoice # 查看日志
docker logs -f easyvoice # 实时跟踪日志
docker logs --tail 100 easyvoice # 查看最后100行
docker logs -t easyvoice # 带时间戳的日志
|
3. Docker 镜像管理 📀
1
2
3
4
|
docker images # 列出所有镜像
docker rmi <image_name:tag> # 删除指定镜像
docker image prune -f # 清理悬空镜像
docker image prune -a -f # 清理所有未使用镜像
|
🌟 启航语音,创作无限
通过本文档,你已经成功使用 Docker 部署了 EasyVoice 文字转语音服务,并借助 Nginx 反向代理实现了安全便捷的远程访问。现在,你可以:
🎙️ 智能配音 享受高质量的文字转语音体验,为内容赋予生动的声音表达
🎭 多角色演绎 实现拟真对话合成,让故事和内容更加生动有趣
⚡ 高效创作 批量处理文本内容,大幅提升音频内容制作效率
语音之路,是一场与声音共鸣的艺术创作。愿 EasyVoice 成为你可靠的语音助手,陪伴你在每一次内容创作和语音表达的精彩时刻。
从现在开始,文字生声,创意无限——构建你丰富多彩的音频世界吧!🔊
📌 持续迭代:建议关注
EasyVoice 官方更新
,及时获取新功能与优化。
🐛 反馈与互助:使用中如有疑问或建议,可前往
GitHub Issues
提出。
祝你创作愉快,声音动人!🎉