FPGA-BASED IMPLEMENTATION OF A REAL-TIME 5000-WORD CONTINUOUS SPEECH RECOGNIZER

Similar documents
Optimization of Multi-Channel BCH Error Decoding for Common Cases. Russell Dill Master's Thesis Defense April 20, 2015

OL_H264MCLD Multi-Channel HDTV H.264/AVC Limited Baseline Video Decoder V1.0. General Description. Applications. Features

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features

Design Project: Designing a Viterbi Decoder (PART I)

Design and Implementation of Partial Reconfigurable Fir Filter Using Distributed Arithmetic Architecture

This paper is a preprint of a paper accepted by Electronics Letters and is subject to Institution of Engineering and Technology Copyright.

Keywords Xilinx ISE, LUT, FIR System, SDR, Spectrum- Sensing, FPGA, Memory- optimization, A-OMS LUT.

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

An Efficient Reduction of Area in Multistandard Transform Core

An Efficient High Speed Wallace Tree Multiplier

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

Memory efficient Distributed architecture LUT Design using Unified Architecture

A video signal processor for motioncompensated field-rate upconversion in consumer television

Hardware Implementation of Viterbi Decoder for Wireless Applications

A Fast Constant Coefficient Multiplier for the XC6200

Peak Dynamic Power Estimation of FPGA-mapped Digital Designs

Viterbi Decoder User Guide

Frame Processing Time Deviations in Video Processors

A Low Power Implementation of H.264 Adaptive Deblocking Filter Algorithm

Memory interface design for AVS HD video encoder with Level C+ coding order

ALONG with the progressive device scaling, semiconductor

A Low Power Delay Buffer Using Gated Driver Tree

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

Implementation of Memory Based Multiplication Using Micro wind Software

International Journal of Engineering Research-Online A Peer Reviewed International Journal

Implementation of an MPEG Codec on the Tilera TM 64 Processor

Design of Memory Based Implementation Using LUT Multiplier

COPY RIGHT. To Secure Your Paper As Per UGC Guidelines We Are Providing A Electronic Bar Code

THE USE OF forward error correction (FEC) in optical networks

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques

REDUCING DYNAMIC POWER BY PULSED LATCH AND MULTIPLE PULSE GENERATOR IN CLOCKTREE

How to Manage Video Frame- Processing Time Deviations in ASIC and SOC Video Processors

LUT Optimization for Memory Based Computation using Modified OMS Technique

International Journal of Engineering Trends and Technology (IJETT) - Volume4 Issue8- August 2013

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

The Design of Efficient Viterbi Decoder and Realization by FPGA

Hardware Implementation of Block GC3 Lossless Compression Algorithm for Direct-Write Lithography Systems

An FPGA Implementation of Shift Register Using Pulsed Latches

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

Lossless Compression Algorithms for Direct- Write Lithography Systems

Memory Efficient VLSI Architecture for QCIF to VGA Resolution Conversion

ESE (ESE534): Computer Organization. Last Time. Today. Last Time. Align Data / Balance Paths. Retiming in the Large

Retiming Sequential Circuits for Low Power

LUT Optimization for Distributed Arithmetic-Based Block Least Mean Square Adaptive Filter

An Efficient Low Bit-Rate Video-Coding Algorithm Focusing on Moving Regions

HIGH PERFORMANCE AND LOW POWER ASYNCHRONOUS DATA SAMPLING WITH POWER GATED DOUBLE EDGE TRIGGERED FLIP-FLOP

A low-power portable H.264/AVC decoder using elastic pipeline

LUT Design Using OMS Technique for Memory Based Realization of FIR Filter

Design of Polar List Decoder using 2-Bit SC Decoding Algorithm V Priya 1 M Parimaladevi 2

LogiCORE IP AXI Video Direct Memory Access v5.01.a

SoC IC Basics. COE838: Systems on Chip Design

A CYCLES/MB H.264/AVC MOTION COMPENSATION ARCHITECTURE FOR QUAD-HD APPLICATIONS

Implementation of Dynamic RAMs with clock gating circuits using Verilog HDL

An Efficient Viterbi Decoder Architecture

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

An Lut Adaptive Filter Using DA

