System for speaking hypertext documents such as computerized help files

Abstract: A system for speaking structured files such as computerized help files thereby reducing the amount of on-screen clutter and allowing an operator to receive help while simultaneously viewing the screen generated by a computer application program. In response to commands to process such files, a help engine is instantiated and, in accordance with parameters set by the operator, is set to give spoken help and/or visual help. When giving spoken help, hypertext links to other topics in the structured file are detected and stored, and in response to operator commands, the help engine jumps to those other topics and begins speaking the jumped-to topic. Likewise, as the help file is spoken, the hierarchical structure, if any, of topics in the file is detected and stored and in response to operator commands the help engine jumps to specified topics. Preferably, as the hypertext links and the hierarchical structure are spoken, they are spoken with aural cues such as a voice that is different from the voice used for the remainder of the topic. When other topics are jumped to, those other topics may be spoken in the same voice or in the different voice so as to assist the operator in navigation through the file.

Description: The present invention concerns a computerized system for speaking hypertext documents, i.e. a document containing embedded links to other locations in the document, such as a computerized help file which contains embedded links to multiple help topics. More particularly, the system concerns a system for providing spoken help information in response to a computer operator's request for help with an application program such as a word processing program or other information processing program. With increasing sophistication, complexity and capabilities of computer application programs such as word processing programs and other information processing programs, more and more attention has been focused on providing users of those application programs with on-demand (or on-line) help. It is now common, for example, for computer application programs to designate a special key such as a "F1" key which, when depressed during execution of the application program, will provide the operator with help concerning the application program. Help ordinarily consists of textual information which is stored in a hypertext file of help topics and which is retrieved from that file by a separate computer program, normally called a "help engine", and displayed in text form on the computer screen. Such an operation is disclosed in the Microsoft Professional Toolkit for Visual Basic-Help Compiler Guide 1992 pp 1-71. A disadvantage of displaying help information on the computer screen is that the help information obstructs the operator's view of the application program. More particularly, an operator ordinarily requires help while in the middle of executing a software task in conjunction with the application program. Help therefore is requested when the computer's screen is displaying information with which the operator needs help. But when the help information is displayed on the screen, it obstructs the operator's view of the application program with which he needs help, making it difficult to implement the information provided by help. Commonly the operator must read the help text, clear the screen of that text, and then try to remember what it said. It is disclosed in an article entitled "Auditory versus Visual Presentation of Help Messages" (Proceedings of the Human Factors Society 35th Annual Meeting, Volume 1, 6th September 1991, San Francisco, CA US, pages 224 to 248, P A Savage et al ), that help messages can be presented orally on telephone sets as well as presented visually on the telephone sets equipped with display screens. In an article entitled "Audio Help for Computer Users" (Research Disclosure RD263002, 10th March 1986, Havant GB, anonymous) there is disclosed a computer based system where a user can access help information visually and/or audibly. The presentation of help information in audio form can supplement or replace the presentation of the same or similar information in the screen. In accordance with the first aspect, the present invention provides a method of processing a hypertext help file of topics, at least some of the topics including text and at least one hypertext link to a jump topic, the method comprising the steps of: receiving a request for a first topic of the hypertext help file of topics; generating speech serially for the text in the first topic; accessing a jump topic specified by a said hypertext link in response to a user jump command; and generating speech serially for the text in the jump topic; characterised by the step of: generating speech for the or each hypertext link when encountered during the serial speech generation of the text and generating an aural cue so as to indicate that a hypertext link and not text is being spoken. In accordance with a second aspect, the present invention provides an apparatus for processing a hypertext help file of topics, at least some of the topics including text and at least one hypertext link to a jump topic, the apparatus comprising: receiving means for receiving a request for a first topic of the hypertext help file of topics; speech generation means for serially generating speech for the text in the first topic; and accessing means for accessing a jump topic specified by a said hypertext link in response to a received user jump command; wherein said speech generation means is adapted to generate speech serially for the text in the jump topic; characterised in that: said speech generation means is adapted to generate speech for the or each hypertext link when encountered during the serial speech generation of the text and to generate an aural cue to indicate that the hypertext link and not the text is being spoken. Embodiments of the present invention will now be described with reference to the accompanying drawings; in which: Figure 1 is a perspective view showing the outward appearance of an apparatus according to an embodiment of the invention. Figure 2 is a block diagram of the Figure 1 apparatus. Figure 3 is a view for explaining a hierarchically-ordered hypertext file of topics. Figure 4 is a functional block diagram for explaining operation of the visual and spoken help engine according to an embodiment of the invention. Figure 5 is a representative screen display showing a user interface with the help engine. Figure 6 is a flow diagram for explaining operation of an embodiment of the invention. Figure 1 is a view showing the outward appearance of a representative embodiment of the invention. Shown in Figure 1 is computing equipment 10 such as an IBM PC or PC-compatible computer having a Microsoft® Windows windowing system and provided with a display screen 11 such as a color monitor and an internal speaker 12. Computing equipment 10 includes a mass storage device such as computer disk drive 14 for storing data files for application programs, such as bit map image files, text files, sound files, animation files and digital motion video files, in compressed or uncompressed format, as well as for storing the application programs themselves such as a word processing application program or other information processing programs which contain stored program instruction steps by which computing equipment 10 manipulates the data files and presents data in those files to an operator via display screen 11 or speaker 12. Although an IBM PC or PC-compatible computer with Windows windowing system is shown, any suitable general or special purpose computer with any appropriate operating system may be used instead. Keyboard 15 is connected to computing equipment 10 to permit input of text data and to permit operator selection and manipulation of objects displayed on display screen 11. Likewise, pointing device 16 such as a mouse or the like is connected to permit selection and manipulation of objects on the display screen. Microphone 17 permits inputting audio information. Computing equipment 10 is also generally provided with various input and output peripherals. Shown here are digital scanner 18 and printer 19, although other devices may also be used such as CD-ROMs, an interface to a network or other external source of data such as a modem or facsimile, a removable floppy disk drive, or a motion video or interface for inputting frames of analog video information. In accordance with operator instructions, stored application programs are activated and permit processing and manipulation of data. For example, a word processing program may be activated to permit an operator to create, view, manipulate and print documents which may contain objects such as text objects, bit map objects, computer graphic objects, motion video objects and the like. Other application programs such as spreadsheet programs and similar information processing programs may further be provided on disk 14 for operator selection and use. Also stored on disk 14 is a help engine which is an application program used in conjunction with other application programs. More specifically, when help is requested by an operator, the computing equipment instantiates the help engine which provides the operator with on-demand help information. The help engine provides help to the operator in accordance with a hypertext file of help topics which is also stored on disk 14, generally, one hypertext help file for each application program. The help engine is arranged so that it may be set by the operator into different modes to provide visual help and/or spoken help. When providing visual help, the help engine displays text from the hypertext files on display screen 11; likewise, when providing spoken help the help engine speaks the hypertext files over speaker 12. Figure 2 is a detailed block diagram showing the internal construction of computing equipment 10. As shown in Figure 2, computing equipment 10 includes a central processing unit (CPU) 30 such as an 80386 or a reduced instruction set computer (RISC) interfaced to computer bus 31. Also interfaced to computer bus 31 is display 11, disk 14, keyboard 15 and mouse 16. Scanner and printer interfaces 32 and 34 are provided for interface to scanner 18 and printer 19, respectively, and other interfaces 35 are provided for interface to modems, networks and the like. Audio interface 33 is provided for interfacing with microphone 17 and speaker 12. A conventional text-to-speech converter is provided at 37. The text-to-speech converter 37, which may also be implemented in software, interprets text strings sent to it and converts those text strings to audio speech information. The text-to-speech converter 37 provides the audio speech information to speaker 12 for enunciation to the computer operator. Main memory 36 interfaces to computer bus 31 so as to provide random access memory storage for use by CPU 30. In particular, when executing stored program instruction sequences such as application programs or the help engine, CPU 30 loads those instruction sequences from disk 14 (or other memory storage medium where they are stored) into main memory 36 and executes those stored program instruction sequences out of main memory 36. Figure 3 is a view for explaining one possible organization of a hypertext file of help topics, and Appendix A is an exemplar of such a file. In this example, the hypertext file is ordered hierarchically with three different hierarchical levels, but it is to be understood that a flat (or single level) hypertext file is also usable. As shown in Figure 3, the hierarchy contains three different levels, namely primary level 40, secondary level 41, and topic level 42. These levels are for illustrative purposes only and different numbers of levels (including just one) and a different hierarchical structure may be implemented. For the three-level strucrue of Figure 3, plural subjects 44 are indicated at the primary level. Each of those subjects, in turn, has a number of topics 45 included therein as listed at the secondary level 41. Each of those topics, in turn, has text information as indicated at 46. Information at topic level 42 is primarily text information designed to give the operator assistance during execution of the application program. Other information may also be included at the topic level and, customarily, information such as bit map images may also be included as desired. Information at the primary and secondary levels is primarily designed to define the hierarchical structure of the help file, but it may also include some textual information. Thus, as shown in Appendix A, subject level information which corresponds to secondary level 41, includes text information such as "The following topics are covered in this section" which provides an indication of the hierarchically ordered topics which are to follow. Hierarchical links 43a connect primary level 40 to secondary level 41, and hierarchical links 43b connect secondary level 41 to topic level 42. Only some of links 43b have been depicted, but it is understood that a hierarchical link connects each topic heading in secondary level 41 to its associated topic listing in topic level 42. Whatever number of hierarchical levels are included, the help file includes imbedded hypertext links which link one area of the file to another. Hypertext links may include links to the beginning of other topics, or they may include links to any location in the file. The hypertext links ordinarily originate from the body of the topics and key into another topic called the "jump" topic. Some hypertext links are depicted at 47a, b and c, but it is to be understood that these depicted links are illustrative only and more or fewer links may be provided as needed. Two types of jumps using the links are provided: a return-type jump and a transfer-type jump. A return-type jump allows an operator to use the help engine to temporarily jump to another topic and then return to the jump-off point when the other topic is finished. Typically, a return-type jump is used to obtain a definition of terms, and after the definition is provided the help engine returns to the topic from which the definition was requested. A transfer-type jump, on the other hand, does not return to the topic from which the jump originated, but rather remains in the jumped-to topic. Thus, referring for example to Appendix A, topic number 12 ("Stack") is a return-type jump topic and after processing of that topic is complete, processing reverts to the topic from which the "Stack" topic was jumped from. On the other hand, topic number 4 ("Preventing Stack Overflow") is a transfer-type jump topic and processing does not revert to another topic unless operator intervention is encountered. While as described above return-type jumps are used for short, footnote-like explanations, and transfer-type jumps are used for longer, more involved topics, size alone is not determinative, and it is possible to use transfer-type jumps for short topics and return-type jumps for extensive explanations. Figure 4 is a functional block diagram of a help engine in accordance with an embodiment of the present invention. As shown in Figure 4, help engine 50 operates generally to retrieve help topics from hypertext help file 40 and, when in the spoken help mode, to speak them via text-to-speech interface 37 and, when in a visual mode, to display them via display 11. When in both a spoken and visual mode, both of these actions occur. The topics that are retrieved from the hypertext file are selected by the operator in accordance with manipulation of keyboard 15 or graphic user interface 51. The initial topic, however, may be set by the application program which instantiates the help engine. In more detail, when help is requested from within the application program 52, the application program instantiates help engine 50 and at the same time designates the current context of the application. The context, which may simply be a context number, is related to the current focus of the application, for example, a particular task that the operator is executing. The context is passed to context detector 53 within the help engine which retrieves the appropriate topic via topic retriever 54. The retrieved topic is spoken and/or displayed in accordance with the current mode of the help engine. As topics are retrieved by topic retriever 54 and spoken and/or displayed, both hierarchical and hypertext jump topics are detected and stored in lists 55 and 56, respectively. In the spoken help mode, the hierarchical and hypertext jump topics are spoken with an aural cue to the operator such as by speaking with a voice that differs from the remainder of the topic; in the visual mode the hypertext and hierarchical jump topics are displayed with visual cues, for example, by single or double underlining or with different colors or fonts. Figure 5 is a view of a computer-generated control panel displayable in a graphical user interface in connection with the help engine. Using controls indicated at 51a, it is possible to jump to one of the hypertext or hierarchical jump topics in lists 55 and 56, as described in more detail below. Using controls indicated at 51b, the operator may control the processing of text within a topic, for example, by skipping backward or forward through sentences or paragraphs. Using controls indicated at 51c, it is possible to change to different hierarchical levels in response to which the help engine speaks and/or displays the index at the new level. Finally, using controls at 51d, it is possible to change the text-to-speech parameters such as the speed or volume of the text-to-speech conversion. In some applications, the control panel of Figure 5 need not be displayed, and it is possible to provide user control over the help engine via other means such as keyboard control or speech recognition of spoken commands. Figure 6 is a flow diagram illustrating operation of the help engine according to an embodiment of the invention. In step S601, an application program such as an information processing program is executed, and execution of that program continues until step S602 in which a request for help is issued by the operator. In step S603, the help engine is instantiated. The help engine may be instantiated in either visual or spoken mode, or both modes, as set by the operator in step S604. In step S605, the help engine selects the initial help topic. The initial selection may be made in accordance with context passed to the help engine by the application program, or it may be selected by other means, for example, by operator selection or by a default setting such as the primary level 40 in the hierarchical help file. In step S606, in accordance with the selected spoken/visual mode, the help engine begins speaking and/or displaying the selected help topic. If a hierarchical link is encountered while speaking the help topic (step S607), then in step S608 the hierarchical link is stored in list 55 and in step S609 an aural cue is given to the operator by changing the voice parameters for the text-to-speech converter so as to speak the hierarchical link in a voice (pitch, intonation, etc.) distinguishable from the remainder of the topic. Likewise, if a hypertext link is encountered (step S610), then in step S611 the hypertext link is stored in list 56 and in step S612 an aural cue is given to the operator by changing voice parameters of the text-to-speech converter so as to speak the hypertext link in a voice that is different than the remainder of the topic. In step S613, the help engine determines whether a user command has been entered via keyboard 15 or graphical user interface 51. If no user commands have been entered, then flow advances to step S614 where the help engine determines if an end of topic has been encountered. If the end of topic has not been encountered then flow returns to step S606 where the help engine continues to speak and/or display the topic. On the other hand, if end of topic has been reached, then flow returns to step S613 where the help engine waits for operator input. Alternatively, though not shown, if end of topic has been reached, the help engine may begin to process the next sequential topic and continue on through to the end of all the topics in the current hierarchical level, whereafter flow returns to step S613. When an operator command is detected in step S613 then flow advances to steps S615 through S631 where the help engine analyzes the operator command and takes the appropriate action. More specifically, if in step S615 the help engine detects a command to jump to a hypertext topic then flow advances to step S616 in which the help engine jumps to the last hypertext topic stored in list 56. If the hypertext jump is a transfer-type jump, then in step S617 the help engine changes the current topic and flow returns to step S606 to speak the topic. On the other hand, if the jump is a return-type jump, then in step S618 the help engine speaks the selected topic and then reverts back to the jumped-from topic to complete speaking that topic. Preferably, for a return-type jump, the voice in which the topic is spoken is the same as the voice in which the topic name was enunciated to the operator. It is also preferable to return to the jumped-from topic not from the point at which the jump was made but rather from the beginning of the sentence from which the jump was made. If the help engine did not encounter a hypertext jump command in step S615, then flow advances to step S620 in which the help engine determines whether a hierarchial jump command has been issued. If a hierarchical jump command has been issued, then flow advances to steps S621 through steps S626 so as to process the hierarchical jump command. More specifically, if in step S621 the operator selects a particular topic that is being read from a list of hierarchical topics, then in step S622 the topic is changed to the selected topic and flow returns to step S606 to speak/display the topic. Selection in step S621 may be made in accordance with an operator indication to select the most recently read topic from the list (for example, by clicking a button on mouse 16) or selection may be made in accordance with a number associated with a list of topics. In this latter case, topics are spoken/displayed sequentially from a list of hierarchical topics and the operator may select any one of those topics at any time (and not just immediately after the topic is spoken and/or displayed) by entering the appropriate number of the topic. If the operator is not selecting a hierarchical topic in step S621, but in step S623 is selecting the next and/or previous topic via the graphical user interface, then in step S624 the next or previous topic, as stored in list 55, is selected in step S624 and flow returns to step S606 where the topic is spoken and/or displayed. If next/previous topic processing is not selected in step S623 but previous level processing is selected in step S625, then in accordance with the hierarchical list stored in list 55 the previous topic level is selected in step S626 and flow returns to step S606 to speak the list of topics in that level. If a hierarchical jump command is not received in step S620, then in step S627 if the operator has input topic repositioning commands then those commands (step S628) are executed and flow returns to step S606 to continue speaking the topic from the repositioned position. If a topic repositioning command is not received in step S627, but in step S629 a command to close help is received, then in step S630 the help engine is closed down and in step S631 CPU control reverts to the application program 62 which originally instantiated the help engine. The following is an example of help engine processing in accordance with the hierarchically ordered hypertext topic file shown in Appendix A. The purpose of this example is to show the effects of flow processing in accordance with the navigation commands provided by the graphical user interface 51 and to show how differing voice output can provide an operator with aural cues which define the document structure and which change in accordance with that structure. For purposes of this example, different voices are indicated by the following different text styles: For purposes of this example, it is assumed that the help engine is instantiated to begin speaking the Appendix A help file commencing from the primary level hierarchical structure. As described above, however, the help engine may be instantiated to begin speaking the help file from a topic defined by the context of the application program which instantiates the help engine. Using the above key, the help engine commences speaking the help file commencing with topic number 1, primary hierarchical level, as follows (step numbers from Figure 6 have been inserted at the left margin): Instead of this last step ("<stop until further operator input>"), and as mentioned above, it is possible in the alternative to continue speaking with the next sequential topic and in the absence of operator input continue speaking until all topics in the current hierarchical level have been spoken. The above example is representative only, and the scope of the invention should not be measured against the example but rather should be measured against the appended claims.

