Documentation - UWC Computer Science

7 downloads 192 Views 2MB Size Report
23 Nov 2012 ... Phone reader was an Android application, developed by honours students. ...... Android User Interface Development Beginners Guide.
Department of Computer Science

Phone Reader 2.0 by

Hadley Scholtz A mini-thesis submitted in partial fulfillment of the requirements for the degree of BSc. Honours

Supervisors: Mehrdad Ghaziasgar & James Connan Assisted by: Ibraheem Frieslaar Date: 23 November 2012

Acknowledgements All praise goes to my Saviour Jesus Christ for His continued love and grace toward me and for the strength He has provided for me every day during this past year. Secondly my parents and all my loved ones for their continued support during this year. Thirdly, my supervisors Mr. Mehrdad Ghaziasgar, Mr. James Connan and Mr. Ibraheem Frieslaar for their support, inspiration and the continued motivation to do my best. Lastly, all my classmates for their continued support during this year. If I forgot to mention anyone, my humblest apologies but thank you.

Abstract Phone reader was an Android application, developed by honours students. The application allows a user to take a photo of a piece of text, send it to a server, have it automatically recognized, sent back and read to the user as audio. An update to this application is to allow the user to select and label specific parts of the photo which are to be recognized. Only these parts will be recognized and sent back from the server. Subsequently, the labels can be clicked to read only those parts back.

Table of Contents Chapter 1 .......................................................................................................................................................... 6 Introduction .................................................................................................................................................. 6 Chapter 2 .......................................................................................................................................................... 6 User Requirements ........................................................................................................................................ 6 2.1 User’s view of the problem .................................................................................................................. 6 2.2 Description of the problem .................................................................................................................. 7 2.3 Expectations from the system .............................................................................................................. 7 2.4 Not expected from the system ............................................................................................................. 7 Chapter 3 .......................................................................................................................................................... 8 Requirements Analysis .................................................................................................................................. 8 3.1 Designer’s interpretation of the problem .............................................................................................. 8 3.2 Complete analysis of the problem ........................................................................................................ 8 3.3 Current solution................................................................................................................................... 9 3.4 Proposed solution ................................................................................................................................ 9 Chapter 4 ........................................................................................................................................................ 10 User Interface Specification (UIS) ............................................................................................................... 10 Chapter 5 ........................................................................................................................................................ 19 High Level Design (Object Oriented Analysis) ............................................................................................ 19 5.1 User interaction design....................................................................................................................... 19 5.2 Class diagrams of user interface ......................................................................................................... 20 5.3 High level design dictionary ............................................................................................................... 21 5.4 High Level Design of Application ...................................................................................................... 23 5.5 Relationship between objects ............................................................................................................. 24 Chapter 6 ........................................................................................................................................................ 25 Low Level Design (Object Oriented Design) ............................................................................................... 25 6.1 Low level design dictionary ................................................................................................................ 25 6.2 Detailed Methodology............................................................................................................................ 26 6.2.1 User Interface ................................................................................................................................. 26 6.2.2 Server ................................................................................................................................................. 34 6.2.2.1 Image Segmentation..................................................................................................................... 34 6.2.2.2 Image Thresholding ..................................................................................................................... 35 6.2.2.3 Image Up-sampling ...................................................................................................................... 35

Chapter 7 ........................................................................................................................................................ 36 Testing and Results ..................................................................................................................................... 36 7.1 Accuracy ............................................................................................................................................... 36 7.2 Performance .......................................................................................................................................... 37 7.3 Usability ................................................................................................................................................ 41 Chapter 8 ........................................................................................................................................................ 43 Code Documentation.................................................................................................................................. 43 Conclusion ...................................................................................................................................................... 43 Bibliography.................................................................................................................................................... 44 Appendix A: User testing questionnaire .......................................................................................................... 45

Chapter 1 Introduction Reading a piece of text can often be a difficult task to perform. This can be largely due to the fact that the piece of text being read is too small to read, too difficult to pronounce, or even not understood. Illiterate people might struggle to pronounce words they do not understand, while individuals that are visually impaired, to a small or large extent might struggle to read small texts. An application is thus needed to provide these individuals with the ease of reading any piece of text they encounter. This application can be extended to recognize and translate foreign languages to English and vice versa.

Chapter 2 User Requirements 2.1 User’s view of the problem The user requires a system that will be able to capture texts using an Android mobile device, where the device should then convert the captured image into audio which will then be read to the user. The proposed hardware and software solutions are as follows:

I.

An Android mobile device with a camera

II.

Linux operating system

III.

Eclipse IDE

IV.

Open Source Computer Vision Libraries

V.

TTS system

VI.

Tesseract open source OCR engine

2.2 Description of the problem People that are visually impaired or illiterate would need to have an application that would provide them with the ease of reading text they do not understand, words they cannot pronounce, or text in foreign languages. Individuals with limited vocabulary would also want to have a system that could generally improve their vocabulary.

2.3 Expectations from the system The user should be able to capture images of text using their mobile Android device. The user should then be able to select pieces of text to be converted to audio and have only that portion converted, rather than the entire text. These highlighted text segments should be able to be read to the user on their request, making the application very interactive.

2.4 Not expected from the system The application is not expected to capture and process multiple images at one time. The application is not expected to be a cross-platform platform application running on various other mobile operating systems ie. Symbian, iOS etc.

Chapter 3 Requirements Analysis 3.1 Designer’s interpretation of the problem Since this application should run on mobile Android devices, it is difficult to implement the application solely on the mobile device, since all devices do not have the same hardware running on them. This is a big problem for the system. Therefore, an external server needs to be set up with which the device will interact.

3.2 Complete analysis of the problem 1. Capture the image

The user uses his/her Android device to capture an image of the text they wished to be processed. 2. Select portions of the text the user wishes to have processed The user will select a piece of text from on the device. The coordinate of the selected pieces of text will be stored as a .txt file. 3. Send image and text file to the server for pre-processing and OCR The server will perform the image pre-processing before feeding the image to the OCR engine. 4. Send extracted text back to the device and perform TTS The server will then send the extracted text back to the mobile device where the device’s builtin TTS engine will convert the text to audio and play it back for the user.

3.3 Current solution Phone Reader The current Phone Reader application allowed the user to take a picture of a piece of text and this image was sent to a PHP/MySQL server where it was pre-processed and fed to an OCR engine. The server would then query the server for a complete response and retrieve the text where the device would play the audio back of the extracted text.

3.4 Proposed solution Phone Reader 2.0 The proposed solution will use the previous solution as grounds to work from. Phone Reader 2.0 will look to use a variety of different image pre-processing algorithms, which will improve the accuracy of the OCR engine. It will also make the interface of the application more usable. The biggest improvement of Phone Reader 2.0 over Phone Reader will be the ability for the user to select portions of text to have only those portions processed, as opposed to the entire image. The proposed solution will also be developed on Linux, making it an open-source project.

Chapter 4 User Interface Specification (UIS) The UIS will consist of one main graphical user interface (GUI). The opening screen of the UI will be a splash screen welcoming the user to the application. The user should then touch the screen where specified. Refer to figure 4.1.

Figure 4.1: Splash Screen

Next the user will have the home screen, depicted in Figure 4.2. This screen will consist of two buttons which the user can press to perform the desired action. These two buttons and their functionality are: Take Picture – Allows the user to take a picture of the text they wish to process. Open A File – Open an existing image to process that specified image.

Figure 4.2: Home Screen

By clicking the “Take Picture” button, the user will be allowed to capture an image. Refer to Figure 4.3.

Figure 4.3: View Finder

By clicking the “Open picture” button, the user will be allowed to capture an image. Refer to Figure 4.4.

Figure 4.4: Gallery

Once captured or selected the user will be taken to process confirmation screen, depicted in Figure 4.5. There are two buttons within this screen. Their names and functionality:

Start selection – Allows user to make selections on the image taken. Cancel – Terminates current process and returns user back to the home screen.

Figure 4.5: Process Confirmation Screen

Once the “Start selection” button is pressed, the user will be taken to the selections screen. Here the user can make selections on the image they have captured. Refer to Figure 4.6.

Figure 4.6: Selections Screen

After the user has made their selections, the android menu button needs to be pressed to bring up the menu options, depicted in Figure 4.7. The menu options and their functionality include:

Translate and OCR– Sends image and selections to server and translate into specified language. Cancel - Terminates current process and returns user back to the home screen.

Figure 4.7: Menu

After the “Translate and OCR” option is chosen, the user will be taken to the language selection screen. Refer to figure 4.8. Pressing Back to the main menu will take the user back to the home screen and pressing exit will terminate the application.

.

Figure 4.8: Language Selection Screen