FPGA Implementation of Convolutional Encoder And Hard Decision Viterbi Decoder

Implementation and Analysis of Area Efficient Architectures for CSLA by using CLA

Design and FPGA Implementation of 100Gbit/s Scrambler Architectures for OTN Protocol Chethan Kumar M 1, Praveen Kumar Y G 2, Dr. M. Z. Kurian 3.

Figure.1 Clock signal II. SYSTEM ANALYSIS

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

1ms Column Parallel Vision System and It's Application of High Speed Target Tracking

Powerful Software Tools and Methods to Accelerate Test Program Development A Test Systems Strategies, Inc. (TSSI) White Paper.

L12: Reconfigurable Logic Architectures

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

FPGA Hardware Resource Specific Optimal Design for FIR Filters

Optimization of memory based multiplication for LUT

Operating Bio-Implantable Devices in Ultra-Low Power Error Correction Circuits: using optimized ACS Viterbi decoder

Data Converters and DSPs Getting Closer to Sensors

Designing for High Speed-Performance in CPLDs and FPGAs

Performance Modeling and Noise Reduction in VLSI Packaging

Timing with Virtual Signal Synchronization for Circuit Performance and Netlist Security

EEM Digital Systems II

ISSN:

Timing Error Detection: An Adaptive Scheme To Combat Variability EE241 Final Report Nathan Narevsky and Richard Ott {nnarevsky,

CDA 4253 FPGA System Design FPGA Architectures. Hao Zheng Dept of Comp Sci & Eng U of South Florida

Figure 1: Feature Vector Sequence Generator block diagram.

Radar Signal Processing Final Report Spring Semester 2017

Implementation of Low Power and Area Efficient Carry Select Adder

From Theory to Practice: Private Circuit and Its Ambush

AN EFFECTIVE CACHE FOR THE ANYWHERE PIXEL ROUTER

Performance Analysis of Convolutional Encoder and Viterbi Decoder Using FPGA

Polar Decoder PD-MS 1.1

L11/12: Reconfigurable Logic Architectures

BIST for Logic and Memory Resources in Virtex-4 FPGAs

Mauricio Álvarez-Mesa ; Chi Ching Chi ; Ben Juurlink ; Valeri George ; Thomas Schierl Parallel video decoding in the emerging HEVC standard

Adaptive Key Frame Selection for Efficient Video Coding

Commsonic. (Tail-biting) Viterbi Decoder CMS0008. Contact information. Advanced Tail-Biting Architecture yields high coding gain and low delay.

Adaptive Fir Filter with Optimised Area and Power using Modified Inner-Product Block

Optimizing area of local routing network by reconfiguring look up tables (LUTs)

FPGA Design with VHDL

Efficient Implementation of Neural Network Deinterlacing

FPGA Implementation of Viterbi Decoder

VLSI Design: 3) Explain the various MOSFET Capacitances & their significance. 4) Draw a CMOS Inverter. Explain its transfer characteristics

Multicore Design Considerations

Low Power VLSI Circuits and Systems Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Transcription:

