該存儲庫包含愛沙尼亞多演講者的神經文本到語音綜合工人,這些工人從兔子中處理請求。
該項目是由塔爾圖大學NLP研究小組開發的。語音綜合也可以在我們的演示中進行測試。
發布部分包含模型文件或其下載說明。如果版本未指定模型信息,則可以使用上一個版本的模型。我們建議始終使用最新的可用版本來確保最佳模型質量和代碼兼容性。
config/config.yaml中包含的模型配置文件對應於以下models/目錄結構:
models
├── hifigan
│ ├── ljspeech
│ │ ├── config.json
│ │ └── model.pt
│ ├── vctk
│ │ ├── config.json
│ │ └── model.pt
└── tts
└── multispeaker
├── config.yaml
└── model_weights.hdf5
可以使用與存儲庫一起發布的Docker映像來部署TTS工作人員。每個圖像版本都與特定版本相關聯。所需的模型文件被排除在圖像中以減小圖像大小,應從“發行版”部分下載及其目錄應將其附加到卷/app/models 。
記錄配置是從/app/config/logging.prod.ini和/app/config/config.yaml配置加載的。評論了隨附的配置,以說明如何添加新的模型配置。
運行容器時應配置以下環境變量:
MQ_USERNAME兔子用戶名MQ_PASSWORD -RabbitMQ用戶密碼MQ_HOST -RABBITMQ主機MQ_PORT (可選)-RabbitMQ端口(默認為5672 )MQ_EXCHANGE (可選)-RabbitMQ Exchange名稱( text-to-speech )MQ_HEARTBEAT (可選) - 心跳間隔(默認為60秒)MQ_CONNECTION_NAME (可選) - 友好連接名稱(默認情況下TTS worker )MKL_NUM_THREADS (可選) - pytorch用於內部並行性的線程數(用於Vocoder模型)。 16默認情況下。如果設置為空白值,則默認為CPU內核的數量,該數量可能會在較大的節點上部署時可能導致計算開銷。另外,可以使用docker run Flag --cpuset-cpus來控制它。有關更多詳細信息,請參閱下面的性能和硬件要求部分。默認情況下,容器入口點是main.py沒有其他參數,但應使用COMMAND選項定義參數。唯一需要的標誌是--model-name要選擇工人加載的模型。通過運行python main.py -h :
usage: main.py [-h] [--model-config MODEL_CONFIG] [--model-name MODEL_NAME] [--log-config LOG_CONFIG]
A text-to-speech worker that processes incoming TTS requests via RabbitMQ.
optional arguments:
-h, --help show this help message and exit
--model-config MODEL_CONFIG
The model config YAML file to load.
--model-name MODEL_NAME
The model to load. Refers to the model name in the config file.
--log-config LOG_CONFIG
Path to log config file.
可以使用以下樣本docker-compose.yml配置對設置進行測試:
version : ' 3 '
services :
rabbitmq :
image : ' rabbitmq '
environment :
- RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASS}
tts_api :
image : ghcr.io/tartunlp/text-to-speech-api:latest
environment :
- MQ_HOST=rabbitmq
- MQ_PORT=5672
- MQ_USERNAME=${RABBITMQ_USER}
- MQ_PASSWORD=${RABBITMQ_PASS}
ports :
- ' 8000:8000 '
depends_on :
- rabbitmq
tts_worker :
image : ghcr.io/tartunlp/text-to-speech-worker:latest
environment :
- MQ_HOST=rabbitmq
- MQ_PORT=5672
- MQ_USERNAME=${RABBITMQ_USER}
- MQ_PASSWORD=${RABBITMQ_PASS}
command : [ "--model-name", "multispeaker" ]
volumes :
- ./models:/app/models
depends_on :
- rabbitmq已經在Ubuntu上測試了以下步驟,並且既兼容CPU又是GPU(需要CUDA)。
用subsodules克隆這個存儲庫
安裝先決條件:
GNU編譯器集合( sudo apt install build-essential )
對於CPU安裝,我們建議在乾淨的環境中使用隨附的requirements.txt文件(使用Python 3.9進行測試)
pip install -r requirements.txt
對於GPU安裝,請改用environment.yml文件。
確保已安裝以下先決條件:
然後創建並激活具有所有依賴性的Conda環境:
conda env create -f environment.yml -n tts
conda activate tts
從“版本”部分下載模型,並放置在models/目錄中。
檢查配置文件並根據需要更改任何默認值。確保config/config.yaml中的model_path參數指向您剛下載的模型。
指定具有環境變量或在config/.env文件中的RabbitMQ連接參數,如config/sample.env中所示。
使用MODEL_NAME在配置文件中匹配模型名稱的位置:
python main.py --model-name $MODEL_NAME [--log-config config/logging.ini --config config/config.yaml]