基于 MeloTTS.cpp 的轻量级的纯 C++ 文本转语音(TTS)库

MeloTTS.cpp 是一个轻量级的纯 C++ 文本转语音(Text-to-Speech,TTS)库,由 MyShell.ai 开发并发布。它基于 MeloTTS 项目,支持多种语言的语音合成,包括英语、中文(混合英语)以及即将支持的日语等。

MeloTTS.cpp 的技术架构主要包含以下三个模型:

BERT 模型:用于文本预处理,采用 bert-base-multilingual-uncased(中文)或 bert-base-uncased(英语)。
TTS 模型:负责将处理后的文本转换为语音。
DeepFilterNet 模型:用于去噪,特别是处理 int8 量化模型生成的背景噪声。

一、下载 OpenVINO™ GenAI C++ 包

Windows 系统:

1. 在命令提示符(cmd)中运行以下命令下载 OpenVINO™ GenAI C++ 包:

curl -O https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/2025.1/windows/openvino_genai_windows_2025.1.0.0_x86_64.zip
tar -xzvf openvino_genai_windows_2025.1.0.0_x86_64.zip
Linux 系统:

1. 访问 OpenVINO 官方网站的 OpenVINO™ GenAI 包下载页面。
2. 下载适合您系统的 C++ 包,并解压该包。

二、安装 CMake

Windows 系统

1. 访问 CMake 官方下载页面,下载适合当前系统的安装程序

CMake 官方下载页面。

在安装选项中,建议勾选“Add CMake to system PATH for all users”或“Add CMake to system PATH for current user”,以便在命令行中直接使用 CMake。

2. 验证安装

打开命令提示符(cmd),输入以下命令验证 CMake 是否安装成功:

cmake --version

如果显示 CMake 的版本信息,则表示安装成功。

Linux 系统

1. 使用包管理器安装(适用于基于 Debian 的系统,如 Ubuntu)

打开终端,输入以下命令安装 CMake:

sudo apt update
sudo apt install cmake

2. 使用包管理器安装(适用于基于 Red Hat 的系统,如 CentOS 或 Fedora)

sudo yum install cmake    # CentOS
sudo dnf install cmake    # Fedora

三、克隆 MeloTTS.cpp 仓库

1. 安装 Git LFS(如果尚未安装):

git lfs install

2. 克隆 MeloTTS.cpp 仓库:

git clone https://github.com/apinge/MeloTTS.cpp.git

四、构建和运行项目

Windows 系统:

1. 打开命令提示符并设置 OpenVINO™ GenAI 环境变量(假设 `<OpenVINO_GenAI_DIR>` 是 OpenVINO™ GenAI 包的解压目录):

<OpenVINO_GenAI_DIR>setupvars.bat

2. 切换到 MeloTTS.cpp 仓库目录并构建项目:

cd MeloTTS.cpp
cmake -S . -B build && cmake --build build --config Release

3. 运行构建后的可执行文件:

.uildReleasemeloTTS_ov.exe --model_dir ov_models --input_file inputs_en.txt --output_filename audio
Linux 系统:

1. 打开终端并设置 OpenVINO™ GenAI 环境变量:

source <OpenVINO_GenAI_DIR>/setupvars.sh

2. 切换到 MeloTTS.cpp 仓库目录并构建项目:

cd MeloTTS.cpp
cmake -S . -B build && cmake --build build --config Release

3. 运行构建后的可执行文件:

./build/meloTTS_ov --model_dir ov_models --input_file inputs_en.txt --output_filename audio

五、启用或禁用 DeepFilterNet

DeepFilterNet 是用于从 int8 量化模型中过滤背景噪声的功能,该功能默认启用。如果希望禁用 DeepFilterNet,可以在 CMake 阶段使用以下选项:

cmake -S . -B build -DUSE_DEEPFILTERNET=OFF

六、参数说明

可以通过以下参数自定义运行脚本的行为:

--model_dir: 指定包含模型文件、字典文件和第三方资源文件的目录,默认为仓库中的 ov_models 文件夹。

--tts_device: 指定用于 TTS 模型的 OpenVINO 设备,默认为 CPU。

--bert_device: 指定用于 BERT 模型的 OpenVINO 设备,默认为 CPU。

--nf_device: 指定用于 DeepFilterNet 模型的 OpenVINO 设备,默认为 CPU。

--input_file: 指定要处理的输入文本文件,确保文本为 UTF-8 格式。

--output_filename: 指定生成的输出音频文件名,格式为 {output_filename}_{language_style}.wav

--speed: 指定输出音频的速度,默认为 1.0。

--quantize: 是否使用量化 TTS 模型,默认为 true

--disable_bert: 是否禁用 BERT 模型推理,默认为 false

--disable_nf: 是否禁用 DeepFilterNet 模型推理,默认为 false

--language: 指定 TTS 的语言,默认为英语(EN)。

七、NPU 设备支持

如果使用 NPU 作为推理设备,以下是启用该功能的方法:

1. 构建时,启用 BERT 模型的 NPU 支持:

cmake -DUSE_BERT_NPU=ON -B build -S .

2. 设置模型的设备参数:

buildReleasemeloTTS_ov.exe --bert_device NPU --nf_device NPU --model_dir ov_models --input_file inputs.txt --output_file audio.wav

八、支持的系统和版本

操作系统: Windows, Linux

CPU 架构: Meteor Lake, Lunar Lake, 以及大多数 Intel CPU

GPU 架构: Intel® Arc™ Graphics (Intel Xe, 包括 iGPU)

NPU 架构: NPU 4, 以及 Meteor Lake 或 Lunar Lake 中的 NPU

OpenVINO 版本: >=2024.4

C++ 版本: >=C++20

注意事项:如果使用的是 Windows 系统的 AI 笔记本电脑,通常 GPU 和 NPU 驱动程序已经预装。但对于 Linux 用户或希望更新到最新驱动程序的 Windows 用户,应遵循以下指南:

GPU: 如果使用 GPU,请参考 OpenVINO™ 的 Intel® 处理器图形配置 以安装 GPU 驱动程序。
NPU: 如果使用 NPU,请参考 NPU 设备文档 以确保 NPU 驱动程序正确安装。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
Co_Shean01的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容