3
Poster Session I : System Level Design Interface module -Microphone input - Audio Codec - VGA output It - It Core module - Game core - ARM Pnrnecelis Logic module - DSP functions - Pre-processing - Recognition syslem Speech recognition for game control c=2 ZBT SRAM -Dual pon -Templates - LUT e2 Rapelanoro Rabenja, Sebei Amine, Jacob Davrdson Universite du Quebec a Montreal sanelunoro.ruhenia@coun-ier. warn. cu, sehei. umine@,counier. iioam. cu, iucob.davidson(ii?,uqum. cu Absrracr- Human voice presents several features which can be used after proper processing as a mean to identify a person or to control complex systems. This paper describes the implementation of a voice controlled classic arcade game, on a platform that allows the rapid prototyping and development of several architectures. The platform is based on the Advanced Microcontroller Bus Architecture (AMBA) with the 32-bit Advanced RISC Machine (ARM), which is widely used in handheld devices. I. INTRODUCTION The platform used to prototype the design, combines different ARM modules [I] on the same development motherboard and is composed of 3 modules. The ‘core module’ is based on the ARM7TDMI microprocessor with a XILINX XC4062XLA FPGA which is configured mainly as a memory controller for the system. The ‘logic module’ allows for the development of peripherals to be used with the ARM cores, based on AMBA Advanced High-performance Bus (AHB) and Advanced Peripheral Bus (APB) [Z]. DSP functions and recognition algorithms are implemented inside the XILINX VIRTEX-E Field Programmable Gate Array (FPGA) on this module. The ‘interface module’ provides standard interfaces for external connections and has, among other things, a microphone input used for voice acquisition and a VGA port connected to a screen which displays the game interface and the menu. These three ARM modules are assigned to specific tasks and are interconnected through the AMBA bus. Figure 1 presents the rapid prototyping platform interconnection, with the one (I) Megabyte external Zero Bus Turnaround (ZBT) memory on the logic module, which will be the main memory for data transfer between the Primecells and the recognition algorithm. 11. PRE-PROCESSING Pre-processing consists of monitoring the microphone input to discriminate noise and silence born the voice signal, before the extracted voice data is to he processed by the recognition system. The interface module described earlier provides an LM4549 audio codec which features variable sample rate conversion among many other capabilities. This codec supports the AC-link protocol and thus can be used with the ARM Primecell Advanced Audio Codec Interface [3], which is an AMBA slave block. The codec has 18 bit ADCDAC resolution [4] and the incoming voices will he sampled at 48 kHz. The sampled voice data are signed and padded with two zero’s for a 20 bit total. Through several tests performed with the data acquisition toolbox of MATLAB [SI and based on different pronunciations, it was found that the words ‘left’, ‘right’, ‘stop’ and ‘start’ are approximately 0.75 seconds long if spoken normally. From that information, and also from the sampling rate and the codec specifications, it can be computed that the memory size needed for a spoken word of 0.75 seconds is 90Kbytes, where 20 bits were considered to he equivalent to 3 bytes. Signal level monitoring In order to reduce the computational effort and to send more reliable data to the recognition system, the incoming signal has to be processed for discriminating between silence, noise and the voice signal. This requires the tracking of the input signal envelope to determine whether or not a voice signal is present. The signal-level monitoring scheme includes rectification and filtering using a first-order Infinite Impulse Response filter [6]. The monitor is set with an arbitrary threshold so that when an upper threshold is reached, it is necessary to know whether it is a voice signal or just noise. To do that, the monitor waits for the signal to drop below a threshold level and calculates the time difference between the start (upper threshold) and end (lower threshold). If the time difference is in the range of a specific duration, then a voice signal has been detected, otherwise only noise is present in the signal and it can be discarded. After the detection, the extracted voice signal is then passed to the pre-emphasis filter. This step is described in the next section. 0-7803-8322-2/04/$20.00 02004 IEEE 91

[IEEE The 2nd Annual IEEE Northeast Workshop on Circuits and Systems, 2004. NEWCAS 2004. - Montreal, Canada (20-23 June 2004)] The 2nd Annual IEEE Northeast Workshop on Circuits and

  • Upload
    j

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: [IEEE The 2nd Annual IEEE Northeast Workshop on Circuits and Systems, 2004. NEWCAS 2004. - Montreal, Canada (20-23 June 2004)] The 2nd Annual IEEE Northeast Workshop on Circuits and

Poster Session I System Level Design

Interface module -Microphone input - Audio Codec - VGA output

It -

It

Core module - Game core - ARM Pnrnecelis

Logic module - DSP functions - Pre-processing - Recognition syslem

Speech recognition for game control

c=2 ZBT SRAM

-Dual pon -Templates - LUT

e2

Rapelanoro Rabenja Sebei Amine Jacob Davrdson Universite du Quebec a Montreal

sanelunoro ruheniacoun-ier warn cu sehei uminecounier iioam cu iucobdavidson(iiuqum cu

Absrracr- Human voice presents several features which can be used after proper processing as a mean to identify a person or to control complex systems This paper describes the implementation of a voice controlled classic arcade game on a platform that allows the rapid prototyping and development of several architectures The platform is based on the Advanced Microcontroller Bus Architecture (AMBA) with the 32-bit Advanced RISC Machine (ARM) which is widely used in handheld devices

I INTRODUCTION

The platform used to prototype the design combines different ARM modules [I] on the same development motherboard and is composed of 3 modules The lsquocore modulersquo is based on the ARM7TDMI microprocessor with a XILINX XC4062XLA FPGA which is configured mainly as a memory controller for the system The lsquologic modulersquo allows for the development of peripherals to be used with the ARM cores based on AMBA Advanced High-performance Bus (AHB) and Advanced Peripheral Bus (APB) [Z] DSP functions and recognition algorithms are implemented inside the XILINX VIRTEX-E Field Programmable Gate Array (FPGA) on this module The lsquointerface modulersquo provides standard interfaces for external connections and has among other things a microphone input used for voice acquisition and a VGA port connected to a screen which displays the game interface and the menu These three ARM modules are assigned to specific tasks and are interconnected through the AMBA bus Figure 1 presents the rapid prototyping platform interconnection with the one ( I ) Megabyte external Zero Bus Turnaround (ZBT) memory on the logic module which will be the main memory for data transfer between the Primecells and the recognition algorithm

11 PRE-PROCESSING

Pre-processing consists of monitoring the microphone input to discriminate noise and silence born the voice signal before the extracted voice data is to he processed by the recognition system The interface module described earlier provides an LM4549 audio codec which features variable sample rate conversion among many other capabilities This codec supports the AC-link protocol and thus can be used with the ARM Primecell Advanced Audio Codec Interface [3] which is an AMBA slave block The codec has 18 bit ADCDAC resolution [4] and the incoming voices will he sampled at 48 kHz The sampled voice data are signed and padded with two zerorsquos for a 20 bit total

Through several tests performed with the data acquisition toolbox of MATLAB [SI and based on different pronunciations it was found that the words lsquoleftrsquo lsquorightrsquo lsquostoprsquo and lsquostartrsquo are approximately 075 seconds long if spoken normally From that information and also from the sampling rate and the codec specifications it can be computed that the memory size needed for a spoken word of 075 seconds is 90Kbytes where 20 bits were considered to he equivalent to 3 bytes

Signal level monitoring

In order to reduce the computational effort and to send more reliable data to the recognition system the incoming signal has to be processed for discriminating between silence noise and the voice signal This requires the tracking of the input signal envelope to determine whether or not a voice signal is present The signal-level monitoring scheme includes rectification and filtering using a first-order Infinite Impulse Response filter [6] The monitor is set with an arbitrary threshold so that when an upper threshold is reached it is necessary to know whether it is a voice signal or just noise To do that the monitor waits for the signal to drop below a threshold level and calculates the time difference between the start (upper threshold) and end (lower threshold) If the time difference is in the range of a specific duration then a voice signal has been detected otherwise only noise is present in the signal and it can be discarded After the detection the extracted voice signal is then passed to the pre-emphasis filter This step is described in the next section

0-7803-8322-204$2000 02004 IEEE

91

Poster Session I System Level Design

Pre-emphasis filter

The pre-emphasis filter allows boosting the high frequencies of the signal leaving the lower frequencies untouched for better processing without altering the integrity of the data This filter was designed with a pre-emphasis coefficient of 095 and implemented following the equation

S(n) = X(n) - CX (n-I)

C pre-emphasis coefficient X (n) input sample S (n) filter output

Pre-emphasis is also known as spectrally flattening a signal

111 RECOGNITION SYSTEM

This design block consists of matching the input signal to a known template for recognition purposes An ideal voice recognition system for advanced applications would be speaker independent Such systems have tremendous advantages over speaker dependant systems at a cost of accuracy For this application the words template will be implemented based on recordings made from the user Before playing the game the player records an instance of the 4 voice commands and these are then processed and stored in memory for later uses The templates are composed of different frames of samples values from the codecrsquos Analog-Digital Converter and are represented by an integer in the range 0-255

Voice signal timing

Although different recordings of the same words may contain the same sounds in the same order the duration and the precise timing will not match and this would alter the matching process and give inaccurate results The technique used here is called Dynamic Time Warping (DTW) [7] and is used to accommodate differences in timing between sample words and templates DTW was chosen because its algorithm can be easily implemented in C The principle of DTW is to find a path through a space (time frames in sample time frames in template) and to allow a range of steps in the space This path is one that maximizes the local match between the aligned time frames Chousing the best matching template is then based on the result ofthe total similarity cost found by the algorithm [SI as presented in the Figure 2 below

Dynamic Time Warping

The input data is a feature vector that contains multiple elements for measuring the distance This is calculated using the Euclidian distance metric given by the following equation

Figure 2 Time alignment between an input signal (bottom axis) and a template signal (side anis)

The Short Time Fourier Transform (STFT) is implemented with 512 points and 25 window overlap The input and the template are passed through this function and the cosine distance hetween the STFT magnitudes of both will he used to construct the lsquolocal matchrsquo scores matrix After that dynamic programming is used to find the lowest-cost path between the opposite comers of the matrix The same process is performed with the input and the other templates and at the end all the costs from different templates specific to the same input are compared in order to extract the least one which will be the hest match Based on this result the recognition system chooses a command sequence from a Look-Up Table and this sequence will he the code that is fed to the game core as a command to control the ongoing game These comparisons must be performed at the most accurate level possible and at the highest rate in order for the game to react instantaneously to the voice command like if it were a push-hutton The algorithm is implemented in FPGA on the logic module working in concordance with the core module

IV DTW IMPLEMENTATION

Several approaches exist in implementing the dynamic time warping algorithm We choose the symmetrical DTW algorithm and implemented it in C running under the Microblaze [9] soft processor synthesized for the Virtex-E FPGA on the logic module The Microhlaze is a 32-hit processor with Harvard architecture and is definitely suitable for our design The Microblaze core block diagram is shown in Figure 3 The recognition program (DTW) collects the samples of incoming voice signal and samples for the template from the Zero Bus Turnaround (ZBT) memory on the logic module The samples are stored in two different arrays one holding the template data and another holding the data of the signal to he recognized as adjacent columns of the time-time matrix These arrays are then fed to the DTW algorithm for recognition and the process is repeated for every template that the voice data need to he matched to

98

as a command either to s tas the game to move the space ship left or right or to stop the game Jwcltess- rO2am

b imifllcb oStndea

VI CONCLUSION

Although voice recognition systems are yet to be part of game consoles or any game hardware this approach can he extended and designed in a different manner for identification purposes in handheld devices or other systems Improvements to this design could he used for implementation in other more complex devices with effective recognition techniques suitable for pattern matching of large amount of data in an efficient manner Figure 3 Microblare core block diagram

V GAME PROGRAMMWG REFERENCES

The game was written based on examples obtained from The [I] ARM 1ntegratorIAP development motherboard wwwamC0m [2] ARM lntegratodLM-XCV600E+ user guide w a m c o m

Nintendo Reverse Engineering Project [ 101 ( P E m project) for [3] ARM Primecell AdiorrcedAudio codec Inrerace ( ~ ~ 0 4 1 ) Teciinicai the Game Boy Advance Console [ I I] which is an Reference Monuol wuwarmcom

sowces for the PERN project were written based on the Game Boy advance memory map The programs used a screen size of 240x160 and thus had to he ported to the development board with a default memory map and an 800x600 VGA screen connected to it via the interface module The game is based on the popular arcade game Space Invaders When the game begins the user issues the vocal command start and be must then control with his voice a small space ship at the bottom of the screen to avoid collisions with aliens randomly falling from the sky

ARM7TDMI based system running at 16 MHz Program 141 Narional Semiconductor LM4549 Audio Codec httpIuwnationaIcomipfRM

[51 The Mal~works data acquisition [oolbox httpwwwmathworltscomproductsidaqi

[6] Rulph Chassaing DSP Applicorions using Condihe TMS32OCdr DSK WieY-lnrerscience Publication 20deg2

[ 7 1 ~ 1 ~ ~ ~ ~ ~ ~ f ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [81 speech recogmition by Dynamic Time Warping svmmerricorDnmic

Time WorpingAlgoorilhm h[tPurudcs5hefaCu~-stu

[ 9 1 ~ ~ ~ ~ ~ M ~ ~ ~ ~ ~ ~ ~ ~ i ~ ~ ~ ~ ~ ~ [ IO] The PERN Project Ninlendo Reverse Engineering Projecr

wrwthepemprojectcom [ I I ] The Game Boy Advance Console

wwwnintendocomisystems [I21 ARM Pnmecell Calor LCD controller (PLI I O ) Technical refevence

Porting the game

The ARM CLCD controller Primecell is used in order to drive the VGA monitor connected to the interface module [121 This is a reusable soft-IP block that provides all the necessary control signals to interface directly to a color LCD screen The game has first to be re-written in order to comply with the LCD and keyboard ARMulator model [ 131 which has a virtual LCD screen that emulates the real world This allowed us to interact with the game using the PC keyboard and by assigning different signals that would interface to it In order to implement the game under the rapid prototyping platform we had to transform graphics in standard format into two C language arrays These arrays hold respectively the palette data and the image data Several tools were used to generate those images These are referenced in [ 141 [15] [16]

monuol wwwarmcom

w a r n c o m

wwwthepemprojectcom

[I31 Application Note ARMDAI0092B LCD ondK~boar iARMrlor~~mode1

1141 ne PERN project image convenerpcx~gba

Wl Image convener W-neomeshcom [I6] Game boy wwwaaronrogencomhami

Game command Look-Up Table

To play the game the user issues voice commands through a microphone The command is either left right stop or start As described earlier the recognition system searches a Look-Up Table (LUT) after proper processing and recognition of the voice data This LUT contains Op-Codes that represent any of the 4 commands and the output is fed to the game core

99

Page 2: [IEEE The 2nd Annual IEEE Northeast Workshop on Circuits and Systems, 2004. NEWCAS 2004. - Montreal, Canada (20-23 June 2004)] The 2nd Annual IEEE Northeast Workshop on Circuits and

Poster Session I System Level Design

Pre-emphasis filter

The pre-emphasis filter allows boosting the high frequencies of the signal leaving the lower frequencies untouched for better processing without altering the integrity of the data This filter was designed with a pre-emphasis coefficient of 095 and implemented following the equation

S(n) = X(n) - CX (n-I)

C pre-emphasis coefficient X (n) input sample S (n) filter output

Pre-emphasis is also known as spectrally flattening a signal

111 RECOGNITION SYSTEM

This design block consists of matching the input signal to a known template for recognition purposes An ideal voice recognition system for advanced applications would be speaker independent Such systems have tremendous advantages over speaker dependant systems at a cost of accuracy For this application the words template will be implemented based on recordings made from the user Before playing the game the player records an instance of the 4 voice commands and these are then processed and stored in memory for later uses The templates are composed of different frames of samples values from the codecrsquos Analog-Digital Converter and are represented by an integer in the range 0-255

Voice signal timing

Although different recordings of the same words may contain the same sounds in the same order the duration and the precise timing will not match and this would alter the matching process and give inaccurate results The technique used here is called Dynamic Time Warping (DTW) [7] and is used to accommodate differences in timing between sample words and templates DTW was chosen because its algorithm can be easily implemented in C The principle of DTW is to find a path through a space (time frames in sample time frames in template) and to allow a range of steps in the space This path is one that maximizes the local match between the aligned time frames Chousing the best matching template is then based on the result ofthe total similarity cost found by the algorithm [SI as presented in the Figure 2 below

Dynamic Time Warping

The input data is a feature vector that contains multiple elements for measuring the distance This is calculated using the Euclidian distance metric given by the following equation

Figure 2 Time alignment between an input signal (bottom axis) and a template signal (side anis)

The Short Time Fourier Transform (STFT) is implemented with 512 points and 25 window overlap The input and the template are passed through this function and the cosine distance hetween the STFT magnitudes of both will he used to construct the lsquolocal matchrsquo scores matrix After that dynamic programming is used to find the lowest-cost path between the opposite comers of the matrix The same process is performed with the input and the other templates and at the end all the costs from different templates specific to the same input are compared in order to extract the least one which will be the hest match Based on this result the recognition system chooses a command sequence from a Look-Up Table and this sequence will he the code that is fed to the game core as a command to control the ongoing game These comparisons must be performed at the most accurate level possible and at the highest rate in order for the game to react instantaneously to the voice command like if it were a push-hutton The algorithm is implemented in FPGA on the logic module working in concordance with the core module

IV DTW IMPLEMENTATION

Several approaches exist in implementing the dynamic time warping algorithm We choose the symmetrical DTW algorithm and implemented it in C running under the Microblaze [9] soft processor synthesized for the Virtex-E FPGA on the logic module The Microhlaze is a 32-hit processor with Harvard architecture and is definitely suitable for our design The Microblaze core block diagram is shown in Figure 3 The recognition program (DTW) collects the samples of incoming voice signal and samples for the template from the Zero Bus Turnaround (ZBT) memory on the logic module The samples are stored in two different arrays one holding the template data and another holding the data of the signal to he recognized as adjacent columns of the time-time matrix These arrays are then fed to the DTW algorithm for recognition and the process is repeated for every template that the voice data need to he matched to

98

as a command either to s tas the game to move the space ship left or right or to stop the game Jwcltess- rO2am

b imifllcb oStndea

VI CONCLUSION

Although voice recognition systems are yet to be part of game consoles or any game hardware this approach can he extended and designed in a different manner for identification purposes in handheld devices or other systems Improvements to this design could he used for implementation in other more complex devices with effective recognition techniques suitable for pattern matching of large amount of data in an efficient manner Figure 3 Microblare core block diagram

V GAME PROGRAMMWG REFERENCES

The game was written based on examples obtained from The [I] ARM 1ntegratorIAP development motherboard wwwamC0m [2] ARM lntegratodLM-XCV600E+ user guide w a m c o m

Nintendo Reverse Engineering Project [ 101 ( P E m project) for [3] ARM Primecell AdiorrcedAudio codec Inrerace ( ~ ~ 0 4 1 ) Teciinicai the Game Boy Advance Console [ I I] which is an Reference Monuol wuwarmcom

sowces for the PERN project were written based on the Game Boy advance memory map The programs used a screen size of 240x160 and thus had to he ported to the development board with a default memory map and an 800x600 VGA screen connected to it via the interface module The game is based on the popular arcade game Space Invaders When the game begins the user issues the vocal command start and be must then control with his voice a small space ship at the bottom of the screen to avoid collisions with aliens randomly falling from the sky

ARM7TDMI based system running at 16 MHz Program 141 Narional Semiconductor LM4549 Audio Codec httpIuwnationaIcomipfRM

[51 The Mal~works data acquisition [oolbox httpwwwmathworltscomproductsidaqi

[6] Rulph Chassaing DSP Applicorions using Condihe TMS32OCdr DSK WieY-lnrerscience Publication 20deg2

[ 7 1 ~ 1 ~ ~ ~ ~ ~ ~ f ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [81 speech recogmition by Dynamic Time Warping svmmerricorDnmic

Time WorpingAlgoorilhm h[tPurudcs5hefaCu~-stu

[ 9 1 ~ ~ ~ ~ ~ M ~ ~ ~ ~ ~ ~ ~ ~ i ~ ~ ~ ~ ~ ~ [ IO] The PERN Project Ninlendo Reverse Engineering Projecr

wrwthepemprojectcom [ I I ] The Game Boy Advance Console

wwwnintendocomisystems [I21 ARM Pnmecell Calor LCD controller (PLI I O ) Technical refevence

Porting the game

The ARM CLCD controller Primecell is used in order to drive the VGA monitor connected to the interface module [121 This is a reusable soft-IP block that provides all the necessary control signals to interface directly to a color LCD screen The game has first to be re-written in order to comply with the LCD and keyboard ARMulator model [ 131 which has a virtual LCD screen that emulates the real world This allowed us to interact with the game using the PC keyboard and by assigning different signals that would interface to it In order to implement the game under the rapid prototyping platform we had to transform graphics in standard format into two C language arrays These arrays hold respectively the palette data and the image data Several tools were used to generate those images These are referenced in [ 141 [15] [16]

monuol wwwarmcom

w a r n c o m

wwwthepemprojectcom

[I31 Application Note ARMDAI0092B LCD ondK~boar iARMrlor~~mode1

1141 ne PERN project image convenerpcx~gba

Wl Image convener W-neomeshcom [I6] Game boy wwwaaronrogencomhami

Game command Look-Up Table

To play the game the user issues voice commands through a microphone The command is either left right stop or start As described earlier the recognition system searches a Look-Up Table (LUT) after proper processing and recognition of the voice data This LUT contains Op-Codes that represent any of the 4 commands and the output is fed to the game core

99

Page 3: [IEEE The 2nd Annual IEEE Northeast Workshop on Circuits and Systems, 2004. NEWCAS 2004. - Montreal, Canada (20-23 June 2004)] The 2nd Annual IEEE Northeast Workshop on Circuits and

as a command either to s tas the game to move the space ship left or right or to stop the game Jwcltess- rO2am

b imifllcb oStndea

VI CONCLUSION

Although voice recognition systems are yet to be part of game consoles or any game hardware this approach can he extended and designed in a different manner for identification purposes in handheld devices or other systems Improvements to this design could he used for implementation in other more complex devices with effective recognition techniques suitable for pattern matching of large amount of data in an efficient manner Figure 3 Microblare core block diagram

V GAME PROGRAMMWG REFERENCES

The game was written based on examples obtained from The [I] ARM 1ntegratorIAP development motherboard wwwamC0m [2] ARM lntegratodLM-XCV600E+ user guide w a m c o m

Nintendo Reverse Engineering Project [ 101 ( P E m project) for [3] ARM Primecell AdiorrcedAudio codec Inrerace ( ~ ~ 0 4 1 ) Teciinicai the Game Boy Advance Console [ I I] which is an Reference Monuol wuwarmcom

sowces for the PERN project were written based on the Game Boy advance memory map The programs used a screen size of 240x160 and thus had to he ported to the development board with a default memory map and an 800x600 VGA screen connected to it via the interface module The game is based on the popular arcade game Space Invaders When the game begins the user issues the vocal command start and be must then control with his voice a small space ship at the bottom of the screen to avoid collisions with aliens randomly falling from the sky

ARM7TDMI based system running at 16 MHz Program 141 Narional Semiconductor LM4549 Audio Codec httpIuwnationaIcomipfRM

[51 The Mal~works data acquisition [oolbox httpwwwmathworltscomproductsidaqi

[6] Rulph Chassaing DSP Applicorions using Condihe TMS32OCdr DSK WieY-lnrerscience Publication 20deg2

[ 7 1 ~ 1 ~ ~ ~ ~ ~ ~ f ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [81 speech recogmition by Dynamic Time Warping svmmerricorDnmic

Time WorpingAlgoorilhm h[tPurudcs5hefaCu~-stu

[ 9 1 ~ ~ ~ ~ ~ M ~ ~ ~ ~ ~ ~ ~ ~ i ~ ~ ~ ~ ~ ~ [ IO] The PERN Project Ninlendo Reverse Engineering Projecr

wrwthepemprojectcom [ I I ] The Game Boy Advance Console

wwwnintendocomisystems [I21 ARM Pnmecell Calor LCD controller (PLI I O ) Technical refevence

Porting the game

The ARM CLCD controller Primecell is used in order to drive the VGA monitor connected to the interface module [121 This is a reusable soft-IP block that provides all the necessary control signals to interface directly to a color LCD screen The game has first to be re-written in order to comply with the LCD and keyboard ARMulator model [ 131 which has a virtual LCD screen that emulates the real world This allowed us to interact with the game using the PC keyboard and by assigning different signals that would interface to it In order to implement the game under the rapid prototyping platform we had to transform graphics in standard format into two C language arrays These arrays hold respectively the palette data and the image data Several tools were used to generate those images These are referenced in [ 141 [15] [16]

monuol wwwarmcom

w a r n c o m

wwwthepemprojectcom

[I31 Application Note ARMDAI0092B LCD ondK~boar iARMrlor~~mode1

1141 ne PERN project image convenerpcx~gba

Wl Image convener W-neomeshcom [I6] Game boy wwwaaronrogencomhami

Game command Look-Up Table

To play the game the user issues voice commands through a microphone The command is either left right stop or start As described earlier the recognition system searches a Look-Up Table (LUT) after proper processing and recognition of the voice data This LUT contains Op-Codes that represent any of the 4 commands and the output is fed to the game core

99