1.語音訓練檔案下載,可依據mockingbird下載後,其下datasets_download目錄下說明,下載aidatatang_200zh.tgz、magicdata.tgz、data_aishell3.tgz、data_aishell.tgz解壓縮後訓練

2、將下載後..\control\cli 目錄下檔案COPY到下載目錄下,以免執行時發生路徑錯誤

3、預訓練  python pre.py <語音集路徑> -d <語音集名稱> -s -n 10

      -s表示附加至之前預訓練結果中

4、合成器訓練  python synthesizer_train.py <訓練成果檔案名稱> <語音集路徑>\SV2TTS\synthesizer

      <語音集路徑>\SV2TTS\synthesizer為預設值,預訓練結果放置位置

4、進行synthesizer_train.py時不易收斂,目前嘗試方式為

 A、以同一人的語音進行訓練,比較容易收斂

 B、訓練相關參數在<克隆目錄>\models\synthesizer\hparams.py可以用記事本進行修改

相關參數略述如下:

 

1、信號處理(在合成器和聲碼器中使用)

sample_rate:取樣速率,即每秒採樣點數,默認為16000

n_fft:傅裡葉變換的窗口大小,預設為1024

num_mels:梅爾頻譜的數量,默認為80

hop_size:幀移,即每次窗口滑動的步長,預設為256(相當於12.5毫秒的幀移,與取樣速率有關)。

win_size:幀長度,即窗口的大小,預設為1024(相當於50毫秒的幀長度,與取樣速率有關)。

fmin:最低頻率,用於梅爾濾波器的設置,默認為55

min_level_db:最小音量級別(分貝),用於音訊的動態範圍壓縮,預設為-100

ref_level_db:參考音量級別(分貝),用於音訊的動態範圍壓縮,預設為20

max_abs_value:音訊的最大絕對值,用於梯度裁剪,默認為4.0(如果太大,會導致梯度爆炸;如果太小,會導致過早收斂)。

preemphasis:預加重濾波器的係數,默認為0.97

preemphasize:是否對音訊應用預加重濾波器,默認為True

2、Tacotron 文本轉語音(TTS

tts_embed_dims:輸入的音素/字母表的嵌入維度,默認為512

tts_encoder_dims:編碼器的維度,默認為256

tts_decoder_dims:解碼器的維度,默認為128

tts_postnet_dims:後處理網路的維度,預設為512

tts_encoder_K:編碼器中多頭自注意力的頭數,默認為5

tts_lstm_dimsLSTM層的維度,默認為1024

tts_postnet_K:後處理網路中多頭卷積的頭數,默認為5

tts_num_highwaysHighway網路的層數,預設為4

tts_dropoutDropout的概率,默認為0.5

tts_cleaner_names:用於文本預處理的清洗器的名稱列表,默認為["basic_cleaners"]

tts_stop_threshold:控制音訊生成結束的閾值,默認為-3.4。例如,在[-4, 4]的範圍內,該值將在第一個所有值小於-3.4的幀處終止序列。

3、Tacotron 訓練 (合成器訓練時一般修改tts_schedule,目前嘗試batch_size數字越大則收斂效果較佳,以24G顯卡而言,設定超過48有崩潰危險,測試中...)

tts_schedule:漸進式訓練的訓練計畫,包含了一系列元組,每個元組的格式為(r, lr, step, batch_size),表示減少因數r、學習率lr、步數step和批大小batch_size。默認為逐步減小的訓練計畫。

tts_clip_grad_norm:梯度裁剪的閾值,用於防止梯度爆炸,默認為1.0。如果不需要梯度裁剪,可以將其設置為None

tts_eval_interval:模型評估(樣本生成)之間的步數,默認為500。設置為-1表示在完成一個epoch後生成,設置為0表示禁用生成。

tts_eval_num_samples:生成的樣本數量,預設為1

4、數據預處理

max_mel_frames:最大梅爾幀數,默認為900

rescale:是否進行音訊幅度縮放,預設為True

rescaling_max:幅度縮放的最大值,默認為0.9

synthesis_batch_size:用於聲碼器預處理和推理的合成批大小,默認為16

5、梅爾視覺化和 Griffin-Lim

signal_normalization:是否對音訊進行信號歸一化,預設為True

powerGriffin-Lim演算法中的冪次,預設為1.5

griffin_lim_itersGriffin-Lim演算法的反覆運算次數,預設為60

6、音訊處理選項

fmax:最高頻率,不應超過(取樣速率的一半),默認為7600

allow_clipping_in_normalization:是否在歸一化時允許剪切音訊,默認為True(僅在信號歸一化為True時使用)。

clip_mels_length:是否裁剪超過max_mel_frames的樣本,預設為True

use_lws:是否使用本地加權和(Local Weighted Sums)進行快速頻譜相位恢復,默認為False

symmetric_mels:如果為True,則將梅爾範圍設置為[-max_abs_value, max_abs_value];如果為False,則設置為[0, max_abs_value]

trim_silence:是否在最佳結果中使用16000取樣速率進行靜音修剪,默認為False

7、SV2TTS

speaker_embedding_size:說話人嵌入的維度,默認為256

silence_min_duration_split:用於切分語音的靜音最短持續時間,默認為0.4秒。

utterance_min_duration:捨棄的語音最短持續時間,默認為0.5秒。

use_gst:是否使用全域樣式標記(Global Style Token),預設為True

use_ser_for_gst:是否在全域樣式標記中使用參考說話人嵌入,默認為True

創作者介紹
創作者 Working Notes-My Work Diary 的頭像
laizhucheng

Working Notes-My Work Diary

laizhucheng 發表在 痞客邦 留言(0) 人氣( 7 )