首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

作者头像
LDG_AGI
发布于 2024-08-13 06:25:07
发布于 2024-08-13 06:25:07
41600
代码可运行
举报
运行总次数:0
代码可运行

​​​​​​​一、引言

pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks),共计覆盖32万个模型。

今天介绍Audio的第三篇,文本转音频(text-to-audio/text-to-speech),在huggingface库内共有1978个音频分类模型,其中1141个是由facebook生成的不同语言版本,其他公司发布的仅有837个。

二、文本转音频(text-to-audio/text-to-speech)

2.1 概述

文本转音频(TTS),与上一篇音频转文本(STT)是对称技术,给定文本生成语音,实际使用上,更多与语音克隆技术相结合:先通过一段音频(few-show)进行声音克隆,再基于克隆的音色和文本生成语音。应用场景极多,也是人工智能领域最易看到成果的技术,主要应用场景有读文章音乐生成、短视频智能配音、游戏角色智能配音等。

2.2 技术原理

2.2.1 原理概述

当前比较流行的做法还是基于transformer对文本编码与声音编码进行对齐,声音方面先产生一个对数梅尔频谱图,再使用一个额外的神经网络(声码器)转换为波形。

模型类别上,以suno/bark为代表的语音生成和以xtts为代表的声音克隆+语音生成各占据半壁江山,使用比较多的模型如下

2.2.2 语音生成(zero-shot)

  • suno/bark:suno出品,天花板,支持笑容、男女声设定、音乐设定等。支持pipeline
  • 2noise/ChatTTS:国产品牌,突破天花板。不支持pipeline,需要下载项目包
  • BytedanceSpeech/seed-tts-eval:字节出品。不支持pipeline,需要下载项目包
2.2.3 声音克隆+语音生成(few-shot)

  • coqui/XTTS-v2:酷趣青蛙,几秒的语音样本即可完成克隆。支持pipeline生成,但克隆需要使用pypi的TTS包
  • fishaudio/fish-speech-1.2:鱼语,国产,同样几秒的语音样本即可完成克隆。支持pipeline生成,但克隆需要下载项目。

2.3 pipeline参数

2.3.1 pipeline对象实例化参数​​​​​​​

( *args, vocoder = None, sampling_rate = None, **kwargs )

2.3.2 pipeline对象使用参数 ​​​​​​​

  • text_inputsstrList[str])——要生成的文本。
  • forward_paramsdict可选)— 传递给模型生成/转发方法的参数。forward_params始终传递给底层模型。
  • generate_kwargsdict可选generate_config)—用于生成调用的临时参数化字典。
2.3.3 pipeline对象返回参数

  • audionp.ndarray形状(nb_channels, audio_length))——生成的音频波形。
  • samples_rate (int) — 生成的音频波形的采样率。

2.4 pipeline实战

2.4.1 suno/bark-small(默认模型)

pipeline对于text-to-audio/text-to-speech的默认模型是suno/bark-small,使用pipeline时,如果仅设置task=text-to-audio或task=text-to-speech,不设置模型,则下载并使用默认模型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"

import scipy
from IPython.display import Audio
from transformers import pipeline
pipe = pipeline("text-to-speech")
result = pipe("Hello, my dog is cooler than you!")
sampling_rate=result["sampling_rate"]
audio=result["audio"]
print(sampling_rate,audio)
scipy.io.wavfile.write("bark_out.wav", rate=sampling_rate, data=audio)
Audio(audio, rate=sampling_rate)

可以将文本转换为语音bark_out.wav。

bark支持对笑声、男女、歌词、强调语气等进行设定,直接在文本添加:

  • [laughter]
  • [laughs]
  • [sighs]
  • [music]
  • [gasps]
  • [clears throat]
  • ...犹豫
  • 歌词
  • 大写以强调单词
  • [MAN][WOMAN]分别使 Bark 偏向男性和女性说话者

同时,pipeline可以指定任意的模型,模型列表参考TTS模型库

2.4.2 coqui/XTTS-v2语音克隆

参考官方文档:可以使用python或命令行2种方式轻松使用model_list内的模型,优先要安装TTS的pypi包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install TTS -i https://mirrors.cloud.tencent.com/pypi/simple

