你有沒有想過,為什麼每次要生成AI語音,都要付費給雲端服務?每個月幾百塊港幣的訂閱費,結果只是想要一個簡單的旁白配音?今天我要告訴你一個祕密:其實你電腦裡就藏著一台免費的AI語音工作室。
最近 HuggingFace 上出現了一個超夯的開源模型 owensong/Inflect-Micro-v2,短短一週就吸引了361個讚,而且它主打的就是「可以在 CPU 上跑」的本地語音合成。這意味著什麼?代表你不需要一張幾萬塊的顯示卡,只要一台普通的筆電,就能生成媲美雲端服務的AI語音。
這篇文章會教你如何從零開始,在自家電腦建立一套完整的本地AI語音合成系統。我會用最簡單的方式,帶你一步步安裝、設定、產出第一段AI語音。整個過程不用寫複雜的程式碼,只要會複製貼上命令就好。準備好了嗎?讓我們開始吧!
為什麼要自己架設?|雲端服務的隱藏成本
你可能會想:「我用雲端服務不就好了嗎?幹嘛這麼麻煩?」讓我來幫你算一筆帳。目前市面上主流的雲端語音服務,每個月基本方案大約是 20到30美元,折合港幣約 160到240元。如果你是重度使用者,每個月花上 100美元 也不意外。
但更重要的是「隱私問題」。你有沒有想過,當你把文稿丟上雲端生成語音時,那些文字內容其實已經離開你的電腦了?如果你是做商業簡報、內部訓練影片,甚至是還沒公開的產品發布內容,這些資訊其實都存在隱私外洩的風險。
本地部署最大的優勢就是「完全離線」。你的文字永遠不會離開你的電腦,生成的音檔也是100%屬於你。而且,沒有任何用量限制——想生成多少就生成多少,不用擔心超量被加收費用。
還有一點很多人忽略:雲端服務如果突然改版或停止服務,你的工作流程就會被打斷。但本地部署的開源模型,只要下載下來,就永遠是你的了。
第一步:安裝必要工具 |三分鐘搞定環境
好的,現在讓我們動手吧!首先,你需要確認你的電腦有沒有 Python 3.9 或以上版本。打開終端機(Windows 使用者請打開命令提示字元),輸入以下指令檢查:
python --version
如果沒有安裝,請到 python.org 下載最新版本。安裝時記得勾選「Add Python to PATH」這個選項。
接下來,我們要建立一個專門的資料夾,並安裝必要的套件。複製貼上以下指令:
mkdir ai-voice
cd ai-voice
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install transformers accelerate
這裡我特別指定了 CPU 版本的 PyTorch,這樣即使你沒有NVIDIA顯示卡,也能順暢運行。如果你是 Mac 使用者(M1/M2/M3晶片),可以改用以下指令:
pip install torch torchaudio
安裝過程可能需要幾分鐘,取決於你的網路速度。完成後,我們就可以下載模型了。
第二步:下載並載入模型 |關鍵步驟一次搞定
現在我們要下載 Inflect-Micro-v2 這個模型。這個模型特別的地方在於,它不只支援標準中文,連粵語都能生成——這對香港讀者來說簡直是福音!
建立一個新檔案,命名為 generate_voice.py,用記事本或任何文字編輯器打開,貼上以下程式碼:
from transformers import AutoTokenizer, AutoModelForTextToSpectrogram
import torch
# 載入模型
model_name = "owensong/Inflect-Micro-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTextToSpectrogram.from_pretrained(model_name)
# 設定文字
text = "大家好,這是一段由本地AI生成的語音。"
inputs = tokenizer(text, return_tensors="pt")
# 生成語音頻譜
with torch.no_grad():
spectrogram = model.generate(**inputs)
print("語音頻譜生成完成!")
第一次執行時,模型會自動下載,大約需要 500MB 的空間。下載完成後,你就會看到「語音頻譜生成完成!」的訊息。
不過你可能會問:頻譜是什麼?簡單來說,它就是聲音的「圖像化」表示。我們還需要一個步驟,把頻譜轉換成實際可以播放的音檔。
第三步:轉換成音檔 |讓聲音「活」起來
接下來我們要安裝一個叫 vocoder 的元件,它的工作就是把頻譜變成真正的聲音。在終端機輸入:
pip install vocos
然後修改剛剛的 generate_voice.py,加入轉換音檔的程式碼:
from vocos import Vocos
import scipy.io.wavfile as wavfile
# 初始化 vocoder
vocos = Vocos.from_pretrained("charactr/vocos-mel-22khz")
# 將頻譜轉換為音訊
audio = vocos.decode(spectrogram)
# 儲存為 WAV 檔案
wavfile.write("output.wav", 22050, audio.numpy())
執行這個程式,你就會在資料夾裡看到 output.wav 這個檔案。用你的播放器打開,聽聽看——這就是你第一個本地生成的AI語音!
你可能會覺得聲音聽起來有點「機械感」,這是正常的。因為我們用的是基礎版本。你可以嘗試調整 text 變數的內容,加入不同的標點符號,AI會根據標點產生不同的語氣停頓。例如:
text = "大家好!今天要跟大家分享一個好消息——我們成功了!"
你會發現,加入驚嘆號和破折號後,AI生成的聲音會更有感情起伏。
實戰技巧:讓AI語音更自然 |三個小撇步
現在你已經能生成基本語音了,接下來我要分享三個專業級技巧,讓你的AI語音聽起來更像真人。
技巧一:加入停頓和語氣詞。 AI模型其實很在意標點符號。在句子之間加入逗號、句號,甚至使用「嗯…」「啊」這類語氣詞,都能讓語音更自然。例如:「嗯…這個問題,其實有很多層面可以討論。」
技巧二:控制語速和音調。 Inflect-Micro-v2 支援透過參數調整語速。在 generate 函數中加入 speed 參數:
spectrogram = model.generate(**inputs, speed=1.1)
speed 數值大於1代表加快,小於1代表放慢。你可以試試 0.9 到 1.2 之間的不同數值,找到最適合你內容的語速。
技巧三:分段生成再合併。 如果你要生成很長的內容(例如整集Podcast),建議分成多個段落生成,再用 Audacity 等免費軟體合併。這樣做有兩個好處:一是每段語音品質更穩定,二是你可以單獨重新生成不滿意的段落,不用整個重來。
進階應用:批次處理大量文字 |一次搞定十篇文章
如果你要處理的內容很多,例如要幫十篇文章都配上語音,手動一段段改程式碼太沒效率了。我們可以寫一個批次處理腳本,一次處理多個檔案。
建立一個 batch_generate.py,貼上以下程式碼:
import os
from transformers import AutoTokenizer, AutoModelForTextToSpectrogram
from vocos import Vocos
import scipy.io.wavfile as wavfile
import torch
model_name = "owensong/Inflect-Micro-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTextToSpectrogram.from_pretrained(model_name)
vocos = Vocos.from_pretrained("charactr/vocos-mel-22khz")
# 讀取所有 txt 檔案
input_folder = "texts"
output_folder = "audio"
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith(".txt"):
with open(os.path.join(input_folder, filename), "r", encoding="utf-8") as f:
text = f.read()
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
spectrogram = model.generate(**inputs)
audio = vocos.decode(spectrogram)
output_path = os.path.join(output_folder, filename.replace(".txt", ".wav"))
wavfile.write(output_path, 22050, audio.numpy())
print(f"已生成: {output_path}")
使用方式很簡單:在 ai-voice 資料夾裡建立 texts 資料夾,把你要轉換的文稿存成 .txt 檔放進去,然後執行:
python batch_generate.py
程式會自動讀取所有文字檔,並在 audio 資料夾生成對應的 .wav 音檔。這樣一來,你只需要準備好文稿,剩下的全部自動化。
延伸閱讀
常見問題
Q: 我的電腦跑得動嗎?需要什麼規格? A: Inflect-Micro-v2 特別設計為可以在 CPU 上運行。一般來說,只要是近五年內購買的電腦(無論是 Windows、Mac 或 Linux),至少有 8GB RAM,就能順暢運行。生成一段30秒的語音,大約需要10到20秒的時間。
Q: 生成的語音可以商用嗎? A: 這取決於模型的授權條款。Inflect-Micro-v2 使用 Apache 2.0 授權,允許商業使用。不過建議你在正式商用前,先查看模型的授權頁面確認細節,因為不同模型可能有不同規定。
Q: 支援哪些語言?粵語效果如何? A: Inflect-Micro-v2 支援多種語言,包括標準中文、粵語、英文、日文等。粵語的生成效果相當不錯,雖然不是完美,但對於一般旁白或教學內容已經很夠用。你可以試著輸入「大家好,我係香港人。」來測試粵語效果。
Q: 為什麼我生成的語音聽起來有點怪? A: 這通常有幾個原因:一是文字中包含特殊符號或英文縮寫,建議先清理文稿;二是沒有善用標點符號,AI需要標點來判斷語氣;三是模型首次載入時需要「暖機」,多生成幾次後品質會穩定下來。
Q: 有其他推薦的開源語音模型嗎? A: 除了 Inflect-Micro-v2,你也可以試試 Meta 的 Voicebox、微軟的 VALL-E,或是阿里巴巴的 CosyVoice。每個模型各有特色,例如 CosyVoice 在中文表現上特別出色。你可以都試試看,選擇最適合你使用場景的模型。
好了,現在你已經學會如何在本地建立AI語音合成系統了!從安裝環境、下載模型、生成語音到批次處理,整個流程其實比你想像中簡單。最重要的是,這套系統完全免費、離線可用、沒有隱私疑慮,而且沒有任何用量限制。
我建議你今天就動手試試看。先從一段簡單的文字開始,聽聽AI生成的語音,然後慢慢調整參數,找到最適合你的設定。當你成功生成第一段語音的那一刻,你會發現——原來自己架設AI語音系統,真的只要五分鐘!
如果你在過程中遇到任何問題,歡迎留言告訴我。也別忘了把這篇文章分享給需要的朋友,讓更多人擺脫雲端服務的束縛,享受本地AI的自由。下次見!