目录
二、零样本音频分类(zero-shot-audio-classification)
2.4.1 pipeline对象实例化参数
一、引言
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(audio)、计算机视觉(computer vision)、自然语言处理(nlp)、多模态(multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型
今天介绍audio音频的第四篇,零样本音频分类(zero-shot-audio-classification),在huggingface库内仅有4个音频分类模型。
二、零样本音频分类(zero-shot-audio-classification)
2.1 概述
零样本学习是ai识别方法之一。简单来说就是识别从未见过的数据类别,即训练的分类器不仅仅能够识别出训练集中已有的数据类别,还可以对于来自未见过的类别的数据进行区分。这是一个很有用的功能,使得计算机能够具有知识迁移的能力,并无需任何训练数据,很符合现实生活中海量类别的存在形式。。
2.2 意义
在传统ai识别任务中,训练阶段和测试阶段的类别是相同的,但每次为了识别新类别的样本需要在训练集中加入这种类别的数据。一些类别的样本收集代价大,即使收集到足够的训练样本,也需要对整个模型进行重新训练。这都会加大识别系统的成本,零样本学习方法便能很好的解决这个问题。
2.3 应用场景
2.4 pipeline参数
2.4.1 pipeline对象实例化参数
2.4.2 pipeline对象使用参数
2.4 pipeline实战
首先下载数据集,我们采用ashraq/esc50语音数据集,其中包含2000条语音分类样本。
将数据集加载后,采用task="zero-shot-audio-classification"默认的模型laion/clap-htsat-fused进行零样本语音分类:
import os
os.environ["hf_endpoint"] = "https://hf-mirror.com"
os.environ["cuda_visible_devices"] = "2"
from transformers import pipeline
from datasets import load_dataset
dataset = load_dataset("ashraq/esc50")
#{'filename': '1-100210-b-36.wav', 'fold': 1, 'target': 36, 'category': 'vacuum_cleaner', 'esc10': false, 'src_file': 100210, 'take': 'b', 'audio': {'path': none, 'array': array([0.53897095, 0.39627075, 0.26739502, ..., 0.09729004, 0.11227417,0.07983398]), 'sampling_rate': 44100}}
#pipe = pipeline(task="audio-classification",model="ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition")
audio = dataset["train"][1]["audio"]["array"]
classifier = pipeline(task="zero-shot-audio-classification")
result = classifier(audio, candidate_labels=["sound of a dog", "sound of vaccum cleaner","chirping_birds"])
print(result)
数据集中的第二行为chirping_birds,代码调用结果为
[{'score': 0.9998486042022705, 'label': 'chirping_birds'}, {'score': 7.838715828256682e-05, 'label': 'sound of vaccum cleaner'}, {'score': 7.297335105249658e-05, 'label': 'sound of a dog'}]
2.5 模型排名
在huggingface上,我们筛选零样本音频分类模型,并按下载量从高到低排序,基本没什么人用。。。
三、总结
本文对transformers之pipeline的零样本音频分类(zero-shot-audio-classification)从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍,读者可以基于pipeline使用文中的代码极简的进行零样本音频分类推理,模型目前比较冷门,但介于pipeline设计了这个task,为了完整性,还是写了这一篇。
期待您的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)
发表评论