Aivis:AI声音模仿系统的创新之旅

在人工智能技术的不断进步中,声音合成技术也迎来了新的发展机遇。Aivis项目正是这一领域的杰出代表,它提供了一个全流程的工具,让用户能够从数据集的创建到学习再到推理,一站式地生成逼真的语音。

Aivis是一个基于Bert-VITS2模型的系统,它通过自动化的流程,大幅减少了从一般音源创建学习用数据集所需的工作量和时间。Aivis的设计理念是简化数据准备过程,并通过Web UI简化最终的人工注释工作,使得用户即使没有专业知识也能轻松创建高质量的语音数据集。系统具有以下特点:

  • 自动化数据准备:Aivis利用AI技术自动化了从普通音源创建数据集的过程,包括背景噪音的去除和语音的分割。
  • 高质量的语音生成:即使是使用Aivis创建的较短数据集训练的模型,也能生成与专用语音库训练出的模型相媲美的高质量语音。
  • 易于使用的Web UI:Aivis提供了一个Web界面,使用户能够轻松地进行数据集的最终编辑和注释。

安装与使用

安装Aivis

系统要求

Aivis主要在Linux(Ubuntu 20.04 LTS)x64环境下进行了测试。对于Windows用户,建议使用WSL2。此外,Aivis的运行需要NVIDIA GPU支持。

安装步骤
  1. 安装基础软件

    • Git
    • Python 3.11
    • Poetry
    • FFmpeg
  2. 获取Aivis项目代码

    git clone --recurse https://github.com/tsukumijima/Aivis.git

  3. 创建Python虚拟环境并安装依赖

    cd Aivis
    poetry env use 3.11
    poetry install --no-root

  4. 更新已安装的环境: 如果需要更新到最新版本,可以使用以下命令:

    git pull
    git submodule update --init --recursive
    poetry install --no-root

Docker安装

对于希望使用Docker的用户,需要先安装Git和Docker。然后执行以下命令:

  1. 获取Aivis项目代码

    git clone --recurse https://github.com/tsukumijima/Aivis.git

  2. 构建Docker镜像

    cd Aivis
    ./Aivis-Docker.sh build

  3. 使用Docker运行Aivis

    ./Aivis-Docker.sh --help

使用Aivis

数据集准备
  1. 将音源文件放入01-Sources目录下。支持多种音频格式,系统会自动转换为wav格式。

  2. 如果音源文件较长,建议分割成10分钟左右的小文件,以提高转录精度。

数据集预处理和分割

使用以下命令进行音频的预处理和分割:

# Non-Docker
./Aivis.sh create-segments

# Docker
./Aivis-Docker.sh create-segments

这个命令会去除背景BGM和噪音,并将音频分割成单独的句子。

数据集创建(注释)

通过以下命令启动Web UI,进行手动注释:

# Non-Docker
./Aivis.sh create-datasets '*' 'MySpeaker1,MySpeaker2'

# Docker
./Aivis-Docker.sh create-datasets '*' 'MySpeaker1,MySpeaker2'

在这里,*代表03-Segments目录下的所有子目录,MySpeaker1,MySpeaker2是创建数据集的说话者名称。

模型训练

使用以下命令开始模型训练:

# Non-Docker
./Aivis.sh train 'MySpeaker1' --steps 8000 --batch-size 4

# Docker
./Aivis-Docker.sh train 'MySpeaker1' --steps 8000 --batch-size 4

在这里,--steps指定了训练的步数,--batch-size指定了训练时的批量大小。

模型推理

使用以下命令启动推理用的Web UI:

# Non-Docker
./Aivis.sh infer 'MySpeaker1' --model-step 5000

# Docker
./Aivis-Docker.sh infer 'MySpeaker1' --model-step 5000

在这里,--model-step指定了使用哪个步数的模型进行推理。

注意事项

  • 确保安装了所有必要的依赖项和库。
  • 在使用Docker时,确保Docker环境配置正确。
  • 在训练模型时,根据GPU的性能调整batch-sizesteps参数。
  • 推理时,可以通过调整--model-step来使用不同训练阶段的模型,以获得最佳效果。

数据集目录结构

Aivis的数据集目录结构分为五个主要部分,每个部分都有特定的作用:

  1. 01-Sources - 存放原始音源文件。

  2. 02-PreparedSources - 存放预处理后的音源文件和转录文本。

  3. 03-Segments - 存放分割后的音源文件。

  4. 04-Datasets - 存放最终的手动创建的数据集。

  5. 05-Models - 存放训练生成的模型。

各部分详细说明

