Analysis, Design and Implementation Considerations of a Speech Coder Based on LPCNet
Author
Roskær, Christian Bekhøi
Term
4. term
Education
Publication year
2020
Submitted on
2020-06-30
Pages
166
Abstract
Dette projekt, udført i samarbejde med RTX, undersøger den nyligt foreslåede neurale netværksmodel LPCNet til stemmedekodning med henblik på implementering på en indlejret enhed. Vi gennemgår de metoder og principper, som LPCNet bygger på. Under arbejdet retter vi en fejl i kildekoden og træner nye modeller på TIMIT-datasættet, hvilket giver tale, der er forståelig, men lyder unaturligt. Vi fokuserer på den mest beregningstunge del af LPCNet, som hovedsageligt består af to GRU-lag (Gated Recurrent Units, en type rekurrentt neuralt netværk), og analyserer denne del for bedre at forstå dens virkemåde. Analysen fører blandt andet til forslaget om et Block Compressed Sparse Column (BCSC)-format til at håndtere de blok-sparse matricer (mange nulledninger grupperet i blokke), som netværket anvender. I en FPGA-baseret tilgang undersøger vi forskellige dataflytningsskemaer for at øge energieffektiviteten, samtidig med at gennemløbet bevares. I en CPU-baseret implementering kortlægger vi årsagerne til processeringsstop og identificerer hukommelseshierarkiet som den væsentligste årsag. Parallel behandling prioriteres i begge tilgange. Praktiske implementeringsresultater nås ikke inden for projektets tidsramme.
This project, conducted in collaboration with RTX, examines the newly proposed LPCNet voice decoding neural network with the goal of implementing it on an embedded device. We review the methods and ideas that LPCNet relies on. During the work, we correct a source code error and train new models on the TIMIT dataset, producing speech that is intelligible but sounds unnatural. We concentrate on the most computationally demanding part of LPCNet, which mainly consists of two GRU (Gated Recurrent Unit) layers, and analyze this sub-algorithm to better understand how it works. Among other outcomes, we propose a Block Compressed Sparse Column (BCSC) format to handle the block-sparse matrices (many zeros clustered in blocks) used by the network. In an FPGA-based approach, we explore different data movement schemes to improve energy efficiency while maintaining throughput. In a CPU-based implementation, we investigate the causes of processing stalls and identify the memory hierarchy as the primary contributor. Parallel processing is emphasized in both approaches. Practical implementation results were not obtained within the project timeframe.
[This abstract was generated with the help of AI]
Documents