FPGA-BASED IMPLEMENTATION OF A REAL-TIME 5000-WORD CONTINUOUS SPEECH RECOGNIZER Young-kyu Choi, Kisun You, and Wonyong Sung School of Electrical Engineering, Seoul National University San 56-1, Shillim-dong, Kwanak-gu, Seoul 151-744 Korea phone: 82-2-880-9372, fax: 82-2-882-4656, email: {ykchoi,ksyou}@dsp.snu.ac.kr, wysung@snu.ac.kr web: msl.snu.ac.kr ABSTRACT We have developed a hidden Markov model based 5000- word speaker independent continuous speech recognizer using a Field-Programmable Gate Array (FPGA). The feature extraction is conducted in software on a soft-core based CPU, while the emission probability computation and the Viterbi beam search are implemented using parallel and pipelined hardware blocks. In order to reduce the bandwidth requirement to external, we employed bit-width reduction of the Gaussian parameters, multi-block computation of the emission probability, and two-stage language model pruning. These optimizations reduce the memory bandwidth requirement for emission probability computation and inter-word transition by 81% and 44%, respectively. The speech recognition hardware was synthesized for the Virtex-4 FPGA, and it operates at 100MHz. The experimental result on Wall Street Journal 5k vocabulary task shows that the developed system runs 1.52 times faster than real-time. 1. INTRODUCTION Large vocabulary continuous speech recognition (LVCSR) is a complex task that requires much computation and data access. Hardware based speech recognition can deliver good performance while consuming relatively small power. There have been various hardware implementations of speech recognition algorithm. However, some are only partially hardware-designed and need additional external search units [1] [2], and some are adequate for only smallsized vocabulary [3] [4]. The recent work done by Lin et, al. [5] is a complete FPGA-based continuous speech recognizer. However, it can only support 1000-word vocabulary task and runs 2.3 times slower than real-time. The profiling result for hardware-based implementation of speech recognition reveals that the main bottleneck is the memory access, not computation. In the emission probability computation process, for example, the execution throughput of the computational part can be easily improved by using the pipelining technique. However, the required memory bandwidth for just this part is 286MB/s for real-time 5000-word continuous speech recognition. Most DDR S (Double Data Rate Synchronous ) cannot support such memory bandwidth. Similarly, the computation for the search process is fairly straightforward since it conducts mostly compare and add operations. However this process spends much time for simply reading and updating the parameters stored in. An experiment on the 5000-word continuous speech recognition shows that 16,391 Hidden Markov (HMM) states and 71,711 word transitions must be updated every frame, 10ms, on average. The observation explained above shows that the memory access time needs to be reduced to speed up the recognizer. In this paper, we propose a fine-grain pipelined hardware architecture which takes full advantage of the memory burst operation supported in DDR S. The execution time for computation overlaps with the memory latency in the developed architecture. We also present several memory access optimization techniques. We first reduced the bit-width of Gaussian parameters and devised a scheme to minimize the quantization error. Next, we proposed an efficient way of reusing the Gaussian parameters by computing the emission probability in multiple blocks. Finally, we utilized a two-level language model pruning technique to prohibit excessive memory reads and updates. The feature extraction part which requires a relatively small amount of computation is implemented using a softcore processor supported in the FPGA. This paper is organized as follows. Section 2 briefly describes the speech recognition algorithm used in this implementation. In Section 3, the architecture of the speech recognition hardware and its execution flow are explained. Several memory reduction techniques are explained in Section 4. Section 5 shows the experimental results, and the concluding remarks are made in Section 6. 2. SPEECH RECOGNITION SYSTEM OVERVIEW We have implemented a context-dependent HMM-based continuous speech recognizer [6]. The recognizer has three major parts - feature extraction, emission probability computation, and Viterbi beam search. The feature vector contains 39 elements, which consists of 13th order MFCC (Mel-Frequency Cepstral Coefficient), the delta, and the accelerator of the coefficients. The feature vector is computed for 30ms input speech frame at every 10ms. After the feature extraction, we can compute the probability of the feature vector being generated from the subphonetic HMM states. Each HMM state has an emission probability density function estimated during the acoustic model training. The emission probability for observation O t of state s is approximated by the maximum Gaussian probability [7] as follows: log(b(o t ;s)) = max {C m 1 m 2 K k=1 (x k µ mk ) 2 }, (1) σ 2 mk where K is the feature dimension and C m is a Gaussian constant. µ mk and σ mk are means and variances of the Gaussian.

