网站做seo外链,百度推广怎么使用教程,家装平台,wordpress注释
目录
一、引言
二、音频分类#xff08;audio-classification#xff09;
2.1 概述
2.2 技术原理
2.2.1 Wav2vec 2.0模型 2.2.1 HuBERT模型
2.3 pipeline参数
2.3.1 pipeline对象实例化参数
2.3.2 pipeline对象使用参数
2.4 pipeline实战
2.4.1 …
目录
一、引言
二、音频分类audio-classification
2.1 概述
2.2 技术原理
2.2.1 Wav2vec 2.0模型 2.2.1 HuBERT模型
2.3 pipeline参数
2.3.1 pipeline对象实例化参数
2.3.2 pipeline对象使用参数
2.4 pipeline实战
2.4.1 指令识别默认模型 2.4.2 情感识别
2.5 模型排名
三、总结 一、引言 pipeline管道是huggingface transformers库中一种极简方式使用大模型推理的抽象将所有大模型分为音频Audio、计算机视觉Computer vision、自然语言处理NLP、多模态Multimodal等4大类28小类任务tasks。共计覆盖32万个模型 今天介绍Audio音频的第一篇音频分类audio-classification在huggingface库内共有2500个音频分类模型。
二、音频分类audio-classification
2.1 概述
音频分类顾名思义就是将音频打标签或分配类别的任务。主要应用场景有语音情绪分类、语音命令分类、说话人分类、音乐风格判别、语言判别等。 2.2 技术原理
音频分类主要思想就是将音频的音谱切分成25ms-60ms的片段通过CNN等卷积神经网络模型提取特征并进行embedding化基于transformer与文本类别对齐训练。下面介绍2个代表模型
2.2.1 Wav2vec 2.0模型
Wav2vec 2.0是 Meta在2020年发表的无监督语音预训练模型。它的核心思想是通过向量量化Vector QuantizationVQ构造自建监督训练目标对输入做大量掩码后利用对比学习损失函数进行训练。模型结构如图基于卷积网络Convoluational Neural NetworkCNN的特征提取器将原始音频编码为帧特征序列通过 VQ 模块把每帧特征转变为离散特征 Q并作为自监督目标。同时帧特征序列做掩码操作后进入 Transformer [5] 模型得到上下文表示 C。最后通过对比学习损失函数拉近掩码位置的上下文表示与对应的离散特征 q 的距离即正样本对。 2.2.1 HuBERT模型
HuBERT是Meta在2021年发表的模型模型结构类似 Wav2vec 2.0不同的是训练方法。Wav2vec 2.0 是在训练时将语音特征离散化作为自监督目标而 HuBERT 则通过在 MFCC 特征或 HuBERT 特征上做 K-means 聚类得到训练目标。HuBERT 模型采用迭代训练的方式BASE 模型第一次迭代在 MFCC 特征上做聚类第二次迭代在第一次迭代得到的 HuBERT 模型的中间层特征上做聚类LARGE 和 XLARGE 模型则用 BASE 模型的第二次迭代模型提取特征做聚类。从原始论文实验结果来看HuBERT 模型效果要优于 Wav2vec 2.0特别是下游任务有监督训练数据极少的情况如 1 小时、10 分钟。 2.3 pipeline参数
2.3.1 pipeline对象实例化参数 模型PreTrainedModel或TFPreTrainedModel— 管道将使用其进行预测的模型。 对于 PyTorch这需要从PreTrainedModel继承对于 TensorFlow这需要从TFPreTrainedModel继承。feature_extractor ( SequenceFeatureExtractor ) — 管道将使用的特征提取器来为模型编码数据。此对象继承自 SequenceFeatureExtractor。modelcardstr或ModelCard可选 — 属于此管道模型的模型卡。frameworkstr可选— 要使用的框架pt适用于 PyTorch 或tfTensorFlow。必须安装指定的框架。 如果未指定框架则默认为当前安装的框架。如果未指定框架且安装了两个框架则默认为 的框架model如果未提供模型则默认为 PyTorch。 任务str默认为— 管道的任务标识符。num_workersint可选默认为 8— 当管道将使用DataLoader传递数据集时在 Pytorch 模型的 GPU 上时要使用的工作者数量。batch_sizeint可选默认为 1— 当管道将使用DataLoader传递数据集时在 Pytorch 模型的 GPU 上时要使用的批次的大小对于推理来说这并不总是有益的请阅读使用管道进行批处理。args_parserArgumentHandler可选 - 引用负责解析提供的管道参数的对象。设备int可选默认为 -1— CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU设置为正数将在关联的 CUDA 设备 ID 上运行模型。您可以传递本机torch.device或str太torch_dtypestr或torch.dtype可选 - 直接发送model_kwargs只是一种更简单的快捷方式以使用此模型的可用精度torch.float16torch.bfloat16...或autobinary_outputbool可选默认为False——标志指示管道的输出是否应以序列化格式即 pickle或原始输出数据例如文本进行。 2.3.2 pipeline对象使用参数 输入np.ndarray或bytes或str或dict — 输入可以是 str这是音频文件的文件名将以正确的采样率读取该文件以使用ffmpeg获取波形。这需要在系统上安装ffmpeg 。bytes它应该是音频文件的内容并以相同的方式由ffmpeg进行解释。np.ndarray形状为n类型为np.float32或np.float64正确采样率的原始音频不再进行进一步检查dict形式可用于传递任意采样的原始音频sampling_rate并让此管道进行重新采样。字典必须采用 或 格式{sampling_rate: int, raw: np.array}{sampling_rate: int, array: np.array}其中键raw或 array用于表示原始音频波形。top_kint可选默认为 None— 管道将返回的顶部标签数。如果提供的数字等于None或高于模型配置中可用的标签数则将默认为标签数。 2.4 pipeline实战
2.4.1 指令识别默认模型
pipeline对于audio-classification的默认模型时superb/wav2vec2-base-superb-ks使用pipeline时如果仅设置taskaudio-classification不设置模型则下载并使用默认模型。
import os
os.environ[HF_ENDPOINT] https://hf-mirror.com
os.environ[CUDA_VISIBLE_DEVICES] 2from transformers import pipelinespeech_file ./output_video_enhanced.mp3
pipe pipeline(taskaudio-classification)
result pipe(speech_file)
print(result) 这是一个上下左右yes及no的指令识别模型感觉像是训练动物。
[{score: 0.9988580942153931, label: _unknown_}, {score: 0.000909291033167392, label: down}, {score: 9.889943612506613e-05, label: no}, {score: 7.015655864961445e-05, label: yes}, {score: 5.134344974067062e-05, label: stop}] 2.4.2 情感识别
我们指定模型为情感识别模型ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition具体代码为
import os
os.environ[HF_ENDPOINT] https://hf-mirror.com
os.environ[CUDA_VISIBLE_DEVICES] 2from transformers import pipelinespeech_file ./output_video_enhanced.mp3
pipe pipeline(taskaudio-classification,modelehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition)
result pipe(speech_file)
print(result)
输入为一段mp3格式的语音输出为
[{score: 0.13128453493118286, label: angry}, {score: 0.12990005314350128, label: calm}, {score: 0.1262471228837967, label: happy}, {score: 0.12568499147891998, label: surprised}, {score: 0.12327362596988678, label: disgust}]
2.5 模型排名
在huggingface上我们筛选音频分类模型并按下载量从高到低排序 三、总结
本文对transformers之pipeline的音频分类audio-classification从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍读者可以基于pipeline使用文中的代码极简的进行音频分类推理应用于音频情感识别、音乐曲风判断等业务场景。 期待您的3连关注如何还有时间欢迎阅读我的其他文章
《Transformers-Pipeline概述》
【人工智能】Transformers之Pipeline概述30w大模型极简应用
《Transformers-Pipeline 第一章音频Audio篇》
【人工智能】Transformers之Pipeline一音频分类audio-classification
【人工智能】Transformers之Pipeline二自动语音识别automatic-speech-recognition
【人工智能】Transformers之Pipeline三文本转音频text-to-audio
【人工智能】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