Skip to content

速度・韻律調整

快速入門建議:先只調 speed

大多數情況下,speed 之外的參數保持預設聽起來最自然

pitch_scaleintonation_scale 偏離 1.0 時會伴隨輕微的音質下降。

「只是想稍微快一點/慢一點」的話,先只調 speed,其餘的等到需要時再前往 進階參數 部分。

generate() 接受六個可調整語速・音高・韻律・變化度的關鍵字參數。

全部可省略,不傳任何參數時使用訓練時的預設值進行合成。

以下範例均使用 tsukuyomi_chan 說話人,朗讀同一句話(「今日はどんな国に辿り着くのでしょうか。新しい出会いが楽しみです。」),僅改變該參數。

參數行為與 HayaKoe 所 fork 的 Style-Bert-VITS2infer() 相同。

speed — 語速

以預設值 1.0 為基準,值越小越快,值越大越慢

內部機制是將 Duration Predictor 預測的音素時長直接乘以 speed,因此發音本身能保持良好。

つくよみちゃんspeed = 1.0預設
0:00 / 0:00

低於 0.8 時發音會模糊,超過 1.3 時更接近「拖沓」而非「慢」。

實際使用中 0.9 ~ 1.1 左右最自然。

python
speaker.generate(text, speed=0.9)   # 稍快
speaker.generate(text, speed=1.1)   # 稍慢

進階參數

從這裡開始的設定在預設值下已經足夠自然,但當需要精細調整時可以使用。

總覽

參數預設值建議範圍效果
pitch_scale1.00.95 ~ 1.05音高倍率。偏離 1.0 時會有輕微音質下降
intonation_scale1.00.8 ~ 1.3韻律起伏。偏離 1.0 時會有輕微音質下降
sdp_ratio0.20.0 ~ 0.5確定性 DP 與隨機性 SDP 的混合比例
noise0.60.3 ~ 0.9語音變動性(音色隨機性)
noise_w0.80.5 ~ 1.2發話節奏變動性(SDP 噪聲)

建議每次只調整一個參數。

下面的範例為了讓差異可以被聽出,刻意將值推到了建議範圍之外。

pitch_scale — 音高

整體提高或降低音高的簡單倍率。

偏離 1.0 時會伴隨輕微的音質下降,因此 建議調整幅度比其他參數更小

つくよみちゃんpitch_scale = 1.0預設
0:00 / 0:00

在 0.95 ~ 1.05 範圍內說話人特徵基本保持不變,但在極端值下會變成「另一個人」或音質明顯下降。

python
speaker.generate(text, pitch_scale=1.05)

intonation_scale — 韻律起伏

調整韻律變化的「幅度」。

0.0 幾乎是完全單調的機器人音,2.0 是誇張的朗讀音。

pitch_scale 一樣,偏離 1.0 時會有輕微的音質下降。

つくよみちゃんintonation_scale = 1.0預設
0:00 / 0:00

實際使用中 0.85 ~ 1.3 左右自然。

python
speaker.generate(text, intonation_scale=1.2)

sdp_ratio — 確定性/隨機性時長預測混合

HayaKoe(和 Style-Bert-VITS2)同時使用兩種時長預測器。

  • DP (Deterministic Duration Predictor) — 對相同文本始終給出相同時長
  • SDP (Stochastic Duration Predictor) — 每次呼叫給出略有不同的時長

sdp_ratio 是兩個預測器的混合比例,0.0 表示僅用 DP,1.0 表示僅用 SDP

值越高,句子內的節奏起伏越大,同一文本多次執行時結果每次都不同。

つくよみちゃんsdp_ratio = 0.25DP 主導
0:00 / 0:00

對可重現性要求較高的服務(例如:字幕時間軸固定)中設為 0.0,一次性生成則 0.2 ~ 0.4 比較自然。

python
speaker.generate(text, sdp_ratio=0.0)   # 總是相同

noise / noise_w — 語音・節奏變動性

各自作用於不同階段的噪聲(不是音素本身的噪聲)。

  • noise — 語音變動性。在 Flow 階段控制音色的整體隨機性。與 sdp_ratio 無關,始終有效。
  • noise_w — 發話節奏變動性。輸入 SDP(隨機性預測器)的噪聲。sdp_ratio 為 0 時無效。

以下範例保持其餘參數為預設值,僅改變該噪聲。

つくよみちゃんnoise = 0.6預設
0:00 / 0:00
つくよみちゃんnoise_w = 0.8預設
0:00 / 0:00

大多數情況下保持預設值(0.60.8)最自然。

如果覺得「總是在抖動」,試著稍微降低該側噪聲;如果覺得「太機械化」,試著稍微提高。