Views
No views yet
swiglu, rms_norm and fused_linear_cross_entropy.1import soundfile as sf
2import torch
3import torchaudio
4from transformers import AutoTokenizer, AutoModelForCausalLM
5from neucodec import NeuCodec
6import re
7
8model_name = "malaysia-ai/Qwen3-1.7B-Multilingual-TTS"
9tokenizer = AutoTokenizer.from_pretrained(model_name)
10model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto").to('cuda')
11codec = NeuCodec.from_pretrained("neuphonic/neucodec")
12_ = codec.eval().to('cuda')1text = "Hello! how come I help you? 你好!有什么可以帮你的吗?வணக்கம்! நான் உங்களுக்கு எப்படி உதவுவது? Bonjour! Comment puis-je vous aider ? Xin chào! Tôi có thể giúp gì cho bạn? こんにちは!どうしてお手伝いしましょうか?안녕하세요! 어떻게 도와드릴까요?"
2prompt = f"<|im_start|>jenny_tts_dataset_audio_jenny: {text}<|speech_start|>"
3
4inputs = tokenizer(prompt,return_tensors="pt", add_special_tokens=True).to('cuda')
5
6with torch.no_grad():
7 outputs = model.generate(
8 **inputs,
9 max_new_tokens=2048,
10 do_sample=True,
11 temperature=0.6,
12 repetition_penalty=1.15,
13 )
14
15generated_text = tokenizer.decode(outputs[0], skip_special_tokens=False)
16audio_tokens = re.findall(r'<\|s_(\d+)\|>', generated_text.split('<|speech_start|>')[1])
17audio_tokens = [int(token) for token in audio_tokens]
18audio_codes = torch.tensor(audio_tokens)[None, None]
19
20with torch.no_grad():
21 audio_waveform = codec.decode_code(audio_codes.cuda())
22
23sf.write('7-languages.mp3', audio_waveform[0, 0].cpu(), 24000)1import librosa
2
3y, sr = librosa.load('jenny.wav', sr = 16000)
4with torch.no_grad():
5 codes = codec.encode_code(torch.tensor(y)[None, None])
6tokens = ''.join([f'<|s_{i}|>' for i in codes[0, 0]])
7prompt = f"<|im_start|>I wonder if I shall ever be happy enough to have real lace on my clothes and bows on my caps.<|speech_start|>{tokens}<|im_end|><|im_start|>Hello, how come I help you, 你好, 有什么可以帮你的吗, வணக்கம், நான் உங்களுக்கு எப்படி உதவுவது, bonjour, comment puis-je vous aider.<|speech_start|>"
8
9inputs = tokenizer(prompt,return_tensors="pt", add_special_tokens=True).to('cuda')
10
11with torch.no_grad():
12 outputs = model.generate(
13 **inputs,
14 max_new_tokens=2048,
15 do_sample=True,
16 temperature=0.6,
17 repetition_penalty=1.15,
18 )
19
20generated_text = tokenizer.decode(outputs[0], skip_special_tokens=False)
21audio_tokens = re.findall(r'<\|s_(\d+)\|>', generated_text.split('<|speech_start|>')[-1])
22audio_tokens = [int(token) for token in audio_tokens]
23audio_codes = torch.tensor(audio_tokens)[None, None]
24
25with torch.no_grad():
26 audio_waveform = codec.decode_code(audio_codes.cuda())
27
28sf.write('jenny-4-languages.mp3', audio_waveform[0, 0].cpu(), 24000)