QwenTTS 预设音色

复制代码
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel
import os

# ============ 1. 设置代理 (如果需要) ============
os.environ['HTTP_PROXY'] = 'http://127.0.0.1:7890'
os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:7890'

# ============ 2. 定义你要保存模型的【指定文件夹】路径 ============
# 使用绝对路径,例如在D盘创建一个`my_tts_models`文件夹
TARGET_MODEL_DIR = r"D:\AI\short_video\tts\Qwen3-TTS-0.6B-CustomVoice"
# 下载目录和导入目录都是要一个啊
# 我是用的github下载的 目录结构不变 git clone https://huggingface.co/Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoic.git
# ============ 3. 加载模型 (关键修正) ============
model = Qwen3TTSModel.from_pretrained(
    r"D:\AI\short_video\tts\Qwen3-TTS-12Hz-0.6B-CustomVoice",  # 1. 必须用0.6B 2. 必须用CustomVoice
    cache_dir=TARGET_MODEL_DIR,               # 关键参数:指定下载目录
    device_map="cuda",
    # dtype=torch.float16, # 报错就关掉
    # attn_implementation="flash_attention_2", # 如果没装flash-attn,先注释掉
)
# 强制清理GPU缓存并验证
import torch
torch.cuda.empty_cache()
print(f"当前显存占用: {torch.cuda.memory_allocated(0)/1024**3:.2f} GB")

# 检查输入数据
print("模型加载完成,准备生成...")
# ============ 4. 生成语音 (使用预设音色的纯TTS) ============
wavs, sr = model.generate_custom_voice(
    text="沈逸琛遭养子沈寒轩陷害被送精神病院,还被顶替作家身份。沈家逼他替婚石宕村姑娘,殊不知对方是首富千金叶婉晨。二人联手,在作家论坛戳穿沈寒轩真面目,又在招标会曝光其罪行与私生子身份。最终恶人落网,沈逸琛复仇成功,与叶婉晨终成眷属。",
    language="Chinese",
    speaker="Uncle_Fu",  # 使用预设音色
    instruct="用解说文案的语气",       # 纯TTS,指令留空。或者直接省略此参数。
)

# ============ 5. 将生成的音频保存到【指定输出文件夹】 ============
TARGET_AUDIO_DIR = r"D:\AI\short_video\tts"        # 定义你的音频输出文件夹
os.makedirs(TARGET_AUDIO_DIR, exist_ok=True)  # 确保文件夹存在
output_path = os.path.join(TARGET_AUDIO_DIR, "output_custom_voice.wav")

sf.write(output_path, wavs[0], sr)
print(f"✅ 语音生成成功!模型已下载/加载至:{TARGET_MODEL_DIR}")
print(f"✅ 音频文件已保存至:{output_path}")
Speaker Voice Description Native language
Vivian Bright, slightly edgy young female voice. Chinese
Serena Warm, gentle young female voice. Chinese
Uncle_Fu Seasoned male voice with a low, mellow timbre. Chinese
Dylan Youthful Beijing male voice with a clear, natural timbre. Chinese (Beijing Dialect)
Eric Lively Chengdu male voice with a slightly husky brightness. Chinese (Sichuan Dialect)
Ryan Dynamic male voice with strong rhythmic drive. English
Aiden Sunny American male voice with a clear midrange. English
Ono_Anna Playful Japanese female voice with a light, nimble timbre. Japanese
Sohee Warm Korean female voice with rich emotion. Korean

pip install accelerate>=0.20.0

pip install qwen-tts --no-deps

--no-deps 参数是关键!它会跳过自动安装依赖包

相关推荐
冷雨夜中漫步2 小时前
Python入门——字符串
开发语言·python
Yvonne爱编码2 小时前
Java 接口学习核心难点深度解析
java·开发语言·python
June bug2 小时前
(#数组/链表操作)合并两个有重复元素的无序数组,返回无重复的有序结果
数据结构·python·算法·leetcode·面试·跳槽
人工智能AI技术2 小时前
【Agent从入门到实践】33 集成多工具,实现Agent的工具选择与执行
人工智能·python
AIFQuant2 小时前
如何通过股票数据 API 计算 RSI、MACD 与移动平均线MA
大数据·后端·python·金融·restful
70asunflower2 小时前
Python with 语句与上下文管理完全教程
linux·服务器·python
deephub3 小时前
为什么标准化要用均值0和方差1?
人工智能·python·机器学习·标准化
hnxaoli3 小时前
win10程序(十五)归档文件的xlsx目录自动分卷
python
喵手3 小时前
Python爬虫零基础入门【第九章:实战项目教学·第8节】限速器进阶:令牌桶 + 动态降速(429/5xx)!
爬虫·python·令牌桶·python爬虫工程化实战·python爬虫零基础入门·限速器·动态降速