coqui-ai/TTS 安装使用

Coqui AI的TTS是一款开源深度学习文本转语音工具,以高质量、多语言合成著称。它提供超过1100种语言的预训练模型库,能够轻松集成到各种应用中,并允许用户通过简单API进行个性化声音训练与微调。其技术亮点包括但不限于低资源适应性(如YourTTS模型可处理有限或零样本数据),实时流式传输功能(支持200毫秒级延迟)以及强大的跨语言克隆能力。

安装:

pip install TTS

根据提示配置环境,比如Microsoft C++ Build Tools,安装完成可以进行语音生成: 

示例:

import torch
from TTS.api import TTS# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"# List available 🐸TTS models
print(TTS().list_models())# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
# Text to speech to a file
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
  1. import torch: 导入PyTorch库,用于处理计算图和运行在GPU上的深度学习模型。
  2. from TTS.api import TTS: 从TTS库中导入TTS类,用于文本到语音合成的API。
  3. device = "cuda" if torch.cuda.is_available() else "cpu": 检测当前系统是否支持CUDA(GPU加速),如果支持,则将设备设置为GPU("cuda"),否则设置为CPU。
  4. print(TTS().list_models()): 打印可用的TTS模型列表,列出所有可用的语音合成模型。
  5. tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device): 初始化TTS对象,并指定要使用的语音合成模型。在这个例子中,使用了一个多语言语音克隆模型(multilingual voice cloning model),并将其移动到之前检测到的设备(GPU或CPU)上。
  6. tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav"): 将TTS生成的语音保存到文件中。调用tts.tts_to_file()方法,传入要转换的文本、目标说话者的语音文件路径(需要克隆语音的文件)、语言参数以及要保存语音的文件路径。

模型下载:

案例model文件下载缓慢,可以在这获取

路径修改参考:

os.environ.setdefault('TTS_HOME', 'D:/workplace/pyhon/model/TTS_HOME')
os.environ.setdefault('XDG_DATA_HOME', 'D:/workplace/pyhon/model/XDG_DATA_HOME')

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ是如何保证高可用的?

RabbitMQ可以通过多种方式来实现高可用性,以确保在硬件故障或其他不可预测的情况下,消息队列系统仍然能够正常 运行。RabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式。 其中单机模式一般用于demo搭建&#x…

STM32CubeMX学习笔记14 ---SPI总线

1. 简介 1.1 SPI总线介绍 SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。 SPI,是一种高速的,全双工,同步的通信总线,并且在…

softmax和sigmoid的区别

