赞
踩
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks),共计覆盖32万个模型。
今天介绍Audio的第三篇,文本转音频(text-to-audio/text-to-speech),在huggingface库内共有1978个音频分类模型,其中1141个是由facebook生成的不同语言版本,其他公司发布的仅有837个。
文本转音频(TTS),与上一篇音频转文本(STT)是对称技术,给定文本生成语音,实际使用上,更多与语音克隆技术相结合:先通过一段音频(few-show)进行声音克隆,再基于克隆的音色和文本生成语音。应用场景极多,也是人工智能领域最易看到成果的技术,主要应用场景有读文章、音乐生成、短视频智能配音、游戏角色智能配音等。
当前比较流行的做法还是基于transformer对文本编码与声音编码进行对齐,声音方面先产生一个对数梅尔频谱图,再使用一个额外的神经网络(声码器)转换为波形。
模型类别上,以suno/bark为代表的语音生成和以xtts为代表的声音克隆+语音生成各占据半壁江山,使用比较多的模型如下
- suno/bark:suno出品,天花板,支持笑容、男女声设定、音乐设定等。支持pipeline
- 2noise/ChatTTS:国产品牌,突破天花板。不支持pipeline,需要下载项目包
- BytedanceSpeech/seed-tts-eval:字节出品。不支持pipeline,需要下载项目包
- coqui/XTTS-v2:酷趣青蛙,几秒的语音样本即可完成克隆。支持pipeline生成,但克隆需要使用pypi的TTS包
- fishaudio/fish-speech-1.2:鱼语,国产,同样几秒的语音样本即可完成克隆。支持pipeline生成,但克隆需要下载项目。
( *args, vocoder = None, sampling_rate = None, **kwargs )
- text_inputs(
str
或List[str]
)——要生成的文本。- forward_params(
dict
,可选)— 传递给模型生成/转发方法的参数。forward_params
始终传递给底层模型。- generate_kwargs(
dict
,可选generate_config
)—用于生成调用的临时参数化字典。
- audio(
np.ndarray
形状(nb_channels, audio_length)
)——生成的音频波形。- samples_rate (
int
) — 生成的音频波形的采样率。
pipeline对于text-to-audio/text-to-speech的默认模型是suno/bark-small,使用pipeline时,如果仅设置task=text-to-audio或task=text-to-speech,不设置模型,则下载并使用默认模型。
- 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模型库。
参考官方文档:可以使用python或命令行2种方式轻松使用model_list内的模型,优先要安装TTS的pypi包:
pip install TTS -i https://mirrors.cloud.tencent.com/pypi/simple
2.4.2.1 语音转换(参考语音,将语音生成语音)
python版本:
- import torch
- from TTS.api import TTS
-
- # Get device
- device = "cuda" if torch.cuda.is_available() else "cpu"
-
- # List available 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/929512推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。