01-Sources

  • 作用:这是存放将要制作成数据集的原始音源文件的目录。

  • 内容:可以是任何格式的音频文件,系统会自动将其转换为wav格式。

  • 处理:无需事先去除背景音乐或噪音,也无需分割音频文件,这些工作会在后续步骤中自动完成。

02-PreparedSources

  • 作用:存放经过预处理的音频文件和对应的转录文本。

  • 内容

    • 音频文件:经过背景噪音去除和格式转换后的wav文件。

    • 转录文本:使用语音识别技术生成的文本,格式为JSON。

  • 命名规则:音频文件和转录文本的文件名与原始音源文件名相对应。

03-Segments

  • 作用:存放根据转录文本分割后的音频文件。

  • 内容:每个分割的音频片段对应一个转录的句子或短语。

  • 命名规则:文件名通常包含原始音源文件名、一个序列号和对应的转录文本。

04-Datasets

  • 作用:存放最终的、经过人工审核和可能的编辑的数据集。

  • 内容

    • 音频文件:存放在audio/wavs/目录下,每个文件对应一个分割的音频片段。

    • 转录文本:存放在transcripts.list文件中,通常包含音频文件名和对应的文本。

  • 创建:通过create-datasets命令启动的Web UI手动创建。

05-Models

  • 作用:存放通过训练生成的Bert-VITS2模型。

  • 内容:模型文件和相关配置。

  • 创建:通过train命令生成。

使用指南

  • 01-Sources目录下放置原始音频文件。

  • 运行create-segments命令进行音频预处理和分割,生成02-PreparedSources03-Segments目录下的内容。

  • 使用create-datasets命令和Web UI对03-Segments中的音频进行人工审核和编辑,创建04-Datasets目录下的数据集。

  • 运行train命令使用04-Datasets中的数据集训练模型,并将结果保存在05-Models目录下。

注意事项

  • 确保音频文件质量尽可能高,以便生成高质量的数据集。

  • 02-PreparedSources03-Segments目录中,如果转录文本不准确,可以删除对应的JSON文件,重新运行create-segments命令以重新生成。

  • 04-Datasets目录中创建数据集时,仔细选择说话者并编辑转录文本以确保数据集的质量。

Aivis项目以其创新性和易用性,为语音合成领域带来了新的可能。无论是研究者还是开发者,都可以利用这个工具来探索和实现个性化的语音合成应用。期待Aivis在未来能够带来更多的创新和突破。

项目地址:GitHub - tsukumijima/Aivis: 💠 Aivis: AI Voice Imitation System

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/710781.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一键取票,YonSuite商旅费控助力企业“消灭报销”

在数字化与智能化并行的时代,企业商旅管理正经历着前所未有的变革。面对传统商旅出行管理中流程复杂、费用不透明等问题,YonSuite商旅费控以其独特的数智化商旅管理平台,为企业提供了一站式的解决方案,特别是其“一键取票”功能&a…

【博客718】时序数据库基石:LSM Tree(log-structured merge-tree)

时序数据库基石:LSM Tree(log-structured merge-tree) 1、为什么需要LSM Tree LSM被设计来提供比传统的B树更好的写操作吞吐量,通过消去随机的本地更新操作来达到这个目标,使得写入都是顺序写,而不是随机写。 那么为什么这是一个…

怎么图片转excel表格?推荐三个方法

怎么图片转excel表格?在信息化高速发展的今天,图片转Excel表格的需求日益凸显,尤其是在职场办公中,这一需求更是显得尤为迫切。为了满足广大用户的需求,市面上涌现出了众多图片转Excel的软件。今天,就为大家…

周五美国股市总结,标普止步四日连涨,纳指五日连创新高,法股单周跌幅两年多最深

美国消费者信心意外下滑至七个月新低,通胀预期反弹,标普大盘脱离历史最高,道指连跌四日,罗素小盘股跌至六周新低,有分析称对经济担忧浮现。全周标普和纳指分别累涨1.6%和3.2%,都是八周里第七周上涨&#xf…

基于SpringBoot+Vue高校自习室预约系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

Navicat和SQLynx产品功能比较一(整体比较)

Navicat和SQLynx都是数据库管理工具,在过去的二十年中,国内用户主要是使用Navicat偏多,一般是个人简单开发需要,数据量一般不大,开发相对简单。SQLynx是最近几年的数据库管理工具,Web开发,桌面版…

P450Rdb: CYP450数据库--地表最强系列--文献精读24