Once the user selects the language they want the text to be translated to and presses, the files will be sent to the server. The server will then process the image by applying the image pre-processing techniques mentioned, perform OCR on the image, send the OCR results back to the device where it is fed to the text-to-speech (TTS) engine.

Pressing the ‘speaker’ button will read the translated text of a particular selection, if the user taps on that particular selection. Pressing the ‘page’ button will display the translated text of a particular selection, if the user taps on that particular selection. See Figure 4.9. .

Figure 4.9: TTS Screen

Chapter 5 High Level Design (Object Oriented Analysis) This section will cover the high level design of the proposed solution for both the user interface and the server processing.

5.1 User interaction design Figure 5.1.1 illustrates a simple use case diagram for the solution. It displays how the users will interact with the system and how the system will interact with them.

Figure 5.1.1: Use Case Diagram for solution

5.2 Class diagrams of user interface

5.3 High level design dictionary

OpenCV

OpenCV is an open source computer vision libraries. It is used for image processing and image manipulation

OCR

OCR is the abbreviation for Optical Character Recognition. OCR is a mechanical or electronic method of converting images of handwritten, typewritten or printed text into machine coded text.

TTS

TTS is the abbreviation for Text To Speech. A TTS engine or system converts normal language text into speech

PHP

MYSQL

Tesseract OCR Engine

Bing Translator

PHP is a server-side general-purpose scripting language MYSQL is a relational database management system that runs as a server providing multipleuser access to a number of databases. Tesseract is a free OCR engine for various operating systems. Bing Translator (previously Live Search Translator and Windows Live Translator) is a user facing translation portal provided by Microsoft as part of its Bing services to translate texts or entire web pages into different languages. (Dendi, 2011).

5.4 High Level Design of Application

Take Picture or opening an existing one Optical Character Recognition and Translation

Send extracted text to device

Make Selections

Send to server

Image preprocessing

Source image and coordinates

Text-tospeech

Audio playback or text display

Figure 5.4.1: High level design of application

5.5 Relationship between objects

1:1

Android Device

PHP/MYSQL Server

1:1

1:1

TTS 1:1

Tesseract OCR Engine

Figure 5.5.1: Relationship between application objects

Chapter 6 Low Level Design (Object Oriented Design) This section will cover the low level design (designer’s view) of the proposed solution. This section will contain algorithms of some methods to be used within the solution.

6.1 Low level design dictionary

OCR

Region of Interest (ROI)

Adaptive Threshold

Up-sampling

Translation

tesseract -l input.jpg input.txt. Tesseract engine takes an input image, performs OCR on the image and outputs the text to the specified text file. cvSetImageROI(img2, cvRect((int)left, (int)top, (int)w, (int)h)). Image is fed to ROI program and the left, right, width and height coordinates of the selection is passed to the program, cropping the input image to that rectangular region.

cvAdaptiveThreshold(src1, dest1, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 7, 15). Image pixels are categorized as foreground and background pixels. All foreground pixels are made black and all background pixels white. This removes backgrounds from images. cvPyrUp(src, dest, IPL_GAUSSIAN_5x5). Applies a Laplacian pyramid to the specified image, increasing the size of the image by a 5x5 pixel block window. Translate.execute("Bonjour le monde", Language.FRENCH, Language.ENGLISH). Translate the given string from the language specified to the language specified. The engine used is the Microsoft Translator.

6.2 Detailed Methodology 6.2.1 User Interface The following section describes how the Android environment dispatches events based on certain actions:

Figure 6.2.1.1: Class diagram for PhoneReader2Activity

Pseudo code for PhoneReader2Activity: PhoneReader2Activity { Launch application and display home screen If(Take Picture button is pressed){ Start the camera Save picture after taking the image Display preview of image If(Start Selection button is pressed){ Start the CameraCaptured activity } If(Cancel button is pressed){ User taken back to the home screen } }

else(Open A File button is pressed){ Display list of images captured with application Select image to process Preview selected image If(Start Selection button is pressed){ Start the CameraCaptured activity } If(Cancel button is pressed){ User taken back to the home screen } } } Methods: launchCamera()

Issues an intent to start the camera and launches the camera

openList()

Method that specifies the Open A File button press event and calls openImage()

openImage() startSelection(String str, String selections)

getOutputMediaFile(int type)

Launches the Newopen activity Declares a new intent and launches the CameraCaptured activity Creates both the file in which the captured image data will be stored as well as the directory where all the captured images will be stores, if it does not exist

