Skip to content

Commit dc15503

Browse files
authored
feat: minmax voice cloning (#40)
1 parent 1906711 commit dc15503

File tree

1 file changed

+182
-0
lines changed

1 file changed

+182
-0
lines changed

ai/MiniMax Voice Cloning.md

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
# MiniMax Voice Cloning
2+
3+
聲音複製超酷的,如果可以複製出我的聲音的話,就只要寫好腳本,就可以錄好我的 IG Reels。所以最近在看聲音複製這一塊。
4+
5+
目前比較知名的就是 elevenlabs 跟 minimax,我兩個都有稍微用過
6+
7+
elevenlabs:買了應該三百塊左右的方案,丟了一小時我的聲音進去
8+
9+
minimax:我只用了免費版,丟了三十秒進去
10+
11+
我覺得效果是屌虐 elevenlabs 的模型,所以今天想來挖掘一下 minimax 的原理,但我時間有限+沒啥 AI 底子,所以基本上是透過 ChatGPT 跟我一起來讀這篇論文: [MiniMax-Speech: Intrinsic Zero-Shot Text-to-Speech with a Learnable Speaker Encoder](https://arxiv.org/pdf/2505.07916)
12+
13+
這邊是我的 heptabase 筆記連結,有興趣也可以進去逛逛:[點此前往](https://app.heptabase.com/w/be7836298966b690ce047b07abf835685b78fa20b74a18665be149a0079ec5a6)
14+
15+
## MiniMax 強在哪?
16+
17+
#### **1\. 真零樣本(Intrinsic Zero-Shot)語音克隆**
18+
19+
- 不用語音的**轉錄**(不需聲音對應文字)就能複製聲音(Zero-shot)。
20+
21+
- 只要一小段任意語音就能合成同一個人用任何文字講話,不需要預先對這個人微調模型或蒐集大量語料。
22+
23+
- 給三十秒的聲音,就可以模仿得很像
24+
25+
#### **2\. 可訓練的 Speaker Encoder**
26+
27+
- 說話人編碼器(speaker encoder)和主模型一起端到端訓練,**不是用別人訓練好的說話人驗證模型當作黑盒子**
28+
29+
- 這邊做得好,所以有詳細記錄我的聲音音色!
30+
31+
#### **3\. 創新的 Flow-VAE 架構**
32+
33+
- 結合 VAE(變分自編碼器)與 Flow model,提升語音特徵表達能力、音質和還原度。
34+
35+
- 讓模型生成的語音不僅自然,還能高度還原個人音色。
36+
37+
- 讓語音訊號本身細節和品質更高,有辦法呈現 Speaker Encoder 記錄下來的聲音細節。
38+
39+
### **這些亮點在哪些指標打敗了 SOTA?**
40+
41+
#### **1\. 客觀指標**
42+
43+
#### **(見論文 Table 1、Table 2、Table 3)**
44+
45+
- **Word Error Rate (WER)**
46+
47+
**[什麼是 WER(Word Error Rate)?](https://www.backend-b.com/%E4%BB%80%E9%BA%BC%E6%98%AF-werword-error-rate)**
48+
49+
→ 語音合成後由語音辨識模型還原出的文字,錯誤率比 SOTA(如 Seed-TTS、CosyVoice2、ElevenLabs Multilingual v2 等)還低,甚至比部分“真實錄音”還低,顯示模型合成語音清晰度高、可辨識度強。
50+
51+
- **Speaker Similarity (SIM)**
52+
53+
→ 合成語音的說話人向量(speaker embedding)和原始說話人相似度也達到 SOTA 水準,在「只用一小段語音」的 zero-shot 條件下,和現有最佳模型持平甚至更高。
54+
55+
#### **2\. 主觀評測**
56+
57+
- 在公開 TTS Arena 人類聽感排名中(ELO 分數)
58+
59+
- **MiniMax-Speech(榜上名為 Speech-02-HD)排名第一**,勝過 OpenAI、ElevenLabs、Google、微軟等知名模型。
60+
61+
- 人類偏好 MiniMax-Speech 的自然度、表達力與音色還原度。
62+
63+
### **MiniMax-Speech 的 TTS** 生成流程
64+
65+
整個生成流程由三大核心組件構成:
66+
67+
1. **Speaker Encoder**(取得說話者音色)
68+
69+
2. **AR Transformer**(從文字、音色生成語音 token)
70+
71+
3. **Flow-VAE Decoder**(從語音 token 還原出聲音)
72+
73+
#### **① Speaker Encoder**
74+
75+
- **輸入**:你提供一段幾秒鐘的參考語音(不需要文字轉錄)
76+
77+
- **輸出**:一個 **固定長度的 speaker embedding(條件向量)**
78+
79+
這個向量捕捉了聲音的 **timbre(音色)**、prosody(說話風格)等與語意無關的特徵。
80+
81+
#### **學習方法**
82+
83+
在訓練時,它透過:
84+
85+
- 每次給定一小段語音當作 speaker reference
86+
87+
- 產出一個 embedding(向量)去代表這段音色
88+
89+
- 算出音色、聲帶特質、講話慣性的資料
90+
91+
- 將這個 embedding 傳給下游的 AR
92+
93+
基本上就是學習你怎麼發出聲音(音色、風格、⋯⋯)
94+
95+
這邊做得好,所以有詳細記錄我的聲音音色!
96+
97+
#### **② Tokenizer(把文字編碼成 token)**
98+
99+
- 使用 **Byte Pair Encoding (BPE)** 將輸入文字拆成 token(像 GPT 一樣)
100+
101+
[BPE 是什麼?](https://www.backend-b.com/bpe-%E6%98%AF%E4%BB%80%E9%BA%BC)
102+
103+
例如:
104+
105+
```
106+
"你好世界" → ["你", "好", "世", "界"] → [token1, token2, token3, token4]
107+
```
108+
109+
這邊的文字 input 是你另外給的內容,目的在於讓訓練好的語音模型可以輸出你想講的內容。
110+
111+
#### **③ AR Transformer(自回歸模型)**
112+
113+
- **輸入**
114+
115+
- 條件序列
116+
117+
[條件序列](https://www.backend-b.com/%E6%A2%9D%E4%BB%B6%E5%BA%8F%E5%88%97)
118+
119+
- 文字 token
120+
121+
- Speaker encoder 給出的 embedding
122+
123+
- 這兩個作為 global input,每一輪都會丟進去
124+
125+
- 上一輪的 audio token
126+
127+
- **輸出**
128+
129+
- 一串 audio token(代表聲音)
130+
131+
這一步是核心生成過程,透過 **自回歸地產生語音 token**,也就是一個一個預測下一個語音單元。
132+
133+
### Auto Regressive 怎麼運作?
134+
135+
```
136+
條件序列: [t1, t2, t3, t4] + z_speaker
137+
138+
初始 StartToken
139+
140+
步驟1 y1
141+
142+
步驟2 [y1] ←(餵進去)
143+
144+
步驟3 [y1, y2]
145+
146+
步驟4 [y1, y2, y3]
147+
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
148+
149+
結束 [y1, y2, ..., yn, <EOS>] <- audio token
150+
```
151+
152+
優勢:
153+
154+
- AR 每生一個 audio token,就可以根據前面已經生成的聲音(包含語速、情緒、語調等)和條件序列(文字、speaker embedding)去「調整接下來要怎麼說」。
155+
156+
- Attention 機制讓每個步驟可以看到所有的文字 token,以及之前所有已經生成的音訊 token,能學出「哪裡該停頓」、「這個字該拉長、重讀、提高聲調」。
157+
158+
[Attention 複習](https://www.backend-b.com/attention-%E8%A4%87%E7%BF%92)
159+
160+
#### **④ Flow-VAE 解碼器(還原語音波形)**
161+
162+
AR Transformer 的輸出是一串 **離散 audio token**,並不是你可以直接播放的音訊。
163+
164+
所以還需要一個模型將這些 token「解碼」成聲音波形(.wav):
165+
166+
- 使用 **Flow-VAE** 解碼器:
167+
168+
- Flow:學習複雜 audio token 分布
169+
170+
- VAE:學習連續潛在特徵(能還原音質)
171+
172+
優於傳統 vocoder(如 MelGAN、HiFi-GAN):
173+
174+
- 支援更強的 speaker similarity
175+
176+
- 更低的錯字率、更穩定
177+
178+
**[1\. AR Transformer 產生的 audio token 是什麼?](https://www.backend-b.com/1-ar-transformer-%E7%94%A2%E7%94%9F%E7%9A%84-audio-token-%E6%98%AF%E4%BB%80%E9%BA%BC)**[2\. token 轉成潛在特徵(latent vector)](https://www.backend-b.com/2-token-%E8%BD%89%E6%88%90%E6%BD%9B%E5%9C%A8%E7%89%B9%E5%BE%B5latent-vector)[3\. **Flow-VAE**](https://www.backend-b.com/3-flow-vae)
179+
180+
181+
182+
Source: <https://www.backend-b.com/minimax-voice-cloning>

0 commit comments

Comments
 (0)