🚀 俄语免费多音色文本转语音模型
本项目是一个用于俄语的多音色文本转语音模型。该模型可处理带有标点分隔的纯文本,无需事先将文本转换为音素。多音色版本的模型有两种音色可供选择:0 - 女性,1 - 男性。
模型支持小写文本输入,并且能够自动处理重音标注。不过,为了提升语音生成质量,建议在元音字母前手动添加重音符号。
🚀 快速开始
安装依赖
本模型使用 transformers
库,你可以使用以下命令安装:
pip install transformers torch scipy
运行示例代码
以下是使用 PyTorch 调用该模型的示例代码:
from transformers import VitsModel, AutoTokenizer
import torch
import scipy
device = 'cuda'
speaker = 1
model_name = "utrobinmv/tts_ru_free_hf_vits_high_multispeaker"
model = VitsModel.from_pretrained(model_name).to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name)
model.eval()
text = """Ночью двадцать тр+етьего июня начал извергаться самый высокий
действующий вулк+ан в Евразии - Кл+ючевской. Об этом сообщила руководитель
Камчатской группы реагирования на вулканические извержения, ведущий
научный сотрудник Института вулканологии и сейсмологии ДВО РАН +Ольга Гирина.
«Зафиксированное ночью не просто свечение, а вершинное эксплозивное
извержение стромболианского типа. Пока такое извержение никому не опасно:
ни населению, ни авиации» пояснила ТАСС госпожа Гирина."""
text = text.lower()
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
output = model(**inputs.to(device), speaker_id=speaker).waveform
output = output.detach().cpu().numpy()
scipy.io.wavfile.write("tts_audio.wav", rate=model.config.sampling_rate,
data=output[0])
在 Jupyter Notebook / Google Colab 中展示音频
from IPython.display import Audio
Audio(output, rate=model.config.sampling_rate)
✨ 主要特性
- 多音色支持:提供女性和男性两种音色选择。
- 简单易用:支持纯文本输入,无需将文本转换为音素。
- 自动重音处理:模型能够自动处理重音标注,但手动添加重音可提升生成质量。
💻 使用示例
基础用法
from transformers import VitsModel, AutoTokenizer
import torch
import scipy
device = 'cuda'
speaker = 1
model_name = "utrobinmv/tts_ru_free_hf_vits_high_multispeaker"
model = VitsModel.from_pretrained(model_name).to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name)
model.eval()
text = """Ночью двадцать тр+етьего июня начал извергаться самый высокий
действующий вулк+ан в Евразии - Кл+ючевской. Об этом сообщила руководитель
Камчатской группы реагирования на вулканические извержения, ведущий
научный сотрудник Института вулканологии и сейсмологии ДВО РАН +Ольга Гирина.
«Зафиксированное ночью не просто свечение, а вершинное эксплозивное
извержение стромболианского типа. Пока такое извержение никому не опасно:
ни населению, ни авиации» пояснила ТАСС госпожа Гирина."""
text = text.lower()
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
output = model(**inputs.to(device), speaker_id=speaker).waveform
output = output.detach().cpu().numpy()
scipy.io.wavfile.write("tts_audio.wav", rate=model.config.sampling_rate,
data=output[0])
高级用法
在 Jupyter Notebook / Google Colab 中展示生成的音频:
from IPython.display import Audio
Audio(output, rate=model.config.sampling_rate)
📚 详细文档
支持语言
该模型支持俄语(ru_RU)。
音色选择
模型提供两种音色:
文本输入要求
- 支持小写文本。
- 为提升生成质量,建议在元音字母前手动添加重音符号。
📄 许可证
本模型采用 Apache-2.0 许可证。