语音核心

VIRTUAL Agent 旨在拥有与其个性和角色相一致的独特声音。因此,训练语音模型是一个关键过程,以确保每个角色的声音不仅逼真,而且与其设计的人设保持一致。

Voice Core 中使用了两个模块。

语音转文本模块:STT 模块使用广泛的语音数据进行训练。该训练使模块能够准确转录各种口音、方言和语音模式,使其在不同的用户场景中具有多功能性和可靠性。

文本转语音模块:对于 TTS 模块,我们采用用于文本到语音的变分推断(VITS)训练。VITS 以能够生成高质量、自然听感的语音而闻名。对于我们的平台而言,这种训练尤为重要,因为每个 AI 角色都需要与其独特个性和特征相匹配的特定声音。VITS 模型允许在语音合成中实现这种程度的定制和质量。

在模型训练之前,会进行数据处理。

用于数据预处理的技术

  1. 格式一致性:将所有音频文件保持为相同格式(WAV)和规格(22050 Hz,单声道)可确保一致性,这对于机器学习模型的最佳性能至关重要。不一致的音频格式可能导致输入数据的可变性,从而使模型困惑并降低性能。

  2. 采样率归一化(22050 Hz):采样率决定了音频文件每秒的采样次数。像 22050 Hz 这样的标准采样率通常被使用,因为它足以捕捉人类语音的频率范围,同时保持文件大小可控。它也符合奈奎斯特定理,可以捕捉高达 11025 Hz 的所有频率,覆盖了大多数人的听觉范围。

  3. 单声道通道:将立体声或多通道音频文件转换为单声道可确保模型在单一通道上进行训练,从而简化学习过程。

chevron-right示例代码hashtag
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')

了解有关为 Voice Core 做出贡献的更多信息。

最后更新于