After computing the emission probability of all the HMM states, the best state sequence up to the current frame should be found in the search network. The time synchronous Viterbi beam search [8] is employed, which can be divided into two parts. First, we perform the dynamic programming (DP) recursion shown in Eq. (2) to obtain the best accumulated likelihood of the state sequence candidates. ψ t (s j ;w) = max i {ψ t 1 (s i ;w)log(a i j )} log(b(o t ;s j,w)), (2) where a i j is the transition probability from the state i to j, and b(o t ;s j,w) is the emission probability for the state j of the word w in the time frame t. ψ t (s j ;w) is the accumulated likelihood of the most likely state sequence reaching the state j of the word w at time t. To reduce the search space, beam pruning is applied after the dynamic programming. Any state that has a smaller accumulated likelihood value than the beam threshold is discarded. Second, the inter-word transition based on the Eq. (3) is processed. The last state of each word propagates its accumulated likelihood to other words. The language model probability is incorporated in this procedure to give the constraint to the inter-word transition. We adopted the bigram language model, in which the probability of a word depends on the preceding word. The inter-word transition probability is computed as: ψ t (s 0 ;w) = max{log(p(w v))ψ t (s f ;v)}, (3) v where p(w v) is the bigram language model probability from word v to word w, s f indicates the final state, and s 0 is the pseudo initial state. After detecting the end of the speech, the backtracking is performed to recover the recognition result. 3. FINE-GRAIN PIPELINED ARCHITECTURE 3.1 Overall Architecture The overall architecture of the implemented speech recognition system is shown in Fig. 1. The feature extraction is conducted at the master processor in software. Microblaze supported in the Virtex 4 FPGA is utilized as the master processor. It is possible to employ a different type of feature or enhance the recognition accuracy by preprocessing the input sound. Noise reduction or speaker adaptation can also be added in software. As shown in Fig. 1, the system consists of three parts - emission probability computation, dynamic programming & beam pruning, and language model pruning & inter-word transition units. The architecture of each unit will be described in detail throughout this section. In order to reduce external access, we used multiple internal Block RAMs (s). Table 1 shows the usage of s. Only frequently accessed data is stored in the, by which the bandwidth reduction is maximized. The size of one in Virtex-4 FPGA is 18Kbit. Due to the limitation on the size of available internal s, the large-sized data is stored in the external instead. The stores 4.91MB of Gaussian parameters, 699KB of HMM state parameters, and 3.23MB of language model probability and inter-word transition list. External DDR S Through 64-bit PLB Bus BUS Master Data Storage Write Burst Controller Arc Data HMM s Parameters Updated HMM s Parameters Acoustic Data Dynamic Programming Inter-word Transition Beam Feature Data Updated Word Data Word Data Active Acoustic List Prob. Prob. Internal (308KB) Microblaze Microblaze Figure 1: Overall Speech Recognition Architecture Table 1: Internal Utilization # of Bandwidth (MB/s) Prob. 32 3.52 Active Word List 10 2.46 Inter Word Trans. 48 12.51 HMM Status 28 2.06 Others 19 1.57 Total 137 22.12 Unlike, it takes several cycles to access the external. To reduce the effect of such latency, we tried to exploit the burst operation of. The burst mode allows us to increase the throughput of memory access since the data can be accessed every cycle. To efficiently utilize the burst mode, we propose fine-grain pipelined architecture that can handle continuous stream of data. The proposed architecture can process one HMM state or one inter-word transition every clock cycle. By using this pipelined architecture, the computation time overlaps with the data access time. Such scheme allowed us to effectively use the despite the long latency. 3.2 Unit The emission probability computation unit calculates the likelihood log(b(o t ;s)) of the HMM state s. The Gaussian parameters, the mean µ mk and the standard deviation σ mk are sequentially read from the. Then this unit compares µ mk and σ mk with the feature data O t, and computes its emission probability. The computation is performed in 4 stages: subtraction, multiplication, multiplication, and accumulation. The pipelined architecture for emission probability computation is commonly used in many hardware-based speech recognizers [1] [2] [5] [9]. After the computation has been finished, the emission probability is stored in the internal. Then, this value is used by the dynamic programming unit to determine the likelihood of each HMM state. 3.3 Dynamic Programming & Beam Unit Dynamic programming recursion shown in Eq. (2) is performed to evaluate the accumulated likelihood of HMM states. The pipelined architecture proposed in [9] is not feasible for 5000-word recognition since it requires a much larger internal. Our proposed architecture, on the

