文章目錄
- 前言
- 1. 環境準備
- 2. Docker部署與運行
- 3. 簡單使用測試
- 4. 安裝內網穿透
- 4.1 開啟ssh連接安裝cpolar
- 4.2 創建公網地址
- 5. 配置固定公網地址
- 總結
前言
本文主要介紹如何在fnOS飛牛云NAS使用Docker本地部署一款非常好用的開源TTS文本轉語音工具EasyVoice,并結合cpolar內網穿透工具輕松實現跨網絡環境遠程使用,無需公網IP,也不用準備云服務器那么麻煩。
EasyVoice 是一款開源的智能文本轉語音工具,作為文本、小說智能轉語音解決方案,可以將文本內容轉換為高質量的語音輸出。支持一鍵生成語音和字幕,無時長、無字數限制,支持將 10 萬字以上的小說一鍵轉為有聲書!流式傳輸,多長的文本都能立刻播放。適用于聽小說、為創作配音,打造個性化音頻。
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:latestrestart: unless-stoppedcontainer_name: easyvoiceports:- "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加速支持以提升語音合成速度。如在部署過程中遇到任何技術問題,歡迎在評論區留言交流,或參考官方文檔獲取更多技術細節。感謝您的觀看,有任何問題歡迎留言交流。