【語音合成技術 - MeloTTS】如何建置API服務?

更新於 發佈於 閱讀時間約 6 分鐘

我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!

raw-image


衝著這點我們決定來試試看, 因此決定依照官方的安裝指示來玩看看:

git clone <https://github.com/myshell-ai/MeloTTS.git>
cd MeloTTS
pip install -e .
python -m unidic download


奇怪了, 過程怎麼裝不成功呢? 出現這樣的訊息:

raw-image


因此我們決定裝裝boto3來讓下載順利完成:

pip install boto3


當然我們也可以寫在 requirements.txt 裡面再重新安裝一次, 🤷‍♂️ 都可以, 取決於您的習慣。


當然這次就順利安裝完成囉! 接著我們看到官方的文件有展示Python的API使用方式:

raw-image


可是我們希望架設一隻API是未來可以發展UI的接口, 這可以怎麼辦呢? 我們可以使用python的fastAPI來完成, 那麼需要安裝的套件如下:


requirements.txt

fastapi
uvicorn
numpy


接著重新安裝一次, 該有的套件就有了, 我們就可以開始準備動手撰寫API的程式碼囉! 這邊廢話不多說, 直接上Code, 如果對於Code的部份有需要理解的話, 也歡迎使用ChatGPT、Gemini、cursor…等工具來輔助我們, 讓事情更加事半功倍。

from melo.api import TTS
from fastapi import FastAPI, HTTPException
from fastapi.responses import Response
from fastapi.middleware.cors import CORSMiddleware
import numpy as np
import io
import wave
import torch

app = FastAPI()

# 設置CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)

# 初始化TTS模型
speed = 1.0
device = 'cpu' # or cuda:0 if you have GPU
model = TTS(language='ZH', device=device)
speaker_ids = model.hps.data.spk2id

def numpy_to_wav_bytes(audio_data: np.ndarray, sample_rate: int) -> bytes:
"""將numpy數組轉換為WAV格式的字節數據"""
buffer = io.BytesIO()
with wave.open(buffer, 'wb') as wav_file:
wav_file.setnchannels(1) # 單聲道
wav_file.setsampwidth(2) # 16位
wav_file.setframerate(sample_rate)
# 確保數據在正確的範圍內並轉換為16位整數
audio_int16 = (audio_data * 32767).astype(np.int16)
wav_file.writeframes(audio_int16.tobytes())
return buffer.getvalue()

@app.get("/tts")
async def text_to_speech(text: str):
try:
# model.tts_to_file 改為 model.tts,直接獲取音頻數據
audio_data = model.tts_to_file(text, speaker_ids['ZH'], speed=speed)

# 使用 numpy_to_wav_bytes 函數將音頻數據轉換為 WAV 格式
wav_bytes = numpy_to_wav_bytes(audio_data, sample_rate=model.hps.data.sampling_rate)

return Response(wav_bytes, media_type="audio/wav")
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))

if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=9881)


API寫好之後, 我們就準備啟用它。

python tts_api.py


使用API推理試試看!

http://localhost:9881/tts?text=在遙遠的山谷中清澈的溪水流淌樹影搖曳鳥兒自由地飛翔帶來了春天


結語

