Single-word speech recognition with Convolutional Neural Networks on raw waveforms
Jansson, Patrick (2018)
Jansson, Patrick
Yrkeshögskolan Arcada
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201805066676
https://urn.fi/URN:NBN:fi:amk-201805066676
Tiivistelmä
This work focuses on single-word speech recognition, where the end goal is to accurately recognize a set of predefined words from short audio clips. It uses the Speech Commands dataset, which consists of 65 000 one-second long utterances of 30 short words of which we learn to classify 10 words, along with classes for “unknown” words as well as “silence”. Single-word speech recognition can be used in voice interfaces for applications with keyword detection, which can be useful on mobile and embedded devices. These devices often have strict requirements in terms of computing power and memory, which is recognized in the design of the speech recognition model. To classify samples, we use a Convolutional Neural Network (CNN) with one-dimensional convolutions on the raw audio waveform. As opposed to more traditional methods where feature-engineering is crucial, we leverage the power of deep learning to learn the feature representation during training. To effectively train the model we use data augmentation, weighted random sampling, Stochastic Gradient Descent with Warm Restarts (SGDR) and pseudo-labeling. The model achieves 97.4% accuracy on the validation set, 88.7% and 89.4% on the two test sets. The results show that the model can predict samples of words it has seen during training with high accuracy, but it somewhat struggles to generalize to words outside of the scope of the training data and extremely noisy samples. Examensarbetet fokuserar på taligenkänning av enskilda ord med ett konvolutionellt neuronnät, där målet är att lära sig klassificera ett antal fördefinierade ord. Taligenkänning av enskilda ord kan användas som röstgränssnitt med nyckelordsigenkänning på t.ex. smarttelefoner och inbäddade system. Dessa apparater har ofta strikta krav för datakraft och minne, vilket beaktas i examensarbetet fastän det huvudsakliga målet inte är en modell som kan användas i dem. Examensarbetet använder sig av datamängden Speech Commands, som består av ca 65 000 en sekund långa uttalanden med 30 engelskspråkiga ord som t.ex. ”left”, ”right” och ”stop”. Målet är att klassificera 10 av orden i datamängden, samt två separata klasser för alla andra ord och tystnad. För att klassificera orden används ett konvolutionellt neuronnät, som består av endimensionella konvolutioner för att användas på rå ljuddata. Målet är att utnyttja kraften av djupinlärning där neuronnätet självt lär sig särdragsrepresentationer under inlärningprocessen. Traditionella metoder för taligenkänning använder sig däremot av funktionsteknik för att förvandla dataexemplaren till exempelvis spektrogram, som sedan används av modellen. För effektiv inlärning används fyra huvudsakliga metoder: viktad slumpmässig provtagning, Stochastic Gradient Descent with Warm Restarts (SGDR), artificiell utvidgning av datamängden och användning av pseudo-etiketter. Viktad slumpmässig provtagning används för att jämna ut klassdistributionen under inlärningsprocessen. SGDR är en metod för hur man ändrar inlärningstakten efter varje inlärningsiteration. Artificiell utvidgning av datamängden består av att man modifierar de tillgängliga dataexemplaren på ett sätt där de fortfarande kan identifieras med samma etikett. För att använda sig av pseudo-etiketter utnyttjar man en färdigt inlärd modell som gör förutsägelser på okänd data. Dessa förutsägelser används sedan som sanna värden för inlärning av en ny modell. Den slutliga modellen uppnår 97,4% noggrannhet på valideringsdatamängden, och 88,7% samt 89,4% noggrannhet på två testdatamängder. Resultaten visar att modellen med hög noggrannhet kan förutsäga ord som den sett under inlärningprocessen, men det uppstår vissa problem med att förutspå nya ord samt exemplar med mycket backgrundsoljud eller låg ljudkvalitet.