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/ 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_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
docker exec -it easyvoice sh docker exec -it easyvoice bash
docker inspect easyvoice docker stats easyvoice
docker logs easyvoice docker logs -f easyvoice docker logs --tail 100 easyvoice 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 提出。
祝你创作愉快,声音动人!🎉
Docker 部署 EasyVoice 文字转语音服务 🎤