# Audio Classification with PANNS *Author: Jael Gu* ## Desription The audio classification operator classify the given audio data with 527 labels from the large-scale [AudioSet dataset](https://research.google.com/audioset/). The pre-trained model used here is from the paper **PANNs: Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition** ([paper link](https://arxiv.org/abs/1912.10211)). ```python import numpy as np from towhee import ops audio_classifier = ops.audio_classification.panns() # Path or url as input tags, audio_embedding = audio_classifier("/audio/path/or/url/") # Audio data as input audio_data = np.zeros((2, 441344)) sample_rate = 44100 tags, audio_embedding = audio_classifier(audio_data, sample_rate) ``` ## Factory Constructor Create the operator via the following factory method ***ops.audio_classification.panns()*** ## Interface Given an audio (file path, link, or waveform), the audio classification operator generates a list of labels and a vector in numpy.ndarray. **Parameters:** ​ None. **Returns**: *numpy.ndarray* ​ labels [(tag, score)], audio embedding in shape (2048,). ## Code Example Generate embeddings for the audio "test.wav". *Write the pipeline in simplified style*: ```python from towhee import dc dc.glob('test.wav') .audio_classification.panns() .show() ``` *Write a same pipeline with explicit inputs/outputs name specifications:* ```python from towhee import dc dc.glob['path']('test.wav') .audio_classification.panns['path', 'vecs']() .select('vecs') .show() ```