# -*- coding: utf-8 -*- """Ryan 音色中文发音冒烟测试:决定 simon/rhythm 男声旁白选型。""" import os os.environ.setdefault("HF_HOME", "/home/ubuntu/SoundGame/models/hf") os.environ.setdefault("HF_ENDPOINT", "https://hf-mirror.com") import numpy as np import soundfile as sf import torch from qwen_tts import Qwen3TTSModel model = Qwen3TTSModel.from_pretrained( "Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice", device_map="cuda:0", dtype=torch.bfloat16, ) texts = [ "欢迎来到音序回响。我会用六种声音演奏一段序列,请你记住顺序。", "听好了:上行音,向上滑;下行音,向下滑。预备,开始!", "零一二三四五六七八九十", ] wavs, sr = model.generate_custom_voice( text=texts, language=["Chinese"] * len(texts), speaker=["Ryan"] * len(texts), instruct=["热情活力的中文游戏解说语气,吐字清晰"] * len(texts), ) os.makedirs("/home/ubuntu/SoundGame/tools/samples", exist_ok=True) for i, wav in enumerate(wavs): wav = np.asarray(wav, dtype=np.float32) sf.write(f"/home/ubuntu/SoundGame/tools/samples/ryan_zh_{i}.wav", wav, sr) print(f"ryan_zh_{i}: {len(wav)/sr:.2f}s peak={np.max(np.abs(wav)):.3f}") print("done")