TTS如雨後春筍般的出現,我們要學會如何從中挑出我們真正需要的那一個系統與模型, 而這邊僅是分享一些在實際安裝或者使用這的問題, 如果對於一系列文章有興趣的朋友也歡迎下方留言, 浪我們更完整的去認識這些TTS的技術。

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
131會員
289內容數
哈囉,我是阿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/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
2025/02/12
精彩回顧 【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務 【語音合成技術 - GPT-SoVITS】如何架設API伺服器 以上是我們過往分享過關於 https://github.com/RVC-Boss/GPT-SoVITS 的分享文章, 這次我們要來試試fine
Thumbnail
2025/02/12
精彩回顧 【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務 【語音合成技術 - GPT-SoVITS】如何架設API伺服器 以上是我們過往分享過關於 https://github.com/RVC-Boss/GPT-SoVITS 的分享文章, 這次我們要來試試fine
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!
Thumbnail
我們在「【語音合成技術 - GPT-SoVITS】讓機器說人話的語音生成服務」分享了語音合成技術, 該套GPT-SoVITS也非常的出色, 但效能有點不是非常理想, 加上需要GPU才能達到較佳的體驗, 如此一來成本就會有點高了, 因此我們找了另外一套MeloTTS, 這一套強調CPU推理非常的快!
Thumbnail
今天我要跟大家聊聊 GPT-SoVITS 的用途及其功能。 這個開源的聲音克隆專案,融合了業內頂尖的語音合成工具——GPT (Generative Pre-trained Transformer)模型,和SoVITS(Speech-to-Video Voice Transformation Sys
Thumbnail
今天我要跟大家聊聊 GPT-SoVITS 的用途及其功能。 這個開源的聲音克隆專案,融合了業內頂尖的語音合成工具——GPT (Generative Pre-trained Transformer)模型,和SoVITS(Speech-to-Video Voice Transformation Sys
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
OpenAI近期公開了名為「Voice Engine(語音引擎)」的AI模型,使用者只要輸入文字與15秒的音訊樣本,該模型便會自動生成與原說話者相似的語音訊息。AI擬聲,也就是大家常說的聲音克隆(Voice Cloning),這項技術發展迅速,讓我們可以輕易複製一個人的聲音,產生合成語音
Thumbnail
OpenAI近期公開了名為「Voice Engine(語音引擎)」的AI模型,使用者只要輸入文字與15秒的音訊樣本,該模型便會自動生成與原說話者相似的語音訊息。AI擬聲,也就是大家常說的聲音克隆(Voice Cloning),這項技術發展迅速,讓我們可以輕易複製一個人的聲音,產生合成語音
Thumbnail
合成聲音技術的未來充滿希望,也存在挑戰。OpenAI呼籲社會各界一起加強對這一新興技術的認識,並共同探索如何有效地利用這項技術,同時保護公眾免受潛在的負面影響。
Thumbnail
合成聲音技術的未來充滿希望,也存在挑戰。OpenAI呼籲社會各界一起加強對這一新興技術的認識,並共同探索如何有效地利用這項技術,同時保護公眾免受潛在的負面影響。
Thumbnail
之前有寫過一篇 《AI工具│透過AI整合的語音功能 Murf》,近期使用過之後,隨著ChatGPT與相關AI普及之後,新的自動生成網站與工具變得多元了起來。 大多會使用在影片製作中,若缺少的素材,或是想要呈現事件及詼諧感的時候,會加入片段人聲去做效果。 於是決定,統整一下自己最近常用的4個AI語
Thumbnail
之前有寫過一篇 《AI工具│透過AI整合的語音功能 Murf》,近期使用過之後,隨著ChatGPT與相關AI普及之後,新的自動生成網站與工具變得多元了起來。 大多會使用在影片製作中,若缺少的素材,或是想要呈現事件及詼諧感的時候,會加入片段人聲去做效果。 於是決定,統整一下自己最近常用的4個AI語
Thumbnail
這篇文章整理了多種好用的AI工具,涵蓋了聲音與音樂相關的AI、影音、圖像生成編輯工具和AI搜尋引擎等領域,幫助你節省時間和解放創意與生產力。
Thumbnail
這篇文章整理了多種好用的AI工具,涵蓋了聲音與音樂相關的AI、影音、圖像生成編輯工具和AI搜尋引擎等領域,幫助你節省時間和解放創意與生產力。
Thumbnail
OpenAI推出的Custom GPTs可以讓你自己量身製作符合你自己需求的AI助手,客製化AI工具喂給他不同的資料產生的結果好壞程度也差很多,好的AI工具能夠幫大家更有效率解決很多問題,不過因為製作門檻很低,有非常大量的客製化GPTs已經在OpenAI的ChatGPT上,這篇推薦給大家的是蒐集整理
Thumbnail
OpenAI推出的Custom GPTs可以讓你自己量身製作符合你自己需求的AI助手,客製化AI工具喂給他不同的資料產生的結果好壞程度也差很多,好的AI工具能夠幫大家更有效率解決很多問題,不過因為製作門檻很低,有非常大量的客製化GPTs已經在OpenAI的ChatGPT上,這篇推薦給大家的是蒐集整理
Thumbnail
要如何做到無須任何額外訓練樣本就能做到"跨語言"的語音生成,這聽起來很不可思議對吧? 但這就是本篇論文取得的成就,不僅如此,該有的功能,如調整情感,口音節奏,停頓語調這些功能也不在話下。跟著我一起用探秘還有獨立思考的眼光來分析這篇論文,這會是很有趣的旅程。
Thumbnail
要如何做到無須任何額外訓練樣本就能做到"跨語言"的語音生成,這聽起來很不可思議對吧? 但這就是本篇論文取得的成就,不僅如此,該有的功能,如調整情感,口音節奏,停頓語調這些功能也不在話下。跟著我一起用探秘還有獨立思考的眼光來分析這篇論文,這會是很有趣的旅程。
Thumbnail
ChatGPT最擅長的就是文本處理,用來翻譯字幕應該也是一片蛋糕吧!但實際操作測試,卻發現沒那麼容易,原因是影片翻譯要考量的因素太多包括: ▪️時間戳記對齊 ▪️適合閱讀且中英文對照文句長度 ▪️貼合講者原意語氣風格 ▪️專業術語與專有名詞 還有GPT一次可以處理的資訊量有限,超過
Thumbnail
ChatGPT最擅長的就是文本處理,用來翻譯字幕應該也是一片蛋糕吧!但實際操作測試,卻發現沒那麼容易,原因是影片翻譯要考量的因素太多包括: ▪️時間戳記對齊 ▪️適合閱讀且中英文對照文句長度 ▪️貼合講者原意語氣風格 ▪️專業術語與專有名詞 還有GPT一次可以處理的資訊量有限,超過
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News