Embedded Shruti Thesis submitted in partial fulfillment of the requirements for the degree of Bachelor of Technology (Honors) in Department of Computer Science and Engineering by Debasish Das [00CS1004] Under the guidance of Professor Anupam Basu and Professor Arobinda Gupta Department of Computer Science and Engineering, INDIAN INSTITUTE OF TECHNOLOGY, Kharagpur 721302 India Date: CERTIFICATE This is to certify that the thesis entitled “Embedded Shruti”, submitted by Debasish Das (Roll no. 00CS1004) an undergraduate student of Department of Computer Science and Engineering, Indian Institute of Technology, Kharagpur, in the partial fulfillments of the requirements for the award of degree of Bachelor in Technology, is a bonafide record of work carried out ably by him under my supervision and guidance. Dr. Anupam Basu Department of Computer Science and Engineering Dr. Arobinda Gupta Department of Computer Science and Engineering Acknowledgement I am very thankful to Dr. Anupam Basu and Dr. Arobinda Gupta for giving me the opportunity to work under their guidance. I take this opportunity to express my deep sense of gratitude to Dr. Anupam Basu for his invaluable guidance in the course of my project and moral support extended to me in matters of subject .He helped me a lot in the aspect of my work and for successful completion of this endeavor. I take this opportunity to convey my special thanks to Dr. Arobinda Gupta for allowing me to work under his valuable guidance and providing useful suggestions. Above all, I express my thanks to my parents for being a source of encouragement, confidence and inspiration for building up my educational career. Lastly but not the least, I am thankful to all members of Department of Computer Science and Engineering and my batch mates for their encouragement and support. Debasish Das 00CS1004 TABLE OF CONTENTS Title Page no._ 1. Objective 1 2. Introduction 2 2.1 Windows CE Overview 2.1.1 Important features of Windows CE 3.0 2.1.2 Using Platform Builder 2.1.2.1 Designing Operating System elements 2.1.2.2 Thin Client Example 2.1.2.8 Thin Client example revisited 2.1.3 Using Standard SDK 2.2 Pocket-PC SDK (Software Development Kit) 2.3 Microsoft eMbedded Visual C++ 2.3.7 MFC for Windows CE 2.4 Microsoft SQL server CE 2.4.3 Drawbacks of SQL server (Windows CE version) 2.5 GNU Database Manager (popularly called GDBM) 3 3 7 8 10 18 21 21 24 31 32 36 36 3. Shruti: Desktop version 44 3.1 Features of Shruti 3.2 Overview of Shruti 3.3 Technologies used 3.4 Comparisons 46 46 47 48 4. Embedded Shruti 50 4.1 Model 1: Windows CE crude port 4.1.1 Drawbacks 4.2 Model 2: Windows CE port using GDBM (Without voice.db) 4.2.1 Extendible hashing 4.2.2 Extending hash tables 4.2.3 Using GDBMCE library 4.2.4 Advantages 4.2.5 Drawbacks 4.3 Model 3: Windows CE port using GDBM (With voice.db) 50 64 65 66 67 69 72 72 73 Title Page no._ 4.3.1 Making voice database 4.3.2 Making tokens database 4.3.3 Producing the output sound file 4.3.4 Advantages 4.3.5 Drawbacks 4.4 Model 4: Final Windows CE port 4.4.1 Approach 4.4.2 Dataflow Model 74 77 78 79 79 80 80 81 5. Performance comparison 82 5.1 Performance Parameters 5.2 Simulations on test inputs 5.2.1 Model 1 5.2.2 Model 2 5.2.3 Model 3 5.3 Comparison of performance 82 82 82 84 84 84 6 Conclusions 86 7 Future work 87 8 Software screenshots 88 8.1 Hindianalyser module on Standard SDK emulator (First port) 8.2 Model 1 on Pocket-PC Emulator 8.2.1 Hindianalyser module execution 8.2.2 Hindiengine Module execution 8.3 Model 3 on Pocket-PC emulator 8.3.1 Hindianalyser module execution 8.3.2 Hindiengine Module execution 88 89 89 89 91 91 91 9 References 93.