An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande.

Slides:



Advertisements
Similar presentations
Queues.
Advertisements

Threats to privacy in the forensic analysis of database systems Patrick Stahlberg, Gerome Miklau, and Brian Neil Levine Department of Computer Science.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
PRASHANTHI NARAYAN NETTEM.
Dreams in a Nutshell Steven Sommer Microsoft Research Institute Department of Computing Macquarie University.
VoIP, Asterisk, and Java Michael P. Plezbert Agilis Systems, Inc St. Louis Java Users Group April 13, 2006.
DCE (distributed computing environment) DCE (distributed computing environment)
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Voice Recognition (Presentation 2) By: Priya Devi A. S/W Developer, Xsys technologies Bangalore.
1 Causal-Consistent Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna,
CS 152: Programming Language Paradigms May 7 Class Meeting Department of Computer Science San Jose State University Spring 2014 Instructor: Ron Mak
Triggers and Stored Procedures in DB 1. Objectives Learn what triggers and stored procedures are Learn the benefits of using them Learn how DB2 implements.
CSE 501N Fall ‘09 11: Data Structures: Stacks, Queues, and Maps Nick Leidenfrost October 6, 2009.
REVIEW OF COMMONLY USED DATA STRUCTURES IN OS. NEEDS FOR EFFICIENT DATA STRUCTURE Storage complexity & Computation complexity matter Consider the problem.
OS2014 PROJECT 2 Supplemental Information. Outline Sequence Diagram of Project 2 Kernel Modules Kernel Sockets Work Queues Synchronization.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
CS324e - Elements of Graphics and Visualization Java GUIs - Event Handling.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Author: Takdir, S.ST. © Sekolah Tinggi Ilmu Statistik.
CS 151: Object-Oriented Design November 21 Class Meeting Department of Computer Science San Jose State University Fall 2013 Instructor: Ron Mak
File Systems cs550 Operating Systems David Monismith.
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 9: Designing Exceptionally.
THE GEORGE WASHINGTON UNIVERSITY SCHOOL OF ENGINEERING & APPLIED SCIENCE DEPARTMENT OF COMPUTER SCIENCE PRELIMINRY DESIGN TECHLER Sisay Habte CSCI
MINIX Presented by: Clinton Morse, Joseph Paetz, Theresa Sullivan, and Angela Volk.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
7.5 Using Stored-Procedure and Triggers NAME MATRIC NUM GROUP Muhammad Azwan Bin Khairul Anwar CS2305A Muhammad Faiz Bin Badrol Shah CS2305B.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Java Thread Programming
Introduction toData structures and Algorithms
Introduction to threads
Computer & Network Security
Introduction To Application Layer
Tonga Institute of Higher Education IT 141: Information Systems
Processes and threads.
Introduction to Dynamic Web Programming
Process concept.
Turning method call into an object
Chapter 3: Process Concept
SQL and SQL*Plus Interaction
Background on the need for Synchronization
Mobile Navigation Control for Planetary Web Portals Team Members: John Calilung, Miguel Martinez, Frank Navarrete, Kevin Parton, Max Ru, Catherine Suh.
Chapter 2: System Structures
Content: shared objects
Difficulties in Expert System Development
Event driven architectures
Introduction to Operating System (OS)
Introduction to Computer Graphics with WebGL
Programming Models for Distributed Application
Stacks and Queues.
Java Byte IPC: Part 6-Summary
Implementation CAN Communication Engine
SQL 2014 In-Memory OLTP What, Why, and How
Threads and Data Sharing
Tonga Institute of Higher Education IT 141: Information Systems
Distributed P2P File System
Thread Synchronization
Tonga Institute of Higher Education IT 141: Information Systems
Introduction to Operating Systems
Chris Gill CSE 522S – Advanced Operating Systems
Tutorial 10: Programming with javascript
Process Synchronization
NETWORK PROGRAMMING CNET 441
CSE 451 Section 1/27/2000.
New Tools In Education Minjun Wang
Input and Interaction Ed Angel Professor Emeritus of Computer Science,
Message Passing Systems Version 2
Software Engineering and Architecture
Java Chapter 3 (Estifanos Tilahun Mihret--Tech with Estif)
Message Passing Systems
Synchronization and liveness
Presentation transcript:

An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande School of CSE, California State University, San Bernardino, California Ronald Yu Department of Computer Science, University of Southern California, Los Angeles, California

Overview Application allows students with difficulty typing because of physical disabilities to write Java code using voice recognition Application consists of a server and a client Student speaks into an android phone running the client Client sends data over to server via Wi-Fi Server processes data and displays the Java code on a workstation

Thread Synchronization on Android Client Main activity thread interacts with user, calls voice recognition engine, and puts voice rec results in a shared queue Communication thread reads data from the shared queue and sends it to the server Producer-Consumer paradigm used to make sure threads don’t interfere with each other

Workstation Server Threads Read thread reads data from network sent over by the android client and puts string in a shared buffer Processing thread reads data from shared buffer and processes it Synchronize threads with condition variables so threads wait for and signal to each other Simpler to implement than producer-consumer paradigm used for android client thread synchronization Only one thread can access the shared queue at a time

Keywords and Commands Voice Recognition engine commonly makes mistakes Server only processes keywords that occur frequently in Java (import, public, int, etc.) and program commands (compile, execute, etc.) Use a hashtable to map similar-sounding words to a keyword or command

Hashing Keywords Similar-sounding words are mapped to keywords in a hash table O(1) lookup Hash table stored in a text file which is read every time the program is started

Hashing Keywords (contd.) Hashing is not reversible Two different texts may map to the same hash index, leading to collision Very unlikely to happen Preprocessing to ensure collision-free If collision occurs between two texts, one text needs to be deleted or modified Ex. If Chava and Impact collide...

Hashing Commands Commands are stored in a similar hashing scheme Examples of commands: capital- Capitalizes the next word variable- Creates a new keyword to be stored in the hashing table space- Toggles whether a space is inserted after a word number- Displays line numbers undo- Undo the last keyword execute- Executes the program

Results Tested in a standard classroom at CSUSB Works well if only one or two students use the application in a class session

Conclusions Have developed an Android application using open-source tools Helps handicapped students write programs in Java using voice recognition Producer-consumer paradigm and condition variables are used to synchronize events Hashing is used to map ambiguous texts to specific keywords or commands Hash collisions are handled by preprocessing Can be extended to other languages such as C/C++

Demo