Views
No views yet
1pip install git+https://github.com/huggingface/parler-tts.git
2pip install git+https://github.com/getuka/RubyInserter.git1import torch
2from parler_tts import ParlerTTSForConditionalGeneration
3from transformers import AutoTokenizer
4import soundfile as sf
5from rubyinserter import add_ruby
6
7device = "cuda:0" if torch.cuda.is_available() else "cpu"
8
9model = ParlerTTSForConditionalGeneration.from_pretrained("2121-8/japanese-parler-tts-mini").to(device)
10prompt_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="prompt_tokenizer")
11description_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="description_tokenizer")
12
13prompt = "こんにちは、今日はどのようにお過ごしですか?"
14description = "A female speaker with a slightly high-pitched voice delivers her words at a moderate speed with a quite monotone tone in a confined environment, resulting in a quite clear audio recording."
15
16
17prompt = add_ruby(prompt)
18input_ids = description_tokenizer(description, return_tensors="pt").input_ids.to(device)
19prompt_input_ids = prompt_tokenizer(prompt, return_tensors="pt").input_ids.to(device)
20
21generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
22audio_arr = generation.cpu().numpy().squeeze()
23sf.write("parler_tts_japanese_out.wav", audio_arr, model.config.sampling_rate)1import torch
2from parler_tts import ParlerTTSForConditionalGeneration
3from transformers import AutoTokenizer
4import soundfile as sf
5from rubyinserter import add_ruby
6
7device = "cuda:0" if torch.cuda.is_available() else "cpu"
8
9model = ParlerTTSForConditionalGeneration.from_pretrained("2121-8/japanese-parler-tts-mini").to(device)
10prompt_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="prompt_tokenizer")
11description_tokenizer = AutoTokenizer.from_pretrained("2121-8/japanese-parler-tts-mini", subfolder="description_tokenizer")
12
13prompt = "こんにちは、今日はどのようにお過ごしですか?"
14description = "JSUT speaks with an expressive and animated tone in an excellent recording, with a very close-sounding proximity that suggests a private and intimate setting, and delivers her words at a rapid pace."
15
16
17prompt = add_ruby(prompt)
18input_ids = description_tokenizer(description, return_tensors="pt").input_ids.to(device)
19prompt_input_ids = prompt_tokenizer(prompt, return_tensors="pt").input_ids.to(device)
20
21generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
22audio_arr = generation.cpu().numpy().squeeze()
23sf.write("parler_tts_japanese_out.wav", audio_arr, model.config.sampling_rate)