Figure 6.2.1.2: Class diagram for CameraCaptured

Pseudo code for CameraCaptured: CameraCaptured{ Hide Start Selections button While(user not yet saved){ Capture user drawing rectangle Display rectangle drawn on screen If(user taps selection){ Delete selection } If(user presses menu button){ If(Translate and OCR menu item is clicked){ Save coordinates of rectangles drawn up till this point Start LanguageSelect activity Break; }else{ Terminate application } } } }

Methods: hideButton() writeSelection(Annotations object)

upload(String image, String text)

Hides the Start Selection button Writes the coordinates for each object within the link list object to a .txt file Uploads the captured image with its corresponding coordinates file to the web server for processing

initSelectionsAlreadyPresent(Annotations obj, Executed when user opens an image. This method draws all selections made previously on the image String file) selected.

Figure 6.2.1.3: Class diagram for LanguageSelect

Pseudo code for LanguageSelect LangaugeSelect{ if(user taps the “From” drop down){ Display available languages If(user selects language) Store language selected from user } if(user taps the “To” drop down){ Display available languages If(user selects language) Store language selected from user } if(user taps the “OK” button){ Send image, coordinates, language from and language to to the server for processing. If(upload finished) Launch TTS activity } if(user taps cancel button){ Take user back to the home screen } }

Methods: checkLangs()

Checks what language the user selected before uploading the files to the server.

upload(String image, String text, String Calls uploadImage and uploadText with the langFrom, String OCRFrom, String langTo) parameters necessary to upload the files uploadImage(String image, String lang1, String Uploads the image and the language selections to the server lang2, String lang3) uploadText(String text)

Uploads the coordinates to the server

launchTTSTouchPad()

Launches the TTSTouchPad activity

getLangFromAbbr(int pos)

Reads through the file containing language abbreviations for the translator, based on the from language selected

getLangOCRAbbr(int pos)

Reads through the file containing language abbreviations for the OCR engine, based on the from language selected

getLangToAbbr(int pos)

Reads through the file containing language abbreviations for the translator, based on the from language selected

Figure 6.2.1.4: Class diagram for TTSTouchPad

Pseudo code for TTSTouchPad TTSTouchPad{ if(user taps the audio button){ If(user taps selection) Selection is read } if(user taps the text button){ If(user taps selection) Selection is displayed } if(user taps the “OK” button){ Send image, coordinates, language from and language to to the server for processing. If(upload finished) Launch TTS activity } if(user taps cancel button){ Take user back to the home screen } }

Methods: display(String file)

Reads the texts content of file and returns it in a string.

talk(String file)

Reads the texts content of file and uses the TTS engine to read the text.

speakWords(String speech)

Calls uploadImage and uploadText with the parameters necessary to upload the files

readFiles()

Retrieves the processed files from the server. Called by queryServerForResult().

queryServerForResult()

Continuously query’s the web server to determine the status of the files processed. Ends when processing is done.

mainMenu()

Takes the user back to the home screen.

6.2.2 Server 6.2.2.1 Image Segmentation cvSetImageROI(img2, cvRect((int)left, (int)top, (int)w, (int)h));

Segment 1

Segment 2

Segment 3

Image segmentation is used to break the larger image into the number of selections made for processing. The program performing this task is run and loops through the coordinates file separating the values into the four values needed to draw the rectangles used to break the image down ie. left, top, width, height. These four values define the parameters of the rectangle. Once the rectangle is determined, the region covered by the rectangle is cropped from the image and saved as a separate image. This process is repeated until all the coordinates have been read.

6.2.2.2 Image Thresholding cvAdaptiveThreshold(src1, dest1, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 7, 15);

Adaptive thresholding is applied to image to remove any backgrounds from the image, removing background illumination thus increasing the accuracy with which the OCR engine will produce results. The program is run and is given an input image. An adaptive threshold is then applied to the image and the image saved.

6.2.2.3 Image Up-sampling cvPyrUp(src, dest, IPL_GAUSSIAN_5x5);

Image up-sampling is used to increase the size of the image, allowing for more accurate character recognition by the OCR engine. Image up-sampling is used as opposed to simply resizing the image due to the fact that the image pixels are distributed evenly and expanded, producing a much clearer image with a greater resolution than would when normal resizing.