Claims: A method of processing a hypertext help file of topics, at least some of the topics including text and at least one hypertext link to a jump topic, the method comprising the steps of: receiving a request for a first topic of the hypertext help file of topics; generating speech serially for the text in the first topic; accessing a jump topic specified by a said hypertext link in response to a user jump command; and generating speech serially for the text in the jump topic; characterised by the step of: generating speech for the or each hypertext link when encountered during the serial speech generation for the text and generating an aural cue so as to indicate that a hypertext link and not text is being spoken. A method according to claim 1, wherein the aural cue comprises the generation of speech for the or each hypertext link in a second voice which is different from a first voice generated for the text in the first or jump topic. A method according to claim 1 or claim 2, including optionally displaying the text and the or each hypertext link of the topic for which speech is being generated. A method according to claim 3, wherein the steps of claim 3 are implemented by a help engine, the method further comprising the steps of: executing an application program which includes operator-invocable commands to execute the help engine which is settable to provide any one of speech generated help, displayed help, and both speech generated and displayed help; and instantiating the help engine in response to operator commands. A method according to claim 4, further comprising the step of passing context of the application program to the help engine, where speech is generated for topics and optionally topics are displayed commencing with the context passed from the application program. A method according to claim 4 or claim 5, further comprising the step of displaying a graphic user interface by which the help engine is controlled. A method according to claim 6, wherein the hypertext help file is arranged hierarchically, and wherein the graphic user interface includes a set of processing commands to process the hierarchical levels of the hypertext file. A method according to claim 7, wherein the set of processing commands includes commands to jump to different topics. A method according to claim 7, wherein the set of processing commands includes commands to jump to different levels. A method according to claim 7, wherein the set of processing commands includes commands to reposition the speech generator and optional display of the topic. A method according to any preceding claim, further comprising the step of storing one of said at least one hypertext link. A method according to claim 11, further comprising the step of accessing the topic specified by the stored link in response to user jump commands and generating speech for the jump topic. A method according to claim 12, further comprising the step of returning to the jumped-from topic at the conclusion of the jump topic. A method according to any preceding claim, wherein the hypertext file is arranged hierarchically, and further comprising the step of detecting and storing the hierarchical structure of topics. A method according to claim 14, further comprising the step of jumping to different topics in the stored hierarchical structure in accordance with operator commands. A method according to claim 14, further comprising the step of generating speech for the stored hierarchical structure of topics. A method according to claim 16, further comprising the step of jumping to a selected one of the spoken topics. A method according to any preceding claim, further comprising the steps of, while in the jump topic accessing a second jump topic specified by another of said at least one hypertext link in response to a second user jump command. A method according to any preceding claim, further comprising the step of returning to the first topic at the conclusion of the generation of speech for the jump topic. A method according to any preceding claim, further comprising the step of detecting context wherein the first topic is context dependent. A method according to any preceding claim, further comprising the step of displaying a graphical user interface by which an operator may issue jump commands. A method according to claim 21, wherein said graphical user interface receives commands to reposition speech generation for the topic. Apparatus for processing a hypertext help file of topics, at least some of the topics including text and at least one hypertext link to a jump topic, the apparatus comprising: receiving means for receiving a request for a first topic of the hypertext help file of topics; speech generation means for serially generating speech for the text in the first topic; and accessing means for accessing a jump topic specified by a said hypertext link in response to a received user jump command; wherein said speech generation means is adapted to generate speech serially for the text in the jump topic; characterised in that: said speech generation means is adapted to generate speech for the or each hypertext link when encountered during the serial speech generation of the text and to generate an aural cue to indicate that a hypertext link and not text is being spoken. Apparatus according to claim 23, wherein said speech generation means is adapted to generate speech for the or each hypertext link in a second voice which is different from a first voice generated for the text in the first or jump topic, so as to provide the aural cue to indicate that a hypertext link and not text is being spoken. Apparatus according to claim 24, comprising a processor for executing processor implementable instructions, said processor being adapted to implement processor implementable instructions to execute an application program which includes operator invocable commands to execute a help engine which is settable to provide any one of speech generated help, displayed help, and both speech generated and displayed help, said help engine comprising said receiving means, said speech generation means, said accessing means, and said display control means. Apparatus according to claim 25, wherein said processor is adapted to pass context of the application program to the help engine, and the help engine is adapted to commence speech generation for topics and optionally display topics with context passed from the application program. Apparatus according to claim 25 or claim 26, wherein said processor is adapted to generate a graphic user interface for the control of the help engine. Apparatus according to claim 27, wherein the hypertext help file is arranged hierarchically, and the processor is adapted to implement the graphic user interface to include a set of processing commands to process the hierarchical levels of the hypertext files. Apparatus according to claim 28, wherein the processor is adapted to implement the graphical user interface to include commands to jump to different topics. Apparatus according to claim 28, wherein the processor is adapted to implement the graphical user interface to include commands to jump to different levels. Apparatus according to claim 28, wherein the processor is adapted to implement the graphical user interface to include commands to reposition the speech generation and optional display of the topic. Apparatus according to any one of claims 23 to 31, further comprising means for storing one of said at least one hypertext link. Apparatus according to claim 32, wherein said help engine is adapted to access the topics specified by the stored link in response to user jump commands and to generate speech for the jump topic. Apparatus according to claim 33, wherein said help engine is adapted to return to the jumped-from topic at the conclusion of the jump topic. Apparatus according to any one of claims 23 to 34, wherein the hypertext file is arranged hierarchically, and said help engine is adapted to detect and store the hierarchial structure of topics. Apparatus according to claim 35, wherein said help engine is adapted to jump to different topics in the stored hierarchical structure in accordance with operator commands. Apparatus according to claim 36, wherein said help engine is adapted to generate speech for the stored hierarchical structure of topics. Apparatus according to claim 37, wherein said speech engine is adapted to jump to a selected one of the spoken topics. Apparatus according to any one of claims 23 to 38, wherein said speech engine is adapted to, while in the jump topic, access a second jump topic specified by another of said at least one hypertext link in response to a second user jump command. Apparatus according to any one of claims 23 to 39, wherein said help engine is adapted to return to the first topic at the conclusion of the generation of speech for the jump topic. Apparatus according to any one of claims 23 to 40, wherein said help engine is adapted to detect context wherein the first topic is context dependent. Apparatus according to any one of claims 23 to 41, wherein said processor is adapted to display a graphical user interface by which an operator may issue jump commands. Apparatus according to claim 43, wherein said processor is adapted to implement said graphical user interface to receive commands to reposition speech generation for the topic. A storage medium storing program instructions for controlling a processor to carry out the method of any one of claims 1 to 22. Processor implementable program instructions for controlling a processor to carry out the method of any one of claims 1 to 22.

Inventors: KODIMER MARIANNE L, TULLIS THOMAS S, KODIMER, MARIANNE L., TULLIS, THOMAS S.
Applicants: CANON INFORMATION SYST INC, CANON INFORMATION SYSTEMS, INC.
Application year: 1994
Main classification: G06F9
IPC codes: G10L13, G06F3, G06F9, G06F12