- 新增 web/ 纯音频 HTML5 平台:共享引擎(手势/WebAudio 三层/设置/震动)、 Node 零依赖服务器(静态 + 注册登录 + 进度存档 API) - 游戏:剑与声(RPG 新作)、声命线、暗室(重设计)、音序回响(重设计)、 节拍行者(跟随领奏重构)、盲航(同向闪避重构);声东击西删除 - 全局功能:男声/女声双套 TTS 资产、三档语速、BGM 音量三档、 震动反馈语言(10 种震型)、服务器进度同步 - 资产:899 ogg + 899 m4a(Qwen3-TTS 双性别语音、Stable Audio 3 音效、 Mureka BGM 4+3 首),终检零缺失 - 文档:docs/design/ 13 篇设计审查文档、docs/audio/ 资产管线、 web/server/README.md API 文档
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
# -*- 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")
|