September 28, 2004 Programming By Voice Andrew Begel Advisor: Prof. Susan L. Graham University of California, Berkeley VL/HCC 2004.

Slides:



Advertisements
Similar presentations
Designing a Program & the Java Programming Language
Advertisements

Kingston University Creating and Editing Mathematical Content using Natural Language Commands A Progress Report of the TalkMaths Project Eckhard Pflügel.
Chapter 15 Debugging. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Debugging with High Level Languages.
Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
1 JavaCUP JavaCUP (Construct Useful Parser) is a parser generator Produce a parser written in java, itself is also written in Java; There are many parser.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap Overview:  Syntax and Semantics  Semantics of Expressions.
Programming Merit Badge
Systems Software.
Empirical and Data-Driven Models of Multimodality Advanced Methods for Multimodal Communication Computational Models of Multimodality Adequate.
Spoken Language Support for Software Development Andrew Begel University of California, Berkeley Advisor: Prof. Susan L. Graham.
Slides prepared by Rose Williams, Binghamton University Chapter 1 Getting Started 1.1 Introduction to Java.
Tools and Analyses for Ambiguous Input Streams Andrew Begel and Susan L. Graham University of California, Berkeley LDTA Workshop - April 3, 2004.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 2 Syntax A language that is simple to parse.
Visual Languages and Human-Centric Computing September 9, 2004 Managing Duplicated Code with Linked Editing Michael Toomim, Andrew Begel and Susan L. Graham.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
Verbal (symbol) Based Interactions Dr.s Barnes and Leventhal.
Introduction to z/OS Basics © 2006 IBM Corporation Chapter 8: Designing and developing applications for z/OS.
ASR Evaluation Julia Hirschberg CS Outline Intrinsic Methods –Transcription Accuracy Word Error Rate Automatic methods, toolkits Limitations –Concept.
MUSCLE Multimodal e-team related activity Technical University of Crete Speech Processing and Dialog Systems Group Presenter: Prof. Alex Potamianos Technical.
1 Designing an XML-based Exchange Format for Harmonia Marat Boshernitsan Susan L. Graham University of California, Berkeley, USA Exchange Formats Workshop.
Principles of Procedural Programming
Software Self-Testing
Systems Software Operating Systems.
ANTLR.
Lecture 1, 7/21/2005Natural Language Processing1 CS60057 Speech &Natural Language Processing Autumn 2005 Lecture 1 21 July 2005.
VoiceXML Builder Arturo Ramirez ACS 494 Master’s Graduate Project May 04, 2001.
1 “ Speech ” EMPOWERED COMPUTING Greenfield Business Centre, 20 th September, 2006.
Gary MarsdenSlide 1University of Cape Town Designing usable programming languages.
Chapter 1.4 Programming languages Homework Due: Monday, August 11, 2014.
1 Chapter 2 First Java Programs Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
1 Spoken Language Support for Software Development Andrew Begel Advisor: Susan L. Graham Computer Science Division, EECS University of California, Berkeley.
Introduction to Interactive Media Interactive Media Tools: Software.
Lesson 6. GCSE Computing – programming languages Candidates should be able to:  describe common tools and facilities available in an integrated development.
© 2006 Pearson Education 1 Obj: cont 1.3 and 1.4, to become familiar with identifiers and to understand how programming languages work HW: p.51 #1.8 –
1 An Assessment of a Speech-Based Programming Environment Andrew Begel Microsoft Research (formerly UC Berkeley)
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
1 Spoken Language Support for Software Development Andrew Begel Advisor: Susan L. Graham Computer Science Division, EECS University of California, Berkeley.
Chapter 1 Section 1.1 Introduction to Java Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage.
1 CS210 Intermediate Computing with Data Structures (Java) Saaid Baraty S-3-90.
E.g.: MS-DOS interface. DIR C: /W /A:D will list all the directories in the root directory of drive C in wide list format. Disadvantage is that commands.
Speech Recognition MIT SMA 5508 Spring 2004 Larry Rudolph (MIT)
Individual Differences in Human-Computer Interaction HMI Yun Hwan Kang.
Gesture Recognition in a Class Room Environment Michael Wallick CS766.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Project Help CSU 670 Fall 2003 Karl Lieberherr. New Book on AUTHOR = "Erich Gamma and Kent Beck", TITLE = "Contributing.
Compiler Construction By: Muhammad Nadeem Edited By: M. Bilal Qureshi.
Language Technologies Capability Demonstration Alon Lavie, Lori Levin, Alex Waibel Language Technologies Institute Carnegie Mellon University CATANAL Planning.
Chapter – 8 Software Tools.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Knowledge Based Systems ExpertSystems Difficulties in Expert System Development u Scarce resources – new technology – demand for trained personnel u Development.
Sung-Dong Kim Dept. of Computer Engineering, Hansung University Chapter 3 Programming Tools.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
1 Programming and problem solving in C, Maxima, and Excel.
Debugging using By: Samuel Ashby. What is debugging?  A bug is an error in either a program or the hardware itself.  Debugging is first locating and.
Project Help CSU 670 Fall 2004 Karl Lieberherr. New Book on AUTHOR = "Erich Gamma and Kent Beck", TITLE = "Contributing.
Presented By Sharmin Sirajudeen S7 CS Reg No :
Concepts of Programming Languages Lecturer: Dr. Emad Nabil Lecture # 2.
Tools and Analyses for Ambiguous Input Streams
DDC 1023 – Programming Technique
Difficulties in Expert System Development
TRANSLATORS AND IDEs Key Revision Points.
Unit 1: Introduction Lesson 1: PArts of a java program
An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande.
Programming Languages 2nd edition Tucker and Noonan
Programming Errors Key Revision Points.
By Rajanikanth B Eclipse IDE Overview By Rajanikanth B
Presentation transcript:

