'commit'
This commit is contained in:
45
TTS/T1_CloneVoice.py
Normal file
45
TTS/T1_CloneVoice.py
Normal 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
48
TTS/T2_PlayVoice.py
Normal 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()
|
||||||
@@ -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
BIN
TTS/少惠林.wav
Normal file
Binary file not shown.
3
TTS/文档.md
Normal file
3
TTS/文档.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
录制音频
|
||||||
|
https://www.audacityteam.org/download/
|
||||||
|
https://c.biancheng.net/view/yb9mmfd.html
|
||||||
BIN
Util/__pycache__/AlyTtsKit.cpython-310.pyc
Normal file
BIN
Util/__pycache__/AlyTtsKit.cpython-310.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user