WO1999024969A1 - Reading system that displays an enhanced image representation - Google Patents

Reading system that displays an enhanced image representation Download PDF

Info

Publication number
WO1999024969A1
WO1999024969A1 PCT/US1998/024134 US9824134W WO9924969A1 WO 1999024969 A1 WO1999024969 A1 WO 1999024969A1 US 9824134 W US9824134 W US 9824134W WO 9924969 A1 WO9924969 A1 WO 9924969A1
Authority
WO
WIPO (PCT)
Prior art keywords
word
document
representation
computer
image
Prior art date
Application number
PCT/US1998/024134
Other languages
French (fr)
Inventor
Raymond C. Kurzweil
Colin Day
Original Assignee
Kurzweil Educational Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kurzweil Educational Systems, Inc. filed Critical Kurzweil Educational Systems, Inc.
Priority to AU14021/99A priority Critical patent/AU1402199A/en
Publication of WO1999024969A1 publication Critical patent/WO1999024969A1/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes

Definitions

  • This invention relates to displaying of electronic representations of documents on computer systems.
  • Computer systems are used to display on a monitor an image file representation of a document obtained from an optical scanner or the like. Often the viewed image is not of high quality. For instance, lines or edges of characters displayed on the monitor may often have a jagged appearance particularly when magnified.
  • Reading machines have been used to improve the educational attainment of individuals with learning disabilities.
  • reading machines are computer based having specialized software that processes an input source document and generates synthetic speech to enable the user to hear the computer read through the document a word, line, sentence, etc. at a time.
  • these reading machines include a scanner to provide one technique to input source documents to the reader.
  • the scanner provides an image file representation of a scanned document.
  • the personal computer using optical character recognition software produces an OCR file including generated text information.
  • the OCR file is used by the display system software to display a text based representation of the scanned document on the monitor.
  • the OCR file text is also used by speech synthesis software to synthesize speech.
  • a computer program product residing on a computer readable medium includes instructions for causing a computer to display an image representation of a scanned document on a computer monitor and selectively replace text image representations of the scanned document with text represented in a scalable, mathematically defined font.
  • the product also causes the computer to manipulate the displayed replaced scalable mathematically defined font representation of the document by using positional information associated with a converted text file generated by converting the image file representation of the document into the converted text file. In this manner a more pleasing display of the image representation of the word is provided and by repetitively performing this operation over all of the words that are in the currently viewed portion of the image, that portion of the image can be replaced with a scalable font.
  • With a scalable font the text will not appear jagged while zooming in or out on the text. If a zoom value or a view section of the image is changed the process can be repeated to re-replace the scanned text images with the scalable font counterpart .
  • FIG. 1 is a block diagram view of a general purpose computer system which in one embodiment is a reading machine system;
  • FIG. 2 is a flow chart showing steps used in displaying a scanned image representation of a document for use in system of FIG. 1 when configured as a general purpose computer or as the reading system embodiment;
  • FIG. 3 is a flow chart showing steps used to associate user selected text on the displayed image representation to OCR generated text to permit voice synthesis and highlighting of the image representation for the reading system embodiment ;
  • FIG. 3A-3B are flow charts showing the steps used to enhance the display image of a document on the general purpose computer or reading machine systems of FIG. 1;
  • FIGS. 4A-4C are flow charts which show steps used in calculating a nearest word for use in the process described in conjunction with FIG. 3 ;
  • FIG. 4D is a pictorial illustration of a portion of an image representation of text displayed on a monitor useful in understanding the process of FIGS. 4A-4C;
  • FIG. 5 is a flow chart showing steps used to highlight a selected word for use in the process described in conjunction with FIG. 3;
  • FIG. 6 is a diagrammatical representation of a data structure used in the process of FIG. 3;
  • FIGS. 7-9 are diagrammatical views of detailed portions of the data structure of FIG. 6;
  • FIGS. 10A - IOC are flow charts of an alternative embodiment for determining the nearest word; and FIG. 11 is a pictorial illustration of a portion of an image representation of text displayed on a monitor useful in understanding the process of FIGS. 10A-10C.
  • a reading machine 10 includes a computer system 12 such as a personal computer.
  • the computer system 12 includes a central processor unit (not shown) that is part of a processor 14.
  • a preferred implementation of the processor 14 is a Pentium ® based system from Intel Corporation, Santa Clara, California, although other processors could alternatively be used.
  • the processor includes main memory, cache memory and bus interface circuits (not shown) .
  • the computer system 12 includes a mass storage element 16, here typically the hard drive associated with personal computer systems.
  • the reading system 10 further includes a standard PC type keyboard 18, a sound card (not shown), standard monitor 20 as well as speakers 22, a pointing device such as a mouse 19 and a scanner 24 all coupled to various ports of the computer system 10 via appropriate interfaces and software drivers (not shown) .
  • the computer system 12 here operates under a WindowsNT ® Microsoft Corporation operating system although other systems could alternatively be used.
  • image display and conversion software 30 (FIG. 2) that controls the display of a scanned image provided from scanner 24.
  • the software 30 permits the user to control various features of the reader by referencing the image representation of the document displayed by the monitor.
  • the steps used in the image display and conversion software 30 include scanning an input document in a conventional manner to provide an image file 31 (step 32) .
  • the image file 31 is operated on by an optical character recognition (OCR) module 34.
  • OCR optical character recognition
  • the OCR module 34 uses conventional optical character recognition techniques (typically software based) on the data provided from the scanned image 32 to produce an output data structure 35.
  • image-like representations can be used as a source such as a stored bit-mapped version of a document.
  • the array of OCR data structures generally denoted as 35 produced by step 34 includes information corresponding to textual information or the OCR converted text, as well as, positional and size information associated with the particular text element.
  • the positional and size information associates the text element to its location in the image representation of the document as displayed on the monitor 20.
  • a data structure element 140 includes for a particular word an OCR text representation of the word stored in field 142.
  • the data structure 140 also has positional information including X-axis coordinate information stored in field 143, Y-axis coordinate information stored in field 144, height information stored in field 145 and width information stored in field 146.
  • This positional information defines the bounds of an imaginary rectangle enclosing an area associated with the corresponding word. That is, if a pointer device such as a mouse has coordinates within the area of this rectangle, then the mouse can be said to point to the word within the defined rectangle.
  • the image file 31 is fed to a display system 38 which in a conventional manner processes the image file to display the document that it represents on the monitor at step 39.
  • the text file 35 provides one input along with commands driven by the operating system (not shown) to a module 40 which is used to associate user initiated actions with an image representative of a scanned document.
  • both the image file 31 and the text file 35 are stored in the reading system for use during the session and can be permanently stored.
  • the files are stored using generally conventional techniques common to WindowsNT ® or other types of operating systems.
  • step 36 if a user has selected an option to enhance the image at step 36, the process will jump to step 37 and call image display enhancement software as will be described in conjunction with FIGS. 3A and 3B.
  • the user controls operation of the reading system embodiment 10 with reference to the image displayed on the monitor 20 by the steps generally shown by the software module 40.
  • a user initiates reading of the scanned document at the beginning of the document by selecting a reading mode.
  • the user can have the document start reading from any point in the document by illustratively pointing to the image representation of an item from the scanned document displayed on the monitor at step 42.
  • the document item is the actual image representation of the scanned document rather than the conventional text file representation.
  • the item can be a single word of text, a line, sentence, paragraph, region and so forth.
  • the user activates a feature to enable the reading machine to generate synthesized speech associated with the selected image representation of the document item. For purposes of explanation, it will be assumed that the document item is a word.
  • a pointer such as a mouse can point within the text in an image in other ways that emulate the pointer behavior typically used in computer text displays and word processing programs. For instance, by simply pointing to a word the software selects a position in the text before the word; whereas, pointing to a word and clicking a mouse button twice will cause the word to be selected and pointing to a word and clicking an alternate mouse button selects several words, starting at a previously determined point and ending at the word pointed to. The user can use a mouse or other type of pointing device to select a particular word. Once selected, the software fetches the coordinates associated with the location pointed to by the mouse 19 (FIG. 1) at step 44. Using these coordinates the word or other document item nearest to the coordinates of the mouse is determined. The information in the data structure 100 is used to generate highlighting of the word as it appears on the display item as well as synthesized speech as will be described.
  • the searching step 46 as will be further described in conjunction with FIGS. 4A-4C will search for the nearest word.
  • a searching step 46' as will be described with FIGS. 10A-10C can also be used.
  • the search operation performed by searching step 46' is based upon various attributes of a scanned image.
  • the highlighting is applied to an area associated with the item or word at step 48.
  • the text corresponding to the nearest document item is also extracted at step 50.
  • the software will call one of several possible routines to provide an enrichment feature for the reading system 10.
  • the user can request a definition of a word and call a dictionary program, can have the current word read aloud, can have the current word spelled, can provide a synonym for the current word, or can look up a translation of the current word in a foreign dictionary, and so forth.
  • a text representation of an element This element may be the word that was retrieved from step 42 or material corresponding to the definition of the word, the spelling of the word, and so forth.
  • a routine 37 used to enhance the displayed image of the scanned document replaces text in the viewed, displayed portion of the document with corresponding text presented in a mathematically defined, scalable font commonly referred to as a "true type" font. Any particular font face can be used. Such fonts are obtainable from various sources. In essence true type fonts are characterized as being scalable, that is, they can be displayed and printed in any size. Such fonts are stored as mathematical descriptions of the individual characters.
  • a font face is selected.
  • the software determines whether there are any words in the image. The software will retrieve a next word and examine it to determine whether it is a word or a null. If there are no words (a null) in the image, then the process will terminate at the "End" of the routine and exit. If there are words in the image, however, the process will calculate the viewed portion of the entire image. The coordinates of the viewed portion of the entire image are available from the image display software 38. That is, the process will determine the boundaries of text information that is currently displayed in the document by reference to the data provided in the OCR text file 31.
  • the software 37 will fetch from the OCR text file a first one of the words as displayed in the image.
  • the software fetches the locational information of the word. Since the OCR text file exactly describes the location of the word as is contained in the image, the software calculates at step 256 whether the coordinates of the word fetched from the OCR text file fall within the coordinates circumscribed by the currently viewed portion of the image. The word is visible if the coordinates of the word are inside the coordinates of a view bounding rectangle. The word is not visible if the coordinates of the word are not inside the coordinates of the view bounding rectangle.
  • the process 37 determines whether there are any additional words in the document at step 260 and, if there are additional words, will fetch the next word at step 262. Again, at step 256 the process will determine whether the next word is within the current view of the document. When any one of the words is within the current view of the document, as determined at step 256, the process branches to a routine 258 which replaces the image with the selected true type font. That is, the process 37 will pass the text of the word corresponding to that received from the OCR text file as well as a selected font into routine 258 to generate a representation of the word which will fit in the space occupied by the image representation of the word as displayed. The process 258 replaces the image representation with the corresponding true type font.
  • the process 258 calculates a word height with the default point size at step 263 and a word rectangle, so that the word would be viewed as a true type font in the region currently occupied by the image representation of the word on the display.
  • the operating system can provide the bounding rectangle of the text given the font and point size.
  • the visible bounding rectangle of a word (R3 ' ) is given by the bounding rectangle of the word (R3) on the entire document (Rl) offset to the view bounding rectangle (R2) multiplied by a zoom factor.
  • R3 ' (R3- (R2-R1) ) *Z
  • the process computes the point size necessary to fit the height of the true-type font replacement (Ph) of the image of the word into the computed rectangle. Given the bounding rectangle of the viewed image of the word (R5) , the size of the default True type font text replacement image (R6) and the default point size, the height of new point size (Ph) is calculated as:
  • Ph P * (R5. height/R6. height)
  • R5. height and R6. height are the heights of the respective word and text replacement.
  • the process determines whether the width of the word will fit into the computed rectangle in a similar manner as for the height by:
  • step 268 branches to step 270 to compute a point size so that the width of the word will fit into the computed rectangle.
  • the process branches to step 272 where the image of the word is erased from the displayed view of the document and a true type font text is clipped or pasted into the viewed rectangle using the computed size centered in the word rectangle as determined above. Erasing the image is accomplished by filling the word view bounding rectangle with the background color and drawing in the word in the true type font using calls into the operating system.
  • Described below are processes used to determine a nearest word in the image as well as a process used to highlight a word or apply double highlighting to a word. In essence, these processes can operated on a display of the document by use of the image file or on a displayed enhanced image representation provided with the true type font.
  • the process described below is used in conjunction with the scanned image. However, it should be appreciated that either the scanned image or the enhanced image representation provided by the above-mentioned replacement of the image with the true type font can be used.
  • the software makes reference to the OCR data structure to determine positional information to associate the reading software, highlighting software or other software with respect to commands by the user.
  • the above enhanced image representation can be saved in a file for later use by building a data structure incorporating the true type font substituted text, it is desirable not to.
  • the displayed window can be maximized, minimized or otherwise scaled to a particular size. This scaling of the window necessitates a recalculation of the font sizes and fitting of the font in the proper position on a document view.
  • the image enhancement software can be used on a conventional general purpose computer which displays image representation of scanned or otherwise obtained documents where it is desirable to improve the readability and image quality of the displayed representation of the document .
  • a pointer is initialized and a maximum value is loaded into a displacement field 51b of structure 51 (FIG. 4D) .
  • the displacement field 51b is used to store the smallest displacement between a word boundary and the coordinates of the pointing device.
  • the pointer initialized at step 60 is a pointer or index into the OCR generated data structure 35 (FIG. 6) .
  • the software 46 retrieves each word entry in the data structure 35 to determine for that word in accordance with the image relative position information (which is the same wether or not the true type font replacement is used) associated with the OCR text generated word whether or not that particular word is the closest word to the coordinates associated with the user's pointing device.
  • the coordinates associated with a first one of the words are fetched.
  • the coordinates associated with the first one of the fetched words are used to determine whether the pointing device is pointing to a location within a box 65 5 that is defined around the word.
  • the mouse points to a spot 61 having coordinates X ir Y j .
  • an imaginary box here 65 5 is assumed to exist about the word “IMAGE” in FIG. 4D.
  • the word "image” as well as the other words can be in the replaced true type font representation.
  • the pointing device coordinates fall within the box 65 5 , the pointing device would be considered to point to the document item "IMAGE" associated with the box 65 5 .
  • each of the words will have associated therewith the OCR text converted from the image file 31, as well as position and size data that identifies the position and size of the word as it appears on the original document. Accordingly, this information also locates the word as it appears in the displayed image or replaced true type font representation of the document. Thus, when determining the closest word to a position pointed to by a mouse, it is necessary to determine the boundaries of the box that the particular word occupies.
  • the software determines whether or not point 61 falls within the box by considering the following:
  • step 66 control will pass directly to step 50 (FIG. 4B) .
  • the point (c, d) can be determined by subtracting the height of the box from the x coordinate (a associated with the image and adding the width of the box associated with the y coordinate (b.) of the image. This is true also if the word is presented in a true type font. If, however, the point 61 is not within the box as is shown, then the software 46 determines the word which is nearest to the point 61 at step 68 by one of several algorithms.
  • a first algorithm which can be used is to compute the distance from a consistent corner of the box associated with the word to the position of the mouse pointer 61.
  • the distance (S) to a consistent corner would be computed as the "Pythagorean" technique as follows:
  • this equation can be used at each corner of each box and further processing can be used to determine which one of the four values provided from each corner is in fact the lowest value for each box.
  • the computed value (S) is compared to the previous value stored in displacement field 51b. Initially, field 51b has a maximum value stored therein and the smaller of the two values is stored in field 51b at step 72. Accordingly the first computed value and the index associated with the word are stored in the structure 51 as shown in FIG. 4C.
  • step 74 it is determined whether or not this is the end of the data structure. If it is the end of the data structure then control branches to step 50 and hence step 52. If it is not the end of the data structure then the pointer is incremented at step 76 and the next word in the data structure as determined by the new pointer value is fetched at step 62.
  • step 72 will determine whether the previously stored value (S p ) in fields 51a, 51b is greater than or less than a current calculated value (S c ) for the current word. If the current value (S c ) is less than the previous value S p , then the current value replaces the previous value in field 51b and the index associated with the current value replaces the previous index stored in field 51a.
  • the structure 51 keeps track of the smallest calculated distance (S) and the index (i.e., word) associated with the calculated distance. The process continues until the positional data for all of the words in the data structure associated with the particular image have been examined. The values which remain in the data structure 51 at the end process thus correspond to the closest word to the location pointed to by the mouse coordinates 61.
  • the process 40 applies highlighting as appropriate to the selected item.
  • Prior techniques for providing highlighting would simply highlight a line or a paragraph in the text representation displayed on the monitor. The highlighting would be of the current word that is being read aloud to the user. Although this is acceptable, a preferred approach as described herein applies double highlighting and still preferably applies double highlighting to an image or true type replaced representation of a scanned document.
  • the highlighting process 48 is shown to include a step 80 in which an event is awaited by the software 48.
  • the event is typically an operating system interrupt-type driven operation that indicates any one of a number of operations such as a user of the reading machine 10 initiating speech synthesis of a word, sentence or paragraph.
  • the highlighting process 48 remains in that state until an event occurs. When an event occurs all previous highlighting is turned off at step 82.
  • the previous highlighting is turned off by sending a message (not shown) to the display system 38 causing the display system to remove the highlighting.
  • the highlighting process checks whether a unit of text has been completed.
  • a unit can be a word, line, sentence, or a paragraph, for example, as selected by the user.
  • step 90 highlighting of the unit is also turned off at step 90.
  • the software checks for an exit condition at step 91 after the coordinates have been fetched.
  • An exit condition as shown in step 91 can be any one of a number of occurrences such as reaching the last word in the array of OCR data structures 35 or a user command to stop coming from the keyboard 18 or other input device. If an exit condition has occurred at step 91, the routine 48 exits to step 92.
  • next unit is determined at step 93.
  • the next unit of text is determined by using standard parsing techniques on the array of OCR text structures 35. Thus, the next unit is determined by looking for periods for example to demarcate the end of sentences, and indents and blank lines to look for paragraphs. In addition, changes in the Y coordinate can be used to give hints about sentences and lines. Other document structure features can also be used.
  • the next unit is then highlighted at step 94 by instructing the display system software 38 (FIG. 2) to apply a transparent color to the selected next unit. This is a first level of highlighting provided on a unit of image or true type font replaced representation of the scanned document . Control transfers back to step 86.
  • step 86 which is arrived at directly from step 84 or from step 92, the coordinates of the next word that is to be synthesized and highlighted are fetched.
  • the software checks for an exit condition at step 88 after the coordinates have been fetched.
  • An exit condition as shown in step 88 can be any one of a number of occurrences such as reaching the last word in the array of OCR data structures 35 or a user command to stop provided from the keyboard 18 or other input device. If an exit condition has occurred at step 88, the routine 48 exits to step 89. Otherwise, at step 96 a second highlight is applied to the image or true type font replaced representations, here preferably with a different transparent color and applied only to the word which is to be synthesized by the speech synthesizer 52.
  • the pointer to the next word in the data structure 35 is then incremented at step 98 to obtain the next word.
  • the second highlighting is provided by sending a message to display system software 38 containing the positional information retrieved from the data structure. This process continues until an exit condition occurs at step 88.
  • the single and the dual highlighting above was described as applying two distinct, transparent colors to selected image or true type font representations of the displayed document.
  • other highlighting indicia can be used such as bold text, font style or size changes, italics, boxing in selected text, and underlining.
  • combinations of these other indicia with or without colors could be used. Referring now particularly to FIGS.
  • the data structure 35 is hierarchically organized. At the top of the data structure is a page, data structure 110.
  • the page includes pointers HOa-llOe to each one of a plurality of regions 120.
  • a region is here a rectangular shaped area that is comprised of one or more rectangular lines of text. If there are multiple line of text in a region, the lines do not overlap in the vertical direction. That is, starting with the top line, the bottom of each line is above the top of the next line.
  • the regions may include headers, titles, columns and so forth. The headers may or may not straddle more than one column and so forth.
  • the regions likewise include a plurality of pointers 120a-120e to each one of corresponding lines 130 shown in the data structure 130.
  • the lines correspondingly have pointers 130a-130e to each of the words contained within the line.
  • the detail structure of items 140, 130 and 120 include a plurality of fields.
  • FIG. 7 for the word includes the text field 142 which has the OCR generated text and has fields 143 and 144 which provide rectangular coordinate information x and y, respectively, as well as fields 145 and 146 which provide here height and width information. Similar data are provided for the lines as shown in FIG. 8 as well as regions as shown in FIG. 9.
  • pointers are again initialized to a first one of the regions, as shown by step 180 and the coordinates of the region's boundary box are fetched at step 182 from the data structure 120.
  • the position (X, Y) of the pointer is calculated to determine whether or not it falls within a box defining a region.
  • FIG. 11 shows a sample region containing a plurality of lines of image or true type font replaced representations text and boxes illustrated about the region, lines and word. Also three sample positions 61, 61a, 61b of the pointing device (not shown) are illustrated.
  • the calculation for a region is performed in a similar manner as for calculating a box for a word described in conjunction with FIGs. 5A to 5C except that the positional information contained within the region data structure 120 is used to determine a box or other boundary associated with the region. Coordinates (r 6 ,s 6 ) and (t 6 ,u 6 ) denote the imaginary box about the illustrated region in FIG. 11. If at step 186 it is determined that the coordinates of the pointer fall within the box (as 61 and 61a -61d, FIG 11) , then the process branches to determine the nearest line in step 201 (FIG. 10B) . Otherwise processing continues to step 187 to determine whether or not the process has reached the last region in the region data structure 120.
  • step 194 point to the next region in the data structure 120. If the process 46' has reached the last structure hence the coordinates of the pointer device do not point to any word, as 61, (FIG.11). Therefore, a previously determined word is used, and the process exits. If at step 186 it was determined that the coordinates fall within a region's box, then at step 201 a similar process is used to determine the nearest line except that the line data associated with the data structure 130 (FIG. 8) is used for positional information and index information such as coordinates (l 4 ,m 4 ) and (n 4 ,o 4 ) .
  • positional information is used to determine whether the coordinates of the pointing device are within a box defined about the line by the positional information associated with the line. If the coordinates of the positioning device fall above the box associated with the line as point 61a, then the software will choose the first word of the line here the word "TEXT" . If the coordinates fall above the bottom of the line box as point 61b, then the software branches to step 220.
  • the software initializes a pointer to the top line in the region (at step 201) and fetches the coordinates of the line at step 202.
  • the coordinates which are fetched correspond to the top and bottom coordinates of an imaginary box positioned about the line.
  • the software calculates to determine whether the Y coordinate of the pointing device is above the line. This is accomplished by comparing the value of the Y coordinate of the pointing device to the Y coordinate (m 4 )of the uppermost point defining the box about the line, as shown for point 61b. If at step 206 it is determined that the Y coordinate is above the box defined about the line, the software chooses the first word on line step 208 and is done.
  • the software determines whether the Y coordinate is above the bottom of the box defining the line by using a similar approach as for the top of the line except using, for example, the coordinate (0 4 ) . If it is determined that the Y coordinate is equal to or above the bottom of the box defining the line, as point 61b then the software branches to step 220 (FIG. 10C) .
  • the X coordinate of the pointer is already known to be in the region and is not checked here. This allows for short lines to be detected. Lines are often shorter than the width of the region. For example, short lines may occur at the beginning and end of paragraphs or in text that is not justified to form a straight right margin. Otherwise, it continues to step 212 where it is determined whether the current line is the last line in the data structure 230. If it is not the last line in data structure 230, the pointer is incremented at step 216 to point to the next lower line in the region. If it is the last line in the data structure and the Y coordinate was not above the top of the line nor above the bottom of the line, the software chooses at step 214 the word after the word in the last line as for point 61c and is done.
  • pointers are again initialized to a first one of the words on a line, as shown by step 220 and the coordinates of the word are fetched at step 222 from the data structure 140.
  • the position X of the pointer is calculated to determine whether or not it falls at or to the left of the current word's right side at step 224 as for point 61a. This calculation is performed by comparing the X value of the pointer coordinate to the X value of the right side of the box defined about the word here coordinate a 5 of point (a 5 ,b 5 ) .
  • the pointing device is considered pointing to the left side of the word's right side.
  • the process determines whether or not it has reached the last word in the data structure 140. If it has not reached the last word in the data structure 140 the pointer is incremented at step 234 to point to the next word to the right. If it has reached the last word in the data structure 140, the software at step 230 will choose the word after the last word in the line (not illustrated) and the process is done. The chosen word is forwarded on to steps 48 of FIG. 3. In this manner double highlighting, as described in conjunction with FIG. 5, and speech synthesis as described above are performed on the word chosen by this process.

Abstract

A reading machine includes computer program residing on a computer readable medium operable with an operating system that permits the production of windows on a display. The program has instructions for causing a computer to provide a first user selected call to a first user selected routine in response to a user selecting a first word (250) that the user seeks assistance in understanding and produce a text file for the first selected word comprised of data that assists the user call. An operating system routine commands the operating system to create a new window on the display and fill the new window on the display with the information contained in the text file (252, 254-260). A second user selected call to a user selected routine can be provided for word that the user seeks assistance in understanding to provide a recursive (262) enrichment feature.

Description

READING SYSTEM THAT DISPLAYS AN ENHANCED IMAGE REPRESENTATION
BACKGROUND
This invention relates to displaying of electronic representations of documents on computer systems.
Computer systems are used to display on a monitor an image file representation of a document obtained from an optical scanner or the like. Often the viewed image is not of high quality. For instance, lines or edges of characters displayed on the monitor may often have a jagged appearance particularly when magnified.
Reading machines have been used to improve the educational attainment of individuals with learning disabilities. In general, reading machines are computer based having specialized software that processes an input source document and generates synthetic speech to enable the user to hear the computer read through the document a word, line, sentence, etc. at a time. Often these reading machines include a scanner to provide one technique to input source documents to the reader.
The scanner provides an image file representation of a scanned document. The personal computer using optical character recognition software produces an OCR file including generated text information. The OCR file is used by the display system software to display a text based representation of the scanned document on the monitor. The OCR file text is also used by speech synthesis software to synthesize speech. SUMMARY
In one aspect of the invention, a computer program product residing on a computer readable medium includes instructions for causing a computer to display an image representation of a scanned document on a computer monitor and selectively replace text image representations of the scanned document with text represented in a scalable, mathematically defined font. The product also causes the computer to manipulate the displayed replaced scalable mathematically defined font representation of the document by using positional information associated with a converted text file generated by converting the image file representation of the document into the converted text file. In this manner a more pleasing display of the image representation of the word is provided and by repetitively performing this operation over all of the words that are in the currently viewed portion of the image, that portion of the image can be replaced with a scalable font. With a scalable font the text will not appear jagged while zooming in or out on the text. If a zoom value or a view section of the image is changed the process can be repeated to re-replace the scanned text images with the scalable font counterpart .
DESCRIPTION OF THE DRAWINGS
The foregoing features and other aspects of the invention will be described further in detail by the accompanying drawings, in which: FIG. 1 is a block diagram view of a general purpose computer system which in one embodiment is a reading machine system;
FIG. 2 is a flow chart showing steps used in displaying a scanned image representation of a document for use in system of FIG. 1 when configured as a general purpose computer or as the reading system embodiment;
FIG. 3 is a flow chart showing steps used to associate user selected text on the displayed image representation to OCR generated text to permit voice synthesis and highlighting of the image representation for the reading system embodiment ;
FIG. 3A-3B are flow charts showing the steps used to enhance the display image of a document on the general purpose computer or reading machine systems of FIG. 1;
FIGS. 4A-4C are flow charts which show steps used in calculating a nearest word for use in the process described in conjunction with FIG. 3 ;
FIG. 4D is a pictorial illustration of a portion of an image representation of text displayed on a monitor useful in understanding the process of FIGS. 4A-4C;
FIG. 5 is a flow chart showing steps used to highlight a selected word for use in the process described in conjunction with FIG. 3; FIG. 6 is a diagrammatical representation of a data structure used in the process of FIG. 3;
FIGS. 7-9 are diagrammatical views of detailed portions of the data structure of FIG. 6; and
FIGS. 10A - IOC are flow charts of an alternative embodiment for determining the nearest word; and FIG. 11 is a pictorial illustration of a portion of an image representation of text displayed on a monitor useful in understanding the process of FIGS. 10A-10C.
DETAILED DESCRIPTION Referring now to FIG. 1, a reading machine 10 includes a computer system 12 such as a personal computer. The computer system 12 includes a central processor unit (not shown) that is part of a processor 14. A preferred implementation of the processor 14 is a Pentium® based system from Intel Corporation, Santa Clara, California, although other processors could alternatively be used. In addition to the CPU, the processor includes main memory, cache memory and bus interface circuits (not shown) . The computer system 12 includes a mass storage element 16, here typically the hard drive associated with personal computer systems.
The reading system 10 further includes a standard PC type keyboard 18, a sound card (not shown), standard monitor 20 as well as speakers 22, a pointing device such as a mouse 19 and a scanner 24 all coupled to various ports of the computer system 10 via appropriate interfaces and software drivers (not shown) . The computer system 12 here operates under a WindowsNT® Microsoft Corporation operating system although other systems could alternatively be used.
Resident on the mass storage element 16 is image display and conversion software 30 (FIG. 2) that controls the display of a scanned image provided from scanner 24. In addition, the software 30 permits the user to control various features of the reader by referencing the image representation of the document displayed by the monitor.
Referring now to FIG. 2, the steps used in the image display and conversion software 30 include scanning an input document in a conventional manner to provide an image file 31 (step 32) . When the system 10 is a reading machine, the image file 31 is operated on by an optical character recognition (OCR) module 34. The OCR module 34 uses conventional optical character recognition techniques (typically software based) on the data provided from the scanned image 32 to produce an output data structure 35. Alternatively, image-like representations can be used as a source such as a stored bit-mapped version of a document. A preferred arrangement of the output data structure is described in conjunction with FIGS. 6-9. Suffice it here to say, however, that the array of OCR data structures generally denoted as 35 produced by step 34 includes information corresponding to textual information or the OCR converted text, as well as, positional and size information associated with the particular text element. The positional and size information associates the text element to its location in the image representation of the document as displayed on the monitor 20.
Referring momentarily to FIG. 7, therefore, it can be seen that a data structure element 140 includes for a particular word an OCR text representation of the word stored in field 142. The data structure 140 also has positional information including X-axis coordinate information stored in field 143, Y-axis coordinate information stored in field 144, height information stored in field 145 and width information stored in field 146. This positional information defines the bounds of an imaginary rectangle enclosing an area associated with the corresponding word. That is, if a pointer device such as a mouse has coordinates within the area of this rectangle, then the mouse can be said to point to the word within the defined rectangle. Whether a general purpose application or as a reading machine, the image file 31 is fed to a display system 38 which in a conventional manner processes the image file to display the document that it represents on the monitor at step 39. As shown, the text file 35 provides one input along with commands driven by the operating system (not shown) to a module 40 which is used to associate user initiated actions with an image representative of a scanned document. In addition, both the image file 31 and the text file 35 are stored in the reading system for use during the session and can be permanently stored. The files are stored using generally conventional techniques common to WindowsNT® or other types of operating systems.
As also shown in conjunction with FIG. 2, if a user has selected an option to enhance the image at step 36, the process will jump to step 37 and call image display enhancement software as will be described in conjunction with FIGS. 3A and 3B.
Referring now to FIG. 3, the user controls operation of the reading system embodiment 10 with reference to the image displayed on the monitor 20 by the steps generally shown by the software module 40.
A user initiates reading of the scanned document at the beginning of the document by selecting a reading mode. Alternatively, the user can have the document start reading from any point in the document by illustratively pointing to the image representation of an item from the scanned document displayed on the monitor at step 42. The document item is the actual image representation of the scanned document rather than the conventional text file representation. The item can be a single word of text, a line, sentence, paragraph, region and so forth. The user activates a feature to enable the reading machine to generate synthesized speech associated with the selected image representation of the document item. For purposes of explanation, it will be assumed that the document item is a word.
In addition to pointing to a word, a pointer such as a mouse can point within the text in an image in other ways that emulate the pointer behavior typically used in computer text displays and word processing programs. For instance, by simply pointing to a word the software selects a position in the text before the word; whereas, pointing to a word and clicking a mouse button twice will cause the word to be selected and pointing to a word and clicking an alternate mouse button selects several words, starting at a previously determined point and ending at the word pointed to. The user can use a mouse or other type of pointing device to select a particular word. Once selected, the software fetches the coordinates associated with the location pointed to by the mouse 19 (FIG. 1) at step 44. Using these coordinates the word or other document item nearest to the coordinates of the mouse is determined. The information in the data structure 100 is used to generate highlighting of the word as it appears on the display item as well as synthesized speech as will be described.
The searching step 46 as will be further described in conjunction with FIGS. 4A-4C will search for the nearest word. Alternatively, a searching step 46' as will be described with FIGS. 10A-10C can also be used. The search operation performed by searching step 46' is based upon various attributes of a scanned image.
After the nearest word or nearest document item has been determined at step 46 or 46', the highlighting is applied to an area associated with the item or word at step 48. The text corresponding to the nearest document item is also extracted at step 50. At step 51, the software will call one of several possible routines to provide an enrichment feature for the reading system 10. For example, the user can request a definition of a word and call a dictionary program, can have the current word read aloud, can have the current word spelled, can provide a synonym for the current word, or can look up a translation of the current word in a foreign dictionary, and so forth. From the output of step 51 is provided a text representation of an element. This element may be the word that was retrieved from step 42 or material corresponding to the definition of the word, the spelling of the word, and so forth.
The text representation is fed to a speech synthesizer 52 to produced electrical signals corresponding to speech. The electrical signals are fed to the audio system 54 to produce speech corresponding to the nearest document item while the monitor 20 displays the item and highlighting is applied to the item. Referring now to FIG. 3A, a routine 37 used to enhance the displayed image of the scanned document replaces text in the viewed, displayed portion of the document with corresponding text presented in a mathematically defined, scalable font commonly referred to as a "true type" font. Any particular font face can be used. Such fonts are obtainable from various sources. In essence true type fonts are characterized as being scalable, that is, they can be displayed and printed in any size. Such fonts are stored as mathematical descriptions of the individual characters. At step 249 a font face is selected. At step 250 the software determines whether there are any words in the image. The software will retrieve a next word and examine it to determine whether it is a word or a null. If there are no words (a null) in the image, then the process will terminate at the "End" of the routine and exit. If there are words in the image, however, the process will calculate the viewed portion of the entire image. The coordinates of the viewed portion of the entire image are available from the image display software 38. That is, the process will determine the boundaries of text information that is currently displayed in the document by reference to the data provided in the OCR text file 31. At step 254 the software 37 will fetch from the OCR text file a first one of the words as displayed in the image. Concomitant therewith the software fetches the locational information of the word. Since the OCR text file exactly describes the location of the word as is contained in the image, the software calculates at step 256 whether the coordinates of the word fetched from the OCR text file fall within the coordinates circumscribed by the currently viewed portion of the image. The word is visible if the coordinates of the word are inside the coordinates of a view bounding rectangle. The word is not visible if the coordinates of the word are not inside the coordinates of the view bounding rectangle.
If the word is not in the current view, the process 37 determines whether there are any additional words in the document at step 260 and, if there are additional words, will fetch the next word at step 262. Again, at step 256 the process will determine whether the next word is within the current view of the document. When any one of the words is within the current view of the document, as determined at step 256, the process branches to a routine 258 which replaces the image with the selected true type font. That is, the process 37 will pass the text of the word corresponding to that received from the OCR text file as well as a selected font into routine 258 to generate a representation of the word which will fit in the space occupied by the image representation of the word as displayed. The process 258 replaces the image representation with the corresponding true type font. This eliminates from the displayed view of the document the sometimes jagged edges and other irregularities in the displayed representation of the image and thus significantly improves the readability and the appearance of the image as displayed on the monitor 20 (FIG. 1) . Referring now to FIG. 3B, the steps used in replacement of the image with true type font routine 258 are shown. In essence, the process 258 calculates a word height with the default point size at step 263 and a word rectangle, so that the word would be viewed as a true type font in the region currently occupied by the image representation of the word on the display. In Windows NT the operating system can provide the bounding rectangle of the text given the font and point size. The visible bounding rectangle of a word (R3 ' ) is given by the bounding rectangle of the word (R3) on the entire document (Rl) offset to the view bounding rectangle (R2) multiplied by a zoom factor.
R3 ' = (R3- (R2-R1) ) *Z
(where Z is a percentage)
At step 266 the process computes the point size necessary to fit the height of the true-type font replacement (Ph) of the image of the word into the computed rectangle. Given the bounding rectangle of the viewed image of the word (R5) , the size of the default True type font text replacement image (R6) and the default point size, the height of new point size (Ph) is calculated as:
Ph = P * (R5. height/R6. height)
where R5. height and R6. height are the heights of the respective word and text replacement. At step 268, the process determines whether the width of the word will fit into the computed rectangle in a similar manner as for the height by:
Pw = P * (R5.width/R6. width)
where Pw is the width of the new point size and R5. width and R6. width are the widths of the respective word and text replacement. If the word width Pw is too large for the computed rectangle, then the process at step 268 branches to step 270 to compute a point size so that the width of the word will fit into the computed rectangle. Either from step 268 or step 270 the process branches to step 272 where the image of the word is erased from the displayed view of the document and a true type font text is clipped or pasted into the viewed rectangle using the computed size centered in the word rectangle as determined above. Erasing the image is accomplished by filling the word view bounding rectangle with the background color and drawing in the word in the true type font using calls into the operating system. In this manner a more pleasing display of the image representation of the word is provided and by repetitively performing this operation over all of the words that are in the currently viewed portion of the image, that portion of the image can be replaced with a true type font. Since the True type font is scalable, the text will not appear jagged while zooming in on the text. If a zoom value or a view section of the image is changed the process can be repeated to re-replace the scanned text images with the true type counterparts.
Described below are processes used to determine a nearest word in the image as well as a process used to highlight a word or apply double highlighting to a word. In essence, these processes can operated on a display of the document by use of the image file or on a displayed enhanced image representation provided with the true type font. The process described below is used in conjunction with the scanned image. However, it should be appreciated that either the scanned image or the enhanced image representation provided by the above-mentioned replacement of the image with the true type font can be used. In essence, for the scanned image as well as for the representation using the replacement true type fonts, the software makes reference to the OCR data structure to determine positional information to associate the reading software, highlighting software or other software with respect to commands by the user.
Although the above enhanced image representation can be saved in a file for later use by building a data structure incorporating the true type font substituted text, it is desirable not to. Generally in windows based operating systems, the displayed window can be maximized, minimized or otherwise scaled to a particular size. This scaling of the window necessitates a recalculation of the font sizes and fitting of the font in the proper position on a document view. Thus it is desireable to discard the enhanced image rather than save it. If it is desireable to review the image and again enhance it the process can be repeated.
It should also be appreciated that although the true type font replacement technique described above is particularly utilized in conjunction with the reading system as generally described herein, it is not necessarily limited thereto. Thus, for example, the image enhancement software can be used on a conventional general purpose computer which displays image representation of scanned or otherwise obtained documents where it is desirable to improve the readability and image quality of the displayed representation of the document .
Referring now to FIGS. 4A-4C, the process 46 used to determine a nearest word in a display of a true type font replacement for the scanned image or the scanned image is shown. At step 60 a pointer is initialized and a maximum value is loaded into a displacement field 51b of structure 51 (FIG. 4D) . The displacement field 51b is used to store the smallest displacement between a word boundary and the coordinates of the pointing device. The pointer initialized at step 60 is a pointer or index into the OCR generated data structure 35 (FIG. 6) . The software 46 retrieves each word entry in the data structure 35 to determine for that word in accordance with the image relative position information (which is the same wether or not the true type font replacement is used) associated with the OCR text generated word whether or not that particular word is the closest word to the coordinates associated with the user's pointing device. At step 62 the coordinates associated with a first one of the words are fetched. At step 64 the coordinates associated with the first one of the fetched words are used to determine whether the pointing device is pointing to a location within a box 655 that is defined around the word. Thus, as shown in conjunction with FIG. 4D, the mouse points to a spot 61 having coordinates Xir Yj . For any document item on the scanned image, an imaginary box here 655 is assumed to exist about the word "IMAGE" in FIG. 4D. Alternatively, the word "image" as well as the other words can be in the replaced true type font representation. Thus, if the pointing device coordinates fall within the box 655, the pointing device would be considered to point to the document item "IMAGE" associated with the box 655.
In the data structure 35 each of the words will have associated therewith the OCR text converted from the image file 31, as well as position and size data that identifies the position and size of the word as it appears on the original document. Accordingly, this information also locates the word as it appears in the displayed image or replaced true type font representation of the document. Thus, when determining the closest word to a position pointed to by a mouse, it is necessary to determine the boundaries of the box that the particular word occupies. At step 64, the software determines whether or not point 61 falls within the box by considering the following:
For a mouse coordinate position (X, Y) the location pointed to by the mouse can be considered to be within a region of an image word having points defined by coordinates (a_, b.) and (ck, d_) where ck = a_ + h and d_ = b- - w, if X _ a_ and Y < b. and X < ck and Y ≥ dx where it is assumed here that the positive direction of the coordinates is upward and to the right.
If this condition is satisfied, then the point 61 can be considered to be within the box and, hence, at step 66 control will pass directly to step 50 (FIG. 4B) . From the information mentioned above, therefore, the point (c, d) can be determined by subtracting the height of the box from the x coordinate (a associated with the image and adding the width of the box associated with the y coordinate (b.) of the image. This is true also if the word is presented in a true type font. If, however, the point 61 is not within the box as is shown, then the software 46 determines the word which is nearest to the point 61 at step 68 by one of several algorithms. A first algorithm which can be used is to compute the distance from a consistent corner of the box associated with the word to the position of the mouse pointer 61. In general, the distance (S) to a consistent corner would be computed as the "Pythagorean" technique as follows:
S = ((X-a 2 + (Y-b3)2)"2 Alternatively, this equation can be used at each corner of each box and further processing can be used to determine which one of the four values provided from each corner is in fact the lowest value for each box. In either event, the computed value (S) is compared to the previous value stored in displacement field 51b. Initially, field 51b has a maximum value stored therein and the smaller of the two values is stored in field 51b at step 72. Accordingly the first computed value and the index associated with the word are stored in the structure 51 as shown in FIG. 4C. At step 74 it is determined whether or not this is the end of the data structure. If it is the end of the data structure then control branches to step 50 and hence step 52. If it is not the end of the data structure then the pointer is incremented at step 76 and the next word in the data structure as determined by the new pointer value is fetched at step 62.
The second time through the process 46 in general will be the same as the first time except that step 72 will determine whether the previously stored value (Sp) in fields 51a, 51b is greater than or less than a current calculated value (Sc) for the current word. If the current value (Sc) is less than the previous value Sp, then the current value replaces the previous value in field 51b and the index associated with the current value replaces the previous index stored in field 51a.
In this manner, the structure 51 keeps track of the smallest calculated distance (S) and the index (i.e., word) associated with the calculated distance. The process continues until the positional data for all of the words in the data structure associated with the particular image have been examined. The values which remain in the data structure 51 at the end process thus correspond to the closest word to the location pointed to by the mouse coordinates 61.
Referring now back to FIG. 3, once the nearest coordinates for the nearest data item are determined, the process 40 applies highlighting as appropriate to the selected item. Prior techniques for providing highlighting would simply highlight a line or a paragraph in the text representation displayed on the monitor. The highlighting would be of the current word that is being read aloud to the user. Although this is acceptable, a preferred approach as described herein applies double highlighting and still preferably applies double highlighting to an image or true type replaced representation of a scanned document.
The selected paragraph or sentence is highlighted with a first transparent color, whereas, each individual word as the word is spoken through the speech synthesizer at step 52 is highlighted with a second, different transparent color. Accordingly, highlighting is applied at step 48 in a manner as will now be described. Referring now to FIG. 5, the highlighting process 48 is shown to include a step 80 in which an event is awaited by the software 48. The event is typically an operating system interrupt-type driven operation that indicates any one of a number of operations such as a user of the reading machine 10 initiating speech synthesis of a word, sentence or paragraph. The highlighting process 48 remains in that state until an event occurs. When an event occurs all previous highlighting is turned off at step 82. The previous highlighting is turned off by sending a message (not shown) to the display system 38 causing the display system to remove the highlighting. At step 84 the highlighting process checks whether a unit of text has been completed. For example, a unit can be a word, line, sentence, or a paragraph, for example, as selected by the user.
If a unit of text has been completed, then highlighting of the unit is also turned off at step 90. The software checks for an exit condition at step 91 after the coordinates have been fetched. An exit condition as shown in step 91 can be any one of a number of occurrences such as reaching the last word in the array of OCR data structures 35 or a user command to stop coming from the keyboard 18 or other input device. If an exit condition has occurred at step 91, the routine 48 exits to step 92.
If an exit condition has not occurred, the next unit is determined at step 93. The next unit of text is determined by using standard parsing techniques on the array of OCR text structures 35. Thus, the next unit is determined by looking for periods for example to demarcate the end of sentences, and indents and blank lines to look for paragraphs. In addition, changes in the Y coordinate can be used to give hints about sentences and lines. Other document structure features can also be used. The next unit is then highlighted at step 94 by instructing the display system software 38 (FIG. 2) to apply a transparent color to the selected next unit. This is a first level of highlighting provided on a unit of image or true type font replaced representation of the scanned document . Control transfers back to step 86.
At step 86 which is arrived at directly from step 84 or from step 92, the coordinates of the next word that is to be synthesized and highlighted are fetched. The software checks for an exit condition at step 88 after the coordinates have been fetched. An exit condition as shown in step 88 can be any one of a number of occurrences such as reaching the last word in the array of OCR data structures 35 or a user command to stop provided from the keyboard 18 or other input device. If an exit condition has occurred at step 88, the routine 48 exits to step 89. Otherwise, at step 96 a second highlight is applied to the image or true type font replaced representations, here preferably with a different transparent color and applied only to the word which is to be synthesized by the speech synthesizer 52. The pointer to the next word in the data structure 35 is then incremented at step 98 to obtain the next word. The second highlighting is provided by sending a message to display system software 38 containing the positional information retrieved from the data structure. This process continues until an exit condition occurs at step 88. It should be noted that the single and the dual highlighting above was described as applying two distinct, transparent colors to selected image or true type font representations of the displayed document. Alternatively, however other highlighting indicia can be used such as bold text, font style or size changes, italics, boxing in selected text, and underlining. In addition, combinations of these other indicia with or without colors could be used. Referring now particularly to FIGS. 6-9, a preferred format for the data structure 35 provided by the OCR step 34 is shown. The data structure 35 is hierarchically organized. At the top of the data structure is a page, data structure 110. The page includes pointers HOa-llOe to each one of a plurality of regions 120. A region is here a rectangular shaped area that is comprised of one or more rectangular lines of text. If there are multiple line of text in a region, the lines do not overlap in the vertical direction. That is, starting with the top line, the bottom of each line is above the top of the next line. Here the regions may include headers, titles, columns and so forth. The headers may or may not straddle more than one column and so forth. The regions likewise include a plurality of pointers 120a-120e to each one of corresponding lines 130 shown in the data structure 130. The lines correspondingly have pointers 130a-130e to each of the words contained within the line.
As shown in conjunction with FIGS. 7-9, the detail structure of items 140, 130 and 120 include a plurality of fields. Thus, for example, FIG. 7 for the word includes the text field 142 which has the OCR generated text and has fields 143 and 144 which provide rectangular coordinate information x and y, respectively, as well as fields 145 and 146 which provide here height and width information. Similar data are provided for the lines as shown in FIG. 8 as well as regions as shown in FIG. 9.
Now to be described will be a preferred method 46' to determining the nearest word associated with the position of a mouse or other pointing device. This approach is particularly advantageous for those situations where dragging operations of a mouse are often performed. This approach also can be used with the true type font replaced representation. The image or true type font replaced representations may not provide an exact correspondence to the text as determined by the OCR recognition system. Also sometimes incorrect text is selected because the user does not precisely place the mouse or other pointing device directly on the desired item in the image or true type font replaced representations. Also, when the pointer is positioned in the white space between lines, or in the white space to the left or right of lines, choosing the closest word to the pointer will not always give the result that a computer user would normally expect, based on the behavior of mouse selection on standard computer text displays. Moreover, minor misalignments may also occur between the image or true type font replaced representations as displayed on the display and as provided by the OCR text file. Thus, for example, consider point 61c on Figure 11. In the method 46 previously described, the closest word, which is "OF" in the previous line, will be chosen as the selected word. But on standard computer displays the point of selection would be after the word "LAST" .
The approach as shown in conjunction with FIGS. 10A- 10C will tend to mitigate some of these errors.
Referring now to FIG. 10A, pointers are again initialized to a first one of the regions, as shown by step 180 and the coordinates of the region's boundary box are fetched at step 182 from the data structure 120. The position (X, Y) of the pointer is calculated to determine whether or not it falls within a box defining a region.
To further illustrate this process, reference is also made to FIG. 11 which shows a sample region containing a plurality of lines of image or true type font replaced representations text and boxes illustrated about the region, lines and word. Also three sample positions 61, 61a, 61b of the pointing device (not shown) are illustrated.
The calculation for a region is performed in a similar manner as for calculating a box for a word described in conjunction with FIGs. 5A to 5C except that the positional information contained within the region data structure 120 is used to determine a box or other boundary associated with the region. Coordinates (r6,s6) and (t6,u6) denote the imaginary box about the illustrated region in FIG. 11. If at step 186 it is determined that the coordinates of the pointer fall within the box (as 61 and 61a -61d, FIG 11) , then the process branches to determine the nearest line in step 201 (FIG. 10B) . Otherwise processing continues to step 187 to determine whether or not the process has reached the last region in the region data structure 120. If it has not reached the last structure the pointer is incremented in step 194 point to the next region in the data structure 120. If the process 46' has reached the last structure hence the coordinates of the pointer device do not point to any word, as 61, (FIG.11). Therefore, a previously determined word is used, and the process exits. If at step 186 it was determined that the coordinates fall within a region's box, then at step 201 a similar process is used to determine the nearest line except that the line data associated with the data structure 130 (FIG. 8) is used for positional information and index information such as coordinates (l4,m4) and (n4,o4) . Again for each line within the particular region, positional information is used to determine whether the coordinates of the pointing device are within a box defined about the line by the positional information associated with the line. If the coordinates of the positioning device fall above the box associated with the line as point 61a, then the software will choose the first word of the line here the word "TEXT" . If the coordinates fall above the bottom of the line box as point 61b, then the software branches to step 220.
As shown in conjunction with FIG. 10B, the software initializes a pointer to the top line in the region (at step 201) and fetches the coordinates of the line at step 202. The coordinates which are fetched correspond to the top and bottom coordinates of an imaginary box positioned about the line. At step 204 the software calculates to determine whether the Y coordinate of the pointing device is above the line. This is accomplished by comparing the value of the Y coordinate of the pointing device to the Y coordinate (m4)of the uppermost point defining the box about the line, as shown for point 61b. If at step 206 it is determined that the Y coordinate is above the box defined about the line, the software chooses the first word on line step 208 and is done. Otherwise, the software determines whether the Y coordinate is above the bottom of the box defining the line by using a similar approach as for the top of the line except using, for example, the coordinate (04) . If it is determined that the Y coordinate is equal to or above the bottom of the box defining the line, as point 61b then the software branches to step 220 (FIG. 10C) .
The X coordinate of the pointer is already known to be in the region and is not checked here. This allows for short lines to be detected. Lines are often shorter than the width of the region. For example, short lines may occur at the beginning and end of paragraphs or in text that is not justified to form a straight right margin. Otherwise, it continues to step 212 where it is determined whether the current line is the last line in the data structure 230. If it is not the last line in data structure 230, the pointer is incremented at step 216 to point to the next lower line in the region. If it is the last line in the data structure and the Y coordinate was not above the top of the line nor above the bottom of the line, the software chooses at step 214 the word after the word in the last line as for point 61c and is done.
Referring now to FIG. IOC, pointers are again initialized to a first one of the words on a line, as shown by step 220 and the coordinates of the word are fetched at step 222 from the data structure 140. The position X of the pointer is calculated to determine whether or not it falls at or to the left of the current word's right side at step 224 as for point 61a. This calculation is performed by comparing the X value of the pointer coordinate to the X value of the right side of the box defined about the word here coordinate a5 of point (a5,b5) . If the value of the X coordinate for the box is less than or equal to that of the X coordinate of the pointing device, then the pointing device is considered pointing to the left side of the word's right side. At step 226 it is determined whether the pointer points to the left side of the word's right side. If it does, the particular word "TEXT" is chosen for point 61d at step
227 and the process is done. Otherwise, at step 228, the process determines whether or not it has reached the last word in the data structure 140. If it has not reached the last word in the data structure 140 the pointer is incremented at step 234 to point to the next word to the right. If it has reached the last word in the data structure 140, the software at step 230 will choose the word after the last word in the line (not illustrated) and the process is done. The chosen word is forwarded on to steps 48 of FIG. 3. In this manner double highlighting, as described in conjunction with FIG. 5, and speech synthesis as described above are performed on the word chosen by this process.
Having described preferred embodiments of the invention it will be noted that other embodiments incorporating their concepts may be used. Accordingly, it is felt that the invention should not be limited to the disclosed embodiments but rather should only be limited by the spirit and scope of the appended claims.

Claims

What is claimed is :CLAIMS
1. A computer program product residing on a computer readable medium comprising instructions for causing a computer to: display an image representation of a scanned document on a computer monitor; selectively replace text image representations of the scanned document with text represented in a scalable, mathematically defined font; manipulate the displayed replaced scalable mathematically defined font representation of the document by using positional information associated with a converted text file generated by converting the image file representation of the document into the converted text file.
2. A computer program product residing on a computer readable medium comprising instructions for causing a computer to: accept an image file generated from optically scanning a document; convert an image file into a converted text file, the converted text file including text information and positional information associating text with the position of its image file representation; display the image representation of a scanned document on the computer monitor; selectively replace text image representations of the scanned document with text represented in a scalable mathematically defined font; and manipulate the displayed true type font representation of the document by using positional information in the converted text file.
3. The computer program as recited in claim 2 wherein said program further comprises instructions for causing the computer to: permit the user to select a document item from the displayed replaced image representation of the document; and apply the converted text representation of the document item to a speech synthesizer to cause the computer to output a synthesized speech representation of the document item.
4. The computer program as recited in claim 3 further comprising computer instructions for causing the displayed image representation of the document item to be: highlighted by applying a highlighting indicia to the displayed replaced image representation in accordance with positional information provided from the converted text file.
5. The computer program as recited in claim 3 further comprising computer instructions for causing the displayed image representation of the document item to be: highlighted with a color by applying a color to the displayed image representation in accordance with positional information provided from the converted text file.
6. The computer program as recited in conjunction with claim 3 wherein said instruction for causing the computer to apply the converted text further comprising instructions for causing the computer to: determine a word selected by the user.
7. The computer program as recited in conjunction with claim 6 wherein instructions to determine which word was selected by the user comprises instructions for causing the computer to: retrieve coordinates corresponding to the area of a display selected by the user; fetch coordinates of a first word in the converted text file; determine whether the coordinates of the location on the display fall within a box defined by locational data provided from the text file associated with the first word; if the coordinates identifying the location of the display fall within said box, outputting the word associated with said box to provide the synthesized speech representation of the word; if the coordinates do not fall within the box, determining the nearest word to said coordinates by determining for each one of the words contained in the data structure a displacement from the word to the coordinates .
8. The computer program as recited in conjunction with claim 7 wherein if the coordinates do not fall within a box, the nearest word is determined by computing a displacement from the coordinate of the location on the display to a consistent corner of each one of the words.
9. The computer program as recited in conjunction with claim 7 wherein if the coordinates do not fall within a box, the nearest word is determined by computing a displacement from the coordinate of the location on the display to the nearest corner of each one of the words.
10. The computer program as recited in conjunction with claim 9 wherein for each calculation provided for each one of the words, the displacement associated with a current word is compared to a displacement associated with a previous word and the smaller of the two displacements is retained for each subsequent calculation.
11. The computer program as recited in conjunction with claim 10 wherein the extracted text corresponds to the text having the smallest displacement from the coordinates corresponding to the position on the display.
12. A computer program residing a computer readable medium comprising instructions for causing a computer to: scan a document provided by a user on a scanner to form an image file; display on a computer monitor of a computer system a representation of a document by using the image file; convert the image file into a text file having text information and positional information; selectively replace text image representations of the scanned document with text provided by a scalable mathematically defined font; in response to a user using a positional device causing the computer to select a portion of the displayed scalable mathematically defined font representation of the document ; retrieve coordinate information corresponding to the position of a cursor provided as a result of the pointing device; search the retrieve coordinates to find coordinates corresponding to a nearest document item in the scalable mathematically defined font representation of the document ; apply highlighting to the nearest item; extract the text corresponding to the nearest item; synthesize from said extracted text, a speech pattern to provide an electrical signal to an audio transducer.
13. The computer program as recited in conjunction with claim 12 wherein instructions to determine the nearest word selected by the user comprises instructions for causing the computer to: retrieve coordinates corresponding to the area of a display selected by the user; fetch coordinates of a first word in the converted text file; determine whether the coordinates of the location on the display fall within a box defined by positional data provided from the text file associated with the first word; if the coordinates identifying the position of the display fall within the box, outputting the word associated with the box to provide the synthesized speech representation of the word; if the coordinates do not fall within the box, determining the nearest word to the coordinates by calculating for each one of the words contained in the data structure a displacement from the word to the coordinates .
14. The computer program as recited in conjunction with claim 13 wherein if the coordinates do not fall within a box, the nearest word is determined by computing a displacement from the coordinate of the location on the display to a consistent corner of each one of the words.
15. The computer program as recited in conjunction with claim 13 wherein if the coordinates do not fall within a box, the nearest word is determined by computing a displacement from the coordinate of the location on the display to the nearest corner of each one of the words.
16. The computer program as recited in conjunction with claim 13 wherein for each calculation provided for each one of said words, the displacement associated with a current word is compared to a displacement associated with a previous word and the smaller of the two displacements is retained for each subsequent calculation.
17. A reading system comprising: a computer, said computer comprising: a processor; a computer monitor for displaying the image representation of a scanned document; a scanner for scanning documents; and a mass storage device, said storage device including: software comprising instructions for causing the computer to accept an image file generated from optically scanning an image of a document on the scanner; convert the image file into a converted text file, said converted text file including text information, and positional information associating the text with the position of its representation in the image file; display the image representation of the scanned image on the computer monitor; selectively replace text image representations of the scanned document with text provided by a scalable mathematically defined font; permit a user to manipulate the displayed scalable mathematically defined font representation of the document by using the locational information associated with the converted text file.
18. The reading system of claim 17 further comprising : speakers for providing an audio representation of synthesized speech; and wherein the computer program further comprises instructions for causing the computer to: permit the user to select a document item from the displayed image representation of the document; and apply the converted text representation of the document item to a speech synthesizer to cause the computer to output a synthesized speech representation of the document item to the speakers.
19. The reading system of claim 18 wherein the computer program further comprises computer instructions for causing the displayed image representation of the document item to be: highlighted by applying a highlighting indicia to the displayed image representation in accordance with positional information provided from the converted text file.
20. A method comprising the steps of: converting an image file representation of the document into the converted text file; replacing text image representations of the scanned document with text represented in a scalable, mathematically defined font; manipulating the displayed replaced scalable mathematically defined font representation of the document by using positional information associated with the converted text file.
21. The method of claim 20 further comprising the step of : displaying text image representation of the scanned document on a computer monitor in the scalable, mathematically defined font.
PCT/US1998/024134 1997-11-12 1998-11-12 Reading system that displays an enhanced image representation WO1999024969A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU14021/99A AU1402199A (en) 1997-11-12 1998-11-12 Reading system that displays an enhanced image representation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US96864397A 1997-11-12 1997-11-12
US08/968,643 1997-11-12

Publications (1)

Publication Number Publication Date
WO1999024969A1 true WO1999024969A1 (en) 1999-05-20

Family

ID=25514554

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/024134 WO1999024969A1 (en) 1997-11-12 1998-11-12 Reading system that displays an enhanced image representation

Country Status (2)

Country Link
AU (1) AU1402199A (en)
WO (1) WO1999024969A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1858005A1 (en) * 2006-05-19 2007-11-21 Texthelp Systems Limited Streaming speech with synchronized highlighting generated by a server
US8913138B2 (en) 2012-12-21 2014-12-16 Technologies Humanware Inc. Handheld magnification device with a two-camera module
US9298661B2 (en) 2012-12-21 2016-03-29 Technologies Humanware Inc. Docking assembly with a reciprocally movable handle for docking a handheld device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500919A (en) * 1992-11-18 1996-03-19 Canon Information Systems, Inc. Graphics user interface for controlling text-to-speech conversion
US5509092A (en) * 1992-12-03 1996-04-16 International Business Machines Corporation Method and apparatus for generating information on recognized characters
US5623679A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500919A (en) * 1992-11-18 1996-03-19 Canon Information Systems, Inc. Graphics user interface for controlling text-to-speech conversion
US5509092A (en) * 1992-12-03 1996-04-16 International Business Machines Corporation Method and apparatus for generating information on recognized characters
US5623679A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1858005A1 (en) * 2006-05-19 2007-11-21 Texthelp Systems Limited Streaming speech with synchronized highlighting generated by a server
US8913138B2 (en) 2012-12-21 2014-12-16 Technologies Humanware Inc. Handheld magnification device with a two-camera module
US9298661B2 (en) 2012-12-21 2016-03-29 Technologies Humanware Inc. Docking assembly with a reciprocally movable handle for docking a handheld device

Also Published As

Publication number Publication date
AU1402199A (en) 1999-05-31

Similar Documents

Publication Publication Date Title
US5875428A (en) Reading system displaying scanned images with dual highlights
US6052663A (en) Reading system which reads aloud from an image representation of a document
US6137906A (en) Closest word algorithm
US6199042B1 (en) Reading system
US5999903A (en) Reading system having recursive dictionary and talking help menu
US8588528B2 (en) Systems and methods for displaying scanned images with overlaid text
US5350303A (en) Method for accessing information in a computer
EP0762298B1 (en) Translation display apparatus and method
US5581752A (en) Electronic document retrieval and display system and method of retrieving electronically stored documents
US5327342A (en) Method and apparatus for generating personalized handwriting
US6256610B1 (en) Header/footer avoidance for reading system
EP0609996A2 (en) Method and apparatus for creating, indexing and viewing abstracted documents
JPH05233630A (en) Method for describing japanese and chinese
KR910003523A (en) Document data processing method using image data
JPH05151254A (en) Method and system for processing document
US6140913A (en) Apparatus and method of assisting visually impaired persons to generate graphical data in a computer
WO1999024969A1 (en) Reading system that displays an enhanced image representation
JP6731011B2 (en) Device for creating data for displaying electronic books
JPH0630107B2 (en) Document processor
JPS61240361A (en) Documentation device with hand-written character
EP0631677B1 (en) Method of and apparatus for storing and displaying a document
JP2901525B2 (en) Character creation method
JP2003167503A (en) Electronic learning machine, learning support method and computer readable recording medium with program for carrying out learning support method recorded thereon
JPH10240120A (en) Device and method for finger language learning and finger language learning data storage medium
JPH0934890A (en) Handwritten character input device and kana/kanji conversion method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
NENP Non-entry into the national phase

Ref country code: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: CA

122 Ep: pct application non-entry in european phase