P450Rdb: A manually curated database of reactions catalyzed by cytochrome P450 enzymes P450Rdb: 一个人工整理的细胞色素P450酶催化反应数据库 http://www.cellknowledge.com.cn/p450rdb/ 还有一篇类似CYP450综述-20年-地表最强系列-文献精读-4 要点: P450…

【服务器硬件由 CPU、RAM、硬盘等组成,选购时需考虑应用需求、预算等。散热、安全、监控与维护亦重要,未来发展趋势包括高性能、低能耗和智能化。】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

TypeScript写好了,怎么运行啊!!!

环境搭建 Vs code Ctrlshiftp打开首选项—》打开工作区设置—》搜索Typescript 推荐开启的配置项主要是这几个: Function Like Return Types,显示推导得到的函数返回值类型;Parameter Names,显示函数入参的名称;Par…

基于VSCode和MinGW-w64搭建LVGL模拟开发环境

目录 概述 1 运行环境 1.1 版本信息 1.2 软件安装 1.2.1 下载安装VS Code 1.2.1.1 下载软件 1.2.1.1 安装软件 1.2.2 下载安装MinGW-w64 1.2.2.1 下载软件 1.2.2.2 安装软件 1.2.3 下载安装SDL 1.2.3.1 下载软件 ​1.2.3.2 安装软件 1.2.4 下载安装CMake 1.2.4.…

【ARM 安全系列介绍 3.7 -- SM4 对称加密算】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | GCC | CSH | Armv8/v9 系统异常分析】 文章目录 SM4 加密算法简介SM4 工作模式算法步骤加密举例注意事项 Principle of SM4 encryption algorithm SM4 加密算法简介 SM4是一种分组…

Ubuntu20.04-ROS:Noetic安装

根据Ubuntu系统来选择对应的ros版本,在Ubuntu20.04上安装ROS-Noetic为例说明下如何安装ros 一 设置ROS源 / 终端输入 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.lis…

PyQt5学习系列之新项目创建并使用widget

PyQt5学习系列之新项目创建并使用widget 前言报错新建项目程序完整程序总结 前言 新建项目,再使用ui转py,无论怎么样都打不开py文件,直接报错。 报错 Connected to pydev debugger (build 233.11799.298)新建项目程序 # Press ShiftF10 to…

河南资信评价资质申报日期一览

河南资信评价资质申报日期一览如下: 一、申报批次与截止日期 第一批次 开始时间:根据历年经验,第一批次的申报通常在上半年进行,但具体开始时间需以河南省工程咨询协会发布的官方公告为准。截止时间:第一批次的截止日…

基于SSM+Jsp的在线教育资源管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

活动集锦 | 英码科技积极参与行业盛会,AI赋能城市数字化转型

在当今数字经济时代,城市全域数字化转型已经成为提升城市管理效能、优化资源配置、推动经济发展的重要手段。英码科技始终致力于为企业打造高效、低成本的行业应用方案,助力企业实现数字化转型。近日,英码科技受邀参加了多场行业展示活动&…

C语言 | Leetcode C语言题解之第151题反转字符串中的单词

题目&#xff1a; 题解&#xff1a; void myResverse(char* s,int start,int end){while(start<end){char temp s[start];s[start] s[end];s[end] temp;start;end--;} } char* reverseWords(char* s) {int start 0;int end strlen(s)-1;myResverse(s,start,end);if(s[…

Flutter全面支持六大平台的开发,那鸿蒙呢?

Hi,大家好&#xff0c;今天带大家了解一下flutter3的新特性&#xff0c;flutter已经实现了对六大平台的支持&#xff0c;flutter进一步进化&#xff0c;对于鸿蒙系统目前没有明确的支持&#xff0c;不过相信不久的将来一定会支持的。 一、futter3的新特性 Flutter 3 在发布后…

20240613解决飞凌的OK3588-C的核心板的适配以太网RTL8211F-CG

20240613解决飞凌的OK3588-C的核心板的适配以太网RTL8211F-CG 2024/6/13 16:58 缘起&#xff1a;对于飞凌的OK3588-C的核心板&#xff0c;参照飞凌的底板/开发板。 ETH0空接&#xff0c;ETH1由RTL8211FSI-CG【20&#xffe5;】更换为RTL8211F-CG【4&#xffe5;】。 都是千兆网…

高精度减法的实现

这是C算法基础-基础算法专栏的第八篇文章&#xff0c;专栏详情请见此处。 引入 上次我们学习了高精度加法的实现&#xff0c;这次我们要学习高精度减法的实现。 高精度减法与高精度加法的定义、前置过程都是大致相同的&#xff0c;如果想了解具体内容&#xff0c;可以移步至我的…