(state 3) (state 2) Init status Updated Write From From (arc 2) (arc 2) (arc 1) (arc 1) Word Word Read Read Reader Reader First of the Transition Enable Writer Updated First (state 1) Last LM Stage 1 Stage 2 Stage 1 Stage 2 Stage 3 Figure 2: Pipelined Execution of Dynamic Programming & Beam Unit CLK Read (from ) Write (to Write ) Prob. Read uest (to ) Stage 1 Stage 2 HMM Status Update 1 color index (prev HMM state status ) - (next HMM state status ) : 2 1 : 1 : Accum. 3 1 : Accum. Update 1 : Thres. 4 5 4 : 4 : Accum. 6 4 : Accum. Init 5 : 5 : Accum. 4 : Thres. 7 6 : 6 : Accum. 5 : Thres. 1 : NOP 2 : Validate 4 : Invalidate Act - Act Inact - Act Inact - Inact Act - Inact Figure 3: Timing Diagram of the Pipelined Execution other hand, is -based, and efficiently uses the burst mode of. The architecture is shown in Fig. 2, and its pipeline timing diagram is described in Fig. 3. In the first stage, the likelihood from the current state is compared with that from the previous state. If the HMM state was active, the higher likelihood between the two is selected and stored in a buffer for the next cycle. Also, the request signal for the emission probability that corresponds to the current HMM state is sent to the in this stage. If the HMM state was inactive, an NOP is inserted in the pipeline since it is unnecessary to perform the comparison between the likelihood of the current state and that of the previous state. This can be seen in the 3 of Fig. 3. In the second stage, the emission probability requested from the first stage is available. Therefore, the stored likelihood in the previous stage can be added to the emission probability. Then, this added value is compared with the beam threshold value. If it is bigger than the threshold, the updated Figure 4: Pipelined Execution of & Word Update Unit likelihood value is sent to the third stage as in 1 of Fig. 3. If the result is smaller than the threshold, the init signal shown in the the second row of Stage 2 in Fig. 2 is sent to the third stage. In the third stage, the updated likelihood from the second stage is written to the write buffer. If the init signal was sent from the second stage, an initialized value is instead written to the write buffer. The updated likelihood values in the write buffer are written to the in a burst mode when the write buffer becomes full. Also, the state status is updated in this stage. If the accumulated likelihood in the second stage is bigger than the beam threshold, it stays active, as in the 1 of Fig. 3. If not, it becomes inactive, as in the 4 of Fig. 3. An exceptional case would be when the previous state is active, but the current state is inactive. In this case, the current state becomes active in the next time frame. This is shown in the 2 of Fig. 3. Since each stage is independent of others, the next HMM state can be processed after one cycle in the same manner explained above. Such fine-grain pipeline architecture allows us to overlap the computation time with the memory access delay, and makes it possible to efficiently utilize the burst operation capability of. 3.4 & Inter-word Transition Unit After updating all HMM state parameters, the inter-word transition probability is computed. Our implementation method is slightly different from Eq. (3), in that Eq. (3) selects the maximum probability by traversing through the incoming transition, but we chose to update the probability by checking the outgoing transition. The final result would be the same, but the difference is that direct implementation of Eq. (3) would sometimes result in accessing an inactive last state. Our implementation style is more regular since the first state of the receiving word is always active. The architecture of this unit is shown in Fig. 4. The language model probability and the next word address are read from the. In the first stage, the language model probability is added to the likelihood of the last state. Then the result is compared with the language model threshold. If it is bigger than the language model threshold,