Chapter 7 Testing and Results The section will describe the testing performed to evaluate the accuracy, performance and usability of the system. A total of three tests were conducted on the system to measure the accuracy and performance. Due to the fact that third party software i.e. Tesseract OCR engine and Bing Translation engine was implemented in this system, it is important to note that these tests were not conducted to measure the accuracy and performance 1of those systems, since it has already been done.

7.1 Accuracy The first test conducted on the system was measuring the accuracy of the automatic language detection algorithm implemented. Each language of the 25 languages, excluding English (The default language Tesseract OCR detects if no language is specified, is English), was tested. A total of 5 tests were conducted on each language which includes increasing the number of selections on the particular image, starting from 1 – 5. A total of 125 application executions were run for this particular test. Automatic Language Detection (No translation accuracy considered) Language

Accuracy

Bulgrian Catalan Czech Dutch English Finnish French German Greek Hungarian Indonesian Italian Latvian Lithuanian Norwegian Polish Portuguese Romanian Russian Slovak Slovenian Spanish Swedish Turkish Ukranian Vietnamese

96.20% 96.61% 92.54% 75.50% 100.00% 94.34% 96.07% 98.86% 53.99% 80.00% 100.00% 96.72% 73.71% 59.14% 98.97% 94.55% 98.73% 97.00% 98.33% 95.28% 74.98% 93.51% 95.62% 94.89% 97.57% 68.14%

Average overall accuracy

Table 7.1.1: Average automatic language detection accuracy

89.28%

During the Fourth Annual Test for OCR Accuracy, Tesseract OCR performed with an accuracy rate of 97.69% (Rice et al. 1995). After this time, the Tesseract OCR engine developers have stated that with the conversion to Unicode, the accuracy of the engine has increase by 7.31%. (Rice et al., 1995) 1

From Table 7.1.1 it is clear that the algorithm performs rather well. Despite the average percentage of the set of tests for particular languages being below 80%, the rest of the tests were well above 80%, even reaching above 90%. This proves that the average accuracy of the Tesseract OCR engine is well above 85%.

7.2 Performance The second test conducted was on the system was to determine whether or not word/phrase/sentence length had an impact on the OCR engine performance time. One of the 25 languages recognized by the system, Russian, was chosen to conduct this test. The test was conducted by taking 5 different pictures, each containing Russian phrases consisting of 1-5 words. A number of selections were made on this image, ranging from 1-5, to determine whether word/phrase/sentence length has an influence on the performance of the OCR engine. The application was executed 25 times during this test in which the performance of the OCR engine was measured in milliseconds. Note: The accuracy of the OCR engine was not tested during this test.

Figure 7.2.1: OCR performance time per word selection

It is immediately clear from Figure 7.2.1 that the number of words does have an impact on the performance of the OCR engine. The length of the text selections are denoted on the x-axis and it is clear that it takes the more time to extract the text if it is a longer piece of text to extract.

The third test conducted was measuring the performance of the overall system. The application was executed 125 times during this test in which the processing time of the image pre-processing, OCRing and translation was measured. This measurement was in milliseconds. Note: File upload and file download times were not tested during this test due to the fact that these are dependent on the strength of the internet connection. As this will not remain constant at all times, these factors were not considered for this test.

Figure 7.2.2: Image Pre-processing processing time

Figure 7.2.3: Optimized Image Pre-processing processing e

Figure 7.2.4: OCRing processing time

Figure 7.2.5: Translation processing time

Figure 7.2.6: Optimized translation processing time

Figure 7.2.7: Average Total processing time

Figure 7.2.8: Optimized average total processing time

The above figures denote the processing time for each of the image pre-processing algorithms, OCR and translation as well as the total processing time. Some of these figures, especially Figure 7.2.3, Figure 7.2.6 and Figure 7.2.8, shows the optimized processing time of these algorithms after some optimization has been done to these algorithms. From Figure 7.2.8 we can see that the total number of selections directly affects the overall performance of the system. However, this is a result of the various texts and the text lengths to be processed by the OCR engine. Nevertheless, the processing speed of the system is fairly moderate.

7.3 Usability In order to test the usability of the application, a total of 11 participants were used to test the application. These individuals were handed the questionnaires found in Appendix A and were tasked with a few steps to perform. The purpose of the questionnaire was to capture the users’ feelings about the application and how easy it was for them to use the application. The results are depicted in Figure 7.3.1.

Figure 7.3.1: Usability

From Figure 7.3.1 we see that 63% of the 11 individuals found that the application was very easy to use, 27% found that it was fairly easy to use and 9% found that it was fair in difficulty to use the functions. The questionnaire handed to these individuals can be found in Appendix A.

