语音核心
VIRTUAL Agent 旨在拥有与其个性和角色相契合的独特声音。因此,对语音模型进行训练是一个关键过程,以确保每个角色的声音不仅真实,而且与其设计的人设保持一致。
Voice Core 中使用了两个模块。
语音转文本模块:STT 模块使用广泛的语音数据进行训练。这种训练使该模块能够准确转录各种口音、方言和语音模式,使其在不同用户场景中都具备多样性和可靠性。
文本转语音模块:对于 TTS 模块,我们采用用于文本转语音的变分推断(VITS)训练。VITS 以其生成高质量、自然语音的能力而闻名。这种训练对我们的平台尤为重要,因为每个 AI 角色都需要与其独特个性和特征相匹配的特定声音。VITS 模型使语音合成能够实现这种级别的定制和质量。
在模型训练之前,会先进行数据处理。
数据预处理所使用的技术
格式一致性:将所有音频文件保持为相同的格式(WAV)和规格(22050 Hz,单声道)可确保一致性,这对于机器学习模型发挥最佳性能至关重要。不一致的音频格式可能导致输入数据的差异,从而使模型感到混乱并降低性能。
采样率归一化(22050 Hz):采样率决定了音频文件每秒包含多少个样本。像 22050 Hz 这样的标准采样率通常被使用,因为它足以捕捉人类语音的频率范围,同时还能保持文件大小可控。它还与奈奎斯特定理相一致,可捕获高达 11025 Hz 的所有频率,这覆盖了人类听觉范围的大部分。
单声道通道:将立体声或多通道音频文件转换为单声道,可确保模型在单一通道上进行训练,从而简化学习过程。
示例代码
import os
from pydub import AudioSegment
upload_dir = 'upload_dir'
output_dir = 'out'
# 确保输出目录存在
os.makedirs(output_dir, exist_ok=True)
extensions = ['wav', 'mp3', 'ogg']
# 处理上传目录中的所有文件
for filename in os.listdir(upload_dir):
if any(filename.lower().endswith(ext) for ext in extensions):
# 构建文件路径
file_path = os.path.join(upload_dir, filename)
output_path = os.path.join(output_dir, os.path.splitext(filename)[0] + '.wav')
# 加载音频文件
audio = AudioSegment.from_file(file_path)
# 转换为 WAV,22050 Hz,单声道
audio = audio.set_frame_rate(22050).set_channels(1)
# 导出处理后的音频
audio.export(output_path, format='wav')
最后更新于