Table 2: Memory Bandwidth Reduction with Bit-width Optimization Bit-width WER (%) Bandwidth (MB/s) 16-bit 9.19 286.4 8-bit 31.55 386.1 Optimized 8-bit 9.36 145.7 a read request signal for the likelihood value of the first state of the next word is asserted. Also, the transition probability is stored in a buffer for the second stage. In the second stage, the likelihood value of the first state of the next word is available. This value is compared with the inter-word transition probability from the first stage. If the inter-word transition probability is larger than the likelihood of the first state, the likelihood of the first state is updated with the new transition probability. If it is smaller, it is not updated. The operations in the Stage 1 and the Stage 2 are independent with each other. Therefore, these processes can be executed in a pipelined manner. Similar to the dynamic programming unit, this pipelined architecture allows us to efficiently use the burst mode of and hide the computation in the memory access time. 4. MEMORY BANDWIDTH REDUCTION As mentioned in Section 1, a real-time large vocabulary speech recognition system requires a large number of memory accesses. Therefore, we tried to reduce the memory bandwidth requirement of the system as explained in this section. 4.1 Bit-width Reduction of Gaussian Parameters The emission probability computation part of the baseline system requires a high memory bandwidth of 286.4MB/s for real-time processing. Since it adopted 16-bit Gaussian parameters, we first simply reduced the bit-width of means and variances to 8 bits. However, it became harder to differentiate the likelihood of the HMM states as the quantization error increased. As a result, the recognizer had to search and compare wider number of state sequences. The memory requirement increased as shown in Table 2. The quantization error is reduced by two methods. First, the standard deviation was used instead of the variance. The standard deviation needs a smaller dynamic range than the variance. Second, the means and the standard deviations with similar dynamic range were grouped together. The 13 MFCC coefficients, their delta, and the accelerator employ different quantization schemes. After applying these two techniques, we were able to reduce the memory bandwidth by 49.1% while losing the Word Error Rate (WER) by 0.17% as shown in Table 2. 4.2 Multi-block for Gaussian Parameter Reuse We computed the emission probability of four frames in parallel. Although this technique introduces a small delay of 40 ms, it makes it possible to reuse the Gaussian parameters and reduce the access. A similar reuse technique proposed in [2] computes the probability of all HMM states. However, this is inefficient because only 30.4% of HMM states are active, on average. Our recognizer, on the other hand, computes the probability of only active HMM states. At the end of every four frames, the emission probability of active HMM states for four frames is computed in parallel, and the result is stored in the along with a list of active HMM states. An HMM state that becomes active in the middle of four frames has to look up the active HMM state list. If it is not in the active list, the emission probability of that HMM state is computed in the middle of four frames. Since the active HMM state list changes from frame to frame, it is not possible to achieve an ideal bandwidth reduction of 75%. Nonetheless, the recognizer still reduces 66.8% of access, since an active HMM state tends to stay active in adjacent frames. The memory bandwidth became 48.3MB/s without losing the accuracy. 54KB of additional was used to store the emission probability. Note that it is also possible to further decrease the memory bandwidth by extending the number of parallel-computed frames at the cost of additional. 4.3 Two-stage If the pruning threshold can be estimated before starting the computation, the pruning can be performed immediately after obtaining the new language model probability. Then we can avoid updating the inter-word transitions that have the probability below the threshold. A beam pruning method with similar approach was proposed in [5]. For further improvement, we propose two-stage language model pruning. For each word v, the highest language model probability max w {log(p(w v))} among the transitions is stored in the in advance. In the first stage, the best transition language model probability {max w {log(p(w v)} ψ t (s f ;v)} is compared with the language model pruning threshold. If the best transition probability does not exceed the threshold value, it is certain that the rest of transition probability would not exceed it, either. Therefore, the rest of the language model probability and its corresponding next node address is not fetched from the. However, if the best transition probability is bigger than the threshold value, it means that some transition probability would be bigger than the threshold. Thus, the transition information is read from the. The transition probability is then computed and compared with the pruning threshold in the second stage. Our proposed method further reduces the bandwidth of inter-word transition part from 23.7MB/s to 12.8MB/s. 5. EXPERIMENTAL RESULTS 5.1 Experimental Setup We used Xilinx s Evaluation Board ML402 [10] as the target platform. It has a Virtex-4 SX35 FPGA which provides 432KB of internal, 32-bit wide 64MB DDR S, and various peripherals. The speech recognition hardware and the DDR S are connected to the PLB bus, which has a width of 64 bits and supports a burst length of 16. The speech recognition hardware and the external DDR S operates at 100MHz. The acoustic model of the recognition system was trained by HTK, an open-source speech recognition toolkit [11]. The speaker independent training data in Wall Street Journal 1 corpus is used. The acoustic model data consists of 7,862 shared HMM states. Each state has a mixture of eight

MCycles/s 200 180 160 140 120 100 80 60 40 20 0 Baseline Bit-width Opt. Gaussian Parameter Reuse Inter-word Transition Dynamic Programming Prob. Real-time Two-stage LM Figure 5: Execution Clock Cycle uirement of the Recognizer Table 3: FPGA Synthesis Result Unit Recognizer Microblaze HW & Etc Total Slices 4,470 (29%) 5,106 (33%) 9,576 (62%) Slices FFs 4,543 (15%) 3,372 (11%) 7,915 (26%) LUTs 7,794 (25%) 6,424 (21%) 14,218 (46%) RAMB16s 137 (71%) 38 (20%) 175 (91%) DSP48s 17 (9%) 3 (2%) 20 (10%) Gaussian distributions. For the evaluation of the system, we performed Wall Street Journal 5k-word continuous speech recognition task. The test set consists of 330 sentences spoken by several speakers. The language weight is set to 16.0 and the word error rate of the implemented system is 9.36%. 5.2 Execution Time We analyzed the execution time of the recognition system with respect to various memory reduction schemes shown in Section 4. The clock cycles taken by the speech recognizer to process 330 sentences were divided by the time length of all the speech samples. Fig. 5 shows the change in execution cycles after applying the optimization techniques. The final system is about 2.77 times faster than the baseline. Note that the execution cycles of the dynamic programming do not vary in this experiment because the baseline system is already optimized with the proposed pipelined architecture. The real-time factor of the final system is 0.66. 5.3 Synthesis Result The FPGA synthesis result of the speech recognition system is shown in Table 3. Since we adopted internal to store internal data variables, the utilization factor of the block (RAMB16s) is rather high (91%). However, there are many hardware slices left which gives us the chance to add several features such as hardware based feature extraction and adaptive microphone beamforming in the future. 6. CONCLUDING REMARKS We have implemented an FPGA-based 5000-word continuous speaker-independent speech recognizer that satisfies the real-time constraint. We proposed fine-grain pipelined architecture to efficiently utilize the burst operation of the external. We also applied several memory access reduction techniques such as the bit-width reduction of Gaussian parameters, the multi-block computation of emission probability, and the two-stage language model pruning. The memory access reduction techniques lead to 2.77 times speed-up in execution cycles. 7. ACKNOWLEDGEMENT This work was supported in part by the Brain Korea 21 Project and ETRI SoC Industry Promotion Center, Human Resource Development Project for IT SoC Architect. REFERENCES [1] U. Pazhayaveetil, D. Chandra, and P. Franzon, Flexible low power probability density estimation unit for speech recognition, IEEE Int. Symp. on Circuits and Systems (ISCAS), pp. 1117 1120, 2007. [2] B. Mathew, A. Davis, and Z. Fang, A low-power accelerator for the SPHINX 3 speech recognition system, Int. Conf. on Compilers, Architecture and Synthesis for Embedded Systems (CASES), pp. 210 219, 2003. [3] S. Nedevschi, R. Patra, and E. Brewer, Hardware speech recognition for user interfaces in low cost, low power devices, 42nd Annual Conf. on Design Automation (DAC), pp. 684 689, 2005. [4] R. Kavaler, M. Lowy, H. Murveit, and R. Brodersen, A dynamic-time-warp integrated circuit for a 1000-word speech recognition system, IEEE Journal of Solid- Circuits, vol. 22, no. 1, pp. 3 14, Feb. 1987. [5] E. Lin, Y. Kai, R. Rutenbar, and T. Chen, A 1000-word vocabulary, speaker independent, continuous live-mode speech recognizer implemented in a single FPGA, ACM/SIGDA 15th Int. Symp. on FPGA, pp. 60 68, 2007. [6] X. Huang, A. Acero, and H. W. Hon, Spoken Processing - A Guide to Theory, Algorithm, and System Development. Prentice Hall PTR, New Jersey, 2001. [7] B. Pellom, R. Sarikaya, and J. Hansen, Fast likelihood computation techniques in nearest-neighbor based search for continuous speech recognition, IEEE Signal Processing Letters, vol. 8, no. 8, pp. 221 224, August 2001. [8] H. Ney and S. Ortmanns, Dynamic programming search for continuous speech recognition, IEEE Signal Processing Magazine, pp. 64 83, 1999. [9] J. Schuster, K. Gupta, R. Hoare, and A. K. Jones, Speech silicon: An FPGA architecture for realtime hidden markov-model-based speech recognition, EURASIP Journal on Embedded Systems, vol. 2006, pp. 1 19, 2006. [10] Xilinx, ML401/ML402/ML403 Evaluation Platform UG080. http://www.xilinx.com, 2006. [11] S. Young, G. Evermann, D. Kershaw, G. Moore, J. Odell, D. Ollason, V. Valtchev, and P. Woodland, The HTK Book Version 3.3, 2005.