Apart from the usability test, 100% of the individuals stated that they would recommend this application to other people, 63% of the individuals stated that the feature that most appealed to them was the translation feature and 27% of the individuals uncovered application bugs. Some individuals specified that they had problems with having to draw the rectangles using touch due to their clumsiness and some individuals also stated that the application would be helpful if it would be a cross-platform application.

Among the application bugs that was uncovered were some problems with camera orientation issues, the selection deletion function and frozen UI during audio playback. The application has since been refactored to resolve these issues but it was discovered that the orientation of the camera when taking pictures does affect the image display when making the selections, but this unfortunately is a problem that cannot be addressed since there is no way to force the camera to take pictures in any specific orientation.

Chapter 8 Code Documentation The code has been fully documented whereby comments were inserted at each statement and each method. A description of all inputs and outputs will be given as well as caveats of all methods. The final source code will be stored on a CD and placed in an envelope.

Conclusion Optical character recognition applications such as Phone Reader and Phone Reader 2.0 would be excellent applications that could be made widely available for the Android market. Applications such as these would have quite a few benefits to many individuals and users of the system. However many problems and issues still linger with these applications, making it not feasible to make such applications public as of yet. The biggest hurdle to overcome with Phone Reader 2.0 would be the varying factors regarding the image such as lighting, font size, font styles and an array of other issues. Further research into different image pre-processing methods to overcome these issues could mean that OCR applications on Android devices could go beyond just the features proposed by Phone Reader 2.0, but could become applications that could improve child literacy and many other things. Through applications such as Phone Reader 2.0, many different cultures could be brought together by ensuring that everyone speaks ‘one’ language.

Bibliography ALGINAHI, Y. (2010). Preprocessing Techniques in Character Recognition. [WWW] Available from: http://cdn.intechopen.com/pdfs/11405/InTechPreprocessing_techniques_in_character_recognition.pdf. [Accessed 05/05/12]. BRADSKY, G., and KAEHLER, A. (2008). Learning OpenCV Computer Vision with the OpenCV Library. California: O'Reilly Media Inc. DENDI, V. (2011). Microsoft Translator (and Bing Translator) Official Team Blog. Available from: http://blogs.msdn.com/b/translation/ [Accessed 10/09/12]. FELKER, D., and DOBBS, J. (2011). Android Application Development FOR DUMMIES. New Jersey: Wiley Publishing Inc. MORRIS, J. (2011). Android User Interface Development Beginners Guide. Birmingham: Packt Publishing Ltd. RICE, S. V., JENKINS, F. R and NARTKER, T. A. (1995). The Fourth Annual Test of OCR Accuracy [WWW] Information Science Research Institute. Available from: http://stephenvrice.com/images/AT-1995.pdf. [Accessed 31/10/12].

Appendix A: User testing questionnaire Phone Reader 2.0 This document serves to guide you through the process of testing the application entitled Phone Reader 2.0. Once the testing has been done, you will be required to complete the questionnaire to provide feedback about your experience with the application. All questions answered in this questionnaire will be analysed and used for the gathering of results for the testing phase of the application.

Tasks to be completed:

1) Take a picture To take a picture, press the camera button. The viewfinder then starts. Take a picture just like an ordinary picture would be taken with the device.

2) Make selections After saving the image, tap Start Selection. When the image is displayed, make your selections by drawing rectangles with your finger across the part you would like to process.

3) Select language Once your selections have been made, press the android menu button and select ‘Translate and OCR’. Now choose the language you would want the text to be translated to. You may also specify the language the text is in, for increased performance.

4) Send files After selecting your languages, press the ‘OK’ button. This will bring up the IP dialog. The ip address to enter is _____________________________________________________.

5) Listen to audio and view text Once data has been sent, tap the audio button followed by a selection to listen to the audio of the selection in the translated language specified. After this, tap the page button followed by a selection to view the text of the selection in the translated language specified.

Questionnaire 1) On a scale from 1-5, how would you rate the tasks you had to perform, where 1 would be very difficult and 5 would be very easy? Take a picture

Make selections

Select language

Send files

Listen or view

2) What feature of the application was most appealing to you? Why? ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………

3) What aspects of the application did not appeal to you? Why? ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… 4) Would you recommend the application to people you know? Please circle. Yes No

5) Are there any final comments or suggestions you would like to make about Phone Reader 2.0 and your experience using it? ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………