Views
No views yet
--train_dataset_name: "anzorq/kbd_speech_murat"--train_metadata_dataset_name: "anzorq/kbd_speech_murat-tagged-for-parler-tts"--num_train_epochs: 4--gradient_accumulation_steps: 18--gradient_checkpointing: True--per_device_train_batch_size: 2--learning_rate: 0.00008--lr_scheduler_type: "constant_with_warmup"--warmup_steps: 50--logging_steps: 2--freeze_text_encoder: True--dtype: "float16"--seed: 456pip install git+https://github.com/huggingface/parler-tts.git1from parler_tts import ParlerTTSForConditionalGeneration
2from transformers import AutoTokenizer
3import torch
4import soundfile as sf
5
6device = "cuda" if torch.cuda.is_available() else "cpu"
7torch_dtype = torch.float16 if device != "cpu" else torch.float32
8
9model = ParlerTTSForConditionalGeneration.from_pretrained("anzorq/parler-tts-mini-kbd-Murat", torch_dtype=torch_dtype).to(device)
10tokenizer = AutoTokenizer.from_pretrained("anzorq/parler-tts-mini-kbd-Murat")
11
12prompt = "Уэшх нэужьым къиуа псы утхъуар, къэгубжьа хуэдэ, къыпэщӏэхуэр ирихьэхыну хьэзыру йожэх"
13description = "Murat's voice is very clear, but it is very confined in terms of pacing and delivery"
14
15# Simple transliteration since the original tokenizer used in Parler-TTS does not support Cyrillic symbols
16def transliterate(text):
17 char_map = {
18 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j',
19 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u',
20 'ф': 'f', 'х': 'x', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sx', 'ъ': '2', 'ы': 'y', 'ь': '3', 'э': '4',
21 'я': 'ya', 'ӏ': '1'
22 }
23 for cyrillic_char, latin_char in char_map.items():
24 text = text.replace(cyrillic_char, latin_char)
25 return text
26
27transliterated_prompt = transliterate(prompt)
28
29# Generate audio
30input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
31prompt_input_ids = tokenizer(transliterated_prompt, return_tensors="pt").input_ids.to(device)
32generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids).to(torch.float32)
33audio_arr = generation.cpu().numpy().squeeze()
34
35# Save the audio to a file
36sf.write("parler_tts_out.wav", audio_arr, model.config.sampling_rate)