From fdada40afa91ed8d7573babb4bad38df70ce00ab Mon Sep 17 00:00:00 2001 From: yangdongchao <15087581161@163.com> Date: Wed, 29 Mar 2023 21:20:32 +0800 Subject: [PATCH] detection and binaural --- audio-chatgpt.py | 143 +- audio_detection/__init__.py | 0 audio_detection/audio_infer/YDlWd7Wmdi1E.wav | Bin 0 -> 640078 bytes audio_detection/audio_infer/__init__.py | 0 audio_detection/audio_infer/infer.sh | 5 + .../groundtruth_weak_label_evaluation_set.csv | 1350 +++++++++++ .../groundtruth_weak_label_testing_set.csv | 606 +++++ .../metadata/class_labels_indices.csv | 528 +++++ .../audio_infer/pytorch/evaluate.py | 42 + .../audio_infer/pytorch/finetune_template.py | 127 + .../audio_infer/pytorch/inference.py | 206 ++ audio_detection/audio_infer/pytorch/losses.py | 14 + audio_detection/audio_infer/pytorch/main.py | 378 +++ audio_detection/audio_infer/pytorch/models.py | 951 ++++++++ .../audio_infer/pytorch/pytorch_utils.py | 251 ++ .../audio_infer/results/YDlWd7Wmdi1E.png | Bin 0 -> 235938 bytes audio_detection/audio_infer/utils/config.py | 94 + audio_detection/audio_infer/utils/crash.py | 12 + .../audio_infer/utils/create_black_list.py | 64 + .../audio_infer/utils/create_indexes.py | 126 + .../audio_infer/utils/data_generator.py | 421 ++++ audio_detection/audio_infer/utils/dataset.py | 224 ++ .../audio_infer/utils/plot_for_paper.py | 565 +++++ .../audio_infer/utils/plot_statistics.py | 2034 +++++++++++++++++ .../audio_infer/utils/utilities.py | 172 ++ mono2binaural/src/models.py | 110 + mono2binaural/src/utils.py | 251 ++ mono2binaural/src/warping.py | 113 + 28 files changed, 8786 insertions(+), 1 deletion(-) create mode 100644 audio_detection/__init__.py create mode 100644 audio_detection/audio_infer/YDlWd7Wmdi1E.wav create mode 100644 audio_detection/audio_infer/__init__.py create mode 100644 audio_detection/audio_infer/infer.sh create mode 100644 audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_evaluation_set.csv create mode 100644 audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_testing_set.csv create mode 100644 audio_detection/audio_infer/metadata/class_labels_indices.csv create mode 100644 audio_detection/audio_infer/pytorch/evaluate.py create mode 100644 audio_detection/audio_infer/pytorch/finetune_template.py create mode 100644 audio_detection/audio_infer/pytorch/inference.py create mode 100644 audio_detection/audio_infer/pytorch/losses.py create mode 100644 audio_detection/audio_infer/pytorch/main.py create mode 100644 audio_detection/audio_infer/pytorch/models.py create mode 100644 audio_detection/audio_infer/pytorch/pytorch_utils.py create mode 100644 audio_detection/audio_infer/results/YDlWd7Wmdi1E.png create mode 100644 audio_detection/audio_infer/utils/config.py create mode 100644 audio_detection/audio_infer/utils/crash.py create mode 100644 audio_detection/audio_infer/utils/create_black_list.py create mode 100644 audio_detection/audio_infer/utils/create_indexes.py create mode 100644 audio_detection/audio_infer/utils/data_generator.py create mode 100644 audio_detection/audio_infer/utils/dataset.py create mode 100644 audio_detection/audio_infer/utils/plot_for_paper.py create mode 100644 audio_detection/audio_infer/utils/plot_statistics.py create mode 100644 audio_detection/audio_infer/utils/utilities.py create mode 100644 mono2binaural/src/models.py create mode 100644 mono2binaural/src/utils.py create mode 100644 mono2binaural/src/warping.py diff --git a/audio-chatgpt.py b/audio-chatgpt.py index 9f907f5..50a622e 100644 --- a/audio-chatgpt.py +++ b/audio-chatgpt.py @@ -5,6 +5,9 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'text_to_sing/DiffSinger')) sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'text_to_audio/Make_An_Audio')) sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'text_to_audio/Make_An_Audio_img')) +sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'audio_to_text/Audiocaption')) +sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'audio_detection')) +sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mono2binaural')) import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer, CLIPSegProcessor, CLIPSegForImageSegmentation import torch @@ -45,6 +48,11 @@ from inference.tts.GenerSpeech import GenerSpeechInfer from utils.hparams import set_hparams from utils.hparams import hparams as hp from utils.os_utils import move_file +import librosa +from audio_infer.utils import config as detection_config +from audio_infer.pytorch.models import PVT +from src.models import BinauralNetwork +import uuid AUDIO_CHATGPT_PREFIX = """Audio ChatGPT AUdio ChatGPT can not directly read audios, but it has a list of tools to finish different audio synthesis tasks. Each audio will have a file name formed as "audio/xxx.wav". When talking about audios, Audio ChatGPT is very strict to the file name and will never fabricate nonexistent files. AUdio ChatGPT is able to use tools in a sequence, and is loyal to the tool observation outputs rather than faking the audio content and audio file name. It will remember to provide the file name from the last tool observation, if a new audio is generated. @@ -488,6 +496,131 @@ class ASR: result = whisper.decode(self.model, mel, options) return result.text + +class SoundDetection: + def __init__(self, device): + self.device = device + self.sample_rate = 32000 + self.window_size = 1024 + self.hop_size = 320 + self.mel_bins = 64 + self.fmin = 50 + self.fmax = 14000 + self.model_type = 'PVT' + self.checkpoint_path = './audio_detection/audio_infer/useful_ckpts/220000_iterations.pth' + self.classes_num = detection_config.classes_num + self.labels = detection_config.labels + self.frames_per_second = self.sample_rate // self.hop_size + # Model = eval(self.model_type) + self.model = PVT(sample_rate=self.sample_rate, window_size=self.window_size, + hop_size=self.hop_size, mel_bins=self.mel_bins, fmin=self.fmin, fmax=self.fmax, + classes_num=self.classes_num) + checkpoint = torch.load(self.checkpoint_path, map_location=self.device) + self.model.load_state_dict(checkpoint['model']) + self.model.to(device) + + def inference(self, audio_path): + # Forward + (waveform, _) = librosa.core.load(audio_path, sr=self.sample_rate, mono=True) + waveform = waveform[None, :] # (1, audio_length) + waveform = torch.from_numpy(waveform) + waveform = waveform.to(self.device) + # Forward + with torch.no_grad(): + self.model.eval() + batch_output_dict = self.model(waveform, None) + framewise_output = batch_output_dict['framewise_output'].data.cpu().numpy()[0] + """(time_steps, classes_num)""" + # print('Sound event detection result (time_steps x classes_num): {}'.format( + # framewise_output.shape)) + import numpy as np + import matplotlib.pyplot as plt + sorted_indexes = np.argsort(np.max(framewise_output, axis=0))[::-1] + top_k = 10 # Show top results + top_result_mat = framewise_output[:, sorted_indexes[0 : top_k]] + """(time_steps, top_k)""" + # Plot result + stft = librosa.core.stft(y=waveform[0].data.cpu().numpy(), n_fft=self.window_size, + hop_length=self.hop_size, window='hann', center=True) + frames_num = stft.shape[-1] + fig, axs = plt.subplots(2, 1, sharex=True, figsize=(10, 4)) + axs[0].matshow(np.log(np.abs(stft)), origin='lower', aspect='auto', cmap='jet') + axs[0].set_ylabel('Frequency bins') + axs[0].set_title('Log spectrogram') + axs[1].matshow(top_result_mat.T, origin='upper', aspect='auto', cmap='jet', vmin=0, vmax=1) + axs[1].xaxis.set_ticks(np.arange(0, frames_num, self.frames_per_second)) + axs[1].xaxis.set_ticklabels(np.arange(0, frames_num / self.frames_per_second)) + axs[1].yaxis.set_ticks(np.arange(0, top_k)) + axs[1].yaxis.set_ticklabels(np.array(self.labels)[sorted_indexes[0 : top_k]]) + axs[1].yaxis.grid(color='k', linestyle='solid', linewidth=0.3, alpha=0.3) + axs[1].set_xlabel('Seconds') + axs[1].xaxis.set_ticks_position('bottom') + plt.tight_layout() + image_filename = os.path.join(str(uuid.uuid4())[0:8] + ".png") + plt.savefig(image_filename) + return image_filename + +class Binaural: + def __init__(self, device): + self.device = device + self.model_file = './mono2binaural/useful_ckpts/binaural_network.net' + self.position_file = ['./mono2binaural/useful_ckpts/tx_positions.txt', + './mono2binaural/useful_ckpts/tx_positions2.txt', + './mono2binaural/useful_ckpts/tx_positions3.txt', + './mono2binaural/useful_ckpts/tx_positions4.txt', + './mono2binaural/useful_ckpts/tx_positions5.txt'] + self.net = BinauralNetwork(view_dim=7, + warpnet_layers=4, + warpnet_channels=64, + ) + self.net.load_from_file(self.model_file) + self.sr = 48000 + def inference(self, audio_path): + mono, sr = librosa.load(path=audio_path, sr=self.sr, mono=True) + mono = torch.from_numpy(mono) + mono = mono.unsqueeze(0) + import numpy as np + import random + rand_int = random.randint(0,4) + view = np.loadtxt(self.position_file[rand_int]).transpose().astype(np.float32) + view = torch.from_numpy(view) + if not view.shape[-1] * 400 == mono.shape[-1]: + mono = mono[:,:(mono.shape[-1]//400)*400] # + if view.shape[1]*400 > mono.shape[1]: + m_a = view.shape[1] - mono.shape[-1]//400 + rand_st = random.randint(0,m_a) + view = view[:,m_a:m_a+(mono.shape[-1]//400)] # + # binauralize and save output + self.net.eval().to(self.device) + mono, view = mono.to(self.device), view.to(self.device) + chunk_size = 48000 # forward in chunks of 1s + rec_field = 1000 # add 1000 samples as "safe bet" since warping has undefined rec. field + rec_field -= rec_field % 400 # make sure rec_field is a multiple of 400 to match audio and view frequencies + chunks = [ + { + "mono": mono[:, max(0, i-rec_field):i+chunk_size], + "view": view[:, max(0, i-rec_field)//400:(i+chunk_size)//400] + } + for i in range(0, mono.shape[-1], chunk_size) + ] + for i, chunk in enumerate(chunks): + with torch.no_grad(): + mono = chunk["mono"].unsqueeze(0) + view = chunk["view"].unsqueeze(0) + binaural = self.net(mono, view).squeeze(0) + if i > 0: + binaural = binaural[:, -(mono.shape[-1]-rec_field):] + chunk["binaural"] = binaural + binaural = torch.cat([chunk["binaural"] for chunk in chunks], dim=-1) + binaural = torch.clamp(binaural, min=-1, max=1).cpu() + #binaural = chunked_forwarding(net, mono, view) + audio_filename = os.path.join('audio', str(uuid.uuid4())[0:8] + ".wav") + import torchaudio + torchaudio.save(audio_filename, binaural, sr) + #soundfile.write(audio_filename, binaural, samplerate = 48000) + print(f"Processed Binaural.run, audio_filename: {audio_filename}") + return audio_filename + class ConversationBot: def __init__(self): print("Initializing AudioChatGPT") @@ -501,6 +634,8 @@ class ConversationBot: self.asr = ASR(device="cuda:1") self.t2s = T2S(device="cuda:0") self.tts_ood = TTS_OOD(device="cuda:0") + self.detection = SoundDetection(device="cuda:0") + self.binaural = Binaural(device="cuda:1") self.memory = ConversationBufferMemory(memory_key="chat_history", output_key='output') self.tools = [ Tool(name="Generate Image From User Input Text", func=self.t2i.inference, @@ -531,7 +666,13 @@ class ConversationBot: "The input to this tool should be a string, representing the image_path. "), Tool(name="Transcribe speech", func=self.asr.inference, description="useful for when you want to know the text corresponding to a human speech, receives audio_path as input." - "The input to this tool should be a string, representing the audio_path.")] + "The input to this tool should be a string, representing the audio_path."), + Tool(name="Detect the sound event from the audio", func=self.detection.inference, + description="useful for when you want to know what event in the audio and the sound event start or end time, receives audio_path as input. " + "The input to this tool should be a string, representing the audio_path. "), + Tool(name="Sythesize binaural audio from a mono audio input", func=self.binaural.inference, + description="useful for when you want to transfer your mono audio into binaural audio, receives audio_path as input. " + "The input to this tool should be a string, representing the audio_path. ")] self.agent = initialize_agent( self.tools, self.llm, diff --git a/audio_detection/__init__.py b/audio_detection/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/audio_detection/audio_infer/YDlWd7Wmdi1E.wav b/audio_detection/audio_infer/YDlWd7Wmdi1E.wav new file mode 100644 index 0000000000000000000000000000000000000000..fe44088b742a7dbc02372f14ce56a7279ea3f906 GIT binary patch literal 640078 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®ggjb`d;RnWB-N0T#F&;cr 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

-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

yr1lqfHz0tBM*)XvmLH;xM{2N; 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 self.audios_num: + self.pointer = 0 + self.random_state.shuffle(self.indexes) + + # If audio in black list then continue + if self.audio_names[index] in self.black_list_names: + continue + else: + batch_meta.append({ + 'hdf5_path': self.hdf5_paths[index], + 'index_in_hdf5': self.indexes_in_hdf5[index]}) + i += 1 + + yield batch_meta + + def state_dict(self): + state = { + 'indexes': self.indexes, + 'pointer': self.pointer} + return state + + def load_state_dict(self, state): + self.indexes = state['indexes'] + self.pointer = state['pointer'] + + +class BalancedTrainSampler(Base): + def __init__(self, indexes_hdf5_path, batch_size, black_list_csv=None, + random_seed=1234): + """Balanced sampler. Generate batch meta for training. Data are equally + sampled from different sound classes. + + Args: + indexes_hdf5_path: string + batch_size: int + black_list_csv: string + random_seed: int + """ + super(BalancedTrainSampler, self).__init__(indexes_hdf5_path, + batch_size, black_list_csv, random_seed) + + self.samples_num_per_class = np.sum(self.targets, axis=0) + logging.info('samples_num_per_class: {}'.format( + self.samples_num_per_class.astype(np.int32))) + + # Training indexes of all sound classes. E.g.: + # [[0, 11, 12, ...], [3, 4, 15, 16, ...], [7, 8, ...], ...] + self.indexes_per_class = [] + + for k in range(self.classes_num): + self.indexes_per_class.append( + np.where(self.targets[:, k] == 1)[0]) + + # Shuffle indexes + for k in range(self.classes_num): + self.random_state.shuffle(self.indexes_per_class[k]) + + self.queue = [] + self.pointers_of_classes = [0] * self.classes_num + + def expand_queue(self, queue): + classes_set = np.arange(self.classes_num).tolist() + self.random_state.shuffle(classes_set) + queue += classes_set + return queue + + def __iter__(self): + """Generate batch meta for training. + + Returns: + batch_meta: e.g.: [ + {'hdf5_path': string, 'index_in_hdf5': int}, + ...] + """ + batch_size = self.batch_size + + while True: + batch_meta = [] + i = 0 + while i < batch_size: + if len(self.queue) == 0: + self.queue = self.expand_queue(self.queue) + + class_id = self.queue.pop(0) + pointer = self.pointers_of_classes[class_id] + self.pointers_of_classes[class_id] += 1 + index = self.indexes_per_class[class_id][pointer] + + # When finish one epoch of a sound class, then shuffle its indexes and reset pointer + if self.pointers_of_classes[class_id] >= self.samples_num_per_class[class_id]: + self.pointers_of_classes[class_id] = 0 + self.random_state.shuffle(self.indexes_per_class[class_id]) + + # If audio in black list then continue + if self.audio_names[index] in self.black_list_names: + continue + else: + batch_meta.append({ + 'hdf5_path': self.hdf5_paths[index], + 'index_in_hdf5': self.indexes_in_hdf5[index]}) + i += 1 + + yield batch_meta + + def state_dict(self): + state = { + 'indexes_per_class': self.indexes_per_class, + 'queue': self.queue, + 'pointers_of_classes': self.pointers_of_classes} + return state + + def load_state_dict(self, state): + self.indexes_per_class = state['indexes_per_class'] + self.queue = state['queue'] + self.pointers_of_classes = state['pointers_of_classes'] + + +class AlternateTrainSampler(Base): + def __init__(self, indexes_hdf5_path, batch_size, black_list_csv=None, + random_seed=1234): + """AlternateSampler is a combination of Sampler and Balanced Sampler. + AlternateSampler alternately sample data from Sampler and Blanced Sampler. + + Args: + indexes_hdf5_path: string + batch_size: int + black_list_csv: string + random_seed: int + """ + self.sampler1 = TrainSampler(indexes_hdf5_path, batch_size, + black_list_csv, random_seed) + + self.sampler2 = BalancedTrainSampler(indexes_hdf5_path, batch_size, + black_list_csv, random_seed) + + self.batch_size = batch_size + self.count = 0 + + def __iter__(self): + """Generate batch meta for training. + + Returns: + batch_meta: e.g.: [ + {'hdf5_path': string, 'index_in_hdf5': int}, + ...] + """ + batch_size = self.batch_size + + while True: + self.count += 1 + + if self.count % 2 == 0: + batch_meta = [] + i = 0 + while i < batch_size: + index = self.sampler1.indexes[self.sampler1.pointer] + self.sampler1.pointer += 1 + + # Shuffle indexes and reset pointer + if self.sampler1.pointer >= self.sampler1.audios_num: + self.sampler1.pointer = 0 + self.sampler1.random_state.shuffle(self.sampler1.indexes) + + # If audio in black list then continue + if self.sampler1.audio_names[index] in self.sampler1.black_list_names: + continue + else: + batch_meta.append({ + 'hdf5_path': self.sampler1.hdf5_paths[index], + 'index_in_hdf5': self.sampler1.indexes_in_hdf5[index]}) + i += 1 + + elif self.count % 2 == 1: + batch_meta = [] + i = 0 + while i < batch_size: + if len(self.sampler2.queue) == 0: + self.sampler2.queue = self.sampler2.expand_queue(self.sampler2.queue) + + class_id = self.sampler2.queue.pop(0) + pointer = self.sampler2.pointers_of_classes[class_id] + self.sampler2.pointers_of_classes[class_id] += 1 + index = self.sampler2.indexes_per_class[class_id][pointer] + + # When finish one epoch of a sound class, then shuffle its indexes and reset pointer + if self.sampler2.pointers_of_classes[class_id] >= self.sampler2.samples_num_per_class[class_id]: + self.sampler2.pointers_of_classes[class_id] = 0 + self.sampler2.random_state.shuffle(self.sampler2.indexes_per_class[class_id]) + + # If audio in black list then continue + if self.sampler2.audio_names[index] in self.sampler2.black_list_names: + continue + else: + batch_meta.append({ + 'hdf5_path': self.sampler2.hdf5_paths[index], + 'index_in_hdf5': self.sampler2.indexes_in_hdf5[index]}) + i += 1 + + yield batch_meta + + def state_dict(self): + state = { + 'sampler1': self.sampler1.state_dict(), + 'sampler2': self.sampler2.state_dict()} + return state + + def load_state_dict(self, state): + self.sampler1.load_state_dict(state['sampler1']) + self.sampler2.load_state_dict(state['sampler2']) + + +class EvaluateSampler(object): + def __init__(self, indexes_hdf5_path, batch_size): + """Evaluate sampler. Generate batch meta for evaluation. + + Args: + indexes_hdf5_path: string + batch_size: int + """ + self.batch_size = batch_size + + with h5py.File(indexes_hdf5_path, 'r') as hf: + self.audio_names = [audio_name.decode() for audio_name in hf['audio_name'][:]] + self.hdf5_paths = [hdf5_path.decode() for hdf5_path in hf['hdf5_path'][:]] + self.indexes_in_hdf5 = hf['index_in_hdf5'][:] + self.targets = hf['target'][:].astype(np.float32) + + self.audios_num = len(self.audio_names) + + def __iter__(self): + """Generate batch meta for training. + + Returns: + batch_meta: e.g.: [ + {'hdf5_path': string, + 'index_in_hdf5': int} + ...] + """ + batch_size = self.batch_size + pointer = 0 + + while pointer < self.audios_num: + batch_indexes = np.arange(pointer, + min(pointer + batch_size, self.audios_num)) + + batch_meta = [] + + for index in batch_indexes: + batch_meta.append({ + 'audio_name': self.audio_names[index], + 'hdf5_path': self.hdf5_paths[index], + 'index_in_hdf5': self.indexes_in_hdf5[index], + 'target': self.targets[index]}) + + pointer += batch_size + yield batch_meta + + +def collate_fn(list_data_dict): + """Collate data. + Args: + list_data_dict, e.g., [{'audio_name': str, 'waveform': (clip_samples,), ...}, + {'audio_name': str, 'waveform': (clip_samples,), ...}, + ...] + Returns: + np_data_dict, dict, e.g., + {'audio_name': (batch_size,), 'waveform': (batch_size, clip_samples), ...} + """ + np_data_dict = {} + + for key in list_data_dict[0].keys(): + np_data_dict[key] = np.array([data_dict[key] for data_dict in list_data_dict]) + + return np_data_dict \ No newline at end of file diff --git a/audio_detection/audio_infer/utils/dataset.py b/audio_detection/audio_infer/utils/dataset.py new file mode 100644 index 0000000..c7f1175 --- /dev/null +++ b/audio_detection/audio_infer/utils/dataset.py @@ -0,0 +1,224 @@ +import numpy as np +import argparse +import csv +import os +import glob +import datetime +import time +import logging +import h5py +import librosa + +from utilities import (create_folder, get_filename, create_logging, + float32_to_int16, pad_or_truncate, read_metadata) +import config + + +def split_unbalanced_csv_to_partial_csvs(args): + """Split unbalanced csv to part csvs. Each part csv contains up to 50000 ids. + """ + + unbalanced_csv_path = args.unbalanced_csv + unbalanced_partial_csvs_dir = args.unbalanced_partial_csvs_dir + + create_folder(unbalanced_partial_csvs_dir) + + with open(unbalanced_csv_path, 'r') as f: + lines = f.readlines() + + lines = lines[3:] # Remove head info + audios_num_per_file = 50000 + + files_num = int(np.ceil(len(lines) / float(audios_num_per_file))) + + for r in range(files_num): + lines_per_file = lines[r * audios_num_per_file : + (r + 1) * audios_num_per_file] + + out_csv_path = os.path.join(unbalanced_partial_csvs_dir, + 'unbalanced_train_segments_part{:02d}.csv'.format(r)) + + with open(out_csv_path, 'w') as f: + f.write('empty\n') + f.write('empty\n') + f.write('empty\n') + for line in lines_per_file: + f.write(line) + + print('Write out csv to {}'.format(out_csv_path)) + + +def download_wavs(args): + """Download videos and extract audio in wav format. + """ + + # Paths + csv_path = args.csv_path + audios_dir = args.audios_dir + mini_data = args.mini_data + + if mini_data: + logs_dir = '_logs/download_dataset/{}'.format(get_filename(csv_path)) + else: + logs_dir = '_logs/download_dataset_minidata/{}'.format(get_filename(csv_path)) + + create_folder(audios_dir) + create_folder(logs_dir) + create_logging(logs_dir, filemode='w') + logging.info('Download log is saved to {}'.format(logs_dir)) + + # Read csv + with open(csv_path, 'r') as f: + lines = f.readlines() + + lines = lines[3:] # Remove csv head info + + if mini_data: + lines = lines[0 : 10] # Download partial data for debug + + download_time = time.time() + + # Download + for (n, line) in enumerate(lines): + + items = line.split(', ') + audio_id = items[0] + start_time = float(items[1]) + end_time = float(items[2]) + duration = end_time - start_time + + logging.info('{} {} start_time: {:.1f}, end_time: {:.1f}'.format( + n, audio_id, start_time, end_time)) + + # Download full video of whatever format + video_name = os.path.join(audios_dir, '_Y{}.%(ext)s'.format(audio_id)) + os.system("youtube-dl --quiet -o '{}' -x https://www.youtube.com/watch?v={}"\ + .format(video_name, audio_id)) + + video_paths = glob.glob(os.path.join(audios_dir, '_Y' + audio_id + '.*')) + + # If download successful + if len(video_paths) > 0: + video_path = video_paths[0] # Choose one video + + # Add 'Y' to the head because some video ids are started with '-' + # which will cause problem + audio_path = os.path.join(audios_dir, 'Y' + audio_id + '.wav') + + # Extract audio in wav format + os.system("ffmpeg -loglevel panic -i {} -ac 1 -ar 32000 -ss {} -t 00:00:{} {} "\ + .format(video_path, + str(datetime.timedelta(seconds=start_time)), duration, + audio_path)) + + # Remove downloaded video + os.system("rm {}".format(video_path)) + + logging.info("Download and convert to {}".format(audio_path)) + + logging.info('Download finished! Time spent: {:.3f} s'.format( + time.time() - download_time)) + + logging.info('Logs can be viewed in {}'.format(logs_dir)) + + +def pack_waveforms_to_hdf5(args): + """Pack waveform and target of several audio clips to a single hdf5 file. + This can speed up loading and training. + """ + + # Arguments & parameters + audios_dir = args.audios_dir + csv_path = args.csv_path + waveforms_hdf5_path = args.waveforms_hdf5_path + mini_data = args.mini_data + + clip_samples = config.clip_samples + classes_num = config.classes_num + sample_rate = config.sample_rate + id_to_ix = config.id_to_ix + + # Paths + if mini_data: + prefix = 'mini_' + waveforms_hdf5_path += '.mini' + else: + prefix = '' + + create_folder(os.path.dirname(waveforms_hdf5_path)) + + logs_dir = '_logs/pack_waveforms_to_hdf5/{}{}'.format(prefix, get_filename(csv_path)) + create_folder(logs_dir) + create_logging(logs_dir, filemode='w') + logging.info('Write logs to {}'.format(logs_dir)) + + # Read csv file + meta_dict = read_metadata(csv_path, classes_num, id_to_ix) + + if mini_data: + mini_num = 10 + for key in meta_dict.keys(): + meta_dict[key] = meta_dict[key][0 : mini_num] + + audios_num = len(meta_dict['audio_name']) + + # Pack waveform to hdf5 + total_time = time.time() + + with h5py.File(waveforms_hdf5_path, 'w') as hf: + hf.create_dataset('audio_name', shape=((audios_num,)), dtype='S20') + hf.create_dataset('waveform', shape=((audios_num, clip_samples)), dtype=np.int16) + hf.create_dataset('target', shape=((audios_num, classes_num)), dtype=np.bool) + hf.attrs.create('sample_rate', data=sample_rate, dtype=np.int32) + + # Pack waveform & target of several audio clips to a single hdf5 file + for n in range(audios_num): + audio_path = os.path.join(audios_dir, meta_dict['audio_name'][n]) + + if os.path.isfile(audio_path): + logging.info('{} {}'.format(n, audio_path)) + (audio, _) = librosa.core.load(audio_path, sr=sample_rate, mono=True) + audio = pad_or_truncate(audio, clip_samples) + + hf['audio_name'][n] = meta_dict['audio_name'][n].encode() + hf['waveform'][n] = float32_to_int16(audio) + hf['target'][n] = meta_dict['target'][n] + else: + logging.info('{} File does not exist! {}'.format(n, audio_path)) + + logging.info('Write to {}'.format(waveforms_hdf5_path)) + logging.info('Pack hdf5 time: {:.3f}'.format(time.time() - total_time)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest='mode') + + parser_split = subparsers.add_parser('split_unbalanced_csv_to_partial_csvs') + parser_split.add_argument('--unbalanced_csv', type=str, required=True, help='Path of unbalanced_csv file to read.') + parser_split.add_argument('--unbalanced_partial_csvs_dir', type=str, required=True, help='Directory to save out split unbalanced partial csv.') + + parser_download_wavs = subparsers.add_parser('download_wavs') + parser_download_wavs.add_argument('--csv_path', type=str, required=True, help='Path of csv file containing audio info to be downloaded.') + parser_download_wavs.add_argument('--audios_dir', type=str, required=True, help='Directory to save out downloaded audio.') + parser_download_wavs.add_argument('--mini_data', action='store_true', default=True, help='Set true to only download 10 audios for debugging.') + + parser_pack_wavs = subparsers.add_parser('pack_waveforms_to_hdf5') + parser_pack_wavs.add_argument('--csv_path', type=str, required=True, help='Path of csv file containing audio info to be downloaded.') + parser_pack_wavs.add_argument('--audios_dir', type=str, required=True, help='Directory to save out downloaded audio.') + parser_pack_wavs.add_argument('--waveforms_hdf5_path', type=str, required=True, help='Path to save out packed hdf5.') + parser_pack_wavs.add_argument('--mini_data', action='store_true', default=False, help='Set true to only download 10 audios for debugging.') + + args = parser.parse_args() + + if args.mode == 'split_unbalanced_csv_to_partial_csvs': + split_unbalanced_csv_to_partial_csvs(args) + + elif args.mode == 'download_wavs': + download_wavs(args) + + elif args.mode == 'pack_waveforms_to_hdf5': + pack_waveforms_to_hdf5(args) + + else: + raise Exception('Incorrect arguments!') \ No newline at end of file diff --git a/audio_detection/audio_infer/utils/plot_for_paper.py b/audio_detection/audio_infer/utils/plot_for_paper.py new file mode 100644 index 0000000..25e799a --- /dev/null +++ b/audio_detection/audio_infer/utils/plot_for_paper.py @@ -0,0 +1,565 @@ +import os +import sys +import numpy as np +import argparse +import h5py +import time +import pickle +import matplotlib.pyplot as plt +import csv +from sklearn import metrics + +from utilities import (create_folder, get_filename, d_prime) +import config + + +def load_statistics(statistics_path): + statistics_dict = pickle.load(open(statistics_path, 'rb')) + + bal_map = np.array([statistics['average_precision'] for statistics in statistics_dict['bal']]) # (N, classes_num) + bal_map = np.mean(bal_map, axis=-1) + test_map = np.array([statistics['average_precision'] for statistics in statistics_dict['test']]) # (N, classes_num) + test_map = np.mean(test_map, axis=-1) + + return bal_map, test_map + + +def crop_label(label): + max_len = 16 + if len(label) <= max_len: + return label + else: + words = label.split(' ') + cropped_label = '' + for w in words: + if len(cropped_label + ' ' + w) > max_len: + break + else: + cropped_label += ' {}'.format(w) + return cropped_label + + +def add_comma(integer): + """E.g., 1234567 -> 1,234,567 + """ + integer = int(integer) + if integer >= 1000: + return str(integer // 1000) + ',' + str(integer % 1000) + else: + return str(integer) + + +def plot_classwise_iteration_map(args): + + # Paths + save_out_path = 'results/classwise_iteration_map.pdf' + create_folder(os.path.dirname(save_out_path)) + + # Load statistics + statistics_dict = pickle.load(open('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_WavegramLogmelCnn_balanced_mixup_bs32.pkl', 'rb')) + + mAP_mat = np.array([e['average_precision'] for e in statistics_dict['test']]) + mAP_mat = mAP_mat[0 : 300, :] # 300 * 2000 = 600k iterations + sorted_indexes = np.argsort(config.full_samples_per_class)[::-1] + + fig, axs = plt.subplots(1, 3, figsize=(20, 5)) + ranges = [np.arange(0, 10), np.arange(250, 260), np.arange(517, 527)] + axs[0].set_ylabel('AP') + + for col in range(0, 3): + axs[col].set_ylim(0, 1.) + axs[col].set_xlim(0, 301) + axs[col].set_xlabel('Iterations') + axs[col].set_ylabel('AP') + axs[col].xaxis.set_ticks(np.arange(0, 301, 100)) + axs[col].xaxis.set_ticklabels(['0', '200k', '400k', '600k']) + lines = [] + for _ix in ranges[col]: + _label = crop_label(config.labels[sorted_indexes[_ix]]) + \ + ' ({})'.format(add_comma(config.full_samples_per_class[sorted_indexes[_ix]])) + line, = axs[col].plot(mAP_mat[:, sorted_indexes[_ix]], label=_label) + lines.append(line) + box = axs[col].get_position() + axs[col].set_position([box.x0, box.y0, box.width * 1., box.height]) + axs[col].legend(handles=lines, bbox_to_anchor=(1., 1.)) + axs[col].yaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + + plt.tight_layout(pad=4, w_pad=1, h_pad=1) + plt.savefig(save_out_path) + print(save_out_path) + + +def plot_six_figures(args): + + # Arguments & parameters + classes_num = config.classes_num + labels = config.labels + max_plot_iteration = 540000 + iterations = np.arange(0, max_plot_iteration, 2000) + + # Paths + class_labels_indices_path = os.path.join('metadata', 'class_labels_indices.csv') + save_out_path = 'results/six_figures.pdf' + create_folder(os.path.dirname(save_out_path)) + + # Plot + fig, ax = plt.subplots(2, 3, figsize=(14, 7)) + bal_alpha = 0.3 + test_alpha = 1.0 + linewidth = 1. + + # (a) Comparison of architectures + if True: + lines = [] + + # Wavegram-Logmel-CNN + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_WavegramLogmelCnn_balanced_mixup_bs32.pkl') + line, = ax[0, 0].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 0].plot(test_map, label='Wavegram-Logmel-CNN', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Cnn14 + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[0, 0].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 0].plot(test_map, label='CNN14', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # MobileNetV1 + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_MobileNetV1_balanced_mixup_bs32.pkl') + line, = ax[0, 0].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 0].plot(test_map, label='MobileNetV1', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[0, 0].legend(handles=lines, loc=2) + ax[0, 0].set_title('(a) Comparison of architectures') + + # (b) Comparison of training data and augmentation' + if True: + lines = [] + + # Full data + balanced sampler + mixup + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[0, 1].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,mixup (1.9m)', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Full data + balanced sampler + mixup in time domain + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_timedomain_bs32.pkl') + line, = ax[0, 1].plot(bal_map, color='y', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,mixup-wav (1.9m)', color='y', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Full data + balanced sampler + no mixup + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_nomixup_bs32.pkl') + line, = ax[0, 1].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,no-mixup (1.9m)', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Full data + uniform sampler + no mixup + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_nobalanced_nomixup_bs32.pkl') + line, = ax[0, 1].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,no-bal,no-mixup (1.9m)', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Balanced data + balanced sampler + mixup + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_balanced_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[0, 1].plot(bal_map, color='m', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,mixup (20k)', color='m', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Balanced data + balanced sampler + no mixup + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_balanced_train_Cnn14_balanced_nomixup_bs32.pkl') + line, = ax[0, 1].plot(bal_map, color='k', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,no-mixup (20k)', color='k', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[0, 1].legend(handles=lines, loc=2, fontsize=8) + ax[0, 1].set_title('(b) Comparison of training data and augmentation') + + # (c) Comparison of embedding size + if True: + lines = [] + + # Embedding size 2048 + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[0, 2].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 2].plot(test_map, label='CNN14,emb=2048', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Embedding size 128 + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_emb128_balanced_mixup_bs32.pkl') + line, = ax[0, 2].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 2].plot(test_map, label='CNN14,emb=128', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Embedding size 32 + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_emb32_balanced_mixup_bs32.pkl') + line, = ax[0, 2].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 2].plot(test_map, label='CNN14,emb=32', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[0, 2].legend(handles=lines, loc=2) + ax[0, 2].set_title('(c) Comparison of embedding size') + + # (d) Comparison of amount of training data + if True: + lines = [] + + # 100% of full training data + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 0].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 0].plot(test_map, label='CNN14 (100% full)', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # 80% of full training data + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_0.8full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 0].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 0].plot(test_map, label='CNN14 (80% full)', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # 50% of full training data + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_0.5full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 0].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 0].plot(test_map, label='cnn14 (50% full)', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[1, 0].legend(handles=lines, loc=2) + ax[1, 0].set_title('(d) Comparison of amount of training data') + + # (e) Comparison of sampling rate + if True: + lines = [] + + # Cnn14 + 32 kHz + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 1].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 1].plot(test_map, label='CNN14,32kHz', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Cnn14 + 16 kHz + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_16k_balanced_mixup_bs32.pkl') + line, = ax[1, 1].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 1].plot(test_map, label='CNN14,16kHz', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Cnn14 + 8 kHz + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_8k_balanced_mixup_bs32.pkl') + line, = ax[1, 1].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 1].plot(test_map, label='CNN14,8kHz', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[1, 1].legend(handles=lines, loc=2) + ax[1, 1].set_title('(e) Comparison of sampling rate') + + # (f) Comparison of mel bins number + if True: + lines = [] + + # Cnn14 + 128 mel bins + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel128_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 2].plot(bal_map, color='g', alpha=bal_alpha) + line, = ax[1, 2].plot(test_map, label='CNN14,128-melbins', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Cnn14 + 64 mel bins + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel64_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 2].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 2].plot(test_map, label='CNN14,64-melbins', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # Cnn14 + 32 mel bins + (bal_map, test_map) = load_statistics('paper_statistics/statistics_sr32000_window1024_hop320_mel32_fmin50_fmax14000_full_train_Cnn14_balanced_mixup_bs32.pkl') + line, = ax[1, 2].plot(bal_map, color='b', alpha=bal_alpha) + line, = ax[1, 2].plot(test_map, label='CNN14,32-melbins', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[1, 2].legend(handles=lines, loc=2) + ax[1, 2].set_title('(f) Comparison of mel bins number') + + for i in range(2): + for j in range(3): + ax[i, j].set_ylim(0, 0.8) + ax[i, j].set_xlim(0, len(iterations)) + ax[i, j].set_xlabel('Iterations') + ax[i, j].set_ylabel('mAP') + ax[i, j].xaxis.set_ticks(np.arange(0, len(iterations), 50)) + ax[i, j].xaxis.set_ticklabels(['0', '100k', '200k', '300k', '400k', '500k']) + ax[i, j].yaxis.set_ticks(np.arange(0, 0.81, 0.05)) + ax[i, j].yaxis.set_ticklabels(['0', '', '0.1', '', '0.2', '', '0.3', + '', '0.4', '', '0.5', '', '0.6', '', '0.7', '', '0.8']) + ax[i, j].yaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + ax[i, j].xaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + + plt.tight_layout(0, 1, 0) + plt.savefig(save_out_path) + print('Save figure to {}'.format(save_out_path)) + + +def plot_complexity_map(args): + + # Paths + save_out_path = 'results/complexity_mAP.pdf' + create_folder(os.path.dirname(save_out_path)) + + plt.figure(figsize=(5, 5)) + fig, ax = plt.subplots(1, 1) + + model_types = np.array(['Cnn6', 'Cnn10', 'Cnn14', 'ResNet22', 'ResNet38', 'ResNet54', + 'MobileNetV1', 'MobileNetV2', 'DaiNet', 'LeeNet', 'LeeNet18', + 'Res1dNet30', 'Res1dNet44', 'Wavegram-CNN', 'Wavegram-\nLogmel-CNN']) + flops = np.array([21.986, 28.166, 42.220, 30.081, 48.962, 54.563, 3.614, 2.810, + 30.395, 4.741, 26.369, 32.688, 61.833, 44.234, 53.510]) + mAPs = np.array([0.343, 0.380, 0.431, 0.430, 0.434, 0.429, 0.389, 0.383, 0.295, + 0.266, 0.336, 0.365, 0.355, 0.389, 0.439]) + + sorted_indexes = np.sort(flops) + ax.scatter(flops, mAPs) + + shift = [[-5.5, -0.004], [1, -0.004], [-1, -0.014], [-2, 0.006], [-7, 0.006], + [1, -0.01], [0.5, 0.004], [-1, -0.014], [1, -0.007], [0.8, -0.008], + [1, -0.007], [1, 0.002], [-6, -0.015], [1, -0.008], [0.8, 0]] + + for i, model_type in enumerate(model_types): + ax.annotate(model_type, (flops[i] + shift[i][0], mAPs[i] + shift[i][1])) + + ax.plot(flops[[0, 1, 2]], mAPs[[0, 1, 2]]) + ax.plot(flops[[3, 4, 5]], mAPs[[3, 4, 5]]) + ax.plot(flops[[6, 7]], mAPs[[6, 7]]) + ax.plot(flops[[9, 10]], mAPs[[9, 10]]) + ax.plot(flops[[11, 12]], mAPs[[11, 12]]) + ax.plot(flops[[13, 14]], mAPs[[13, 14]]) + + ax.set_xlim(0, 70) + ax.set_ylim(0.2, 0.5) + ax.set_xlabel('Multi-load_statisticss (million)', fontsize=15) + ax.set_ylabel('mAP', fontsize=15) + ax.tick_params(axis='x', labelsize=12) + ax.tick_params(axis='y', labelsize=12) + + plt.tight_layout(0, 0, 0) + + plt.savefig(save_out_path) + print('Write out figure to {}'.format(save_out_path)) + + +def plot_long_fig(args): + + # Paths + stats = pickle.load(open('paper_statistics/stats_for_long_fig.pkl', 'rb')) + + save_out_path = 'results/long_fig.pdf' + create_folder(os.path.dirname(save_out_path)) + + # Load meta + N = len(config.labels) + sorted_indexes = stats['sorted_indexes_for_plot'] + sorted_labels = np.array(config.labels)[sorted_indexes] + audio_clips_per_class = stats['official_balanced_training_samples'] + stats['official_unbalanced_training_samples'] + audio_clips_per_class = audio_clips_per_class[sorted_indexes] + + # Prepare axes for plot + (ax1a, ax2a, ax3a, ax4a, ax1b, ax2b, ax3b, ax4b) = prepare_plot_long_4_rows(sorted_labels) + + # plot the number of training samples + ax1a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + ax2a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + ax3a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + ax4a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + + # Load mAP of different systems + """Average instance system of [1] with an mAP of 0.317. + [1] Kong, Qiuqiang, Changsong Yu, Yong Xu, Turab Iqbal, Wenwu Wang, and + Mark D. Plumbley. "Weakly labelled audioset tagging with attention neural + networks." IEEE/ACM Transactions on Audio, Speech, and Language Processing + 27, no. 11 (2019): 1791-1802.""" + maps_avg_instances = stats['averaging_instance_system_avg_9_probs_from_10000_to_50000_iterations']['eval']['average_precision'] + maps_avg_instances = maps_avg_instances[sorted_indexes] + + # PANNs Cnn14 + maps_panns_cnn14 = stats['panns_cnn14']['eval']['average_precision'] + maps_panns_cnn14 = maps_panns_cnn14[sorted_indexes] + + # PANNs MobileNetV1 + maps_panns_mobilenetv1 = stats['panns_mobilenetv1']['eval']['average_precision'] + maps_panns_mobilenetv1 = maps_panns_mobilenetv1[sorted_indexes] + + # PANNs Wavegram-Logmel-Cnn14 + maps_panns_wavegram_logmel_cnn14 = stats['panns_wavegram_logmel_cnn14']['eval']['average_precision'] + maps_panns_wavegram_logmel_cnn14 = maps_panns_wavegram_logmel_cnn14[sorted_indexes] + + # Plot mAPs + _scatter_4_rows(maps_panns_wavegram_logmel_cnn14, ax1b, ax2b, ax3b, ax4b, s=5, c='g') + _scatter_4_rows(maps_panns_cnn14, ax1b, ax2b, ax3b, ax4b, s=5, c='r') + _scatter_4_rows(maps_panns_mobilenetv1, ax1b, ax2b, ax3b, ax4b, s=5, c='b') + _scatter_4_rows(maps_avg_instances, ax1b, ax2b, ax3b, ax4b, s=5, c='k') + + linewidth = 0.7 + line0te = _plot_4_rows(maps_panns_wavegram_logmel_cnn14, ax1b, ax2b, ax3b, ax4b, + c='g', linewidth=linewidth, label='AP with Wavegram-Logmel-CNN') + line1te = _plot_4_rows(maps_panns_cnn14, ax1b, ax2b, ax3b, ax4b, c='r', + linewidth=linewidth, label='AP with CNN14') + line2te = _plot_4_rows(maps_panns_mobilenetv1, ax1b, ax2b, ax3b, ax4b, c='b', + linewidth=linewidth, label='AP with MobileNetV1') + line3te = _plot_4_rows(maps_avg_instances, ax1b, ax2b, ax3b, ax4b, c='k', + linewidth=linewidth, label='AP with averaging instances (baseline)') + + # Plot label quality + label_quality = stats['label_quality'] + sorted_label_quality = np.array(label_quality)[sorted_indexes] + for k in range(len(sorted_label_quality)): + if sorted_label_quality[k] and sorted_label_quality[k] == 1: + sorted_label_quality[k] = 0.99 + + ax1b.scatter(np.arange(N)[sorted_label_quality != None], + sorted_label_quality[sorted_label_quality != None], s=12, c='r', linewidth=0.8, marker='+') + ax2b.scatter(np.arange(N)[sorted_label_quality != None], + sorted_label_quality[sorted_label_quality != None], s=12, c='r', linewidth=0.8, marker='+') + ax3b.scatter(np.arange(N)[sorted_label_quality != None], + sorted_label_quality[sorted_label_quality != None], s=12, c='r', linewidth=0.8, marker='+') + line_label_quality = ax4b.scatter(np.arange(N)[sorted_label_quality != None], + sorted_label_quality[sorted_label_quality != None], s=12, c='r', linewidth=0.8, marker='+', label='Label quality') + ax1b.scatter(np.arange(N)[sorted_label_quality == None], + 0.5 * np.ones(len(np.arange(N)[sorted_label_quality == None])), s=12, c='r', linewidth=0.8, marker='_') + ax2b.scatter(np.arange(N)[sorted_label_quality == None], + 0.5 * np.ones(len(np.arange(N)[sorted_label_quality == None])), s=12, c='r', linewidth=0.8, marker='_') + ax3b.scatter(np.arange(N)[sorted_label_quality == None], + 0.5 * np.ones(len(np.arange(N)[sorted_label_quality == None])), s=12, c='r', linewidth=0.8, marker='_') + ax4b.scatter(np.arange(N)[sorted_label_quality == None], + 0.5 * np.ones(len(np.arange(N)[sorted_label_quality == None])), s=12, c='r', linewidth=0.8, marker='_') + + plt.legend(handles=[line0te, line1te, line2te, line3te, line_label_quality], fontsize=6, loc=1) + plt.tight_layout(0, 0, 0) + plt.savefig(save_out_path) + print('Save fig to {}'.format(save_out_path)) + + +def prepare_plot_long_4_rows(sorted_lbs): + N = len(sorted_lbs) + + f,(ax1a, ax2a, ax3a, ax4a) = plt.subplots(4, 1, sharey=False, facecolor='w', figsize=(10, 10.5)) + + fontsize = 5 + + K = 132 + ax1a.set_xlim(0, K) + ax2a.set_xlim(K, 2 * K) + ax3a.set_xlim(2 * K, 3 * K) + ax4a.set_xlim(3 * K, N) + + truncated_sorted_lbs = [] + for lb in sorted_lbs: + lb = lb[0 : 25] + words = lb.split(' ') + if len(words[-1]) < 3: + lb = ' '.join(words[0:-1]) + truncated_sorted_lbs.append(lb) + + ax1a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + ax2a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + ax3a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + ax4a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + + ax1a.set_yscale('log') + ax2a.set_yscale('log') + ax3a.set_yscale('log') + ax4a.set_yscale('log') + + ax1b = ax1a.twinx() + ax2b = ax2a.twinx() + ax3b = ax3a.twinx() + ax4b = ax4a.twinx() + ax1b.set_ylim(0., 1.) + ax2b.set_ylim(0., 1.) + ax3b.set_ylim(0., 1.) + ax4b.set_ylim(0., 1.) + ax1b.set_ylabel('Average precision') + ax2b.set_ylabel('Average precision') + ax3b.set_ylabel('Average precision') + ax4b.set_ylabel('Average precision') + + ax1b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + ax2b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + ax3b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + ax4b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + + ax1a.xaxis.set_ticks(np.arange(K)) + ax1a.xaxis.set_ticklabels(truncated_sorted_lbs[0:K], rotation=90, fontsize=fontsize) + ax1a.xaxis.tick_bottom() + ax1a.set_ylabel("Number of audio clips") + + ax2a.xaxis.set_ticks(np.arange(K, 2*K)) + ax2a.xaxis.set_ticklabels(truncated_sorted_lbs[K:2*K], rotation=90, fontsize=fontsize) + ax2a.xaxis.tick_bottom() + ax2a.set_ylabel("Number of audio clips") + + ax3a.xaxis.set_ticks(np.arange(2*K, 3*K)) + ax3a.xaxis.set_ticklabels(truncated_sorted_lbs[2*K:3*K], rotation=90, fontsize=fontsize) + ax3a.xaxis.tick_bottom() + ax3a.set_ylabel("Number of audio clips") + + ax4a.xaxis.set_ticks(np.arange(3*K, N)) + ax4a.xaxis.set_ticklabels(truncated_sorted_lbs[3*K:], rotation=90, fontsize=fontsize) + ax4a.xaxis.tick_bottom() + ax4a.set_ylabel("Number of audio clips") + + ax1a.spines['right'].set_visible(False) + ax1b.spines['right'].set_visible(False) + ax2a.spines['left'].set_visible(False) + ax2b.spines['left'].set_visible(False) + ax2a.spines['right'].set_visible(False) + ax2b.spines['right'].set_visible(False) + ax3a.spines['left'].set_visible(False) + ax3b.spines['left'].set_visible(False) + ax3a.spines['right'].set_visible(False) + ax3b.spines['right'].set_visible(False) + ax4a.spines['left'].set_visible(False) + ax4b.spines['left'].set_visible(False) + + plt.subplots_adjust(hspace = 0.8) + + return ax1a, ax2a, ax3a, ax4a, ax1b, ax2b, ax3b, ax4b + + +def _scatter_4_rows(x, ax, ax2, ax3, ax4, s, c, marker='.', alpha=1.): + N = len(x) + ax.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + ax2.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + ax3.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + ax4.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + + +def _plot_4_rows(x, ax, ax2, ax3, ax4, c, linewidth=1.0, alpha=1.0, label=""): + N = len(x) + ax.plot(x, c=c, linewidth=linewidth, alpha=alpha) + ax2.plot(x, c=c, linewidth=linewidth, alpha=alpha) + ax3.plot(x, c=c, linewidth=linewidth, alpha=alpha) + line, = ax4.plot(x, c=c, linewidth=linewidth, alpha=alpha, label=label) + return line + + +if __name__ == '__main__': + + parser = argparse.ArgumentParser(description='') + subparsers = parser.add_subparsers(dest='mode') + + parser_classwise_iteration_map = subparsers.add_parser('plot_classwise_iteration_map') + parser_six_figures = subparsers.add_parser('plot_six_figures') + parser_complexity_map = subparsers.add_parser('plot_complexity_map') + parser_long_fig = subparsers.add_parser('plot_long_fig') + + args = parser.parse_args() + + if args.mode == 'plot_classwise_iteration_map': + plot_classwise_iteration_map(args) + + elif args.mode == 'plot_six_figures': + plot_six_figures(args) + + elif args.mode == 'plot_complexity_map': + plot_complexity_map(args) + + elif args.mode == 'plot_long_fig': + plot_long_fig(args) + + else: + raise Exception('Incorrect argument!') \ No newline at end of file diff --git a/audio_detection/audio_infer/utils/plot_statistics.py b/audio_detection/audio_infer/utils/plot_statistics.py new file mode 100644 index 0000000..3ea9f14 --- /dev/null +++ b/audio_detection/audio_infer/utils/plot_statistics.py @@ -0,0 +1,2034 @@ +import os +import sys +import numpy as np +import argparse +import h5py +import time +import _pickle as cPickle +import _pickle +import matplotlib.pyplot as plt +import csv +from sklearn import metrics + +from utilities import (create_folder, get_filename, d_prime) +import config + + +def _load_metrics0(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + workspace0 = '/mnt/cephfs_new_wj/speechsv/qiuqiang.kong/workspaces/pub_audioset_tagging_cnn_transfer' + statistics_path = os.path.join(workspace0, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + bal_map = np.array([statistics['average_precision'] for statistics in statistics_dict['bal']]) # (N, classes_num) + bal_map = np.mean(bal_map, axis=-1) + test_map = np.array([statistics['average_precision'] for statistics in statistics_dict['test']]) # (N, classes_num) + test_map = np.mean(test_map, axis=-1) + legend = '{}, {}, bal={}, aug={}, bs={}'.format(data_type, model_type, balanced, augmentation, batch_size) + + # return {'bal_map': bal_map, 'test_map': test_map, 'legend': legend} + return bal_map, test_map, legend + + +def _load_metrics0_classwise(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + workspace0 = '/mnt/cephfs_new_wj/speechsv/qiuqiang.kong/workspaces/pub_audioset_tagging_cnn_transfer' + statistics_path = os.path.join(workspace0, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + return statistics_dict['test'][300]['average_precision'] + + +def _load_metrics0_classwise2(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + workspace0 = '/mnt/cephfs_new_wj/speechsv/qiuqiang.kong/workspaces/pub_audioset_tagging_cnn_transfer' + statistics_path = os.path.join(workspace0, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + k = 270 + mAP = np.mean(statistics_dict['test'][k]['average_precision']) + mAUC = np.mean(statistics_dict['test'][k]['auc']) + dprime = d_prime(mAUC) + return mAP, mAUC, dprime + + +def _load_metrics_classwise(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + workspace = '/mnt/cephfs_new_wj/speechsv/kongqiuqiang/workspaces/cvssp/pub_audioset_tagging_cnn' + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + k = 300 + mAP = np.mean(statistics_dict['test'][k]['average_precision']) + mAUC = np.mean(statistics_dict['test'][k]['auc']) + dprime = d_prime(mAUC) + return mAP, mAUC, dprime + + +def plot(args): + + # Arguments & parameters + dataset_dir = args.dataset_dir + workspace = args.workspace + select = args.select + + classes_num = config.classes_num + max_plot_iteration = 1000000 + iterations = np.arange(0, max_plot_iteration, 2000) + + class_labels_indices_path = os.path.join(dataset_dir, 'metadata', + 'class_labels_indices.csv') + + save_out_path = 'results/{}.pdf'.format(select) + create_folder(os.path.dirname(save_out_path)) + + # Read labels + labels = config.labels + + # Plot + fig, ax = plt.subplots(1, 1, figsize=(15, 8)) + lines = [] + + def _load_metrics(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + bal_map = np.array([statistics['average_precision'] for statistics in statistics_dict['bal']]) # (N, classes_num) + bal_map = np.mean(bal_map, axis=-1) + test_map = np.array([statistics['average_precision'] for statistics in statistics_dict['test']]) # (N, classes_num) + test_map = np.mean(test_map, axis=-1) + legend = '{}, {}, bal={}, aug={}, bs={}'.format(data_type, model_type, balanced, augmentation, batch_size) + + # return {'bal_map': bal_map, 'test_map': test_map, 'legend': legend} + return bal_map, test_map, legend + + bal_alpha = 0.3 + test_alpha = 1.0 + lines = [] + + if select == '1_cnn13': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_no_dropout', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_no_specaug', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_no_specaug', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_no_dropout', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'none', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_no_mixup', color='k', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_mixup_in_wave', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='c', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_mixup_in_wave', color='c', alpha=test_alpha) + lines.append(line) + + elif select == '1_pooling': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_gwrp', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_gmpgapgwrp', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_att', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_gmpgapatt', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '1_resnet': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet18', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='ResNet18', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='resnet34', color='k', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet50', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='c', alpha=bal_alpha) + line, = ax.plot(test_map, label='resnet50', color='c', alpha=test_alpha) + lines.append(line) + + elif select == '1_densenet': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'DenseNet121', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='densenet121', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'DenseNet201', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='densenet201', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '1_cnn9': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn5', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn5', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn9', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn9', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '1_hop': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 500, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_hop500', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 640, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_hop640', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 1000, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_hop1000', color='k', alpha=test_alpha) + lines.append(line) + + elif select == '1_emb': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_emb32', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_emb128', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb512', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13_emb512', color='k', alpha=test_alpha) + lines.append(line) + + elif select == '1_mobilenet': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV1', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='mobilenetv1', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV2', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='mobilenetv2', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '1_waveform': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_LeeNet', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn1d_LeeNet', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_LeeNet18', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn1d_LeeNet18', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_DaiNet', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn1d_DaiNet', color='k', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='c', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn1d_ResNet34', color='c', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet50', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='m', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn1d_ResNet50', color='m', alpha=test_alpha) + lines.append(line) + + elif select == '1_waveform_cnn2d': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_SpAndWav', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_SpAndWav', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_WavCnn2d', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_WavCnn2d', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '1_decision_level': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_DecisionLevelMax', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_DecisionLevelMax', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_DecisionLevelAvg', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_DecisionLevelAvg', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_DecisionLevelAtt', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_DecisionLevelAtt', color='k', alpha=test_alpha) + lines.append(line) + + elif select == '1_transformer': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_Transformer1', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_Transformer1', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_Transformer3', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_Transformer3', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_Transformer6', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_Transformer6', color='k', alpha=test_alpha) + lines.append(line) + + elif select == '1_aug': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,balanced,mixup', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'none', 'none', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,none,none', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,balanced,none', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup_from_0_epoch', 32) + line, = ax.plot(bal_map, color='m', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,balanced,mixup_from_0_epoch', color='m', alpha=test_alpha) + lines.append(line) + + elif select == '1_bal_train_aug': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,balanced,mixup', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'none', 'none', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,none,none', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,balanced,none', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup_from_0_epoch', 32) + line, = ax.plot(bal_map, color='m', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,balanced,mixup_from_0_epoch', color='m', alpha=test_alpha) + lines.append(line) + + elif select == '1_sr': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_16k', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_16k', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_8k', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_8k', color='b', alpha=test_alpha) + lines.append(line) + + elif select == '1_time_domain': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_mixup_time_domain', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_time_domain', color='b', alpha=test_alpha) + lines.append(line) + + elif select == '1_partial_full': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.9_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,partial_0.9', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.8_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,partial_0.8', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.7_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,partial_0.7', color='k', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.5_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='m', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,partial_0.5', color='m', alpha=test_alpha) + lines.append(line) + + elif select == '1_window': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 2048, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_win2048', color='b', alpha=test_alpha) + lines.append(line) + + elif select == '1_melbins': + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 32, 50, 14000, 'full_train', 'Cnn14_mel32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_mel32', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 128, 50, 14000, 'full_train', 'Cnn14_mel128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_mel128', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '1_alternate': + max_plot_iteration = 2000000 + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'alternate', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14_alternate', color='b', alpha=test_alpha) + lines.append(line) + + elif select == '2_all': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn9', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn9', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn5', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn5', color='g', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV1', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='MobileNetV1', color='k', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn1d_ResNet34', color='grey', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='ResNet34', color='grey', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_WavCnn2d', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_WavCnn2d', color='m', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_SpAndWav', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_SpAndWav', color='orange', alpha=test_alpha) + lines.append(line) + + elif select == '2_emb': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_emb32', color='r', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_128', color='k', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb512', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='Cnn13_512', color='g', alpha=test_alpha) + lines.append(line) + + elif select == '2_aug': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn13', color='b', alpha=test_alpha) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_no_specaug', 'clip_bce', 'none', 'none', 32) + line, = ax.plot(bal_map, color='c', alpha=bal_alpha) + line, = ax.plot(test_map, label='cnn14,none,none', color='c', alpha=test_alpha) + lines.append(line) + + + + ax.set_ylim(0, 1.) + ax.set_xlim(0, len(iterations)) + ax.xaxis.set_ticks(np.arange(0, len(iterations), 25)) + ax.xaxis.set_ticklabels(np.arange(0, max_plot_iteration, 50000)) + ax.yaxis.set_ticks(np.arange(0, 1.01, 0.05)) + ax.yaxis.set_ticklabels(np.around(np.arange(0, 1.01, 0.05), decimals=2)) + ax.grid(color='b', linestyle='solid', linewidth=0.3) + plt.legend(handles=lines, loc=2) + # box = ax.get_position() + # ax.set_position([box.x0, box.y0, box.width * 0.8, box.height]) + # ax.legend(handles=lines, bbox_to_anchor=(1.0, 1.0)) + + plt.savefig(save_out_path) + print('Save figure to {}'.format(save_out_path)) + + +def plot_for_paper(args): + + # Arguments & parameters + dataset_dir = args.dataset_dir + workspace = args.workspace + select = args.select + + classes_num = config.classes_num + max_plot_iteration = 1000000 + iterations = np.arange(0, max_plot_iteration, 2000) + + class_labels_indices_path = os.path.join(dataset_dir, 'metadata', + 'class_labels_indices.csv') + + save_out_path = 'results/paper_{}.pdf'.format(select) + create_folder(os.path.dirname(save_out_path)) + + # Read labels + labels = config.labels + + # Plot + fig, ax = plt.subplots(1, 1, figsize=(6, 4)) + lines = [] + + def _load_metrics(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + bal_map = np.array([statistics['average_precision'] for statistics in statistics_dict['bal']]) # (N, classes_num) + bal_map = np.mean(bal_map, axis=-1) + test_map = np.array([statistics['average_precision'] for statistics in statistics_dict['test']]) # (N, classes_num) + test_map = np.mean(test_map, axis=-1) + legend = '{}, {}, bal={}, aug={}, bs={}'.format(data_type, model_type, balanced, augmentation, batch_size) + + # return {'bal_map': bal_map, 'test_map': test_map, 'legend': legend} + return bal_map, test_map, legend + + bal_alpha = 0.3 + test_alpha = 1.0 + lines = [] + linewidth = 1. + + max_plot_iteration = 540000 + + if select == '2_all': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn9', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + # line, = ax.plot(test_map, label='cnn9', color='r', alpha=test_alpha) + # lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn5', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + # line, = ax.plot(test_map, label='cnn5', color='g', alpha=test_alpha) + # lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV1', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='MobileNetV1', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + # line, = ax.plot(test_map, label='Cnn1d_ResNet34', color='grey', alpha=test_alpha) + # lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn13_WavCnn2d', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + # line, = ax.plot(test_map, label='Wavegram-CNN', color='g', alpha=test_alpha, linewidth=linewidth) + # lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_SpAndWav', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='Wavegram-Logmel-CNN', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + elif select == '2_emb': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,emb=2048', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,emb=32', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,emb=128', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn13_emb512', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='g', alpha=bal_alpha) + # line, = ax.plot(test_map, label='Cnn13_512', color='g', alpha=test_alpha) + # lines.append(line) + + elif select == '2_bal': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,bal,mixup (1.9m)', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_mixup_time_domain', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='y', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,bal,mixup-wav (1.9m)', color='y', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'none', 'none', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,no-bal,no-mixup (1.9m)', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,bal,no-mixup (1.9m)', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + line, = ax.plot(bal_map, color='k', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,bal,no-mixup (20k)', color='k', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='m', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,bal,mixup (20k)', color='m', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + elif select == '2_sr': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,32kHz', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_16k', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,16kHz', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_8k', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,8kHz', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + elif select == '2_partial': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14 (100% full)', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + # 320, 64, 50, 14000, 'partial_0.9_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + # line, = ax.plot(test_map, label='cnn14,partial_0.9', color='b', alpha=test_alpha, linewidth=linewidth) + # lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.8_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14 (80% full)', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + # 320, 64, 50, 14000, 'partial_0.7_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='k', alpha=bal_alpha, linewidth=linewidth) + # line, = ax.plot(test_map, label='cnn14,partial_0.7', color='k', alpha=test_alpha, linewidth=linewidth) + # lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.5_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='cnn14 (50% full)', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + elif select == '2_melbins': + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax.plot(test_map, label='CNN14,64-melbins', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 32, 50, 14000, 'full_train', 'Cnn14_mel32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='CNN14,32-melbins', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 128, 50, 14000, 'full_train', 'Cnn14_mel128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax.plot(bal_map, color='r', alpha=bal_alpha) + line, = ax.plot(test_map, label='CNN14,128-melbins', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax.set_ylim(0, 0.8) + ax.set_xlim(0, len(iterations)) + ax.set_xlabel('Iterations') + ax.set_ylabel('mAP') + ax.xaxis.set_ticks(np.arange(0, len(iterations), 50)) + # ax.xaxis.set_ticklabels(np.arange(0, max_plot_iteration, 50000)) + ax.xaxis.set_ticklabels(['0', '100k', '200k', '300k', '400k', '500k']) + ax.yaxis.set_ticks(np.arange(0, 0.81, 0.05)) + ax.yaxis.set_ticklabels(['0', '', '0.1', '', '0.2', '', '0.3', '', '0.4', '', '0.5', '', '0.6', '', '0.7', '', '0.8']) + # ax.yaxis.set_ticklabels(np.around(np.arange(0, 0.81, 0.05), decimals=2)) + ax.yaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + ax.xaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + plt.legend(handles=lines, loc=2) + plt.tight_layout(0, 0, 0) + # box = ax.get_position() + # ax.set_position([box.x0, box.y0, box.width * 0.8, box.height]) + # ax.legend(handles=lines, bbox_to_anchor=(1.0, 1.0)) + + plt.savefig(save_out_path) + print('Save figure to {}'.format(save_out_path)) + + +def plot_for_paper2(args): + + # Arguments & parameters + dataset_dir = args.dataset_dir + workspace = args.workspace + + classes_num = config.classes_num + max_plot_iteration = 1000000 + iterations = np.arange(0, max_plot_iteration, 2000) + + class_labels_indices_path = os.path.join(dataset_dir, 'metadata', + 'class_labels_indices.csv') + + save_out_path = 'results/paper2.pdf' + create_folder(os.path.dirname(save_out_path)) + + # Read labels + labels = config.labels + + # Plot + fig, ax = plt.subplots(2, 3, figsize=(14, 7)) + lines = [] + + def _load_metrics(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + bal_map = np.array([statistics['average_precision'] for statistics in statistics_dict['bal']]) # (N, classes_num) + bal_map = np.mean(bal_map, axis=-1) + test_map = np.array([statistics['average_precision'] for statistics in statistics_dict['test']]) # (N, classes_num) + test_map = np.mean(test_map, axis=-1) + legend = '{}, {}, bal={}, aug={}, bs={}'.format(data_type, model_type, balanced, augmentation, batch_size) + + # return {'bal_map': bal_map, 'test_map': test_map, 'legend': legend} + return bal_map, test_map, legend + + def _load_metrics0(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size): + workspace0 = '/mnt/cephfs_new_wj/speechsv/qiuqiang.kong/workspaces/pub_audioset_tagging_cnn_transfer' + statistics_path = os.path.join(workspace0, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + bal_map = np.array([statistics['average_precision'] for statistics in statistics_dict['bal']]) # (N, classes_num) + bal_map = np.mean(bal_map, axis=-1) + test_map = np.array([statistics['average_precision'] for statistics in statistics_dict['test']]) # (N, classes_num) + test_map = np.mean(test_map, axis=-1) + legend = '{}, {}, bal={}, aug={}, bs={}'.format(data_type, model_type, balanced, augmentation, batch_size) + + # return {'bal_map': bal_map, 'test_map': test_map, 'legend': legend} + return bal_map, test_map, legend + + bal_alpha = 0.3 + test_alpha = 1.0 + lines = [] + linewidth = 1. + + max_plot_iteration = 540000 + + if True: + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 0].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 0].plot(test_map, label='CNN14', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn9', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + # line, = ax.plot(test_map, label='cnn9', color='r', alpha=test_alpha) + # lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn5', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + # line, = ax.plot(test_map, label='cnn5', color='g', alpha=test_alpha) + # lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV1', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 0].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 0].plot(test_map, label='MobileNetV1', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='b', alpha=bal_alpha) + # line, = ax.plot(test_map, label='Cnn1d_ResNet34', color='grey', alpha=test_alpha) + # lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'ResNet34', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax[0, 0].plot(bal_map, color='k', alpha=bal_alpha, linewidth=linewidth) + # line, = ax[0, 0].plot(test_map, label='ResNet38', color='k', alpha=test_alpha, linewidth=linewidth) + # lines.append(line) + + # (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + # 320, 64, 50, 14000, 'full_train', 'Cnn13_WavCnn2d', 'clip_bce', 'balanced', 'mixup', 32) + # line, = ax.plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + # line, = ax.plot(test_map, label='Wavegram-CNN', color='g', alpha=test_alpha, linewidth=linewidth) + # lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_SpAndWav', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 0].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 0].plot(test_map, label='Wavegram-Logmel-CNN', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[0, 0].legend(handles=lines, loc=2) + ax[0, 0].set_title('(a) Comparison of architectures') + + if True: + lines = [] + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 1].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,mixup (1.9m)', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'none', 'none', 32) + line, = ax[0, 1].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,no-bal,no-mixup (1.9m)', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_mixup_time_domain', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 1].plot(bal_map, color='y', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,mixup-wav (1.9m)', color='y', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + line, = ax[0, 1].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,no-mixup (1.9m)', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + line, = ax[0, 1].plot(bal_map, color='k', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,no-mixup (20k)', color='k', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 1].plot(bal_map, color='m', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 1].plot(test_map, label='CNN14,bal,mixup (20k)', color='m', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[0, 1].legend(handles=lines, loc=2, fontsize=8) + + ax[0, 1].set_title('(b) Comparison of training data and augmentation') + + if True: + lines = [] + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 2].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 2].plot(test_map, label='CNN14,emb=2048', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 2].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 2].plot(test_map, label='CNN14,emb=32', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics0('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[0, 2].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[0, 2].plot(test_map, label='CNN14,emb=128', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[0, 2].legend(handles=lines, loc=2) + ax[0, 2].set_title('(c) Comparison of embedding size') + + if True: + lines = [] + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 0].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 0].plot(test_map, label='CNN14 (100% full)', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.8_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 0].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 0].plot(test_map, label='CNN14 (80% full)', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'partial_0.5_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 0].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 0].plot(test_map, label='cnn14 (50% full)', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[1, 0].legend(handles=lines, loc=2) + ax[1, 0].set_title('(d) Comparison of amount of training data') + + if True: + lines = [] + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 1].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 1].plot(test_map, label='CNN14,32kHz', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_16k', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 1].plot(bal_map, color='b', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 1].plot(test_map, label='CNN14,16kHz', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14_8k', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 1].plot(bal_map, color='g', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 1].plot(test_map, label='CNN14,8kHz', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[1, 1].legend(handles=lines, loc=2) + ax[1, 1].set_title('(e) Comparison of sampling rate') + + if True: + lines = [] + iterations = np.arange(0, max_plot_iteration, 2000) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 2].plot(bal_map, color='r', alpha=bal_alpha, linewidth=linewidth) + line, = ax[1, 2].plot(test_map, label='CNN14,64-melbins', color='r', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 32, 50, 14000, 'full_train', 'Cnn14_mel32', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 2].plot(bal_map, color='b', alpha=bal_alpha) + line, = ax[1, 2].plot(test_map, label='CNN14,32-melbins', color='b', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + (bal_map, test_map, legend) = _load_metrics('main', 32000, 1024, + 320, 128, 50, 14000, 'full_train', 'Cnn14_mel128', 'clip_bce', 'balanced', 'mixup', 32) + line, = ax[1, 2].plot(bal_map, color='g', alpha=bal_alpha) + line, = ax[1, 2].plot(test_map, label='CNN14,128-melbins', color='g', alpha=test_alpha, linewidth=linewidth) + lines.append(line) + + ax[1, 2].legend(handles=lines, loc=2) + ax[1, 2].set_title('(f) Comparison of mel bins number') + + for i in range(2): + for j in range(3): + ax[i, j].set_ylim(0, 0.8) + ax[i, j].set_xlim(0, len(iterations)) + ax[i, j].set_xlabel('Iterations') + ax[i, j].set_ylabel('mAP') + ax[i, j].xaxis.set_ticks(np.arange(0, len(iterations), 50)) + # ax.xaxis.set_ticklabels(np.arange(0, max_plot_iteration, 50000)) + ax[i, j].xaxis.set_ticklabels(['0', '100k', '200k', '300k', '400k', '500k']) + ax[i, j].yaxis.set_ticks(np.arange(0, 0.81, 0.05)) + ax[i, j].yaxis.set_ticklabels(['0', '', '0.1', '', '0.2', '', '0.3', '', '0.4', '', '0.5', '', '0.6', '', '0.7', '', '0.8']) + # ax.yaxis.set_ticklabels(np.around(np.arange(0, 0.81, 0.05), decimals=2)) + ax[i, j].yaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + ax[i, j].xaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + + plt.tight_layout(0, 1, 0) + # box = ax.get_position() + # ax.set_position([box.x0, box.y0, box.width * 0.8, box.height]) + # ax.legend(handles=lines, bbox_to_anchor=(1.0, 1.0)) + + plt.savefig(save_out_path) + print('Save figure to {}'.format(save_out_path)) + + +def table_values(args): + + # Arguments & parameters + dataset_dir = args.dataset_dir + workspace = args.workspace + select = args.select + + def _load_metrics(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size, iteration): + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + idx = iteration // 2000 + mAP = np.mean(statistics_dict['test'][idx]['average_precision']) + mAUC = np.mean(statistics_dict['test'][idx]['auc']) + dprime = d_prime(mAUC) + + print('mAP: {:.3f}'.format(mAP)) + print('mAUC: {:.3f}'.format(mAUC)) + print('dprime: {:.3f}'.format(dprime)) + + + if select == 'cnn13': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn5': + iteration = 440000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn5', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn9': + iteration = 440000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn9', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_decisionlevelmax': + iteration = 400000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_DecisionLevelMax', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_decisionlevelavg': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_DecisionLevelAvg', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_decisionlevelatt': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_DecisionLevelAtt', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_emb32': + iteration = 560000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb32', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_emb128': + iteration = 560000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb128', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_emb512': + iteration = 440000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_emb512', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_hop500': + iteration = 440000 + _load_metrics('main', 32000, 1024, + 500, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_hop640': + iteration = 440000 + _load_metrics('main', 32000, 1024, + 640, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'cnn13_hop1000': + iteration = 540000 + _load_metrics('main', 32000, 1024, + 1000, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'mobilenetv1': + iteration = 560000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV1', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'mobilenetv2': + iteration = 560000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV2', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'resnet18': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet18', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'resnet34': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet34', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'resnet50': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'ResNet50', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'dainet': + iteration = 600000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_DaiNet', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'leenet': + iteration = 540000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_LeeNet', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'leenet18': + iteration = 440000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_LeeNet18', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'resnet34_1d': + iteration = 500000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet34', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'resnet50_1d': + iteration = 500000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn1d_ResNet50', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'waveform_cnn2d': + iteration = 660000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_WavCnn2d', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + elif select == 'waveform_spandwav': + iteration = 700000 + _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_SpAndWav', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + +def crop_label(label): + max_len = 16 + if len(label) <= max_len: + return label + else: + words = label.split(' ') + cropped_label = '' + for w in words: + if len(cropped_label + ' ' + w) > max_len: + break + else: + cropped_label += ' {}'.format(w) + return cropped_label + +def add_comma(integer): + integer = int(integer) + if integer >= 1000: + return str(integer // 1000) + ',' + str(integer % 1000) + else: + return str(integer) + + +def plot_class_iteration(args): + + # Arguments & parameters + workspace = args.workspace + select = args.select + + save_out_path = 'results_map/class_iteration_map.pdf' + create_folder(os.path.dirname(save_out_path)) + + def _load_metrics(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size, iteration): + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + return statistics_dict + + iteration = 600000 + statistics_dict = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + mAP_mat = np.array([e['average_precision'] for e in statistics_dict['test']]) + mAP_mat = mAP_mat[0 : 300, :] + sorted_indexes = np.argsort(config.full_samples_per_class)[::-1] + + + fig, axs = plt.subplots(1, 3, figsize=(20, 5)) + ranges = [np.arange(0, 10), np.arange(250, 260), np.arange(517, 527)] + axs[0].set_ylabel('AP') + + for col in range(0, 3): + axs[col].set_ylim(0, 1.) + axs[col].set_xlim(0, 301) + axs[col].set_xlabel('Iterations') + axs[col].set_ylabel('AP') + axs[col].xaxis.set_ticks(np.arange(0, 301, 100)) + axs[col].xaxis.set_ticklabels(['0', '200k', '400k', '600k']) + lines = [] + for _ix in ranges[col]: + _label = crop_label(config.labels[sorted_indexes[_ix]]) + \ + ' ({})'.format(add_comma(config.full_samples_per_class[sorted_indexes[_ix]])) + line, = axs[col].plot(mAP_mat[:, sorted_indexes[_ix]], label=_label) + lines.append(line) + box = axs[col].get_position() + axs[col].set_position([box.x0, box.y0, box.width * 1., box.height]) + axs[col].legend(handles=lines, bbox_to_anchor=(1., 1.)) + axs[col].yaxis.grid(color='k', linestyle='solid', alpha=0.3, linewidth=0.3) + + plt.tight_layout(pad=4, w_pad=1, h_pad=1) + plt.savefig(save_out_path) + print(save_out_path) + + +def _load_old_metrics(workspace, filename, iteration, data_type): + + assert data_type in ['train', 'test'] + + stat_name = "stat_{}_iters.p".format(iteration) + + # Load stats + stat_path = os.path.join(workspace, "stats", filename, data_type, stat_name) + try: + stats = cPickle.load(open(stat_path, 'rb')) + except: + stats = cPickle.load(open(stat_path, 'rb'), encoding='latin1') + + precisions = [stat['precisions'] for stat in stats] + recalls = [stat['recalls'] for stat in stats] + maps = np.array([stat['AP'] for stat in stats]) + aucs = np.array([stat['auc'] for stat in stats]) + + return {'average_precision': maps, 'AUC': aucs} + +def _sort(ys): + sorted_idxes = np.argsort(ys) + sorted_idxes = sorted_idxes[::-1] + sorted_ys = ys[sorted_idxes] + sorted_lbs = [config.labels[e] for e in sorted_idxes] + return sorted_ys, sorted_idxes, sorted_lbs + +def load_data(hdf5_path): + with h5py.File(hdf5_path, 'r') as hf: + x = hf['x'][:] + y = hf['y'][:] + video_id_list = list(hf['video_id_list'][:]) + return x, y, video_id_list + +def get_avg_stats(workspace, bgn_iter, fin_iter, interval_iter, filename, data_type): + + assert data_type in ['train', 'test'] + bal_train_hdf5 = "/vol/vssp/msos/audioset/packed_features/bal_train.h5" + eval_hdf5 = "/vol/vssp/msos/audioset/packed_features/eval.h5" + unbal_train_hdf5 = "/vol/vssp/msos/audioset/packed_features/unbal_train.h5" + + t1 = time.time() + if data_type == 'test': + (te_x, te_y, te_id_list) = load_data(eval_hdf5) + elif data_type == 'train': + (te_x, te_y, te_id_list) = load_data(bal_train_hdf5) + y = te_y + + prob_dir = os.path.join(workspace, "probs", filename, data_type) + names = os.listdir(prob_dir) + + probs = [] + iters = range(bgn_iter, fin_iter, interval_iter) + for iter in iters: + pickle_path = os.path.join(prob_dir, "prob_%d_iters.p" % iter) + try: + prob = cPickle.load(open(pickle_path, 'rb')) + except: + prob = cPickle.load(open(pickle_path, 'rb'), encoding='latin1') + probs.append(prob) + + avg_prob = np.mean(np.array(probs), axis=0) + + n_out = y.shape[1] + stats = [] + for k in range(n_out): # around 7 seconds + (precisions, recalls, thresholds) = metrics.precision_recall_curve(y[:, k], avg_prob[:, k]) + avg_precision = metrics.average_precision_score(y[:, k], avg_prob[:, k], average=None) + (fpr, tpr, thresholds) = metrics.roc_curve(y[:, k], avg_prob[:, k]) + auc = metrics.roc_auc_score(y[:, k], avg_prob[:, k], average=None) + # eer = pp_data.eer(avg_prob[:, k], y[:, k]) + + skip = 1000 + dict = {'precisions': precisions[0::skip], 'recalls': recalls[0::skip], 'AP': avg_precision, + 'fpr': fpr[0::skip], 'fnr': 1. - tpr[0::skip], 'auc': auc} + + stats.append(dict) + + mAPs = np.array([e['AP'] for e in stats]) + aucs = np.array([e['auc'] for e in stats]) + + print("Get avg time: {}".format(time.time() - t1)) + + return {'average_precision': mAPs, 'auc': aucs} + + +def _samples_num_per_class(): + bal_train_hdf5 = "/vol/vssp/msos/audioset/packed_features/bal_train.h5" + eval_hdf5 = "/vol/vssp/msos/audioset/packed_features/eval.h5" + unbal_train_hdf5 = "/vol/vssp/msos/audioset/packed_features/unbal_train.h5" + + (x, y, id_list) = load_data(eval_hdf5) + eval_num = np.sum(y, axis=0) + + (x, y, id_list) = load_data(bal_train_hdf5) + bal_num = np.sum(y, axis=0) + + (x, y, id_list) = load_data(unbal_train_hdf5) + unbal_num = np.sum(y, axis=0) + + return bal_num, unbal_num, eval_num + + +def get_label_quality(): + + rate_csv = '/vol/vssp/msos/qk/workspaces/pub_audioset_tagging_cnn_transfer/metadata/qa_true_counts.csv' + + with open(rate_csv, 'r') as f: + reader = csv.reader(f, delimiter=',') + lis = list(reader) + + rates = [] + + for n in range(1, len(lis)): + li = lis[n] + if float(li[1]) == 0: + rate = None + else: + rate = float(li[2]) / float(li[1]) + rates.append(rate) + + return rates + + +def summary_stats(args): + # Arguments & parameters + workspace = args.workspace + + out_stat_path = os.path.join(workspace, 'results', 'stats_for_paper.pkl') + create_folder(os.path.dirname(out_stat_path)) + + # Old workspace + old_workspace = '/vol/vssp/msos/qk/workspaces/audioset_classification' + + # bal_train_metrics = _load_old_metrics(old_workspace, 'tmp127', 20000, 'train') + # eval_metrics = _load_old_metrics(old_workspace, 'tmp127', 20000, 'test') + + bal_train_metrics = get_avg_stats(old_workspace, bgn_iter=10000, fin_iter=50001, interval_iter=5000, filename='tmp127_re', data_type='train') + eval_metrics = get_avg_stats(old_workspace, bgn_iter=10000, fin_iter=50001, interval_iter=5000, filename='tmp127_re', data_type='test') + + maps0te = eval_metrics['average_precision'] + (maps0te, sorted_idxes, sorted_lbs) = _sort(maps0te) + + bal_num, unbal_num, eval_num = _samples_num_per_class() + + output_dict = { + 'labels': config.labels, + 'label_quality': get_label_quality(), + 'sorted_indexes_for_plot': sorted_idxes, + 'official_balanced_trainig_samples': bal_num, + 'official_unbalanced_training_samples': unbal_num, + 'official_eval_samples': eval_num, + 'downloaded_full_training_samples': config.full_samples_per_class, + 'averaging_instance_system_avg_9_probs_from_10000_to_50000_iterations': + {'bal_train': bal_train_metrics, 'eval': eval_metrics} + } + + def _load_metrics(filename, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, data_type, model_type, loss_type, balanced, augmentation, batch_size, iteration): + _workspace = '/vol/vssp/msos/qk/bytedance/workspaces_important/pub_audioset_tagging_cnn_transfer' + statistics_path = os.path.join(_workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + + statistics_dict = cPickle.load(open(statistics_path, 'rb')) + + _idx = iteration // 2000 + _dict = {'bal_train': {'average_precision': statistics_dict['bal'][_idx]['average_precision'], + 'auc': statistics_dict['bal'][_idx]['auc']}, + 'eval': {'average_precision': statistics_dict['test'][_idx]['average_precision'], + 'auc': statistics_dict['test'][_idx]['auc']}} + return _dict + + iteration = 600000 + output_dict['cnn13_system_iteration60k'] = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + iteration = 560000 + output_dict['mobilenetv1_system_iteration56k'] = _load_metrics('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'MobileNetV1', 'clip_bce', 'balanced', 'mixup', 32, iteration) + + cPickle.dump(output_dict, open(out_stat_path, 'wb')) + print('Write stats for paper to {}'.format(out_stat_path)) + + +def prepare_plot_long_4_rows(sorted_lbs): + N = len(sorted_lbs) + + f,(ax1a, ax2a, ax3a, ax4a) = plt.subplots(4, 1,sharey=False, facecolor='w', figsize=(10, 12)) + + fontsize = 5 + + K = 132 + ax1a.set_xlim(0, K) + ax2a.set_xlim(K, 2 * K) + ax3a.set_xlim(2 * K, 3 * K) + ax4a.set_xlim(3 * K, N) + + truncated_sorted_lbs = [] + for lb in sorted_lbs: + lb = lb[0 : 25] + words = lb.split(' ') + if len(words[-1]) < 3: + lb = ' '.join(words[0:-1]) + truncated_sorted_lbs.append(lb) + + ax1a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + ax2a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + ax3a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + ax4a.grid(which='major', axis='x', linestyle='-', alpha=0.3) + + ax1a.set_yscale('log') + ax2a.set_yscale('log') + ax3a.set_yscale('log') + ax4a.set_yscale('log') + + ax1b = ax1a.twinx() + ax2b = ax2a.twinx() + ax3b = ax3a.twinx() + ax4b = ax4a.twinx() + ax1b.set_ylim(0., 1.) + ax2b.set_ylim(0., 1.) + ax3b.set_ylim(0., 1.) + ax4b.set_ylim(0., 1.) + ax1b.set_ylabel('Average precision') + ax2b.set_ylabel('Average precision') + ax3b.set_ylabel('Average precision') + ax4b.set_ylabel('Average precision') + + ax1b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + ax2b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + ax3b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + ax4b.yaxis.grid(color='grey', linestyle='--', alpha=0.5) + + ax1a.xaxis.set_ticks(np.arange(K)) + ax1a.xaxis.set_ticklabels(truncated_sorted_lbs[0:K], rotation=90, fontsize=fontsize) + ax1a.xaxis.tick_bottom() + ax1a.set_ylabel("Number of audio clips") + + ax2a.xaxis.set_ticks(np.arange(K, 2*K)) + ax2a.xaxis.set_ticklabels(truncated_sorted_lbs[K:2*K], rotation=90, fontsize=fontsize) + ax2a.xaxis.tick_bottom() + # ax2a.tick_params(left='off', which='both') + ax2a.set_ylabel("Number of audio clips") + + ax3a.xaxis.set_ticks(np.arange(2*K, 3*K)) + ax3a.xaxis.set_ticklabels(truncated_sorted_lbs[2*K:3*K], rotation=90, fontsize=fontsize) + ax3a.xaxis.tick_bottom() + ax3a.set_ylabel("Number of audio clips") + + ax4a.xaxis.set_ticks(np.arange(3*K, N)) + ax4a.xaxis.set_ticklabels(truncated_sorted_lbs[3*K:], rotation=90, fontsize=fontsize) + ax4a.xaxis.tick_bottom() + # ax4a.tick_params(left='off', which='both') + ax4a.set_ylabel("Number of audio clips") + + ax1a.spines['right'].set_visible(False) + ax1b.spines['right'].set_visible(False) + ax2a.spines['left'].set_visible(False) + ax2b.spines['left'].set_visible(False) + ax2a.spines['right'].set_visible(False) + ax2b.spines['right'].set_visible(False) + ax3a.spines['left'].set_visible(False) + ax3b.spines['left'].set_visible(False) + ax3a.spines['right'].set_visible(False) + ax3b.spines['right'].set_visible(False) + ax4a.spines['left'].set_visible(False) + ax4b.spines['left'].set_visible(False) + + plt.subplots_adjust(hspace = 0.8) + + return ax1a, ax2a, ax3a, ax4a, ax1b, ax2b, ax3b, ax4b + +def _scatter_4_rows(x, ax, ax2, ax3, ax4, s, c, marker='.', alpha=1.): + N = len(x) + ax.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + ax2.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + ax3.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + ax4.scatter(np.arange(N), x, s=s, c=c, marker=marker, alpha=alpha) + +def _plot_4_rows(x, ax, ax2, ax3, ax4, c, linewidth=1.0, alpha=1.0, label=""): + N = len(x) + ax.plot(x, c=c, linewidth=linewidth, alpha=alpha) + ax2.plot(x, c=c, linewidth=linewidth, alpha=alpha) + ax3.plot(x, c=c, linewidth=linewidth, alpha=alpha) + line, = ax4.plot(x, c=c, linewidth=linewidth, alpha=alpha, label=label) + return line + +def plot_long_fig(args): + # Arguments & parameters + workspace = args.workspace + + # Paths + stat_path = os.path.join(workspace, 'results', 'stats_for_paper.pkl') + save_out_path = 'results/long_fig.pdf' + create_folder(os.path.dirname(save_out_path)) + + # Stats + stats = cPickle.load(open(stat_path, 'rb')) + + N = len(config.labels) + sorted_indexes = stats['sorted_indexes_for_plot'] + sorted_labels = np.array(config.labels)[sorted_indexes] + audio_clips_per_class = stats['official_balanced_trainig_samples'] + stats['official_unbalanced_training_samples'] + audio_clips_per_class = audio_clips_per_class[sorted_indexes] + + (ax1a, ax2a, ax3a, ax4a, ax1b, ax2b, ax3b, ax4b) = prepare_plot_long_4_rows(sorted_labels) + + # plot the same data on both axes + ax1a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + ax2a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + ax3a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + ax4a.bar(np.arange(N), audio_clips_per_class, alpha=0.3) + + maps_avg_instances = stats['averaging_instance_system_avg_9_probs_from_10000_to_50000_iterations']['eval']['average_precision'] + maps_avg_instances = maps_avg_instances[sorted_indexes] + + maps_cnn13 = stats['cnn13_system_iteration60k']['eval']['average_precision'] + maps_cnn13 = maps_cnn13[sorted_indexes] + + maps_mobilenetv1 = stats['mobilenetv1_system_iteration56k']['eval']['average_precision'] + maps_mobilenetv1 = maps_mobilenetv1[sorted_indexes] + + maps_logmel_wavegram_cnn = _load_metrics0_classwise('main', 32000, 1024, + 320, 64, 50, 14000, 'full_train', 'Cnn13_SpAndWav', 'clip_bce', 'balanced', 'mixup', 32) + maps_logmel_wavegram_cnn = maps_logmel_wavegram_cnn[sorted_indexes] + + _scatter_4_rows(maps_avg_instances, ax1b, ax2b, ax3b, ax4b, s=5, c='k') + _scatter_4_rows(maps_cnn13, ax1b, ax2b, ax3b, ax4b, s=5, c='r') + _scatter_4_rows(maps_mobilenetv1, ax1b, ax2b, ax3b, ax4b, s=5, c='b') + _scatter_4_rows(maps_logmel_wavegram_cnn, ax1b, ax2b, ax3b, ax4b, s=5, c='g') + + linewidth = 0.7 + line0te = _plot_4_rows(maps_avg_instances, ax1b, ax2b, ax3b, ax4b, c='k', linewidth=linewidth, label='AP with averaging instances (baseline)') + line1te = _plot_4_rows(maps_cnn13, ax1b, ax2b, ax3b, ax4b, c='r', linewidth=linewidth, label='AP with CNN14') + line2te = _plot_4_rows(maps_mobilenetv1, ax1b, ax2b, ax3b, ax4b, c='b', linewidth=linewidth, label='AP with MobileNetV1') + line3te = _plot_4_rows(maps_logmel_wavegram_cnn, ax1b, ax2b, ax3b, ax4b, c='g', linewidth=linewidth, label='AP with Wavegram-Logmel-CNN') + + label_quality = stats['label_quality'] + sorted_rate = np.array(label_quality)[sorted_indexes] + for k in range(len(sorted_rate)): + if sorted_rate[k] and sorted_rate[k] == 1: + sorted_rate[k] = 0.99 + + ax1b.scatter(np.arange(N)[sorted_rate != None], sorted_rate[sorted_rate != None], s=12, c='r', linewidth=0.8, marker='+') + ax2b.scatter(np.arange(N)[sorted_rate != None], sorted_rate[sorted_rate != None], s=12, c='r', linewidth=0.8, marker='+') + ax3b.scatter(np.arange(N)[sorted_rate != None], sorted_rate[sorted_rate != None], s=12, c='r', linewidth=0.8, marker='+') + line_label_quality = ax4b.scatter(np.arange(N)[sorted_rate != None], sorted_rate[sorted_rate != None], s=12, c='r', linewidth=0.8, marker='+', label='Label quality') + ax1b.scatter(np.arange(N)[sorted_rate == None], 0.5 * np.ones(len(np.arange(N)[sorted_rate == None])), s=12, c='r', linewidth=0.8, marker='_') + ax2b.scatter(np.arange(N)[sorted_rate == None], 0.5 * np.ones(len(np.arange(N)[sorted_rate == None])), s=12, c='r', linewidth=0.8, marker='_') + ax3b.scatter(np.arange(N)[sorted_rate == None], 0.5 * np.ones(len(np.arange(N)[sorted_rate == None])), s=12, c='r', linewidth=0.8, marker='_') + ax4b.scatter(np.arange(N)[sorted_rate == None], 0.5 * np.ones(len(np.arange(N)[sorted_rate == None])), s=12, c='r', linewidth=0.8, marker='_') + + plt.legend(handles=[line0te, line1te, line2te, line3te, line_label_quality], fontsize=6, loc=1) + + plt.savefig(save_out_path) + print('Save fig to {}'.format(save_out_path)) + +def plot_flops(args): + + # Arguments & parameters + workspace = args.workspace + + # Paths + save_out_path = 'results_map/flops.pdf' + create_folder(os.path.dirname(save_out_path)) + + plt.figure(figsize=(5, 5)) + fig, ax = plt.subplots(1, 1) + + model_types = np.array(['Cnn6', 'Cnn10', 'Cnn14', 'ResNet22', 'ResNet38', 'ResNet54', + 'MobileNetV1', 'MobileNetV2', 'DaiNet', 'LeeNet', 'LeeNet18', + 'Res1dNet30', 'Res1dNet44', 'Wavegram-CNN', 'Wavegram-\nLogmel-CNN']) + flops = np.array([21.986, 21.986, 42.220, 30.081, 48.962, 54.563, 3.614, 2.810, + 30.395, 4.741, 26.369, 32.688, 61.833, 44.234, 53.510]) + mAPs = np.array([0.343, 0.380, 0.431, 0.430, 0.434, 0.429, 0.389, 0.383, 0.295, + 0.266, 0.336, 0.365, 0.355, 0.389, 0.439]) + + sorted_indexes = np.sort(flops) + ax.scatter(flops, mAPs) + + shift = [[1, 0.002], [1, -0.006], [-1, -0.014], [-2, 0.006], [-7, 0.006], + [1, -0.01], [0.5, 0.004], [-1, -0.014], [1, -0.007], [0.8, -0.008], + [1, -0.007], [1, 0.002], [-6, -0.015], [1, -0.008], [0.8, 0]] + + for i, model_type in enumerate(model_types): + ax.annotate(model_type, (flops[i] + shift[i][0], mAPs[i] + shift[i][1])) + + ax.plot(flops[[0, 1, 2]], mAPs[[0, 1, 2]]) + ax.plot(flops[[3, 4, 5]], mAPs[[3, 4, 5]]) + ax.plot(flops[[6, 7]], mAPs[[6, 7]]) + ax.plot(flops[[9, 10]], mAPs[[9, 10]]) + ax.plot(flops[[11, 12]], mAPs[[11, 12]]) + ax.plot(flops[[13, 14]], mAPs[[13, 14]]) + + ax.set_xlim(0, 70) + ax.set_ylim(0.2, 0.5) + ax.set_xlabel('Multi-adds (million)') + ax.set_ylabel('mAP') + + plt.tight_layout(0, 0, 0) + + plt.savefig(save_out_path) + print('Write out figure to {}'.format(save_out_path)) + + +def spearman(args): + + # Arguments & parameters + workspace = args.workspace + + # Paths + stat_path = os.path.join(workspace, 'results', 'stats_for_paper.pkl') + + # Stats + stats = cPickle.load(open(stat_path, 'rb')) + + label_quality = np.array([qu if qu else 0.5 for qu in stats['label_quality']]) + training_samples = np.array(stats['official_balanced_trainig_samples']) + \ + np.array(stats['official_unbalanced_training_samples']) + mAP = stats['averaging_instance_system_avg_9_probs_from_10000_to_50000_iterations']['eval']['average_precision'] + + import scipy + samples_spearman = scipy.stats.spearmanr(training_samples, mAP)[0] + quality_spearman = scipy.stats.spearmanr(label_quality, mAP)[0] + + print('Training samples spearman: {:.3f}'.format(samples_spearman)) + print('Quality spearman: {:.3f}'.format(quality_spearman)) + + +def print_results(args): + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn14_mixup_time_domain', 'clip_bce', 'balanced', 'mixup', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn14', 'clip_bce', 'none', 'none', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'none', 'none', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'none', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'balanced_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + + # + (mAP, mAUC, dprime) = _load_metrics0_classwise2('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn13_emb32', 'clip_bce', 'balanced', 'mixup', 32) + + (mAP, mAUC, dprime) = _load_metrics0_classwise2('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn13_emb128', 'clip_bce', 'balanced', 'mixup', 32) + + # partial + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'partial_0.8_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'partial_0.5_full_train', 'Cnn14', 'clip_bce', 'balanced', 'mixup', 32) + + # Sample rate + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn14_16k', 'clip_bce', 'balanced', 'mixup', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 64, 50, 14000, 'full_train', 'Cnn14_8k', 'clip_bce', 'balanced', 'mixup', 32) + + # Mel bins + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 128, 50, 14000, 'full_train', 'Cnn14_mel128', 'clip_bce', 'balanced', 'mixup', 32) + + (mAP, mAUC, dprime) = _load_metrics_classwise('main', 32000, 1024, 320, 32, 50, 14000, 'full_train', 'Cnn14_mel32', 'clip_bce', 'balanced', 'mixup', 32) + + import crash + asdf + +if __name__ == '__main__': + + parser = argparse.ArgumentParser(description='') + subparsers = parser.add_subparsers(dest='mode') + + parser_plot = subparsers.add_parser('plot') + parser_plot.add_argument('--dataset_dir', type=str, required=True) + parser_plot.add_argument('--workspace', type=str, required=True) + parser_plot.add_argument('--select', type=str, required=True) + + parser_plot = subparsers.add_parser('plot_for_paper') + parser_plot.add_argument('--dataset_dir', type=str, required=True) + parser_plot.add_argument('--workspace', type=str, required=True) + parser_plot.add_argument('--select', type=str, required=True) + + parser_plot = subparsers.add_parser('plot_for_paper2') + parser_plot.add_argument('--dataset_dir', type=str, required=True) + parser_plot.add_argument('--workspace', type=str, required=True) + + parser_values = subparsers.add_parser('plot_class_iteration') + parser_values.add_argument('--workspace', type=str, required=True) + parser_values.add_argument('--select', type=str, required=True) + + parser_summary_stats = subparsers.add_parser('summary_stats') + parser_summary_stats.add_argument('--workspace', type=str, required=True) + + parser_plot_long = subparsers.add_parser('plot_long_fig') + parser_plot_long.add_argument('--workspace', type=str, required=True) + + parser_plot_flops = subparsers.add_parser('plot_flops') + parser_plot_flops.add_argument('--workspace', type=str, required=True) + + parser_spearman = subparsers.add_parser('spearman') + parser_spearman.add_argument('--workspace', type=str, required=True) + + parser_print = subparsers.add_parser('print') + parser_print.add_argument('--workspace', type=str, required=True) + + args = parser.parse_args() + + if args.mode == 'plot': + plot(args) + + elif args.mode == 'plot_for_paper': + plot_for_paper(args) + + elif args.mode == 'plot_for_paper2': + plot_for_paper2(args) + + elif args.mode == 'table_values': + table_values(args) + + elif args.mode == 'plot_class_iteration': + plot_class_iteration(args) + + elif args.mode == 'summary_stats': + summary_stats(args) + + elif args.mode == 'plot_long_fig': + plot_long_fig(args) + + elif args.mode == 'plot_flops': + plot_flops(args) + + elif args.mode == 'spearman': + spearman(args) + + elif args.mode == 'print': + print_results(args) + + else: + raise Exception('Error argument!') \ No newline at end of file diff --git a/audio_detection/audio_infer/utils/utilities.py b/audio_detection/audio_infer/utils/utilities.py new file mode 100644 index 0000000..8d16045 --- /dev/null +++ b/audio_detection/audio_infer/utils/utilities.py @@ -0,0 +1,172 @@ +import os +import logging +import h5py +import soundfile +import librosa +import numpy as np +import pandas as pd +from scipy import stats +import datetime +import pickle + + +def create_folder(fd): + if not os.path.exists(fd): + os.makedirs(fd) + + +def get_filename(path): + path = os.path.realpath(path) + na_ext = path.split('/')[-1] + na = os.path.splitext(na_ext)[0] + return na + + +def get_sub_filepaths(folder): + paths = [] + for root, dirs, files in os.walk(folder): + for name in files: + path = os.path.join(root, name) + paths.append(path) + return paths + + +def create_logging(log_dir, filemode): + create_folder(log_dir) + i1 = 0 + + while os.path.isfile(os.path.join(log_dir, '{:04d}.log'.format(i1))): + i1 += 1 + + log_path = os.path.join(log_dir, '{:04d}.log'.format(i1)) + logging.basicConfig( + level=logging.DEBUG, + format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', + datefmt='%a, %d %b %Y %H:%M:%S', + filename=log_path, + filemode=filemode) + + # Print to console + console = logging.StreamHandler() + console.setLevel(logging.INFO) + formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') + console.setFormatter(formatter) + logging.getLogger('').addHandler(console) + + return logging + + +def read_metadata(csv_path, classes_num, id_to_ix): + """Read metadata of AudioSet from a csv file. + + Args: + csv_path: str + + Returns: + meta_dict: {'audio_name': (audios_num,), 'target': (audios_num, classes_num)} + """ + + with open(csv_path, 'r') as fr: + lines = fr.readlines() + lines = lines[3:] # Remove heads + + audios_num = len(lines) + targets = np.zeros((audios_num, classes_num), dtype=np.bool) + audio_names = [] + + for n, line in enumerate(lines): + items = line.split(', ') + """items: ['--4gqARaEJE', '0.000', '10.000', '"/m/068hy,/m/07q6cd_,/m/0bt9lr,/m/0jbk"\n']""" + + audio_name = 'Y{}.wav'.format(items[0]) # Audios are started with an extra 'Y' when downloading + label_ids = items[3].split('"')[1].split(',') + + audio_names.append(audio_name) + + # Target + for id in label_ids: + ix = id_to_ix[id] + targets[n, ix] = 1 + + meta_dict = {'audio_name': np.array(audio_names), 'target': targets} + return meta_dict + + +def float32_to_int16(x): + assert np.max(np.abs(x)) <= 1.2 + x = np.clip(x, -1, 1) + return (x * 32767.).astype(np.int16) + +def int16_to_float32(x): + return (x / 32767.).astype(np.float32) + + +def pad_or_truncate(x, audio_length): + """Pad all audio to specific length.""" + if len(x) <= audio_length: + return np.concatenate((x, np.zeros(audio_length - len(x))), axis=0) + else: + return x[0 : audio_length] + + +def d_prime(auc): + d_prime = stats.norm().ppf(auc) * np.sqrt(2.0) + return d_prime + + +class Mixup(object): + def __init__(self, mixup_alpha, random_seed=1234): + """Mixup coefficient generator. + """ + self.mixup_alpha = mixup_alpha + self.random_state = np.random.RandomState(random_seed) + + def get_lambda(self, batch_size): + """Get mixup random coefficients. + Args: + batch_size: int + Returns: + mixup_lambdas: (batch_size,) + """ + mixup_lambdas = [] + for n in range(0, batch_size, 2): + lam = self.random_state.beta(self.mixup_alpha, self.mixup_alpha, 1)[0] + mixup_lambdas.append(lam) + mixup_lambdas.append(1. - lam) + + return np.array(mixup_lambdas) + + +class StatisticsContainer(object): + def __init__(self, statistics_path): + """Contain statistics of different training iterations. + """ + self.statistics_path = statistics_path + + self.backup_statistics_path = '{}_{}.pkl'.format( + os.path.splitext(self.statistics_path)[0], + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')) + + self.statistics_dict = {'bal': [], 'test': []} + + def append(self, iteration, statistics, data_type): + statistics['iteration'] = iteration + self.statistics_dict[data_type].append(statistics) + + def dump(self): + pickle.dump(self.statistics_dict, open(self.statistics_path, 'wb')) + pickle.dump(self.statistics_dict, open(self.backup_statistics_path, 'wb')) + logging.info(' Dump statistics to {}'.format(self.statistics_path)) + logging.info(' Dump statistics to {}'.format(self.backup_statistics_path)) + + def load_state_dict(self, resume_iteration): + self.statistics_dict = pickle.load(open(self.statistics_path, 'rb')) + + resume_statistics_dict = {'bal': [], 'test': []} + + for key in self.statistics_dict.keys(): + for statistics in self.statistics_dict[key]: + if statistics['iteration'] <= resume_iteration: + resume_statistics_dict[key].append(statistics) + + self.statistics_dict = resume_statistics_dict \ No newline at end of file diff --git a/mono2binaural/src/models.py b/mono2binaural/src/models.py new file mode 100644 index 0000000..0d40527 --- /dev/null +++ b/mono2binaural/src/models.py @@ -0,0 +1,110 @@ +import numpy as np +import scipy.linalg +from scipy.spatial.transform import Rotation as R +import torch as th +import torch.nn as nn +import torch.nn.functional as F +from src.warping import GeometricTimeWarper, MonotoneTimeWarper +from src.utils import Net + + +class GeometricWarper(nn.Module): + def __init__(self, sampling_rate=48000): + super().__init__() + self.warper = GeometricTimeWarper(sampling_rate=sampling_rate) + + def _transmitter_mouth(self, view): + # offset between tracking markers and real mouth position in the dataset + mouth_offset = np.array([0.09, 0, -0.20]) + quat = view[:, 3:, :].transpose(2, 1).contiguous().detach().cpu().view(-1, 4).numpy() + # make sure zero-padded values are set to non-zero values (else scipy raises an exception) + norms = scipy.linalg.norm(quat, axis=1) + eps_val = (norms == 0).astype(np.float32) + quat = quat + eps_val[:, None] + transmitter_rot_mat = R.from_quat(quat) + transmitter_mouth = transmitter_rot_mat.apply(mouth_offset, inverse=True) + transmitter_mouth = th.Tensor(transmitter_mouth).view(view.shape[0], -1, 3).transpose(2, 1).contiguous() + if view.is_cuda: + transmitter_mouth = transmitter_mouth.cuda() + return transmitter_mouth + + def _3d_displacements(self, view): + transmitter_mouth = self._transmitter_mouth(view) + # offset between tracking markers and ears in the dataset + left_ear_offset = th.Tensor([0, -0.08, -0.22]).cuda() if view.is_cuda else th.Tensor([0, -0.08, -0.22]) + right_ear_offset = th.Tensor([0, 0.08, -0.22]).cuda() if view.is_cuda else th.Tensor([0, 0.08, -0.22]) + # compute displacements between transmitter mouth and receiver left/right ear + displacement_left = view[:, 0:3, :] + transmitter_mouth - left_ear_offset[None, :, None] + displacement_right = view[:, 0:3, :] + transmitter_mouth - right_ear_offset[None, :, None] + displacement = th.stack([displacement_left, displacement_right], dim=1) + return displacement + + def _warpfield(self, view, seq_length): + return self.warper.displacements2warpfield(self._3d_displacements(view), seq_length) + + def forward(self, mono, view): + ''' + :param mono: input signal as tensor of shape B x 1 x T + :param view: rx/tx position/orientation as tensor of shape B x 7 x K (K = T / 400) + :return: warped: warped left/right ear signal as tensor of shape B x 2 x T + ''' + return self.warper(th.cat([mono, mono], dim=1), self._3d_displacements(view)) + + +class Warpnet(nn.Module): + def __init__(self, layers=4, channels=64, view_dim=7): + super().__init__() + self.layers = [nn.Conv1d(view_dim if l == 0 else channels, channels, kernel_size=2) for l in range(layers)] + self.layers = nn.ModuleList(self.layers) + self.linear = nn.Conv1d(channels, 2, kernel_size=1) + self.neural_warper = MonotoneTimeWarper() + self.geometric_warper = GeometricWarper() + + def neural_warpfield(self, view, seq_length): + warpfield = view + for layer in self.layers: + warpfield = F.pad(warpfield, pad=[1, 0]) + warpfield = F.relu(layer(warpfield)) + warpfield = self.linear(warpfield) + warpfield = F.interpolate(warpfield, size=seq_length) + return warpfield + + def forward(self, mono, view): + ''' + :param mono: input signal as tensor of shape B x 1 x T + :param view: rx/tx position/orientation as tensor of shape B x 7 x K (K = T / 400) + :return: warped: warped left/right ear signal as tensor of shape B x 2 x T + ''' + geometric_warpfield = self.geometric_warper._warpfield(view, mono.shape[-1]) + neural_warpfield = self.neural_warpfield(view, mono.shape[-1]) + warpfield = geometric_warpfield + neural_warpfield + # ensure causality + warpfield = -F.relu(-warpfield) # the predicted warp + warped = self.neural_warper(th.cat([mono, mono], dim=1), warpfield) + return warped + +class BinauralNetwork(Net): + def __init__(self, + view_dim=7, + warpnet_layers=4, + warpnet_channels=64, + model_name='binaural_network', + use_cuda=True): + super().__init__(model_name, use_cuda) + self.warper = Warpnet(warpnet_layers, warpnet_channels) + if self.use_cuda: + self.cuda() + + def forward(self, mono, view): + ''' + :param mono: the input signal as a B x 1 x T tensor + :param view: the receiver/transmitter position as a B x 7 x T tensor + :return: out: the binaural output produced by the network + intermediate: a two-channel audio signal obtained from the output of each intermediate layer + as a list of B x 2 x T tensors + ''' + # print('mono ', mono.shape) + # print('view ', view.shape) + warped = self.warper(mono, view) + # print('warped ', warped.shape) + return warped diff --git a/mono2binaural/src/utils.py b/mono2binaural/src/utils.py new file mode 100644 index 0000000..074dd84 --- /dev/null +++ b/mono2binaural/src/utils.py @@ -0,0 +1,251 @@ +""" +Copyright (c) Facebook, Inc. and its affiliates. +All rights reserved. + +This source code is licensed under the license found in the +LICENSE file in the root directory of this source tree. +""" + +import numpy as np +import torch as th +#import torchaudio as ta + + +class Net(th.nn.Module): + + def __init__(self, model_name="network", use_cuda=True): + super().__init__() + self.use_cuda = use_cuda + self.model_name = model_name + + def save(self, model_dir, suffix=''): + ''' + save the network to model_dir/model_name.suffix.net + :param model_dir: directory to save the model to + :param suffix: suffix to append after model name + ''' + if self.use_cuda: + self.cpu() + + if suffix == "": + fname = f"{model_dir}/{self.model_name}.net" + else: + fname = f"{model_dir}/{self.model_name}.{suffix}.net" + + th.save(self.state_dict(), fname) + if self.use_cuda: + self.cuda() + + def load_from_file(self, model_file): + ''' + load network parameters from model_file + :param model_file: file containing the model parameters + ''' + if self.use_cuda: + self.cpu() + + states = th.load(model_file) + self.load_state_dict(states) + + if self.use_cuda: + self.cuda() + print(f"Loaded: {model_file}") + + def load(self, model_dir, suffix=''): + ''' + load network parameters from model_dir/model_name.suffix.net + :param model_dir: directory to load the model from + :param suffix: suffix to append after model name + ''' + if suffix == "": + fname = f"{model_dir}/{self.model_name}.net" + else: + fname = f"{model_dir}/{self.model_name}.{suffix}.net" + self.load_from_file(fname) + + def num_trainable_parameters(self): + ''' + :return: the number of trainable parameters in the model + ''' + return sum(p.numel() for p in self.parameters() if p.requires_grad) + + +# class NewbobAdam(th.optim.Adam): + +# def __init__(self, +# weights, +# net, +# artifacts_dir, +# initial_learning_rate=0.001, +# decay=0.5, +# max_decay=0.01 +# ): +# ''' +# Newbob learning rate scheduler +# :param weights: weights to optimize +# :param net: the network, must be an instance of type src.utils.Net +# :param artifacts_dir: (str) directory to save/restore models to/from +# :param initial_learning_rate: (float) initial learning rate +# :param decay: (float) value to decrease learning rate by when loss doesn't improve further +# :param max_decay: (float) maximum decay of learning rate +# ''' +# super().__init__(weights, lr=initial_learning_rate) +# self.last_epoch_loss = np.inf +# self.total_decay = 1 +# self.net = net +# self.decay = decay +# self.max_decay = max_decay +# self.artifacts_dir = artifacts_dir +# # store initial state as backup +# if decay < 1.0: +# net.save(artifacts_dir, suffix="newbob") + +# def update_lr(self, loss): +# ''' +# update the learning rate based on the current loss value and historic loss values +# :param loss: the loss after the current iteration +# ''' +# if loss > self.last_epoch_loss and self.decay < 1.0 and self.total_decay > self.max_decay: +# self.total_decay = self.total_decay * self.decay +# print(f"NewbobAdam: Decay learning rate (loss degraded from {self.last_epoch_loss} to {loss})." +# f"Total decay: {self.total_decay}") +# # restore previous network state +# self.net.load(self.artifacts_dir, suffix="newbob") +# # decrease learning rate +# for param_group in self.param_groups: +# param_group['lr'] = param_group['lr'] * self.decay +# else: +# self.last_epoch_loss = loss +# # save last snapshot to restore it in case of lr decrease +# if self.decay < 1.0 and self.total_decay > self.max_decay: +# self.net.save(self.artifacts_dir, suffix="newbob") + + +# class FourierTransform: +# def __init__(self, +# fft_bins=2048, +# win_length_ms=40, +# frame_rate_hz=100, +# causal=False, +# preemphasis=0.0, +# sample_rate=48000, +# normalized=False): +# self.sample_rate = sample_rate +# self.frame_rate_hz = frame_rate_hz +# self.preemphasis = preemphasis +# self.fft_bins = fft_bins +# self.win_length = int(sample_rate * win_length_ms / 1000) +# self.hop_length = int(sample_rate / frame_rate_hz) +# self.causal = causal +# self.normalized = normalized +# if self.win_length > self.fft_bins: +# print('FourierTransform Warning: fft_bins should be larger than win_length') + +# def _convert_format(self, data, expected_dims): +# if not type(data) == th.Tensor: +# data = th.Tensor(data) +# if len(data.shape) < expected_dims: +# data = data.unsqueeze(0) +# if not len(data.shape) == expected_dims: +# raise Exception(f"FourierTransform: data needs to be a Tensor with {expected_dims} dimensions but got shape {data.shape}") +# return data + +# def _preemphasis(self, audio): +# if self.preemphasis > 0: +# return th.cat((audio[:, 0:1], audio[:, 1:] - self.preemphasis * audio[:, :-1]), dim=1) +# return audio + +# def _revert_preemphasis(self, audio): +# if self.preemphasis > 0: +# for i in range(1, audio.shape[1]): +# audio[:, i] = audio[:, i] + self.preemphasis * audio[:, i-1] +# return audio + +# def _magphase(self, complex_stft): +# mag, phase = ta.functional.magphase(complex_stft, 1.0) +# return mag, phase + +# def stft(self, audio): +# ''' +# wrapper around th.stft +# audio: wave signal as th.Tensor +# ''' +# hann = th.hann_window(self.win_length) +# hann = hann.cuda() if audio.is_cuda else hann +# spec = th.stft(audio, n_fft=self.fft_bins, hop_length=self.hop_length, win_length=self.win_length, +# window=hann, center=not self.causal, normalized=self.normalized) +# return spec.contiguous() + +# def complex_spectrogram(self, audio): +# ''' +# audio: wave signal as th.Tensor +# return: th.Tensor of size channels x frequencies x time_steps (channels x y_axis x x_axis) +# ''' +# self._convert_format(audio, expected_dims=2) +# audio = self._preemphasis(audio) +# return self.stft(audio) + +# def magnitude_phase(self, audio): +# ''' +# audio: wave signal as th.Tensor +# return: tuple containing two th.Tensor of size channels x frequencies x time_steps for magnitude and phase spectrum +# ''' +# stft = self.complex_spectrogram(audio) +# return self._magphase(stft) + +# def mag_spectrogram(self, audio): +# ''' +# audio: wave signal as th.Tensor +# return: magnitude spectrum as th.Tensor of size channels x frequencies x time_steps for magnitude and phase spectrum +# ''' +# return self.magnitude_phase(audio)[0] + +# def power_spectrogram(self, audio): +# ''' +# audio: wave signal as th.Tensor +# return: power spectrum as th.Tensor of size channels x frequencies x time_steps for magnitude and phase spectrum +# ''' +# return th.pow(self.mag_spectrogram(audio), 2.0) + +# def phase_spectrogram(self, audio): +# ''' +# audio: wave signal as th.Tensor +# return: phase spectrum as th.Tensor of size channels x frequencies x time_steps for magnitude and phase spectrum +# ''' +# return self.magnitude_phase(audio)[1] + +# def mel_spectrogram(self, audio, n_mels): +# ''' +# audio: wave signal as th.Tensor +# n_mels: number of bins used for mel scale warping +# return: mel spectrogram as th.Tensor of size channels x n_mels x time_steps for magnitude and phase spectrum +# ''' +# spec = self.power_spectrogram(audio) +# mel_warping = ta.transforms.MelScale(n_mels, self.sample_rate) +# return mel_warping(spec) + +# def complex_spec2wav(self, complex_spec, length): +# ''' +# inverse stft +# complex_spec: complex spectrum as th.Tensor of size channels x frequencies x time_steps x 2 (real part/imaginary part) +# length: length of the audio to be reconstructed (in frames) +# ''' +# complex_spec = self._convert_format(complex_spec, expected_dims=4) +# hann = th.hann_window(self.win_length) +# hann = hann.cuda() if complex_spec.is_cuda else hann +# wav = ta.functional.istft(complex_spec, n_fft=self.fft_bins, hop_length=self.hop_length, win_length=self.win_length, window=hann, length=length, center=not self.causal) +# wav = self._revert_preemphasis(wav) +# return wav + +# def magphase2wav(self, mag_spec, phase_spec, length): +# ''' +# reconstruction of wav signal from magnitude and phase spectrum +# mag_spec: magnitude spectrum as th.Tensor of size channels x frequencies x time_steps +# phase_spec: phase spectrum as th.Tensor of size channels x frequencies x time_steps +# length: length of the audio to be reconstructed (in frames) +# ''' +# mag_spec = self._convert_format(mag_spec, expected_dims=3) +# phase_spec = self._convert_format(phase_spec, expected_dims=3) +# complex_spec = th.stack([mag_spec * th.cos(phase_spec), mag_spec * th.sin(phase_spec)], dim=-1) +# return self.complex_spec2wav(complex_spec, length) + diff --git a/mono2binaural/src/warping.py b/mono2binaural/src/warping.py new file mode 100644 index 0000000..9d7c4ed --- /dev/null +++ b/mono2binaural/src/warping.py @@ -0,0 +1,113 @@ +""" +Copyright (c) Facebook, Inc. and its affiliates. +All rights reserved. + +This source code is licensed under the license found in the +LICENSE file in the root directory of this source tree. +""" + +import torch as th +import torch.nn as nn +import torch.nn.functional as F + + +class TimeWarperFunction(th.autograd.Function): + + @staticmethod + def forward(ctx, input, warpfield): + ''' + :param ctx: autograd context + :param input: input signal (B x 2 x T) + :param warpfield: the corresponding warpfield (B x 2 x T) + :return: the warped signal (B x 2 x T) + ''' + ctx.save_for_backward(input, warpfield) + # compute index list to lookup warped input values + idx_left = warpfield.floor().type(th.long) + idx_right = th.clamp(warpfield.ceil().type(th.long), max=input.shape[-1]-1) + # compute weight for linear interpolation + alpha = warpfield - warpfield.floor() + # linear interpolation + output = (1 - alpha) * th.gather(input, 2, idx_left) + alpha * th.gather(input, 2, idx_right) + return output + + @staticmethod + def backward(ctx, grad_output): + input, warpfield = ctx.saved_tensors + # compute index list to lookup warped input values + idx_left = warpfield.floor().type(th.long) + idx_right = th.clamp(warpfield.ceil().type(th.long), max=input.shape[-1]-1) + # warpfield gradient + grad_warpfield = th.gather(input, 2, idx_right) - th.gather(input, 2, idx_left) + grad_warpfield = grad_output * grad_warpfield + # input gradient + grad_input = th.zeros(input.shape, device=input.device) + alpha = warpfield - warpfield.floor() + grad_input = grad_input.scatter_add(2, idx_left, grad_output * (1 - alpha)) + \ + grad_input.scatter_add(2, idx_right, grad_output * alpha) + return grad_input, grad_warpfield + + +class TimeWarper(nn.Module): + + def __init__(self): + super().__init__() + self.warper = TimeWarperFunction().apply + + def _to_absolute_positions(self, warpfield, seq_length): + # translate warpfield from relative warp indices to absolute indices ([1...T] + warpfield) + temp_range = th.arange(seq_length, dtype=th.float) + temp_range = temp_range.cuda() if warpfield.is_cuda else temp_range + return th.clamp(warpfield + temp_range[None, None, :], min=0, max=seq_length-1) + + def forward(self, input, warpfield): + ''' + :param input: audio signal to be warped (B x 2 x T) + :param warpfield: the corresponding warpfield (B x 2 x T) + :return: the warped signal (B x 2 x T) + ''' + warpfield = self._to_absolute_positions(warpfield, input.shape[-1]) + warped = self.warper(input, warpfield) + return warped + + +class MonotoneTimeWarper(TimeWarper): + + def forward(self, input, warpfield): + ''' + :param input: audio signal to be warped (B x 2 x T) + :param warpfield: the corresponding warpfield (B x 2 x T) + :return: the warped signal (B x 2 x T), ensured to be monotonous + ''' + warpfield = self._to_absolute_positions(warpfield, input.shape[-1]) + # ensure monotonicity: each warp must be at least as big as previous_warp-1 + warpfield = th.cummax(warpfield, dim=-1)[0] + # print('warpfield ',warpfield.shape) + # warp + warped = self.warper(input, warpfield) + return warped + + +class GeometricTimeWarper(TimeWarper): + + def __init__(self, sampling_rate=48000): + super().__init__() + self.sampling_rate = sampling_rate + + def displacements2warpfield(self, displacements, seq_length): + distance = th.sum(displacements**2, dim=2) ** 0.5 + distance = F.interpolate(distance, size=seq_length) + warpfield = -distance / 343.0 * self.sampling_rate + return warpfield + + def forward(self, input, displacements): + ''' + :param input: audio signal to be warped (B x 2 x T) + :param displacements: sequence of 3D displacement vectors for geometric warping (B x 3 x T) + :return: the warped signal (B x 2 x T) + ''' + warpfield = self.displacements2warpfield(displacements, input.shape[-1]) + # print('Ge warpfield ', warpfield.shape) + # assert 1==2 + warped = super().forward(input, warpfield) + return warped

MKo>2jmD!93=^*4ut|)0CCY3$yM&9 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%0AdP92dR{<$v%oI+kONmO`O_>8+ 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%0A*07G8^ETQd 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 CVu9uN+6rBREI=m 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 z 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 C-J`bv literal 0 HcmV?d00001 diff --git a/audio_detection/audio_infer/__init__.py b/audio_detection/audio_infer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/audio_detection/audio_infer/infer.sh b/audio_detection/audio_infer/infer.sh new file mode 100644 index 0000000..c4ecb3b --- /dev/null +++ b/audio_detection/audio_infer/infer.sh @@ -0,0 +1,5 @@ +CUDA_VISIBLE_DEVICES=0 python3 pytorch/inference.py sound_event_detection \ + --model_type=PVT \ + --checkpoint_path=/apdcephfs_cq2/share_1297902/speech_user/shaunxliu/dongchao/audio_chatgpt/ft_local/audio_infer/220000_iterations.pth \ + --audio_path="/apdcephfs_cq2/share_1297902/speech_user/shaunxliu/dongchao/audio_chatgpt/ft_local/audio_infer/YDlWd7Wmdi1E.wav" \ + --cuda diff --git a/audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_evaluation_set.csv b/audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_evaluation_set.csv new file mode 100644 index 0000000..48d8522 --- /dev/null +++ b/audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_evaluation_set.csv @@ -0,0 +1,1350 @@ +-JMT0mK0Dbg_30.000_40.000.wav 30.000 40.000 Train horn +3ACjUf9QpAQ_30.000_40.000.wav 30.000 40.000 Train horn +3S2-TODd__k_90.000_100.000.wav 90.000 100.000 Train horn +3YJewEC-NWo_30.000_40.000.wav 30.000 40.000 Train horn +3jXAh3V2FO8_30.000_40.000.wav 30.000 40.000 Train horn +53oq_Otm_XI_30.000_40.000.wav 30.000 40.000 Train horn +8IaInXpdd9M_0.000_10.000.wav 0.000 10.000 Train horn +8nU1aVscJec_30.000_40.000.wav 30.000 40.000 Train horn +9LQEZJPNVpw_30.000_40.000.wav 30.000 40.000 Train horn +AHom7lBbtoY_30.000_40.000.wav 30.000 40.000 Train horn +Ag_zT74ZGNc_9.000_19.000.wav 9.000 19.000 Train horn +BQpa8whzwAE_30.000_40.000.wav 30.000 40.000 Train horn +CCX_4cW_SAU_0.000_10.000.wav 0.000 10.000 Train horn +CLIdVCUO_Vw_30.000_40.000.wav 30.000 40.000 Train horn +D_nXtMgbPNY_30.000_40.000.wav 30.000 40.000 Train horn +GFQnh84kNwU_30.000_40.000.wav 30.000 40.000 Train horn +I4qODX0fypE_30.000_40.000.wav 30.000 40.000 Train horn +IdqEbjujFb8_30.000_40.000.wav 30.000 40.000 Train horn +L3a132_uApg_50.000_60.000.wav 50.000 60.000 Train horn +LzcNa3HvD7c_30.000_40.000.wav 30.000 40.000 Train horn +MCYY8tJsnfY_7.000_17.000.wav 7.000 17.000 Train horn +MPSf7dJpV5w_30.000_40.000.wav 30.000 40.000 Train horn +NdCr5IDnkxc_30.000_40.000.wav 30.000 40.000 Train horn +P54KKbTA_TE_0.000_7.000.wav 0.000 7.000 Train horn +PJUy17bXlhc_40.000_50.000.wav 40.000 50.000 Train horn +QrAoRSA13bM_30.000_40.000.wav 30.000 40.000 Train horn +R_Lpb-51Kl4_30.000_40.000.wav 30.000 40.000 Train horn +Rq-22Cycrpg_30.000_40.000.wav 30.000 40.000 Train horn +TBjrN1aMRrM_30.000_40.000.wav 30.000 40.000 Train horn +XAUtk9lwzU8_30.000_40.000.wav 30.000 40.000 Train horn +XW8pSKLyr0o_20.000_30.000.wav 20.000 30.000 Train horn +Y10I9JSvJuQ_30.000_40.000.wav 30.000 40.000 Train horn +Y_jwEflLthg_190.000_200.000.wav 190.000 200.000 Train horn +YilfKdY7w6Y_60.000_70.000.wav 60.000 70.000 Train horn +ZcTI8fQgEZE_240.000_250.000.wav 240.000 250.000 Train horn +_8MvhMlbwiE_40.000_50.000.wav 40.000 50.000 Train horn +_dkeW6lqmq4_30.000_40.000.wav 30.000 40.000 Train horn +aXsUHAKbyLs_30.000_40.000.wav 30.000 40.000 Train horn +arevYmB0qGg_30.000_40.000.wav 30.000 40.000 Train horn +d1o334I5X_k_30.000_40.000.wav 30.000 40.000 Train horn +dSzZWgbJ378_30.000_40.000.wav 30.000 40.000 Train horn +ePVb5Upev8k_40.000_50.000.wav 40.000 50.000 Train horn +g4cA-ifQc70_30.000_40.000.wav 30.000 40.000 Train horn +g9JVq7wfDIo_30.000_40.000.wav 30.000 40.000 Train horn +gTFCK9TuLOQ_30.000_40.000.wav 30.000 40.000 Train horn +hYqzr_rIIAw_30.000_40.000.wav 30.000 40.000 Train horn +iZgzRfa-xPQ_30.000_40.000.wav 30.000 40.000 Train horn +k8H8rn4NaSM_0.000_10.000.wav 0.000 10.000 Train horn +lKQ-I_P7TEM_20.000_30.000.wav 20.000 30.000 Train horn +nfY_zkJceDw_30.000_40.000.wav 30.000 40.000 Train horn +pW5SI1ZKUpA_30.000_40.000.wav 30.000 40.000 Train horn +pxmrmtEnROk_30.000_40.000.wav 30.000 40.000 Train horn +q7zzKHFWGkg_30.000_40.000.wav 30.000 40.000 Train horn +qu8vVFWKszA_30.000_40.000.wav 30.000 40.000 Train horn +stdjjG6Y5IU_30.000_40.000.wav 30.000 40.000 Train horn +tdRMxc4UWRk_30.000_40.000.wav 30.000 40.000 Train horn +tu-cxDG2mW8_0.000_10.000.wav 0.000 10.000 Train horn +txXSE7kgrc8_30.000_40.000.wav 30.000 40.000 Train horn +xabrKa79prM_30.000_40.000.wav 30.000 40.000 Train horn +yBVxtq9k8Sg_0.000_10.000.wav 0.000 10.000 Train horn +-WoudI3gGvk_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +0_gci63CtFY_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +2-h8MRSRvEg_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +3NX4HaOVBoo_240.000_250.000.wav 240.000 250.000 Air horn, truck horn +9NPKQDaNCRk_0.000_6.000.wav 0.000 6.000 Air horn, truck horn +9ct4w4aYWdc_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +9l9QXgsJSfo_120.000_130.000.wav 120.000 130.000 Air horn, truck horn +CN0Bi4MDpA4_20.000_30.000.wav 20.000 30.000 Air horn, truck horn +CU2MyVM_B48_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +Cg-DWc9nPfQ_90.000_100.000.wav 90.000 100.000 Air horn, truck horn +D62L3husEa0_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +GO2zKyMtBV4_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +Ge_KWS-0098_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +Hk7HqLBHWng_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +IpyingiCwV8_0.000_3.000.wav 0.000 3.000 Air horn, truck horn +Isuh9pOuH6I_300.000_310.000.wav 300.000 310.000 Air horn, truck horn +IuTfMfzkr5Y_120.000_130.000.wav 120.000 130.000 Air horn, truck horn +MFxsgcZZtFs_10.000_20.000.wav 10.000 20.000 Air horn, truck horn +N3osL4QmOL8_49.000_59.000.wav 49.000 59.000 Air horn, truck horn +NOZsDTFLm7M_0.000_9.000.wav 0.000 9.000 Air horn, truck horn +OjVY3oM1jEU_40.000_50.000.wav 40.000 50.000 Air horn, truck horn +PNaLTW50fxM_60.000_70.000.wav 60.000 70.000 Air horn, truck horn +TYLZuBBu8ms_0.000_10.000.wav 0.000 10.000 Air horn, truck horn +UdHR1P_NIbo_110.000_120.000.wav 110.000 120.000 Air horn, truck horn +YilfKdY7w6Y_60.000_70.000.wav 60.000 70.000 Air horn, truck horn +Yt4ZWNjvJOY_50.000_60.000.wav 50.000 60.000 Air horn, truck horn +Z5M3fGT3Xjk_60.000_70.000.wav 60.000 70.000 Air horn, truck horn +ZauRsP1uH74_12.000_22.000.wav 12.000 22.000 Air horn, truck horn +a_6CZ2JaEuc_0.000_2.000.wav 0.000 2.000 Air horn, truck horn +b7m5Kt5U7Vc_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +bIObkrK06rk_15.000_25.000.wav 15.000 25.000 Air horn, truck horn +cdrjKqyDrak_420.000_430.000.wav 420.000 430.000 Air horn, truck horn +ckSYn557ZyE_20.000_30.000.wav 20.000 30.000 Air horn, truck horn +cs-RPPsg_ks_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +ctsq33oUBT8_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +eCFUwyU9ZWA_9.000_19.000.wav 9.000 19.000 Air horn, truck horn +ePVb5Upev8k_40.000_50.000.wav 40.000 50.000 Air horn, truck horn +fHaQPHCjyfA_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +fOVsAMJ3Yms_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +g4cA-ifQc70_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +gjlo4evwjlE_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +i9VjpIbM3iE_410.000_420.000.wav 410.000 420.000 Air horn, truck horn +ieZVo7W3BQ4_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +ii87iO6JboA_10.000_20.000.wav 10.000 20.000 Air horn, truck horn +jko48cNdvFA_80.000_90.000.wav 80.000 90.000 Air horn, truck horn +kJuvA2zmrnY_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +kUrb38hMwPs_0.000_10.000.wav 0.000 10.000 Air horn, truck horn +km_hVyma2vo_0.000_10.000.wav 0.000 10.000 Air horn, truck horn +m1e9aOwRiDQ_0.000_9.000.wav 0.000 9.000 Air horn, truck horn +mQJcObz1k_E_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +pk75WDyNZKc_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +rhUfN81puDI_0.000_10.000.wav 0.000 10.000 Air horn, truck horn +suuYwAifIAQ_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +wDdEZ46B-tM_460.000_470.000.wav 460.000 470.000 Air horn, truck horn +wHISHmuP58s_80.000_90.000.wav 80.000 90.000 Air horn, truck horn +xwqIKDz1bT4_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +y4Ko6VNiqB0_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +yhcmPrU3QSk_61.000_71.000.wav 61.000 71.000 Air horn, truck horn +3FWHjjZGT9U_80.000_90.000.wav 80.000 90.000 Car alarm +3YChVhqW42E_130.000_140.000.wav 130.000 140.000 Car alarm +3YRkin3bMlQ_170.000_180.000.wav 170.000 180.000 Car alarm +4APBvMmKubU_10.000_20.000.wav 10.000 20.000 Car alarm +4JDah6Ckr9k_5.000_15.000.wav 5.000 15.000 Car alarm +5hL1uGb4sas_30.000_40.000.wav 30.000 40.000 Car alarm +969Zfj4IoPk_20.000_30.000.wav 20.000 30.000 Car alarm +AyfuBDN3Vdw_40.000_50.000.wav 40.000 50.000 Car alarm +B-ZqhRg3km4_60.000_70.000.wav 60.000 70.000 Car alarm +BDnwA3AaclE_10.000_20.000.wav 10.000 20.000 Car alarm +ES-rjFfuxq4_120.000_130.000.wav 120.000 130.000 Car alarm +EWbZq5ruCpg_0.000_10.000.wav 0.000 10.000 Car alarm +F50h9HiyC3k_40.000_50.000.wav 40.000 50.000 Car alarm +F5AP8kQvogM_30.000_40.000.wav 30.000 40.000 Car alarm +FKJuDOAumSk_20.000_30.000.wav 20.000 30.000 Car alarm +GmbNjZi4xBw_30.000_40.000.wav 30.000 40.000 Car alarm +H7lOMlND9dc_30.000_40.000.wav 30.000 40.000 Car alarm +Hu8lxbHYaqg_40.000_50.000.wav 40.000 50.000 Car alarm +IziTYkSwq9Q_30.000_40.000.wav 30.000 40.000 Car alarm +JcO2TTtiplA_30.000_40.000.wav 30.000 40.000 Car alarm +KKx7dWRg8s8_8.000_18.000.wav 8.000 18.000 Car alarm +Kf9Kr69mwOA_14.000_24.000.wav 14.000 24.000 Car alarm +L535vIV3ED4_40.000_50.000.wav 40.000 50.000 Car alarm +LOjT44tFx1A_0.000_10.000.wav 0.000 10.000 Car alarm +Mxn2FKuNwiI_20.000_30.000.wav 20.000 30.000 Car alarm +Nkqx09b-xyI_70.000_80.000.wav 70.000 80.000 Car alarm +QNKo1W1WRbc_22.000_32.000.wav 22.000 32.000 Car alarm +R0VxYDfjyAU_60.000_70.000.wav 60.000 70.000 Car alarm +TJ58vMpSy1w_30.000_40.000.wav 30.000 40.000 Car alarm +ToU1kRagUjY_0.000_10.000.wav 0.000 10.000 Car alarm +TrQGIZqrW0s_30.000_40.000.wav 30.000 40.000 Car alarm +ULFhHR0OLSE_30.000_40.000.wav 30.000 40.000 Car alarm +ULS3ffQkCW4_30.000_40.000.wav 30.000 40.000 Car alarm +U_9NuNORYQM_1.000_11.000.wav 1.000 11.000 Car alarm +UkCEuwYUW8c_110.000_120.000.wav 110.000 120.000 Car alarm +Wak5QxsS-QU_30.000_40.000.wav 30.000 40.000 Car alarm +XzE7mp3pVik_0.000_10.000.wav 0.000 10.000 Car alarm +Y-4dtrP-RNo_7.000_17.000.wav 7.000 17.000 Car alarm +Zltlj0fDeS4_30.000_40.000.wav 30.000 40.000 Car alarm +cB1jkzgH2es_150.000_160.000.wav 150.000 160.000 Car alarm +eIMjkADTWzA_60.000_70.000.wav 60.000 70.000 Car alarm +eL7s5CoW0UA_0.000_7.000.wav 0.000 7.000 Car alarm +i9VjpIbM3iE_410.000_420.000.wav 410.000 420.000 Car alarm +iWl-5LNURFc_30.000_40.000.wav 30.000 40.000 Car alarm +iX34nDCq9NU_10.000_20.000.wav 10.000 20.000 Car alarm +ii87iO6JboA_10.000_20.000.wav 10.000 20.000 Car alarm +l6_h_YHuTbY_30.000_40.000.wav 30.000 40.000 Car alarm +lhedRVb85Fk_30.000_40.000.wav 30.000 40.000 Car alarm +monelE7hnwI_20.000_30.000.wav 20.000 30.000 Car alarm +o2CmtHNUrXg_30.000_40.000.wav 30.000 40.000 Car alarm +pXX6cK4xtiY_11.000_21.000.wav 11.000 21.000 Car alarm +stnVta2ip9g_30.000_40.000.wav 30.000 40.000 Car alarm +uvuVg9Cl0n0_30.000_40.000.wav 30.000 40.000 Car alarm +vF2zXcbADUk_20.000_30.000.wav 20.000 30.000 Car alarm +vN7dJyt-nj0_20.000_30.000.wav 20.000 30.000 Car alarm +w8Md65mE5Vc_30.000_40.000.wav 30.000 40.000 Car alarm +ySqfMcFk5LM_30.000_40.000.wav 30.000 40.000 Car alarm +ysNK5RVF3Zw_0.000_10.000.wav 0.000 10.000 Car alarm +za8KPcQ0dTw_30.000_40.000.wav 30.000 40.000 Car alarm +-2sE5CH8Wb8_30.000_40.000.wav 30.000 40.000 Reversing beeps +-fJsZm3YRc0_30.000_40.000.wav 30.000 40.000 Reversing beeps +-oSzD8P2BtU_30.000_40.000.wav 30.000 40.000 Reversing beeps +-pzwalZ0ub0_5.000_15.000.wav 5.000 15.000 Reversing beeps +-t-htrAtNvM_30.000_40.000.wav 30.000 40.000 Reversing beeps +-zNEcuo28oE_30.000_40.000.wav 30.000 40.000 Reversing beeps +077aWlQn6XI_30.000_40.000.wav 30.000 40.000 Reversing beeps +0O-gZoirpRA_30.000_40.000.wav 30.000 40.000 Reversing beeps +10aF24rMeu0_30.000_40.000.wav 30.000 40.000 Reversing beeps +1P5FFxXLSpY_30.000_40.000.wav 30.000 40.000 Reversing beeps +1n_s2Gb5R1Q_30.000_40.000.wav 30.000 40.000 Reversing beeps +2HZcxlRs-hg_30.000_40.000.wav 30.000 40.000 Reversing beeps +2Jpg_KvJWL0_30.000_40.000.wav 30.000 40.000 Reversing beeps +2WTk_j_fivY_30.000_40.000.wav 30.000 40.000 Reversing beeps +38F6eeIR-s0_30.000_40.000.wav 30.000 40.000 Reversing beeps +3xh2kScw64U_30.000_40.000.wav 30.000 40.000 Reversing beeps +4MIHbR4QZhE_30.000_40.000.wav 30.000 40.000 Reversing beeps +4Tpy1lsfcSM_30.000_40.000.wav 30.000 40.000 Reversing beeps +4XMY2IvVSf0_30.000_40.000.wav 30.000 40.000 Reversing beeps +4ep09nZl3LA_30.000_40.000.wav 30.000 40.000 Reversing beeps +4t1VqRz4w2g_30.000_40.000.wav 30.000 40.000 Reversing beeps +4tKvAMmAUMM_30.000_40.000.wav 30.000 40.000 Reversing beeps +5-x2pk3YYAs_11.000_21.000.wav 11.000 21.000 Reversing beeps +5DW8WjxxCag_30.000_40.000.wav 30.000 40.000 Reversing beeps +5DjZHCumLfs_11.000_21.000.wav 11.000 21.000 Reversing beeps +5V0xKS-FGMk_30.000_40.000.wav 30.000 40.000 Reversing beeps +5fLzQegwHUg_30.000_40.000.wav 30.000 40.000 Reversing beeps +6Y8bKS6KLeE_30.000_40.000.wav 30.000 40.000 Reversing beeps +6xEHP-C-ZuU_30.000_40.000.wav 30.000 40.000 Reversing beeps +6yyToq9cW9A_60.000_70.000.wav 60.000 70.000 Reversing beeps +7Gua0-UrKIw_30.000_40.000.wav 30.000 40.000 Reversing beeps +7nglQSmcjAk_30.000_40.000.wav 30.000 40.000 Reversing beeps +81DteAPIhoE_30.000_40.000.wav 30.000 40.000 Reversing beeps +96a4smrM_30_30.000_40.000.wav 30.000 40.000 Reversing beeps +9EsgN-WS2qY_30.000_40.000.wav 30.000 40.000 Reversing beeps +9OcAwC8y-eQ_30.000_40.000.wav 30.000 40.000 Reversing beeps +9Ti98L4PRCo_17.000_27.000.wav 17.000 27.000 Reversing beeps +9yhMtJ50sys_30.000_40.000.wav 30.000 40.000 Reversing beeps +A9KMqwqLboE_30.000_40.000.wav 30.000 40.000 Reversing beeps +AFwmMFq_xlc_390.000_400.000.wav 390.000 400.000 Reversing beeps +AvhBRiwWJU4_30.000_40.000.wav 30.000 40.000 Reversing beeps +CL5vkiMs2c0_10.000_20.000.wav 10.000 20.000 Reversing beeps +DcU6AzN7imA_210.000_220.000.wav 210.000 220.000 Reversing beeps +ISBJKY8hwnM_30.000_40.000.wav 30.000 40.000 Reversing beeps +LA5TekLaIPI_10.000_20.000.wav 10.000 20.000 Reversing beeps +NqzZbJJl3E4_30.000_40.000.wav 30.000 40.000 Reversing beeps +PSt0xAYgf4g_0.000_10.000.wav 0.000 10.000 Reversing beeps +Q1CMSV81_ws_30.000_40.000.wav 30.000 40.000 Reversing beeps +_gG0KNGD47M_30.000_40.000.wav 30.000 40.000 Reversing beeps +ckt7YEGcSoY_30.000_40.000.wav 30.000 40.000 Reversing beeps +eIkUuCRE_0U_30.000_40.000.wav 30.000 40.000 Reversing beeps +kH6fFjIZkB0_30.000_40.000.wav 30.000 40.000 Reversing beeps +mCJ0aqIygWE_24.000_34.000.wav 24.000 34.000 Reversing beeps +nFqf1vflJaI_350.000_360.000.wav 350.000 360.000 Reversing beeps +nMaSkwx6cHE_30.000_40.000.wav 30.000 40.000 Reversing beeps +oHKTmTLEy68_11.000_21.000.wav 11.000 21.000 Reversing beeps +saPU2JNoytU_0.000_10.000.wav 0.000 10.000 Reversing beeps +tQd0vFueRKs_30.000_40.000.wav 30.000 40.000 Reversing beeps +vzP6soELj2Q_0.000_10.000.wav 0.000 10.000 Reversing beeps +0x82_HySIVU_30.000_40.000.wav 30.000 40.000 Bicycle +1IQdvfm9SDY_30.000_40.000.wav 30.000 40.000 Bicycle +1_hGvbEiYAs_30.000_40.000.wav 30.000 40.000 Bicycle +26CM8IXODG4_2.000_12.000.wav 2.000 12.000 Bicycle +2f7Ad-XpbnY_30.000_40.000.wav 30.000 40.000 Bicycle +3-a8i_MEUl8_30.000_40.000.wav 30.000 40.000 Bicycle +7KiTXYwaD04_7.000_17.000.wav 7.000 17.000 Bicycle +7gkjn-LLInI_30.000_40.000.wav 30.000 40.000 Bicycle +84flVacRHUI_21.000_31.000.wav 21.000 31.000 Bicycle +9VziOIkNXsE_30.000_40.000.wav 30.000 40.000 Bicycle +ANofTuuN0W0_160.000_170.000.wav 160.000 170.000 Bicycle +B6n0op0sLPA_30.000_40.000.wav 30.000 40.000 Bicycle +D4_zTwsCRds_60.000_70.000.wav 60.000 70.000 Bicycle +DEs_Sp9S1Nw_30.000_40.000.wav 30.000 40.000 Bicycle +GjsxrMRRdfQ_3.000_13.000.wav 3.000 13.000 Bicycle +GkpUU3VX4wQ_30.000_40.000.wav 30.000 40.000 Bicycle +H9HNXYxRmv8_30.000_40.000.wav 30.000 40.000 Bicycle +HPWRKwrs-rY_370.000_380.000.wav 370.000 380.000 Bicycle +HrQxbNO5jXU_6.000_16.000.wav 6.000 16.000 Bicycle +IYaEZkAO0LU_30.000_40.000.wav 30.000 40.000 Bicycle +Idzfy0XbZRo_7.000_17.000.wav 7.000 17.000 Bicycle +Iigfz_GeXVs_30.000_40.000.wav 30.000 40.000 Bicycle +JWCtQ_94YoQ_30.000_40.000.wav 30.000 40.000 Bicycle +JXmBrD4b4EI_30.000_40.000.wav 30.000 40.000 Bicycle +LSZPNwZex9s_30.000_40.000.wav 30.000 40.000 Bicycle +M5kwg1kx4q0_30.000_40.000.wav 30.000 40.000 Bicycle +NrR1wmCpqAk_12.000_22.000.wav 12.000 22.000 Bicycle +O1_Rw2dHb1I_2.000_12.000.wav 2.000 12.000 Bicycle +OEN0TySl1Jw_10.000_20.000.wav 10.000 20.000 Bicycle +PF7uY9ydMYc_30.000_40.000.wav 30.000 40.000 Bicycle +SDl0tWf9Q44_30.000_40.000.wav 30.000 40.000 Bicycle +SkXXjcw9sJI_30.000_40.000.wav 30.000 40.000 Bicycle +Ssa1m5Mnllw_0.000_9.000.wav 0.000 9.000 Bicycle +UB-A1oyNyyg_0.000_6.000.wav 0.000 6.000 Bicycle +UqyvFyQthHo_30.000_40.000.wav 30.000 40.000 Bicycle +Wg4ik5zZxBc_250.000_260.000.wav 250.000 260.000 Bicycle +WvquSD2PcCE_30.000_40.000.wav 30.000 40.000 Bicycle +YIJBuXUi64U_30.000_40.000.wav 30.000 40.000 Bicycle +aBHdl_TiseI_30.000_40.000.wav 30.000 40.000 Bicycle +aeHCq6fFkNo_30.000_40.000.wav 30.000 40.000 Bicycle +amKDjVcs1Vg_30.000_40.000.wav 30.000 40.000 Bicycle +ehYwty_G2L4_13.000_23.000.wav 13.000 23.000 Bicycle +jOlVJv7jAHg_30.000_40.000.wav 30.000 40.000 Bicycle +lGFDQ-ZwUfk_30.000_40.000.wav 30.000 40.000 Bicycle +lmTHvLGQy3g_50.000_60.000.wav 50.000 60.000 Bicycle +nNHW3Uxlb-g_30.000_40.000.wav 30.000 40.000 Bicycle +o98R4ruf8kw_30.000_40.000.wav 30.000 40.000 Bicycle +oiLHBkHgkAo_0.000_8.000.wav 0.000 8.000 Bicycle +qL0ESQcaPhM_30.000_40.000.wav 30.000 40.000 Bicycle +qjz5t9M4YCw_30.000_40.000.wav 30.000 40.000 Bicycle +qrCWPsqG9vA_30.000_40.000.wav 30.000 40.000 Bicycle +r06tmeUDgc8_3.000_13.000.wav 3.000 13.000 Bicycle +sAMjMyCdGOc_30.000_40.000.wav 30.000 40.000 Bicycle +tKdRlWz-1pg_30.000_40.000.wav 30.000 40.000 Bicycle +uNpSMpqlkMA_0.000_10.000.wav 0.000 10.000 Bicycle +vOYj9W7Jsxk_8.000_18.000.wav 8.000 18.000 Bicycle +xBKrmKdjAIA_0.000_10.000.wav 0.000 10.000 Bicycle +xfNeZaw4o3U_17.000_27.000.wav 17.000 27.000 Bicycle +xgiJqbhhU3c_30.000_40.000.wav 30.000 40.000 Bicycle +0vg9qxNKXOw_30.000_40.000.wav 30.000 40.000 Skateboard +10YXuv9Go0E_140.000_150.000.wav 140.000 150.000 Skateboard +3-a8i_MEUl8_30.000_40.000.wav 30.000 40.000 Skateboard +6kXUG1Zo6VA_0.000_10.000.wav 0.000 10.000 Skateboard +84fDGWoRtsU_210.000_220.000.wav 210.000 220.000 Skateboard +8kbHA22EWd0_330.000_340.000.wav 330.000 340.000 Skateboard +8m-a_6wLTkU_230.000_240.000.wav 230.000 240.000 Skateboard +9QwaP-cvdeU_360.000_370.000.wav 360.000 370.000 Skateboard +9ZYj5toEbGA_0.000_10.000.wav 0.000 10.000 Skateboard +9gkppwB5CXA_30.000_40.000.wav 30.000 40.000 Skateboard +9hlXgXWXYXQ_0.000_6.000.wav 0.000 6.000 Skateboard +ALxn5-2bVyI_30.000_40.000.wav 30.000 40.000 Skateboard +ANPjV_rudog_30.000_40.000.wav 30.000 40.000 Skateboard +ATAL-_Dblvg_0.000_7.000.wav 0.000 7.000 Skateboard +An-4jPvUT14_60.000_70.000.wav 60.000 70.000 Skateboard +BGR0QnX4k6w_30.000_40.000.wav 30.000 40.000 Skateboard +BlhUt8AJJO8_30.000_40.000.wav 30.000 40.000 Skateboard +CD7INyI79fM_170.000_180.000.wav 170.000 180.000 Skateboard +CNcxzB9F-Q8_100.000_110.000.wav 100.000 110.000 Skateboard +DqOGYyFVnKk_200.000_210.000.wav 200.000 210.000 Skateboard +E0gBwPTHxqE_30.000_40.000.wav 30.000 40.000 Skateboard +E3XIdP8kxwg_110.000_120.000.wav 110.000 120.000 Skateboard +FQZnQhiM41U_0.000_6.000.wav 0.000 6.000 Skateboard +FRwFfq3Tl1g_310.000_320.000.wav 310.000 320.000 Skateboard +JJo971B_eDg_30.000_40.000.wav 30.000 40.000 Skateboard +KXkxqxoCylc_30.000_40.000.wav 30.000 40.000 Skateboard +L4Z7XkS6CtA_30.000_40.000.wav 30.000 40.000 Skateboard +LjEqr0Z7xm0_0.000_6.000.wav 0.000 6.000 Skateboard +MAbDEeLF4cQ_30.000_40.000.wav 30.000 40.000 Skateboard +MUBbiivNYZs_30.000_40.000.wav 30.000 40.000 Skateboard +Nq8GyBrTI8Y_30.000_40.000.wav 30.000 40.000 Skateboard +PPq9QZmV7jc_25.000_35.000.wav 25.000 35.000 Skateboard +PVgL5wFOKMs_30.000_40.000.wav 30.000 40.000 Skateboard +Tcq_xAdCMr4_30.000_40.000.wav 30.000 40.000 Skateboard +UtZofZjccBs_290.000_300.000.wav 290.000 300.000 Skateboard +VZfrDZhI7BU_30.000_40.000.wav 30.000 40.000 Skateboard +WxChkRrVOIs_0.000_7.000.wav 0.000 7.000 Skateboard +YV0noe1sZAs_150.000_160.000.wav 150.000 160.000 Skateboard +YjScrri_F7U_0.000_10.000.wav 0.000 10.000 Skateboard +YrGQKTbiG1g_30.000_40.000.wav 30.000 40.000 Skateboard +ZM67kt6G-d4_30.000_40.000.wav 30.000 40.000 Skateboard +ZaUaqnLdg6k_30.000_40.000.wav 30.000 40.000 Skateboard +ZhpkRcAEJzc_3.000_13.000.wav 3.000 13.000 Skateboard +_43OOP6UEw0_30.000_40.000.wav 30.000 40.000 Skateboard +_6Fyave4jqA_260.000_270.000.wav 260.000 270.000 Skateboard +aOoZ0bCoaZw_30.000_40.000.wav 30.000 40.000 Skateboard +gV6y9L24wWg_0.000_10.000.wav 0.000 10.000 Skateboard +hHb0Eq1I7Fk_0.000_10.000.wav 0.000 10.000 Skateboard +lGf_L6i6AZI_20.000_30.000.wav 20.000 30.000 Skateboard +leOH87itNWM_30.000_40.000.wav 30.000 40.000 Skateboard +mIkW7mWlnXw_30.000_40.000.wav 30.000 40.000 Skateboard +qadmKrM0ppo_20.000_30.000.wav 20.000 30.000 Skateboard +rLUIHCc4b9A_0.000_7.000.wav 0.000 7.000 Skateboard +u3vBJgEVJvk_0.000_10.000.wav 0.000 10.000 Skateboard +vHKBrtPDSvA_150.000_160.000.wav 150.000 160.000 Skateboard +wWmydRt0Z-w_21.000_31.000.wav 21.000 31.000 Skateboard +xeHt-R5ScmI_0.000_10.000.wav 0.000 10.000 Skateboard +xqGtIVeeXY4_330.000_340.000.wav 330.000 340.000 Skateboard +y_lfY0uzmr0_30.000_40.000.wav 30.000 40.000 Skateboard +02Ak1eIyj3M_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +0N0C0Wbe6AI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +2-h8MRSRvEg_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +4APBvMmKubU_10.000_20.000.wav 10.000 20.000 Ambulance (siren) +5RgHBmX2HLw_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +6rXgD5JlYxY_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +7eeN-fXbso8_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +8Aq2DyLbUBA_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +8qMHvgA9mGw_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +9CRb-PToaAM_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +AwFuGITwrms_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +BGp9-Ro5h8Y_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +CDrpqsGqfPo_10.000_20.000.wav 10.000 20.000 Ambulance (siren) +Cc7-P0py1Mc_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +Daqv2F6SEmQ_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +F9Dbcxr-lAI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +GORjnSWhZeY_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +GgV0yYogTPI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +H9xQQVv3ElI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +LNQ7fzfdLiY_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +MEUcv-QM0cQ_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +QWVub6-0jX4_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +R8G5Y0HASxY_60.000_70.000.wav 60.000 70.000 Ambulance (siren) +RVTKY5KR3ME_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +Sm0pPvXPA9U_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +VXI3-DI4xNs_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +W8fIlauyJkk_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +ZlS4vIWQMmE_0.000_10.000.wav 0.000 10.000 Ambulance (siren) +ZxlbI2Rj1VY_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +ZyuX_gMFiss_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +bA8mt0JI0Ko_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +bIU0X1v4SF0_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +cHm1cYBAXMI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +cR79KnWpiQA_70.000_80.000.wav 70.000 80.000 Ambulance (siren) +dPcw4R5lczw_500.000_510.000.wav 500.000 510.000 Ambulance (siren) +epwDz5WBkvc_80.000_90.000.wav 80.000 90.000 Ambulance (siren) +fHaQPHCjyfA_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +gw9pYEG2Zb0_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +iEX8L_oEbsU_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +iM-U56fTTOQ_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +iSnWMz4FUAg_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +kJuvA2zmrnY_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +kSjvt2Z_pBo_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +ke35yF1LHs4_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +lqGtL8sUo_g_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +mAfPu0meA_Y_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +mlS9LLiMIG8_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +oPR7tUEUptk_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +qsHc2X1toLs_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +rCQykaL8Hy4_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +rhUfN81puDI_0.000_10.000.wav 0.000 10.000 Ambulance (siren) +s0iddDFzL9s_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +tcKlq7_cOkw_8.000_18.000.wav 8.000 18.000 Ambulance (siren) +u3yYpMwG4Us_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +vBXPyBiyJG0_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +vVqUvv1SSu8_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +vYKWnuvq2FI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +ysNK5RVF3Zw_0.000_10.000.wav 0.000 10.000 Ambulance (siren) +z4B14tAqJ4w_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +zbiJEml563w_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +-HxRz4w60-Y_150.000_160.000.wav 150.000 160.000 Fire engine, fire truck (siren) +-_dElQcyJnA_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +0K1mroXg8bs_9.000_19.000.wav 9.000 19.000 Fire engine, fire truck (siren) +0SvSNVatkv0_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +2-h8MRSRvEg_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +31WGUPOYS5g_22.000_32.000.wav 22.000 32.000 Fire engine, fire truck (siren) +3h3_IZWhX0g_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +4APBvMmKubU_10.000_20.000.wav 10.000 20.000 Fire engine, fire truck (siren) +5fjy_2ajEkg_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +6rXgD5JlYxY_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +8Aq2DyLbUBA_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +8DaEd5KbnnA_80.000_90.000.wav 80.000 90.000 Fire engine, fire truck (siren) +ARIVxBOc0BQ_40.000_50.000.wav 40.000 50.000 Fire engine, fire truck (siren) +AwFuGITwrms_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +Bs2KqqI9F_k_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +Cc7-P0py1Mc_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +D4M3YT75ZrQ_90.000_100.000.wav 90.000 100.000 Fire engine, fire truck (siren) +DWXQ_cSUW98_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +Daqv2F6SEmQ_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +DpagxUQwXDo_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +FFSI6Bg2M-Q_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +GORjnSWhZeY_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +GbIuxmaiCOk_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +GgV0yYogTPI_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +H6c8ZDrdUaM_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +H9xQQVv3ElI_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +HQQxGJKg1iM_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +IiCh2H3JtsE_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +InrS4Fdndr4_0.000_10.000.wav 0.000 10.000 Fire engine, fire truck (siren) +JpLA7HY9r3Y_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +MEUcv-QM0cQ_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +PCl-q7lCT_U_50.000_60.000.wav 50.000 60.000 Fire engine, fire truck (siren) +VXI3-DI4xNs_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +Xggsbzzes3M_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +YbiiaDBU-HI_10.000_20.000.wav 10.000 20.000 Fire engine, fire truck (siren) +ZeH6Fc7Y900_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +ZlS4vIWQMmE_0.000_10.000.wav 0.000 10.000 Fire engine, fire truck (siren) +bIU0X1v4SF0_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +cHm1cYBAXMI_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +fHaQPHCjyfA_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +iM-U56fTTOQ_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +k2a30--j37Q_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +kJuvA2zmrnY_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +kr8ssbrDDMY_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +pvYwIdGrS90_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +qsHc2X1toLs_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +rCQykaL8Hy4_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +rhUfN81puDI_0.000_10.000.wav 0.000 10.000 Fire engine, fire truck (siren) +u08iA12iAmM_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +u9aHjYGbl5o_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +uUiZrgUpw2A_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +vBXPyBiyJG0_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +vVqUvv1SSu8_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +vYKWnuvq2FI_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +wD0P-doqkXo_20.000_30.000.wav 20.000 30.000 Fire engine, fire truck (siren) +xbr7x2V6mxk_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +ysNK5RVF3Zw_0.000_10.000.wav 0.000 10.000 Fire engine, fire truck (siren) +z4B14tAqJ4w_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +zpzJKMG5iGc_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +02Ak1eIyj3M_30.000_40.000.wav 30.000 40.000 Civil defense siren +0CJFt950vOk_30.000_40.000.wav 30.000 40.000 Civil defense siren +0phl6nlC-n0_10.000_20.000.wav 10.000 20.000 Civil defense siren +1jhbNtCWC9w_50.000_60.000.wav 50.000 60.000 Civil defense siren +4Ukj2TTJxHM_30.000_40.000.wav 30.000 40.000 Civil defense siren +4XAVaSz_P7c_150.000_160.000.wav 150.000 160.000 Civil defense siren +69AIBPnJN5E_0.000_10.000.wav 0.000 10.000 Civil defense siren +8DaEd5KbnnA_80.000_90.000.wav 80.000 90.000 Civil defense siren +8ILgvaJVPCI_30.000_40.000.wav 30.000 40.000 Civil defense siren +9MWHXCLAX8I_30.000_40.000.wav 30.000 40.000 Civil defense siren +A5y-aZc0CiM_30.000_40.000.wav 30.000 40.000 Civil defense siren +AQCZH4OdNSM_30.000_40.000.wav 30.000 40.000 Civil defense siren +AVBUh6qeHrQ_30.000_40.000.wav 30.000 40.000 Civil defense siren +BhQPDafekdw_30.000_40.000.wav 30.000 40.000 Civil defense siren +CJXNdudcJrs_30.000_40.000.wav 30.000 40.000 Civil defense siren +CU2MyVM_B48_30.000_40.000.wav 30.000 40.000 Civil defense siren +DdZw0XDv0JI_30.000_40.000.wav 30.000 40.000 Civil defense siren +DgWHUawAGnI_30.000_40.000.wav 30.000 40.000 Civil defense siren +Do9Dffb6vHA_30.000_40.000.wav 30.000 40.000 Civil defense siren +GO2zKyMtBV4_30.000_40.000.wav 30.000 40.000 Civil defense siren +GeRgy4of730_30.000_40.000.wav 30.000 40.000 Civil defense siren +IIypdzgZAaI_30.000_40.000.wav 30.000 40.000 Civil defense siren +JpLA7HY9r3Y_30.000_40.000.wav 30.000 40.000 Civil defense siren +JqHJ7015aWM_30.000_40.000.wav 30.000 40.000 Civil defense siren +K7a1P4RX_5w_30.000_40.000.wav 30.000 40.000 Civil defense siren +KrTocA-I550_190.000_200.000.wav 190.000 200.000 Civil defense siren +KumYcZVLOVU_350.000_360.000.wav 350.000 360.000 Civil defense siren +L60HS_jbZu0_30.000_40.000.wav 30.000 40.000 Civil defense siren +MZ1Yh6mRC-E_30.000_40.000.wav 30.000 40.000 Civil defense siren +R8XUrRCFkzs_30.000_40.000.wav 30.000 40.000 Civil defense siren +SyWbolNFst4_60.000_70.000.wav 60.000 70.000 Civil defense siren +TYLZuBBu8ms_0.000_10.000.wav 0.000 10.000 Civil defense siren +Tx6eSkU2lKc_30.000_40.000.wav 30.000 40.000 Civil defense siren +VcflBZLflSU_130.000_140.000.wav 130.000 140.000 Civil defense siren +WXsTHg_DiYA_30.000_40.000.wav 30.000 40.000 Civil defense siren +Wz5ffJxCElQ_10.000_20.000.wav 10.000 20.000 Civil defense siren +X2MlmcY8UZU_30.000_40.000.wav 30.000 40.000 Civil defense siren +XYLheTmlEYI_30.000_40.000.wav 30.000 40.000 Civil defense siren +YyxlD_FwZXM_30.000_40.000.wav 30.000 40.000 Civil defense siren +adCuLs-4nmI_30.000_40.000.wav 30.000 40.000 Civil defense siren +cPjtrTq3F-I_30.000_40.000.wav 30.000 40.000 Civil defense siren +eHDm93tI4Ok_30.000_40.000.wav 30.000 40.000 Civil defense siren +etppP5Sdo14_30.000_40.000.wav 30.000 40.000 Civil defense siren +fRKxUc1gQBw_50.000_60.000.wav 50.000 60.000 Civil defense siren +feIue4LHzfM_30.000_40.000.wav 30.000 40.000 Civil defense siren +gr-Yen6Sj_Q_0.000_10.000.wav 0.000 10.000 Civil defense siren +hl3Kqi9Wi_g_30.000_40.000.wav 30.000 40.000 Civil defense siren +iKca2cbowd4_30.000_40.000.wav 30.000 40.000 Civil defense siren +kzFyGWdj6MI_30.000_40.000.wav 30.000 40.000 Civil defense siren +m3LGopSVju4_30.000_40.000.wav 30.000 40.000 Civil defense siren +ne4IMxs-hMk_30.000_40.000.wav 30.000 40.000 Civil defense siren +nuu2iNisoQc_6.000_16.000.wav 6.000 16.000 Civil defense siren +oYeql9xE19k_30.000_40.000.wav 30.000 40.000 Civil defense siren +rGUrM19BnJ8_110.000_120.000.wav 110.000 120.000 Civil defense siren +u08iA12iAmM_30.000_40.000.wav 30.000 40.000 Civil defense siren +uCRAnDBXxgI_30.000_40.000.wav 30.000 40.000 Civil defense siren +vQG4HZR2KSk_30.000_40.000.wav 30.000 40.000 Civil defense siren +vjsG5b2yNzc_190.000_200.000.wav 190.000 200.000 Civil defense siren +yO7guxGY-_k_30.000_40.000.wav 30.000 40.000 Civil defense siren +-9GUUhB3QV0_30.000_40.000.wav 30.000 40.000 Police car (siren) +-HxRz4w60-Y_150.000_160.000.wav 150.000 160.000 Police car (siren) +-UBVqmhbT50_30.000_40.000.wav 30.000 40.000 Police car (siren) +-_dElQcyJnA_30.000_40.000.wav 30.000 40.000 Police car (siren) +0N0C0Wbe6AI_30.000_40.000.wav 30.000 40.000 Police car (siren) +0SvSNVatkv0_30.000_40.000.wav 30.000 40.000 Police car (siren) +145N68nh4m0_120.000_130.000.wav 120.000 130.000 Police car (siren) +2-h8MRSRvEg_30.000_40.000.wav 30.000 40.000 Police car (siren) +31WGUPOYS5g_22.000_32.000.wav 22.000 32.000 Police car (siren) +5RgHBmX2HLw_30.000_40.000.wav 30.000 40.000 Police car (siren) +6rXgD5JlYxY_30.000_40.000.wav 30.000 40.000 Police car (siren) +8Aq2DyLbUBA_30.000_40.000.wav 30.000 40.000 Police car (siren) +8DaEd5KbnnA_80.000_90.000.wav 80.000 90.000 Police car (siren) +8E7okHnCcTA_30.000_40.000.wav 30.000 40.000 Police car (siren) +9CRb-PToaAM_30.000_40.000.wav 30.000 40.000 Police car (siren) +9OFUd38sBNM_0.000_8.000.wav 0.000 8.000 Police car (siren) +AQCZH4OdNSM_30.000_40.000.wav 30.000 40.000 Police car (siren) +AwFuGITwrms_30.000_40.000.wav 30.000 40.000 Police car (siren) +CDrpqsGqfPo_10.000_20.000.wav 10.000 20.000 Police car (siren) +DK_6C29B2zs_14.000_24.000.wav 14.000 24.000 Police car (siren) +GORjnSWhZeY_30.000_40.000.wav 30.000 40.000 Police car (siren) +GgV0yYogTPI_30.000_40.000.wav 30.000 40.000 Police car (siren) +H6c8ZDrdUaM_30.000_40.000.wav 30.000 40.000 Police car (siren) +H7lOMlND9dc_30.000_40.000.wav 30.000 40.000 Police car (siren) +H9xQQVv3ElI_30.000_40.000.wav 30.000 40.000 Police car (siren) +IiCh2H3JtsE_30.000_40.000.wav 30.000 40.000 Police car (siren) +InrS4Fdndr4_0.000_10.000.wav 0.000 10.000 Police car (siren) +JgDuU9kpHpM_30.000_40.000.wav 30.000 40.000 Police car (siren) +JpLA7HY9r3Y_30.000_40.000.wav 30.000 40.000 Police car (siren) +LNQ7fzfdLiY_30.000_40.000.wav 30.000 40.000 Police car (siren) +PCl-q7lCT_U_50.000_60.000.wav 50.000 60.000 Police car (siren) +QWVub6-0jX4_30.000_40.000.wav 30.000 40.000 Police car (siren) +Wak5QxsS-QU_30.000_40.000.wav 30.000 40.000 Police car (siren) +YbiiaDBU-HI_10.000_20.000.wav 10.000 20.000 Police car (siren) +Z34SD-OEpJI_10.000_20.000.wav 10.000 20.000 Police car (siren) +ZeH6Fc7Y900_30.000_40.000.wav 30.000 40.000 Police car (siren) +ZlS4vIWQMmE_0.000_10.000.wav 0.000 10.000 Police car (siren) +ZyuX_gMFiss_30.000_40.000.wav 30.000 40.000 Police car (siren) +bIU0X1v4SF0_30.000_40.000.wav 30.000 40.000 Police car (siren) +eIMjkADTWzA_60.000_70.000.wav 60.000 70.000 Police car (siren) +epwDz5WBkvc_80.000_90.000.wav 80.000 90.000 Police car (siren) +fHaQPHCjyfA_30.000_40.000.wav 30.000 40.000 Police car (siren) +fNcrlqPrAqM_30.000_40.000.wav 30.000 40.000 Police car (siren) +g_DBLppDZAs_30.000_40.000.wav 30.000 40.000 Police car (siren) +gw9pYEG2Zb0_20.000_30.000.wav 20.000 30.000 Police car (siren) +iEX8L_oEbsU_30.000_40.000.wav 30.000 40.000 Police car (siren) +iM-U56fTTOQ_30.000_40.000.wav 30.000 40.000 Police car (siren) +kJuvA2zmrnY_30.000_40.000.wav 30.000 40.000 Police car (siren) +kSjvt2Z_pBo_30.000_40.000.wav 30.000 40.000 Police car (siren) +lqGtL8sUo_g_30.000_40.000.wav 30.000 40.000 Police car (siren) +mAfPu0meA_Y_20.000_30.000.wav 20.000 30.000 Police car (siren) +mlS9LLiMIG8_30.000_40.000.wav 30.000 40.000 Police car (siren) +pzup58Eyhuo_30.000_40.000.wav 30.000 40.000 Police car (siren) +rCQykaL8Hy4_30.000_40.000.wav 30.000 40.000 Police car (siren) +rhUfN81puDI_0.000_10.000.wav 0.000 10.000 Police car (siren) +u08iA12iAmM_30.000_40.000.wav 30.000 40.000 Police car (siren) +u3yYpMwG4Us_30.000_40.000.wav 30.000 40.000 Police car (siren) +u9aHjYGbl5o_30.000_40.000.wav 30.000 40.000 Police car (siren) +uUiZrgUpw2A_30.000_40.000.wav 30.000 40.000 Police car (siren) +vYKWnuvq2FI_30.000_40.000.wav 30.000 40.000 Police car (siren) +xbr7x2V6mxk_30.000_40.000.wav 30.000 40.000 Police car (siren) +z4B14tAqJ4w_30.000_40.000.wav 30.000 40.000 Police car (siren) +-FKrYTj_eCU_0.000_10.000.wav 0.000 10.000 Screaming +0G50t4FlbIA_60.000_70.000.wav 60.000 70.000 Screaming +1LTxZ2aNytc_30.000_40.000.wav 30.000 40.000 Screaming +2FEhG1UXb_E_370.000_380.000.wav 370.000 380.000 Screaming +45vBbOhzS6g_50.000_60.000.wav 50.000 60.000 Screaming +4PYTtp78Ig0_60.000_70.000.wav 60.000 70.000 Screaming +5QNq0IEPICQ_30.000_40.000.wav 30.000 40.000 Screaming +5YcIJuYQECc_0.000_6.000.wav 0.000 6.000 Screaming +5kQF4r03yRI_0.000_6.000.wav 0.000 6.000 Screaming +7ARVgI_wx5Y_30.000_40.000.wav 30.000 40.000 Screaming +AIFvFuZPr68_30.000_40.000.wav 30.000 40.000 Screaming +Aw43FUCkIb8_20.000_30.000.wav 20.000 30.000 Screaming +AxM2BofYfPY_30.000_40.000.wav 30.000 40.000 Screaming +BFqHyCoypfM_16.000_26.000.wav 16.000 26.000 Screaming +Bk_xS_fKCpk_30.000_40.000.wav 30.000 40.000 Screaming +C4YMjmJ7tt4_90.000_100.000.wav 90.000 100.000 Screaming +CMWoAvgD0A0_9.000_19.000.wav 9.000 19.000 Screaming +DZfYFhywhRs_30.000_40.000.wav 30.000 40.000 Screaming +ElJFYwRtrH4_30.000_40.000.wav 30.000 40.000 Screaming +FcUVtXJMkJs_30.000_40.000.wav 30.000 40.000 Screaming +G--718JDmAQ_0.000_10.000.wav 0.000 10.000 Screaming +GPJ1uQwmNHk_30.000_40.000.wav 30.000 40.000 Screaming +H3vSRzkG82U_30.000_40.000.wav 30.000 40.000 Screaming +HS28EUWt8dE_110.000_120.000.wav 110.000 120.000 Screaming +KkGTB8ESMCM_0.000_10.000.wav 0.000 10.000 Screaming +MQ0YasvMcuQ_1.000_11.000.wav 1.000 11.000 Screaming +Msl9dI5yweA_90.000_100.000.wav 90.000 100.000 Screaming +Ntn6YvZM3kA_0.000_10.000.wav 0.000 10.000 Screaming +NwTHlpXdk4M_30.000_40.000.wav 30.000 40.000 Screaming +OHjfSfqa804_0.000_10.000.wav 0.000 10.000 Screaming +OzWJuqG2F3Y_30.000_40.000.wav 30.000 40.000 Screaming +QDW_uCMnMMU_0.000_8.000.wav 0.000 8.000 Screaming +SxI3Lnzzmkw_110.000_120.000.wav 110.000 120.000 Screaming +TVvbfuGu9eM_70.000_80.000.wav 70.000 80.000 Screaming +YCk9F0Uq3BE_70.000_80.000.wav 70.000 80.000 Screaming +Z54pSnNw2iM_30.000_40.000.wav 30.000 40.000 Screaming +a59ivTlYoNk_310.000_320.000.wav 310.000 320.000 Screaming +auC_LgwFF8g_30.000_40.000.wav 30.000 40.000 Screaming +bi8R9JbF2cc_80.000_90.000.wav 80.000 90.000 Screaming +cdbYsoEasio_70.000_80.000.wav 70.000 80.000 Screaming +dfsvT5xImNg_80.000_90.000.wav 80.000 90.000 Screaming +e2AaF6siR1A_540.000_550.000.wav 540.000 550.000 Screaming +gB1ytjgpcW4_190.000_200.000.wav 190.000 200.000 Screaming +gE-0JxMtUh0_20.000_30.000.wav 20.000 30.000 Screaming +hWiGgsuGnzs_100.000_110.000.wav 100.000 110.000 Screaming +l-iIfi3SNpw_120.000_130.000.wav 120.000 130.000 Screaming +mT-f0lGk-JM_30.000_40.000.wav 30.000 40.000 Screaming +nApE_Biu13k_10.000_20.000.wav 10.000 20.000 Screaming +nRMmafPUAEU_80.000_90.000.wav 80.000 90.000 Screaming +nYAbLuyqPis_30.000_40.000.wav 30.000 40.000 Screaming +nlYlNF30bVg_30.000_40.000.wav 30.000 40.000 Screaming +sUp-UXzgmrA_0.000_10.000.wav 0.000 10.000 Screaming +syIwNMo2TUA_0.000_7.000.wav 0.000 7.000 Screaming +uTu0a1wd9-M_21.000_31.000.wav 21.000 31.000 Screaming +xVG7dfH5DL0_320.000_330.000.wav 320.000 330.000 Screaming +xvAQ44hx3_k_220.000_230.000.wav 220.000 230.000 Screaming +yNTkb2zgA_M_70.000_80.000.wav 70.000 80.000 Screaming +zCdOEvduBTo_30.000_40.000.wav 30.000 40.000 Screaming +zMICvbCJ6zc_550.000_560.000.wav 550.000 560.000 Screaming +-0RWZT-miFs_420.000_430.000.wav 420.000 430.000 Car +-1pRmoJIGQc_11.000_21.000.wav 11.000 21.000 Car +-7eDqv-6AKQ_30.000_40.000.wav 30.000 40.000 Car +-CZ1LIc8aos_20.000_30.000.wav 20.000 30.000 Car +-HWygXWSNRA_30.000_40.000.wav 30.000 40.000 Car +-PVEno65928_30.000_40.000.wav 30.000 40.000 Car +-WgJ-M292Yc_30.000_40.000.wav 30.000 40.000 Car +0O-gZoirpRA_30.000_40.000.wav 30.000 40.000 Car +0QwxnzHf_0E_30.000_40.000.wav 30.000 40.000 Car +0bg1nzEVdgY_0.000_10.000.wav 0.000 10.000 Car +0lpPdWvg7Eo_0.000_10.000.wav 0.000 10.000 Car +11Pn3yJifSQ_4.000_14.000.wav 4.000 14.000 Car +1BgqrhbyRFw_30.000_40.000.wav 30.000 40.000 Car +1F9zCsJyw6k_430.000_440.000.wav 430.000 440.000 Car +1HayoASR-54_80.000_90.000.wav 80.000 90.000 Car +1P5FFxXLSpY_30.000_40.000.wav 30.000 40.000 Car +1hIg-Lsvc7Q_30.000_40.000.wav 30.000 40.000 Car +27m49pmJ8Og_370.000_380.000.wav 370.000 380.000 Car +2E_N8lnoVKE_30.000_40.000.wav 30.000 40.000 Car +2Fdau5KTEls_30.000_40.000.wav 30.000 40.000 Car +2STASUlGAjs_30.000_40.000.wav 30.000 40.000 Car +2fi0m8ei_B4_30.000_40.000.wav 30.000 40.000 Car +2uMXfAIMeN0_180.000_190.000.wav 180.000 190.000 Car +32V2zsK7GME_110.000_120.000.wav 110.000 120.000 Car +3YChVhqW42E_130.000_140.000.wav 130.000 140.000 Car +3_OLj6XChvM_30.000_40.000.wav 30.000 40.000 Car +3hLxPQpmfQo_30.000_40.000.wav 30.000 40.000 Car +3mDPQ_CPopw_30.000_40.000.wav 30.000 40.000 Car +3mor5mPSYoU_7.000_17.000.wav 7.000 17.000 Car +3xh2kScw64U_30.000_40.000.wav 30.000 40.000 Car +40s88hEcn5I_170.000_180.000.wav 170.000 180.000 Car +42P93B_GzGA_30.000_40.000.wav 30.000 40.000 Car +4KZWpXlcpM4_60.000_70.000.wav 60.000 70.000 Car +4TshFWSsrn8_290.000_300.000.wav 290.000 300.000 Car +4WRgvRI06zc_30.000_40.000.wav 30.000 40.000 Car +4aJfQpHt9lY_160.000_170.000.wav 160.000 170.000 Car +4hd2CLrzCZs_30.000_40.000.wav 30.000 40.000 Car +4zCHl7pRsNY_30.000_40.000.wav 30.000 40.000 Car +5RgHBmX2HLw_30.000_40.000.wav 30.000 40.000 Car +5oirFKi6Sfo_190.000_200.000.wav 190.000 200.000 Car +5vmxFp1r1ZM_30.000_40.000.wav 30.000 40.000 Car +5z1rE_l-0Ow_0.000_8.000.wav 0.000 8.000 Car +620GoTv5Ic8_30.000_40.000.wav 30.000 40.000 Car +6BitLl5Bnxw_30.000_40.000.wav 30.000 40.000 Car +6FVA4hqp1Ro_30.000_40.000.wav 30.000 40.000 Car +6U942AYlcXA_30.000_40.000.wav 30.000 40.000 Car +6b2ZMMrLTz8_5.000_15.000.wav 5.000 15.000 Car +6ibh38autyA_30.000_40.000.wav 30.000 40.000 Car +6kuESYFcEqw_30.000_40.000.wav 30.000 40.000 Car +73cuZZq-J3w_20.000_30.000.wav 20.000 30.000 Car +764IcMEMVUk_90.000_100.000.wav 90.000 100.000 Car +7NH1WJlSiYI_30.000_40.000.wav 30.000 40.000 Car +7lJu9wEsErY_220.000_230.000.wav 220.000 230.000 Car +8CqqK9CzuXM_30.000_40.000.wav 30.000 40.000 Car +8SYLYWR47EE_30.000_40.000.wav 30.000 40.000 Car +8Wk-ZmlsUqY_28.000_38.000.wav 28.000 38.000 Car +8q8JrJNAa-Q_30.000_40.000.wav 30.000 40.000 Car +8rMlNbKlp_s_0.000_10.000.wav 0.000 10.000 Car +8sGJFPr2Nmc_30.000_40.000.wav 30.000 40.000 Car +8yRROnG0-lA_30.000_40.000.wav 30.000 40.000 Car +9Ti98L4PRCo_17.000_27.000.wav 17.000 27.000 Car +9fzAWj5YJ9c_30.000_40.000.wav 30.000 40.000 Car +9rq8h4oMJ98_30.000_40.000.wav 30.000 40.000 Car +9ye2Fn62xDc_60.000_70.000.wav 60.000 70.000 Car +ACGuC6SH4V4_150.000_160.000.wav 150.000 160.000 Car +AFz5TIs_Gug_30.000_40.000.wav 30.000 40.000 Car +AedlWfHafgw_21.000_31.000.wav 21.000 31.000 Car +AlsDSDTiaWI_30.000_40.000.wav 30.000 40.000 Car +B3SkK0wuOhY_130.000_140.000.wav 130.000 140.000 Car +B9n4a5ciI48_16.000_26.000.wav 16.000 26.000 Car +BAekfGvUtFM_30.000_40.000.wav 30.000 40.000 Car +BNLOvQbrPdc_290.000_300.000.wav 290.000 300.000 Car +BS1fqEDAvh0_330.000_340.000.wav 330.000 340.000 Car +Bqx_SZgCzZw_10.000_20.000.wav 10.000 20.000 Car +CZB6WXDuM1g_30.000_40.000.wav 30.000 40.000 Car +C_pnsyNXphA_30.000_40.000.wav 30.000 40.000 Car +Ck5ZjBf1nLM_30.000_40.000.wav 30.000 40.000 Car +CqNyeZeHb8Y_30.000_40.000.wav 30.000 40.000 Car +Cs1d7Ibk8CA_220.000_230.000.wav 220.000 230.000 Car +CuS-ok0xG9g_0.000_10.000.wav 0.000 10.000 Car +CuaBHNKycvI_30.000_40.000.wav 30.000 40.000 Car +Cwur_jvxMzY_360.000_370.000.wav 360.000 370.000 Car +DEGSyVygE98_110.000_120.000.wav 110.000 120.000 Car +DLxTYAUifjU_30.000_40.000.wav 30.000 40.000 Car +DkKpnvJk9u0_30.000_40.000.wav 30.000 40.000 Car +DkVfro9iq80_30.000_40.000.wav 30.000 40.000 Car +Dw1q9rBv7oU_30.000_40.000.wav 30.000 40.000 Car +E8NgxTz1d90_30.000_40.000.wav 30.000 40.000 Car +ExqedxdXuBc_70.000_80.000.wav 70.000 80.000 Car +FCxEMSNSEuI_160.000_170.000.wav 160.000 170.000 Car +FEoMTMxzn3U_30.000_40.000.wav 30.000 40.000 Car +FFSWmryaZ60_30.000_40.000.wav 30.000 40.000 Car +FYk2paHPSdg_30.000_40.000.wav 30.000 40.000 Car +Fo_FDiZhzDo_30.000_40.000.wav 30.000 40.000 Car +GteozUDpJRc_30.000_40.000.wav 30.000 40.000 Car +GwBS2NzjAvA_30.000_40.000.wav 30.000 40.000 Car +H8d1mZOqb1c_110.000_120.000.wav 110.000 120.000 Car +HFF_PpqLQ9w_30.000_40.000.wav 30.000 40.000 Car +HHlb-h2Pc7o_30.000_40.000.wav 30.000 40.000 Car +Hu8lxbHYaqg_40.000_50.000.wav 40.000 50.000 Car +I-HlrcP6Qg4_30.000_40.000.wav 30.000 40.000 Car +I7vs2H-Htt8_480.000_490.000.wav 480.000 490.000 Car +IblhEF_MiH8_400.000_410.000.wav 400.000 410.000 Car +JgXnbgS_XBk_480.000_490.000.wav 480.000 490.000 Car +Ju7Kg_H2iZQ_30.000_40.000.wav 30.000 40.000 Car +KiCB6pP6EEo_100.000_110.000.wav 100.000 110.000 Car +Kwpn3utYEHM_30.000_40.000.wav 30.000 40.000 Car +Ky9Kw-0XwAs_30.000_40.000.wav 30.000 40.000 Car +KzKDk-UgS54_30.000_40.000.wav 30.000 40.000 Car +L1qC8DicAZE_70.000_80.000.wav 70.000 80.000 Car +L4N0LOYZrFo_30.000_40.000.wav 30.000 40.000 Car +L535vIV3ED4_40.000_50.000.wav 40.000 50.000 Car +L9YtOeck3A0_0.000_10.000.wav 0.000 10.000 Car +LEtkHiZZugk_30.000_40.000.wav 30.000 40.000 Car +LLkNFGrrgUo_30.000_40.000.wav 30.000 40.000 Car +LhRNnXaSsCk_30.000_40.000.wav 30.000 40.000 Car +M7NvD1WJQ7o_70.000_80.000.wav 70.000 80.000 Car +M8BFtmQRHq4_200.000_210.000.wav 200.000 210.000 Car +Mxn2FKuNwiI_20.000_30.000.wav 20.000 30.000 Car +NMqSBlEq14Q_30.000_40.000.wav 30.000 40.000 Car +NoPbk9fy6uw_10.000_20.000.wav 10.000 20.000 Car +O36torHptH4_30.000_40.000.wav 30.000 40.000 Car +OBwh-KGukE8_30.000_40.000.wav 30.000 40.000 Car +Oa2Os8eOUjs_30.000_40.000.wav 30.000 40.000 Car +PNaLTW50fxM_60.000_70.000.wav 60.000 70.000 Car +PfXdcsW8dJI_540.000_550.000.wav 540.000 550.000 Car +QAWuHvVCI6g_30.000_40.000.wav 30.000 40.000 Car +QBMDnMRwQCc_70.000_80.000.wav 70.000 80.000 Car +QzrS-S7OerE_370.000_380.000.wav 370.000 380.000 Car +R0BtkTm_CPI_30.000_40.000.wav 30.000 40.000 Car +SEHxfje9Eio_30.000_40.000.wav 30.000 40.000 Car +Sb3V17F8xU8_360.000_370.000.wav 360.000 370.000 Car +SkbFczIabRY_30.000_40.000.wav 30.000 40.000 Car +SqWkV-UQ6CI_30.000_40.000.wav 30.000 40.000 Car +TWDytzefXXc_10.000_20.000.wav 10.000 20.000 Car +Tv67JhZDAYs_30.000_40.000.wav 30.000 40.000 Car +VTwVF3xRSWg_12.000_22.000.wav 12.000 22.000 Car +VulCKZgWspc_570.000_580.000.wav 570.000 580.000 Car +Vx6mttDHWfo_30.000_40.000.wav 30.000 40.000 Car +W11cJ9HZNaY_30.000_40.000.wav 30.000 40.000 Car +WLXQgcx8qTI_30.000_40.000.wav 30.000 40.000 Car +WMbdMQ7rdFs_30.000_40.000.wav 30.000 40.000 Car +WZoQD6cInx8_360.000_370.000.wav 360.000 370.000 Car +WffmaOr2p8I_30.000_40.000.wav 30.000 40.000 Car +WoynilrteLU_30.000_40.000.wav 30.000 40.000 Car +WxrKq0aI0iM_130.000_140.000.wav 130.000 140.000 Car +X60eVxecY3I_30.000_40.000.wav 30.000 40.000 Car +X8fEzx-fA0U_80.000_90.000.wav 80.000 90.000 Car +XVxlZqwWcBI_10.000_20.000.wav 10.000 20.000 Car +Xnd8ERrynEo_120.000_130.000.wav 120.000 130.000 Car +XqXLI7bDb-I_0.000_7.000.wav 0.000 7.000 Car +XyCjByHuDIk_260.000_270.000.wav 260.000 270.000 Car +XzE7mp3pVik_0.000_10.000.wav 0.000 10.000 Car +Y5e8BW513ww_20.000_30.000.wav 20.000 30.000 Car +YJdBwuIn4Ec_30.000_40.000.wav 30.000 40.000 Car +YTFJUFWcRns_30.000_40.000.wav 30.000 40.000 Car +YY9aConw2QE_0.000_10.000.wav 0.000 10.000 Car +Yc_WuISxfLI_30.000_40.000.wav 30.000 40.000 Car +Ys_rO2Ieg1U_30.000_40.000.wav 30.000 40.000 Car +Z34SD-OEpJI_10.000_20.000.wav 10.000 20.000 Car +Z8cigemT5_g_210.000_220.000.wav 210.000 220.000 Car +ZJW7ymsioQc_16.000_26.000.wav 16.000 26.000 Car +ZY6A9ZDkudg_130.000_140.000.wav 130.000 140.000 Car +_Mw9lKigni4_30.000_40.000.wav 30.000 40.000 Car +_ZiJA6phEq8_30.000_40.000.wav 30.000 40.000 Car +_yU0-fmspFY_210.000_220.000.wav 210.000 220.000 Car +a5vTn5286-A_80.000_90.000.wav 80.000 90.000 Car +aCX6vJhHO2c_30.000_40.000.wav 30.000 40.000 Car +aHEAK0iWqKk_180.000_190.000.wav 180.000 190.000 Car +aOVPHKqKjyQ_90.000_100.000.wav 90.000 100.000 Car +aUq4glO5ryE_30.000_40.000.wav 30.000 40.000 Car +aW3DY8XDrmw_22.000_32.000.wav 22.000 32.000 Car +aa4uhPvKviY_30.000_40.000.wav 30.000 40.000 Car +akgqVmFFDiY_30.000_40.000.wav 30.000 40.000 Car +buOEFwXhoe0_310.000_320.000.wav 310.000 320.000 Car +cHCIoXF7moA_30.000_40.000.wav 30.000 40.000 Car +cW859JAzVZ0_30.000_40.000.wav 30.000 40.000 Car +cbYZQRz09bc_390.000_400.000.wav 390.000 400.000 Car +d-do1XZ8f_E_30.000_40.000.wav 30.000 40.000 Car +d3gMwtMK6Gs_30.000_40.000.wav 30.000 40.000 Car +d6AioJ8CkTc_30.000_40.000.wav 30.000 40.000 Car +dAud19zNZyw_190.000_200.000.wav 190.000 200.000 Car +dC1TVxwiitc_30.000_40.000.wav 30.000 40.000 Car +dFqOBLxhEl8_20.000_30.000.wav 20.000 30.000 Car +dSfcznv4KLo_30.000_40.000.wav 30.000 40.000 Car +dThSTe35jb0_50.000_60.000.wav 50.000 60.000 Car +dfwr8wgZU8M_40.000_50.000.wav 40.000 50.000 Car +dmJH84FnQa8_30.000_40.000.wav 30.000 40.000 Car +e9xPBfEJni8_230.000_240.000.wav 230.000 240.000 Car +eAl9WwRaWUE_30.000_40.000.wav 30.000 40.000 Car +eAt6si6k65c_30.000_40.000.wav 30.000 40.000 Car +eHiqCLHmoxI_0.000_8.000.wav 0.000 8.000 Car +eV5JX81GzqA_150.000_160.000.wav 150.000 160.000 Car +er1vQ-nse_g_30.000_40.000.wav 30.000 40.000 Car +eyFPHlybqDg_30.000_40.000.wav 30.000 40.000 Car +f70nsY7ThBA_220.000_230.000.wav 220.000 230.000 Car +fJLCT3xDGxA_30.000_40.000.wav 30.000 40.000 Car +fZMPDCNyQxE_30.000_40.000.wav 30.000 40.000 Car +f__6chtFRM0_30.000_40.000.wav 30.000 40.000 Car +fdDTuo_COG8_90.000_100.000.wav 90.000 100.000 Car +gFJjYWXeBn0_30.000_40.000.wav 30.000 40.000 Car +g_DBLppDZAs_30.000_40.000.wav 30.000 40.000 Car +gaFQgJLQHtU_90.000_100.000.wav 90.000 100.000 Car +gc6VlixMHXE_30.000_40.000.wav 30.000 40.000 Car +hN1ykzC8kZM_30.000_40.000.wav 30.000 40.000 Car +hQ_yyPI46FI_11.000_21.000.wav 11.000 21.000 Car +haiMRJEH-Aw_0.000_9.000.wav 0.000 9.000 Car +hsC_sT0A4XM_30.000_40.000.wav 30.000 40.000 Car +ihQDd1CqFBw_70.000_80.000.wav 70.000 80.000 Car +ii87iO6JboA_10.000_20.000.wav 10.000 20.000 Car +j2R1zurR39E_30.000_40.000.wav 30.000 40.000 Car +j42ETHcp044_0.000_10.000.wav 0.000 10.000 Car +j7OEpDiK3IA_30.000_40.000.wav 30.000 40.000 Car +jCeUZwd8b2w_0.000_10.000.wav 0.000 10.000 Car +jZxusrD28rM_30.000_40.000.wav 30.000 40.000 Car +kdDgTDfo9HY_100.000_110.000.wav 100.000 110.000 Car +l6_h_YHuTbY_30.000_40.000.wav 30.000 40.000 Car +lRrv5m9Xu4k_30.000_40.000.wav 30.000 40.000 Car +lb1awXgoyQE_0.000_10.000.wav 0.000 10.000 Car +llZBUsAwRWc_30.000_40.000.wav 30.000 40.000 Car +lu5teS1j1RQ_0.000_10.000.wav 0.000 10.000 Car +mCmjh_EJtb4_30.000_40.000.wav 30.000 40.000 Car +nFqf1vflJaI_350.000_360.000.wav 350.000 360.000 Car +njodYtK0Hqg_30.000_40.000.wav 30.000 40.000 Car +noymXcxyxis_30.000_40.000.wav 30.000 40.000 Car +o2CmtHNUrXg_30.000_40.000.wav 30.000 40.000 Car +oPJVdi0cqNE_30.000_40.000.wav 30.000 40.000 Car +oxJYMzEmtk4_10.000_20.000.wav 10.000 20.000 Car +pPnLErF3GOY_30.000_40.000.wav 30.000 40.000 Car +pXX6cK4xtiY_11.000_21.000.wav 11.000 21.000 Car +qC5M7BAsKOA_0.000_10.000.wav 0.000 10.000 Car +qg4WxBm8h_w_510.000_520.000.wav 510.000 520.000 Car +qxLdv8u_Ujw_0.000_5.000.wav 0.000 5.000 Car +rgeu0Gtf3Es_40.000_50.000.wav 40.000 50.000 Car +s3-i5eUpe6c_30.000_40.000.wav 30.000 40.000 Car +s5s3aR8Z7I8_350.000_360.000.wav 350.000 360.000 Car +syCQldBsAtg_30.000_40.000.wav 30.000 40.000 Car +tAfucDIyRiM_30.000_40.000.wav 30.000 40.000 Car +teoER4j9H14_290.000_300.000.wav 290.000 300.000 Car +uFSkczD2i14_30.000_40.000.wav 30.000 40.000 Car +uUyB4q7jgn4_30.000_40.000.wav 30.000 40.000 Car +uYqlVTlSgbM_40.000_50.000.wav 40.000 50.000 Car +v8Kry1CbTkM_310.000_320.000.wav 310.000 320.000 Car +vF2zXcbADUk_20.000_30.000.wav 20.000 30.000 Car +vHlqKDR7ggA_30.000_40.000.wav 30.000 40.000 Car +vPDXFKcdaS4_0.000_10.000.wav 0.000 10.000 Car +vW1nk4o9u5g_30.000_40.000.wav 30.000 40.000 Car +vdFYBSlmsXw_30.000_40.000.wav 30.000 40.000 Car +vtE1J8HsCUs_30.000_40.000.wav 30.000 40.000 Car +w0vy1YvNcOg_30.000_40.000.wav 30.000 40.000 Car +wDKrcZ7xLY8_80.000_90.000.wav 80.000 90.000 Car +wM-sBzIDzok_30.000_40.000.wav 30.000 40.000 Car +wUY4eWJt17w_30.000_40.000.wav 30.000 40.000 Car +we66pU0MN1M_30.000_40.000.wav 30.000 40.000 Car +wjfMWiYLDWA_30.000_40.000.wav 30.000 40.000 Car +wu3-_VKULZU_30.000_40.000.wav 30.000 40.000 Car +wwNIm8bgzKc_30.000_40.000.wav 30.000 40.000 Car +xqH9TpH6Xy0_0.000_10.000.wav 0.000 10.000 Car +xsT5ZJUnBg0_160.000_170.000.wav 160.000 170.000 Car +y9DFJEsiTLk_110.000_120.000.wav 110.000 120.000 Car +yESwp_fg0Po_70.000_80.000.wav 70.000 80.000 Car +yQg3eMb0QKU_30.000_40.000.wav 30.000 40.000 Car +yQjnNR7fXKo_50.000_60.000.wav 50.000 60.000 Car +zCuKYr_oMlE_60.000_70.000.wav 60.000 70.000 Car +zz35Va7tYmA_30.000_40.000.wav 30.000 40.000 Car +-CZ1LIc8aos_20.000_30.000.wav 20.000 30.000 Car passing by +-WgJ-M292Yc_30.000_40.000.wav 30.000 40.000 Car passing by +-iAAxJkoqcM_0.000_6.000.wav 0.000 6.000 Car passing by +0mQcGLpc8to_30.000_40.000.wav 30.000 40.000 Car passing by +1HtGgZnlKjU_30.000_40.000.wav 30.000 40.000 Car passing by +2IsAlhq0XFc_30.000_40.000.wav 30.000 40.000 Car passing by +2UvEmetE__I_30.000_40.000.wav 30.000 40.000 Car passing by +2oHGIzH_XzA_30.000_40.000.wav 30.000 40.000 Car passing by +3mor5mPSYoU_7.000_17.000.wav 7.000 17.000 Car passing by +8SYLYWR47EE_30.000_40.000.wav 30.000 40.000 Car passing by +8rzhhvS0tGc_30.000_40.000.wav 30.000 40.000 Car passing by +8v377AXrgac_30.000_40.000.wav 30.000 40.000 Car passing by +9lMtTDKyDEk_30.000_40.000.wav 30.000 40.000 Car passing by +BWoL8oKoTFI_30.000_40.000.wav 30.000 40.000 Car passing by +BsvD806qNM8_10.000_20.000.wav 10.000 20.000 Car passing by +C3LLtToB2zA_30.000_40.000.wav 30.000 40.000 Car passing by +Dk6b9dVD0i8_6.000_16.000.wav 6.000 16.000 Car passing by +Dw1q9rBv7oU_30.000_40.000.wav 30.000 40.000 Car passing by +EqFuY_U0Yz0_30.000_40.000.wav 30.000 40.000 Car passing by +FjpOboRcrNc_10.000_20.000.wav 10.000 20.000 Car passing by +FjyZV8zIJ0k_30.000_40.000.wav 30.000 40.000 Car passing by +Fn7eSPVvgCQ_30.000_40.000.wav 30.000 40.000 Car passing by +G6A-sT2DOjY_30.000_40.000.wav 30.000 40.000 Car passing by +GBXRuYIvhfM_30.000_40.000.wav 30.000 40.000 Car passing by +HDEPd5MIaow_30.000_40.000.wav 30.000 40.000 Car passing by +HQQxGJKg1iM_30.000_40.000.wav 30.000 40.000 Car passing by +If-V0XO-mpo_30.000_40.000.wav 30.000 40.000 Car passing by +JtuNiusRRLk_30.000_40.000.wav 30.000 40.000 Car passing by +M8BFtmQRHq4_200.000_210.000.wav 200.000 210.000 Car passing by +NKPAwhwZmqs_30.000_40.000.wav 30.000 40.000 Car passing by +Oa2Os8eOUjs_30.000_40.000.wav 30.000 40.000 Car passing by +QcLfJE-YfJY_30.000_40.000.wav 30.000 40.000 Car passing by +SkbFczIabRY_30.000_40.000.wav 30.000 40.000 Car passing by +VAiH1LX8guk_17.000_27.000.wav 17.000 27.000 Car passing by +Yc_WuISxfLI_30.000_40.000.wav 30.000 40.000 Car passing by +Yd10enP9ykM_30.000_40.000.wav 30.000 40.000 Car passing by +_HGGCwtyNxM_30.000_40.000.wav 30.000 40.000 Car passing by +a2U10_mi5as_30.000_40.000.wav 30.000 40.000 Car passing by +aB6FDPKAPus_30.000_40.000.wav 30.000 40.000 Car passing by +bDFQWubN4x4_30.000_40.000.wav 30.000 40.000 Car passing by +cW859JAzVZ0_30.000_40.000.wav 30.000 40.000 Car passing by +dDTvjXXFkDg_30.000_40.000.wav 30.000 40.000 Car passing by +dfwr8wgZU8M_40.000_50.000.wav 40.000 50.000 Car passing by +fJLCT3xDGxA_30.000_40.000.wav 30.000 40.000 Car passing by +gc6VlixMHXE_30.000_40.000.wav 30.000 40.000 Car passing by +gd_KjDM4fi8_0.000_10.000.wav 0.000 10.000 Car passing by +j7OEpDiK3IA_30.000_40.000.wav 30.000 40.000 Car passing by +jZxusrD28rM_30.000_40.000.wav 30.000 40.000 Car passing by +llZBUsAwRWc_30.000_40.000.wav 30.000 40.000 Car passing by +m_dCO5bBCic_26.000_36.000.wav 26.000 36.000 Car passing by +qDQX7Xi3GsQ_30.000_40.000.wav 30.000 40.000 Car passing by +qxLdv8u_Ujw_0.000_5.000.wav 0.000 5.000 Car passing by +reP-OOWiLWU_30.000_40.000.wav 30.000 40.000 Car passing by +s4jG5ZJYCvQ_30.000_40.000.wav 30.000 40.000 Car passing by +s5s3aR8Z7I8_350.000_360.000.wav 350.000 360.000 Car passing by +uUyB4q7jgn4_30.000_40.000.wav 30.000 40.000 Car passing by +vPDXFKcdaS4_0.000_10.000.wav 0.000 10.000 Car passing by +wD4QouhX8zo_30.000_40.000.wav 30.000 40.000 Car passing by +xqH9TpH6Xy0_0.000_10.000.wav 0.000 10.000 Car passing by +zd67ihUZ1u4_25.000_35.000.wav 25.000 35.000 Car passing by +-3z5mFRgbxc_30.000_40.000.wav 30.000 40.000 Bus +0N9EN0BEjP0_430.000_440.000.wav 430.000 440.000 Bus +0lPcHRhXlWk_30.000_40.000.wav 30.000 40.000 Bus +1E1evA4T_Tk_30.000_40.000.wav 30.000 40.000 Bus +1hIg-Lsvc7Q_30.000_40.000.wav 30.000 40.000 Bus +6-yQsEH2WYA_30.000_40.000.wav 30.000 40.000 Bus +6Y8wSI1l-Lw_30.000_40.000.wav 30.000 40.000 Bus +7T04388Ijk8_30.000_40.000.wav 30.000 40.000 Bus +8E7okHnCcTA_30.000_40.000.wav 30.000 40.000 Bus +8oEdgb8iXYA_1.000_11.000.wav 1.000 11.000 Bus +AdpNSGX2_Pk_10.000_20.000.wav 10.000 20.000 Bus +AwJ8orGuOXg_2.000_12.000.wav 2.000 12.000 Bus +BS1fqEDAvh0_330.000_340.000.wav 330.000 340.000 Bus +CoFbRc1OxFU_9.000_19.000.wav 9.000 19.000 Bus +DRqKOlP8BmU_110.000_120.000.wav 110.000 120.000 Bus +DYcXvyBFc5w_30.000_40.000.wav 30.000 40.000 Bus +DYdalOQnx1Y_30.000_40.000.wav 30.000 40.000 Bus +DkwFXd5nYLE_40.000_50.000.wav 40.000 50.000 Bus +FBMR3pW9H9o_30.000_40.000.wav 30.000 40.000 Bus +FEGa4e6RAlw_30.000_40.000.wav 30.000 40.000 Bus +Ge_KWS-0098_30.000_40.000.wav 30.000 40.000 Bus +HxMoMMrA6Eo_30.000_40.000.wav 30.000 40.000 Bus +I7esm6vqqZ4_30.000_40.000.wav 30.000 40.000 Bus +JLj11umr1CE_0.000_10.000.wav 0.000 10.000 Bus +JwAhcHHF2qg_30.000_40.000.wav 30.000 40.000 Bus +LhRNnXaSsCk_30.000_40.000.wav 30.000 40.000 Bus +LzZ_nxuZ8Co_30.000_40.000.wav 30.000 40.000 Bus +LzcNa3HvD7c_30.000_40.000.wav 30.000 40.000 Bus +Nyi9_-u6-w0_30.000_40.000.wav 30.000 40.000 Bus +O_SKumO328I_30.000_40.000.wav 30.000 40.000 Bus +Owg_XU9XmRM_30.000_40.000.wav 30.000 40.000 Bus +P94rcZSuTT8_30.000_40.000.wav 30.000 40.000 Bus +PP741kd2vRM_30.000_40.000.wav 30.000 40.000 Bus +Qna9qrV8_go_30.000_40.000.wav 30.000 40.000 Bus +Qt7FJkuqWPE_30.000_40.000.wav 30.000 40.000 Bus +UcQ7cVukaxY_21.000_31.000.wav 21.000 31.000 Bus +W8fIlauyJkk_30.000_40.000.wav 30.000 40.000 Bus +WDn851XbWTk_30.000_40.000.wav 30.000 40.000 Bus +WvquSD2PcCE_30.000_40.000.wav 30.000 40.000 Bus +a9B_HA3y8WQ_30.000_40.000.wav 30.000 40.000 Bus +cEEoKQ38fHY_30.000_40.000.wav 30.000 40.000 Bus +er1vQ-nse_g_30.000_40.000.wav 30.000 40.000 Bus +fLvM4bbpg6w_0.000_10.000.wav 0.000 10.000 Bus +fOVsAMJ3Yms_30.000_40.000.wav 30.000 40.000 Bus +gxVhAVNjSU0_30.000_40.000.wav 30.000 40.000 Bus +jaSK_t8QP1E_30.000_40.000.wav 30.000 40.000 Bus +ji_YCMygNHQ_8.000_18.000.wav 8.000 18.000 Bus +kNKfoDp0uUw_30.000_40.000.wav 30.000 40.000 Bus +kdDgTDfo9HY_100.000_110.000.wav 100.000 110.000 Bus +lHP0q2sQzPQ_30.000_40.000.wav 30.000 40.000 Bus +mGG8rop4Jig_30.000_40.000.wav 30.000 40.000 Bus +oHKTmTLEy68_11.000_21.000.wav 11.000 21.000 Bus +tAfucDIyRiM_30.000_40.000.wav 30.000 40.000 Bus +tQd0vFueRKs_30.000_40.000.wav 30.000 40.000 Bus +ucICmff0K-Q_30.000_40.000.wav 30.000 40.000 Bus +x-2Abohj8VY_30.000_40.000.wav 30.000 40.000 Bus +xFr2xX6PulQ_70.000_80.000.wav 70.000 80.000 Bus +yfSBqp5IZSM_10.000_20.000.wav 10.000 20.000 Bus +-2sE5CH8Wb8_30.000_40.000.wav 30.000 40.000 Truck +-BY64_p-vtM_30.000_40.000.wav 30.000 40.000 Truck +-fJsZm3YRc0_30.000_40.000.wav 30.000 40.000 Truck +-t-htrAtNvM_30.000_40.000.wav 30.000 40.000 Truck +-zNEcuo28oE_30.000_40.000.wav 30.000 40.000 Truck +01WuUBxFBp4_30.000_40.000.wav 30.000 40.000 Truck +077aWlQn6XI_30.000_40.000.wav 30.000 40.000 Truck +0Ga7T-2e490_17.000_27.000.wav 17.000 27.000 Truck +0N9EN0BEjP0_430.000_440.000.wav 430.000 440.000 Truck +10aF24rMeu0_30.000_40.000.wav 30.000 40.000 Truck +2HZcxlRs-hg_30.000_40.000.wav 30.000 40.000 Truck +2Jpg_KvJWL0_30.000_40.000.wav 30.000 40.000 Truck +2Tmi7EqpGZQ_0.000_10.000.wav 0.000 10.000 Truck +4DlKNmVcoek_20.000_30.000.wav 20.000 30.000 Truck +4MRzQbAIyV4_90.000_100.000.wav 90.000 100.000 Truck +4Tpy1lsfcSM_30.000_40.000.wav 30.000 40.000 Truck +4ep09nZl3LA_30.000_40.000.wav 30.000 40.000 Truck +5DW8WjxxCag_30.000_40.000.wav 30.000 40.000 Truck +5DjZHCumLfs_11.000_21.000.wav 11.000 21.000 Truck +5QP1Tc3XbDc_30.000_40.000.wav 30.000 40.000 Truck +5V0xKS-FGMk_30.000_40.000.wav 30.000 40.000 Truck +5fLzQegwHUg_30.000_40.000.wav 30.000 40.000 Truck +6HL_DKWK-WA_10.000_20.000.wav 10.000 20.000 Truck +6VQGk8IrV-4_30.000_40.000.wav 30.000 40.000 Truck +6Y8bKS6KLeE_30.000_40.000.wav 30.000 40.000 Truck +6xEHP-C-ZuU_30.000_40.000.wav 30.000 40.000 Truck +6yyToq9cW9A_60.000_70.000.wav 60.000 70.000 Truck +7Gua0-UrKIw_30.000_40.000.wav 30.000 40.000 Truck +7nglQSmcjAk_30.000_40.000.wav 30.000 40.000 Truck +81DteAPIhoE_30.000_40.000.wav 30.000 40.000 Truck +84E9i9_ELBs_30.000_40.000.wav 30.000 40.000 Truck +8jblPMBafKE_30.000_40.000.wav 30.000 40.000 Truck +8k17D6qiuqI_30.000_40.000.wav 30.000 40.000 Truck +9EsgN-WS2qY_30.000_40.000.wav 30.000 40.000 Truck +9LJnjmcRcb8_280.000_290.000.wav 280.000 290.000 Truck +9yhMtJ50sys_30.000_40.000.wav 30.000 40.000 Truck +A9KMqwqLboE_30.000_40.000.wav 30.000 40.000 Truck +ARIVxBOc0BQ_40.000_50.000.wav 40.000 50.000 Truck +AwFuGITwrms_30.000_40.000.wav 30.000 40.000 Truck +BQVXzH6YK8g_30.000_40.000.wav 30.000 40.000 Truck +CnYWJp2bknU_50.000_60.000.wav 50.000 60.000 Truck +DRqKOlP8BmU_110.000_120.000.wav 110.000 120.000 Truck +DXlTakKvLzg_30.000_40.000.wav 30.000 40.000 Truck +DkVfro9iq80_30.000_40.000.wav 30.000 40.000 Truck +Dmy4EjohxxU_60.000_70.000.wav 60.000 70.000 Truck +DvMFQ64YwcI_30.000_40.000.wav 30.000 40.000 Truck +FEoMTMxzn3U_30.000_40.000.wav 30.000 40.000 Truck +GTk_6JDmtCY_230.000_240.000.wav 230.000 240.000 Truck +HDEPd5MIaow_30.000_40.000.wav 30.000 40.000 Truck +HQkLVac7z9Q_70.000_80.000.wav 70.000 80.000 Truck +I4VDcVTE4YA_30.000_40.000.wav 30.000 40.000 Truck +IxlvxvG8zOE_110.000_120.000.wav 110.000 120.000 Truck +JLzD44Im1Ec_30.000_40.000.wav 30.000 40.000 Truck +K4Hcb00hTTY_30.000_40.000.wav 30.000 40.000 Truck +L2M3xanqQP8_30.000_40.000.wav 30.000 40.000 Truck +LA5TekLaIPI_10.000_20.000.wav 10.000 20.000 Truck +LhRNnXaSsCk_30.000_40.000.wav 30.000 40.000 Truck +MWTTe0M9vi4_30.000_40.000.wav 30.000 40.000 Truck +Nkqx09b-xyI_70.000_80.000.wav 70.000 80.000 Truck +NqzZbJJl3E4_30.000_40.000.wav 30.000 40.000 Truck +OPd0cz1hRqc_30.000_40.000.wav 30.000 40.000 Truck +PCl-q7lCT_U_50.000_60.000.wav 50.000 60.000 Truck +PNaLTW50fxM_60.000_70.000.wav 60.000 70.000 Truck +PO1eaJ7tQOg_180.000_190.000.wav 180.000 190.000 Truck +PSt0xAYgf4g_0.000_10.000.wav 0.000 10.000 Truck +Pef6g19i5iI_30.000_40.000.wav 30.000 40.000 Truck +Q1CMSV81_ws_30.000_40.000.wav 30.000 40.000 Truck +SiBIYAiIajM_30.000_40.000.wav 30.000 40.000 Truck +T6oYCFRafPs_30.000_40.000.wav 30.000 40.000 Truck +WdubBeFntYQ_460.000_470.000.wav 460.000 470.000 Truck +_ZiJA6phEq8_30.000_40.000.wav 30.000 40.000 Truck +_jfv_ziZWII_60.000_70.000.wav 60.000 70.000 Truck +acvV6yYNc7Y_30.000_40.000.wav 30.000 40.000 Truck +bQSaQ0iX_vk_30.000_40.000.wav 30.000 40.000 Truck +bhxN5w03yS0_30.000_40.000.wav 30.000 40.000 Truck +ckt7YEGcSoY_30.000_40.000.wav 30.000 40.000 Truck +eIkUuCRE_0U_30.000_40.000.wav 30.000 40.000 Truck +gxVhAVNjSU0_30.000_40.000.wav 30.000 40.000 Truck +hDVNQOJCvOk_30.000_40.000.wav 30.000 40.000 Truck +ieZVo7W3BQ4_30.000_40.000.wav 30.000 40.000 Truck +ikmE_kRvDAc_30.000_40.000.wav 30.000 40.000 Truck +jwZTKNsbf58_70.000_80.000.wav 70.000 80.000 Truck +kH6fFjIZkB0_30.000_40.000.wav 30.000 40.000 Truck +kr8ssbrDDMY_30.000_40.000.wav 30.000 40.000 Truck +lp66EaEOOoU_30.000_40.000.wav 30.000 40.000 Truck +n4o1r8Ai66o_30.000_40.000.wav 30.000 40.000 Truck +nDtrUUc2J2U_0.000_10.000.wav 0.000 10.000 Truck +nMaSkwx6cHE_30.000_40.000.wav 30.000 40.000 Truck +p70IcMwsW9M_30.000_40.000.wav 30.000 40.000 Truck +pJ1fore8JbQ_30.000_40.000.wav 30.000 40.000 Truck +pt-J_L-OFI8_0.000_10.000.wav 0.000 10.000 Truck +rdanJP7Usrg_30.000_40.000.wav 30.000 40.000 Truck +srTX18ikXkE_10.000_20.000.wav 10.000 20.000 Truck +tuplsUUDXKw_30.000_40.000.wav 30.000 40.000 Truck +x6vuWsdeS3s_30.000_40.000.wav 30.000 40.000 Truck +xMClk12ouB8_30.000_40.000.wav 30.000 40.000 Truck +ycqDMKTrvLY_30.000_40.000.wav 30.000 40.000 Truck +yk5LqHTtHLo_30.000_40.000.wav 30.000 40.000 Truck +yrscqyUOIlI_30.000_40.000.wav 30.000 40.000 Truck +zM3chsL-B7U_30.000_40.000.wav 30.000 40.000 Truck +06si40RVDco_30.000_40.000.wav 30.000 40.000 Motorcycle +0DzsPL-xElE_20.000_30.000.wav 20.000 30.000 Motorcycle +145N68nh4m0_120.000_130.000.wav 120.000 130.000 Motorcycle +16vw4K9qJnY_30.000_40.000.wav 30.000 40.000 Motorcycle +21QlKF17ipc_30.000_40.000.wav 30.000 40.000 Motorcycle +3LulQoOXNB0_30.000_40.000.wav 30.000 40.000 Motorcycle +45JHcLU57B8_20.000_30.000.wav 20.000 30.000 Motorcycle +4NZkW-XaIa4_30.000_40.000.wav 30.000 40.000 Motorcycle +506I6LfdDuk_50.000_60.000.wav 50.000 60.000 Motorcycle +6MCy1lh4qaw_20.000_30.000.wav 20.000 30.000 Motorcycle +6R8cO4ARzkY_30.000_40.000.wav 30.000 40.000 Motorcycle +6taAP7SFewI_30.000_40.000.wav 30.000 40.000 Motorcycle +7g6aZTBe2xE_30.000_40.000.wav 30.000 40.000 Motorcycle +9HcahqYUVoc_90.000_100.000.wav 90.000 100.000 Motorcycle +9N1iw5Vdim8_20.000_30.000.wav 20.000 30.000 Motorcycle +ANWU9Hiy_5k_40.000_50.000.wav 40.000 50.000 Motorcycle +BTNz6NftP34_30.000_40.000.wav 30.000 40.000 Motorcycle +BxnLAGsByCI_10.000_20.000.wav 10.000 20.000 Motorcycle +CZgx_6XaEkg_30.000_40.000.wav 30.000 40.000 Motorcycle +D3BJuOwltoI_10.000_20.000.wav 10.000 20.000 Motorcycle +FgN9v1jYqjA_30.000_40.000.wav 30.000 40.000 Motorcycle +HQ8eR2lvjSE_30.000_40.000.wav 30.000 40.000 Motorcycle +Mb-GyQEKoEc_30.000_40.000.wav 30.000 40.000 Motorcycle +Pair_NsHdTc_30.000_40.000.wav 30.000 40.000 Motorcycle +UFIBEBkm7ao_30.000_40.000.wav 30.000 40.000 Motorcycle +UWz5OIijWM4_30.000_40.000.wav 30.000 40.000 Motorcycle +WLX3Db60418_20.000_30.000.wav 20.000 30.000 Motorcycle +X5Xs8Y1cJK0_30.000_40.000.wav 30.000 40.000 Motorcycle +ZGf0vrZStwI_30.000_40.000.wav 30.000 40.000 Motorcycle +ZfkO1HlI0zM_30.000_40.000.wav 30.000 40.000 Motorcycle +bhtB2Zgh9Q8_110.000_120.000.wav 110.000 120.000 Motorcycle +d-m8eXCpeDg_30.000_40.000.wav 30.000 40.000 Motorcycle +d21IwtH2oHI_30.000_40.000.wav 30.000 40.000 Motorcycle +dhaKGPCgtfw_30.000_40.000.wav 30.000 40.000 Motorcycle +ee-0JGvEIng_30.000_40.000.wav 30.000 40.000 Motorcycle +epGDNMrsQb8_40.000_50.000.wav 40.000 50.000 Motorcycle +ezUkPETm6cs_30.000_40.000.wav 30.000 40.000 Motorcycle +f724u5z_UDw_30.000_40.000.wav 30.000 40.000 Motorcycle +gGmWm1i6pVo_30.000_40.000.wav 30.000 40.000 Motorcycle +i9VjpIbM3iE_410.000_420.000.wav 410.000 420.000 Motorcycle +iMp8nODaotA_580.000_590.000.wav 580.000 590.000 Motorcycle +lVW2CqsHJ4Y_30.000_40.000.wav 30.000 40.000 Motorcycle +lj7hzmz19-M_30.000_40.000.wav 30.000 40.000 Motorcycle +mX45CiTjf8I_30.000_40.000.wav 30.000 40.000 Motorcycle +mbLiZ_jpgeY_20.000_30.000.wav 20.000 30.000 Motorcycle +owZDBEq6WdU_30.000_40.000.wav 30.000 40.000 Motorcycle +pNMBIqvbyB4_30.000_40.000.wav 30.000 40.000 Motorcycle +po-tnKZAzdg_40.000_50.000.wav 40.000 50.000 Motorcycle +qAQuljp-atA_30.000_40.000.wav 30.000 40.000 Motorcycle +r0Oll28wmXs_30.000_40.000.wav 30.000 40.000 Motorcycle +sAMjMyCdGOc_30.000_40.000.wav 30.000 40.000 Motorcycle +vHlqKDR7ggA_30.000_40.000.wav 30.000 40.000 Motorcycle +wPfv8ifzzyg_30.000_40.000.wav 30.000 40.000 Motorcycle +wyhurCZbKQU_30.000_40.000.wav 30.000 40.000 Motorcycle +xQTPEQDb0Gg_30.000_40.000.wav 30.000 40.000 Motorcycle +xTPmoYwgKf4_30.000_40.000.wav 30.000 40.000 Motorcycle +xXGIKM4daMU_30.000_40.000.wav 30.000 40.000 Motorcycle +xZ8hQliZqhg_160.000_170.000.wav 160.000 170.000 Motorcycle +xuMBy2NoROI_30.000_40.000.wav 30.000 40.000 Motorcycle +z_8yGVO1qws_30.000_40.000.wav 30.000 40.000 Motorcycle +-BaVEk1zS2g_50.000_60.000.wav 50.000 60.000 Train +-Q4fBQ4egrs_0.000_10.000.wav 0.000 10.000 Train +-QxSFr1cYuQ_20.000_30.000.wav 20.000 30.000 Train +-ZdReI9dL6M_530.000_540.000.wav 530.000 540.000 Train +0YIyGEM0yG0_550.000_560.000.wav 550.000 560.000 Train +1Mk2MJDhLJQ_20.000_30.000.wav 20.000 30.000 Train +2nejPPEWqJ8_320.000_330.000.wav 320.000 330.000 Train +3ACjUf9QpAQ_30.000_40.000.wav 30.000 40.000 Train +3RfrTU1p5SA_500.000_510.000.wav 500.000 510.000 Train +3YJewEC-NWo_30.000_40.000.wav 30.000 40.000 Train +3ZZDuYU2HM4_150.000_160.000.wav 150.000 160.000 Train +3fPX1LaGwJo_60.000_70.000.wav 60.000 70.000 Train +4_gyCWuPxRg_170.000_180.000.wav 170.000 180.000 Train +4l4vGrMD4Tw_550.000_560.000.wav 550.000 560.000 Train +4oT0bxldS80_30.000_40.000.wav 30.000 40.000 Train +4t7Mi3pnSA4_210.000_220.000.wav 210.000 220.000 Train +53oq_Otm_XI_30.000_40.000.wav 30.000 40.000 Train +6OgSNQOTw2U_30.000_40.000.wav 30.000 40.000 Train +6_TGlFO0DCk_10.000_20.000.wav 10.000 20.000 Train +7KdSGBzXvz8_420.000_430.000.wav 420.000 430.000 Train +7W_kcu0CJqI_310.000_320.000.wav 310.000 320.000 Train +8IaInXpdd9M_0.000_10.000.wav 0.000 10.000 Train +8nU1aVscJec_30.000_40.000.wav 30.000 40.000 Train +9LQEZJPNVpw_30.000_40.000.wav 30.000 40.000 Train +9NT6gEiqpWA_30.000_40.000.wav 30.000 40.000 Train +AFhll08KM98_30.000_40.000.wav 30.000 40.000 Train +AHom7lBbtoY_30.000_40.000.wav 30.000 40.000 Train +AK0kZUDk294_2.000_12.000.wav 2.000 12.000 Train +AKPC4rEGoyI_30.000_40.000.wav 30.000 40.000 Train +APsvUzw7bWA_60.000_70.000.wav 60.000 70.000 Train +AshwkKUV07s_23.000_33.000.wav 23.000 33.000 Train +BI2Tol64na0_30.000_40.000.wav 30.000 40.000 Train +BmS2NiuT2c0_160.000_170.000.wav 160.000 170.000 Train +CCX_4cW_SAU_0.000_10.000.wav 0.000 10.000 Train +D_nXtMgbPNY_30.000_40.000.wav 30.000 40.000 Train +F-JFxERdA2w_30.000_40.000.wav 30.000 40.000 Train +FoIBRxw0tyE_30.000_40.000.wav 30.000 40.000 Train +G958vjLYBcI_110.000_120.000.wav 110.000 120.000 Train +GFQnh84kNwU_30.000_40.000.wav 30.000 40.000 Train +GKc8PCTen8Q_310.000_320.000.wav 310.000 320.000 Train +I4qODX0fypE_30.000_40.000.wav 30.000 40.000 Train +IIIxN_ziy_I_60.000_70.000.wav 60.000 70.000 Train +IdqEbjujFb8_30.000_40.000.wav 30.000 40.000 Train +K-i81KrH8BQ_30.000_40.000.wav 30.000 40.000 Train +K9pSRLw6FNc_40.000_50.000.wav 40.000 50.000 Train +KPyYUly5xCc_90.000_100.000.wav 90.000 100.000 Train +L3a132_uApg_50.000_60.000.wav 50.000 60.000 Train +LK4b2eJpy24_30.000_40.000.wav 30.000 40.000 Train +LzcNa3HvD7c_30.000_40.000.wav 30.000 40.000 Train +MCYY8tJsnfY_7.000_17.000.wav 7.000 17.000 Train +MDF2vsjm8jU_10.000_20.000.wav 10.000 20.000 Train +MMfiWJVftMA_60.000_70.000.wav 60.000 70.000 Train +MYzVHespZ-E_30.000_40.000.wav 30.000 40.000 Train +Mbe4rlNiM84_0.000_7.000.wav 0.000 7.000 Train +MczH_PWBNeI_360.000_370.000.wav 360.000 370.000 Train +Mfkif49LLc4_30.000_40.000.wav 30.000 40.000 Train +MwSbYICrYj8_290.000_300.000.wav 290.000 300.000 Train +PJUy17bXlhc_40.000_50.000.wav 40.000 50.000 Train +QDTbchu0LrU_30.000_40.000.wav 30.000 40.000 Train +QZJ5WAYIUh8_70.000_80.000.wav 70.000 80.000 Train +QrAoRSA13bM_30.000_40.000.wav 30.000 40.000 Train +RN-_agT8_Cg_0.000_10.000.wav 0.000 10.000 Train +R_Lpb-51Kl4_30.000_40.000.wav 30.000 40.000 Train +Rhvy7V4F95Q_40.000_50.000.wav 40.000 50.000 Train +Rq-22Cycrpg_30.000_40.000.wav 30.000 40.000 Train +RrlgSfQrqQc_20.000_30.000.wav 20.000 30.000 Train +RwBKGPEg6uA_340.000_350.000.wav 340.000 350.000 Train +T73runykdnE_25.000_35.000.wav 25.000 35.000 Train +T8M6W4yOzI4_30.000_40.000.wav 30.000 40.000 Train +Tmm4H6alHCE_30.000_40.000.wav 30.000 40.000 Train +TyTORMEourg_270.000_280.000.wav 270.000 280.000 Train +UQx0EMXtLZA_60.000_70.000.wav 60.000 70.000 Train +UZx7OAgRMRY_90.000_100.000.wav 90.000 100.000 Train +UerX5Bv2hcs_70.000_80.000.wav 70.000 80.000 Train +UxSUGCvpskM_340.000_350.000.wav 340.000 350.000 Train +V2hln47cP78_130.000_140.000.wav 130.000 140.000 Train +VIe_Qkg5RJI_130.000_140.000.wav 130.000 140.000 Train +WDn851XbWTk_30.000_40.000.wav 30.000 40.000 Train +WFdpQCtpBB4_30.000_40.000.wav 30.000 40.000 Train +XAUtk9lwzU8_30.000_40.000.wav 30.000 40.000 Train +XDTlBb3aYqo_30.000_40.000.wav 30.000 40.000 Train +XKvLkIM8dck_40.000_50.000.wav 40.000 50.000 Train +XQbeLJYzY9k_90.000_100.000.wav 90.000 100.000 Train +XW8pSKLyr0o_20.000_30.000.wav 20.000 30.000 Train +XeYiNanFS_M_120.000_130.000.wav 120.000 130.000 Train +Y10I9JSvJuQ_30.000_40.000.wav 30.000 40.000 Train +YDGf-razgyU_250.000_260.000.wav 250.000 260.000 Train +YFD1Qrlskrg_60.000_70.000.wav 60.000 70.000 Train +Y_jwEflLthg_190.000_200.000.wav 190.000 200.000 Train +Y_ynIwm3qm0_370.000_380.000.wav 370.000 380.000 Train +Zy0goYEHPHU_30.000_40.000.wav 30.000 40.000 Train +_dkeW6lqmq4_30.000_40.000.wav 30.000 40.000 Train +aNO2KEXBCOk_30.000_40.000.wav 30.000 40.000 Train +aXsUHAKbyLs_30.000_40.000.wav 30.000 40.000 Train +ahct5yzUtdE_20.000_30.000.wav 20.000 30.000 Train +arevYmB0qGg_30.000_40.000.wav 30.000 40.000 Train +bCGtzspNbNo_30.000_40.000.wav 30.000 40.000 Train +bI6wPI9kAm8_70.000_80.000.wav 70.000 80.000 Train +bpdCMWWiB_0_30.000_40.000.wav 30.000 40.000 Train +cdrjKqyDrak_420.000_430.000.wav 420.000 430.000 Train +d1o334I5X_k_30.000_40.000.wav 30.000 40.000 Train +dSzZWgbJ378_30.000_40.000.wav 30.000 40.000 Train +eRclX9l0F_c_150.000_160.000.wav 150.000 160.000 Train +fOVsAMJ3Yms_30.000_40.000.wav 30.000 40.000 Train +fWVfi9pAh_4_10.000_20.000.wav 10.000 20.000 Train +fztkF47lVQg_0.000_10.000.wav 0.000 10.000 Train +g0ICxHjC9Uc_30.000_40.000.wav 30.000 40.000 Train +g2scd3YVgwQ_30.000_40.000.wav 30.000 40.000 Train +g4cA-ifQc70_30.000_40.000.wav 30.000 40.000 Train +g9JVq7wfDIo_30.000_40.000.wav 30.000 40.000 Train +gKMpowHeyKc_30.000_40.000.wav 30.000 40.000 Train +gTFCK9TuLOQ_30.000_40.000.wav 30.000 40.000 Train +gU0mD2fSh4c_500.000_510.000.wav 500.000 510.000 Train +gkH_Zxasn8o_40.000_50.000.wav 40.000 50.000 Train +gvnM4kK4r70_10.000_20.000.wav 10.000 20.000 Train +hH_M56EnnDk_30.000_40.000.wav 30.000 40.000 Train +hVvtTC9AmNs_30.000_40.000.wav 30.000 40.000 Train +hYqzr_rIIAw_30.000_40.000.wav 30.000 40.000 Train +hdYQzH2E-e4_310.000_320.000.wav 310.000 320.000 Train +iZgzRfa-xPQ_30.000_40.000.wav 30.000 40.000 Train +j9Z63H5hvrQ_0.000_10.000.wav 0.000 10.000 Train +jbW2ew8VMfU_50.000_60.000.wav 50.000 60.000 Train +jlz7r-NSUuA_50.000_60.000.wav 50.000 60.000 Train +k0vRZm7ZnQk_280.000_290.000.wav 280.000 290.000 Train +k8H8rn4NaSM_0.000_10.000.wav 0.000 10.000 Train +kbfkq3TuAe0_470.000_480.000.wav 470.000 480.000 Train +lf1Sblrda3A_560.000_570.000.wav 560.000 570.000 Train +m4DS9-5Gkds_30.000_40.000.wav 30.000 40.000 Train +m5HeCy87QYY_380.000_390.000.wav 380.000 390.000 Train +nKM4MUAsVzg_100.000_110.000.wav 100.000 110.000 Train +nY1gcEMzsWI_10.000_20.000.wav 10.000 20.000 Train +nfY_zkJceDw_30.000_40.000.wav 30.000 40.000 Train +oogrnx-_LBA_60.000_70.000.wav 60.000 70.000 Train +pW5SI1ZKUpA_30.000_40.000.wav 30.000 40.000 Train +pbOZLMrJy0A_0.000_10.000.wav 0.000 10.000 Train +pxmrmtEnROk_30.000_40.000.wav 30.000 40.000 Train +q7zzKHFWGkg_30.000_40.000.wav 30.000 40.000 Train +qu8vVFWKszA_30.000_40.000.wav 30.000 40.000 Train +r6mHSfFkY_8_30.000_40.000.wav 30.000 40.000 Train +rNNPQ9DD4no_30.000_40.000.wav 30.000 40.000 Train +rSrBDAgLUoI_460.000_470.000.wav 460.000 470.000 Train +stdjjG6Y5IU_30.000_40.000.wav 30.000 40.000 Train +t_lFhyZaZR0_150.000_160.000.wav 150.000 160.000 Train +txXSE7kgrc8_30.000_40.000.wav 30.000 40.000 Train +uZfsEDo3elY_20.000_30.000.wav 20.000 30.000 Train +umcnfA9veOw_160.000_170.000.wav 160.000 170.000 Train +uysTr0SfhLI_10.000_20.000.wav 10.000 20.000 Train +wM9wNgY8d4g_150.000_160.000.wav 150.000 160.000 Train +xabrKa79prM_30.000_40.000.wav 30.000 40.000 Train +xshKOSEF_6o_0.000_10.000.wav 0.000 10.000 Train +yBVxtq9k8Sg_0.000_10.000.wav 0.000 10.000 Train +yH1r2Bblluw_240.000_250.000.wav 240.000 250.000 Train +yywGJu6jp8U_30.000_40.000.wav 30.000 40.000 Train +z5uKFGeTtNg_30.000_40.000.wav 30.000 40.000 Train diff --git a/audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_testing_set.csv b/audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_testing_set.csv new file mode 100644 index 0000000..746bd3f --- /dev/null +++ b/audio_detection/audio_infer/metadata/black_list/groundtruth_weak_label_testing_set.csv @@ -0,0 +1,606 @@ +-5QrBL6MzLg_60.000_70.000.wav 60.000 70.000 Train horn +-E0shPRxAbo_30.000_40.000.wav 30.000 40.000 Train horn +-GCwoyCnYsY_0.000_10.000.wav 0.000 10.000 Train horn +-Gbohom8C4Q_30.000_40.000.wav 30.000 40.000 Train horn +-Qfk_Q2ctBs_30.000_40.000.wav 30.000 40.000 Train horn +-Wd1pV7UjWg_60.000_70.000.wav 60.000 70.000 Train horn +-Zq22n4OewA_30.000_40.000.wav 30.000 40.000 Train horn +-jj2tyuf6-A_80.000_90.000.wav 80.000 90.000 Train horn +-nGBPqlRNg4_30.000_40.000.wav 30.000 40.000 Train horn +-u9BxBNcrw4_30.000_40.000.wav 30.000 40.000 Train horn +-zqW9xCZd80_260.000_270.000.wav 260.000 270.000 Train horn +02w3vd_GgF0_390.000_400.000.wav 390.000 400.000 Train horn +0HqeYIREv8M_30.000_40.000.wav 30.000 40.000 Train horn +0IpYF91Fdt0_80.000_90.000.wav 80.000 90.000 Train horn +0NaZejdABG0_90.000_100.000.wav 90.000 100.000 Train horn +0RurXUfKyow_4.000_14.000.wav 4.000 14.000 Train horn +0_HnD-rW3lI_170.000_180.000.wav 170.000 180.000 Train horn +10i60V1RZkQ_210.000_220.000.wav 210.000 220.000 Train horn +1FJY5X1iY9I_170.000_180.000.wav 170.000 180.000 Train horn +1S5WKCcf-wU_40.000_50.000.wav 40.000 50.000 Train horn +1U0Ty6CW6AM_40.000_50.000.wav 40.000 50.000 Train horn +1hQLr88iCvg_30.000_40.000.wav 30.000 40.000 Train horn +1iUXERALOOs_190.000_200.000.wav 190.000 200.000 Train horn +1iWFlLpixKU_5.000_15.000.wav 5.000 15.000 Train horn +1oJAVJPX0YY_20.000_30.000.wav 20.000 30.000 Train horn +26dNsDuIt9Q_340.000_350.000.wav 340.000 350.000 Train horn +2BMHsKLcb7E_90.000_100.000.wav 90.000 100.000 Train horn +2RpOd9MJjyQ_10.000_20.000.wav 10.000 20.000 Train horn +2U4wSdl10to_200.000_210.000.wav 200.000 210.000 Train horn +2aBV6AZt5nk_570.000_580.000.wav 570.000 580.000 Train horn +-8baTnilyjs_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +-Gbohom8C4Q_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +-jG26jT3fP8_230.000_240.000.wav 230.000 240.000 Air horn, truck horn +-jj2tyuf6-A_80.000_90.000.wav 80.000 90.000 Air horn, truck horn +-v7cUxke-f4_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +-yeWlsEpcpA_15.000_25.000.wav 15.000 25.000 Air horn, truck horn +04KOunVOkSA_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +08y2LHhxmsM_400.000_410.000.wav 400.000 410.000 Air horn, truck horn +0G73yqtBwgE_11.000_21.000.wav 11.000 21.000 Air horn, truck horn +0UPY7ws-VFs_10.000_20.000.wav 10.000 20.000 Air horn, truck horn +0euD32aKYUs_10.000_20.000.wav 10.000 20.000 Air horn, truck horn +1T1i2rny8RU_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +1iRgwn7p0DA_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +1myTsHAIvYc_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +1z0XoG6GEv4_420.000_430.000.wav 420.000 430.000 Air horn, truck horn +26dNsDuIt9Q_340.000_350.000.wav 340.000 350.000 Air horn, truck horn +2KmSuPb9gwA_24.000_34.000.wav 24.000 34.000 Air horn, truck horn +2Vy5NCEkg2I_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +2ZciT0XrifM_0.000_8.000.wav 0.000 8.000 Air horn, truck horn +2jOzX06bzuA_16.000_26.000.wav 16.000 26.000 Air horn, truck horn +35EOmSMTQ6I_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +3YaLkgUMhAA_110.000_120.000.wav 110.000 120.000 Air horn, truck horn +3ntFslTK6hM_90.000_100.000.wav 90.000 100.000 Air horn, truck horn +3rGOv4evODE_20.000_30.000.wav 20.000 30.000 Air horn, truck horn +42U7xIucU68_20.000_30.000.wav 20.000 30.000 Air horn, truck horn +46r7mO2k6zY_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +4EBnb2DN3Yg_13.000_23.000.wav 13.000 23.000 Air horn, truck horn +4NTjS5pFfSc_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +4bvfOnX7BIE_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +4l78f9VZ9uE_30.000_40.000.wav 30.000 40.000 Air horn, truck horn +-ajCLjpfGKI_83.000_93.000.wav 83.000 93.000 Car alarm +-hLSc9aPOms_13.000_23.000.wav 13.000 23.000 Car alarm +-rgDWfvxxqw_30.000_40.000.wav 30.000 40.000 Car alarm +0C3kqtF76t8_50.000_60.000.wav 50.000 60.000 Car alarm +0Hz4R_m0hmI_80.000_90.000.wav 80.000 90.000 Car alarm +0ZPafgZftWk_80.000_90.000.wav 80.000 90.000 Car alarm +0npLQ4LzD0c_40.000_50.000.wav 40.000 50.000 Car alarm +17VuPl9Wxvs_20.000_30.000.wav 20.000 30.000 Car alarm +3HxQ83IMyw4_70.000_80.000.wav 70.000 80.000 Car alarm +3z05luLEc_Q_0.000_10.000.wav 0.000 10.000 Car alarm +4A1Ar1TIXIY_30.000_40.000.wav 30.000 40.000 Car alarm +4Kpklmj-ze0_53.000_63.000.wav 53.000 63.000 Car alarm +4h01lBkTVQY_18.000_28.000.wav 18.000 28.000 Car alarm +5-SzZotiaBU_30.000_40.000.wav 30.000 40.000 Car alarm +54PbkldEp9M_30.000_40.000.wav 30.000 40.000 Car alarm +5P6YYsMaIH4_30.000_40.000.wav 30.000 40.000 Car alarm +5tzTahLHylw_70.000_80.000.wav 70.000 80.000 Car alarm +7DC3HtNi4fU_160.000_170.000.wav 160.000 170.000 Car alarm +7NJ5TbNEIvA_250.000_260.000.wav 250.000 260.000 Car alarm +7NZ0kMj2HSI_54.000_64.000.wav 54.000 64.000 Car alarm +7RQpt1_1ZzU_30.000_40.000.wav 30.000 40.000 Car alarm +7ee54nr6jG8_30.000_40.000.wav 30.000 40.000 Car alarm +8OajsyPSNt8_40.000_50.000.wav 40.000 50.000 Car alarm +9fCibkUT_gQ_30.000_40.000.wav 30.000 40.000 Car alarm +9fzeD7CeI7Y_110.000_120.000.wav 110.000 120.000 Car alarm +9jYv9WuyknA_130.000_140.000.wav 130.000 140.000 Car alarm +A-GNszKtjJc_93.000_103.000.wav 93.000 103.000 Car alarm +A437a4Y_xag_230.000_240.000.wav 230.000 240.000 Car alarm +APMPW2YI-Zk_20.000_30.000.wav 20.000 30.000 Car alarm +AR-KmtlXg4Y_70.000_80.000.wav 70.000 80.000 Car alarm +-60XojQWWoc_30.000_40.000.wav 30.000 40.000 Reversing beeps +-6d-zxMvC5E_30.000_40.000.wav 30.000 40.000 Reversing beeps +-6qSMlbJJ58_30.000_40.000.wav 30.000 40.000 Reversing beeps +-8OITuFZha8_30.000_40.000.wav 30.000 40.000 Reversing beeps +-8n2NqDFRko_30.000_40.000.wav 30.000 40.000 Reversing beeps +-AIrHVeCgtM_30.000_40.000.wav 30.000 40.000 Reversing beeps +-AVzYvKHwPg_30.000_40.000.wav 30.000 40.000 Reversing beeps +-AXDeY-N2_M_30.000_40.000.wav 30.000 40.000 Reversing beeps +-B1uzsLG0Dk_30.000_40.000.wav 30.000 40.000 Reversing beeps +-BM_EAszxBg_30.000_40.000.wav 30.000 40.000 Reversing beeps +-Em3OpyaefM_30.000_40.000.wav 30.000 40.000 Reversing beeps +-FWkB2IDMhc_30.000_40.000.wav 30.000 40.000 Reversing beeps +-SP7KWmTRUU_30.000_40.000.wav 30.000 40.000 Reversing beeps +-h4or05bj_I_30.000_40.000.wav 30.000 40.000 Reversing beeps +-oV6dQu5tZo_30.000_40.000.wav 30.000 40.000 Reversing beeps +-r8mfjRiHrU_30.000_40.000.wav 30.000 40.000 Reversing beeps +-s9kwrRilOY_30.000_40.000.wav 30.000 40.000 Reversing beeps +-uMiGr6xvRA_30.000_40.000.wav 30.000 40.000 Reversing beeps +-x70B12Mb-8_30.000_40.000.wav 30.000 40.000 Reversing beeps +-xYsfYZOI-Y_30.000_40.000.wav 30.000 40.000 Reversing beeps +-zxrdL6MlKI_30.000_40.000.wav 30.000 40.000 Reversing beeps +03xMfqt4fZI_24.000_34.000.wav 24.000 34.000 Reversing beeps +0E4AqW9dmdk_30.000_40.000.wav 30.000 40.000 Reversing beeps +0FQo-2xRJ0E_30.000_40.000.wav 30.000 40.000 Reversing beeps +0HmiH-wKLB4_30.000_40.000.wav 30.000 40.000 Reversing beeps +0KskqFt3DoY_15.000_25.000.wav 15.000 25.000 Reversing beeps +0OiPtV9sd_w_30.000_40.000.wav 30.000 40.000 Reversing beeps +0P-YGHC5cBU_30.000_40.000.wav 30.000 40.000 Reversing beeps +0QKet-tdquc_30.000_40.000.wav 30.000 40.000 Reversing beeps +0VnoYVqd-yo_30.000_40.000.wav 30.000 40.000 Reversing beeps +-5px8DVPl8A_28.000_38.000.wav 28.000 38.000 Bicycle +-D08wyQwDPQ_10.000_20.000.wav 10.000 20.000 Bicycle +-F1_Gh78vJ0_30.000_40.000.wav 30.000 40.000 Bicycle +-FZQIkX44Pk_10.000_20.000.wav 10.000 20.000 Bicycle +-FsvS99nWTc_30.000_40.000.wav 30.000 40.000 Bicycle +-Holdef_BZ0_30.000_40.000.wav 30.000 40.000 Bicycle +-Inn26beF70_30.000_40.000.wav 30.000 40.000 Bicycle +-Jq9HNSs_ns_14.000_24.000.wav 14.000 24.000 Bicycle +-KlN_AXMM0Q_30.000_40.000.wav 30.000 40.000 Bicycle +-NCcqKWiGus_30.000_40.000.wav 30.000 40.000 Bicycle +-NNC_TqWfGw_30.000_40.000.wav 30.000 40.000 Bicycle +-OGFiXvmldM_30.000_40.000.wav 30.000 40.000 Bicycle +-RFpDUZhN-g_13.000_23.000.wav 13.000 23.000 Bicycle +-XUfeRTw3b4_0.000_6.000.wav 0.000 6.000 Bicycle +-XoATxJ-Qcg_30.000_40.000.wav 30.000 40.000 Bicycle +-bFNxvFwDts_470.000_480.000.wav 470.000 480.000 Bicycle +-e5PokL6Cyo_30.000_40.000.wav 30.000 40.000 Bicycle +-fNyOf9zIU0_30.000_40.000.wav 30.000 40.000 Bicycle +-fhpkRyZL90_30.000_40.000.wav 30.000 40.000 Bicycle +-fo3m0hiZbg_30.000_40.000.wav 30.000 40.000 Bicycle +-ikJkNwcmkA_27.000_37.000.wav 27.000 37.000 Bicycle +-k2nMcxAjWE_30.000_40.000.wav 30.000 40.000 Bicycle +-k80ibA-fyw_30.000_40.000.wav 30.000 40.000 Bicycle +-lBcEVa_NKw_30.000_40.000.wav 30.000 40.000 Bicycle +-mQyAYU_Bd4_50.000_60.000.wav 50.000 60.000 Bicycle +-ngrinYHF4c_30.000_40.000.wav 30.000 40.000 Bicycle +-nqm_RJ2xj8_40.000_50.000.wav 40.000 50.000 Bicycle +-oAw5iTeT1g_40.000_50.000.wav 40.000 50.000 Bicycle +-p2EMzpTE38_4.000_14.000.wav 4.000 14.000 Bicycle +-qmfWP_yzn4_30.000_40.000.wav 30.000 40.000 Bicycle +-0DIFwkUpjQ_50.000_60.000.wav 50.000 60.000 Skateboard +-53qltVyjpc_180.000_190.000.wav 180.000 190.000 Skateboard +-5y4jb9eUWs_110.000_120.000.wav 110.000 120.000 Skateboard +-81kolkG8M0_0.000_8.000.wav 0.000 8.000 Skateboard +-9dwTSq6JZg_70.000_80.000.wav 70.000 80.000 Skateboard +-9oKZsjjf_0_20.000_30.000.wav 20.000 30.000 Skateboard +-AFGfu5zOzQ_30.000_40.000.wav 30.000 40.000 Skateboard +-DHGwygUsQc_30.000_40.000.wav 30.000 40.000 Skateboard +-DkuTmIs7_Q_30.000_40.000.wav 30.000 40.000 Skateboard +-E1E17R7UBA_260.000_270.000.wav 260.000 270.000 Skateboard +-E1aIXhB4YU_30.000_40.000.wav 30.000 40.000 Skateboard +-McJLXNN3-o_50.000_60.000.wav 50.000 60.000 Skateboard +-N7nQ4CXGsY_170.000_180.000.wav 170.000 180.000 Skateboard +-O5vrHFRzcY_30.000_40.000.wav 30.000 40.000 Skateboard +-Plh9jAN_Eo_0.000_2.000.wav 0.000 2.000 Skateboard +-Qd_dXTbgK0_30.000_40.000.wav 30.000 40.000 Skateboard +-aVZ-H92M_s_0.000_4.000.wav 0.000 4.000 Skateboard +-cd-Zn8qFxU_90.000_100.000.wav 90.000 100.000 Skateboard +-esP4loyvjM_60.000_70.000.wav 60.000 70.000 Skateboard +-iB3a71aPew_30.000_40.000.wav 30.000 40.000 Skateboard +-lZapwtvwlg_0.000_10.000.wav 0.000 10.000 Skateboard +-mxMaMJCXL8_180.000_190.000.wav 180.000 190.000 Skateboard +-nYGTw9Sypg_20.000_30.000.wav 20.000 30.000 Skateboard +-oS19KshdlM_30.000_40.000.wav 30.000 40.000 Skateboard +-s6uxc77NWo_40.000_50.000.wav 40.000 50.000 Skateboard +-sCrXS2kJlA_30.000_40.000.wav 30.000 40.000 Skateboard +-saCvPTdQ7s_30.000_40.000.wav 30.000 40.000 Skateboard +-sb-knLiDic_20.000_30.000.wav 20.000 30.000 Skateboard +-tSwRvqaKWg_90.000_100.000.wav 90.000 100.000 Skateboard +-x_jV34hVq4_30.000_40.000.wav 30.000 40.000 Skateboard +--ljM2Kojag_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-4F1TX-T6T4_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-7HVWUwyMig_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-9pUUT-6o8U_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-Ei2LE71Dfg_20.000_30.000.wav 20.000 30.000 Ambulance (siren) +-LGTb-xyjzA_11.000_21.000.wav 11.000 21.000 Ambulance (siren) +-Y1qiiugnk8_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-YsrLG2K1TE_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-ZeMV790MXE_10.000_20.000.wav 10.000 20.000 Ambulance (siren) +-d-T8Y9-TOg_17.000_27.000.wav 17.000 27.000 Ambulance (siren) +-dcrL5JLmvo_11.000_21.000.wav 11.000 21.000 Ambulance (siren) +-fCSO8SVWZU_6.000_16.000.wav 6.000 16.000 Ambulance (siren) +-fGFQTGd2nA_10.000_20.000.wav 10.000 20.000 Ambulance (siren) +-hA1yMrEXz0_10.000_20.000.wav 10.000 20.000 Ambulance (siren) +-jnQgpHubNI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-k6p9n9y22Q_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-kr4SUjnm88_29.000_39.000.wav 29.000 39.000 Ambulance (siren) +-lyPnABQhCI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-od8LQAVgno_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-pVEgzu95Nc_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-w-9yF465IY_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-woquFRnQk8_16.000_26.000.wav 16.000 26.000 Ambulance (siren) +-xz75wUCln8_50.000_60.000.wav 50.000 60.000 Ambulance (siren) +-yGElLHdkEI_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-yPSgCn9AWo_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-z8jsgl3iHE_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +00H_s-krtg8_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +02u3P99INjs_8.000_18.000.wav 8.000 18.000 Ambulance (siren) +06RreMb5qbE_0.000_10.000.wav 0.000 10.000 Ambulance (siren) +0EPK7Pv_lbE_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +-0Eem_FuIto_15.000_25.000.wav 15.000 25.000 Fire engine, fire truck (siren) +-2sT5oBBWWY_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-45cKZA7Jww_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-4B435WQvag_20.000_30.000.wav 20.000 30.000 Fire engine, fire truck (siren) +-6qhtwdfGOA_23.000_33.000.wav 23.000 33.000 Fire engine, fire truck (siren) +-8uyNBFbdFc_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-Jsu4dbuO4A_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-KsPTvgJJVE_350.000_360.000.wav 350.000 360.000 Fire engine, fire truck (siren) +-PRrNx6_MD0_16.000_26.000.wav 16.000 26.000 Fire engine, fire truck (siren) +-QBo1W2w8II_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-QX-ddNtUvE_24.000_34.000.wav 24.000 34.000 Fire engine, fire truck (siren) +-RlUu1el2G4_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-SkO97C81Ms_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-T8QHPXfIC4_13.000_23.000.wav 13.000 23.000 Fire engine, fire truck (siren) +-USiTjZoh88_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-X0vNLwH1C0_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-Z3ByS_RCwI_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-ZtZOcg3s7M_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-cOjJ0Nvtlw_23.000_33.000.wav 23.000 33.000 Fire engine, fire truck (siren) +-cbYvBBXE6A_12.000_22.000.wav 12.000 22.000 Fire engine, fire truck (siren) +-eYUCWGQ_wU_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-hA1yMrEXz0_10.000_20.000.wav 10.000 20.000 Fire engine, fire truck (siren) +-hplTh4SGvs_90.000_100.000.wav 90.000 100.000 Fire engine, fire truck (siren) +-nPhg6Eu4b4_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-oCvKmNbhl0_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-oEGuMg8hT4_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-pvaJ4DwtRg_3.000_13.000.wav 3.000 13.000 Fire engine, fire truck (siren) +-qKRKDTbt4c_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-sJn3uUxpH8_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-sfn1NDHWJI_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +-09rxiqNNEs_30.000_40.000.wav 30.000 40.000 Civil defense siren +-3qh-WFUV2U_30.000_40.000.wav 30.000 40.000 Civil defense siren +-4JG_Ag99hY_30.000_40.000.wav 30.000 40.000 Civil defense siren +-60NmEaP0is_0.000_10.000.wav 0.000 10.000 Civil defense siren +-6cTEqIcics_30.000_40.000.wav 30.000 40.000 Civil defense siren +-6iVBmb5PZU_40.000_50.000.wav 40.000 50.000 Civil defense siren +-6qp8NjWffE_30.000_40.000.wav 30.000 40.000 Civil defense siren +-75iY1j3MeY_30.000_40.000.wav 30.000 40.000 Civil defense siren +-E3Yju3lrRo_30.000_40.000.wav 30.000 40.000 Civil defense siren +-FHSBdx5A3g_40.000_50.000.wav 40.000 50.000 Civil defense siren +-JhSzxTdcwY_30.000_40.000.wav 30.000 40.000 Civil defense siren +-OtNDK_Hxp8_30.000_40.000.wav 30.000 40.000 Civil defense siren +-S3_I0RiG3g_30.000_40.000.wav 30.000 40.000 Civil defense siren +-YMXgDKKAwU_30.000_40.000.wav 30.000 40.000 Civil defense siren +-c7XoYM-SSY_30.000_40.000.wav 30.000 40.000 Civil defense siren +-j8EeIX9ynk_30.000_40.000.wav 30.000 40.000 Civil defense siren +-t478yabOQw_30.000_40.000.wav 30.000 40.000 Civil defense siren +-uIyMR9luvg_30.000_40.000.wav 30.000 40.000 Civil defense siren +-wgP6ua-t4k_40.000_50.000.wav 40.000 50.000 Civil defense siren +-zGAb18JxmI_30.000_40.000.wav 30.000 40.000 Civil defense siren +03NLMEMi8-I_30.000_40.000.wav 30.000 40.000 Civil defense siren +0552YhBdeXo_30.000_40.000.wav 30.000 40.000 Civil defense siren +06TM6z3NvuY_30.000_40.000.wav 30.000 40.000 Civil defense siren +0CUi0oGUzjU_30.000_40.000.wav 30.000 40.000 Civil defense siren +0GpUFFJNFH8_30.000_40.000.wav 30.000 40.000 Civil defense siren +0H_WUo2srs0_30.000_40.000.wav 30.000 40.000 Civil defense siren +0HvYkBXQ44A_30.000_40.000.wav 30.000 40.000 Civil defense siren +0I6Mlp27_gM_30.000_40.000.wav 30.000 40.000 Civil defense siren +0JKcTVpby0I_30.000_40.000.wav 30.000 40.000 Civil defense siren +0PhU-PIsUMw_40.000_50.000.wav 40.000 50.000 Civil defense siren +-122tCXtFhU_30.000_40.000.wav 30.000 40.000 Police car (siren) +-1U98XBTyB4_30.000_40.000.wav 30.000 40.000 Police car (siren) +-2GlU3e0nTU_170.000_180.000.wav 170.000 180.000 Police car (siren) +-6WqJCSmkCw_70.000_80.000.wav 70.000 80.000 Police car (siren) +-AF7wp3ezww_140.000_150.000.wav 140.000 150.000 Police car (siren) +-AFASmp1fpk_6.000_16.000.wav 6.000 16.000 Police car (siren) +-F2lk9A8B8M_30.000_40.000.wav 30.000 40.000 Police car (siren) +-GPv09qi9A8_120.000_130.000.wav 120.000 130.000 Police car (siren) +-Hi-WpRGUpc_9.000_19.000.wav 9.000 19.000 Police car (siren) +-KsPTvgJJVE_350.000_360.000.wav 350.000 360.000 Police car (siren) +-MfBpxtGQmE_20.000_30.000.wav 20.000 30.000 Police car (siren) +-Pg4vVPs4bE_30.000_40.000.wav 30.000 40.000 Police car (siren) +-UCf_-3yzWU_290.000_300.000.wav 290.000 300.000 Police car (siren) +-VULyMtKazE_0.000_7.000.wav 0.000 7.000 Police car (siren) +-XRiLbb3Syo_2.000_12.000.wav 2.000 12.000 Police car (siren) +-XrpzGb6xCU_190.000_200.000.wav 190.000 200.000 Police car (siren) +-YsrLG2K1TE_30.000_40.000.wav 30.000 40.000 Police car (siren) +-ZtZOcg3s7M_30.000_40.000.wav 30.000 40.000 Police car (siren) +-_8fdnv6Crg_30.000_40.000.wav 30.000 40.000 Police car (siren) +-az6BooRLxw_40.000_50.000.wav 40.000 50.000 Police car (siren) +-bs3c27rEtc_30.000_40.000.wav 30.000 40.000 Police car (siren) +-dBTGdL4RFs_30.000_40.000.wav 30.000 40.000 Police car (siren) +-gKNRXbpAKs_30.000_40.000.wav 30.000 40.000 Police car (siren) +-hA1yMrEXz0_10.000_20.000.wav 10.000 20.000 Police car (siren) +-haSUR_IUto_30.000_40.000.wav 30.000 40.000 Police car (siren) +-l-DEfDAvNA_30.000_40.000.wav 30.000 40.000 Police car (siren) +-lWs7_49gss_30.000_40.000.wav 30.000 40.000 Police car (siren) +-lhnhB4rbGw_3.000_13.000.wav 3.000 13.000 Police car (siren) +-rkJeBBmiTQ_60.000_70.000.wav 60.000 70.000 Police car (siren) +-rs7FPxzc6w_8.000_18.000.wav 8.000 18.000 Police car (siren) +-20uudT97E0_30.000_40.000.wav 30.000 40.000 Screaming +-3bGlOhRkAo_140.000_150.000.wav 140.000 150.000 Screaming +-4pUrlMafww_1.000_11.000.wav 1.000 11.000 Screaming +-7R0ybQQAHg_60.000_70.000.wav 60.000 70.000 Screaming +-7gojlG6bE4_30.000_40.000.wav 30.000 40.000 Screaming +-GI5PbO6j50_30.000_40.000.wav 30.000 40.000 Screaming +-MuIRudOtxw_30.000_40.000.wav 30.000 40.000 Screaming +-WfQBr42ymw_30.000_40.000.wav 30.000 40.000 Screaming +-YOjIgYspsY_30.000_40.000.wav 30.000 40.000 Screaming +-g_AcRVFfXU_30.000_40.000.wav 30.000 40.000 Screaming +-gb5uvwsRpI_30.000_40.000.wav 30.000 40.000 Screaming +-iAwqlQ3TEk_0.000_3.000.wav 0.000 3.000 Screaming +-nJoxcmxz5g_30.000_40.000.wav 30.000 40.000 Screaming +-pwgypWE-J8_30.000_40.000.wav 30.000 40.000 Screaming +-pzasCR0kpc_30.000_40.000.wav 30.000 40.000 Screaming +-sUgHKZQKYc_30.000_40.000.wav 30.000 40.000 Screaming +-uazzQEmQ7c_0.000_10.000.wav 0.000 10.000 Screaming +-vHJU1wDRsY_30.000_40.000.wav 30.000 40.000 Screaming +0-RnTXpp8Q0_30.000_40.000.wav 30.000 40.000 Screaming +09YQukdYVI4_30.000_40.000.wav 30.000 40.000 Screaming +0Ees8KFCUXM_30.000_40.000.wav 30.000 40.000 Screaming +0EymGuYWkFk_30.000_40.000.wav 30.000 40.000 Screaming +0Nw1OyTsaAo_30.000_40.000.wav 30.000 40.000 Screaming +0YnOMAls83g_30.000_40.000.wav 30.000 40.000 Screaming +0_gyUQkLCY8_30.000_40.000.wav 30.000 40.000 Screaming +0_hnDV2SHBI_7.000_17.000.wav 7.000 17.000 Screaming +0cqEaAkbrbI_80.000_90.000.wav 80.000 90.000 Screaming +0hC044mDsWA_30.000_40.000.wav 30.000 40.000 Screaming +0kQANiakiH0_30.000_40.000.wav 30.000 40.000 Screaming +0rVBXpbgO8s_30.000_40.000.wav 30.000 40.000 Screaming +---lTs1dxhU_30.000_40.000.wav 30.000 40.000 Car +--330hg-Ocw_30.000_40.000.wav 30.000 40.000 Car +--8puiAGLhs_30.000_40.000.wav 30.000 40.000 Car +--9VR_F7CtY_30.000_40.000.wav 30.000 40.000 Car +--F70LWypIg_30.000_40.000.wav 30.000 40.000 Car +--P4wuph3Mc_0.000_8.000.wav 0.000 8.000 Car +--QvRbvnbUE_30.000_40.000.wav 30.000 40.000 Car +--SeOZy3Yik_30.000_40.000.wav 30.000 40.000 Car +--Zz7BgxSUg_30.000_40.000.wav 30.000 40.000 Car +--e0Vu_ruTc_30.000_40.000.wav 30.000 40.000 Car +--iFD6IyQW8_30.000_40.000.wav 30.000 40.000 Car +--jGnLqFsQ4_24.000_34.000.wav 24.000 34.000 Car +--jc0NAxK8M_30.000_40.000.wav 30.000 40.000 Car +--v1WjOJv-w_150.000_160.000.wav 150.000 160.000 Car +--xDffQ9Mwo_30.000_40.000.wav 30.000 40.000 Car +--yaQA8d1dI_6.000_16.000.wav 6.000 16.000 Car +--zLzL0sq3M_30.000_40.000.wav 30.000 40.000 Car +-0-jXXldDOU_10.000_20.000.wav 10.000 20.000 Car +-03ld83JliM_29.000_39.000.wav 29.000 39.000 Car +-0B-egfXU7E_30.000_40.000.wav 30.000 40.000 Car +-0Bkyt8iZ1I_8.000_18.000.wav 8.000 18.000 Car +-0CIk-OOp7Y_30.000_40.000.wav 30.000 40.000 Car +-0CRb8H4hzY_4.000_14.000.wav 4.000 14.000 Car +-0CY5NWBHyY_20.000_30.000.wav 20.000 30.000 Car +-0HsrVfb5vc_20.000_30.000.wav 20.000 30.000 Car +-0I89-H0AFo_26.000_36.000.wav 26.000 36.000 Car +-0P6VDQ1YDs_80.000_90.000.wav 80.000 90.000 Car +-0PrEsytvc0_30.000_40.000.wav 30.000 40.000 Car +-0RqnaXZu_E_30.000_40.000.wav 30.000 40.000 Car +-0Yynyhm1AY_14.000_24.000.wav 14.000 24.000 Car +---lTs1dxhU_30.000_40.000.wav 30.000 40.000 Car passing by +--P4wuph3Mc_0.000_8.000.wav 0.000 8.000 Car passing by +--xDffQ9Mwo_30.000_40.000.wav 30.000 40.000 Car passing by +--zLzL0sq3M_30.000_40.000.wav 30.000 40.000 Car passing by +--zbPxnl27o_20.000_30.000.wav 20.000 30.000 Car passing by +-0CRb8H4hzY_4.000_14.000.wav 4.000 14.000 Car passing by +-0MnD7jBvkE_0.000_4.000.wav 0.000 4.000 Car passing by +-0U3c4PN8sc_30.000_40.000.wav 30.000 40.000 Car passing by +-0Yynyhm1AY_14.000_24.000.wav 14.000 24.000 Car passing by +-10fWp7Pqs4_30.000_40.000.wav 30.000 40.000 Car passing by +-14BFlDzjS4_6.000_16.000.wav 6.000 16.000 Car passing by +-15nPYi2v1g_30.000_40.000.wav 30.000 40.000 Car passing by +-19pq3HJoBM_30.000_40.000.wav 30.000 40.000 Car passing by +-1BrkFLHD74_19.000_29.000.wav 19.000 29.000 Car passing by +-1HlfoHZCEE_6.000_16.000.wav 6.000 16.000 Car passing by +-1McjOPUzbo_30.000_40.000.wav 30.000 40.000 Car passing by +-1sGSNmgiPs_4.000_14.000.wav 4.000 14.000 Car passing by +-2-luek6dI8_30.000_40.000.wav 30.000 40.000 Car passing by +-21-RfxQscI_30.000_40.000.wav 30.000 40.000 Car passing by +-25LkbSjEos_30.000_40.000.wav 30.000 40.000 Car passing by +-2LJWaL2PuA_30.000_40.000.wav 30.000 40.000 Car passing by +-2ZbvsBSZmY_2.000_12.000.wav 2.000 12.000 Car passing by +-2cz2qQDmr4_30.000_40.000.wav 30.000 40.000 Car passing by +-31KUAOSg5U_5.000_15.000.wav 5.000 15.000 Car passing by +-35qBdzN9ck_30.000_40.000.wav 30.000 40.000 Car passing by +-3929cmVE20_30.000_40.000.wav 30.000 40.000 Car passing by +-3M-k4nIYIM_30.000_40.000.wav 30.000 40.000 Car passing by +-3MNphBfq_0_30.000_40.000.wav 30.000 40.000 Car passing by +-3_RSVYKkkk_30.000_40.000.wav 30.000 40.000 Car passing by +-3exNVlj92w_30.000_40.000.wav 30.000 40.000 Car passing by +--0w1YA1Hm4_30.000_40.000.wav 30.000 40.000 Bus +-0_vEaaXndY_11.000_21.000.wav 11.000 21.000 Bus +-5GcZwBvBdI_30.000_40.000.wav 30.000 40.000 Bus +-5digoPWn6U_8.000_18.000.wav 8.000 18.000 Bus +-79l4w4DsYM_30.000_40.000.wav 30.000 40.000 Bus +-7B4pbkIEas_30.000_40.000.wav 30.000 40.000 Bus +-8YTu7ZGA2w_30.000_40.000.wav 30.000 40.000 Bus +-93IM29_8rs_14.000_24.000.wav 14.000 24.000 Bus +-9GhPxGkpio_26.000_36.000.wav 26.000 36.000 Bus +-9J9xs7LM9Y_25.000_35.000.wav 25.000 35.000 Bus +-AY_lZLYJR8_8.000_18.000.wav 8.000 18.000 Bus +-AdQBgtN_4E_30.000_40.000.wav 30.000 40.000 Bus +-BxfsWlPUPY_30.000_40.000.wav 30.000 40.000 Bus +-CgCr8Eknm0_14.000_24.000.wav 14.000 24.000 Bus +-CnsvTDIXdE_20.000_30.000.wav 20.000 30.000 Bus +-CpMlnGhxEU_0.000_9.000.wav 0.000 9.000 Bus +-DP_cv0x_Ng_30.000_40.000.wav 30.000 40.000 Bus +-FEXRjcryZE_30.000_40.000.wav 30.000 40.000 Bus +-Fp2-w-iLiE_20.000_30.000.wav 20.000 30.000 Bus +-GLk6G9U09A_30.000_40.000.wav 30.000 40.000 Bus +-Ga9sSkpngg_30.000_40.000.wav 30.000 40.000 Bus +-H8V23dZoLo_0.000_10.000.wav 0.000 10.000 Bus +-HeQfwKbFzg_30.000_40.000.wav 30.000 40.000 Bus +-HzzEuFBiDU_30.000_40.000.wav 30.000 40.000 Bus +-I4INTpMKT4_30.000_40.000.wav 30.000 40.000 Bus +-II-7qJxKPc_21.000_31.000.wav 21.000 31.000 Bus +-LnpzyfTkF8_30.000_40.000.wav 30.000 40.000 Bus +-OgRshQfsi8_30.000_40.000.wav 30.000 40.000 Bus +-P53lJ1ViWk_30.000_40.000.wav 30.000 40.000 Bus +-PvNUvEov4Q_30.000_40.000.wav 30.000 40.000 Bus +--12UOziMF0_30.000_40.000.wav 30.000 40.000 Truck +--73E04RpiQ_0.000_9.000.wav 0.000 9.000 Truck +--J947HxQVM_0.000_9.000.wav 0.000 9.000 Truck +--bD1DVKlzQ_30.000_40.000.wav 30.000 40.000 Truck +--ivFZu-hlc_30.000_40.000.wav 30.000 40.000 Truck +--wuU7kzB5o_30.000_40.000.wav 30.000 40.000 Truck +-0B_CYyG5Dg_30.000_40.000.wav 30.000 40.000 Truck +-0JqTq_4jaE_40.000_50.000.wav 40.000 50.000 Truck +-0MrEZKJ5MQ_30.000_40.000.wav 30.000 40.000 Truck +-0awng26xQ8_30.000_40.000.wav 30.000 40.000 Truck +-0dq1Vg9rd8_30.000_40.000.wav 30.000 40.000 Truck +-0wkq7CUYME_310.000_320.000.wav 310.000 320.000 Truck +-14RXdkqYuI_30.000_40.000.wav 30.000 40.000 Truck +-1B3CzpiW1M_30.000_40.000.wav 30.000 40.000 Truck +-1Q21cZhHDE_30.000_40.000.wav 30.000 40.000 Truck +-1ZXXnBXJ6c_8.000_18.000.wav 8.000 18.000 Truck +-1s0DWApvT8_30.000_40.000.wav 30.000 40.000 Truck +-1s84_2Vn4g_30.000_40.000.wav 30.000 40.000 Truck +-26ansJluVo_30.000_40.000.wav 30.000 40.000 Truck +-2EscdO0l-A_30.000_40.000.wav 30.000 40.000 Truck +-2GlU3e0nTU_170.000_180.000.wav 170.000 180.000 Truck +-2NBZUCcvm0_30.000_40.000.wav 30.000 40.000 Truck +-2sT5oBBWWY_30.000_40.000.wav 30.000 40.000 Truck +-2vmprMUw10_30.000_40.000.wav 30.000 40.000 Truck +-2x4TB8VWvE_18.000_28.000.wav 18.000 28.000 Truck +-39q4y0tt-g_30.000_40.000.wav 30.000 40.000 Truck +-3N5rjPrNCc_190.000_200.000.wav 190.000 200.000 Truck +-3NcUIyJtFY_30.000_40.000.wav 30.000 40.000 Truck +-3PplV0ErOk_30.000_40.000.wav 30.000 40.000 Truck +-3gSkrDKNSA_27.000_37.000.wav 27.000 37.000 Truck +--p-rk_HBuU_30.000_40.000.wav 30.000 40.000 Motorcycle +-1WK72M4xeg_220.000_230.000.wav 220.000 230.000 Motorcycle +-1XfuJcdvfg_30.000_40.000.wav 30.000 40.000 Motorcycle +-3XWBAmjmaQ_11.000_21.000.wav 11.000 21.000 Motorcycle +-4-87UgJcUw_70.000_80.000.wav 70.000 80.000 Motorcycle +-4D3Gkyisyc_30.000_40.000.wav 30.000 40.000 Motorcycle +-5k5GyHd2So_4.000_14.000.wav 4.000 14.000 Motorcycle +-6A2L1U9b5Y_54.000_64.000.wav 54.000 64.000 Motorcycle +-6Yfati1N10_80.000_90.000.wav 80.000 90.000 Motorcycle +-7_o_GhpZpM_12.000_22.000.wav 12.000 22.000 Motorcycle +-7rZwMK6uSs_70.000_80.000.wav 70.000 80.000 Motorcycle +-85f5DKKfSo_30.000_40.000.wav 30.000 40.000 Motorcycle +-9Smdrt5zwk_40.000_50.000.wav 40.000 50.000 Motorcycle +-9gZLVDKpnE_30.000_40.000.wav 30.000 40.000 Motorcycle +-BGebo8V4XY_30.000_40.000.wav 30.000 40.000 Motorcycle +-DdiduB5B_w_190.000_200.000.wav 190.000 200.000 Motorcycle +-HIPq7T3eFI_11.000_21.000.wav 11.000 21.000 Motorcycle +-H_3oEkKe0M_50.000_60.000.wav 50.000 60.000 Motorcycle +-HmuMoykRqA_500.000_510.000.wav 500.000 510.000 Motorcycle +-IMRE_psvtI_30.000_40.000.wav 30.000 40.000 Motorcycle +-Ie4LSPDEF4_6.000_16.000.wav 6.000 16.000 Motorcycle +-J0F29UCZiA_70.000_80.000.wav 70.000 80.000 Motorcycle +-KFCJ7ydu2E_0.000_10.000.wav 0.000 10.000 Motorcycle +-KmDAgYb0Uo_100.000_110.000.wav 100.000 110.000 Motorcycle +-P7iW3WzNfc_400.000_410.000.wav 400.000 410.000 Motorcycle +-QMAKXzIGx4_10.000_20.000.wav 10.000 20.000 Motorcycle +-S-5z2vYtxw_10.000_20.000.wav 10.000 20.000 Motorcycle +-SlL0NZh51w_30.000_40.000.wav 30.000 40.000 Motorcycle +-US2mpJxbj4_30.000_40.000.wav 30.000 40.000 Motorcycle +-VO-C9C0uqY_1.000_11.000.wav 1.000 11.000 Motorcycle +--H_-CEB2wA_30.000_40.000.wav 30.000 40.000 Train +-1VsFy0eVJs_30.000_40.000.wav 30.000 40.000 Train +-1X7kpLnOpM_60.000_70.000.wav 60.000 70.000 Train +-3FIglJti0s_30.000_40.000.wav 30.000 40.000 Train +-5QrBL6MzLg_60.000_70.000.wav 60.000 70.000 Train +-6KOEEiAf9s_19.000_29.000.wav 19.000 29.000 Train +-97l_c6PToE_30.000_40.000.wav 30.000 40.000 Train +-9S5Z-uciLo_70.000_80.000.wav 70.000 80.000 Train +-CkgGfKepO4_140.000_150.000.wav 140.000 150.000 Train +-E0shPRxAbo_30.000_40.000.wav 30.000 40.000 Train +-Gbohom8C4Q_30.000_40.000.wav 30.000 40.000 Train +-JpQivta6MQ_20.000_30.000.wav 20.000 30.000 Train +-K9oTZj3mVQ_30.000_40.000.wav 30.000 40.000 Train +-KjE40DlSdU_0.000_10.000.wav 0.000 10.000 Train +-NrFtZ_xxFU_30.000_40.000.wav 30.000 40.000 Train +-PYRamK58Ss_0.000_10.000.wav 0.000 10.000 Train +-P_XDJt4p_s_30.000_40.000.wav 30.000 40.000 Train +-Pjylzex7oc_350.000_360.000.wav 350.000 360.000 Train +-QHuZGmIy_I_30.000_40.000.wav 30.000 40.000 Train +-Qfk_Q2ctBs_30.000_40.000.wav 30.000 40.000 Train +-RXKRoRPWXg_30.000_40.000.wav 30.000 40.000 Train +-VH414svzI0_30.000_40.000.wav 30.000 40.000 Train +-WFdYxE-PYI_30.000_40.000.wav 30.000 40.000 Train +-Wd1pV7UjWg_60.000_70.000.wav 60.000 70.000 Train +-XcC-UlbcRA_30.000_40.000.wav 30.000 40.000 Train +-Y2cD8xvCHI_30.000_40.000.wav 30.000 40.000 Train +-ZKZkMHe3cY_70.000_80.000.wav 70.000 80.000 Train +-Zq22n4OewA_30.000_40.000.wav 30.000 40.000 Train +-aZ7XC4LG2A_30.000_40.000.wav 30.000 40.000 Train +-abVemAm9HM_430.000_440.000.wav 430.000 440.000 Train +1T1i2rny8RU_30.000_40.000.wav 30.000 40.000 Ambulance (siren) +7DC3HtNi4fU_160.000_170.000.wav 160.000 170.000 Ambulance (siren) +-z8jsgl3iHE_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +00H_s-krtg8_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +0I6Mlp27_gM_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +3YaLkgUMhAA_110.000_120.000.wav 110.000 120.000 Fire engine, fire truck (siren) +4l78f9VZ9uE_30.000_40.000.wav 30.000 40.000 Fire engine, fire truck (siren) +35EOmSMTQ6I_30.000_40.000.wav 30.000 40.000 Civil defense siren +06RreMb5qbE_0.000_10.000.wav 0.000 10.000 Police car (siren) +0EPK7Pv_lbE_30.000_40.000.wav 30.000 40.000 Police car (siren) +0I6Mlp27_gM_30.000_40.000.wav 30.000 40.000 Police car (siren) +17VuPl9Wxvs_20.000_30.000.wav 20.000 30.000 Police car (siren) +4A1Ar1TIXIY_30.000_40.000.wav 30.000 40.000 Police car (siren) +-10fWp7Pqs4_30.000_40.000.wav 30.000 40.000 Car +-122tCXtFhU_30.000_40.000.wav 30.000 40.000 Car +-14BFlDzjS4_6.000_16.000.wav 6.000 16.000 Car +-1BrkFLHD74_19.000_29.000.wav 19.000 29.000 Car +-1HlfoHZCEE_6.000_16.000.wav 6.000 16.000 Car +-1McjOPUzbo_30.000_40.000.wav 30.000 40.000 Car +-1sGSNmgiPs_4.000_14.000.wav 4.000 14.000 Car +-25LkbSjEos_30.000_40.000.wav 30.000 40.000 Car +-2GlU3e0nTU_170.000_180.000.wav 170.000 180.000 Car +-2LJWaL2PuA_30.000_40.000.wav 30.000 40.000 Car +-2ZbvsBSZmY_2.000_12.000.wav 2.000 12.000 Car +-2cz2qQDmr4_30.000_40.000.wav 30.000 40.000 Car +-31KUAOSg5U_5.000_15.000.wav 5.000 15.000 Car +-35qBdzN9ck_30.000_40.000.wav 30.000 40.000 Car +-3929cmVE20_30.000_40.000.wav 30.000 40.000 Car +-3M-k4nIYIM_30.000_40.000.wav 30.000 40.000 Car +-3MNphBfq_0_30.000_40.000.wav 30.000 40.000 Car +-3_RSVYKkkk_30.000_40.000.wav 30.000 40.000 Car +-AF7wp3ezww_140.000_150.000.wav 140.000 150.000 Car +-Pg4vVPs4bE_30.000_40.000.wav 30.000 40.000 Car +-VULyMtKazE_0.000_7.000.wav 0.000 7.000 Car +-cbYvBBXE6A_12.000_22.000.wav 12.000 22.000 Car +06RreMb5qbE_0.000_10.000.wav 0.000 10.000 Car +0E4AqW9dmdk_30.000_40.000.wav 30.000 40.000 Car +0Hz4R_m0hmI_80.000_90.000.wav 80.000 90.000 Car +4Kpklmj-ze0_53.000_63.000.wav 53.000 63.000 Car +5tzTahLHylw_70.000_80.000.wav 70.000 80.000 Car +7NJ5TbNEIvA_250.000_260.000.wav 250.000 260.000 Car +9fCibkUT_gQ_30.000_40.000.wav 30.000 40.000 Car +9jYv9WuyknA_130.000_140.000.wav 130.000 140.000 Car +-l-DEfDAvNA_30.000_40.000.wav 30.000 40.000 Car passing by +9fCibkUT_gQ_30.000_40.000.wav 30.000 40.000 Car passing by +-jj2tyuf6-A_80.000_90.000.wav 80.000 90.000 Bus +-45cKZA7Jww_30.000_40.000.wav 30.000 40.000 Truck +-4B435WQvag_20.000_30.000.wav 20.000 30.000 Truck +-60XojQWWoc_30.000_40.000.wav 30.000 40.000 Truck +-6qhtwdfGOA_23.000_33.000.wav 23.000 33.000 Truck +-8OITuFZha8_30.000_40.000.wav 30.000 40.000 Truck +-8n2NqDFRko_30.000_40.000.wav 30.000 40.000 Truck +-AIrHVeCgtM_30.000_40.000.wav 30.000 40.000 Truck +-AVzYvKHwPg_30.000_40.000.wav 30.000 40.000 Truck +-BM_EAszxBg_30.000_40.000.wav 30.000 40.000 Truck +-Ei2LE71Dfg_20.000_30.000.wav 20.000 30.000 Truck +-FWkB2IDMhc_30.000_40.000.wav 30.000 40.000 Truck +-Jsu4dbuO4A_30.000_40.000.wav 30.000 40.000 Truck +-PRrNx6_MD0_16.000_26.000.wav 16.000 26.000 Truck +-X0vNLwH1C0_30.000_40.000.wav 30.000 40.000 Truck +-cbYvBBXE6A_12.000_22.000.wav 12.000 22.000 Truck +-oCvKmNbhl0_30.000_40.000.wav 30.000 40.000 Truck +-oV6dQu5tZo_30.000_40.000.wav 30.000 40.000 Truck +-qKRKDTbt4c_30.000_40.000.wav 30.000 40.000 Truck +-r8mfjRiHrU_30.000_40.000.wav 30.000 40.000 Truck +-s9kwrRilOY_30.000_40.000.wav 30.000 40.000 Truck +-uMiGr6xvRA_30.000_40.000.wav 30.000 40.000 Truck +-x70B12Mb-8_30.000_40.000.wav 30.000 40.000 Truck +-xYsfYZOI-Y_30.000_40.000.wav 30.000 40.000 Truck +-zxrdL6MlKI_30.000_40.000.wav 30.000 40.000 Truck +0C3kqtF76t8_50.000_60.000.wav 50.000 60.000 Truck +0HmiH-wKLB4_30.000_40.000.wav 30.000 40.000 Truck +0KskqFt3DoY_15.000_25.000.wav 15.000 25.000 Truck +0OiPtV9sd_w_30.000_40.000.wav 30.000 40.000 Truck +0VnoYVqd-yo_30.000_40.000.wav 30.000 40.000 Truck +3YaLkgUMhAA_110.000_120.000.wav 110.000 120.000 Truck +-nGBPqlRNg4_30.000_40.000.wav 30.000 40.000 Train +02w3vd_GgF0_390.000_400.000.wav 390.000 400.000 Train +0HqeYIREv8M_30.000_40.000.wav 30.000 40.000 Train +0IpYF91Fdt0_80.000_90.000.wav 80.000 90.000 Train +0NaZejdABG0_90.000_100.000.wav 90.000 100.000 Train +0RurXUfKyow_4.000_14.000.wav 4.000 14.000 Train +0_HnD-rW3lI_170.000_180.000.wav 170.000 180.000 Train +10i60V1RZkQ_210.000_220.000.wav 210.000 220.000 Train +1FJY5X1iY9I_170.000_180.000.wav 170.000 180.000 Train +1U0Ty6CW6AM_40.000_50.000.wav 40.000 50.000 Train +1hQLr88iCvg_30.000_40.000.wav 30.000 40.000 Train +1iUXERALOOs_190.000_200.000.wav 190.000 200.000 Train +1iWFlLpixKU_5.000_15.000.wav 5.000 15.000 Train +1oJAVJPX0YY_20.000_30.000.wav 20.000 30.000 Train +26dNsDuIt9Q_340.000_350.000.wav 340.000 350.000 Train +2BMHsKLcb7E_90.000_100.000.wav 90.000 100.000 Train +2RpOd9MJjyQ_10.000_20.000.wav 10.000 20.000 Train +2U4wSdl10to_200.000_210.000.wav 200.000 210.000 Train +2aBV6AZt5nk_570.000_580.000.wav 570.000 580.000 Train +3ntFslTK6hM_90.000_100.000.wav 90.000 100.000 Train diff --git a/audio_detection/audio_infer/metadata/class_labels_indices.csv b/audio_detection/audio_infer/metadata/class_labels_indices.csv new file mode 100644 index 0000000..3a2767e --- /dev/null +++ b/audio_detection/audio_infer/metadata/class_labels_indices.csv @@ -0,0 +1,528 @@ +index,mid,display_name +0,/m/09x0r,"Speech" +1,/m/05zppz,"Male speech, man speaking" +2,/m/02zsn,"Female speech, woman speaking" +3,/m/0ytgt,"Child speech, kid speaking" +4,/m/01h8n0,"Conversation" +5,/m/02qldy,"Narration, monologue" +6,/m/0261r1,"Babbling" +7,/m/0brhx,"Speech synthesizer" +8,/m/07p6fty,"Shout" +9,/m/07q4ntr,"Bellow" +10,/m/07rwj3x,"Whoop" +11,/m/07sr1lc,"Yell" +12,/m/04gy_2,"Battle cry" +13,/t/dd00135,"Children shouting" +14,/m/03qc9zr,"Screaming" +15,/m/02rtxlg,"Whispering" +16,/m/01j3sz,"Laughter" +17,/t/dd00001,"Baby laughter" +18,/m/07r660_,"Giggle" +19,/m/07s04w4,"Snicker" +20,/m/07sq110,"Belly laugh" +21,/m/07rgt08,"Chuckle, chortle" +22,/m/0463cq4,"Crying, sobbing" +23,/t/dd00002,"Baby cry, infant cry" +24,/m/07qz6j3,"Whimper" +25,/m/07qw_06,"Wail, moan" +26,/m/07plz5l,"Sigh" +27,/m/015lz1,"Singing" +28,/m/0l14jd,"Choir" +29,/m/01swy6,"Yodeling" +30,/m/02bk07,"Chant" +31,/m/01c194,"Mantra" +32,/t/dd00003,"Male singing" +33,/t/dd00004,"Female singing" +34,/t/dd00005,"Child singing" +35,/t/dd00006,"Synthetic singing" +36,/m/06bxc,"Rapping" +37,/m/02fxyj,"Humming" +38,/m/07s2xch,"Groan" +39,/m/07r4k75,"Grunt" +40,/m/01w250,"Whistling" +41,/m/0lyf6,"Breathing" +42,/m/07mzm6,"Wheeze" +43,/m/01d3sd,"Snoring" +44,/m/07s0dtb,"Gasp" +45,/m/07pyy8b,"Pant" +46,/m/07q0yl5,"Snort" +47,/m/01b_21,"Cough" +48,/m/0dl9sf8,"Throat clearing" +49,/m/01hsr_,"Sneeze" +50,/m/07ppn3j,"Sniff" +51,/m/06h7j,"Run" +52,/m/07qv_x_,"Shuffle" +53,/m/07pbtc8,"Walk, footsteps" +54,/m/03cczk,"Chewing, mastication" +55,/m/07pdhp0,"Biting" +56,/m/0939n_,"Gargling" +57,/m/01g90h,"Stomach rumble" +58,/m/03q5_w,"Burping, eructation" +59,/m/02p3nc,"Hiccup" +60,/m/02_nn,"Fart" +61,/m/0k65p,"Hands" +62,/m/025_jnm,"Finger snapping" +63,/m/0l15bq,"Clapping" +64,/m/01jg02,"Heart sounds, heartbeat" +65,/m/01jg1z,"Heart murmur" +66,/m/053hz1,"Cheering" +67,/m/028ght,"Applause" +68,/m/07rkbfh,"Chatter" +69,/m/03qtwd,"Crowd" +70,/m/07qfr4h,"Hubbub, speech noise, speech babble" +71,/t/dd00013,"Children playing" +72,/m/0jbk,"Animal" +73,/m/068hy,"Domestic animals, pets" +74,/m/0bt9lr,"Dog" +75,/m/05tny_,"Bark" +76,/m/07r_k2n,"Yip" +77,/m/07qf0zm,"Howl" +78,/m/07rc7d9,"Bow-wow" +79,/m/0ghcn6,"Growling" +80,/t/dd00136,"Whimper (dog)" +81,/m/01yrx,"Cat" +82,/m/02yds9,"Purr" +83,/m/07qrkrw,"Meow" +84,/m/07rjwbb,"Hiss" +85,/m/07r81j2,"Caterwaul" +86,/m/0ch8v,"Livestock, farm animals, working animals" +87,/m/03k3r,"Horse" +88,/m/07rv9rh,"Clip-clop" +89,/m/07q5rw0,"Neigh, whinny" +90,/m/01xq0k1,"Cattle, bovinae" +91,/m/07rpkh9,"Moo" +92,/m/0239kh,"Cowbell" +93,/m/068zj,"Pig" +94,/t/dd00018,"Oink" +95,/m/03fwl,"Goat" +96,/m/07q0h5t,"Bleat" +97,/m/07bgp,"Sheep" +98,/m/025rv6n,"Fowl" +99,/m/09b5t,"Chicken, rooster" +100,/m/07st89h,"Cluck" +101,/m/07qn5dc,"Crowing, cock-a-doodle-doo" +102,/m/01rd7k,"Turkey" +103,/m/07svc2k,"Gobble" +104,/m/09ddx,"Duck" +105,/m/07qdb04,"Quack" +106,/m/0dbvp,"Goose" +107,/m/07qwf61,"Honk" +108,/m/01280g,"Wild animals" +109,/m/0cdnk,"Roaring cats (lions, tigers)" +110,/m/04cvmfc,"Roar" +111,/m/015p6,"Bird" +112,/m/020bb7,"Bird vocalization, bird call, bird song" +113,/m/07pggtn,"Chirp, tweet" +114,/m/07sx8x_,"Squawk" +115,/m/0h0rv,"Pigeon, dove" +116,/m/07r_25d,"Coo" +117,/m/04s8yn,"Crow" +118,/m/07r5c2p,"Caw" +119,/m/09d5_,"Owl" +120,/m/07r_80w,"Hoot" +121,/m/05_wcq,"Bird flight, flapping wings" +122,/m/01z5f,"Canidae, dogs, wolves" +123,/m/06hps,"Rodents, rats, mice" +124,/m/04rmv,"Mouse" +125,/m/07r4gkf,"Patter" +126,/m/03vt0,"Insect" +127,/m/09xqv,"Cricket" +128,/m/09f96,"Mosquito" +129,/m/0h2mp,"Fly, housefly" +130,/m/07pjwq1,"Buzz" +131,/m/01h3n,"Bee, wasp, etc." +132,/m/09ld4,"Frog" +133,/m/07st88b,"Croak" +134,/m/078jl,"Snake" +135,/m/07qn4z3,"Rattle" +136,/m/032n05,"Whale vocalization" +137,/m/04rlf,"Music" +138,/m/04szw,"Musical instrument" +139,/m/0fx80y,"Plucked string instrument" +140,/m/0342h,"Guitar" +141,/m/02sgy,"Electric guitar" +142,/m/018vs,"Bass guitar" +143,/m/042v_gx,"Acoustic guitar" +144,/m/06w87,"Steel guitar, slide guitar" +145,/m/01glhc,"Tapping (guitar technique)" +146,/m/07s0s5r,"Strum" +147,/m/018j2,"Banjo" +148,/m/0jtg0,"Sitar" +149,/m/04rzd,"Mandolin" +150,/m/01bns_,"Zither" +151,/m/07xzm,"Ukulele" +152,/m/05148p4,"Keyboard (musical)" +153,/m/05r5c,"Piano" +154,/m/01s0ps,"Electric piano" +155,/m/013y1f,"Organ" +156,/m/03xq_f,"Electronic organ" +157,/m/03gvt,"Hammond organ" +158,/m/0l14qv,"Synthesizer" +159,/m/01v1d8,"Sampler" +160,/m/03q5t,"Harpsichord" +161,/m/0l14md,"Percussion" +162,/m/02hnl,"Drum kit" +163,/m/0cfdd,"Drum machine" +164,/m/026t6,"Drum" +165,/m/06rvn,"Snare drum" +166,/m/03t3fj,"Rimshot" +167,/m/02k_mr,"Drum roll" +168,/m/0bm02,"Bass drum" +169,/m/011k_j,"Timpani" +170,/m/01p970,"Tabla" +171,/m/01qbl,"Cymbal" +172,/m/03qtq,"Hi-hat" +173,/m/01sm1g,"Wood block" +174,/m/07brj,"Tambourine" +175,/m/05r5wn,"Rattle (instrument)" +176,/m/0xzly,"Maraca" +177,/m/0mbct,"Gong" +178,/m/016622,"Tubular bells" +179,/m/0j45pbj,"Mallet percussion" +180,/m/0dwsp,"Marimba, xylophone" +181,/m/0dwtp,"Glockenspiel" +182,/m/0dwt5,"Vibraphone" +183,/m/0l156b,"Steelpan" +184,/m/05pd6,"Orchestra" +185,/m/01kcd,"Brass instrument" +186,/m/0319l,"French horn" +187,/m/07gql,"Trumpet" +188,/m/07c6l,"Trombone" +189,/m/0l14_3,"Bowed string instrument" +190,/m/02qmj0d,"String section" +191,/m/07y_7,"Violin, fiddle" +192,/m/0d8_n,"Pizzicato" +193,/m/01xqw,"Cello" +194,/m/02fsn,"Double bass" +195,/m/085jw,"Wind instrument, woodwind instrument" +196,/m/0l14j_,"Flute" +197,/m/06ncr,"Saxophone" +198,/m/01wy6,"Clarinet" +199,/m/03m5k,"Harp" +200,/m/0395lw,"Bell" +201,/m/03w41f,"Church bell" +202,/m/027m70_,"Jingle bell" +203,/m/0gy1t2s,"Bicycle bell" +204,/m/07n_g,"Tuning fork" +205,/m/0f8s22,"Chime" +206,/m/026fgl,"Wind chime" +207,/m/0150b9,"Change ringing (campanology)" +208,/m/03qjg,"Harmonica" +209,/m/0mkg,"Accordion" +210,/m/0192l,"Bagpipes" +211,/m/02bxd,"Didgeridoo" +212,/m/0l14l2,"Shofar" +213,/m/07kc_,"Theremin" +214,/m/0l14t7,"Singing bowl" +215,/m/01hgjl,"Scratching (performance technique)" +216,/m/064t9,"Pop music" +217,/m/0glt670,"Hip hop music" +218,/m/02cz_7,"Beatboxing" +219,/m/06by7,"Rock music" +220,/m/03lty,"Heavy metal" +221,/m/05r6t,"Punk rock" +222,/m/0dls3,"Grunge" +223,/m/0dl5d,"Progressive rock" +224,/m/07sbbz2,"Rock and roll" +225,/m/05w3f,"Psychedelic rock" +226,/m/06j6l,"Rhythm and blues" +227,/m/0gywn,"Soul music" +228,/m/06cqb,"Reggae" +229,/m/01lyv,"Country" +230,/m/015y_n,"Swing music" +231,/m/0gg8l,"Bluegrass" +232,/m/02x8m,"Funk" +233,/m/02w4v,"Folk music" +234,/m/06j64v,"Middle Eastern music" +235,/m/03_d0,"Jazz" +236,/m/026z9,"Disco" +237,/m/0ggq0m,"Classical music" +238,/m/05lls,"Opera" +239,/m/02lkt,"Electronic music" +240,/m/03mb9,"House music" +241,/m/07gxw,"Techno" +242,/m/07s72n,"Dubstep" +243,/m/0283d,"Drum and bass" +244,/m/0m0jc,"Electronica" +245,/m/08cyft,"Electronic dance music" +246,/m/0fd3y,"Ambient music" +247,/m/07lnk,"Trance music" +248,/m/0g293,"Music of Latin America" +249,/m/0ln16,"Salsa music" +250,/m/0326g,"Flamenco" +251,/m/0155w,"Blues" +252,/m/05fw6t,"Music for children" +253,/m/02v2lh,"New-age music" +254,/m/0y4f8,"Vocal music" +255,/m/0z9c,"A capella" +256,/m/0164x2,"Music of Africa" +257,/m/0145m,"Afrobeat" +258,/m/02mscn,"Christian music" +259,/m/016cjb,"Gospel music" +260,/m/028sqc,"Music of Asia" +261,/m/015vgc,"Carnatic music" +262,/m/0dq0md,"Music of Bollywood" +263,/m/06rqw,"Ska" +264,/m/02p0sh1,"Traditional music" +265,/m/05rwpb,"Independent music" +266,/m/074ft,"Song" +267,/m/025td0t,"Background music" +268,/m/02cjck,"Theme music" +269,/m/03r5q_,"Jingle (music)" +270,/m/0l14gg,"Soundtrack music" +271,/m/07pkxdp,"Lullaby" +272,/m/01z7dr,"Video game music" +273,/m/0140xf,"Christmas music" +274,/m/0ggx5q,"Dance music" +275,/m/04wptg,"Wedding music" +276,/t/dd00031,"Happy music" +277,/t/dd00032,"Funny music" +278,/t/dd00033,"Sad music" +279,/t/dd00034,"Tender music" +280,/t/dd00035,"Exciting music" +281,/t/dd00036,"Angry music" +282,/t/dd00037,"Scary music" +283,/m/03m9d0z,"Wind" +284,/m/09t49,"Rustling leaves" +285,/t/dd00092,"Wind noise (microphone)" +286,/m/0jb2l,"Thunderstorm" +287,/m/0ngt1,"Thunder" +288,/m/0838f,"Water" +289,/m/06mb1,"Rain" +290,/m/07r10fb,"Raindrop" +291,/t/dd00038,"Rain on surface" +292,/m/0j6m2,"Stream" +293,/m/0j2kx,"Waterfall" +294,/m/05kq4,"Ocean" +295,/m/034srq,"Waves, surf" +296,/m/06wzb,"Steam" +297,/m/07swgks,"Gurgling" +298,/m/02_41,"Fire" +299,/m/07pzfmf,"Crackle" +300,/m/07yv9,"Vehicle" +301,/m/019jd,"Boat, Water vehicle" +302,/m/0hsrw,"Sailboat, sailing ship" +303,/m/056ks2,"Rowboat, canoe, kayak" +304,/m/02rlv9,"Motorboat, speedboat" +305,/m/06q74,"Ship" +306,/m/012f08,"Motor vehicle (road)" +307,/m/0k4j,"Car" +308,/m/0912c9,"Vehicle horn, car horn, honking" +309,/m/07qv_d5,"Toot" +310,/m/02mfyn,"Car alarm" +311,/m/04gxbd,"Power windows, electric windows" +312,/m/07rknqz,"Skidding" +313,/m/0h9mv,"Tire squeal" +314,/t/dd00134,"Car passing by" +315,/m/0ltv,"Race car, auto racing" +316,/m/07r04,"Truck" +317,/m/0gvgw0,"Air brake" +318,/m/05x_td,"Air horn, truck horn" +319,/m/02rhddq,"Reversing beeps" +320,/m/03cl9h,"Ice cream truck, ice cream van" +321,/m/01bjv,"Bus" +322,/m/03j1ly,"Emergency vehicle" +323,/m/04qvtq,"Police car (siren)" +324,/m/012n7d,"Ambulance (siren)" +325,/m/012ndj,"Fire engine, fire truck (siren)" +326,/m/04_sv,"Motorcycle" +327,/m/0btp2,"Traffic noise, roadway noise" +328,/m/06d_3,"Rail transport" +329,/m/07jdr,"Train" +330,/m/04zmvq,"Train whistle" +331,/m/0284vy3,"Train horn" +332,/m/01g50p,"Railroad car, train wagon" +333,/t/dd00048,"Train wheels squealing" +334,/m/0195fx,"Subway, metro, underground" +335,/m/0k5j,"Aircraft" +336,/m/014yck,"Aircraft engine" +337,/m/04229,"Jet engine" +338,/m/02l6bg,"Propeller, airscrew" +339,/m/09ct_,"Helicopter" +340,/m/0cmf2,"Fixed-wing aircraft, airplane" +341,/m/0199g,"Bicycle" +342,/m/06_fw,"Skateboard" +343,/m/02mk9,"Engine" +344,/t/dd00065,"Light engine (high frequency)" +345,/m/08j51y,"Dental drill, dentist's drill" +346,/m/01yg9g,"Lawn mower" +347,/m/01j4z9,"Chainsaw" +348,/t/dd00066,"Medium engine (mid frequency)" +349,/t/dd00067,"Heavy engine (low frequency)" +350,/m/01h82_,"Engine knocking" +351,/t/dd00130,"Engine starting" +352,/m/07pb8fc,"Idling" +353,/m/07q2z82,"Accelerating, revving, vroom" +354,/m/02dgv,"Door" +355,/m/03wwcy,"Doorbell" +356,/m/07r67yg,"Ding-dong" +357,/m/02y_763,"Sliding door" +358,/m/07rjzl8,"Slam" +359,/m/07r4wb8,"Knock" +360,/m/07qcpgn,"Tap" +361,/m/07q6cd_,"Squeak" +362,/m/0642b4,"Cupboard open or close" +363,/m/0fqfqc,"Drawer open or close" +364,/m/04brg2,"Dishes, pots, and pans" +365,/m/023pjk,"Cutlery, silverware" +366,/m/07pn_8q,"Chopping (food)" +367,/m/0dxrf,"Frying (food)" +368,/m/0fx9l,"Microwave oven" +369,/m/02pjr4,"Blender" +370,/m/02jz0l,"Water tap, faucet" +371,/m/0130jx,"Sink (filling or washing)" +372,/m/03dnzn,"Bathtub (filling or washing)" +373,/m/03wvsk,"Hair dryer" +374,/m/01jt3m,"Toilet flush" +375,/m/012xff,"Toothbrush" +376,/m/04fgwm,"Electric toothbrush" +377,/m/0d31p,"Vacuum cleaner" +378,/m/01s0vc,"Zipper (clothing)" +379,/m/03v3yw,"Keys jangling" +380,/m/0242l,"Coin (dropping)" +381,/m/01lsmm,"Scissors" +382,/m/02g901,"Electric shaver, electric razor" +383,/m/05rj2,"Shuffling cards" +384,/m/0316dw,"Typing" +385,/m/0c2wf,"Typewriter" +386,/m/01m2v,"Computer keyboard" +387,/m/081rb,"Writing" +388,/m/07pp_mv,"Alarm" +389,/m/07cx4,"Telephone" +390,/m/07pp8cl,"Telephone bell ringing" +391,/m/01hnzm,"Ringtone" +392,/m/02c8p,"Telephone dialing, DTMF" +393,/m/015jpf,"Dial tone" +394,/m/01z47d,"Busy signal" +395,/m/046dlr,"Alarm clock" +396,/m/03kmc9,"Siren" +397,/m/0dgbq,"Civil defense siren" +398,/m/030rvx,"Buzzer" +399,/m/01y3hg,"Smoke detector, smoke alarm" +400,/m/0c3f7m,"Fire alarm" +401,/m/04fq5q,"Foghorn" +402,/m/0l156k,"Whistle" +403,/m/06hck5,"Steam whistle" +404,/t/dd00077,"Mechanisms" +405,/m/02bm9n,"Ratchet, pawl" +406,/m/01x3z,"Clock" +407,/m/07qjznt,"Tick" +408,/m/07qjznl,"Tick-tock" +409,/m/0l7xg,"Gears" +410,/m/05zc1,"Pulleys" +411,/m/0llzx,"Sewing machine" +412,/m/02x984l,"Mechanical fan" +413,/m/025wky1,"Air conditioning" +414,/m/024dl,"Cash register" +415,/m/01m4t,"Printer" +416,/m/0dv5r,"Camera" +417,/m/07bjf,"Single-lens reflex camera" +418,/m/07k1x,"Tools" +419,/m/03l9g,"Hammer" +420,/m/03p19w,"Jackhammer" +421,/m/01b82r,"Sawing" +422,/m/02p01q,"Filing (rasp)" +423,/m/023vsd,"Sanding" +424,/m/0_ksk,"Power tool" +425,/m/01d380,"Drill" +426,/m/014zdl,"Explosion" +427,/m/032s66,"Gunshot, gunfire" +428,/m/04zjc,"Machine gun" +429,/m/02z32qm,"Fusillade" +430,/m/0_1c,"Artillery fire" +431,/m/073cg4,"Cap gun" +432,/m/0g6b5,"Fireworks" +433,/g/122z_qxw,"Firecracker" +434,/m/07qsvvw,"Burst, pop" +435,/m/07pxg6y,"Eruption" +436,/m/07qqyl4,"Boom" +437,/m/083vt,"Wood" +438,/m/07pczhz,"Chop" +439,/m/07pl1bw,"Splinter" +440,/m/07qs1cx,"Crack" +441,/m/039jq,"Glass" +442,/m/07q7njn,"Chink, clink" +443,/m/07rn7sz,"Shatter" +444,/m/04k94,"Liquid" +445,/m/07rrlb6,"Splash, splatter" +446,/m/07p6mqd,"Slosh" +447,/m/07qlwh6,"Squish" +448,/m/07r5v4s,"Drip" +449,/m/07prgkl,"Pour" +450,/m/07pqc89,"Trickle, dribble" +451,/t/dd00088,"Gush" +452,/m/07p7b8y,"Fill (with liquid)" +453,/m/07qlf79,"Spray" +454,/m/07ptzwd,"Pump (liquid)" +455,/m/07ptfmf,"Stir" +456,/m/0dv3j,"Boiling" +457,/m/0790c,"Sonar" +458,/m/0dl83,"Arrow" +459,/m/07rqsjt,"Whoosh, swoosh, swish" +460,/m/07qnq_y,"Thump, thud" +461,/m/07rrh0c,"Thunk" +462,/m/0b_fwt,"Electronic tuner" +463,/m/02rr_,"Effects unit" +464,/m/07m2kt,"Chorus effect" +465,/m/018w8,"Basketball bounce" +466,/m/07pws3f,"Bang" +467,/m/07ryjzk,"Slap, smack" +468,/m/07rdhzs,"Whack, thwack" +469,/m/07pjjrj,"Smash, crash" +470,/m/07pc8lb,"Breaking" +471,/m/07pqn27,"Bouncing" +472,/m/07rbp7_,"Whip" +473,/m/07pyf11,"Flap" +474,/m/07qb_dv,"Scratch" +475,/m/07qv4k0,"Scrape" +476,/m/07pdjhy,"Rub" +477,/m/07s8j8t,"Roll" +478,/m/07plct2,"Crushing" +479,/t/dd00112,"Crumpling, crinkling" +480,/m/07qcx4z,"Tearing" +481,/m/02fs_r,"Beep, bleep" +482,/m/07qwdck,"Ping" +483,/m/07phxs1,"Ding" +484,/m/07rv4dm,"Clang" +485,/m/07s02z0,"Squeal" +486,/m/07qh7jl,"Creak" +487,/m/07qwyj0,"Rustle" +488,/m/07s34ls,"Whir" +489,/m/07qmpdm,"Clatter" +490,/m/07p9k1k,"Sizzle" +491,/m/07qc9xj,"Clicking" +492,/m/07rwm0c,"Clickety-clack" +493,/m/07phhsh,"Rumble" +494,/m/07qyrcz,"Plop" +495,/m/07qfgpx,"Jingle, tinkle" +496,/m/07rcgpl,"Hum" +497,/m/07p78v5,"Zing" +498,/t/dd00121,"Boing" +499,/m/07s12q4,"Crunch" +500,/m/028v0c,"Silence" +501,/m/01v_m0,"Sine wave" +502,/m/0b9m1,"Harmonic" +503,/m/0hdsk,"Chirp tone" +504,/m/0c1dj,"Sound effect" +505,/m/07pt_g0,"Pulse" +506,/t/dd00125,"Inside, small room" +507,/t/dd00126,"Inside, large room or hall" +508,/t/dd00127,"Inside, public space" +509,/t/dd00128,"Outside, urban or manmade" +510,/t/dd00129,"Outside, rural or natural" +511,/m/01b9nn,"Reverberation" +512,/m/01jnbd,"Echo" +513,/m/096m7z,"Noise" +514,/m/06_y0by,"Environmental noise" +515,/m/07rgkc5,"Static" +516,/m/06xkwv,"Mains hum" +517,/m/0g12c5,"Distortion" +518,/m/08p9q4,"Sidetone" +519,/m/07szfh9,"Cacophony" +520,/m/0chx_,"White noise" +521,/m/0cj0r,"Pink noise" +522,/m/07p_0gm,"Throbbing" +523,/m/01jwx6,"Vibration" +524,/m/07c52,"Television" +525,/m/06bz3,"Radio" +526,/m/07hvw1,"Field recording" diff --git a/audio_detection/audio_infer/pytorch/evaluate.py b/audio_detection/audio_infer/pytorch/evaluate.py new file mode 100644 index 0000000..7f1fa38 --- /dev/null +++ b/audio_detection/audio_infer/pytorch/evaluate.py @@ -0,0 +1,42 @@ +from sklearn import metrics + +from pytorch_utils import forward + + +class Evaluator(object): + def __init__(self, model): + """Evaluator. + + Args: + model: object + """ + self.model = model + + def evaluate(self, data_loader): + """Forward evaluation data and calculate statistics. + + Args: + data_loader: object + + Returns: + statistics: dict, + {'average_precision': (classes_num,), 'auc': (classes_num,)} + """ + + # Forward + output_dict = forward( + model=self.model, + generator=data_loader, + return_target=True) + + clipwise_output = output_dict['clipwise_output'] # (audios_num, classes_num) + target = output_dict['target'] # (audios_num, classes_num) + + average_precision = metrics.average_precision_score( + target, clipwise_output, average=None) + + auc = metrics.roc_auc_score(target, clipwise_output, average=None) + + statistics = {'average_precision': average_precision, 'auc': auc} + + return statistics \ No newline at end of file diff --git a/audio_detection/audio_infer/pytorch/finetune_template.py b/audio_detection/audio_infer/pytorch/finetune_template.py new file mode 100644 index 0000000..dd43e46 --- /dev/null +++ b/audio_detection/audio_infer/pytorch/finetune_template.py @@ -0,0 +1,127 @@ +import os +import sys +sys.path.insert(1, os.path.join(sys.path[0], '../utils')) +import numpy as np +import argparse +import h5py +import math +import time +import logging +import matplotlib.pyplot as plt + +import torch +torch.backends.cudnn.benchmark=True +torch.manual_seed(0) +import torch.nn as nn +import torch.nn.functional as F +import torch.optim as optim +import torch.utils.data + +from utilities import get_filename +from models import * +import config + + +class Transfer_Cnn14(nn.Module): + def __init__(self, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, classes_num, freeze_base): + """Classifier for a new task using pretrained Cnn14 as a sub module. + """ + super(Transfer_Cnn14, self).__init__() + audioset_classes_num = 527 + + self.base = Cnn14(sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, audioset_classes_num) + + # Transfer to another task layer + self.fc_transfer = nn.Linear(2048, classes_num, bias=True) + + if freeze_base: + # Freeze AudioSet pretrained layers + for param in self.base.parameters(): + param.requires_grad = False + + self.init_weights() + + def init_weights(self): + init_layer(self.fc_transfer) + + def load_from_pretrain(self, pretrained_checkpoint_path): + checkpoint = torch.load(pretrained_checkpoint_path) + self.base.load_state_dict(checkpoint['model']) + + def forward(self, input, mixup_lambda=None): + """Input: (batch_size, data_length) + """ + output_dict = self.base(input, mixup_lambda) + embedding = output_dict['embedding'] + + clipwise_output = torch.log_softmax(self.fc_transfer(embedding), dim=-1) + output_dict['clipwise_output'] = clipwise_output + + return output_dict + + +def train(args): + + # Arugments & parameters + sample_rate = args.sample_rate + window_size = args.window_size + hop_size = args.hop_size + mel_bins = args.mel_bins + fmin = args.fmin + fmax = args.fmax + model_type = args.model_type + pretrained_checkpoint_path = args.pretrained_checkpoint_path + freeze_base = args.freeze_base + device = 'cuda' if (args.cuda and torch.cuda.is_available()) else 'cpu' + + classes_num = config.classes_num + pretrain = True if pretrained_checkpoint_path else False + + # Model + Model = eval(model_type) + model = Model(sample_rate, window_size, hop_size, mel_bins, fmin, fmax, + classes_num, freeze_base) + + # Load pretrained model + if pretrain: + logging.info('Load pretrained model from {}'.format(pretrained_checkpoint_path)) + model.load_from_pretrain(pretrained_checkpoint_path) + + # Parallel + print('GPU number: {}'.format(torch.cuda.device_count())) + model = torch.nn.DataParallel(model) + + if 'cuda' in device: + model.to(device) + + print('Load pretrained model successfully!') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Example of parser. ') + subparsers = parser.add_subparsers(dest='mode') + + # Train + parser_train = subparsers.add_parser('train') + parser_train.add_argument('--sample_rate', type=int, required=True) + parser_train.add_argument('--window_size', type=int, required=True) + parser_train.add_argument('--hop_size', type=int, required=True) + parser_train.add_argument('--mel_bins', type=int, required=True) + parser_train.add_argument('--fmin', type=int, required=True) + parser_train.add_argument('--fmax', type=int, required=True) + parser_train.add_argument('--model_type', type=str, required=True) + parser_train.add_argument('--pretrained_checkpoint_path', type=str) + parser_train.add_argument('--freeze_base', action='store_true', default=False) + parser_train.add_argument('--cuda', action='store_true', default=False) + + # Parse arguments + args = parser.parse_args() + args.filename = get_filename(__file__) + + if args.mode == 'train': + train(args) + + else: + raise Exception('Error argument!') \ No newline at end of file diff --git a/audio_detection/audio_infer/pytorch/inference.py b/audio_detection/audio_infer/pytorch/inference.py new file mode 100644 index 0000000..49dc75f --- /dev/null +++ b/audio_detection/audio_infer/pytorch/inference.py @@ -0,0 +1,206 @@ +import os +import sys +sys.path.insert(1, os.path.join(sys.path[0], '../utils')) +import numpy as np +import argparse +import librosa +import matplotlib.pyplot as plt +import torch + +from utilities import create_folder, get_filename +from models import * +from pytorch_utils import move_data_to_device +import config + +def audio_tagging(args): + """Inference audio tagging result of an audio clip. + """ + + # Arugments & parameters + sample_rate = args.sample_rate + window_size = args.window_size + hop_size = args.hop_size + mel_bins = args.mel_bins + fmin = args.fmin + fmax = args.fmax + model_type = args.model_type + checkpoint_path = args.checkpoint_path + audio_path = args.audio_path + device = torch.device('cuda') if args.cuda and torch.cuda.is_available() else torch.device('cpu') + + classes_num = config.classes_num + labels = config.labels + + # Model + Model = eval(model_type) + model = Model(sample_rate=sample_rate, window_size=window_size, + hop_size=hop_size, mel_bins=mel_bins, fmin=fmin, fmax=fmax, + classes_num=classes_num) + + checkpoint = torch.load(checkpoint_path, map_location=device) + model.load_state_dict(checkpoint['model']) + + # Parallel + if 'cuda' in str(device): + model.to(device) + print('GPU number: {}'.format(torch.cuda.device_count())) + model = torch.nn.DataParallel(model) + else: + print('Using CPU.') + + # Load audio + (waveform, _) = librosa.core.load(audio_path, sr=sample_rate, mono=True) + + waveform = waveform[None, :] # (1, audio_length) + waveform = move_data_to_device(waveform, device) + + # Forward + with torch.no_grad(): + model.eval() + batch_output_dict = model(waveform, None) + + clipwise_output = batch_output_dict['clipwise_output'].data.cpu().numpy()[0] + """(classes_num,)""" + + sorted_indexes = np.argsort(clipwise_output)[::-1] + + # Print audio tagging top probabilities + for k in range(10): + print('{}: {:.3f}'.format(np.array(labels)[sorted_indexes[k]], + clipwise_output[sorted_indexes[k]])) + + # Print embedding + if 'embedding' in batch_output_dict.keys(): + embedding = batch_output_dict['embedding'].data.cpu().numpy()[0] + print('embedding: {}'.format(embedding.shape)) + + return clipwise_output, labels + + +def sound_event_detection(args): + """Inference sound event detection result of an audio clip. + """ + + # Arugments & parameters + sample_rate = args.sample_rate + window_size = args.window_size + hop_size = args.hop_size + mel_bins = args.mel_bins + fmin = args.fmin + fmax = args.fmax + model_type = args.model_type + checkpoint_path = args.checkpoint_path + audio_path = args.audio_path + device = torch.device('cuda') if args.cuda and torch.cuda.is_available() else torch.device('cpu') + + classes_num = config.classes_num + labels = config.labels + frames_per_second = sample_rate // hop_size + + # Paths + fig_path = os.path.join('results', '{}.png'.format(get_filename(audio_path))) + create_folder(os.path.dirname(fig_path)) + + # Model + Model = eval(model_type) + model = Model(sample_rate=sample_rate, window_size=window_size, + hop_size=hop_size, mel_bins=mel_bins, fmin=fmin, fmax=fmax, + classes_num=classes_num) + + checkpoint = torch.load(checkpoint_path, map_location=device) + model.load_state_dict(checkpoint['model']) + + # Parallel + print('GPU number: {}'.format(torch.cuda.device_count())) + model = torch.nn.DataParallel(model) + + if 'cuda' in str(device): + model.to(device) + + # Load audio + (waveform, _) = librosa.core.load(audio_path, sr=sample_rate, mono=True) + + waveform = waveform[None, :] # (1, audio_length) + waveform = move_data_to_device(waveform, device) + + # Forward + with torch.no_grad(): + model.eval() + batch_output_dict = model(waveform, None) + + framewise_output = batch_output_dict['framewise_output'].data.cpu().numpy()[0] + """(time_steps, classes_num)""" + + print('Sound event detection result (time_steps x classes_num): {}'.format( + framewise_output.shape)) + + sorted_indexes = np.argsort(np.max(framewise_output, axis=0))[::-1] + + top_k = 10 # Show top results + top_result_mat = framewise_output[:, sorted_indexes[0 : top_k]] + """(time_steps, top_k)""" + + # Plot result + stft = librosa.core.stft(y=waveform[0].data.cpu().numpy(), n_fft=window_size, + hop_length=hop_size, window='hann', center=True) + frames_num = stft.shape[-1] + + fig, axs = plt.subplots(2, 1, sharex=True, figsize=(10, 4)) + axs[0].matshow(np.log(np.abs(stft)), origin='lower', aspect='auto', cmap='jet') + axs[0].set_ylabel('Frequency bins') + axs[0].set_title('Log spectrogram') + axs[1].matshow(top_result_mat.T, origin='upper', aspect='auto', cmap='jet', vmin=0, vmax=1) + axs[1].xaxis.set_ticks(np.arange(0, frames_num, frames_per_second)) + axs[1].xaxis.set_ticklabels(np.arange(0, frames_num / frames_per_second)) + axs[1].yaxis.set_ticks(np.arange(0, top_k)) + axs[1].yaxis.set_ticklabels(np.array(labels)[sorted_indexes[0 : top_k]]) + axs[1].yaxis.grid(color='k', linestyle='solid', linewidth=0.3, alpha=0.3) + axs[1].set_xlabel('Seconds') + axs[1].xaxis.set_ticks_position('bottom') + + plt.tight_layout() + plt.savefig(fig_path) + print('Save sound event detection visualization to {}'.format(fig_path)) + + return framewise_output, labels + + +if __name__ == '__main__': + + parser = argparse.ArgumentParser(description='Example of parser. ') + subparsers = parser.add_subparsers(dest='mode') + + parser_at = subparsers.add_parser('audio_tagging') + parser_at.add_argument('--sample_rate', type=int, default=32000) + parser_at.add_argument('--window_size', type=int, default=1024) + parser_at.add_argument('--hop_size', type=int, default=320) + parser_at.add_argument('--mel_bins', type=int, default=64) + parser_at.add_argument('--fmin', type=int, default=50) + parser_at.add_argument('--fmax', type=int, default=14000) + parser_at.add_argument('--model_type', type=str, required=True) + parser_at.add_argument('--checkpoint_path', type=str, required=True) + parser_at.add_argument('--audio_path', type=str, required=True) + parser_at.add_argument('--cuda', action='store_true', default=False) + + parser_sed = subparsers.add_parser('sound_event_detection') + parser_sed.add_argument('--sample_rate', type=int, default=32000) + parser_sed.add_argument('--window_size', type=int, default=1024) + parser_sed.add_argument('--hop_size', type=int, default=320) + parser_sed.add_argument('--mel_bins', type=int, default=64) + parser_sed.add_argument('--fmin', type=int, default=50) + parser_sed.add_argument('--fmax', type=int, default=14000) + parser_sed.add_argument('--model_type', type=str, required=True) + parser_sed.add_argument('--checkpoint_path', type=str, required=True) + parser_sed.add_argument('--audio_path', type=str, required=True) + parser_sed.add_argument('--cuda', action='store_true', default=False) + + args = parser.parse_args() + + if args.mode == 'audio_tagging': + audio_tagging(args) + + elif args.mode == 'sound_event_detection': + sound_event_detection(args) + + else: + raise Exception('Error argument!') \ No newline at end of file diff --git a/audio_detection/audio_infer/pytorch/losses.py b/audio_detection/audio_infer/pytorch/losses.py new file mode 100644 index 0000000..587e8a6 --- /dev/null +++ b/audio_detection/audio_infer/pytorch/losses.py @@ -0,0 +1,14 @@ +import torch +import torch.nn.functional as F + + +def clip_bce(output_dict, target_dict): + """Binary crossentropy loss. + """ + return F.binary_cross_entropy( + output_dict['clipwise_output'], target_dict['target']) + + +def get_loss_func(loss_type): + if loss_type == 'clip_bce': + return clip_bce \ No newline at end of file diff --git a/audio_detection/audio_infer/pytorch/main.py b/audio_detection/audio_infer/pytorch/main.py new file mode 100644 index 0000000..3582935 --- /dev/null +++ b/audio_detection/audio_infer/pytorch/main.py @@ -0,0 +1,378 @@ +import os +import sys +sys.path.insert(1, os.path.join(sys.path[0], '../utils')) +import numpy as np +import argparse +import time +import logging + +import torch +import torch.nn as nn +import torch.nn.functional as F +import torch.optim as optim +import torch.utils.data + +from utilities import (create_folder, get_filename, create_logging, Mixup, + StatisticsContainer) +from models import (PVT, PVT2, PVT_lr, PVT_nopretrain, PVT_2layer, Cnn14, Cnn14_no_specaug, Cnn14_no_dropout, + Cnn6, Cnn10, ResNet22, ResNet38, ResNet54, Cnn14_emb512, Cnn14_emb128, + Cnn14_emb32, MobileNetV1, MobileNetV2, LeeNet11, LeeNet24, DaiNet19, + Res1dNet31, Res1dNet51, Wavegram_Cnn14, Wavegram_Logmel_Cnn14, + Wavegram_Logmel128_Cnn14, Cnn14_16k, Cnn14_8k, Cnn14_mel32, Cnn14_mel128, + Cnn14_mixup_time_domain, Cnn14_DecisionLevelMax, Cnn14_DecisionLevelAtt, Cnn6_Transformer, GLAM, GLAM2, GLAM3, Cnn4, EAT) +#from models_test import (PVT_test) +#from models1 import (PVT1) +#from models_vig import (VIG, VIG2) +#from models_vvt import (VVT) +#from models2 import (MPVIT, MPVIT2) +#from models_reshape import (PVT_reshape, PVT_tscam) +#from models_swin import (Swin, Swin_nopretrain) +#from models_swin2 import (Swin2) +#from models_van import (Van, Van_tiny) +#from models_focal import (Focal) +#from models_cross import (Cross) +#from models_cov import (Cov) +#from models_cnn import (Cnn_light) +#from models_twins import (Twins) +#from models_cmt import (Cmt, Cmt1) +#from models_shunted import (Shunted) +#from models_quadtree import (Quadtree, Quadtree2, Quadtree_nopretrain) +#from models_davit import (Davit_tscam, Davit, Davit_nopretrain) +from pytorch_utils import (move_data_to_device, count_parameters, count_flops, + do_mixup) +from data_generator import (AudioSetDataset, TrainSampler, BalancedTrainSampler, + AlternateTrainSampler, EvaluateSampler, collate_fn) +from evaluate import Evaluator +import config +from losses import get_loss_func + + +def train(args): + """Train AudioSet tagging model. + + Args: + dataset_dir: str + workspace: str + data_type: 'balanced_train' | 'full_train' + window_size: int + hop_size: int + mel_bins: int + model_type: str + loss_type: 'clip_bce' + balanced: 'none' | 'balanced' | 'alternate' + augmentation: 'none' | 'mixup' + batch_size: int + learning_rate: float + resume_iteration: int + early_stop: int + accumulation_steps: int + cuda: bool + """ + + # Arugments & parameters + workspace = args.workspace + data_type = args.data_type + sample_rate = args.sample_rate + window_size = args.window_size + hop_size = args.hop_size + mel_bins = args.mel_bins + fmin = args.fmin + fmax = args.fmax + model_type = args.model_type + loss_type = args.loss_type + balanced = args.balanced + augmentation = args.augmentation + batch_size = args.batch_size + learning_rate = args.learning_rate + resume_iteration = args.resume_iteration + early_stop = args.early_stop + device = torch.device('cuda') if args.cuda and torch.cuda.is_available() else torch.device('cpu') + filename = args.filename + + num_workers = 8 + clip_samples = config.clip_samples + classes_num = config.classes_num + loss_func = get_loss_func(loss_type) + + # Paths + black_list_csv = None + + train_indexes_hdf5_path = os.path.join(workspace, 'hdf5s', 'indexes', + '{}.h5'.format(data_type)) + + eval_bal_indexes_hdf5_path = os.path.join(workspace, + 'hdf5s', 'indexes', 'balanced_train.h5') + + eval_test_indexes_hdf5_path = os.path.join(workspace, 'hdf5s', 'indexes', + 'eval.h5') + + checkpoints_dir = os.path.join(workspace, 'checkpoints', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size)) + create_folder(checkpoints_dir) + + statistics_path = os.path.join(workspace, 'statistics', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + 'statistics.pkl') + create_folder(os.path.dirname(statistics_path)) + + logs_dir = os.path.join(workspace, 'logs', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size)) + + create_logging(logs_dir, filemode='w') + logging.info(args) + + if 'cuda' in str(device): + logging.info('Using GPU.') + device = 'cuda' + else: + logging.info('Using CPU. Set --cuda flag to use GPU.') + device = 'cpu' + + # Model + Model = eval(model_type) + model = Model(sample_rate=sample_rate, window_size=window_size, + hop_size=hop_size, mel_bins=mel_bins, fmin=fmin, fmax=fmax, + classes_num=classes_num) + total = sum(p.numel() for p in model.parameters()) + print("Total params: %.2fM" % (total/1e6)) + logging.info("Total params: %.2fM" % (total/1e6)) + #params_num = count_parameters(model) + # flops_num = count_flops(model, clip_samples) + #logging.info('Parameters num: {}'.format(params_num)) + # logging.info('Flops num: {:.3f} G'.format(flops_num / 1e9)) + + # Dataset will be used by DataLoader later. Dataset takes a meta as input + # and return a waveform and a target. + dataset = AudioSetDataset(sample_rate=sample_rate) + + # Train sampler + if balanced == 'none': + Sampler = TrainSampler + elif balanced == 'balanced': + Sampler = BalancedTrainSampler + elif balanced == 'alternate': + Sampler = AlternateTrainSampler + + train_sampler = Sampler( + indexes_hdf5_path=train_indexes_hdf5_path, + batch_size=batch_size * 2 if 'mixup' in augmentation else batch_size, + black_list_csv=black_list_csv) + + # Evaluate sampler + eval_bal_sampler = EvaluateSampler( + indexes_hdf5_path=eval_bal_indexes_hdf5_path, batch_size=batch_size) + + eval_test_sampler = EvaluateSampler( + indexes_hdf5_path=eval_test_indexes_hdf5_path, batch_size=batch_size) + + # Data loader + train_loader = torch.utils.data.DataLoader(dataset=dataset, + batch_sampler=train_sampler, collate_fn=collate_fn, + num_workers=num_workers, pin_memory=True) + + eval_bal_loader = torch.utils.data.DataLoader(dataset=dataset, + batch_sampler=eval_bal_sampler, collate_fn=collate_fn, + num_workers=num_workers, pin_memory=True) + + eval_test_loader = torch.utils.data.DataLoader(dataset=dataset, + batch_sampler=eval_test_sampler, collate_fn=collate_fn, + num_workers=num_workers, pin_memory=True) + mix=0.5 + if 'mixup' in augmentation: + mixup_augmenter = Mixup(mixup_alpha=mix) + print(mix) + logging.info(mix) + + # Evaluator + evaluator = Evaluator(model=model) + + # Statistics + statistics_container = StatisticsContainer(statistics_path) + + # Optimizer + optimizer = optim.AdamW(model.parameters(), lr=learning_rate, betas=(0.9, 0.999), eps=1e-08, weight_decay=0.05, amsgrad=True) + scheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.5, patience=4, min_lr=1e-06, verbose=True) + train_bgn_time = time.time() + + # Resume training + if resume_iteration > 0: + resume_checkpoint_path = os.path.join(workspace, 'checkpoints', filename, + 'sample_rate={},window_size={},hop_size={},mel_bins={},fmin={},fmax={}'.format( + sample_rate, window_size, hop_size, mel_bins, fmin, fmax), + 'data_type={}'.format(data_type), model_type, + 'loss_type={}'.format(loss_type), 'balanced={}'.format(balanced), + 'augmentation={}'.format(augmentation), 'batch_size={}'.format(batch_size), + '{}_iterations.pth'.format(resume_iteration)) + + logging.info('Loading checkpoint {}'.format(resume_checkpoint_path)) + checkpoint = torch.load(resume_checkpoint_path) + model.load_state_dict(checkpoint['model']) + train_sampler.load_state_dict(checkpoint['sampler']) + statistics_container.load_state_dict(resume_iteration) + iteration = checkpoint['iteration'] + + else: + iteration = 0 + + # Parallel + print('GPU number: {}'.format(torch.cuda.device_count())) + model = torch.nn.DataParallel(model) + + if 'cuda' in str(device): + model.to(device) + + if resume_iteration: + optimizer.load_state_dict(checkpoint['optimizer']) + scheduler.load_state_dict(checkpoint['scheduler']) + print(optimizer.state_dict()['param_groups'][0]['lr']) + + time1 = time.time() + + for batch_data_dict in train_loader: + """batch_data_dict: { + 'audio_name': (batch_size [*2 if mixup],), + 'waveform': (batch_size [*2 if mixup], clip_samples), + 'target': (batch_size [*2 if mixup], classes_num), + (ifexist) 'mixup_lambda': (batch_size * 2,)} + """ + + # Evaluate + if (iteration % 2000 == 0 and iteration >= resume_iteration) or (iteration == 0): + train_fin_time = time.time() + + bal_statistics = evaluator.evaluate(eval_bal_loader) + test_statistics = evaluator.evaluate(eval_test_loader) + + logging.info('Validate bal mAP: {:.3f}'.format( + np.mean(bal_statistics['average_precision']))) + + logging.info('Validate test mAP: {:.3f}'.format( + np.mean(test_statistics['average_precision']))) + + statistics_container.append(iteration, bal_statistics, data_type='bal') + statistics_container.append(iteration, test_statistics, data_type='test') + statistics_container.dump() + + train_time = train_fin_time - train_bgn_time + validate_time = time.time() - train_fin_time + + logging.info( + 'iteration: {}, train time: {:.3f} s, validate time: {:.3f} s' + ''.format(iteration, train_time, validate_time)) + + logging.info('------------------------------------') + + train_bgn_time = time.time() + + # Save model + if iteration % 2000 == 0: + checkpoint = { + 'iteration': iteration, + 'model': model.module.state_dict(), + 'sampler': train_sampler.state_dict(), + 'optimizer': optimizer.state_dict(), + 'scheduler': scheduler.state_dict()} + + checkpoint_path = os.path.join( + checkpoints_dir, '{}_iterations.pth'.format(iteration)) + + torch.save(checkpoint, checkpoint_path) + logging.info('Model saved to {}'.format(checkpoint_path)) + + # Mixup lambda + if 'mixup' in augmentation: + batch_data_dict['mixup_lambda'] = mixup_augmenter.get_lambda( + batch_size=len(batch_data_dict['waveform'])) + + # Move data to device + for key in batch_data_dict.keys(): + batch_data_dict[key] = move_data_to_device(batch_data_dict[key], device) + + # Forward + model.train() + + if 'mixup' in augmentation: + batch_output_dict = model(batch_data_dict['waveform'], + batch_data_dict['mixup_lambda']) + """{'clipwise_output': (batch_size, classes_num), ...}""" + + batch_target_dict = {'target': do_mixup(batch_data_dict['target'], + batch_data_dict['mixup_lambda'])} + """{'target': (batch_size, classes_num)}""" + else: + batch_output_dict = model(batch_data_dict['waveform'], None) + """{'clipwise_output': (batch_size, classes_num), ...}""" + + batch_target_dict = {'target': batch_data_dict['target']} + """{'target': (batch_size, classes_num)}""" + + # Loss + loss = loss_func(batch_output_dict, batch_target_dict) + # Backward + loss.backward() + + optimizer.step() + optimizer.zero_grad() + + if iteration % 10 == 0: + print(iteration, loss) + #print('--- Iteration: {}, train time: {:.3f} s / 10 iterations ---'\ + # .format(iteration, time.time() - time1)) + #time1 = time.time() + + if iteration % 2000 == 0: + scheduler.step(np.mean(test_statistics['average_precision'])) + print(optimizer.state_dict()['param_groups'][0]['lr']) + logging.info(optimizer.state_dict()['param_groups'][0]['lr']) + + # Stop learning + if iteration == early_stop: + break + + iteration += 1 + + +if __name__ == '__main__': + + parser = argparse.ArgumentParser(description='Example of parser. ') + subparsers = parser.add_subparsers(dest='mode') + + parser_train = subparsers.add_parser('train') + parser_train.add_argument('--workspace', type=str, required=True) + parser_train.add_argument('--data_type', type=str, default='full_train', choices=['balanced_train', 'full_train']) + parser_train.add_argument('--sample_rate', type=int, default=32000) + parser_train.add_argument('--window_size', type=int, default=1024) + parser_train.add_argument('--hop_size', type=int, default=320) + parser_train.add_argument('--mel_bins', type=int, default=64) + parser_train.add_argument('--fmin', type=int, default=50) + parser_train.add_argument('--fmax', type=int, default=14000) + parser_train.add_argument('--model_type', type=str, required=True) + parser_train.add_argument('--loss_type', type=str, default='clip_bce', choices=['clip_bce']) + parser_train.add_argument('--balanced', type=str, default='balanced', choices=['none', 'balanced', 'alternate']) + parser_train.add_argument('--augmentation', type=str, default='mixup', choices=['none', 'mixup']) + parser_train.add_argument('--batch_size', type=int, default=32) + parser_train.add_argument('--learning_rate', type=float, default=1e-3) + parser_train.add_argument('--resume_iteration', type=int, default=0) + parser_train.add_argument('--early_stop', type=int, default=1000000) + parser_train.add_argument('--cuda', action='store_true', default=False) + + args = parser.parse_args() + args.filename = get_filename(__file__) + + if args.mode == 'train': + train(args) + + else: + raise Exception('Error argument!') \ No newline at end of file diff --git a/audio_detection/audio_infer/pytorch/models.py b/audio_detection/audio_infer/pytorch/models.py new file mode 100644 index 0000000..dc225a3 --- /dev/null +++ b/audio_detection/audio_infer/pytorch/models.py @@ -0,0 +1,951 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F +from torchlibrosa.stft import Spectrogram, LogmelFilterBank +from torchlibrosa.augmentation import SpecAugmentation + +from audio_infer.pytorch.pytorch_utils import do_mixup, interpolate, pad_framewise_output +import os +import sys +import math +import numpy as np + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.nn.parameter import Parameter +from torchlibrosa.stft import Spectrogram, LogmelFilterBank +from torchlibrosa.augmentation import SpecAugmentation +from audio_infer.pytorch.pytorch_utils import do_mixup +import torch.utils.checkpoint as checkpoint +from timm.models.layers import DropPath, to_2tuple, trunc_normal_ +import warnings +from functools import partial +#from mmdet.models.builder import BACKBONES +from mmdet.utils import get_root_logger +from mmcv.runner import load_checkpoint +os.environ['TORCH_HOME'] = '../pretrained_models' +from copy import deepcopy +from timm.models.helpers import load_pretrained +from torch.cuda.amp import autocast +from collections import OrderedDict +import io +import re +from mmcv.runner import _load_checkpoint, load_state_dict +import mmcv.runner +import copy +import random +from einops import rearrange +from einops.layers.torch import Rearrange, Reduce +from torch import nn, einsum + + +def load_checkpoint(model, + filename, + map_location=None, + strict=False, + logger=None, + revise_keys=[(r'^module\.', '')]): + """Load checkpoint from a file or URI. + + Args: + model (Module): Module to load checkpoint. + filename (str): Accept local filepath, URL, ``torchvision://xxx``, + ``open-mmlab://xxx``. Please refer to ``docs/model_zoo.md`` for + details. + map_location (str): Same as :func:`torch.load`. + strict (bool): Whether to allow different params for the model and + checkpoint. + logger (:mod:`logging.Logger` or None): The logger for error message. + revise_keys (list): A list of customized keywords to modify the + state_dict in checkpoint. Each item is a (pattern, replacement) + pair of the regular expression operations. Default: strip + the prefix 'module.' by [(r'^module\\.', '')]. + + Returns: + dict or OrderedDict: The loaded checkpoint. + """ + + checkpoint = _load_checkpoint(filename, map_location, logger) + new_proj = torch.nn.Conv2d(1, 64, kernel_size=(7, 7), stride=(4, 4), padding=(2, 2)) + new_proj.weight = torch.nn.Parameter(torch.sum(checkpoint['patch_embed1.proj.weight'], dim=1).unsqueeze(1)) + checkpoint['patch_embed1.proj.weight'] = new_proj.weight + # OrderedDict is a subclass of dict + if not isinstance(checkpoint, dict): + raise RuntimeError( + f'No state_dict found in checkpoint file {filename}') + # get state_dict from checkpoint + if 'state_dict' in checkpoint: + state_dict = checkpoint['state_dict'] + else: + state_dict = checkpoint + + # strip prefix of state_dict + metadata = getattr(state_dict, '_metadata', OrderedDict()) + for p, r in revise_keys: + state_dict = OrderedDict( + {re.sub(p, r, k): v + for k, v in state_dict.items()}) + state_dict = OrderedDict({k.replace('backbone.',''):v for k,v in state_dict.items()}) + # Keep metadata in state_dict + state_dict._metadata = metadata + + # load state_dict + load_state_dict(model, state_dict, strict, logger) + return checkpoint + +def init_layer(layer): + """Initialize a Linear or Convolutional layer. """ + nn.init.xavier_uniform_(layer.weight) + + if hasattr(layer, 'bias'): + if layer.bias is not None: + layer.bias.data.fill_(0.) + + +def init_bn(bn): + """Initialize a Batchnorm layer. """ + bn.bias.data.fill_(0.) + bn.weight.data.fill_(1.) + + + + +class TimeShift(nn.Module): + def __init__(self, mean, std): + super().__init__() + self.mean = mean + self.std = std + + def forward(self, x): + if self.training: + shift = torch.empty(1).normal_(self.mean, self.std).int().item() + x = torch.roll(x, shift, dims=2) + return x + +class LinearSoftPool(nn.Module): + """LinearSoftPool + Linear softmax, takes logits and returns a probability, near to the actual maximum value. + Taken from the paper: + A Comparison of Five Multiple Instance Learning Pooling Functions for Sound Event Detection with Weak Labeling + https://arxiv.org/abs/1810.09050 + """ + def __init__(self, pooldim=1): + super().__init__() + self.pooldim = pooldim + + def forward(self, logits, time_decision): + return (time_decision**2).sum(self.pooldim) / time_decision.sum( + self.pooldim) + +class PVT(nn.Module): + def __init__(self, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, classes_num): + + super(PVT, self).__init__() + + window = 'hann' + center = True + pad_mode = 'reflect' + ref = 1.0 + amin = 1e-10 + top_db = None + + # Spectrogram extractor + self.spectrogram_extractor = Spectrogram(n_fft=window_size, hop_length=hop_size, + win_length=window_size, window=window, center=center, pad_mode=pad_mode, + freeze_parameters=True) + + # Logmel feature extractor + self.logmel_extractor = LogmelFilterBank(sr=sample_rate, n_fft=window_size, + n_mels=mel_bins, fmin=fmin, fmax=fmax, ref=ref, amin=amin, top_db=top_db, + freeze_parameters=True) + + self.time_shift = TimeShift(0, 10) + # Spec augmenter + self.spec_augmenter = SpecAugmentation(time_drop_width=64, time_stripes_num=2, + freq_drop_width=8, freq_stripes_num=2) + + self.bn0 = nn.BatchNorm2d(64) + self.pvt_transformer = PyramidVisionTransformerV2(tdim=1001, + fdim=64, + patch_size=7, + stride=4, + in_chans=1, + num_classes=classes_num, + embed_dims=[64, 128, 320, 512], + depths=[3, 4, 6, 3], + num_heads=[1, 2, 5, 8], + mlp_ratios=[8, 8, 4, 4], + qkv_bias=True, + qk_scale=None, + drop_rate=0.0, + drop_path_rate=0.1, + sr_ratios=[8, 4, 2, 1], + norm_layer=partial(nn.LayerNorm, eps=1e-6), + num_stages=4, + #pretrained='https://github.com/whai362/PVT/releases/download/v2/pvt_v2_b2.pth' + ) + #self.temp_pool = LinearSoftPool() + self.avgpool = nn.AdaptiveAvgPool1d(1) + self.fc_audioset = nn.Linear(512, classes_num, bias=True) + + self.init_weights() + + def init_weights(self): + init_bn(self.bn0) + init_layer(self.fc_audioset) + + def forward(self, input, mixup_lambda=None): + """Input: (batch_size, times_steps, freq_bins)""" + + interpolate_ratio = 32 + + x = self.spectrogram_extractor(input) # (batch_size, 1, time_steps, freq_bins) + x = self.logmel_extractor(x) # (batch_size, 1, time_steps, mel_bins) + frames_num = x.shape[2] + x = x.transpose(1, 3) + x = self.bn0(x) + x = x.transpose(1, 3) + + if self.training: + x = self.time_shift(x) + x = self.spec_augmenter(x) + + # Mixup on spectrogram + if self.training and mixup_lambda is not None: + x = do_mixup(x, mixup_lambda) + #print(x.shape) #torch.Size([10, 1, 1001, 64]) + x = self.pvt_transformer(x) + #print(x.shape) #torch.Size([10, 800, 128]) + x = torch.mean(x, dim=3) + + x = x.transpose(1, 2).contiguous() + framewise_output = torch.sigmoid(self.fc_audioset(x)) + #clipwise_output = torch.mean(framewise_output, dim=1) + #clipwise_output = self.temp_pool(x, framewise_output).clamp(1e-7, 1.).squeeze(1) + x = framewise_output.transpose(1, 2).contiguous() + x = self.avgpool(x) + clipwise_output = torch.flatten(x, 1) + #print(framewise_output.shape) #torch.Size([10, 100, 17]) + framewise_output = interpolate(framewise_output, interpolate_ratio) + #framewise_output = framewise_output[:,:1000,:] + #framewise_output = pad_framewise_output(framewise_output, frames_num) + output_dict = {'framewise_output': framewise_output, + 'clipwise_output': clipwise_output} + + return output_dict + +class PVT2(nn.Module): + def __init__(self, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, classes_num): + + super(PVT2, self).__init__() + + window = 'hann' + center = True + pad_mode = 'reflect' + ref = 1.0 + amin = 1e-10 + top_db = None + + # Spectrogram extractor + self.spectrogram_extractor = Spectrogram(n_fft=window_size, hop_length=hop_size, + win_length=window_size, window=window, center=center, pad_mode=pad_mode, + freeze_parameters=True) + + # Logmel feature extractor + self.logmel_extractor = LogmelFilterBank(sr=sample_rate, n_fft=window_size, + n_mels=mel_bins, fmin=fmin, fmax=fmax, ref=ref, amin=amin, top_db=top_db, + freeze_parameters=True) + + self.time_shift = TimeShift(0, 10) + # Spec augmenter + self.spec_augmenter = SpecAugmentation(time_drop_width=64, time_stripes_num=2, + freq_drop_width=8, freq_stripes_num=2) + + self.bn0 = nn.BatchNorm2d(64) + self.pvt_transformer = PyramidVisionTransformerV2(tdim=1001, + fdim=64, + patch_size=7, + stride=4, + in_chans=1, + num_classes=classes_num, + embed_dims=[64, 128, 320, 512], + depths=[3, 4, 6, 3], + num_heads=[1, 2, 5, 8], + mlp_ratios=[8, 8, 4, 4], + qkv_bias=True, + qk_scale=None, + drop_rate=0.0, + drop_path_rate=0.1, + sr_ratios=[8, 4, 2, 1], + norm_layer=partial(nn.LayerNorm, eps=1e-6), + num_stages=4, + pretrained='https://github.com/whai362/PVT/releases/download/v2/pvt_v2_b2.pth' + ) + #self.temp_pool = LinearSoftPool() + self.fc_audioset = nn.Linear(512, classes_num, bias=True) + + self.init_weights() + + def init_weights(self): + init_bn(self.bn0) + init_layer(self.fc_audioset) + + def forward(self, input, mixup_lambda=None): + """Input: (batch_size, times_steps, freq_bins)""" + + interpolate_ratio = 32 + + x = self.spectrogram_extractor(input) # (batch_size, 1, time_steps, freq_bins) + x = self.logmel_extractor(x) # (batch_size, 1, time_steps, mel_bins) + frames_num = x.shape[2] + x = x.transpose(1, 3) + x = self.bn0(x) + x = x.transpose(1, 3) + + if self.training: + #x = self.time_shift(x) + x = self.spec_augmenter(x) + + # Mixup on spectrogram + if self.training and mixup_lambda is not None: + x = do_mixup(x, mixup_lambda) + #print(x.shape) #torch.Size([10, 1, 1001, 64]) + x = self.pvt_transformer(x) + #print(x.shape) #torch.Size([10, 800, 128]) + x = torch.mean(x, dim=3) + + x = x.transpose(1, 2).contiguous() + framewise_output = torch.sigmoid(self.fc_audioset(x)) + clipwise_output = torch.mean(framewise_output, dim=1) + #clipwise_output = self.temp_pool(x, framewise_output).clamp(1e-7, 1.).squeeze(1) + #print(framewise_output.shape) #torch.Size([10, 100, 17]) + framewise_output = interpolate(framewise_output, interpolate_ratio) + #framewise_output = framewise_output[:,:1000,:] + #framewise_output = pad_framewise_output(framewise_output, frames_num) + output_dict = {'framewise_output': framewise_output, + 'clipwise_output': clipwise_output} + + return output_dict + +class PVT_2layer(nn.Module): + def __init__(self, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, classes_num): + + super(PVT_2layer, self).__init__() + + window = 'hann' + center = True + pad_mode = 'reflect' + ref = 1.0 + amin = 1e-10 + top_db = None + + # Spectrogram extractor + self.spectrogram_extractor = Spectrogram(n_fft=window_size, hop_length=hop_size, + win_length=window_size, window=window, center=center, pad_mode=pad_mode, + freeze_parameters=True) + + # Logmel feature extractor + self.logmel_extractor = LogmelFilterBank(sr=sample_rate, n_fft=window_size, + n_mels=mel_bins, fmin=fmin, fmax=fmax, ref=ref, amin=amin, top_db=top_db, + freeze_parameters=True) + + self.time_shift = TimeShift(0, 10) + # Spec augmenter + self.spec_augmenter = SpecAugmentation(time_drop_width=64, time_stripes_num=2, + freq_drop_width=8, freq_stripes_num=2) + + self.bn0 = nn.BatchNorm2d(64) + self.pvt_transformer = PyramidVisionTransformerV2(tdim=1001, + fdim=64, + patch_size=7, + stride=4, + in_chans=1, + num_classes=classes_num, + embed_dims=[64, 128], + depths=[3, 4], + num_heads=[1, 2], + mlp_ratios=[8, 8], + qkv_bias=True, + qk_scale=None, + drop_rate=0.0, + drop_path_rate=0.1, + sr_ratios=[8, 4], + norm_layer=partial(nn.LayerNorm, eps=1e-6), + num_stages=2, + pretrained='https://github.com/whai362/PVT/releases/download/v2/pvt_v2_b2.pth' + ) + #self.temp_pool = LinearSoftPool() + self.avgpool = nn.AdaptiveAvgPool1d(1) + self.fc_audioset = nn.Linear(128, classes_num, bias=True) + + self.init_weights() + + def init_weights(self): + init_bn(self.bn0) + init_layer(self.fc_audioset) + + def forward(self, input, mixup_lambda=None): + """Input: (batch_size, times_steps, freq_bins)""" + + interpolate_ratio = 8 + + x = self.spectrogram_extractor(input) # (batch_size, 1, time_steps, freq_bins) + x = self.logmel_extractor(x) # (batch_size, 1, time_steps, mel_bins) + frames_num = x.shape[2] + x = x.transpose(1, 3) + x = self.bn0(x) + x = x.transpose(1, 3) + + if self.training: + x = self.time_shift(x) + x = self.spec_augmenter(x) + + # Mixup on spectrogram + if self.training and mixup_lambda is not None: + x = do_mixup(x, mixup_lambda) + #print(x.shape) #torch.Size([10, 1, 1001, 64]) + x = self.pvt_transformer(x) + #print(x.shape) #torch.Size([10, 800, 128]) + x = torch.mean(x, dim=3) + + x = x.transpose(1, 2).contiguous() + framewise_output = torch.sigmoid(self.fc_audioset(x)) + #clipwise_output = torch.mean(framewise_output, dim=1) + #clipwise_output = self.temp_pool(x, framewise_output).clamp(1e-7, 1.).squeeze(1) + x = framewise_output.transpose(1, 2).contiguous() + x = self.avgpool(x) + clipwise_output = torch.flatten(x, 1) + #print(framewise_output.shape) #torch.Size([10, 100, 17]) + framewise_output = interpolate(framewise_output, interpolate_ratio) + #framewise_output = framewise_output[:,:1000,:] + #framewise_output = pad_framewise_output(framewise_output, frames_num) + output_dict = {'framewise_output': framewise_output, + 'clipwise_output': clipwise_output} + + return output_dict + +class PVT_lr(nn.Module): + def __init__(self, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, classes_num): + + super(PVT_lr, self).__init__() + + window = 'hann' + center = True + pad_mode = 'reflect' + ref = 1.0 + amin = 1e-10 + top_db = None + + # Spectrogram extractor + self.spectrogram_extractor = Spectrogram(n_fft=window_size, hop_length=hop_size, + win_length=window_size, window=window, center=center, pad_mode=pad_mode, + freeze_parameters=True) + + # Logmel feature extractor + self.logmel_extractor = LogmelFilterBank(sr=sample_rate, n_fft=window_size, + n_mels=mel_bins, fmin=fmin, fmax=fmax, ref=ref, amin=amin, top_db=top_db, + freeze_parameters=True) + + self.time_shift = TimeShift(0, 10) + # Spec augmenter + self.spec_augmenter = SpecAugmentation(time_drop_width=64, time_stripes_num=2, + freq_drop_width=8, freq_stripes_num=2) + + self.bn0 = nn.BatchNorm2d(64) + self.pvt_transformer = PyramidVisionTransformerV2(tdim=1001, + fdim=64, + patch_size=7, + stride=4, + in_chans=1, + num_classes=classes_num, + embed_dims=[64, 128, 320, 512], + depths=[3, 4, 6, 3], + num_heads=[1, 2, 5, 8], + mlp_ratios=[8, 8, 4, 4], + qkv_bias=True, + qk_scale=None, + drop_rate=0.0, + drop_path_rate=0.1, + sr_ratios=[8, 4, 2, 1], + norm_layer=partial(nn.LayerNorm, eps=1e-6), + num_stages=4, + pretrained='https://github.com/whai362/PVT/releases/download/v2/pvt_v2_b2.pth' + ) + self.temp_pool = LinearSoftPool() + self.fc_audioset = nn.Linear(512, classes_num, bias=True) + + self.init_weights() + + def init_weights(self): + init_bn(self.bn0) + init_layer(self.fc_audioset) + + def forward(self, input, mixup_lambda=None): + """Input: (batch_size, times_steps, freq_bins)""" + + interpolate_ratio = 32 + + x = self.spectrogram_extractor(input) # (batch_size, 1, time_steps, freq_bins) + x = self.logmel_extractor(x) # (batch_size, 1, time_steps, mel_bins) + frames_num = x.shape[2] + x = x.transpose(1, 3) + x = self.bn0(x) + x = x.transpose(1, 3) + + if self.training: + x = self.time_shift(x) + x = self.spec_augmenter(x) + + # Mixup on spectrogram + if self.training and mixup_lambda is not None: + x = do_mixup(x, mixup_lambda) + #print(x.shape) #torch.Size([10, 1, 1001, 64]) + x = self.pvt_transformer(x) + #print(x.shape) #torch.Size([10, 800, 128]) + x = torch.mean(x, dim=3) + + x = x.transpose(1, 2).contiguous() + framewise_output = torch.sigmoid(self.fc_audioset(x)) + clipwise_output = self.temp_pool(x, framewise_output).clamp(1e-7, 1.).squeeze(1) + #print(framewise_output.shape) #torch.Size([10, 100, 17]) + framewise_output = interpolate(framewise_output, interpolate_ratio) + #framewise_output = framewise_output[:,:1000,:] + #framewise_output = pad_framewise_output(framewise_output, frames_num) + output_dict = {'framewise_output': framewise_output, + 'clipwise_output': clipwise_output} + + return output_dict + + +class PVT_nopretrain(nn.Module): + def __init__(self, sample_rate, window_size, hop_size, mel_bins, fmin, + fmax, classes_num): + + super(PVT_nopretrain, self).__init__() + + window = 'hann' + center = True + pad_mode = 'reflect' + ref = 1.0 + amin = 1e-10 + top_db = None + + # Spectrogram extractor + self.spectrogram_extractor = Spectrogram(n_fft=window_size, hop_length=hop_size, + win_length=window_size, window=window, center=center, pad_mode=pad_mode, + freeze_parameters=True) + + # Logmel feature extractor + self.logmel_extractor = LogmelFilterBank(sr=sample_rate, n_fft=window_size, + n_mels=mel_bins, fmin=fmin, fmax=fmax, ref=ref, amin=amin, top_db=top_db, + freeze_parameters=True) + + self.time_shift = TimeShift(0, 10) + # Spec augmenter + self.spec_augmenter = SpecAugmentation(time_drop_width=64, time_stripes_num=2, + freq_drop_width=8, freq_stripes_num=2) + + self.bn0 = nn.BatchNorm2d(64) + self.pvt_transformer = PyramidVisionTransformerV2(tdim=1001, + fdim=64, + patch_size=7, + stride=4, + in_chans=1, + num_classes=classes_num, + embed_dims=[64, 128, 320, 512], + depths=[3, 4, 6, 3], + num_heads=[1, 2, 5, 8], + mlp_ratios=[8, 8, 4, 4], + qkv_bias=True, + qk_scale=None, + drop_rate=0.0, + drop_path_rate=0.1, + sr_ratios=[8, 4, 2, 1], + norm_layer=partial(nn.LayerNorm, eps=1e-6), + num_stages=4, + #pretrained='https://github.com/whai362/PVT/releases/download/v2/pvt_v2_b2.pth' + ) + self.temp_pool = LinearSoftPool() + self.fc_audioset = nn.Linear(512, classes_num, bias=True) + + self.init_weights() + + def init_weights(self): + init_bn(self.bn0) + init_layer(self.fc_audioset) + + def forward(self, input, mixup_lambda=None): + """Input: (batch_size, times_steps, freq_bins)""" + + interpolate_ratio = 32 + + x = self.spectrogram_extractor(input) # (batch_size, 1, time_steps, freq_bins) + x = self.logmel_extractor(x) # (batch_size, 1, time_steps, mel_bins) + frames_num = x.shape[2] + x = x.transpose(1, 3) + x = self.bn0(x) + x = x.transpose(1, 3) + + if self.training: + x = self.time_shift(x) + x = self.spec_augmenter(x) + + # Mixup on spectrogram + if self.training and mixup_lambda is not None: + x = do_mixup(x, mixup_lambda) + #print(x.shape) #torch.Size([10, 1, 1001, 64]) + x = self.pvt_transformer(x) + #print(x.shape) #torch.Size([10, 800, 128]) + x = torch.mean(x, dim=3) + + x = x.transpose(1, 2).contiguous() + framewise_output = torch.sigmoid(self.fc_audioset(x)) + clipwise_output = self.temp_pool(x, framewise_output).clamp(1e-7, 1.).squeeze(1) + #print(framewise_output.shape) #torch.Size([10, 100, 17]) + framewise_output = interpolate(framewise_output, interpolate_ratio) + framewise_output = framewise_output[:,:1000,:] + #framewise_output = pad_framewise_output(framewise_output, frames_num) + output_dict = {'framewise_output': framewise_output, + 'clipwise_output': clipwise_output} + + return output_dict + + +class Mlp(nn.Module): + def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False): + super().__init__() + out_features = out_features or in_features + hidden_features = hidden_features or in_features + self.fc1 = nn.Linear(in_features, hidden_features) + self.dwconv = DWConv(hidden_features) + self.act = act_layer() + self.fc2 = nn.Linear(hidden_features, out_features) + self.drop = nn.Dropout(drop) + self.linear = linear + if self.linear: + self.relu = nn.ReLU() + self.apply(self._init_weights) + + def _init_weights(self, m): + if isinstance(m, nn.Linear): + trunc_normal_(m.weight, std=.02) + if isinstance(m, nn.Linear) and m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.LayerNorm): + nn.init.constant_(m.bias, 0) + nn.init.constant_(m.weight, 1.0) + elif isinstance(m, nn.Conv2d): + fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels + fan_out //= m.groups + m.weight.data.normal_(0, math.sqrt(2.0 / fan_out)) + if m.bias is not None: + m.bias.data.zero_() + + def forward(self, x, H, W): + x = self.fc1(x) + if self.linear: + x = self.relu(x) + x = self.dwconv(x, H, W) + x = self.act(x) + x = self.drop(x) + x = self.fc2(x) + x = self.drop(x) + return x + + +class Attention(nn.Module): + def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1, linear=False): + super().__init__() + assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}." + + self.dim = dim + self.num_heads = num_heads + head_dim = dim // num_heads + self.scale = qk_scale or head_dim ** -0.5 + + self.q = nn.Linear(dim, dim, bias=qkv_bias) + self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias) + self.attn_drop = nn.Dropout(attn_drop) + self.proj = nn.Linear(dim, dim) + self.proj_drop = nn.Dropout(proj_drop) + + self.linear = linear + self.sr_ratio = sr_ratio + if not linear: + if sr_ratio > 1: + self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio) + self.norm = nn.LayerNorm(dim) + else: + self.pool = nn.AdaptiveAvgPool2d(7) + self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1) + self.norm = nn.LayerNorm(dim) + self.act = nn.GELU() + self.apply(self._init_weights) + + def _init_weights(self, m): + if isinstance(m, nn.Linear): + trunc_normal_(m.weight, std=.02) + if isinstance(m, nn.Linear) and m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.LayerNorm): + nn.init.constant_(m.bias, 0) + nn.init.constant_(m.weight, 1.0) + elif isinstance(m, nn.Conv2d): + fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels + fan_out //= m.groups + m.weight.data.normal_(0, math.sqrt(2.0 / fan_out)) + if m.bias is not None: + m.bias.data.zero_() + + def forward(self, x, H, W): + B, N, C = x.shape + q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3) + + if not self.linear: + if self.sr_ratio > 1: + x_ = x.permute(0, 2, 1).reshape(B, C, H, W) + x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1) + x_ = self.norm(x_) + kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) + else: + kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) + else: + x_ = x.permute(0, 2, 1).reshape(B, C, H, W) + x_ = self.sr(self.pool(x_)).reshape(B, C, -1).permute(0, 2, 1) + x_ = self.norm(x_) + x_ = self.act(x_) + kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) + k, v = kv[0], kv[1] + + attn = (q @ k.transpose(-2, -1)) * self.scale + attn = attn.softmax(dim=-1) + attn = self.attn_drop(attn) + + x = (attn @ v).transpose(1, 2).reshape(B, N, C) + x = self.proj(x) + x = self.proj_drop(x) + + return x + + +class Pooling(nn.Module): + """ + Implementation of pooling for PoolFormer + --pool_size: pooling size + """ + def __init__(self, pool_size=3): + super().__init__() + self.pool = nn.AvgPool2d( + pool_size, stride=1, padding=pool_size//2, count_include_pad=False) + + def forward(self, x): + return self.pool(x) - x + +class Block(nn.Module): + + def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0., + drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False): + super().__init__() + self.norm1 = norm_layer(dim) + self.attn = Attention( + dim, + num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale, + attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear) + #self.norm3 = norm_layer(dim) + #self.token_mixer = Pooling(pool_size=3) + # NOTE: drop path for stochastic depth, we shall see if this is better than dropout here + self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity() + self.norm2 = norm_layer(dim) + mlp_hidden_dim = int(dim * mlp_ratio) + self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear) + self.apply(self._init_weights) + + def _init_weights(self, m): + if isinstance(m, nn.Linear): + trunc_normal_(m.weight, std=.02) + if isinstance(m, nn.Linear) and m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.LayerNorm): + nn.init.constant_(m.bias, 0) + nn.init.constant_(m.weight, 1.0) + elif isinstance(m, nn.Conv2d): + fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels + fan_out //= m.groups + m.weight.data.normal_(0, math.sqrt(2.0 / fan_out)) + if m.bias is not None: + m.bias.data.zero_() + + def forward(self, x, H, W): + x = x + self.drop_path(self.attn(self.norm1(x), H, W)) + x = x + self.drop_path(self.mlp(self.norm2(x), H, W)) + return x + + +class OverlapPatchEmbed(nn.Module): + """ Image to Patch Embedding + """ + + def __init__(self, tdim, fdim, patch_size=7, stride=4, in_chans=3, embed_dim=768): + super().__init__() + img_size = (tdim, fdim) + patch_size = to_2tuple(patch_size) + + self.img_size = img_size + self.patch_size = patch_size + self.H, self.W = img_size[0] // stride, img_size[1] // stride + self.num_patches = self.H * self.W + self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=stride, + padding=(patch_size[0] // 3, patch_size[1] // 3)) + self.norm = nn.LayerNorm(embed_dim) + + self.apply(self._init_weights) + + def _init_weights(self, m): + if isinstance(m, nn.Linear): + trunc_normal_(m.weight, std=.02) + if isinstance(m, nn.Linear) and m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.LayerNorm): + nn.init.constant_(m.bias, 0) + nn.init.constant_(m.weight, 1.0) + elif isinstance(m, nn.Conv2d): + fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels + fan_out //= m.groups + m.weight.data.normal_(0, math.sqrt(2.0 / fan_out)) + if m.bias is not None: + m.bias.data.zero_() + + def forward(self, x): + x = self.proj(x) + _, _, H, W = x.shape + x = x.flatten(2).transpose(1, 2) + x = self.norm(x) + + return x, H, W + + +class PyramidVisionTransformerV2(nn.Module): + def __init__(self, tdim=1001, fdim=64, patch_size=16, stride=4, in_chans=3, num_classes=1000, embed_dims=[64, 128, 256, 512], + num_heads=[1, 2, 4, 8], mlp_ratios=[4, 4, 4, 4], qkv_bias=False, qk_scale=None, drop_rate=0., + attn_drop_rate=0., drop_path_rate=0.1, norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[3, 4, 6, 3], + sr_ratios=[8, 4, 2, 1], num_stages=2, linear=False, pretrained=None): + super().__init__() + # self.num_classes = num_classes + self.depths = depths + self.num_stages = num_stages + self.linear = linear + + dpr = [x.item() for x in torch.linspace(0, drop_path_rate, sum(depths))] # stochastic depth decay rule + cur = 0 + + for i in range(num_stages): + patch_embed = OverlapPatchEmbed(tdim=tdim if i == 0 else tdim // (2 ** (i + 1)), + fdim=fdim if i == 0 else tdim // (2 ** (i + 1)), + patch_size=7 if i == 0 else 3, + stride=stride if i == 0 else 2, + in_chans=in_chans if i == 0 else embed_dims[i - 1], + embed_dim=embed_dims[i]) + block = nn.ModuleList([Block( + dim=embed_dims[i], num_heads=num_heads[i], mlp_ratio=mlp_ratios[i], qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop=drop_rate, attn_drop=attn_drop_rate, drop_path=dpr[cur + j], norm_layer=norm_layer, + sr_ratio=sr_ratios[i], linear=linear) + for j in range(depths[i])]) + norm = norm_layer(embed_dims[i]) + cur += depths[i] + + setattr(self, f"patch_embed{i + 1}", patch_embed) + setattr(self, f"block{i + 1}", block) + setattr(self, f"norm{i + 1}", norm) + #self.n = nn.Linear(125, 250, bias=True) + # classification head + # self.head = nn.Linear(embed_dims[3], num_classes) if num_classes > 0 else nn.Identity() + self.apply(self._init_weights) + self.init_weights(pretrained) + + def _init_weights(self, m): + if isinstance(m, nn.Linear): + trunc_normal_(m.weight, std=.02) + if isinstance(m, nn.Linear) and m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.LayerNorm): + nn.init.constant_(m.bias, 0) + nn.init.constant_(m.weight, 1.0) + elif isinstance(m, nn.Conv2d): + fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels + fan_out //= m.groups + m.weight.data.normal_(0, math.sqrt(2.0 / fan_out)) + if m.bias is not None: + m.bias.data.zero_() + + def init_weights(self, pretrained=None): + if isinstance(pretrained, str): + logger = get_root_logger() + load_checkpoint(self, pretrained, map_location='cpu', strict=False, logger=logger) + + def freeze_patch_emb(self): + self.patch_embed1.requires_grad = False + + @torch.jit.ignore + def no_weight_decay(self): + return {'pos_embed1', 'pos_embed2', 'pos_embed3', 'pos_embed4', 'cls_token'} # has pos_embed may be better + + def get_classifier(self): + return self.head + + def reset_classifier(self, num_classes, global_pool=''): + self.num_classes = num_classes + self.head = nn.Linear(self.embed_dim, num_classes) if num_classes > 0 else nn.Identity() + + def forward_features(self, x): + B = x.shape[0] + + for i in range(self.num_stages): + patch_embed = getattr(self, f"patch_embed{i + 1}") + block = getattr(self, f"block{i + 1}") + norm = getattr(self, f"norm{i + 1}") + x, H, W = patch_embed(x) + #print(x.shape) + for blk in block: + x = blk(x, H, W) + #print(x.shape) + x = norm(x) + #if i != self.num_stages - 1: + x = x.reshape(B, H, W, -1).permute(0, 3, 1, 2).contiguous() + #print(x.shape) + return x + + def forward(self, x): + x = self.forward_features(x) + # x = self.head(x) + + return x + +class DWConv(nn.Module): + def __init__(self, dim=768): + super(DWConv, self).__init__() + self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, bias=True, groups=dim) + + def forward(self, x, H, W): + B, N, C = x.shape + x = x.transpose(1, 2).view(B, C, H, W) + x = self.dwconv(x) + x = x.flatten(2).transpose(1, 2) + + return x + + +def _conv_filter(state_dict, patch_size=16): + """ convert patch embedding weight from manual patchify + linear proj to conv""" + out_dict = {} + for k, v in state_dict.items(): + if 'patch_embed.proj.weight' in k: + v = v.reshape((v.shape[0], 3, patch_size, patch_size)) + out_dict[k] = v + + return out_dict diff --git a/audio_detection/audio_infer/pytorch/pytorch_utils.py b/audio_detection/audio_infer/pytorch/pytorch_utils.py new file mode 100644 index 0000000..a135b33 --- /dev/null +++ b/audio_detection/audio_infer/pytorch/pytorch_utils.py @@ -0,0 +1,251 @@ +import numpy as np +import time +import torch +import torch.nn as nn + + +def move_data_to_device(x, device): + if 'float' in str(x.dtype): + x = torch.Tensor(x) + elif 'int' in str(x.dtype): + x = torch.LongTensor(x) + else: + return x + + return x.to(device) + + +def do_mixup(x, mixup_lambda): + """Mixup x of even indexes (0, 2, 4, ...) with x of odd indexes + (1, 3, 5, ...). + + Args: + x: (batch_size * 2, ...) + mixup_lambda: (batch_size * 2,) + + Returns: + out: (batch_size, ...) + """ + out = (x[0 :: 2].transpose(0, -1) * mixup_lambda[0 :: 2] + \ + x[1 :: 2].transpose(0, -1) * mixup_lambda[1 :: 2]).transpose(0, -1) + return out + + +def append_to_dict(dict, key, value): + if key in dict.keys(): + dict[key].append(value) + else: + dict[key] = [value] + + +def forward(model, generator, return_input=False, + return_target=False): + """Forward data to a model. + + Args: + model: object + generator: object + return_input: bool + return_target: bool + + Returns: + audio_name: (audios_num,) + clipwise_output: (audios_num, classes_num) + (ifexist) segmentwise_output: (audios_num, segments_num, classes_num) + (ifexist) framewise_output: (audios_num, frames_num, classes_num) + (optional) return_input: (audios_num, segment_samples) + (optional) return_target: (audios_num, classes_num) + """ + output_dict = {} + device = next(model.parameters()).device + time1 = time.time() + + # Forward data to a model in mini-batches + for n, batch_data_dict in enumerate(generator): + print(n) + batch_waveform = move_data_to_device(batch_data_dict['waveform'], device) + + with torch.no_grad(): + model.eval() + batch_output = model(batch_waveform) + + append_to_dict(output_dict, 'audio_name', batch_data_dict['audio_name']) + + append_to_dict(output_dict, 'clipwise_output', + batch_output['clipwise_output'].data.cpu().numpy()) + + if 'segmentwise_output' in batch_output.keys(): + append_to_dict(output_dict, 'segmentwise_output', + batch_output['segmentwise_output'].data.cpu().numpy()) + + if 'framewise_output' in batch_output.keys(): + append_to_dict(output_dict, 'framewise_output', + batch_output['framewise_output'].data.cpu().numpy()) + + if return_input: + append_to_dict(output_dict, 'waveform', batch_data_dict['waveform']) + + if return_target: + if 'target' in batch_data_dict.keys(): + append_to_dict(output_dict, 'target', batch_data_dict['target']) + + if n % 10 == 0: + print(' --- Inference time: {:.3f} s / 10 iterations ---'.format( + time.time() - time1)) + time1 = time.time() + + for key in output_dict.keys(): + output_dict[key] = np.concatenate(output_dict[key], axis=0) + + return output_dict + + +def interpolate(x, ratio): + """Interpolate data in time domain. This is used to compensate the + resolution reduction in downsampling of a CNN. + + Args: + x: (batch_size, time_steps, classes_num) + ratio: int, ratio to interpolate + + Returns: + upsampled: (batch_size, time_steps * ratio, classes_num) + """ + (batch_size, time_steps, classes_num) = x.shape + upsampled = x[:, :, None, :].repeat(1, 1, ratio, 1) + upsampled = upsampled.reshape(batch_size, time_steps * ratio, classes_num) + return upsampled + + +def pad_framewise_output(framewise_output, frames_num): + """Pad framewise_output to the same length as input frames. The pad value + is the same as the value of the last frame. + + Args: + framewise_output: (batch_size, frames_num, classes_num) + frames_num: int, number of frames to pad + + Outputs: + output: (batch_size, frames_num, classes_num) + """ + pad = framewise_output[:, -1 :, :].repeat(1, frames_num - framewise_output.shape[1], 1) + """tensor for padding""" + + output = torch.cat((framewise_output, pad), dim=1) + """(batch_size, frames_num, classes_num)""" + + return output + + +def count_parameters(model): + return sum(p.numel() for p in model.parameters() if p.requires_grad) + + +def count_flops(model, audio_length): + """Count flops. Code modified from others' implementation. + """ + multiply_adds = True + list_conv2d=[] + def conv2d_hook(self, input, output): + batch_size, input_channels, input_height, input_width = input[0].size() + output_channels, output_height, output_width = output[0].size() + + kernel_ops = self.kernel_size[0] * self.kernel_size[1] * (self.in_channels / self.groups) * (2 if multiply_adds else 1) + bias_ops = 1 if self.bias is not None else 0 + + params = output_channels * (kernel_ops + bias_ops) + flops = batch_size * params * output_height * output_width + + list_conv2d.append(flops) + + list_conv1d=[] + def conv1d_hook(self, input, output): + batch_size, input_channels, input_length = input[0].size() + output_channels, output_length = output[0].size() + + kernel_ops = self.kernel_size[0] * (self.in_channels / self.groups) * (2 if multiply_adds else 1) + bias_ops = 1 if self.bias is not None else 0 + + params = output_channels * (kernel_ops + bias_ops) + flops = batch_size * params * output_length + + list_conv1d.append(flops) + + list_linear=[] + def linear_hook(self, input, output): + batch_size = input[0].size(0) if input[0].dim() == 2 else 1 + + weight_ops = self.weight.nelement() * (2 if multiply_adds else 1) + bias_ops = self.bias.nelement() + + flops = batch_size * (weight_ops + bias_ops) + list_linear.append(flops) + + list_bn=[] + def bn_hook(self, input, output): + list_bn.append(input[0].nelement() * 2) + + list_relu=[] + def relu_hook(self, input, output): + list_relu.append(input[0].nelement() * 2) + + list_pooling2d=[] + def pooling2d_hook(self, input, output): + batch_size, input_channels, input_height, input_width = input[0].size() + output_channels, output_height, output_width = output[0].size() + + kernel_ops = self.kernel_size * self.kernel_size + bias_ops = 0 + params = output_channels * (kernel_ops + bias_ops) + flops = batch_size * params * output_height * output_width + + list_pooling2d.append(flops) + + list_pooling1d=[] + def pooling1d_hook(self, input, output): + batch_size, input_channels, input_length = input[0].size() + output_channels, output_length = output[0].size() + + kernel_ops = self.kernel_size[0] + bias_ops = 0 + + params = output_channels * (kernel_ops + bias_ops) + flops = batch_size * params * output_length + + list_pooling2d.append(flops) + + def foo(net): + childrens = list(net.children()) + if not childrens: + if isinstance(net, nn.Conv2d): + net.register_forward_hook(conv2d_hook) + elif isinstance(net, nn.Conv1d): + net.register_forward_hook(conv1d_hook) + elif isinstance(net, nn.Linear): + net.register_forward_hook(linear_hook) + elif isinstance(net, nn.BatchNorm2d) or isinstance(net, nn.BatchNorm1d): + net.register_forward_hook(bn_hook) + elif isinstance(net, nn.ReLU): + net.register_forward_hook(relu_hook) + elif isinstance(net, nn.AvgPool2d) or isinstance(net, nn.MaxPool2d): + net.register_forward_hook(pooling2d_hook) + elif isinstance(net, nn.AvgPool1d) or isinstance(net, nn.MaxPool1d): + net.register_forward_hook(pooling1d_hook) + else: + print('Warning: flop of module {} is not counted!'.format(net)) + return + for c in childrens: + foo(c) + + # Register hook + foo(model) + + device = device = next(model.parameters()).device + input = torch.rand(1, audio_length).to(device) + + out = model(input) + + total_flops = sum(list_conv2d) + sum(list_conv1d) + sum(list_linear) + \ + sum(list_bn) + sum(list_relu) + sum(list_pooling2d) + sum(list_pooling1d) + + return total_flops \ No newline at end of file diff --git a/audio_detection/audio_infer/results/YDlWd7Wmdi1E.png b/audio_detection/audio_infer/results/YDlWd7Wmdi1E.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2b5d8cceac7f40a4bdba8bd1a75d590b4382ee GIT binary patch literal 235938 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