Closed 1044690543 closed 6 months ago
我用了約9-11個小時的粵語數據對「底模」進行了訓練,這些數據是從一個香港播客頻道中提取的單一人聲。
實際上我們無法訓練一個「底模」(需要1000小時的數據)。我這裡更像是在模型一個角色,使其能夠發音粵語。但是限制是單一模型只能有一個角色(據我所知)。
第一件事是修改text cleaner。其作用是將不同的中文標點符號替換為較少的英文字母符號,並將文本轉換為音素。
Bert-vits2的text cleaner如下:
文本 => 替換中文標點符號後的文本 => 音素 => 分割聲母和韻母
例如,在普通話拼音: 啊!轉換為['a', 'a', '!'] 你好 轉換為['n','i', 'h', 'ao']
而對於粵語粤拼(以我情況為例): 你好 轉換為['n', 'ei', 'h', 'ou']
https://github.com/fishaudio/Bert-VITS2/blob/4751adb19ecdd9ea607e76788d1a631acedcf99d/text/chinese.py#L87 返回為"phones"
至於tones,是每個詞的聲調。對於粵語而言,聲調範圍是1-6(nei5 hou2 => [5, 2])。
最後一個詞"word2ph"表示的是音素的長度。例如,"nei"將被分割為n + ei,因此長度為2。像"!"這樣的標點符號無法分割,因此長度為1。
你好!=> [2, 2, 1]
完成了g2p函數之後可以開始訓練模型了。像訓練人聲一樣訓練模型即可。在模型能夠說出你想要的語言之後,用你想要的聲音來替換訓練數據,並繼續訓練,就可以了
Please be reminded you will also need to edit the symbols.py and replace the zh List to finals in your languages.
Thank you very much for your detailed response, which has given me some ideas for training a new model. Once again, thank you, and I wish you success in your studies.
如题,请问您粤语底模是如何训练出来的呢,用了多少小时训练集呢。我想训练一个四川话的底模,可以分享一些思路吗