2.4.2.1 语音转换(参考语音,将语音生成语音)

python版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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(model_name="voice_conversion_models/multilingual/vctk/freevc24", progress_bar=False).to("cuda")
tts.voice_conversion_to_file(source_wav="my/source.wav", target_wav="my/target.wav", file_path="output.wav")

命令行版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tts --out_path ./speech.wav --model_name "tts_models/multilingual/multi-dataset/xtts_v2" --source_wav "./source_wav.wav" --target_wav "./target_wav.wav"

2.4.2.2 文字转语音(参考语音,将文字生成语音)

python版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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")


tts = TTS("tts_models/de/thorsten/tacotron2-DDC")
tts.tts_with_vc_to_file(
    "Wie sage ich auf Italienisch, dass ich dich liebe?",
    speaker_wav="target/speaker.wav",
    file_path="output.wav"
)

命令行版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --target_wav <path/to/reference/wav> --out_path output/path/speech.wav

2.5 模型排名

在huggingface上,我们筛选自动语音识别模型,并按近期热度从高到低排序:

起来有1978个,实际上有1141是由facebook生成的不同语言版本,其他公司发布的仅有837个:

三、总结

本文对transformers之pipeline的文本生成语音(text-to-audio/text-to-speech)从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍,读者可以基于pipeline以及tts的python和命令行工具完成文字生成语音、文字参考语音生成语音、语音参考语音生成语音,应用于有声小说、音乐创作、变音等非常广泛的场景。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型
LDG_AGI
2024/08/13
1.2K0
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star
Coqui 文本转语音(Text-to-Speech,TTS)是新一代基于深度学习的低资源零样本文本转语音模型,具有合成多种语言语音的能力。该模型能够利用共同学习技术,从各语言的训练资料集转换知识,来有效降低需要的训练资料量。
Python兴趣圈
2023/11/10
5.5K0
新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star
【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks),共计覆盖32万个模型。
LDG_AGI
2024/08/13
9310
【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)
【机器学习】ChatTTS:开源文本转语音(text-to-speech)大模型天花板
我很愿意推荐一些小而美、高实用模型,比如之前写的YOLOv10霸榜百度词条,很多人搜索,仅需100M就可以完成毫秒级图像识别与目标检测,相关的专栏也是CSDN付费专栏中排行最靠前的。今天介绍有一个小而美、高实用性的模型:ChatTTS。
LDG_AGI
2024/08/13
1.5K0
【机器学习】ChatTTS:开源文本转语音(text-to-speech)大模型天花板
Transformers 4.37 中文文档(一)
下表表示库中对这些模型的当前支持,它们是否有 Python 分词器(称为“slow”)。由🤗 Tokenizers 库支持的“fast”分词器,它们是否在 Jax(通过 Flax)、PyTorch 和/或 TensorFlow 中有支持。
ApacheCN_飞龙
2024/06/26
1.4K0
Transformers 4.37 中文文档(一)
GitHub 开源神器 Bark模型,让文本转语音更简单!
Bark 是由Suno创建的基于转换器的文本到音频模型。Bark 可以生成高度逼真的多语言语音以及其他音频 - 包括音乐、背景噪音和简单的音效。该模型还可以产生非语言交流,如大笑、叹息和哭泣。
Python兴趣圈
2023/11/10
1.9K0
GitHub 开源神器 Bark模型,让文本转语音更简单!
Bark-一种GPT风格的TTS
大家知道,我们一直在探索在FreeSWITCH里实现ASR和TTS的各种方案。这一次,我们遇到了Bark。
杜金房
2023/09/03
1.1K1
Bark-一种GPT风格的TTS
金融/语音/音频处理学术速递[11.24]
【1】 Pricing cryptocurrencies : Modelling the ETHBTC spot-quotient variation as a diffusion process 标题:加密货币定价:将ETHBTC现货商数变化建模为扩散过程 链接:https://arxiv.org/abs/2111.11609
公众号-arXiv每日学术速递
2021/11/25
4300
金融/语音/音频处理学术速递[6.30]
【1】 The Ecological System of Innovation: A New Architectural Framework for a Functional Evidence-Based Platform for Science and Innovation Policy 标题:创新生态系统:基于证据的功能性科学与创新政策平台的新架构框架
公众号-arXiv每日学术速递
2021/07/02
6330
【AI落地应用实战】文本生成语音Parler-TTS + DAMODEL复现指南
这里我要推荐的【好事】文章是如何从零构建一个现代深度学习框架,2024年可以说是大模型发展迅速的一年,国内的国际的各大厂商都推出了多种场景的大模型,那么作为小白,虽然不是大模型从业者,但是也想了解一下大模型这样的深度学习框架到底是怎么来的,是如何构建的呢?可以看这篇文章:
中杯可乐多加冰
2024/11/12
5970
Transformers 4.37 中文文档(七十九)
UniSpeech-SAT 模型是由 Sanyuan Chen、Yu Wu、Chengyi Wang、Zhengyang Chen、Zhuo Chen、Shujie Liu、Jian Wu、Yao Qian、Furu Wei、Jinyu Li、Xiangzhan Yu 在UniSpeech-SAT: Universal Speech Representation Learning with Speaker Aware Pre-Training中提出的。
ApacheCN_飞龙
2024/06/26
3460
安利免费开源的声音克隆、文本转语音整合包软件、一键本地安装!
大家好,我是星哥,今天给大家介绍两款声音克隆、文本转语音的软件,一个是ChatTTS和Spark-TTS,并且都有一键安装包,让你无需复杂的配置,就能在本地轻松体验声音的魅力。
星哥玩云
2025/04/02
1.3K0
安利免费开源的声音克隆、文本转语音整合包软件、一键本地安装!
【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型
LDG_AGI
2024/08/13
3490
【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)
金融/语音/音频处理学术速递[6.21]
【1】 Efficient Black-Box Importance Sampling for VaR and CVaR Estimation 标题:VaR和CVaR估计的有效黑箱重要抽样
公众号-arXiv每日学术速递
2021/07/02
7610
【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战
上一篇对​​​​​​​ChatTTS文本转语音模型原理和实战进行了讲解,第6次拿到了热榜第一🏆。今天,分享其对称功能(语音转文本)模型:Whisper。Whisper由OpenAI研发并开源,参数量最小39M,最大1550M,支持包含中文在内的多种语言。由于其低资源成本、优质的生存效果,被广泛应用于音乐识别、私信聊天、同声传译、人机交互等各种语音转文本场景,且商业化后价格不菲。今天免费分享给大家,不要再去花钱买语音识别服务啦!
LDG_AGI
2024/08/13
4.9K0
【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战
【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为语音(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型
LDG_AGI
2024/08/13
1K0
金融/语音/音频处理学术速递[10.18]
【1】 Credit Union Regulations' Mysterious Hold on Thrifts and Community Banks 标题:信用社条例对储蓄和社区银行的神秘把持 链接:https://arxiv.org/abs/2110.07611
公众号-arXiv每日学术速递
2021/10/21
5930
树莓派 + Node.js 造一个有灵魂的语音助手
volute(蜗壳)是一个使用 Raspberry Pi+Node.js 制作的语音助手.
五月君
2020/11/04
3.8K0
树莓派 + Node.js 造一个有灵魂的语音助手
Transformers 4.37 中文文档(七十四)
ViTMSN 模型是由 Mahmoud Assran、Mathilde Caron、Ishan Misra、Piotr Bojanowski、Florian Bordes、Pascal Vincent、Armand Joulin、Michael Rabbat、Nicolas Ballas 提出的用于标签高效学习的 Masked Siamese Networks。该论文提出了一种联合嵌入架构,用于将屏蔽补丁的原型与未屏蔽补丁的原型进行匹配。通过这种设置,他们的方法在低样本和极低样本情况下表现出色。
ApacheCN_飞龙
2024/06/26
3570
Transformers 4.37 中文文档(七十四)
Transformers 4.37 中文文档(七十八)
Speech2Text2 模型与 Wav2Vec2 一起用于大规模自监督和半监督学习的语音翻译中提出的语音翻译模型,作者为 Changhan Wang,Anne Wu,Juan Pino,Alexei Baevski,Michael Auli,Alexis Conneau。
ApacheCN_飞龙
2024/06/26
3080
推荐阅读
相关推荐
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档