sigmoid 公式: s i g m o i d ( x ) 1 1 e − x sigmoid(x) \frac{1}{1 e^{-x}} sigmoid(x)1e−x1​ 函数曲线如下: 导数公式: f ( x ) ′ e − x ( 1 e − x ) 2 f ( x ) ( 1 − f ( x ) ) f(x)\prime \frac{ e^{-x}}{(1 e^{-x})…

主流电商平台API接口太多?如何选择合适的接口你要的API 接口都给你整理好了~

接口太多不知道怎么选? 👇 看我给您整理的电商API接口就很一目了然啦 ~ 淘宝平台API商品采集接口 此API目前支持以下基本接口: item_get 获得淘宝商品详情item_get_pro 获得淘宝商品详情高级版item_review 获得淘宝商品评论item_fee 获得淘…

【CSP试题回顾】201604-1-折点计数

CSP-201604-1-折点计数 解题代码 #include <iostream> #include <vector> #include <algorithm> using namespace std;int n, pointSum;int main() {cin >> n;vector<int>myData(n);for (int i 0; i < n; i){cin >> myData[i];}// 统…

何为OOM(Out of Memory)?

OOM&#xff08;Out of Memory&#xff09; 是指程序运行过程中内存不足的情况。在 Spark 应用程序中&#xff0c;OOM 是一个非常常见的问题&#xff0c;尤其是在处理大规模数据集或执行资源密集型的操作时。当 Spark 作业尝试使用的内存超过了为其分配的内存限制时&#xff0c…

【MybatisPlus】QueryWrapper、UpdateWrappe、LambdaQueryWrapper、LambdaUpdateWrapper

一、Wrapper简介 QueryWrapper、UpdateWrapper、LambdaQueryWrapper 和 LambdaUpdateWrapper 都是 MyBatis-Plus 框架中用于构建条件的工具类&#xff0c;它们之间的关系是继承关系。其中 QueryWrapper 和 UpdateWrapper 是基于普通的对象属性名来构建条件的&#xff0c;而 La…

SystemVerilog Constants、Processes

SystemVerilog提供了三种类型的精化时间常数&#xff1a; •参数&#xff1a;与最初的Verilog标准相同&#xff0c;可以以相同的方式使用。 •localparameter&#xff1a;与参数类似&#xff0c;但不能被上层覆盖模块。 •specparam&#xff1a;用于指定延迟和定时值&#x…

python+django+vue电影票订购系统dyvv4

电影院订票信息管理系统综合网络空间开发设计要求。目的是将电影院订票通过网络平台将传统管理方式转换为在网上操作&#xff0c;方便快捷、安全性高、交易规范做了保障&#xff0c;目标明确。电影院订票信息管理系统可以将功能划分为用户和管理员功能[10]。 语言&#xff1a;…

Leetcode 1

题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任…

mybatis在更新一行数据或者插入一条新数据后返回对应的主键id

今天在做项目的时候需要用到上次数据更新或者插入的id&#xff0c;学习了一下找到此方法&#xff0c;记录一下。 在MyBatis中&#xff0c;当插入一条新数据后&#xff0c;可以使用useGeneratedKeys属性和keyProperty属性来获取新插入数据的ID。useGeneratedKeys属性告诉MyBatis…

最小生成树的典型应用

2024-02-01&#xff08;最小生成树&#xff0c;二分图&#xff09;-CSDN博客 如何证明当前这条边可以被选&#xff1f; 假设不选当前边&#xff0c;得到了一棵树&#xff0c;然后将这条边加上&#xff0c;那么必然会出现一个环&#xff0c;在这个环上&#xff0c;一定可以找出一…

超分辨率(1)--基于GAN网络实现图像超分辨率重建

目录 一.项目介绍 二.项目流程详解 2.1.数据加载与配置 2.2.构建生成网络 2.3.构建判别网络 2.4.VGG特征提取网络 2.5.损失函数 三.完整代码 四.数据集 五.测试网络 一.项目介绍 超分辨率&#xff08;Super-Resolution&#xff09;&#xff0c;简称超分&#xff08…

云计算OpenStack KVM迁移

动态迁移 static migration 静态迁移 cold migration 冷迁移 offline migration 离线迁移 live migration 动态迁移 hot migration 热迁移 online migration 在线迁移 衡量 整体迁移时间 服务器停机时间 性能影响(迁移后和其它客户机) 特点 负载均衡 解除硬件依赖…

Android动态添加view设置view大小(宽高)

动态生成view并添加到布局开源框架&#xff1a;Dynamico GitHub - jelic98/dynamico: Android library for inflating dynamic layouts in runtime based on JSON configuration fetched from server 第一种&#xff1a;ViewGroup在添加子view的时候设置layoutParams public…

pyinstaller 如何打包python 代码

本次文章主要介绍&#xff0c;pyinstaller 打包 python 常见的问题&#xff0c;以及解决办法 1、安装 pip install pyinstaller2、使用最全面的 spec 配置文件方法打包 介绍&#xff1a; root |_ test | |_ main.py |_custom_module |_config 如上&#xff1a; 在 root 下有…

List 集合手动分页

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 为方便测试&#xff0c;可以直接在 controller 内添加一个方法&#xff0c;或者直接通过 main 方法测试 List 手动分页&#xff1a; GetMapping("/getUserInfo")public Map<String,Obje…

领腾讯云红包,可抵扣云服务器订单金额

在2024年腾讯云新春采购节优惠活动上&#xff0c;可以领取新年惊喜红包&#xff0c;打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口&#xff0c;如下图&#xff1a; 腾讯云2024新春采购节红包领取 如上图所示&#xff0c;点击“领”红包&#xff0c;每…

信用卡选购要点

文章目录 额度银行联名卡年费福利其他 额度 一般四大行的信用卡审批门槛高&#xff0c;且发卡的额度偏低。 额度也可以通过后期的消费与规律还款获得持续提升。 银行 信用卡一般是网上办理相关业务&#xff0c;对线下网点依赖不大。但是所在城市有信用卡所属银行&#xff0…

【S32K3 MCAL配置】-1.1-GPIO配置及其应用-点亮LED灯(基于MCAL)

目录(共13页精讲,手把手教你S32K3从入门到精通) 实现的架构:基于MCAL层 前期准备工作: 1 创建一个FREERTOS工程