湘潭找工作网站,个人的网站建设的目的,石家庄24号解封通知,做100个网站挂广告联盟 一、引言 pipeline#xff08;管道#xff09;是huggingface transformers库中一种极简方式使用大模型推理的抽象#xff0c;将所有大模型分为音频#xff08;Audio#xff09;、计算机视觉#xff08;Computer vision#xff09;、自然语言处理#x… 一、引言 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/barksuno出品天花板支持笑容、男女声设定、音乐设定等。支持pipeline2noise/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_inputsstr或List[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时如果仅设置tasktext-to-audio或tasktext-to-speech不设置模型则下载并使用默认模型。
import os
os.environ[HF_ENDPOINT] https://hf-mirror.com
os.environ[CUDA_VISIBLE_DEVICES] 2import 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_rateresult[sampling_rate]
audioresult[audio]
print(sampling_rate,audio)
scipy.io.wavfile.write(bark_out.wav, ratesampling_rate, dataaudio)
Audio(audio, ratesampling_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包
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 TTS models
print(TTS().list_models())# Init TTS
tts TTS(model_namevoice_conversion_models/multilingual/vctk/freevc24, progress_barFalse).to(cuda)
tts.voice_conversion_to_file(source_wavmy/source.wav, target_wavmy/target.wav, file_pathoutput.wav)
命令行版本 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版本
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(textHello world!, speaker_wavmy/cloning/audio.wav, languageen)
# Text to speech to a file
tts.tts_to_file(textHello world!, speaker_wavmy/cloning/audio.wav, languageen, file_pathoutput.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_wavtarget/speaker.wav,file_pathoutput.wav
)
命令行版本
$ 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和命令行工具完成文字生成语音、文字参考语音生成语音、语音参考语音生成语音应用于有声小说、音乐创作、变音等非常广泛的场景。 期待您的3连关注如何还有时间欢迎阅读我的其他文章
《Transformers-Pipeline概述》
【人工智能】Transformers之Pipeline概述30w大模型极简应用
《Transformers-Pipeline 第一章音频Audio篇》
【人工智能】Transformers之Pipeline一音频分类audio-classification
【人工智能】Transformers之Pipeline二自动语音识别automatic-speech-recognition
【人工智能】Transformers之Pipeline三文本转音频text-to-audio/text-to-speech
【人工智能】Transformers之Pipeline四零样本音频分类zero-shot-audio-classification
《Transformers-Pipeline 第二章计算机视觉CV篇》
【人工智能】Transformers之Pipeline五深度估计depth-estimation
【人工智能】Transformers之Pipeline六图像分类image-classification
【人工智能】Transformers之Pipeline七图像分割image-segmentation
【人工智能】Transformers之Pipeline八图生图image-to-image
【人工智能】Transformers之Pipeline九物体检测object-detection
【人工智能】Transformers之Pipeline十视频分类video-classification
【人工智能】Transformers之Pipeline十一零样本图片分类zero-shot-image-classification
【人工智能】Transformers之Pipeline十二零样本物体检测zero-shot-object-detection
《Transformers-Pipeline 第三章自然语言处理NLP篇》
【人工智能】Transformers之Pipeline十三填充蒙版fill-mask
【人工智能】Transformers之Pipeline十四问答question-answering
【人工智能】Transformers之Pipeline十五总结summarization
【人工智能】Transformers之Pipeline十六表格问答table-question-answering
【人工智能】Transformers之Pipeline十七文本分类text-classification
【人工智能】Transformers之Pipeline十八文本生成text-generation
【人工智能】Transformers之Pipeline十九文生文text2text-generation
【人工智能】Transformers之Pipeline二十令牌分类token-classification
【人工智能】Transformers之Pipeline二十一翻译translation
【人工智能】Transformers之Pipeline二十二零样本文本分类zero-shot-classification
《Transformers-Pipeline 第四章多模态Multimodal篇》
【人工智能】Transformers之Pipeline二十三文档问答document-question-answering
【人工智能】Transformers之Pipeline二十四特征抽取feature-extraction
【人工智能】Transformers之Pipeline二十五图片特征抽取image-feature-extraction
【人工智能】Transformers之Pipeline二十六图片转文本image-to-text
【人工智能】Transformers之Pipeline二十七掩码生成mask-generation
【人工智能】Transformers之Pipeline二十八视觉问答visual-question-answering