🚀 俄語免費多音色文本轉語音模型
本項目是一個用於俄語的多音色文本轉語音模型。該模型可處理帶有標點分隔的純文本,無需事先將文本轉換為音素。多音色版本的模型有兩種音色可供選擇: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 許可證。