本页面记录了实时语音克隆系统提供的用户界面。代码库提供了两种主要的界面来与语音克隆功能进行交互:命令行界面(CLI)和名为 Toolbox 的图形用户界面(GUI)。这两种界面都连接到相同的底层 SV2TTS 组件(Encoder、Synthesizer 和 Vocoder),但提供了不同的用户体验。
有关使用图形化工具箱的详细说明,请参阅 图形化工具箱。有关使用命令行界面的详细说明,请参阅 命令行界面。
实时语音克隆系统提供了两种不同的方法供用户与语音克隆技术进行交互
两种界面都访问相同的核心模型,并提供相同的基本功能,但控制和可视化选项的级别不同。
来源: demo_cli.py18-68 demo_toolbox.py10-37 README.md40-56
命令行界面实现在 demo_cli.py 中,提供了一种基于文本的方式与语音克隆系统进行交互。它比图形界面更简单,并提供了一个分步指导的过程来进行语音克隆。
可以使用以下命令启动 CLI
python demo_cli.py
其他命令行参数允许进行自定义
python demo_cli.py --enc_model_fpath [path] --syn_model_fpath [path] --voc_model_fpath [path]
图形化工具箱提供了一个功能全面的用户界面,具有先进的可视化功能,使用 PyQt5 实现。这是大多数用户与系统交互的主要方式,提供了比 CLI 更大的灵活性和视觉反馈。
图形化工具箱由两个主要组件组成
toolbox/__init__.py) - 协调 UI 和核心组件之间的交互toolbox/ui.py) - 使用 PyQt5 实现图形界面来源: toolbox/__init__.py44-348 toolbox/ui.py53-607
图形界面分为几个关键区域
两种界面遵循相似的交互模式,但以不同的方式呈现给用户。下图说明了用户与语音克隆系统的总体交互流程
来源: demo_cli.py114-204 toolbox/__init__.py137-311
CLI 作为单个 Python 脚本实现(demo_cli.py),具有简单的交互循环。它通过命令行处理用户输入,加载模型,并顺序处理语音克隆操作。
主要功能
encoder.load_model()、Synthesizer() 和 vocoder.load_model() 进行模型加载encoder.preprocess_wav() 和 encoder.embed_utterance() 进行参考音频处理synthesizer.synthesize_spectrograms() 进行文本处理和梅尔频谱生成vocoder.infer_waveform() 进行音频生成图形化工具箱包含两个主要文件
demo_toolbox.py - 初始化 Toolbox 类的入口点toolbox/__init__.py - 包含协调 UI 和核心组件的 Toolbox 类toolbox/ui.py - 使用 PyQt5 实现 UI 类UI 使用 PyQt5 构建,包含几个相互关联的组件
Toolbox 类将 UI 元素连接到核心语音克隆功能
来源: toolbox/__init__.py137-343 toolbox/ui.py424-607
两种界面都处理三个核心模型(Encoder、Synthesizer 和 Vocoder)的加载。如果不存在,默认模型会自动下载。
来源: utils/default_models.py9-56 demo_cli.py63-67 toolbox/__init__.py313-343
用户界面具有不同的依赖项要求
| 接口 | 依赖项 |
|---|---|
| CLI | PyTorch, numpy, librosa, soundfile |
| GUI | PyTorch, numpy, librosa, soundfile, PyQt5, matplotlib, umap-learn |
两种界面都依赖 requirements.txt 文件来建立必要的 Python 环境。
来源: requirements.txt1-33 demo_cli.py5-15 toolbox/ui.py1-18
实时语音克隆系统提供了两个互补的界面:一个用于简单使用的命令行界面,以及一个用于更高级交互和可视化的全面图形工具箱。两种界面都访问相同的核心 SV2TTS 模型(Encoder、Synthesizer 和 Vocoder),并提供相同的基本语音克隆功能。