EasyVoice与cpolar:构建私域有声平台的本地化方案

文章目录

前言

文本转语音面临数据安全风险、访问受限和成本高昂的挑战。EasyVoice开源工具与cpolar内网穿透服务的组合,通过"本地部署+加密穿透"架构,提供理想解决方案。用户可搭建私有化TTS平台,支持多语言发音和流式转换,配合cpolar实现全球无障碍访问,重新定义有声内容创作的技术边界。

本地部署的核心优势在数据安全与定制化方面突出。EasyVoice支持离线运行,所有文本和音频文件存储在用户设备,避免第三方平台的数据滥用;多语言引擎和自定义语音模型满足个性化需求。配合cpolar后,远程访问能力被扩展:作者在家提交文本,通过加密链接发送至本地服务器,处理完成后音频自动同步至私域平台,全程数据不离开私有环境。

多场景适配满足不同用户需求。自媒体人远程生成播客内容,实时调整语速和发音人;教育机构制作有声教材,通过cpolar向学生开放访问;企业将文档转换为语音培训材料,支持员工按需收听。

本文主要介绍如何在fnOS飞牛云NAS使用Docker本地部署一款非常好用的开源TTS文本转语音工具EasyVoice,并结合cpolar内网穿透工具轻松实现跨网络环境远程使用,无需公网IP,也不用准备云服务器那么麻烦。

搭建过程非常简单,下面就来详细进行操作演示。

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 ,将下面的代码粘贴到输入框:

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 安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

再次输入飞牛云nas的密码确认后即可自动安装

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

shell 复制代码
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加速支持以提升语音合成速度。如在部署过程中遇到任何技术问题,欢迎在评论区留言交流,或参考官方文档获取更多技术细节。感谢您的观看,有任何问题欢迎留言交流。

结尾:EasyVoice与cpolar内网穿透服务的技术融合,不仅是文本转语音工具的创新,更是有声内容创作范式的革新。它让用户在享受AI语音技术便利的同时,不必牺牲数据安全与内容主权,实现"本地处理的安心"与"远程访问的自由"双重收益。无论是个人创作者、教育机构还是企业组织,这种组合都提供了高效、安全、经济的有声平台解决方案,让每一段文字都能以自然的声音传递价值。🎧🔒
相关推荐
pengzhuofan13 小时前
第10章 Maven
java·maven
百锦再14 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
刘一说14 小时前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
壹佰大多14 小时前
【spring如何扫描一个路径下被注解修饰的类】
java·后端·spring
百锦再14 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
DokiDoki之父15 小时前
Spring—注解开发
java·后端·spring
CodeCraft Studio15 小时前
【能源与流程工业案例】KBC借助TeeChart 打造工业级数据可视化平台
java·信息可视化·.net·能源·teechart·工业可视化·工业图表
摇滚侠15 小时前
Spring Boot 3零基础教程,WEB 开发 默认页签图标 Favicon 笔记29
java·spring boot·笔记
YSRM15 小时前
Leetcode+Java+图论+最小生成树&拓扑排序
java·leetcode·图论