0% found this document useful (0 votes)
327 views

Guide To YAMNet - Sound Event Classifier

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
327 views

Guide To YAMNet - Sound Event Classifier

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

(https://analyticsindiamag.

com/)

(https://ad.doubleclick.net/ddm/trackclk/N5295.2790902ANALYTICSINDIA/B26064305.307666412;dc_trk_aid=500518083;dc_trk_cid=153698222

(https://praxis.ac.in/data-science-program/?utm_source=AIM&utm_medium=banner&utm_campaign=DS-July2021)

Guide to YAMNet : Sound Event


Classifier
08/06/2021

T
ransfer Learning (https://analyticsindiamag.com/transfer-learning-using-tensorflow-
keras/) is a well-liked and popular machine learning technique in which one can train a
model by reusing information learned from a previously existing model. You must have
heard and read about common applications of transfer learning in the vision domain – training
models to accurately classify images and do object detection (https://analyticsindiamag.com/object-
detection-using-tensorflow/) or text-domain – sentiment analysis
(https://analyticsindiamag.com/getting-started-sentiment-analysis-tensorflow-keras/) or
question answering (https://analyticsindiamag.com/10-question-answering-datasets-to-build-
robust-chatbot-systems/), and the list goes on …
We will learn how to apply transfer learning for a new(relatively) type of data: audio, by making a
(https://analyticsindiamag.com/)
sound classifier. There are many vital use cases of sound classification, such as detecting whales and
other creatures using sound as a necessity to travel, protecting wildlife from poaching and
encroachment, etc.

With YAMNet (https://tfhub.dev/google/yamnet/1), we can easily create a sound classifier in a few


simple and easy steps!

YAMNet (https://github.com/KosminD/YAMNet_transfer)(Yet Another Mobile Network) – Yes, that


is the full form, is a pretrained acoustic detection model trained by Dan Ellis
(https://github.com/dpwe) on the AudioSet (https://research.google.com/audioset/) dataset which
contains labelled data from more than 2 million Youtube videos. It employs the MobileNet_v1
(https://arxiv.org/pdf/1704.04861.pdf) depth-wise-separable convolution architecture. This
pretrained model is readily available in Tensorflow Hub, which includes TFLite(lite model for mobile)
and TF.js(running on the web) versions.

Let’s better understand this amazing model with a practical use case and hands-on Python
Implementation.

 Importing the Dependencies 

Importing tensorflow-hub for leveraging the pre-trained model, wavfile for storing an audio file.

IPython.display (https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html) lets


us play audio right here in the notebook.

import tensorflow as tf

import tensorflow_hub as hub

import numpy as np

import csv

import matplotlib.pyplot as plt

from IPython.display import Audio

from scipy.io import wavfile

Loading the Model

Instantiating the pre-trained model to a variable using hub.model method for usage in the below
cells. The labels file will also be loaded from model assets and is present at model.class_map_path().
We require this to load it on the class_names variable later on.

# Load the model.

model = hub.load('https://tfhub.dev/google/yamnet/1') 

Helper_Function_1

This helper function is created to find the name of the class with the top score when mean-
aggregated across frames.
# Find the name of the class with the top score(https://analyticsindiamag.com/)
when mean-aggregated across
frames.
def class_names_from_csv(class_map_csv_text):

  """Returns list of class names corresponding to score vector."""

  class_names = []

  with tf.io.gfile.GFile(class_map_csv_text) as csvfile:

    reader = csv.DictReader(csvfile)

    for row in reader:

      class_names.append(row['display_name'])

  return class_names

class_map_path = model.class_map_path().numpy()

class_names = class_names_from_csv(class_map_path)

Helper_Function_2

We need to add this method to verify and convert the loaded audio to the proper sample_rate which
is 16K. This is mentioned in the YAMNet paper (https://arxiv.org/pdf/2002.12764.pdf) by the authors,
as it can adversely affect our model results.

def ensure_sample_rate(original_sample_rate, waveform,

                       desired_sample_rate=16000):

  """Resample waveform if required."""

  if original_sample_rate != desired_sample_rate:

    desired_length = int(round(float(len(waveform)) /

                               original_sample_rate * desired_sample_rate))

    waveform = scipy.signal.resample(waveform, desired_length)

  return desired_sample_rate, waveform

Downloading and Preparing the sound file 

The Colab notebook will have all links required; you just have to run the notebook provided.

!curl -O https://storage.googleapis.com/audioset/speech_whistling2.wav

!curl -O https://storage.googleapis.com/audioset/miaow_16k.wav

We can also listen to a sample audio file from the downloaded data set and check its properties by
applying the following snippet. As shown below, we can play the sample audio file and look at some
information about this particular audio file.  

# wav_file_name = 'speech_whistling2.wav'

wav_file_name = 'miaow_16k.wav'

sample_rate, wav_data = wavfile.read(wav_file_name, 'rb')

sample_rate, wav_data = ensure_sample_rate(sample_rate, wav_data)

# Show some basic information about the audio.

duration = len(wav_data)/sample_rate

print(f'Sample rate: {sample_rate} Hz')

print(f'Total duration: {duration:.2f}s')

print(f'Size of the input: {len(wav_data)}')

# Listening to the wav file.

Audio(wav_data, rate=sample_rate)

Running the Model 


SEE ALSO
(https://analyticsindiamag.com/)

(https://an
OPINIONS (HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/ARTICLES/)
alyticsindi
Why Do Companies Prefer Pre-Trained Models?
amag.com/
(https://analyticsindiamag.com/why-do-companies-prefer-pre-
why-do- trained-models/)
companies
-prefer-
pre-
trained-
models/)

We are converting the wave data into numbers to feed to the pre-trained model. The model will give
us scores , embeddings, and spectrograms as output that we can later display. Helper_Function_1
gives us the output as “Animal” which means that this is the label with the maximum number of
audio files in our dataset.

waveform = wav_data / tf.int16.max

# Run the model, check the output.

scores, embeddings, spectrogram = model(waveform)

scores_np = scores.numpy()

spectrogram_np = spectrogram.numpy()

infered_class = class_names[scores_np.mean(axis=0).argmax()]

print(f'The main sound is: {infered_class}')

Plotting the Output

Plotting the three outputs we got from running the model, namely scores
(https://audio2score.github.io/), embeddings (https://ccrma.stanford.edu/events/learning-audio-
embeddings-signal-representation-audio-transformation-understanding) and spectrograms
(https://www.izotope.com/en/learn/understanding-spectrograms.html). 
plt.figure(figsize=(10, 6))
(https://analyticsindiamag.com/)
# Plot the waveform.

plt.subplot(3, 1, 1)

plt.plot(waveform)

plt.xlim([0, len(waveform)])

# Plot the log-mel spectrogram (returned by the model).

plt.subplot(3, 1, 2)

plt.imshow(spectrogram_np.T, aspect='auto', interpolation='nearest',


origin='lower')

# Plot and label the model output scores for the top-scoring classes.

mean_scores = np.mean(scores, axis=0)

top_n = 10

top_class_indices = np.argsort(mean_scores)[::-1][:top_n]

plt.subplot(3, 1, 3)

plt.imshow(scores_np[:, top_class_indices].T, aspect='auto',


interpolation='nearest', cmap='gray_r')

# patch_padding = (PATCH_WINDOW_SECONDS / 2) / PATCH_HOP_SECONDS

# values from the model documentation

patch_padding = (0.025 / 2) / 0.01

plt.xlim([-patch_padding-0.5, scores.shape[0] + patch_padding-0.5])

# Label the top_N classes.

yticks = range(0, top_n, 1)

plt.yticks(yticks, [class_names[top_class_indices[x]] for x in yticks])

_ = plt.ylim(-0.5 + np.array([top_n, 0]))

After running the above snippets, it will be displayed as below.

And here is your sound classifier using the pretrained model YAMNet. I recommend trying out this
model with different datasets from open source and those present in the links present in this blog.
This is a peculiar use case that will enhance your skillset in Deep Learning.

The Google Colab notebook is present here


(https://colab.research.google.com/drive/1eNfcoW5xSpX_WxerAr9GfMixEBfjsbns?usp=sharing) for
reference. 

References:

Official Github Repository


(https://github.com/tensorflow/models/tree/master/research/audioset/yamnet)
Research Paper (https://arxiv.org/pdf/2002.12764.pdf)
Official Source Code (https://github.com/KosminD/YAMNet_transfer)
Colab Implementation
(https://colab.research.google.com/drive/1eNfcoW5xSpX_WxerAr9GfMixEBfjsbns?usp=sharing)

What Do You Think?


0 Comments Sort by Oldest

Add a comment...

Facebook Comments Plugin

Join Our Telegram Group. Be part of an engaging online community. Join Here
(https://t.me/joinchat/NJLxnhZB7GkX3CPvjs9QGQ).
Subscribe to our Newsletter (https://analyticsindiamag.com/)

Get the latest updates and relevant offers by sharing your email.

ENTER YOUR EMAIL SUBSCRIBE NOW

MUDIT RUSTAGI (HTTPS://ANALYTICSINDIAMAG.COM/AUTHOR/MUDIT-RUSTAGIANALYTICSINDIAMAG-COM/)

Mudit is experienced in machine learning and deep learning. He is an undergraduate in Mechatronics and worked as
a team lead (ML team) for several Projects. He has a strong interest in doing SOTA ML projects and writing blogs on
data science and machine learning.

 SHARE (https://www.facebook.com/sharer.php?u=https://analyticsindiama

(https://twitter.com/intent/tweet?text=Guide%20to%20YAMNet%20:%20Sound%20Event%20Classifier&via=Analyticsindiam&url=h
 TWEET
sound-event-classifier/)

(https://www.linkedin.com/cws/share?url=https://analyticsindiamag.com/guide-to-yamnet-sound-event-classifier/)

(https://wa.me/?text=Guide%20to%20YAMNet%20:%20Sound%20Event%20Classifier%20https://analyticsindiamag.com/guide-to-yamn
(mailto:?
subject=Guide%20to%20YAMNet%20:%20Sound%20Event%20Classifier&body=Guide%20to%20YAMNet%20:%20Sound%20Event%20C
to-yamnet-sound-event-classifier/)
(https://share.flipboard.com/bookmarklet/popout?v=2&title=Guide%20to%20YAMNet%20:%20Sound%20Event%20Classifier&url=https:/

sound-event-classifier/)
(https://analyticsindiamag.com/)

(https://herovired.com/promotions/IDMA_PT/?utm_source=AIM&utm_medium=bannerAIM&utm_campaign=AIMCampaign)

(https://business.louisville.edu/learnmore/msba-india?utm_campaign=MSBA-
INDIA&utm_source=analyticsindia&utm_medium=display&utm_keyword=analyticsindia&utm_content=GetPaid)

OUR UPCOMING EVENTS

Webinar

Why Modernising Data Platform Matters & Why Now?


15th July 2021
Register>> (https://register.gotowebinar.com/#register/7044197581240444430)
 

Virtual Conference

Deep Learning DevCon 2021


23-24th Sep 2021
Register>> (https://dldc.adasci.org/)

RELATED POSTS

DEVELOPERS CORNER
(HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/DEVELOPERS_CORNER/)

Guide To Simple Object Detection


Using InceptionResnet_v2
(https://analyticsindiamag.com/guide- (https://analyticsi
to-simple-
object-
detection-using-
inceptionresnet_v
to-simple-object-detection-
(https://analyticsindiamag.com/)

using-inceptionresnet_v2/)
13/07/2021 · 6 MINS READ

DEVELOPERS CORNER
(HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/DEVELOPERS_CORNER/)

Guide To Question-Answering
System With T5 Transformer
(https://analyticsindiamag.com/guide- (https://analyticsi
to-question-

to-question-answering-system- answering-
system-with-t5-
with-t5-transformer/) transformer/)

29/06/2021 · 9 MINS READ

DEVELOPERS CORNER
(HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/DEVELOPERS_CORNER/)

Python Guide To Google’s T5


Transformer For Text
Summarizer (https://analyticsi
guide-to-

(https://analyticsindiamag.com/python-googles-t5-
transformer-

guide-to-googles-t5- for-text-
summarizer/)
transformer-for-text-
summarizer/)
26/06/2021 · 15 MINS READ

DEVELOPERS CORNER
(HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/DEVELOPERS_CORNER/)

Exploring Transfer Learning


Using TensorFlow Keras
(https://analyticsindiamag.com/transfer-
(https://analyticsi
learning-using-

learning-using-tensorflow- tensorflow-
keras/)
keras/)
11/05/2021 · 10 MINS READ

DEVELOPERS CORNER
(HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/DEVELOPERS_CORNER/)

What Happened When Google


Threw All Voice Data To The
Blender Answer: SpeechStew (https://analyticsi
Blender. Answer: SpeechStew (https://analyticsi
happened-

(https://analyticsindiamag.com/what-
(https://analyticsindiamag.com/)
when-google-
threw-all-voice-
happened-when-google-threw- data-to-the-
blender-answer-
all-voice-data-to-the-blender- speechstew/)

answer-speechstew/)
20/04/2021 · 3 MINS READ

DEVELOPERS CORNER
(HTTPS://ANALYTICSINDIAMAG.COM/CATEGORY/DEVELOPERS_CORNER/)

The Worth Of Prompts In Pre-


trained Models
(https://analyticsindiamag.com/the- (https://analyticsi
worth-of-

worth-of-prompts-in-pre- prompts-in-pre-
trained-models/)

trained-models/)
22/03/2021 · 2 MINS READ

CONNECT OUR BRANDS OUR OUR VIDEOS BRAND PAGES LISTS


CONFERENCES
About Us MachineHack – ML Documentary – The Intel AI Hub Academic Rankings
(https://analyticsindiamag.com/about/)
Hackathons Cypher Transition Cost (https://analyticsindiamag.com/ai-
(https://analyticsindiamag
(https://www.analyticsindiasummit.com/)
(https://www.machinehack.com/) (https://www.youtube.com/watch?
on-intel/) rankings/)
Advertise
The MachineCon v=7pvGJbzTTWk&list=PL9Kc1zSa46OzMfx0I1SJZOGpN_p371vbd)
(https://analyticsindiamag.com/advertise-
AIM Research Best Firms To Work For
with-us/) (https://aimresearch.ai/) (https://themachinecon.com/)
Web Series – The (https://analyticsindiamag
ASSOCIATION OF
Machine Learning Dating Scientists DATA SCIENTISTS best-firms-in-india-
Weekly Newsletter AIM Recruits
Developers Summit (https://www.youtube.com/watch? for-data-scientists-
(https://analyticsindiamagazine.substack.com/)
(https://recruits.analyticsindiamag.com/)
v=WQbKblRKQsk&list=PL9Kc1zSa46OxzJqQEJa-
(http://mlds.analyticsindiasummit.com/) to-work-for-2021/)
Chartered Data
Write for us Workshops qI55CtLZxFl2v)
The Rising Scientist(TM) Top Leaders
(https://analyticsindiamag.com/write-
(https://www.machinehack.com/bootcamp)
Podcasts – Simulated
(https://rising.analyticsindiasummit.com/) (https://www.adasci.org/cds-
(https://analyticsindiamag
for-us/)
Practice Reality program) s=most+influential&categ
Careers plugin
(https://www.machinehack.com/practices) (https://www.youtube.com/watch?
(https://plugin.analyticsindiasummit.com/) Lattice – Machine Data Scientists
(https://www.linkedin.com/jobs/search/? v=gvZfaeVVbGE&list=PL9Kc1zSa46OwqKv91j8W6vZ-
Learning Journal (https://analyticsindiamag
currentJobId=2595617641&f_C=10283931&f_TPR=r604800&geoId=92000000) V5DucIU4Y)
(https://www.adasci.org/journals/lattice-
s=top+10+data+scientists&
EVENTS
Reuse our content AWARDS Analytics India Guru 35309407)
Emerging Startups
(https://analyticsindiamag.com/reuse- (https://www.youtube.com/watch?
AIM Custom Events Continuous Learning (https://analyticsindiamag
our-content/) v=oQDZMdeyzgw&list=PL9Kc1zSa46Oyc1zxdtKwCO2SU7hlHDTvl)
Analytics100
(https://analyticsindiamag.com/our- (https://www.adasci.org/continuous-
s=10+Emerging+Analytics
Contact Us events/aim-custom- (https://themachinecon.com/awards/)
The Pretentious Geek learning)
Trends
(https://analyticsindiamag.com/contact-
events/) (https://www.youtube.com/watch?
40 under 40 Data Job Board (https://analyticsindiamag
us/) v=Q7d1UR_PRGg&list=PL9Kc1zSa46OxcRA2Y3OFCFwjQgK3ibF9z)
AIM Virtual Scientists (https://www.adasci.org/jobs)
s=top+trends&category=4
(https://mlds.analyticsindiasummit.com/awards/)
(https://analyticsindiamag.com/our- Deeper Insights with
Membership PeMa Quadrant
events/aim-virtual/) Leaders
MENTORSHIP Data Science Excellence (https://www.adasci.org/membership)
(https://analyticsindiamag
(https://www.youtube.com/watch?
(https://www.analyticsindiasummit.com/about/awards/)
Discussion Board Analytics Service
v=Z3Z7Riw1G9o&list=PL9Kc1zSa46Oyv8tAFzC22cuLXNRUZvXAG)
AIM Mentorship Circle Women in AI (https://www.adasci.org/forum)
Providers
(https://analyticsindiamag.com/mentorship- Curiosum – AI
Leadership (https://analyticsindiamag
circle/) Storytelling Community
(https://rising.analyticsindiasummit.com/awards/)
(https://www.adasci.org/community)
(https://www.youtube.com/watch?
( p // y /
Assisted Mentoring
v=AfsqH5EzjIg&list=PL9Kc1zSa46OzOCjo2YUNym6thlDD0F0zc)
(https://analyticsindiamag.com/mentorship- (https://analyticsindiamag.com/)
circle/assisted-
mentoring/)


(HTTPS://FACEBOOK.COM/ANALYTICSINDIAMAGAZINE)

(HTTPS://TWITTER.COM/ANALYTICSINDIAM)

(HTTPS://INSTAGRAM.COM/ANALYTICSINDIAMAGAZINE)
ABOUT US(HTTPS://ANALYTICSINDIAMAG.COM/ABOUT/)

(HTTPS://PINTEREST.COM/ANALYTICSINDIAM)

(https://analyticsindiamag.com/) 
ADVERTISE(HTTPS://ANALYTICSINDIAMAG.COM/ADVERTISE-WITH-US/) (HTTPS://YOUTUBE.COM/CHANNEL/UCALWRSGEJAVG1VW9QSFOUMA)

(HTTPS://MEDIUM.COM/ANALYTICS-INDIA-MAGAZINE)
WRITE FOR US(HTTPS://ANALYTICSINDIAMAG.COM/WRITE-FOR-US/)

(HTTPS://WWW.LINKEDIN.COM/COMPANY/ANALYTICS-INDIA-
MAGAZINE)
COPYRIGHT(HTTPS://ANALYTICSINDIAMAG.COM/COPYRIGHT-TRADEMARKS/) 
(HTTPS://T.ME/NJLXNHZB7GKX3CPVJS9QGQ)

PRIVACY(HTTPS://ANALYTICSINDIAMAG.COM/PRIVACY-POLICY/)

TERMS OF USE(HTTPS://ANALYTICSINDIAMAG.COM/TERMS-USE/)

CONTACT US(HTTPS://ANALYTICSINDIAMAG.COM/CONTACT-US/)

COPYRIGHT ANALYTICS INDIA MAGAZINE PVT LTD

You might also like