{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Trigger Word Detection\n", "\n", "Welcome to the final programming assignment of this specialization! \n", "\n", "In this week's videos, you learned about applying deep learning to speech recognition. In this assignment, you will construct a speech dataset and implement an algorithm for trigger word detection (sometimes also called keyword detection, or wakeword detection). Trigger word detection is the technology that allows devices like Amazon Alexa, Google Home, Apple Siri, and Baidu DuerOS to wake up upon hearing a certain word. \n", "\n", "For this exercise, our trigger word will be \"Activate.\" Every time it hears you say \"activate,\" it will make a \"chiming\" sound. By the end of this assignment, you will be able to record a clip of yourself talking, and have the algorithm trigger a chime when it detects you saying \"activate.\" \n", "\n", "After completing this assignment, perhaps you can also extend it to run on your laptop so that every time you say \"activate\" it starts up your favorite app, or turns on a network connected lamp in your house, or triggers some other event? \n", "\n", "\n", "\n", "In this assignment you will learn to: \n", "- Structure a speech recognition project\n", "- Synthesize and process audio recordings to create train/dev datasets\n", "- Train a trigger word detection model and make predictions\n", "\n", "Lets get started! Run the following cell to load the package you are going to use. \n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "from pydub import AudioSegment\n", "import random\n", "import sys\n", "import io\n", "import os\n", "import glob\n", "import IPython\n", "from td_utils import *\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1 - Data synthesis: Creating a speech dataset \n", "\n", "Let's start by building a dataset for your trigger word detection algorithm. A speech dataset should ideally be as close as possible to the application you will want to run it on. In this case, you'd like to detect the word \"activate\" in working environments (library, home, offices, open-spaces ...). You thus need to create recordings with a mix of positive words (\"activate\") and negative words (random words other than activate) on different background sounds. Let's see how you can create such a dataset. \n", "\n", "## 1.1 - Listening to the data \n", "\n", "One of your friends is helping you out on this project, and they've gone to libraries, cafes, restaurants, homes and offices all around the region to record background noises, as well as snippets of audio of people saying positive/negative words. This dataset includes people speaking in a variety of accents. \n", "\n", "In the raw_data directory, you can find a subset of the raw audio files of the positive words, negative words, and background noise. You will use these audio files to synthesize a dataset to train the model. The \"activate\" directory contains positive examples of people saying the word \"activate\". The \"negatives\" directory contains negative examples of people saying random words other than \"activate\". There is one word per audio recording. The \"backgrounds\" directory contains 10 second clips of background noise in different environments.\n", "\n", "Run the cells below to listen to some examples." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(\"./raw_data/activates/1.wav\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(\"./raw_data/negatives/4.wav\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(\"./raw_data/backgrounds/1.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You will use these three type of recordings (positives/negatives/backgrounds) to create a labelled dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.2 - From audio recordings to spectrograms\n", "\n", "What really is an audio recording? A microphone records little variations in air pressure over time, and it is these little variations in air pressure that your ear also perceives as sound. You can think of an audio recording is a long list of numbers measuring the little air pressure changes detected by the microphone. We will use audio sampled at 44100 Hz (or 44100 Hertz). This means the microphone gives us 44100 numbers per second. Thus, a 10 second audio clip is represented by 441000 numbers (= $10 \\times 44100$). \n", "\n", "It is quite difficult to figure out from this \"raw\" representation of audio whether the word \"activate\" was said. In order to help your sequence model more easily learn to detect triggerwords, we will compute a *spectrogram* of the audio. The spectrogram tells us how much different frequencies are present in an audio clip at a moment in time. \n", "\n", "(If you've ever taken an advanced class on signal processing or on Fourier transforms, a spectrogram is computed by sliding a window over the raw audio signal, and calculates the most active frequencies in each window using a Fourier transform. If you don't understand the previous sentence, don't worry about it.) \n", "\n", "Lets see an example. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(\"audio_examples/example_train.wav\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = graph_spectrogram(\"audio_examples/example_train.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The graph above represents how active each frequency is (y axis) over a number of time-steps (x axis). \n", "\n", "\n", "
**Figure 1**: Spectrogram of an audio recording, where the color shows the degree to which different frequencies are present (loud) in the audio at different points in time. Green squares means a certain frequency is more active or more present in the audio clip (louder); blue squares denote less active frequencies.
\n", "\n", "The dimension of the output spectrogram depends upon the hyperparameters of the spectrogram software and the length of the input. In this notebook, we will be working with 10 second audio clips as the \"standard length\" for our training examples. The number of timesteps of the spectrogram will be 5511. You'll see later that the spectrogram will be the input $x$ into the network, and so $T_x = 5511$.\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time steps in audio recording before spectrogram (441000,)\n", "Time steps in input after spectrogram (101, 5511)\n" ] } ], "source": [ "_, data = wavfile.read(\"audio_examples/example_train.wav\")\n", "print(\"Time steps in audio recording before spectrogram\", data[:,0].shape)\n", "print(\"Time steps in input after spectrogram\", x.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, you can define:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Tx = 5511 # The number of time steps input to the model from the spectrogram\n", "n_freq = 101 # Number of frequencies input to the model at each time step of the spectrogram" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that even with 10 seconds being our default training example length, 10 seconds of time can be discretized to different numbers of value. You've seen 441000 (raw audio) and 5511 (spectrogram). In the former case, each step represents $10/441000 \\approx 0.000023$ seconds. In the second case, each step represents $10/5511 \\approx 0.0018$ seconds. \n", "\n", "For the 10sec of audio, the key values you will see in this assignment are:\n", "\n", "- $441000$ (raw audio)\n", "- $5511 = T_x$ (spectrogram output, and dimension of input to the neural network). \n", "- $10000$ (used by the `pydub` module to synthesize audio) \n", "- $1375 = T_y$ (the number of steps in the output of the GRU you'll build). \n", "\n", "Note that each of these representations correspond to exactly 10 seconds of time. It's just that they are discretizing them to different degrees. All of these are hyperparameters and can be changed (except the 441000, which is a function of the microphone). We have chosen values that are within the standard ranges uses for speech systems. \n", "\n", "Consider the $T_y = 1375$ number above. This means that for the output of the model, we discretize the 10s into 1375 time-intervals (each one of length $10/1375 \\approx 0.0072$s) and try to predict for each of these intervals whether someone recently finished saying \"activate.\" \n", "\n", "Consider also the 10000 number above. This corresponds to discretizing the 10sec clip into 10/10000 = 0.001 second itervals. 0.001 seconds is also called 1 millisecond, or 1ms. So when we say we are discretizing according to 1ms intervals, it means we are using 10,000 steps. \n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Ty = 1375 # The number of time steps in the output of our model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3 - Generating a single training example\n", "\n", "Because speech data is hard to acquire and label, you will synthesize your training data using the audio clips of activates, negatives, and backgrounds. It is quite slow to record lots of 10 second audio clips with random \"activates\" in it. Instead, it is easier to record lots of positives and negative words, and record background noise separately (or download background noise from free online sources). \n", "\n", "To synthesize a single training example, you will:\n", "\n", "- Pick a random 10 second background audio clip\n", "- Randomly insert 0-4 audio clips of \"activate\" into this 10sec clip\n", "- Randomly insert 0-2 audio clips of negative words into this 10sec clip\n", "\n", "Because you had synthesized the word \"activate\" into the background clip, you know exactly when in the 10sec clip the \"activate\" makes its appearance. You'll see later that this makes it easier to generate the labels $y^{\\langle t \\rangle}$ as well. \n", "\n", "You will use the pydub package to manipulate audio. Pydub converts raw audio files into lists of Pydub data structures (it is not important to know the details here). Pydub uses 1ms as the discretization interval (1ms is 1 millisecond = 1/1000 seconds) which is why a 10sec clip is always represented using 10,000 steps. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "background len: 10000\n", "activate[0] len: 916\n", "activate[1] len: 1579\n" ] } ], "source": [ "# Load audio segments using pydub \n", "activates, negatives, backgrounds = load_raw_audio()\n", "\n", "print(\"background len: \" + str(len(backgrounds[0]))) # Should be 10,000, since it is a 10 sec clip\n", "print(\"activate[0] len: \" + str(len(activates[0]))) # Maybe around 1000, since an \"activate\" audio clip is usually around 1 sec (but varies a lot)\n", "print(\"activate[1] len: \" + str(len(activates[1]))) # Different \"activate\" clips can have different lengths " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Overlaying positive/negative words on the background**:\n", "\n", "Given a 10sec background clip and a short audio clip (positive or negative word), you need to be able to \"add\" or \"insert\" the word's short audio clip onto the background. To ensure audio segments inserted onto the background do not overlap, you will keep track of the times of previously inserted audio clips. You will be inserting multiple clips of positive/negative words onto the background, and you don't want to insert an \"activate\" or a random word somewhere that overlaps with another clip you had previously added. \n", "\n", "For clarity, when you insert a 1sec \"activate\" onto a 10sec clip of cafe noise, you end up with a 10sec clip that sounds like someone sayng \"activate\" in a cafe, with \"activate\" superimposed on the background cafe noise. You do *not* end up with an 11 sec clip. You'll see later how pydub allows you to do this. \n", "\n", "**Creating the labels at the same time you overlay**:\n", "\n", "Recall also that the labels $y^{\\langle t \\rangle}$ represent whether or not someone has just finished saying \"activate.\" Given a background clip, we can initialize $y^{\\langle t \\rangle}=0$ for all $t$, since the clip doesn't contain any \"activates.\" \n", "\n", "When you insert or overlay an \"activate\" clip, you will also update labels for $y^{\\langle t \\rangle}$, so that 50 steps of the output now have target label 1. You will train a GRU to detect when someone has *finished* saying \"activate\". For example, suppose the synthesized \"activate\" clip ends at the 5sec mark in the 10sec audio---exactly halfway into the clip. Recall that $T_y = 1375$, so timestep $687 = $ `int(1375*0.5)` corresponds to the moment at 5sec into the audio. So, you will set $y^{\\langle 688 \\rangle} = 1$. Further, you would quite satisfied if the GRU detects \"activate\" anywhere within a short time-internal after this moment, so we actually set 50 consecutive values of the label $y^{\\langle t \\rangle}$ to 1. Specifically, we have $y^{\\langle 688 \\rangle} = y^{\\langle 689 \\rangle} = \\cdots = y^{\\langle 737 \\rangle} = 1$. \n", "\n", "This is another reason for synthesizing the training data: It's relatively straightforward to generate these labels $y^{\\langle t \\rangle}$ as described above. In contrast, if you have 10sec of audio recorded on a microphone, it's quite time consuming for a person to listen to it and mark manually exactly when \"activate\" finished. \n", "\n", "Here's a figure illustrating the labels $y^{\\langle t \\rangle}$, for a clip which we have inserted \"activate\", \"innocent\", activate\", \"baby.\" Note that the positive labels \"1\" are associated only with the positive words. \n", "\n", "\n", "
**Figure 2**
\n", "\n", "To implement the training set synthesis process, you will use the following helper functions. All of these function will use a 1ms discretization interval, so the 10sec of audio is alwsys discretized into 10,000 steps. \n", "\n", "1. `get_random_time_segment(segment_ms)` gets a random time segment in our background audio\n", "2. `is_overlapping(segment_time, existing_segments)` checks if a time segment overlaps with existing segments\n", "3. `insert_audio_clip(background, audio_clip, existing_times)` inserts an audio segment at a random time in our background audio using `get_random_time_segment` and `is_overlapping`\n", "4. `insert_ones(y, segment_end_ms)` inserts 1's into our label vector y after the word \"activate\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `get_random_time_segment(segment_ms)` returns a random time segment onto which we can insert an audio clip of duration `segment_ms`. Read through the code to make sure you understand what it is doing. \n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def get_random_time_segment(segment_ms):\n", " \"\"\"\n", " Gets a random time segment of duration segment_ms in a 10,000 ms audio clip.\n", " \n", " Arguments:\n", " segment_ms -- the duration of the audio clip in ms (\"ms\" stands for \"milliseconds\")\n", " \n", " Returns:\n", " segment_time -- a tuple of (segment_start, segment_end) in ms\n", " \"\"\"\n", " \n", " segment_start = np.random.randint(low=0, high=10000-segment_ms) # Make sure segment doesn't run past the 10sec background \n", " segment_end = segment_start + segment_ms - 1\n", " \n", " return (segment_start, segment_end)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, suppose you have inserted audio clips at segments (1000,1800) and (3400,4500). I.e., the first segment starts at step 1000, and ends at step 1800. Now, if we are considering inserting a new audio clip at (3000,3600) does this overlap with one of the previously inserted segments? In this case, (3000,3600) and (3400,4500) overlap, so we should decide against inserting a clip here. \n", "\n", "For the purpose of this function, define (100,200) and (200,250) to be overlapping, since they overlap at timestep 200. However, (100,199) and (200,250) are non-overlapping. \n", "\n", "**Exercise**: Implement `is_overlapping(segment_time, existing_segments)` to check if a new time segment overlaps with any of the previous segments. You will need to carry out 2 steps:\n", "\n", "1. Create a \"False\" flag, that you will later set to \"True\" if you find that there is an overlap.\n", "2. Loop over the previous_segments' start and end times. Compare these times to the segment's start and end times. If there is an overlap, set the flag defined in (1) as True. You can use:\n", "```python\n", "for ....:\n", " if ... <= ... and ... >= ...:\n", " ...\n", "```\n", "Hint: There is overlap if the segment starts before the previous segment ends, and the segment ends after the previous segment starts." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# GRADED FUNCTION: is_overlapping\n", "\n", "def is_overlapping(segment_time, previous_segments):\n", " \"\"\"\n", " Checks if the time of a segment overlaps with the times of existing segments.\n", " \n", " Arguments:\n", " segment_time -- a tuple of (segment_start, segment_end) for the new segment\n", " previous_segments -- a list of tuples of (segment_start, segment_end) for the existing segments\n", " \n", " Returns:\n", " True if the time segment overlaps with any of the existing segments, False otherwise\n", " \"\"\"\n", " \n", " segment_start, segment_end = segment_time\n", " \n", " ### START CODE HERE ### (≈ 4 line)\n", " # Step 1: Initialize overlap as a \"False\" flag. (≈ 1 line)\n", " overlap = False\n", " \n", " # Step 2: loop over the previous_segments start and end times.\n", " # Compare start/end times and set the flag to True if there is an overlap (≈ 3 lines)\n", " for previous_start, previous_end in previous_segments:\n", " if segment_start <= previous_end and segment_end >= previous_start:\n", " overlap = True\n", " ### END CODE HERE ###\n", "\n", " return overlap" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overlap 1 = False\n", "Overlap 2 = True\n" ] } ], "source": [ "overlap1 = is_overlapping((950, 1430), [(2000, 2550), (260, 949)])\n", "overlap2 = is_overlapping((2305, 2950), [(824, 1532), (1900, 2305), (3424, 3656)])\n", "print(\"Overlap 1 = \", overlap1)\n", "print(\"Overlap 2 = \", overlap2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**:\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", " **Overlap 1**\n", " \n", " False\n", "
\n", " **Overlap 2**\n", " \n", " True\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, lets use the previous helper functions to insert a new audio clip onto the 10sec background at a random time, but making sure that any newly inserted segment doesn't overlap with the previous segments. \n", "\n", "**Exercise**: Implement `insert_audio_clip()` to overlay an audio clip onto the background 10sec clip. You will need to carry out 4 steps:\n", "\n", "1. Get a random time segment of the right duration in ms.\n", "2. Make sure that the time segment does not overlap with any of the previous time segments. If it is overlapping, then go back to step 1 and pick a new time segment.\n", "3. Add the new time segment to the list of existing time segments, so as to keep track of all the segments you've inserted. \n", "4. Overlay the audio clip over the background using pydub. We have implemented this for you." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# GRADED FUNCTION: insert_audio_clip\n", "\n", "def insert_audio_clip(background, audio_clip, previous_segments):\n", " \"\"\"\n", " Insert a new audio segment over the background noise at a random time step, ensuring that the \n", " audio segment does not overlap with existing segments.\n", " \n", " Arguments:\n", " background -- a 10 second background audio recording. \n", " audio_clip -- the audio clip to be inserted/overlaid. \n", " previous_segments -- times where audio segments have already been placed\n", " \n", " Returns:\n", " new_background -- the updated background audio\n", " \"\"\"\n", " \n", " # Get the duration of the audio clip in ms\n", " segment_ms = len(audio_clip)\n", " \n", " ### START CODE HERE ### \n", " # Step 1: Use one of the helper functions to pick a random time segment onto which to insert \n", " # the new audio clip. (≈ 1 line)\n", " segment_time = get_random_time_segment(segment_ms)\n", " \n", " # Step 2: Check if the new segment_time overlaps with one of the previous_segments. If so, keep \n", " # picking new segment_time at random until it doesn't overlap. (≈ 2 lines)\n", " while is_overlapping(segment_time, previous_segments):\n", " segment_time = get_random_time_segment(segment_ms)\n", "\n", " # Step 3: Add the new segment_time to the list of previous_segments (≈ 1 line)\n", " previous_segments.append(segment_time)\n", " ### END CODE HERE ###\n", " \n", " # Step 4: Superpose audio segment and background\n", " new_background = background.overlay(audio_clip, position = segment_time[0])\n", " \n", " return new_background, segment_time" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Segment Time: (2254, 3169)\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.random.seed(5)\n", "audio_clip, segment_time = insert_audio_clip(backgrounds[0], activates[0], [(3790, 4400)])\n", "audio_clip.export(\"insert_test.wav\", format=\"wav\")\n", "print(\"Segment Time: \", segment_time)\n", "IPython.display.Audio(\"insert_test.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**\n", "\n", "\n", " \n", " \n", " \n", " \n", "
\n", " **Segment Time**\n", " \n", " (2254, 3169)\n", "
" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Expected audio\n", "IPython.display.Audio(\"audio_examples/insert_reference.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, implement code to update the labels $y^{\\langle t \\rangle}$, assuming you just inserted an \"activate.\" In the code below, `y` is a `(1,1375)` dimensional vector, since $T_y = 1375$. \n", "\n", "If the \"activate\" ended at time step $t$, then set $y^{\\langle t+1 \\rangle} = 1$ as well as for up to 49 additional consecutive values. However, make sure you don't run off the end of the array and try to update `y[0][1375]`, since the valid indices are `y[0][0]` through `y[0][1374]` because $T_y = 1375$. So if \"activate\" ends at step 1370, you would get only `y[0][1371] = y[0][1372] = y[0][1373] = y[0][1374] = 1`\n", "\n", "**Exercise**: Implement `insert_ones()`. You can use a for loop. (If you are an expert in python's slice operations, feel free also to use slicing to vectorize this.) If a segment ends at `segment_end_ms` (using a 10000 step discretization), to convert it to the indexing for the outputs $y$ (using a $1375$ step discretization), we will use this formula: \n", "```\n", " segment_end_y = int(segment_end_ms * Ty / 10000.0)\n", "```" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# GRADED FUNCTION: insert_ones\n", "\n", "def insert_ones(y, segment_end_ms):\n", " \"\"\"\n", " Update the label vector y. The labels of the 50 output steps strictly after the end of the segment \n", " should be set to 1. By strictly we mean that the label of segment_end_y should be 0 while, the\n", " 50 followinf labels should be ones.\n", " \n", " \n", " Arguments:\n", " y -- numpy array of shape (1, Ty), the labels of the training example\n", " segment_end_ms -- the end time of the segment in ms\n", " \n", " Returns:\n", " y -- updated labels\n", " \"\"\"\n", " \n", " # duration of the background (in terms of spectrogram time-steps)\n", " segment_end_y = int(segment_end_ms * Ty / 10000.0)\n", " \n", " # Add 1 to the correct index in the background label (y)\n", " ### START CODE HERE ### (≈ 3 lines)\n", " for i in range(segment_end_y + 1, segment_end_y + 51):\n", " if i < Ty:\n", " y[0, i] = 1\n", " ### END CODE HERE ###\n", " \n", " return y" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sanity checks: 0.0 1.0 0.0\n" ] }, { "data": { "image/png": "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\naTImQ5ZhwDo99wskzUTEPRHxqKQ9kraN7LNN0kdi4GZJp9g+s+VaAQA1rayxzxpJh4aWD0t6fo19\n1kj6+nFVN4eb7p7VH19/Z9s/Fj3z3aPHGu3/1Yce0Uvfc9OYqgGk7yebC1kn3Ftje7sGwzZav379\nkn7GSU9cqU1nnNRmWeihs55+sl5xTr2Tw1993jqGZtCJn37GU3Xxs09f7jIk1Qv3I5LWDS2vrdY1\n3UcRsUvSLkmamppa0tvc+c88Vec/8/ylfCsm1MVnn66Lz85xwAFdqTPmvl/SJtsbbZ8g6VJJe0f2\n2Svp8mrWzIWSvhkRrQ/JAADqWbTnHhFHbV8l6QZJKyTtjogDtq+stu+UtE/SJZJmJD0i6YrxlQwA\nWEytMfeI2KdBgA+v2zn0OiS9qd3SAABLxSdUAaBAhDsAFIhwB4ACEe4AUCDCHQAK5Fimj8zanpV0\n3xK/fZWkh1ospwt9q5l6x69vNVPv+NWp+ZkRsXqxH7Rs4X48bE9HxNRy19FE32qm3vHrW83UO35t\n1sywDAAUiHAHgAL1Ndx3LXcBS9C3mql3/PpWM/WOX2s193LMHQCwsL723AEAC+hduC/2sO7lYHud\n7X+3faftA7bfXK0/zfa/2P5y9e+pQ9/z1upvOGj75ctU9wrb/237+p7Ue4rtj9v+ku27bL8gc822\nf7tqD3fY/pjtH89Ur+3dth+0fcfQusb12T7f9u3Vtvfb43s0yjw1v6tqE7fZ/gfbp2Spea56h7b9\nru2wvWos9UZEb740uOXwVyT9hKQTJN0qaXOCus6UdF71+mRJd2vwMPE/l7SjWr9D0jur15ur2p8o\naWP1N61Yhrp/R9LfSrq+Ws5e719JemP1+gRJp2StWYPHTN4r6UnV8t9Len2meiW9SNJ5ku4YWte4\nPkn/JelCDR5Z/mlJWzuu+WWSVlav35mp5rnqrdav0+A26vdJWjWOevvWc6/zsO7ORcTXI+IL1etv\nS7pLg4N7mwaBpOrfX6xeb5O0JyK+GxH3anAf/Au6rNn2WkmvkHTt0OrM9T5VgwPlQ5IUEY9GxP9l\nrlmDW2o/yfZKSSdK+lqmeiPis5IeHlndqD7bZ0p6SkTcHIMU+sjQ93RSc0TcGBFHq8WbNXgSXIqa\n5/k/lqT3Svo9ScMXPVutt2/hPt+DuNOwvUHScyV9XtIZ8cMnUj0g6YzqdYa/430aNK7hJ01nrnej\npFlJf1kNJV1r+8lKWnNEHJH0F5Lu1+BB8d+MiBuVtN4hTetbU70eXb9cfl2Dnq2UtGbb2yQdiYhb\nRza1Wm/fwj012ydJ+oSk34qIbw1vq95xU0xNsv1KSQ9GxC3z7ZOp3spKDU5vr4mI50r6jgbDBj+Q\nqeZqrHqbBm9Kz5D0ZNuvHd4nU71zyV7fKNtvk3RU0keXu5b52D5R0u9Levu4f1ffwr3Wg7iXg+0n\naBDsH42I66rV/1OdUqn698Fq/XL/HT8n6VW2v6rB0NbP2/4b5a1XGvRWDkfE56vlj2sQ9llr/gVJ\n90bEbER8T9J1kn42cb2PaVrfEf1wGGR4fadsv17SKyW9pnpTknLW/CwN3vBvrY6/tZK+YPvparne\nvoV7nYd1d666cv0hSXdFxHuGNu2V9Lrq9eskfWpo/aW2n2h7o6RNGlww6UREvDUi1kbEBg3+D/8t\nIl6btd6q5gckHbJ9drXqJZLuVN6a75d0oe0Tq/bxEg2uxWSt9zGN6quGcL5l+8Lq77x86Hs6YXuL\nBkOMr4qIR4Y2pas5Im6PiNMjYkN1/B3WYDLGA63XO44rxOP80uBB3HdrcCX5bctdT1XTCzU4fb1N\n0herr0skPU3SZyR9WdK/Sjpt6HveVv0NBzXG2QU1ar9IP5wtk7peSc+RNF39P39S0qmZa5b0R5K+\nJOkOSX+twSyINPVK+pgG1wO+V4XMG5ZSn6Sp6m/8iqQPqPpwZIc1z2gwVv3YsbczS81z1Tuy/auq\nZsu0XS+fUAWAAvVtWAYAUAPhDgAFItwBoECEOwAUiHAHgAIR7gBQIMIdAApEuANAgf4fVXUoGewl\nMn8AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "arr1 = insert_ones(np.zeros((1, Ty)), 9700)\n", "plt.plot(insert_ones(arr1, 4251)[0,:])\n", "print(\"sanity checks:\", arr1[0][1333], arr1[0][634], arr1[0][635])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**\n", "\n", " \n", " \n", " \n", " \n", "
\n", " **sanity checks**:\n", " \n", " 0.0 1.0 0.0\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, you can use `insert_audio_clip` and `insert_ones` to create a new training example.\n", "\n", "**Exercise**: Implement `create_training_example()`. You will need to carry out the following steps:\n", "\n", "1. Initialize the label vector $y$ as a numpy array of zeros and shape $(1, T_y)$.\n", "2. Initialize the set of existing segments to an empty list.\n", "3. Randomly select 0 to 4 \"activate\" audio clips, and insert them onto the 10sec clip. Also insert labels at the correct position in the label vector $y$.\n", "4. Randomly select 0 to 2 negative audio clips, and insert them into the 10sec clip. \n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# GRADED FUNCTION: create_training_example\n", "\n", "def create_training_example(background, activates, negatives):\n", " \"\"\"\n", " Creates a training example with a given background, activates, and negatives.\n", " \n", " Arguments:\n", " background -- a 10 second background audio recording\n", " activates -- a list of audio segments of the word \"activate\"\n", " negatives -- a list of audio segments of random words that are not \"activate\"\n", " \n", " Returns:\n", " x -- the spectrogram of the training example\n", " y -- the label at each time step of the spectrogram\n", " \"\"\"\n", " \n", " # Set the random seed\n", " np.random.seed(18)\n", " \n", " # Make background quieter\n", " background = background - 20\n", "\n", " ### START CODE HERE ###\n", " # Step 1: Initialize y (label vector) of zeros (≈ 1 line)\n", " y = np.zeros((1, Ty))\n", "\n", " # Step 2: Initialize segment times as empty list (≈ 1 line)\n", " previous_segments = []\n", " ### END CODE HERE ###\n", " \n", " # Select 0-4 random \"activate\" audio clips from the entire list of \"activates\" recordings\n", " number_of_activates = np.random.randint(0, 5)\n", " random_indices = np.random.randint(len(activates), size=number_of_activates)\n", " random_activates = [activates[i] for i in random_indices]\n", " \n", " ### START CODE HERE ### (≈ 3 lines)\n", " # Step 3: Loop over randomly selected \"activate\" clips and insert in background\n", " for random_activate in random_activates:\n", " # Insert the audio clip on the background\n", " background, segment_time = insert_audio_clip(background, random_activate, previous_segments)\n", " # Retrieve segment_start and segment_end from segment_time\n", " segment_start, segment_end = segment_time\n", " # Insert labels in \"y\"\n", " y = insert_ones(y, segment_end_ms=segment_end)\n", " ### END CODE HERE ###\n", "\n", " # Select 0-2 random negatives audio recordings from the entire list of \"negatives\" recordings\n", " number_of_negatives = np.random.randint(0, 3)\n", " random_indices = np.random.randint(len(negatives), size=number_of_negatives)\n", " random_negatives = [negatives[i] for i in random_indices]\n", "\n", " ### START CODE HERE ### (≈ 2 lines)\n", " # Step 4: Loop over randomly selected negative clips and insert in background\n", " for random_negative in random_negatives:\n", " # Insert the audio clip on the background \n", " background, _ = insert_audio_clip(background, random_negative, previous_segments)\n", " ### END CODE HERE ###\n", " \n", " # Standardize the volume of the audio clip \n", " background = match_target_amplitude(background, -20.0)\n", "\n", " # Export new training example \n", " file_handle = background.export(\"train\" + \".wav\", format=\"wav\")\n", " print(\"File (train.wav) was saved in your directory.\")\n", " \n", " # Get and plot spectrogram of the new recording (background with superposition of positive and negatives)\n", " x = graph_spectrogram(\"train.wav\")\n", " \n", " return x, y" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "File (train.wav) was saved in your directory.\n" ] }, { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y = create_training_example(backgrounds[0], activates, negatives)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now you can listen to the training example you created and compare it to the spectrogram generated above." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(\"train.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(\"audio_examples/train_reference.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, you can plot the associated labels for the generated training example." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nQv8PcimiUyGDpLEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(y[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.4 - Full training set\n", "\n", "You've now implemented the code needed to generate a single training example. We used this process to generate a large training set. To save time, we've already generated a set of training examples. " ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Load preprocessed training examples\n", "X = np.load(\"./XY_train/X.npy\")\n", "Y = np.load(\"./XY_train/Y.npy\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.5 - Development set\n", "\n", "To test our model, we recorded a development set of 25 examples. While our training data is synthesized, we want to create a development set using the same distribution as the real inputs. Thus, we recorded 25 10-second audio clips of people saying \"activate\" and other random words, and labeled them by hand. This follows the principle described in Course 3 that we should create the dev set to be as similar as possible to the test set distribution; that's why our dev set uses real rather than synthesized audio. \n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Load preprocessed dev set examples\n", "X_dev = np.load(\"./XY_dev/X_dev.npy\")\n", "Y_dev = np.load(\"./XY_dev/Y_dev.npy\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2 - Model\n", "\n", "Now that you've built a dataset, lets write and train a trigger word detection model! \n", "\n", "The model will use 1-D convolutional layers, GRU layers, and dense layers. Let's load the packages that will allow you to use these layers in Keras. This might take a minute to load. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n" ] } ], "source": [ "from keras.callbacks import ModelCheckpoint\n", "from keras.models import Model, load_model, Sequential\n", "from keras.layers import Dense, Activation, Dropout, Input, Masking, TimeDistributed, LSTM, Conv1D\n", "from keras.layers import GRU, Bidirectional, BatchNormalization, Reshape\n", "from keras.optimizers import Adam" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.1 - Build the model\n", "\n", "Here is the architecture we will use. Take some time to look over the model and see if it makes sense. \n", "\n", "\n", "
**Figure 3**
\n", "\n", "One key step of this model is the 1D convolutional step (near the bottom of Figure 3). It inputs the 5511 step spectrogram, and outputs a 1375 step output, which is then further processed by multiple layers to get the final $T_y = 1375$ step output. This layer plays a role similar to the 2D convolutions you saw in Course 4, of extracting low-level features and then possibly generating an output of a smaller dimension. \n", "\n", "Computationally, the 1-D conv layer also helps speed up the model because now the GRU has to process only 1375 timesteps rather than 5511 timesteps. The two GRU layers read the sequence of inputs from left to right, then ultimately uses a dense+sigmoid layer to make a prediction for $y^{\\langle t \\rangle}$. Because $y$ is binary valued (0 or 1), we use a sigmoid output at the last layer to estimate the chance of the output being 1, corresponding to the user having just said \"activate.\"\n", "\n", "Note that we use a uni-directional RNN rather than a bi-directional RNN. This is really important for trigger word detection, since we want to be able to detect the trigger word almost immediately after it is said. If we used a bi-directional RNN, we would have to wait for the whole 10sec of audio to be recorded before we could tell if \"activate\" was said in the first second of the audio clip. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Implementing the model can be done in four steps:\n", " \n", "**Step 1**: CONV layer. Use `Conv1D()` to implement this, with 196 filters, \n", "a filter size of 15 (`kernel_size=15`), and stride of 4. [[See documentation.](https://keras.io/layers/convolutional/#conv1d)]\n", "\n", "**Step 2**: First GRU layer. To generate the GRU layer, use:\n", "```\n", "X = GRU(units = 128, return_sequences = True)(X)\n", "```\n", "Setting `return_sequences=True` ensures that all the GRU's hidden states are fed to the next layer. Remember to follow this with Dropout and BatchNorm layers. \n", "\n", "**Step 3**: Second GRU layer. This is similar to the previous GRU layer (remember to use `return_sequences=True`), but has an extra dropout layer. \n", "\n", "**Step 4**: Create a time-distributed dense layer as follows: \n", "```\n", "X = TimeDistributed(Dense(1, activation = \"sigmoid\"))(X)\n", "```\n", "This creates a dense layer followed by a sigmoid, so that the parameters used for the dense layer are the same for every time step. [[See documentation](https://keras.io/layers/wrappers/).]\n", "\n", "**Exercise**: Implement `model()`, the architecture is presented in Figure 3." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# GRADED FUNCTION: model\n", "\n", "def model(input_shape):\n", " \"\"\"\n", " Function creating the model's graph in Keras.\n", " \n", " Argument:\n", " input_shape -- shape of the model's input data (using Keras conventions)\n", "\n", " Returns:\n", " model -- Keras model instance\n", " \"\"\"\n", " \n", " X_input = Input(shape = input_shape)\n", " \n", " ### START CODE HERE ###\n", " \n", " # Step 1: CONV layer (≈4 lines)\n", " X = Conv1D(196, kernel_size=15, strides=4)(X_input) # CONV1D\n", " X = BatchNormalization()(X) # Batch normalization\n", " X = Activation('relu')(X) # ReLu activation\n", " X = Dropout(0.8)(X) # dropout (use 0.8)\n", "\n", " # Step 2: First GRU Layer (≈4 lines)\n", " X = GRU(units = 128, return_sequences = True)(X) # GRU (use 128 units and return the sequences)\n", " X = Dropout(0.8)(X) # dropout (use 0.8)\n", " X = BatchNormalization()(X) # Batch normalization\n", " \n", " # Step 3: Second GRU Layer (≈4 lines)\n", " X = GRU(units = 128, return_sequences = True)(X) # GRU (use 128 units and return the sequences)\n", " X = Dropout(0.8)(X) # dropout (use 0.8)\n", " X = BatchNormalization()(X) # Batch normalization\n", " X = Dropout(0.8)(X) # dropout (use 0.8)\n", " \n", " # Step 4: Time-distributed dense layer (≈1 line)\n", " X = TimeDistributed(Dense(1, activation = \"sigmoid\"))(X) # time distributed (sigmoid)\n", "\n", " ### END CODE HERE ###\n", "\n", " model = Model(inputs = X_input, outputs = X)\n", " \n", " return model " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model = model(input_shape = (Tx, n_freq))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's print the model summary to keep track of the shapes." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Expected Output**:\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", " **Total params**\n", " \n", " 522,561\n", "
\n", " **Trainable params**\n", " \n", " 521,657\n", "
\n", " **Non-trainable params**\n", " \n", " 904\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The output of the network is of shape (None, 1375, 1) while the input is (None, 5511, 101). The Conv1D has reduced the number of steps from 5511 at spectrogram to 1375. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.2 - Fit the model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trigger word detection takes a long time to train. To save time, we've already trained a model for about 3 hours on a GPU using the architecture you built above, and a large training set of about 4000 examples. Let's load the model. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model = load_model('./models/tr_model.h5')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can train the model further, using the Adam optimizer and binary cross entropy loss, as follows. This will run quickly because we are training just for one epoch and with a small training set of 26 examples. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "opt = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01)\n", "model.compile(loss='binary_crossentropy', optimizer=opt, metrics=[\"accuracy\"])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model.fit(X, Y, batch_size = 5, epochs=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.3 - Test the model\n", "\n", "Finally, let's see how your model performs on the dev set." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "loss, acc = model.evaluate(X_dev, Y_dev)\n", "print(\"Dev set accuracy = \", acc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This looks pretty good! However, accuracy isn't a great metric for this task, since the labels are heavily skewed to 0's, so a neural network that just outputs 0's would get slightly over 90% accuracy. We could define more useful metrics such as F1 score or Precision/Recall. But let's not bother with that here, and instead just empirically see how the model does. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3 - Making Predictions\n", "\n", "Now that you have built a working model for trigger word detection, let's use it to make predictions. This code snippet runs audio (saved in a wav file) through the network. \n", "\n", "" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def detect_triggerword(filename):\n", " plt.subplot(2, 1, 1)\n", "\n", " x = graph_spectrogram(filename)\n", " # the spectogram outputs (freqs, Tx) and we want (Tx, freqs) to input into the model\n", " x = x.swapaxes(0,1)\n", " x = np.expand_dims(x, axis=0)\n", " predictions = model.predict(x)\n", " \n", " plt.subplot(2, 1, 2)\n", " plt.plot(predictions[0,:,0])\n", " plt.ylabel('probability')\n", " plt.show()\n", " return predictions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once you've estimated the probability of having detected the word \"activate\" at each output step, you can trigger a \"chiming\" sound to play when the probability is above a certain threshold. Further, $y^{\\langle t \\rangle}$ might be near 1 for many values in a row after \"activate\" is said, yet we want to chime only once. So we will insert a chime sound at most once every 75 output steps. This will help prevent us from inserting two chimes for a single instance of \"activate\". (This plays a role similar to non-max suppression from computer vision.) \n", "\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "chime_file = \"audio_examples/chime.wav\"\n", "def chime_on_activate(filename, predictions, threshold):\n", " audio_clip = AudioSegment.from_wav(filename)\n", " chime = AudioSegment.from_wav(chime_file)\n", " Ty = predictions.shape[1]\n", " # Step 1: Initialize the number of consecutive output steps to 0\n", " consecutive_timesteps = 0\n", " # Step 2: Loop over the output steps in the y\n", " for i in range(Ty):\n", " # Step 3: Increment consecutive output steps\n", " consecutive_timesteps += 1\n", " # Step 4: If prediction is higher than the threshold and more than 75 consecutive output steps have passed\n", " if predictions[0,i,0] > threshold and consecutive_timesteps > 75:\n", " # Step 5: Superpose audio and background using pydub\n", " audio_clip = audio_clip.overlay(chime, position = ((i / Ty) * audio_clip.duration_seconds)*1000)\n", " # Step 6: Reset consecutive output steps to 0\n", " consecutive_timesteps = 0\n", " \n", " audio_clip.export(\"chime_output.wav\", format='wav')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.3 - Test on dev examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's explore how our model performs on two unseen audio clips from the development set. Lets first listen to the two dev set clips. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "IPython.display.Audio(\"./raw_data/dev/1.wav\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "IPython.display.Audio(\"./raw_data/dev/2.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets run the model on these audio clips and see if it adds a chime after \"activate\"!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "filename = \"./raw_data/dev/1.wav\"\n", "prediction = detect_triggerword(filename)\n", "chime_on_activate(filename, prediction, 0.5)\n", "IPython.display.Audio(\"./chime_output.wav\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "filename = \"./raw_data/dev/2.wav\"\n", "prediction = detect_triggerword(filename)\n", "chime_on_activate(filename, prediction, 0.5)\n", "IPython.display.Audio(\"./chime_output.wav\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Congratulations \n", "\n", "You've come to the end of this assignment! \n", "\n", "Here's what you should remember:\n", "- Data synthesis is an effective way to create a large training set for speech problems, specifically trigger word detection. \n", "- Using a spectrogram and optionally a 1D conv layer is a common pre-processing step prior to passing audio data to an RNN, GRU or LSTM.\n", "- An end-to-end deep learning approach can be used to built a very effective trigger word detection system. \n", "\n", "*Congratulations* on finishing the fimal assignment! \n", "\n", "Thank you for sticking with us through the end and for all the hard work you've put into learning deep learning. We hope you have enjoyed the course! \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4 - Try your own example! (OPTIONAL/UNGRADED)\n", "\n", "In this optional and ungraded portion of this notebook, you can try your model on your own audio clips! \n", "\n", "Record a 10 second audio clip of you saying the word \"activate\" and other random words, and upload it to the Coursera hub as `myaudio.wav`. Be sure to upload the audio as a wav file. If your audio is recorded in a different format (such as mp3) there is free software that you can find online for converting it to wav. If your audio recording is not 10 seconds, the code below will either trim or pad it as needed to make it 10 seconds. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Preprocess the audio to the correct format\n", "def preprocess_audio(filename):\n", " # Trim or pad audio segment to 10000ms\n", " padding = AudioSegment.silent(duration=10000)\n", " segment = AudioSegment.from_wav(filename)[:10000]\n", " segment = padding.overlay(segment)\n", " # Set frame rate to 44100\n", " segment = segment.set_frame_rate(44100)\n", " # Export as wav\n", " segment.export(filename, format='wav')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once you've uploaded your audio file to Coursera, put the path to your file in the variable below." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "your_filename = \"audio_examples/my_audio.wav\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "preprocess_audio(your_filename)\n", "IPython.display.Audio(your_filename) # listen to the audio you uploaded " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, use the model to predict when you say activate in the 10 second audio clip, and trigger a chime. If beeps are not being added appropriately, try to adjust the chime_threshold." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "chime_threshold = 0.5\n", "prediction = detect_triggerword(your_filename)\n", "chime_on_activate(your_filename, prediction, chime_threshold)\n", "IPython.display.Audio(\"./chime_output.wav\")" ] } ], "metadata": { "coursera": { "course_slug": "nlp-sequence-models", "graded_item_id": "rSupZ", "launcher_item_id": "cvGhe" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }