🚀 🍵 Matxa-TTS加泰羅尼亞語多說話人模型
本項目基於Matcha-TTS架構,專為加泰羅尼亞語多說話人文本轉語音系統設計,能夠快速進行聲學建模,生成高質量語音。
🚀 快速開始
安裝
本模型使用開源文本轉語音軟件espeak - ng進行訓練。包含加泰羅尼亞語音素化器的espeak - ng可以在這裡找到。
創建虛擬環境:
python -m venv /path/to/venv
source /path/to/venv/bin/activate
要使用加泰羅尼亞語Matxa - TTS進行訓練和推理,你需要編譯提供的帶有加泰羅尼亞語音素化器的espeak - ng:
git clone https://github.com/projecte-aina/espeak-ng.git
export PYTHON=/path/to/env/<env_name>/bin/python
cd /path/to/espeak-ng
./autogen.sh
./configure --prefix=/path/to/espeak-ng
make
make install
pip cache purge
pip install mecab-python3
pip install unidic-lite
克隆倉庫:
git clone -b dev-cat https://github.com/langtech-bsc/Matcha-TTS.git
cd Matcha-TTS
從源代碼安裝包:
pip install -e .
推理
PyTorch
可以結合加泰羅尼亞語Matxa - TTS進行語音端到端推理。兩個模型(加泰羅尼亞語Matxa - TTS和alVoCat)都從HF hub遠程加載。
首先,導出以下環境變量以包含已安裝的espeak - ng版本:
export PYTHON=/path/to/your/venv/bin/python
export ESPEAK_DATA_PATH=/path/to/espeak-ng/espeak-ng-data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/espeak-ng/lib
export PATH="/path/to/espeak-ng/bin:$PATH"
然後你可以運行推理腳本:
cd Matcha-TTS
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya."
你還可以修改生成樣本的長度比例(語速)和溫度:
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya." --length_scale=0.8 --temperature=0.7
ONNX
我們還發布了模型的ONNX版本。
訓練
整個檢查點也被髮布以繼續訓練或微調。請參閱倉庫說明。
✨ 主要特性
- 高效架構:基於Matcha - TTS的編碼器 - 解碼器架構,專為快速聲學建模而設計。
- 多說話人支持:能夠處理加泰羅尼亞語多說話人的文本轉語音任務。
- 低內存消耗:通過將2D CNN替換為1D CNN,實現了內存消耗的大幅降低和快速合成。
- 高質量輸出:使用最優傳輸條件流匹配(OT - CFM)訓練,在較少的合成步驟中生成高質量輸出。
📦 安裝指南
見“快速開始”部分的安裝步驟。
💻 使用示例
基礎用法
cd Matcha-TTS
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya."
高級用法
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya." --length_scale=0.8 --temperature=0.7
📚 詳細文檔
模型描述
🍵 Matxa - TTS基於Matcha - TTS,這是一種為文本轉語音中的快速聲學建模而設計的編碼器 - 解碼器架構。編碼器部分基於文本編碼器和音素持續時間預測,共同預測平均聲學特徵。解碼器本質上具有受Grad - TTS啟發的U - Net主幹,它基於Transformer架構。在後者中,通過將2D CNN替換為1D CNN,實現了內存消耗的大幅降低和快速合成。
Matxa - TTS是一個使用最優傳輸條件流匹配(OT - CFM)訓練的非自迴歸模型。這產生了一個基於ODE的解碼器,能夠在比使用分數匹配訓練的模型更少的合成步驟中生成高質量輸出。
預期用途和限制
此模型旨在作為加泰羅尼亞語多說話人文本轉語音系統的聲學特徵生成器。它使用加泰羅尼亞語音素化器進行了微調,因此如果將該模型用於其他語言,在將其輸出映射到語音波形後可能無法產生可理解的樣本。
樣本的質量可能因說話人而異。這可能是由於模型學習特定頻率的敏感性,也可能是由於每個說話人的樣本質量不同。
訓練詳情
訓練數據
該模型在2個加泰羅尼亞語語音數據集上進行訓練:
訓練過程
加泰羅尼亞語Matcha - TTS 是從英語多說話人檢查點微調而來的,該檢查點使用VCTK數據集進行訓練,並由模型作者提供。
嵌入層使用加泰羅尼亞語說話人的數量(47)進行初始化,並保留了原始超參數。
訓練超參數
- 批量大小:32(x2 GPUs)
- 學習率:1e - 4
- 說話人數量:47
- n_fft:1024
- n_feats:80
- 採樣率:22050
- 跳長:256
- 窗長:1024
- f_min:0
- f_max:8000
- 數據統計:
- mel_mean:- 6578195
- mel_std:2.538758
- 樣本數量:13340
評估
從第2399個epoch的tensorboard獲得的驗證值:
- val_dur_loss_epoch:0.38
- val_prior_loss_epoch:0.97
- val_diff_loss_epoch:2.195
(請注意,微調從第1864個epoch開始,因為之前的epoch是使用VCTK數據集進行訓練的)
引用
如果此代碼對你的研究有幫助,請引用以下工作:
@misc{mehta2024matchatts,
title={Matcha-TTS: A fast TTS architecture with conditional flow matching},
author={Shivam Mehta and Ruibo Tu and Jonas Beskow and Éva Székely and Gustav Eje Henter},
year={2024},
eprint={2309.03199},
archivePrefix={arXiv},
primaryClass={eess.AS}
}
附加信息
作者
巴塞羅那超級計算中心的語言技術部門。
聯繫方式
如需更多信息,請發送電子郵件至 langtech@bsc.es。
版權
版權所有 (c) 2023 巴塞羅那超級計算中心語言技術部門。
許可證
Apache 2.0
資助
這項工作由加泰羅尼亞政府通過Aina項目推動和資助。