语音 Core
Virtuals 智能体被设计为拥有与自身个性和角色相符的独特语音。因此,训练语音模型是一个至关重要的过程,它确保每个角色的语音不仅逼真,而且与他们设定的人物形象保持一致。
语音 Core 中使用了两个模块:
- 语音转文本模块:语音转文本(STT)模块通过大量的语音数据进行训练。这样的训练使该模块能够准确转录各种口音、方言和说话模式,在不同的用户场景中都能展现出多功能性和可靠性。
- 文本转语音模块:对于文本转语音(TTS)模块,我们采用变分推断文本转语音(VITS)训练方法。VITS 以能够生成高质量、自然的语音而闻名。对于我们的平台来说,这种训练尤为重要,因为每个人工智能角色都需要一种特定的语音,以匹配其独特的个性和特点。VITS 模型能够在语音合成中实现这种定制化和高质量的要求。
在模型训练之前,需要进行数据处理。
数据预处理所使用的技术
- 格式一致性:将所有音频文件统一为相同的格式(WAV)和规格(22050 赫兹,单声道)可确保一致性,这对于机器学习模型的最佳性能至关重要。不一致的音频格式会导致输入数据的可变性,可能使模型产生混淆并降低性能。
- 采样率归一化(22050 赫兹):采样率决定了音频文件每秒的采样数量。像 22050 赫兹这样的标准采样率经常被使用,因为它足以捕捉人类语音的频率范围,同时能使文件大小易于管理。它也符合奈奎斯特定理,能够捕捉高达 11025 赫兹的所有频率,这涵盖了大部分人类听觉范围。
- 单声道:将立体声或多声道音频文件转换为单声道,可确保模型在单通道上进行训练,从而简化学习过程。
样例代码:
import os from pydub import AudioSegment upload_dir = 'upload_dir' output_dir = 'out' # Ensure the output directory exists os.makedirs(output_dir, exist_ok=True) extensions = ['wav', 'mp3', 'ogg'] # Process all files in the upload directory for filename in os.listdir(upload_dir): if any(filename.lower().endswith(ext) for ext in extensions): # Construct file paths file_path = os.path.join(upload_dir, filename) output_path = os.path.join(output_dir, os.path.splitext(filename)[0] + '.wav') # Load the audio file audio = AudioSegment.from_file(file_path) # Convert to WAV, 22050 Hz, mono audio = audio.set_frame_rate(22050).set_channels(1) # Export the processed audio audio.export(output_path, format='wav')
了解更多关于为语音 Core 做贡献的信息。