前言
本文主要介绍如何在fnOS飞牛云NAS使用Docker本地部署一款非常好用的开源TTS文本转语音工具EasyVoice,并结合cpolar内网穿透工具轻松实现跨网络环境远程使用,无需公网IP,也不用准备云服务器那么麻烦。
EasyVoice 是一款开源的智能文本转语音工具,作为文本、小说智能转语音解决方案,旨在帮助用户轻松将文本内容转换为高质量的语音输出。支持一键生成语音和字幕,完全免费,无时长、无字数限制,支持将 10 万字以上的小说一键转为有声书!流式传输,多长的文本都能立刻播放。无论你是想听小说、为创作配音,还是打造个性化音频,使用EasyVoice都非常合适。
EasyVoice提供了在线使用平台,大家可以直接访问EasyVoice在线平台进行使用,随时开始文本转语音的体验,但是有字符数量限制,有一定局限性。而且如果考虑到隐私问题,我们完全可以在本地进行部署,更方便的进行使用。它支持Docker和Node.js一键部署,搭建过程非常简单,下面就来详细进行操作演示。
1. 环境准备
本例中在Windows系统使用VMware Workstation安装的fnOS虚拟机,系统版本为V0.8.41。如果不知道如何在虚拟机中安装,可以参考这篇文章:VMware中安装飞牛云(fnOS) NAS系统 如果您想要在x86架构的物理机中安装,可以访问飞牛私有云 fnOS官网下载镜像文件然后使用U盘写入镜像后,进入bios设置U盘启动后像装Windows系统一样安装即可。
EasyVoice项目地址:https://github.com/cosin2077/easyVoice
启动fnOS系统后,能看到Web UI管理界面的地址:http://192.168.184.130:5666 在浏览器中打开:
2. Docker部署与运行
首先,点击Docker-Compose-新增项目:
在弹出的创建项目窗口中,填写项目名称:easyvoice(可自定义):
点击路径后,在docke文件夹内新建一个名为EasyVoice的项目路径,点击确定:
然后点击创建 docke-compose.yml ,将下面的代码粘贴到输入框:
services:
easyvoice:
image: cosincox/easyvoice:latest
restart: unless-stopped
container_name: easyvoice
ports:
- "9549:3000"
environment:
- DEBUG=true
- OPENAI_BASE_URL=https://openrouter.ai/api/v1/
volumes:
- ./audio:/app/audio
勾选创建项目后立即启动,点击确定,自动构建容器:
等待构建完成后,在容器中,能看到easyvoice已经正常启动了:
在浏览器中访问fnOS飞牛nas主机地址加端口号9549: http://192.168.184.130:9549 就能看到EasyVoice的Web UI管理界面了:
3. 简单使用测试
点击立即体验:
在跳转的文本转语音页面,我们可以在左侧手动输入文本或上传txt格式的文本文件来添加需要转换的内容:
而在右侧是对语音进行设置的选项,包括语言、性别、配音角色、语速、音量、音调等多种设置:
输入文字后,点击生成语音:
速度非常快,资源占用也很少,不需要什么性能就可以轻松生成语音:
生成的音频可以直接播放,也可以下载到本地:
再测试一下拖拽文件或点击上传一个txt格式小说试试:
随着需要转换成语音的文字字数增多,生成的时间也会增加:
等待转换结束后,可以看到,一个多小时的文本量也能正常转换成音频:
除了预设语音功能,EasyVoice目前还增加了实验性功能的AI推荐,可以通过AI将需要转换为语音的文字智能推荐不同的角色语音。如果想体验这个功能,我们可以在上边通过docker-compose创建容器时,在代码中的环境变量里添加需要调用的本地大模型地址(本例中的地址为ollama部署的主机IP+端口号)与要使用的模型名称即可:
实际测试后确实能分角色朗读,但并不会新增角色语音,也是调用预设语音中的角色进行转换。而且根据不同的模型能力,实际得到的结果也不相同,支持函数调用的模型似乎效果更好一些,还是可以期待后续的优化的。
4. 安装内网穿透
我们现在已经实现了在本地fnOS飞牛云NAS中部署了EasyVoice进行文本转语音,并能在在同一局域网内向其他人分享这个工具的链接在浏览器中进行体验了。但如果你想自己或是异地好友和同事也能远程使用你在本地飞牛云NAS中部署的EasyVoice服务该怎么办呢?很简单,只要安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,节约成本,提高效率,接下来介绍一下如何安装cpolar内网穿透。
cpolar官网地址: https://www.cpolar.com
4.1 开启ssh连接安装cpolar
首先打开飞牛云NAS设置界面,开启ssh 连接,端口默认为22即可,开启后,我们就可以ssh 连接飞牛云NAS执行命令:
然后我们通过输入飞牛云NAS的IP地址ssh远程连接进去,因为fnOS是基于Linux 内核开发的,所以我们可以按照cpolar的Linux安装方法进行安装:
连接后执行下面cpolar Linux 安装命令:
sudo curl https://get.cpolar.sh | sh
再次输入飞牛云nas的密码确认后即可自动安装
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入飞牛云主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用官网注册的账号登录,登录后即可看到配置界面,接下来在web界面配置即可:
4.2 创建公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了: easyvoice 注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:9549
- 域名类型:随机域名
- 地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,使用上面的任意一个公网地址在浏览器中访问就可以实现随时随地远程使用你在本地部署的EasyVoice来文本转语音了!
使用cpolar生成的公网地址,无需自己准备云服务器,无公网IP也能轻松搞定跨网络环境远程访问本地服务!
小结
为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
如果有长期使用本地飞牛云NAS中部署的EasyVoice文本转语音工具,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。
5. 配置固定公网地址
接下来演示如何为EasyVoice文本转语音服务配置固定的HTTP公网地址,该地址不会变化,无需每天重复修改服务器地址。
配置固定http端口地址需要将cpolar升级到专业版套餐或以上。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称:
保留成功后复制保留成功的二级子域名的名称: myeasyv
,大家可以设置自己喜欢的名称。
返回Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道:easyvoice,点击右侧的编辑:
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名:
myeasyv
点击更新
(注意,点击一次更新即可,不需要重复提交)
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:
使用上面的任意一个固定的二级子域名公网地址在浏览器中访问,可以看到成功打开EasyVoice文本转语音的Web UI管理界面,现在开始就不用每天都更换随机公网地址来远程访问本地nas中部署的服务了。
同样可以使用AI推荐功能:
总结
在现代数字时代,随着智能语音技术的快速发展,文本转语音(TTS)工具在各类应用场景中发挥着重要作用。本文分享了如何在fnOS飞牛NAS中本地部署EasyVoice文本转语音工具,并结合cpolar内网穿透工具配置固定不变的二级子域名公网地址,实现随时随地远程访问本地部署服务。
通过本教程的完整部署,您已经成功构建了一个可远程访问的本地语音合成服务。该方案不仅解决了传统内网服务的访问限制问题,还通过容器化部署实现了服务的快速扩展和维护。在实际应用中,建议根据具体需求调整性能参数,例如增加GPU加速支持以提升语音合成速度。如在部署过程中遇到任何技术问题,欢迎在评论区留言交流,或参考官方文档获取更多技术细节。感谢您的观看,有任何问题欢迎留言交流。