OuteTTS:基于纯语言建模的开源文本到语音合成项目,支持语音克隆等多种语音合成任务

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. OuteTTS 是一个基于纯语言建模方法的开源文本到语音合成项目。
  2. 支持文本到语音合成、语音克隆、音频标记化、CTC 强制对齐和结构化提示创建等功能。
  3. 适用于有声读物、智能客服、语音导航等多种应用场景。

正文(附运行示例)

OuteTTS 是什么

在这里插入图片描述

OuteTTS 是一个开源的文本到语音(TTS)项目,基于纯语言建模的方法生成语音。该项目基于 LLaMa 架构,使用 Oute3-350M-DEV 基础模型,拥有 3.5 亿参数。OuteTTS 具备音频标记化、CTC 强制对齐技术和结构化提示创建等创新音频处理方法,支持语音克隆功能,以及用户创建自定义说话人的声音。它与 llama.cpp 和 GGUF 格式兼容,适用于有声读物、智能客服、语音导航等多种应用场景。

OuteTTS 的主要功能

  • 文本到语音合成:将文本转换为自然听起来的语音输出。
  • 语音克隆:用户提供参考音频文件和相应的文本,创建自定义的语音,用于个性化语音应用。
  • 音频标记化:用 WavTokenizer 将音频信号转化为可供模型处理的格式。
  • CTC 强制对齐:创建字与音频令牌之间的精确映射,确保文本与音频之间的准确对应。
  • 结构化提示创建:用特定的格式提供明确的指导,提高语音合成的准确性和自然度。
  • 与现有技术兼容:与 llama.cpp 和 GGUF 格式兼容,方便集成到不同的应用环境中。

OuteTTS 的技术原理

  • 音频标记化:OuteTTS 用 WavTokenizer 对音频信号进行标记化,将连续的音频波形转换为离散的音频令牌,以便模型处理。
  • CTC 强制对齐:用连接时序分类(CTC)技术,OuteTTS 精确地将文本中的字与音频令牌对应起来,确保语音合成的准确性。
  • 结构化提示创建:OuteTTS 基于“[full transcription] [word] [duration token]”的结构化提示格式,为模型提供清晰的指导,有助于提高合成语音的准确性和自然度。
  • 基于 LLaMa 架构的模型构建:OuteTTS 基于 LLaMa 架构,用预训练的 Oute3-350M-DEV 模型,模型在大量数据上进行预训练,拥有 3.5 亿参数,为语音合成任务提供强大的支持。
  • 纯语言建模:OuteTTS 用纯语言建模的方式实现语音合成,无需复杂的适配器或架构,简化 TTS 的实现过程。
  • 参数调整:基于调整模型参数,如温度和重复惩罚,OuteTTS 在不同情况下获得更稳定和高质量的语音输出。

如何运行 OuteTTS

安装

pip install outetts

重要提示: 对于 GGUF 支持,你必须手动安装 llama-cpp-python。具体安装指令请访问 llama-cpp-python 仓库。

接口使用

from outetts.v0_1.interface import InterfaceHF, InterfaceGGUF# 初始化接口,使用 Hugging Face 模型
interface = InterfaceHF("OuteAI/OuteTTS-0.1-350M")# 或者初始化接口,使用 GGUF 模型
# interface = InterfaceGGUF("path/to/model.gguf")# 生成 TTS 输出
# 没有提供说话人参考时,模型会随机生成说话人特性
output = interface.generate(text="Hello, am I working?",temperature=0.1,repetition_penalty=1.1,max_length=4096
)# 播放生成的音频
output.play()# 将生成的音频保存到文件
output.save("output.wav")

语音克隆

# 从音频文件创建自定义说话人
speaker = interface.create_speaker("path/to/reference.wav","reference text matching the audio"
)# 将说话人保存到文件
interface.save_speaker(speaker, "speaker.pkl")# 从文件加载说话人
speaker = interface.load_speaker("speaker.pkl")# 生成带有自定义声音的 TTS
output = interface.generate(text="This is a cloned voice speaking",speaker=speaker,temperature=0.1,repetition_penalty=1.1,max_length=4096
)

