CS-TACOTRON的PYTORCH實現,這是一種基於TACOTRON的端到端生成型TTS模型的代碼切換語音合成。有關Tacotron的常規版本,請參閱此倉庫。
隨著最近的機器學習文本到語音模型的廣泛成功,關於綜合現實語音的有希望的結果證明了機器可以合成類似人類的聲音的能力。但是,在中文英語密碼轉換文本到語音綜合的領域幾乎沒有取得進展,在此過程中,機器必須學習以多語言方式處理輸入和輸出。當揚聲器在兩種或多種語言之間交替,如今人們在日常生活中以代碼開關語言進行交流時,就會發生代碼切換,因此必須開發出口語技術,例如TTS來處理多語言輸入和輸出。
在這項工作中,我們提出了基於最先進的端到端文本到語音生成模型TaCotron(Wang等,2017)構建的代碼轉換Tacotron。 CS-TACOTRON能夠合成以RAW CS文本為條件的代碼轉換語音。給定CS文本和音頻對,我們的模型可以通過適當的數據預處理進行端到端培訓。除了圖爾莫爾,我們在講課中訓練模型,這是一種基於中文的英語密碼開關數據集,該數據集源自台灣大學(NTU)提供的課程數字信號處理(DSP)。我們提出了幾種關鍵的實施技術,以使Tacotron模型在這項具有挑戰性的多語言語音生成任務上表現良好。 CS-TACOTRON具有從CS文本中產生CS演講的能力,並以LecturedSp的揚聲器的風格生動地說話。
有關此工作的更多詳細信息,請參見Report.pdf 。
歡迎拉動請求!
CS-TACOTRON的音頻樣本。以下所有短語在培訓期間都看不見。
安裝Python 3。
根據您的平台安裝最新版本的Pytorch 。為了獲得更好的性能,請在可行的情況下使用GPU支持(CUDA)安裝。該代碼可與Pytorch 1.0和更高版本一起使用。
(可選)根據您的平台安裝最新版本的TensorFlow。這可以是可選的,但是現在需要進行語音處理。
安裝要求:
pip3 install -r requirements.txt
警告:您需要根據平台安裝火炬和TensorFlow / TensorFlow-GPU。在這裡,我們列出了構建此項目時使用的Pytorch和TensorFlow版本。
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
注意:我們在自己的數據集上訓練了我們的模型:lecturedsp。目前,該數據集無法公開發布,並且仍然是實驗室中的私人集合。有關此數據集的更多信息,請參見“ Report.pdf”。
下載您選擇的代碼開關數據集。
將數據集解開為~/data/text和~/data/audio 。
解開包裝後,您的數據樹應該看起來像這樣的默認路徑:
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
注意:對於以下部分,根據數據集的文件名設置路徑,這只是一些示例數據的演示。數據集的格式應匹配所提供的示例數據以使該代碼工作。
使用src/preprocess.py預處理文本數據:
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
使用src/preprocess.py進行預處理數據:
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
音頻預處理差異的可視化:
使用src/preprocess.py從文本和音頻中製作模型的元文件:
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
使用src/train.py訓練模型
python3 train.py
可調超參數可在src/config.py中找到。您可以通過編輯文件來調整這些參數並設置。建議使用默認的超參數用於lecturedsp和其他中文英語代碼切換數據。
使用TensorBoardX(可選)監視器
tensorboard --logdir 'path to log dir'
培訓師默認情況下每2000個步驟一次傾倒音頻和對齊。您可以在CS-tacotron/ckpt中找到這些。
我們要歸功於Yamamoto Ryuichi的工作,Yamamoto是Tacotron的精彩實施,我們主要基於我們的工作。
我們顯示了模型測試階段的對齊圖,其中第一個顯示了單語中文輸入的對齊,第二個是中文 - 英語代碼轉換輸入,第三個是單語言英語輸入。