音频克隆-Index-TTS
这里介绍一个新的音频克隆工具,有Bilibili开源的一个TTS工具:IndexTTS
开源地址:https://github.com/index-tts/index-tts
IndexTTS 是一个工业级、可控且高效的零样本文本到语音 (Text-to-Speech, TTS) 系统。它是一个开源项目,旨在提供高质量的语音合成能力,尤其在中文和英文语音方面表现出色。

IndexTTS 的核心特点和优势:
GPT 风格的 TTS 模型: IndexTTS 采用了一种类似于大型语言模型 (LLM) 的架构,使其在语音生成方面具有更高的自然度和强大的零样本语音克隆能力。
零样本语音克隆 (Zero-Shot Voice Cloning): 这是 IndexTTS 的一个关键功能。这意味着你只需要提供一个非常短的(例如 5-10 秒)目标说话人的音频样本,IndexTTS 就能学习该说话人的音色和风格,并用这个音色合成任何输入的文本。
高自然度和清晰度: IndexTTS 经过数万小时语音数据的训练,旨在生成高度自然、清晰且富有表现力的语音。它在客观和主观评估中都显示出超越许多其他开源 TTS 系统的性能。
强大的控制能力:
中文拼音控制: 在中文场景下,IndexTTS 引入了字符-拼音混合建模方法。这允许用户通过提供拼音来纠正多音字或生僻字的错误发音,大大提高了中文发音的准确性。
停顿控制: 可以通过标点符号来精确控制语音中的停顿位置和时长,使合成语音更符合语流的自然节奏。
技术架构亮点:
基于 XTTS 和 Tortoise 模型: IndexTTS 在 XTTS 和 Tortoise 等流行 TTS 模型的基础上进行了多项创新改进。
Conformer 条件编码器: 引入了 Conformer 结构来增强说话人条件特征的表示,这有助于提高语音克隆的相似性和稳定性。
BigVGAN2 集成: 使用 BigVGAN2 作为声码器 (vocoder) 来优化音频质量,确保输出的语音具有高保真度。
高效性: IndexTTS 旨在实现更快的推理速度,使其适用于工业级应用。一些测试显示它甚至可以在低至 4GB VRAM 的显卡上运行,并实现快速、准确的语音合成。
持续改进: 例如,最新的 IndexTTS 1.5 版本显著提升了模型的稳定性和英文语音合成的性能,提供更流畅自然的语音体验。
应用场景:
IndexTTS 适用于需要高质量、可控且可克隆语音的多种场景,包括但不限于:
有声读物/新闻播报: 快速生成大量高质量的语音内容。
虚拟助手/聊天机器人: 提供个性化且自然的语音交互。
视频配音/内容创作: 为视频或播客等创作内容生成自定义音色的旁白或对话。
无障碍辅助: 为有视力障碍的用户提供文本转语音功能。
语音克隆研究: 作为研究和开发零样本语音克隆技术的强大基线模型。
如何获取和使用:
IndexTTS 是一个开源项目,你可以在 GitHub 上找到它的官方仓库:https://github.com/index-tts/index-tts。
克隆仓库: 将项目代码下载到本地。
安装依赖: 按照项目说明安装所需的 Python 库和环境。
下载模型文件: 通常需要在 Hugging Face 等平台下载预训练的模型权重(可以下载最新的IndexTTS-1.5),下载后解压到文件夹checkpoints中。下载位置:https://huggingface.co/IndexTeam/IndexTTS-1.5/tree/main
运行脚本: 使用提供的 Python 脚本输入文本和参考音频(用于克隆音色)来生成语音。
我的搭建:
#在下载的文件夹里面,创建conda 环境
conda create -n index-tts python=3.10 #激活:
conda activate index-tts #安装(torch torchvision torchaud需要根据你自己的显卡安装:nvidia-smi)
1:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 2:pip install -r requirements.txt #注意,如果你本地电脑没有VS C++的话,可能编译不过(主要是pynini),那就是使用下面方法安装:
1:conda install -c conda-forge cython
2:conda install -c conda-forge pynini=2.1.6
3:pip install WeTextProcessing --no-deps
4:修改equirements.txt,去掉 Cython==3.0.7,去掉最后的WeTextProcessing 。
5:重新安装
pip install -r requirements.txt
运行:
python webui.py --model_dir IndexTTS-1.5

