该存储库包含爱沙尼亚多演讲者的神经文本到语音综合工人,这些工人从兔子中处理请求。
该项目是由塔尔图大学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]