【語音合成技術 - GPT-SoVITS 疑難雜症篇】為什麼api_v2.py在Docker環境底下正常啟動但卻無法連線

更新 發佈閱讀 5 分鐘

我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」有分享如何使用Docker來架設GPT-SoVITS的TTS API服務, 但過程中我們卻遇到了一些困難, 相信有深入使用這套TTS服務的朋友應該難免也會遇到這類的問題, 期望透過我們的分享幫助到正在遇到困難的你!


首先我們的docker compose配置檔如下

services:
gpt-sovits-api:
image: breakstring/gpt-sovits:latest # please change the image name and tag base your environment. If the tag contains the word 'elite', such as "latest-elite", it indicates that the image does not include the necessary models such as GPT-SoVITS, UVR5, Damo ASR, etc. You will need to download them yourself and map them into the container.
container_name: gpt-sovits-api
environment:
- is_half=True
- is_share=False
volumes:
...
- ./api_v2.py:/workspace/api_v2.py
command:
- python
- api_v2.py
working_dir: /workspace
ports:
- "9880:9880"
shm_size: 16G
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: "all"
capabilities: [gpu]
stdin_open: true
tty: true
restart: unless-stopped



啟動後的LOG訊息

raw-image


看起來蠻OK的, 接下來我們就來用瀏覽器連線看看。


嘗試連線

我們使用 http://10.85.2.25:9880/tts 來測試連線, 咦! 怎們會是這樣的畫面呢?

raw-image



什麼原因?

uvicorn 綁定 host=127.0.0.1 時,只有容器內部的網路可以訪問該地址。外部無法直接訪問 127.0.0.1,因為這個 IP 只指向容器本身,並不對宿主機公開。要讓外部瀏覽器能夠訪問,請將 host 設置為 0.0.0.0。這樣做會使容器中的應用程序對所有網卡接口公開,包括 Docker 容器的網絡接口,從而允許從宿主機訪問。


怎麼解決?

原來是預設綁定了 127.0.0.1 導致宿主機無法連線, 而我們可以嘗試配置綁定的主機為 0.0.0.0 會對於所有網卡接口打開的狀態, 至於怎麼做呢?


我們先來看看api_v2.py是否提供了參數化的方式進行設定, 如此一來才不用更動到原始碼, 很幸運的是api_v2.py本身的設計就支援綁定host的參數。


我們可以改改docker compose的配置檔, 在command的部份改成這樣:


command:
- python
- api_v2.py
- --bind_addr=0.0.0.0


再次啟動後:

raw-image



雖然仍發生Internal Server Error, 但這是因為我們的API入口錯誤, 至少也已經能夠連入了。

raw-image



結語

雖然只是一個簡單的配置就能夠解決這樣的問題, 但對於背景知識較為薄弱的朋友來說, 或許也會彎彎繞繞一陣子, 期望我們的分享能夠幫助到您!

留言
avatar-img
阿Han的沙龍
155會員
332內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2025/04/23
我們在「【🤖 cursor AI】如何在ubuntu 24.04安裝」有分享如何在Ubuntu安裝cursro這套AI編輯器, 使用起來大幅度的提昇開發效率, 但仍有些問題點需要克服, 比如說: LLM壓根不知道我們的數據庫長怎樣啊? 怎麼分析結構呢? 假設文檔又不足的狀況下更是艱辛, 如果LLM
Thumbnail
2025/04/23
我們在「【🤖 cursor AI】如何在ubuntu 24.04安裝」有分享如何在Ubuntu安裝cursro這套AI編輯器, 使用起來大幅度的提昇開發效率, 但仍有些問題點需要克服, 比如說: LLM壓根不知道我們的數據庫長怎樣啊? 怎麼分析結構呢? 假設文檔又不足的狀況下更是艱辛, 如果LLM
Thumbnail
2025/03/12
我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!
Thumbnail
2025/03/12
我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!
Thumbnail
2025/03/05
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」分享如何架設API V3版本的TTS服務, 但發音的部份似乎只有早期的API版本才使用到g2pw這類的技術, 因此我們可能會需要將API退回舊版, 在這裡我們也整理了早期版本api與api_v2的一些差異, 期望幫助到正在面臨選
Thumbnail
2025/03/05
我們在「【語音合成技術 - GPT-SoVITS】如何架設API伺服器」分享如何架設API V3版本的TTS服務, 但發音的部份似乎只有早期的API版本才使用到g2pw這類的技術, 因此我們可能會需要將API退回舊版, 在這裡我們也整理了早期版本api與api_v2的一些差異, 期望幫助到正在面臨選
Thumbnail
看更多
你可能也想看
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
我們在「【語音辨識引擎sherpa-onnx GPU下篇】讓您體驗更快的語音辨識功能」建置環境的過程中預到了這樣的錯誤訊息: RuntimeError: /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc: 1209
Thumbnail
我們在「【語音辨識引擎sherpa-onnx GPU下篇】讓您體驗更快的語音辨識功能」建置環境的過程中預到了這樣的錯誤訊息: RuntimeError: /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc: 1209
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
首先確定VS Code的版本,如果你的版本跟我一樣是1.92.0那麼你可以參考我的作法...
Thumbnail
首先確定VS Code的版本,如果你的版本跟我一樣是1.92.0那麼你可以參考我的作法...
Thumbnail
上集回顧 上集我們提到「【語音辨識引擎sherpa-onnx CPU上篇】讓您輕鬆體驗語音辨識功能(Docker架設)」, 相信大家對於sherpa-onnx具備一定的基本概念並學會如何架設了吧! 如果還不會的兄弟姊妹們別擔心, 歡迎底下留言, 我們會盡量的協助您直到學會為止, 那麼雖然CPU版本
Thumbnail
上集回顧 上集我們提到「【語音辨識引擎sherpa-onnx CPU上篇】讓您輕鬆體驗語音辨識功能(Docker架設)」, 相信大家對於sherpa-onnx具備一定的基本概念並學會如何架設了吧! 如果還不會的兄弟姊妹們別擔心, 歡迎底下留言, 我們會盡量的協助您直到學會為止, 那麼雖然CPU版本
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
在專案中與廠商測試API回傳的json字串出現無法解析的狀況,記錄發現過程與解決的紀錄,提供程式面和檔案面的解決方法。
Thumbnail
在專案中與廠商測試API回傳的json字串出現無法解析的狀況,記錄發現過程與解決的紀錄,提供程式面和檔案面的解決方法。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News