结果:生成的视频可以在网页端下载,也可以在outputs 文件夹下面查找。
这里有个官方实例:https://index-tts.github.io/
| 源音频 | 克隆的音频 |
|
您的浏览器不支持 audio 标签。 |
您的浏览器不支持 audio 标签。 |
个人使用下来,感觉比之前的使用的那个要好些,https://www.cnblogs.com/cj8988/p/18962212。可能是在处理中文时,这个开源感觉更适合吧。
音频克隆-Index-TTS的更多相关文章
- 音频(3)Android TTS技术支持朗读英文
Android对TTS技术的支持 Android 1.6开始支持TTS(Text To Speech)技术,通过该技术可以将文本转换成语音.目前2015-09-06只支持朗读英文. TTS技术的核心是 ...
- 数据泵 TTS(传输表空间技术)
1.源库准备环境 --创建被传输的表空间create tablespace tts logging datafile '/home/oracle/app/oradata/orcl/tts01.dbf' ...
- Android开发 多媒体提取器MediaExtractor详解_将一个视频文件分离视频与音频
前言 此篇博客讲解MediaExtractor将一个视频文件分离视频与音频,如果你对MediaExtractor还没有一个笼统的概念建议先了解我的另一篇入门博客:https://www.cnblogs ...
- Asp.Net MVC中Aplayer.js音乐播放器的使用
1.前言: Aplater.js是一款可爱.漂亮的Js音乐播放器,以前就了解过也弄过一些,现在就用mp3的格式来在.Net里面开发.管网 https://aplayer.js.org/ 2.入手: 在 ...
- ROS语音交互——科大讯飞语音合成TTS(二)
之前我用过科大讯飞的语音包,为了记录一下我重新使用一下 首先注册科大讯飞账号及应用,以后每个下载的在线使用SDK都是以此账户ID登录讯飞语音服务器. 下载科大讯飞在线合成包. $ unzip Linu ...
- 最大开源代码sourceforge 简介 及视音频方面常用的开源代码
所有的音视频凯源代码在这里:http://sourceforge.net/directory/audio-video/os:windows/,你可以下载分析,视频不懂请发邮件给我,帮你分析. 0.视频 ...
- 『开发技巧』Python音频操作工具PyAudio上手教程
『开发技巧』Python音频操作工具PyAudio上手教程 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...
- 实时中文语音克隆——开源项目MockingBird体验
[引子] 在今年大型网络攻防演练前不久,笔者接到一个公司的座机号码来电,上来就问防守准备得怎么样了,哪里还有不足等.等等,这声音不认识,笔者第一反应就是蓝军(Red Team)来进行社会工程攻击,于是 ...
- FFmpeg + SoundTouch实现音频的变调变速
本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件. 主要有以下内容: 实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息 将解 ...
- linux下mono播放PCM音频
测试环境: Ubuntu 14 MonoDevelop CodeBlocks 1.建立一个共享库(shared library) 这里用到了linux下的音频播放库,alsa-lib. al ...
随机推荐
- leetcode每日一题:最小化字符串长度
题目 2716. 最小化字符串长度 给你一个下标从 0 开始的字符串 s ,重复执行下述操作 任意 次: 在字符串中选出一个下标 i ,并使 c 为字符串下标 i 处的字符.并在 i 左侧(如果有)和 ...
- python,指定目录下创建自定义名称文件夹的方法
比如,我们需要在D盘TU目录下创建名称为"test"的文件夹 脚本如下: import os path = r'D://tu' a = "test" os.mk ...
- eolinker校验规则之 Json结构定位:返回结果校验的方法和案例(父参、子参内容校验)
如下图,订单编号的参数在data父字段内 Eolinker返参校验的写法就需要有些变化 先写Data父参,添加子字段,再写子参 预期结果不支持全局变量 可通过添加绑定,绑定前一个接口返回参数,进行匹配
- 常用的 JVM 配置参数有哪些?
常用的 JVM 配置参数 JVM 配置参数可以用来控制 Java 程序的内存分配.垃圾回收.性能优化等.以下是一些常用的 JVM 配置参数: 1. 堆内存相关参数 -Xms:设置 JVM 初始堆内存大 ...
- 解决多个if-else的方案
参考链接: 遇到大量if记住下面的口诀: 互斥条件表驱动 嵌套条件校验链 短路条件早return 零散条件可组合 解释: 互斥条件,表示几个条件之间是冲突的,不可能同时达成的.比如说一个数字,它不可能 ...
- ESP32教程:通过WIFI控制LED灯的开关
LED闪烁 在通过WIFI控制LED灯的开关之前,我们先实现一下LED闪烁. 接线图: 来源:https://esp32io.com/tutorials/esp32-led-blink 我的接线图: ...
- 基于SaaS纯BS架构的全院级PACS系统
2014年曾经做过一版简单的Dicom Web Viewer,之前的Web版本由于技术和功能的极限性,仅能简单的运用于临床阅片和患者的电子胶片使用,无法普及到放射和超声等影像科室.影像科 ...
- linux vim增强使用
目录 删除 编辑 删除 删除当前行 dd 删除当前行后面的所有行 dG 编辑 恢复为未修改前的状态 uu
- 阻塞式IO
无法被打断的进程 在进行阻塞IO实验的时候,发现后台运行了/imx6uirqAPP /dev/imx6uirq &之后无法用kill -9 xxx杀死后台进程. 只需要将驱动中的 wait_e ...
- 半小时快速入门Spring AI:使用腾讯云编程助手CodeBuddy 开发简易聊天程序
引言 随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI集成到自己的应用中.人工智能正在迅速改变各行各业的工作方式,从自动化客服到智能推荐系统,AI的应用几乎无处不在.Spring ...