This commit is contained in:
HuangHai
2026-01-31 16:05:14 +08:00
parent 5c8aea6e19
commit b20d15c03e
6 changed files with 96 additions and 57 deletions

45
TTS/T1_CloneVoice.py Normal file
View File

@@ -0,0 +1,45 @@
# coding=utf-8
import os
import sys
# 添加项目根目录到 sys.path 以便导入 Util
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if root_dir not in sys.path:
sys.path.append(root_dir)
from Util.AlyTtsKit import QwenTTSManager
# ======= 配置 =======
# 用于声音复刻的音频文件
VOICE_FILE_PATH = os.path.join(os.path.dirname(__file__), "少惠林.wav")
def main():
"""
T1: 声音复刻 (克隆)
"""
print('[T1] 启动声音复刻流程...')
if not os.path.exists(VOICE_FILE_PATH):
print(f'[错误] 找不到录音文件: {VOICE_FILE_PATH}')
print('请确保该目录下存在用于复刻的 wav 文件。')
return
try:
# 1. 初始化管理器
tts_manager = QwenTTSManager()
# 2. 执行复刻
print(f'[系统] 正在上传并复刻音频: {os.path.basename(VOICE_FILE_PATH)} ...')
voice_id = tts_manager.create_voice_enrollment(VOICE_FILE_PATH)
print('\n' + '='*50)
print(f' 声音复刻成功!')
print(f' Voice ID: {voice_id}')
print('='*50)
print('\n请复制上面的 Voice ID用于 T2_PlayVoice.py 进行播音测试。')
except Exception as e:
print(f'[错误] 复刻过程中发生异常: {e}')
if __name__ == '__main__':
main()

48
TTS/T2_PlayVoice.py Normal file
View File

@@ -0,0 +1,48 @@
# coding=utf-8
import os
import sys
# 添加项目根目录到 sys.path 以便导入 Util
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if root_dir not in sys.path:
sys.path.append(root_dir)
from Util.AlyTtsKit import QwenTTSManager
# ======= 配置 =======
# 请在此处粘贴 T1_CloneVoice.py 生成的 Voice ID
MY_VOICE_ID = "qwen-tts-vc-guanyu-voice-20260131160431051-8e51"
# 待合成播音的文本列表
PLAY_TEXTS = [
'您好,这是利用克隆完成的声音进行的播音测试。',
'如果您能听到这段话,说明声音复刻和实时合成流程已经全部打通。',
'这种模块化的拆分让调试变得更加简单了!'
]
def main():
"""
T2: 播音测试
"""
print('[T2] 启动播音测试流程...')
if not MY_VOICE_ID or "请替换" in MY_VOICE_ID:
print('[错误] 未检测到有效的 Voice ID。')
print('请先运行 T1_CloneVoice.py 获取 ID并修改本脚本中的 MY_VOICE_ID 变量。')
return
try:
# 1. 初始化管理器
tts_manager = QwenTTSManager()
# 2. 执行播音
print(f'[系统] 正在使用 Voice ID: {MY_VOICE_ID} 进行播音...')
tts_manager.start_synthesis(MY_VOICE_ID, PLAY_TEXTS)
print('[系统] 播音测试完成。')
except Exception as e:
print(f'[错误] 播音过程中发生异常: {e}')
if __name__ == '__main__':
main()

View File

@@ -1,57 +0,0 @@
# coding=utf-8
# Installation instructions for pyaudio:
# CentOS
# sudo yum install -y portaudio portaudio-devel && pip install pyaudio
# Microsoft Windows
# python -m pip install pyaudio
import os
import sys
# 添加项目根目录到 sys.path 以便导入 Util
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if root_dir not in sys.path:
sys.path.append(root_dir)
from Util.AlyTtsKit import QwenTTSManager
# ======= 测试配置 =======
VOICE_FILE_PATH = os.path.join(os.path.dirname(__file__), "voice.mp3")
def main():
"""
测试函数
"""
print('[系统] 启动 Qwen TTS 测试 (使用 AlyTtsKit)...')
# 待合成的文本
test_texts = [
'您好,我是您的 AI 助手。',
'现在正在测试抽取到 Util 目录下的 AlyTtsKit 功能。',
'希望这次重构能让代码更加模块化!'
]
try:
# 1. 初始化管理器
tts_manager = QwenTTSManager()
# 2. 创建/获取音色
if not os.path.exists(VOICE_FILE_PATH):
print(f'[错误] 测试音频文件不存在: {VOICE_FILE_PATH}')
return
print('[系统] 正在进行声音复刻...')
voice_id = tts_manager.create_voice_enrollment(VOICE_FILE_PATH)
print(f'[系统] 声音复刻成功Voice ID: {voice_id}')
# 3. 执行合成并播放
print('[系统] 开始语音合成...')
tts_manager.start_synthesis(voice_id, test_texts)
print('[系统] 测试完成。')
except Exception as e:
print(f'[系统] 发生错误: {e}')
if __name__ == '__main__':
main()

BIN
TTS/少惠林.wav Normal file

Binary file not shown.

3
TTS/文档.md Normal file
View File

@@ -0,0 +1,3 @@
录制音频
https://www.audacityteam.org/download/
https://c.biancheng.net/view/yb9mmfd.html

Binary file not shown.