菜单

命令行界面

相关源文件

本文档提供了一份关于实时语音克隆系统命令行界面 (CLI) 的全面指南。CLI 为图形工具箱 (Graphical Toolbox) 提供了一个基于文本的替代方案,适用于偏好终端交互或需要将语音克隆功能集成到脚本或自动化工作流程中的用户。

概述

CLI 在 demo_cli.py 中实现,并提供了一种无需图形界面即可进行语音克隆的交互方式。它允许您

  1. 指定编码器、合成器和声码器的自定义模型路径
  2. 在 CPU 或 GPU 上处理音频
  3. 从参考音频文件克隆声音
  4. 使用克隆的声音合成文本
  5. 将生成的音频保存到磁盘

来源: demo_cli.py1-209

安装与设置

在使用 CLI 之前,请确保您已

  1. 从存储库安装了所有必需的依赖项
  2. 下载了预训练模型(手动下载或使用自动下载功能)

CLI 将在未找到默认模型时自动检查并下载它们。

来源: demo_cli.py63-67 utils/default_models.py35-56

命令行参数

CLI 支持多个命令行参数来自定义其行为

参数描述默认值
-e, --enc_model_fpath编码器模型路径saved_models/default/encoder.pt
-s, --syn_model_fpath合成器模型路径saved_models/default/synthesizer.pt
-v, --voc_model_fpath声码器模型路径saved_models/default/vocoder.pt
--cpu即使 GPU 可用,也强制使用 CPU 处理
--no_sound禁用音频播放
--seed设置随机种子以获得确定性输出

使用示例

python demo_cli.py --cpu --no_sound

来源: demo_cli.py18-39

语音克隆流程

交互式工作流

CLI 在一个交互式循环中运行,引导您完成语音克隆过程

来源: demo_cli.py114-209

分步流程

  1. 模型初始化:系统加载编码器、合成器和声码器模型。

  2. 参考音频输入:系统会提示您提供包含要克隆的声音的音频文件的路径。

    Reference voice: enter an audio filepath of a voice to be cloned (mp3, wav, m4a, flac, ...):
    
  3. 声音嵌入:系统处理音频并提取声音嵌入,以捕捉说话者的声音特征。

  4. 文本输入:系统会提示您输入要合成的文本。

    Write a sentence (+-20 words) to be synthesized:
    
  5. 频谱图生成:合成器根据文本和声音嵌入生成梅尔频谱图。

  6. 波形生成:声码器将梅尔频谱图转换为音频波形。

  7. 输出:生成的音频将被播放(除非指定了 --no_sound),并保存为名为 demo_output_XX.wav 的 WAV 文件。

来源: demo_cli.py119-203 synthesizer/inference.py70-128

技术实现细节

组件交互

CLI 与语音克隆系统的三个核心组件进行交互

来源: demo_cli.py63-67 demo_cli.py130-143 demo_cli.py156-162 demo_cli.py175

音频处理流程

来源: demo_cli.py136-137 demo_cli.py143 demo_cli.py160-162 demo_cli.py175

使用自定义模型

CLI 允许您为任何三个组件指定自定义模型

  1. 自定义编码器:

    python demo_cli.py -e path/to/encoder.pt
    
  2. 自定义合成器:

    python demo_cli.py -s path/to/synthesizer.pt
    
  3. 自定义声码器:

    python demo_cli.py -v path/to/vocoder.pt
    

您可以使用这些选项来测试不同的模型,或者使用您自己训练的模型。

来源: demo_cli.py22-30

高级特性

确定性输出

通过设置 --seed 参数,您可以使输出具有确定性

python demo_cli.py --seed 42

当指定了种子时,脚本将在每个生成步骤之前重置 PyTorch 随机种子并重新加载合成器和声码器模型,从而确保对相同的输入产生相同的输出。

来源: demo_cli.py35-36 demo_cli.py150-153 demo_cli.py168-171

CPU 处理

默认情况下,如果可用,系统将使用 GPU 加速。您可以使用 --cpu 标志强制进行 CPU 处理

python demo_cli.py --cpu

如果您遇到与 GPU 相关的问题,或者您没有兼容的 GPU,此功能会很有用。

来源: demo_cli.py31-32 demo_cli.py41-43

限制和注意事项

  1. 内存占用:模型,尤其是合成器,需要大量内存。如果您遇到内存问题,请考虑使用 CPU 模式。

  2. 音频质量:CLI 实现包括用于提高音频质量的后处理,例如

    • 填充生成的音频以补偿播放问题
    • 修剪多余的静默以提高自然度
  3. 便携性:请注意,音频文件的路径需要从您运行脚本的位置可访问。

来源: demo_cli.py177-184

故障排除

问题可能解决方案
未找到模型确保 saved_models/default/ 目录存在并包含模型文件
未播放音频检查您系统的音频是否正常工作。如果不是,请使用 --no_sound 标志
音频格式错误确保您的参考音频是支持的格式(mp3、wav、m4a、flac)
内存不足使用 --cpu 标志以避免 GPU 内存限制
需要确定性输出使用 --seed 参数设置固定的种子

来源: demo_cli.py192-196 demo_cli.py205-208

示例会话

这是一个典型的 CLI 会话示例

  1. 启动 CLI

    python demo_cli.py
    
  2. 系统检查并加载模型。

  3. 当提示时,输入参考语音文件的路径

    Reference voice: enter an audio filepath of a voice to be cloned (mp3, wav, m4a, flac, ...):
    /path/to/your/reference.wav
    
  4. 当提示时,输入要合成的文本

    Write a sentence (+-20 words) to be synthesized:
    This is a demonstration of voice cloning using the command line interface.
    
  5. 等待处理完成。

  6. 收听生成的音频并检查保存的文件(例如,demo_output_00.wav)。

  7. 继续进行其他语音克隆任务,或按 Ctrl+C 退出。

来源: demo_cli.py119-203