{"nbformat": 4, "nbformat_minor": 1, "metadata": {"language_info": {"codemirror_mode": {"version": 3, "name": "ipython"}, "pygments_lexer": "ipython3", "mimetype": "text/x-python", "nbconvert_exporter": "python", "name": "python", "file_extension": ".py", "version": "3.6.3"}, "kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}}, "cells": [{"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "93e1a992-9e00-43a9-ad90-88d9f58f011c", "_uuid": "46a550f6614d4f36b3e217220195037044f94c79"}, "source": ["import os\n", "from pathlib import Path\n", "import IPython.display as ipd\n", "\n", "import numpy as np # linear algebra\n", "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", "import matplotlib.pyplot as plt\n", "from scipy import signal\n", "from scipy.io import wavfile\n", "%matplotlib inline\n", "\n", "from subprocess import check_output\n", "print(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))"], "execution_count": 1}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "08c47377-b5ae-4449-9925-17e172b68103", "_uuid": "33ddba4d8969d3f1a3738aac9b19fda7679cdba5"}, "source": ["print(check_output([\"ls\", \"../input/train\"]).decode(\"utf8\"))\n", "\n", "folders = os.listdir(\"../input/train/audio\")\n", "print(folders)"], "execution_count": 2}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "b11f1eba-20e6-452b-a7a2-a126e6d2b792", "_uuid": "ed2837d2cb4706932d1a9d0f47b7acc2b3830c83"}, "source": ["train_audio_path = '../input/train/audio'\n", "\n", "train_labels = os.listdir(train_audio_path)\n", "train_labels.remove('_background_noise_')\n", "print(f'Number of labels: {len(train_labels)}')\n", "\n", "labels_to_keep = ['yes', 'no', 'up', 'down', 'left',\n", "                  'right', 'on', 'off', 'stop', 'go', 'silence']\n", "\n", "train_file_labels = dict()\n", "for label in train_labels:\n", "    files = os.listdir(train_audio_path + '/' + label)\n", "    for f in files:\n", "        train_file_labels[label + '/' + f] = label\n", "\n", "train = pd.DataFrame.from_dict(train_file_labels, orient='index')\n", "train = train.reset_index(drop=False)\n", "train = train.rename(columns={'index': 'file', 0: 'folder'})\n", "train = train[['folder', 'file']]\n", "train = train.sort_values('file')\n", "train = train.reset_index(drop=True)\n", "print(train.shape)\n", "\n", "def remove_label_from_file(label, fname):\n", "    return fname[len(label)+1:]\n", "\n", "train['file'] = train.apply(lambda x: remove_label_from_file(*x), axis=1)\n", "train['label'] = train['folder'].apply(lambda x: x if x in labels_to_keep else 'unknown')"], "execution_count": 3}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "b41583fb-6856-415b-b724-d22d3198fda7", "collapsed": true, "_uuid": "b8c5c26c4a827b85139b7d3bcbe062c322f62aa0"}, "source": ["sample_rate, samples = wavfile.read(str(train_audio_path) + '/house/61e50f62_nohash_1.wav')\n", "frequencies, times, spectogram = signal.spectrogram(samples, sample_rate)"], "execution_count": 4}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "6c1377b7-d302-4fb3-8d91-4e2c840686aa", "_uuid": "c309e7397448e994a08e4ddc925162797caf9893"}, "source": ["sample_rate"], "execution_count": 5}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "16c047f8-d86d-4c79-8638-13bd088c5b0b", "_uuid": "eebc40b3bc0ac69a7dca91db591eb3450f6688d2"}, "source": ["frequencies"], "execution_count": 7}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "884c2b6d-11bc-4003-b109-9ace2a2cf18c", "_uuid": "4fa977deadf296abf53b85f39f4fd97c59c19664"}, "source": ["times"], "execution_count": 8}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "4a8f14c0-e739-4faa-84cb-7734e51cf7ee", "_uuid": "fdd93e630326c0667143ab42f0c5b0ade6040135"}, "source": ["fig = plt.figure(figsize = (10,10))\n", "ax1 = fig.add_subplot(111)\n", "ax1.set_xticks([])\n", "ax1.set_yticks([])\n", "\n", "ax1.set_title('Spectogram - House')\n", "ax1.imshow(spectogram)"], "execution_count": 9}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "bb3bbb71-d981-4363-a0f4-a54e573227df", "_uuid": "4f9d1a32de4dd996f8c90e64b7efbfbc040bd289"}, "source": ["sample_rate, samples = wavfile.read(str(train_audio_path) + '/eight/25132942_nohash_2.wav')\n", "frequencies, times, spectogram = signal.spectrogram(samples, sample_rate)\n", "fig = plt.figure(figsize = (10,10))\n", "ax1 = fig.add_subplot(111)\n", "ax1.set_xticks([])\n", "ax1.set_yticks([])\n", "\n", "ax1.set_title('Spectogram - Eight')\n", "ax1.imshow(spectogram)"], "execution_count": 10}, {"cell_type": "code", "outputs": [], "metadata": {"_cell_guid": "f565450c-b981-4ab8-a007-93dab1e11020", "_uuid": "0129d9c41df3f08b577895b2586aac3a4280f5b4"}, "source": ["sample_rate, samples = wavfile.read(str(train_audio_path) + '/happy/43f57297_nohash_0.wav')\n", "frequencies, times, spectogram = signal.spectrogram(samples, sample_rate)\n", "fig = plt.figure(figsize = (10,10))\n", "ax1 = fig.add_subplot(111)\n", "ax1.set_xticks([])\n", "ax1.set_yticks([])\n", "\n", "ax1.set_title('Spectogram - Happy')\n", "ax1.imshow(spectogram)"], "execution_count": 11}, {"cell_type": "code", "outputs": [], "metadata": {}, "source": ["sample_rate, samples = wavfile.read(str(train_audio_path) + '/three/19e246ad_nohash_0.wav')\n", "frequencies, times, spectogram = signal.spectrogram(samples, sample_rate)\n", "fig = plt.figure(figsize = (10,10))\n", "ax1 = fig.add_subplot(111)\n", "ax1.set_xticks([])\n", "ax1.set_yticks([])\n", "\n", "ax1.set_title('Spectogram - Three')\n", "ax1.imshow(spectogram)"], "execution_count": 12}, {"cell_type": "code", "outputs": [], "metadata": {"collapsed": true}, "source": [], "execution_count": null}]}