Suno AI開發的「Bark」(狗叫)是一款生成式語音合成AI,能夠根據文本生成一小段接近真人說話的語音,支援英、日、中、韓等多國語言。
範例對話:
:給我學狗叫啊,你這混蛋!
:汪!汪!
:三回啊,三回!
生成結果:
還可以插入情緒、唱歌等指示。
不過Bark生成的語音是高度隨機的,類似早期Stable Diffusion。無法保證品質,需要抽卡。且因為原理類似GPT模型,生成的語音不見得會正確念出文字。
就目前的情況來看,英語支援程度最好。中文生成能力真的像是在狗叫一樣。
1. 安裝Bark GUI#
硬體需求:顯示卡VRAM > 2GB
原始版程式: suno-ai/bark
這裡裝C0untFloyd開發的圖形版,參考 Github說明,Windows有一鍵安裝器,Linux請手動設定:
- 安裝 Anaconda,建立Python 3.10環境
conda create --name barkgui python=3.10
conda activate barkgui
- 安裝依賴
git clone https://github.com/C0untFloyd/bark-gui
cd bark-gui
pip install .
pip install pandas attrs psutil rich pyparsing lxml absl-py protobuf scrapy
pip install .
- 安裝CUDA
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- 裝完剩下的依賴套件
pip install -r requirements.txt
- 啟動WebUI。可加上
-offloadcpu
和-smallmodels
減少VRAM佔用,或-forcecpu
強制使用CPU計算
python webui.py -offloadcpu
- 初次啟動會自動下載語言模型。接著在瀏覽器開啟
http://127.0.0.1:7860
。
2. Bark使用方式#
開啟主界面,於左上角填入要生成的文本。
下面有作者提供的範例。例如要插入笑聲就使用[laughs]
,要生成唱歌就將文本前後用♪
框起來。用Man:
或Woman:
指定說話者性別。(有時候AI會無視這些指令,英語以外的語言更容易亂說話的樣子)
左下角選擇要使用的人聲,日文就選擇ja
,中文為zh
。選日文的人聲講英文文本也是可以,但會有口音。
點選右下角控制隨機的程度,我自己測試的結果,如果拉太低,則生成的內容很容易牛頭不對馬嘴。
設定好之後點選左下角的Generate,等待生成完成。如果用顯示卡計算,一句話大約30秒處理完畢。
生成的音訊會儲存在bark-gui專案目錄下的outputs
目錄。
Bark預設只能生成10秒左右的語音,如果要生成更長對話呢?就得用SMML格式填寫文本。如下圖,在voice name
欄位指定要使用的人聲,再於角括號之間填入文本。這樣它就會批次生成音訊,再將音訊合併在一起。