Views
No views yet
1from transformers import VitsModel, AutoTokenizer
2import torch
3import scipy
4
5device = 'cuda' # 'cpu' or 'cuda'
6
7speaker = 1 # 0-woman, 1-man
8
9# load model
10model_name = "utrobinmv/tts_ru_free_hf_vits_high_multispeaker"
11
12model = VitsModel.from_pretrained(model_name).to(device)
13tokenizer = AutoTokenizer.from_pretrained(model_name)
14model.eval()
15
16# text with accents
17text = """Ночью двадцать тр+етьего июня начал извергаться самый высокий
18действующий вулк+ан в Евразии - Кл+ючевской. Об этом сообщила руководитель
19Камчатской группы реагирования на вулканические извержения, ведущий
20научный сотрудник Института вулканологии и сейсмологии ДВО РАН +Ольга Гирина.
21«Зафиксированное ночью не просто свечение, а вершинное эксплозивное
22извержение стромболианского типа. Пока такое извержение никому не опасно:
23ни населению, ни авиации» пояснила ТАСС госпожа Гирина."""
24
25# text lowercase
26text = text.lower()
27
28inputs = tokenizer(text, return_tensors="pt")
29
30with torch.no_grad():
31 output = model(**inputs.to(device), speaker_id=speaker).waveform
32 output = output.detach().cpu().numpy()
33
34scipy.io.wavfile.write("tts_audio.wav", rate=model.config.sampling_rate,
35 data=output[0])1from IPython.display import Audio
2
3Audio(output, rate=model.config.sampling_rate)