菜单

用户界面

相关源文件

本页面记录了实时语音克隆系统提供的用户界面。代码库提供了两种主要的界面来与语音克隆功能进行交互:命令行界面(CLI)和名为 Toolbox 的图形用户界面(GUI)。这两种界面都连接到相同的底层 SV2TTS 组件(Encoder、Synthesizer 和 Vocoder),但提供了不同的用户体验。

有关使用图形化工具箱的详细说明,请参阅 图形化工具箱。有关使用命令行界面的详细说明,请参阅 命令行界面

接口概述

实时语音克隆系统提供了两种不同的方法供用户与语音克隆技术进行交互

  1. 命令行界面 - 一个基于文本的界面,用于简单的语音克隆操作
  2. 图形化工具箱 - 一个功能丰富、具有可视化功能和交互式组件的 GUI

两种界面都访问相同的核心模型,并提供相同的基本功能,但控制和可视化选项的级别不同。

来源: 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]

来源: demo_cli.py114-208

图形工具箱

图形化工具箱提供了一个功能全面的用户界面,具有先进的可视化功能,使用 PyQt5 实现。这是大多数用户与系统交互的主要方式,提供了比 CLI 更大的灵活性和视觉反馈。

特性

  • 使用 PyQt5 构建的交互式 GUI
  • 语音嵌入可视化
  • 梅尔频谱可视化
  • 语音嵌入的 UMAP 投影
  • 用于选择参考音频的数据集浏览器
  • 音频录制功能
  • 实时音频播放
  • 多模型选择
  • 用于输入文本的文本编辑器

架构

图形化工具箱由两个主要组件组成

  1. Toolbox 类toolbox/__init__.py) - 协调 UI 和核心组件之间的交互
  2. UI 类toolbox/ui.py) - 使用 PyQt5 实现图形界面

来源: toolbox/__init__.py44-348 toolbox/ui.py53-607

UI 组件

图形界面分为几个关键区域

  1. 浏览器面板 - 用于选择数据集、说话人和话语
  2. 生成面板 - 用于输入文本和生成语音
  3. 可视化面板 - 用于显示嵌入和频谱图
  4. UMAP 投影面板 - 用于在二维空间中可视化语音嵌入

来源: toolbox/ui.py424-603

用户交互流程

两种界面遵循相似的交互模式,但以不同的方式呈现给用户。下图说明了用户与语音克隆系统的总体交互流程

来源: 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_cli.py63-204

图形工具箱

图形化工具箱包含两个主要文件

  1. demo_toolbox.py - 初始化 Toolbox 类的入口点
  2. toolbox/__init__.py - 包含协调 UI 和核心组件的 Toolbox 类
  3. toolbox/ui.py - 使用 PyQt5 实现 UI 类

UI 使用 PyQt5 构建,包含几个相互关联的组件

  • 用于数据集、说话人和话语选择的浏览器元素
  • 用于合成和声码的交互式控件
  • 用于可视化的 Matplotlib 画布
  • 音频录制和播放控件

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

要求

用户界面具有不同的依赖项要求

接口依赖项
CLIPyTorch, numpy, librosa, soundfile
GUIPyTorch, 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),并提供相同的基本语音克隆功能。

有关使用图形化工具箱的详细信息,请参阅 图形化工具箱。有关使用命令行界面的详细说明,请参阅 命令行界面