Transformers 结构 Pipeline 使命详解:文本转音频(text-to-audio 或 text-to-speech)
在上一篇文章(Transformers 结构使命概览:从零开始把握 Pipeline(管道)与 Task(使命)),咱们深化探讨了 Transformers 结构中的 Pipeline 和 Task 分类、装备及履行流程。今日,咱们将聚集于五大使命之一的text-to-audio
或text-to-speech
(TTS),探究怎么运用 Transformers 将文本转化为天然流通的语音。
1. 运用场景
文本转音频技能经过深度学习模型从海量语音数据中学习发音规则,能够生成传神的声响。依据 Hugging Face 官网的数据,当时已有超越2,148个文本转音频模型供挑选:
这项技能广泛运用于多个范畴,以下是一些具有代表性的运用场景:
-
有声读物与电子书:将电子书或文章的内容转化为音频格式,运用户能够在通勤、运动或其他无法专心阅览的时间段倾听,供给了一种愈加快捷和灵敏的常识获取办法。
-
在线教育与学习渠道:主动为课程内容生成配套的音频解说,协助学生操练外语发音,增强了学习的互动性和趣味性,丰厚了教育资源的办法。
-
虚拟帮手与智能家居:智能音箱、智能手机和其他物联网设备能够运用文本转音频技能响运用户的指令或查询,供给天气预报、新闻更新等信息,提升了设备的易用性和用户体会。
-
客服体系与主动化服务:企业能够集成文本转音频技能来主动生成语音应对,用于客户服务热线、电话会议记录转写以及主动化的音讯告诉,降低了人力本钱并提高了服务功率。
-
播送与媒体制造:播送电台、电视节目和网络视频能够快速生成旁白、广告词等需求语音播报的内容,加快了内容生产流程,减少了对专业配音演员的依靠,并可依据方针受众的特色定制不同的声响风格。
2. 使命装备
在 Transformers 结构中,text-to-audio
(T2A)和text-to-speech
(TTS)是同一使命的不同称号。虽然两者在 Pipeline 装备中有别号联系,但在实际运用时没有差异,结构终究一致运用text-to-audio
作为使命称号。
TASK_ALIASES = {
# 其他省掉......
"text-to-speech": "text-to-audio",
}
SUPPORTED_TASKS = {
# 其他省掉......
"text-to-audio": {
"impl": TextToAudioPipeline,
"tf": (),
"pt": (AutoModelForTextToWaveform, AutoModelForTextToSpectrogram) if is_torch_available() else (),
"default": {"model": {"pt": ("suno/bark-small", "1dbd7a1")}},
"type": "text",
},
# 其他省掉......
}
3. 文本转音频实战
3.1 ChatTTS 模型
之前的文章中,咱们介绍了怎么运用ChatTTS将儿童绘本内容组成音频。ChatTTS支撑中英文、中止、笑声等多种元素的兼并,生成的声响十分流通。关于更具体的进程,请参阅老牛同学的教程:ChatTTS 长音频组成和本地布置 2 种办法,让你的“儿童绘本”发声的实战教程。
【音频文件请到老牛同学大众号收听】
需求留意的是,ChatTTS现在尚不支撑 Transformers 结构的 Pipeline 使命,因而需求依照老牛同学供给的攻略进行下载、装备和布置推理模型。
3.2 Bark 模型
Transformers 结构默许运用的是由 Suno AI 研制的suno/bark-small模型,该模型以其高质量、天然流通且赋有表现力的语音生成才能而出名。除了英语外,它还支撑包含简体中文、法语、德语、西班牙语在内的 13 种言语。
接下来,咱们将介绍两种运用 Bark 模型的办法。
办法一:主动下载模型
首要,保证装置必要的依靠包:
pip install --upgrade transformers scipy
然后,咱们能够直接从 Hugging Face 下载模型。如果您的网络环境答应,能够直接下载;不然,能够经过设置镜像来加快下载进程:
import os
from transformers import pipeline
import scipy
# 设置署理和本地缓存目录
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
cache_dir = os.path.join('D:', os.path.sep, 'ModelSpace', 'Cache')
os.environ['HF_HOME'] = cache_dir
# 创立Pipeline使命
nlp = pipeline("text-to-audio", model="suno/bark-small")
# 履行文本转音频使命
speech = nlp("Hello, my name is Suno. And, uh — and I like pizza. [laughs] But I also have other interests such as playing tic tac toe.", forward_params={"do_sample": True})
# 存储音频文件
scipy.io.wavfile.write("./output/01.bark.wav", rate=speech["sampling_rate"], data=speech["audio"].ravel())
运转上述代码后,您将在output
目录下找到生成的音频文件:01.bark.wav。
【音频文件请到老牛同学大众号收听】
办法二:自主下载模型
如果您期望经过本地模型文件进行推理,能够依照以下进程操作:
from transformers import AutoTokenizer, AutoModel, pipeline
import os
# 本地模型文件目录
model_dir = os.path.join('D:', os.path.sep, 'ModelSpace', 'Bark-small')
# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_dir, local_files_only=True)
model = AutoModel.from_pretrained(model_dir, torch_dtype="auto", device_map="auto", local_files_only=True)
# 创立Pipeline使命
nlp = pipeline("text-to-audio", tokenizer=tokenizer, model=model)
这样,您能够根据本地存储的模型文件进行推理,避免了网络下载的约束。
总结
本文具体介绍了 Transformers 结构中text-to-audio
使命的运用场景、装备办法以及实战事例。无论是运用默许的suno/bark-small模型仍是其他模型,Pipeline 都供给了简略而强壮的接口来完成文本到音频的转化。未来,老牛同学将持续推出更多关于 Transformers 结构 Pipeline 使命的文章,敬请期待!
期望这篇文章能为您的学习之旅带来协助,欢迎在谈论区共享您的见地和问题!
Pipeline使命:
Transformers 结构使命概览:从零开始把握 Pipeline(管道)与 Task(使命)
往期引荐文章:
深化解析 Transformers 结构(一):包和目标加载中的规划巧思与实用技巧
深化解析 Transformers 结构(二):AutoModel 初始化及 Qwen2.5 模型加载全流程
深化解析 Transformers 结构(三):Qwen2.5 大模型的 AutoTokenizer 技能细节
深化解析 Transformers 结构(四):Qwen2.5/GPT 分词流程与 BPE 分词算法技能细节详解
根据 Qwen2.5-Coder 模型和 CrewAI 多智能体结构,完成智能编程体系的实战教程
vLLM CPU 和 GPU 形式署和推理 Qwen2 等大言语模型具体教程
根据 Qwen2/Lllama3 等大模型,布置团队私有化 RAG 常识库体系的具体教程(Docker+AnythingLLM)
运用 Llama3/Qwen2 等开源大模型,布置团队私有化 Code Copilot 和运用教程
根据 Qwen2 大模型微调技能具体教程(LoRA 参数高效微谐和 SwanLab 可视化监控)
ChatTTS 长音频组成和本地布置 2 种办法,让你的“儿童绘本”发声的实战教程