Files
SoundGame Dev f0f0a9b50e 初始提交:3 款纯音频游戏 + 共享引擎 + 完整文档与资产管线
- 共享引擎(app/src/main):GestureEngine 6 手势识别、AudioEngine 三层音频
  (ExoPlayer BGM 交叉淡入 / 对白 ducking / SoundPool 低延迟)、Game/GameEngine
  状态机接口、MainActivity 全屏封面 + TalkBack
- 《声命线》storyline:末世互动广播剧,3 幕 8 抉择点 4 结局
- 《声东击西》reflex:听声辨位反应,12 波战斗 + BGM 三档 BPM 变速
- 《暗室》escape:3x3 网格密室逃脱,钥匙→铁柜→保险丝→电箱→大门谜题链
- 文档:setup(从零搭建)/ architecture(架构)/ engine-api(引擎 API)/
  asset-pipeline(资产流水线)/ games/*(三款游戏设计文档)
- 资产管线:Qwen3-TTS 对白 + 程序合成音效/BGM + Mureka BGM 的 gen 脚本与台账,
  全部 ogg 资产入库可复现
- env.d 环境脚本:android/tts 入库;sfx/mureka 含密钥不入库,仅提交 .example.sh 模板
2026-08-29 13:00:34 +08:00

97 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Qwen3-TTS 本地对白生成环境使用说明
## 环境位置
- 虚拟环境:`/home/ubuntu/SoundGame/.venv-tts`(Python 3.12.14,uv 创建)
- 关键包:`torch 2.11.0+cu128`、`torchaudio 2.11.0+cu128`、`qwen-tts 0.1.1`、`soundfile`、`transformers 4.57.3`
- 模型缓存:`/home/ubuntu/SoundGame/models/hf`(HF_HOME)
- `Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice`(预置音色 + 情感指令,主力)
- `Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign`(文字描述造音色)
- `Qwen/Qwen3-TTS-Tokenizer-12Hz`(语音编解码器,上面两个模型自带副本,这个是独立的)
## 启用环境
```bash
source /home/ubuntu/SoundGame/env.d/tts.sh # 设置 HF_HOME / HF_ENDPOINT(hf-mirror 镜像)
source /home/ubuntu/SoundGame/.venv-tts/bin/activate
```
注意:本机连不通 huggingface.co,必须走 `HF_ENDPOINT=https://hf-mirror.com`(tts.sh 已设好)。
## 生成对白(CustomVoice:预置音色 + 情感指令)
```python
import torch, soundfile as sf
from qwen_tts import Qwen3TTSModel
model = Qwen3TTSModel.from_pretrained(
"Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice",
device_map="cuda:0",
dtype=torch.bfloat16,
)
wavs, sr = model.generate_custom_voice(
text="快躲开!它来了!",
language="Chinese",
speaker="Vivian",
instruct="用惊恐、急促的语气大声喊出来", # 不需要情感控制时省略
)
sf.write("out.wav", wavs[0], sr) # sr = 24000
```
支持批量:`text`/`language`/`speaker`/`instruct` 均可传等长 list。
可透传 HF `generate` 参数,如 `max_new_tokens=2048`。
## VoiceDesign(文字描述造音色)
```python
model = Qwen3TTSModel.from_pretrained(
"Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign",
device_map="cuda:0", dtype=torch.bfloat16,
)
wavs, sr = model.generate_voice_design(
text="哥哥,你回来啦!",
language="Chinese",
instruct="撒娇稚嫩的萝莉女声,音调偏高且起伏明显",
)
```
## 预置音色查询
代码查询:
```python
model.get_supported_speakers() # ['aiden','dylan','eric','ono_anna','ryan','serena','sohee','uncle_fu','vivian']
model.get_supported_languages() # auto/chinese/english/french/german/italian/japanese/korean/portuguese/russian/spanish
```
中文对白推荐音色(母语中文):
| speaker | 描述 |
|---|---|
| Vivian | 明亮略带锋芒的年轻女声 |
| Serena | 温暖柔和的年轻女声 |
| Uncle_Fu | 低沉醇厚的中年男声 |
| Dylan | 北京话年轻男声 |
| Eric | 四川话活泼男声,略带沙哑 |
(其余:Ryan/Aiden 英语男声,Ono_Anna 日语女声,Sohee 韩语女声)
## 冒烟测试
```bash
/home/ubuntu/SoundGame/.venv-tts/bin/python /home/ubuntu/SoundGame/tools/tts_smoke_test.py
# 输出 /home/ubuntu/SoundGame/tools/samples/tts_test.wav(实测 1.92s, 24kHz)
```
## Web UI(可选)
```bash
qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --ip 0.0.0.0 --port 8000
```
## 已知事项
- 未装 `flash-attn`(可选加速,编译耗时长;RTX 3090 24GB 不装也完全够用,加载+生成一句仅十几秒)。
- 系统无 `sox` 命令行二进制(无 sudo 装不了),qwen-tts 会打印警告但**不影响生成**;只有用到 sox 音频处理链路时才需要它。
- 显存占用:1.7B 模型 bf16 推理远低于 24GB,充足。