September 28, 2004 Programming By Voice Andrew Begel Advisor: Prof. Susan L. Graham University of California, Berkeley VL/HCC 2004

September 28, 2004VL/HCC 2004 Graduate Student Consortium Programming by Voice for int i equals zero i less than ten i plus plus 1

September 28, 2004VL/HCC 2004 Graduate Student Consortium Programming by Voice for (int i = 0; i < 10; i++ ) { ▌ } for int i equals zero i less than ten i plus plus 1

September 28, 2004VL/HCC 2004 Graduate Student Consortium Ambiguities for (int i = 0; i < 10; i++ ) { ▌ } 4 int eye equals 0 aye less then ten i plus plus KW or #? Spelling of ID? KW or ID? 2

September 28, 2004VL/HCC 2004 Graduate Student Consortium Sometimes it’s hard! for times ate equals file two load equals one 3

September 28, 2004VL/HCC 2004 Graduate Student Consortium for (times; ate == file; to().load = 1) { ▌ } for times ate equals file two load equals one 3 Many Valid Interpretations!

September 28, 2004VL/HCC 2004 Graduate Student Consortium 4 * 8 = file; toload = won ▌ for (times; ate == file; to().load = 1) { ▌ } for times ate equals file two load equals one 3 Many Valid Interpretations!

September 28, 2004VL/HCC 2004 Graduate Student Consortium Many Valid Interpretations! 4 * 8 = file; toload = won ▌ for (times; ate == file; to().load = 1) { ▌ } fore.times(8).equalsFile(2, load == 1) ▌ for times ate equals file two load equals one 3

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 1.file to load 6.file.to load 7.file to.load 9.file 2 load12.file toload 10.file(2, load)2.file(to, load) 3.file(to.load) 4.file(to(load)) 13.file(toload) 11.(file, 2, load) 8.file.to.load 5.file.to(load) 14.file.toload 15.filetoload() 16.filetoload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 1.file to load 6.file.to load 7.file to.load 9.file 2 load12.file toload 10.file(2, load)2.file(to, load) 3.file(to.load) 4.file(to(load)) 13.file(toload) 11.(file, 2, load) 8.file.to.load 5.file.to(load) 14.file.toload 15.filetoload() 1.No immediately adjacent identifiers 16.filetoload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 10.file(2, load)2.file(to, load) 3.file(to.load) 4.file(to(load)) 13.file(toload) 11.(file, 2, load) 8.file.to.load 5.file.to(load) 14.file.toload 15.filetoload() 1.No immediately adjacent identifiers 2.No variables named “file” 16.filetoload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 10.file(2, load)2.file(to, load) 3.file(to.load) 4.file(to(load)) 13.file(toload) 15.filetoload() 1.No immediately adjacent identifiers 2.No variables named “file” 3.No methods named “file” 16.filetoload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 15.filetoload() 1.No immediately adjacent identifiers 2.No variables named “file” 3.No methods named “file” 4.No method named “filetoload” 16.filetoload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium Disambiguating “ filetoload ” file to loadfile 2 loadfile toload 1.No immediately adjacent identifiers 2.No variables named “file” 3.No methods named “file” 4.No method named “filetoload” 3 filetoload 4

September 28, 2004VL/HCC 2004 Graduate Student Consortium The Vision Naturally Verbalized Programs –Spoken Java Language Navigation and Editing Command Language Analyses that Resolve Ambiguities Prototype: SPED: SPeech EDitor 5

September 28, 2004VL/HCC 2004 Graduate Student Consortium Implementation Speech Recognition: IBM ViaVoice Eclipse IDE Harmonia program analysis toolkit –Generalized LR parsing with input stream ambiguities –Persistent, incremental semantics 6

September 28, 2004VL/HCC 2004 Graduate Student Consortium Evaluation Hypothesis –Programmers can learn to use SPED efficiently for many programming tasks User Study 1.Train users on Spoken Java and command language 2.Edit an existing program 3.Create some new code Metrics: –Speed, vocabulary mistakes, grammatical mistakes, system understanding errors, subjective impressions 7

September 28, 2004VL/HCC 2004 Graduate Student Consortium Contributions Enabling programming by voice –New methods for handling input ambiguities –Exploiting syntax and semantics of programming domain –Analyses for mixed command and programming languages –Interface to commercial speech recognition tools 8 Andrew Begel: