Plachtaa / VITS-fast-fine-tuning

This repo is a pipeline of VITS finetuning for fast speaker adaptation TTS, and many-to-many voice conversion
Apache License 2.0
4.75k stars 714 forks source link

[請益] 語音文本設計 / 語料錄製訣竅 #371

Open LinChihShan opened 1 year ago

LinChihShan commented 1 year ago

各位大神, 萬福金安.

小弟準備克隆一個自己, 也就是說, 需要錄製自己的聲音檔案, 因此衍生出下列問題:

  1. 要唸什麼內容 直覺上來說, 文本內容應該儘量包含等量的中文發音, 但設計上並不容易, 不知諸位大神是否知道有無標準文本?

  2. 要怎麼讀 同音同字語調依情緒而異, 相異情緒是否可能造成該字的TTS語調錯亂, 語料錄製是否須儘量保持平穩無情緒之語調?

  3. 破音字的應對方式 與 2. 雷同, 破音字是否會導致TTS讀法錯亂?

發問多次, 很榮幸都能遇到各位解答, 感謝po主和平台.

stu00608 commented 1 year ago
  1. 如果你是準備要錄資料(假設你沒有你自己的語音source) 我的方式是去找現有的voice dataset他們的transcribe資料,你就照著每一句話來念,收集到你滿意為止 這個方法就不要過whisper了,寫一支程式去export訓練資料的文字檔,具體格式定義可以看這個repo的code,應該是在transcribe的程式內。我有做一個類似的command line錄音介面,有興趣的話可以跟我說。

    # For Chinese, each line should be like this.
    /your/path/to/audio.wav|YourSpeakerName|[ZH]範例語句[ZH]

    然後就可以接著跑preprocess_v2.py跟接下來的步驟了。

  2. 一般的vits應該是沒有emotional condition的,我覺得你平常會怎麼講那句話就怎麼錄是最好的,唸的很死板train的再好也很像是機器人。 拍謝補充一下,我的意思是不用在訓練資料內去標註情緒,實際在inference的時候應該是有參數可以去調整情感變化程度的。而你提到的語調錯亂,除非你錄好幾次相同一句話,某個詞故意用不同語調,不然應該不會有你提到的問題,Transformer應該要能處理同樣的詞在不同sequence要怎麼解。

  3. 這應該要看文字轉音素的部分是怎麼處理的,如果它沒辦法應對某些破音字,可能就要用hack的方式自己轉。

我也不是很專業XD 希望能給你一點幫助~

LinChihShan commented 1 year ago
  1. 如果你是準備要錄資料(假設你沒有你自己的語音source) 我的方式是去找現有的voice dataset他們的transcribe資料,你就照著每一句話來念,收集到你滿意為止 這個方法就不要過whisper了,寫一支程式去export訓練資料的文字檔,具體格式定義可以看這個repo的code,應該是在transcribe的程式內。我有做一個類似的command line錄音介面,有興趣的話可以跟我說。

    # For Chinese, each line should be like this.
    /your/path/to/audio.wav|YourSpeakerName|[ZH]範例語句[ZH]

    然後就可以接著跑preprocess_v2.py跟接下來的步驟了。

  2. 一般的vits應該是沒有emotional condition的,我覺得你平常會怎麼講那句話就怎麼錄是最好的,唸的很死板train的再好也很像是機器人。 拍謝補充一下,我的意思是不用在訓練資料內去標註情緒,實際在inference的時候應該是有參數可以去調整情感變化程度的。而你提到的語調錯亂,除非你錄好幾次相同一句話,某個詞故意用不同語調,不然應該不會有你提到的問題,Transformer應該要能處理同樣的詞在不同sequence要怎麼解。
  3. 這應該要看文字轉音素的部分是怎麼處理的,如果它沒辦法應對某些破音字,可能就要用hack的方式自己轉。

我也不是很專業XD 希望能給你一點幫助~

了解了!謝謝您大神!