资源

  1. 项目官网:https://www.outeai.com/blog/OuteTTS-0.1-350M
  2. GitHub 仓库:https://github.com/edwko/OuteTTS
  3. WavTokenizer 仓库:https://github.com/jishengpeng/WavTokenizer
  4. CTC 强制对齐教程:https://pytorch.org/audio/stable/tutorials/ctc_forced_alignment_api_tutorial.html

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; int singleNonDuplicate(int* nums, int numsSize) {int low 0, high numsSize - 1;while (low < high) {int mid (high - low) / 2 low;mid - mid & 1;if (nums[mid] nums[mid 1]) {low mid 2;} else {high mid;}}return …

【学习笔记】SAP ABAP——数据类型

SAP ABAP——数据类型 SAP模块介绍数据类型内涵数据类型分类预定义数据类型数据字典数据类型用户自定义数据类型 SAP模块介绍 模块模块名称FI财务会计CO管理会计SD销售分销MM物料管理PM工厂维护HR人力资源PS项目管理BW数据仓库BC系统相关PP生产制造 数据类型内涵 ​ 数据类型…

国产服务器平台离线部署k8s和kubesphere(含离线部署新方式)

"信创&#xff1a;鲲鹏麒麟&#xff0c;ARM64架构&#xff0c;实现K8s和Kubesphere的离线部署&#xff0c;全新方式助力企业高效运维。" 本文将深入探讨如何借助鲲鹏CPU(arm64)和操作系统Kylin V10 SP2/SP3,通过KubeKey制作KubeSphere与Kubernetes的离线安装包&#…

SpringBoot在线教育系统:技术与实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

初始JavaEE篇——多线程(7):定时器、CAS

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 定时器的使用 定时器的原理 模拟实现定时器 CAS 介绍 CAS的应用场景 解析 AtomicInteger 类 实现自旋锁 CAS的缺陷…

【金融风控】相关业务介绍及代码详解

金融风控相关业务介绍 【了解】项目整体介绍 1.风控业务和风控报表</span> 零售金融产品 相关的指标 风控建模流程 ​ #2.特征工程 特征构造 特征筛选 ​ 3.评分卡模型构建 逻辑回归 集成学习 XGBoost LightGBM 模型评估 ​ #4.样本不均衡问题/异常点检测 【了解】今日…

Spring Bean的作用域和生命周期

在 Spring 框架中&#xff0c;Bean 是用于管理对象的核心组成部分。Spring 的 IoC 容器通过 Bean 的作用域来控制它们的生命周期。理解 Spring Bean 的作用域和生命周期对于开发灵活、高效的 Spring 应用至关重要。 Spring Bean 的五种作用域 Spring 提供了五种 Bean 作用域&a…

Linux 配置JDK

文章目录 一、下载Oracle-JDK1.1、如何正确的下载JDK二、配置JDK环境变量2.1 环境变量配置2.1.1、修改vim /etc/profile 添加jdk的路径一、下载Oracle-JDK 1.1、如何正确的下载JDK 首先我要安装的是oracle-jdk,这个时候什么地方都不要去,就去oracle的官网,然后找到,jdk的下…

adb 常用命令汇总

目录 adb 常用命令 1、显示已连接的设备列表 2、进入设备 3、安装 APK 文件到设备 4、卸载指定包名的应用 5、从设备中复制文件到本地 6、将本地文件复制到设备 7、查看设备日志信息 8、重启设备 9、截取设备屏幕截图 10、屏幕分辨率 11、屏幕密度 12、显示设备的…

人工智能技术:未来生活的“魔法师”

想象一下&#xff0c;未来的某一天&#xff0c;你醒来时&#xff0c;智能助手已经为你准备好了早餐&#xff0c;你的智能家居系统根据你的心情和日程安排调整了室内的光线和音乐&#xff0c;而你的自动驾驶汽车已经在门口等你。这不是科幻小说&#xff0c;这是人工智能技术为我…

JavaWeb

一,JavaWeb JavaWeb就是用Java技术来解决相关web互联网领域的技术。 软件架构模式&#xff1a; 1.BS模式&#xff1a;browser server 浏览器服务器 优点&#xff1a;只需要开发服务器代码&#xff0c;用户下载浏览器&#xff0c;维护方便&#xff1b;减少用户的磁盘空间 缺…

【C++笔记】模版的特化及其编译分离

【C笔记】模版的特化及其编译分离 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】模版的特化及其编译分离前言一.模版1.1非类型模板参数 二.模板的特化2.1特化的定义2.2 函数模板特化2.3底层const2.4 类模板特化 三…

解决:无法在此设备上激活Windows因为无法连接到你的组织的激活服务器

问题&#xff1a; 桌面右下角会出现这个东西&#x1f447; 在设置里查看激活状态就会看到&#x1f447; 解决方法 &#xff1a; 1.打开CMD 搜索CMD&#xff0c;然后以管理员身份运行 2.设置 KMS服务器 1&#xff09;命令行输入&#xff1a; slmgr /skms kms.03k.org 然后…

1.6K+ Star!GenAIScript:一个可自动化的GenAI脚本环境

GenAIScript 简介 GenAIScript[1] 是一个 JavaScript-ish 环境&#xff0c;提供了便捷的工具用于文件摄入、提示开发和结构化数据提取。它允许用户以编程方式组装大型语言模型&#xff08;LLM&#xff09;的提示&#xff0c;并通过单一脚本协调 LLM、工具和数据。 项目特点 主…

高效管理iPhone存储:苹果手机怎么删除相似照片

在使用iPhone的过程中&#xff0c;我们经常会遇到存储空间不足的问题&#xff0c;尤其是当相册中充满了大量相似照片时。这些照片不仅占用了宝贵的存储空间&#xff0c;还可能使iPhone出现运行卡顿的情况。因此&#xff0c;我们迫切需要寻找苹果手机怎么删除相似照片的方法&…

TARE-PLANNER学习记录

参考&#xff1a; CMU-TARE 探索算法官方社区问答汇总_cmu localplanner 部署-CSDN博客 Tare_planner学习笔记_tare planner-CSDN博客 Tare_planner 学习教程(二)_tareplanner-CSDN博客 &#xff08;学习笔记&#xff09;机器人自主导航从零开始第七步——TARE Planner自主…

Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载

Moonshine 是由 Useful Sensors 公司推出的一系列「语音到文本&#xff08;speech-to-text, STT&#xff09;转换模型」&#xff0c;旨在为资源受限设备提供快速而准确的「自动语音识别&#xff08;ASR&#xff09;服务」。Moonshine 的设计特别适合于需要即时响应的应用场景&a…

【实验八】前馈神经网络(4)优化问题

1 参数初始化 模型构建 模型训练 优化 完整代码 2 梯度消失问题 模型构建 模型训练 完整代码 3 死亡Relu问题 模型构建 模型训练 优化 完整代码 1 参数初始化 实现一个神经网络前&#xff0c;需要先初始化模型参数。如果对每一层的权重和偏置都用0初始化&#xff0…

华为-宝塔-MongoDB无法登录

1、宝塔防火墙服务器安全组放开端口号 2、用数据库对应的用户名和密码登录 2-1&#xff1a;不指定验证数据库时用root账号密码登录 2-2&#xff1a;如果设置了验证数据库就用验证数据库对应的账号和密码登录

Scala入门基础(16)scala的包

Scala的包定义包定义包对象Scala的包的导入导入重命名 一.Scala的包 package&#xff08;包&#xff1a;一个容器。可以把类&#xff0c;对象&#xff0c;包&#xff0c;装入。 好处&#xff1a; 区分同名的类&#xff1b;类很多时&#xff0c;更好地管理类&#xff1b;控制…