Method for expanding in friendly manner the functionality of a portable electronic device and corresponding portable electronic device7036130Abstract The invention relates to a method of expanding the functional capabilities of portable electronic devices with user friendly modes, wherein a host device is associated a quick-connect function-expanding module. In this method, at each installation of a given module, the functional expansion module and the host device recognize each other; on first installation of a given module in the host device, a series of checking operations are carried out automatically; the user can select to activate the available expansion; and once a given application is selected, the configuration and functions required for each application are stored. Claims The invention claimed is: Description BACKGROUND OF THE INVENTION
Information may be stored in the system, such as the configuration characteristics, the "vocabularies of functions" for each application, and the current state of each activated application. Each step of the method according to the exemplary embodiment of the present invention will now be described in detail. Initially, it is assumed a starting state in which the expansion module 8 is plugged into or quick connected to the host device 1 so as to form a whole or unitary device. The plugging in action, Step F1 in FIG. 1, activates an "activate" procedure in the operating system of the host device 1, by reading a (high/low) logic signal from predetermined pins of the connected module 8. This logic signal will activate a portion of the operating system to check for the presence of any programs and/or applications in a pre-set memory space reserved for expansion boards. For example, in the Handspring Visor palm-top computer, using the Palm OS operating system, there are two signals to indicate connection of an expansion board and perform two functions: entering an interrupt to the palm-top computer to warn the CPU of the connection made, and activating the power supply to the board for its operation. At the same time as the application is activated by the operating system of the host device 1 (Step F2), the components inside the expansion module 8 may be also activated, and are now ready to implement the application. In the context of the above example, the operating system may, upon insertion of the module 8 or the board 15, search out an application having given characteristics in the memory space reserved for the board 15 (Step F3). If such an application does exist, the current execution is interrupted and the board application is executed instead. The application would contain the necessary procedures to activate the board components and set them for use by the palm-top computer device 1. The presently active application may either start reading from the memory space in the host computer 1, or request from the host operating system a list of the applications that are resident in the host device 1, as specified under Step F4 in FIG. 1. A list of the resources associated with each available application can thus be obtained (graphic objects such as forms, buttons, etc.), and the items of information that the expanded application can utilize be derived. Steps F5 and F6 are exemplary of operations directed to verify the functional expansion mode and define the mode of interfacing the module 8 to the device 1, respectively. For example, when a form is identified which carries a heed message ("Wish to confirm the operation?"), and a possible confirmation ("OK"), a voice synthesizing system acquires the information provided by the contents of the message, and a vocal command system acquires the information about the confirmation to be given. These items of information will be entered in a table, herein referred to as the "vocabulary" of correspondence between the resources used by the application and the operations demanded of the extension module 8, Step F7. Furthermore, some software algorithms will have to be set up which would detain requests from the operating system and once again send the request for action to the extension module 8, or conversely detain an action by the extension module 8 and notify the operational system of the action performed as if the latter had been executed by a "proprietary" software portion. After checking with all the applications that are present in the system (Steps F5, F6 and F7) and creating a table of correspondence for each application whose functions can be "expanded" by the installed module, the system will be as specified here below. The expansion module 8 may include a load-and-connect program for loading into and connecting to the host system 1; an expansion board checking program; and an API (Application Programming Interface) for the board 15 to dialog with the operating system of the host device 1. The host device 1 may include tables of correspondence between the applications and the commands from the installed device; and an operational system patch or path for detaining the functions to be expanded. A message or a light indication on the board 15, or alternatively a symbol appended to the application symbol on the main page, may inform the user that the extension is available, Step F8. Once a program affected by the expansion is activated, the module 8 connected to the portable device 1 may be activated to make it ready to perform the functions requested, Step F9. On completion of the application, or upon the board 15 and/or the module 8 -being removed, certain operations will be performed to save the current state of the system, so that the application can be restored immediately upon the board 15 being inserted back into device 1 and the information about the vocabularies of correspondence can be saved, Step F10. The modes of connecting and operating a speech recognition module 8 will now be discussed, by way of example only, which module 8 would be associated with a Handspring Visor model of palm-top computer in which a Palm OS™ operating system is installed, and which can accommodate additional-function boards 15 by means of a mechanical/electrical connection (springboard expansion slot) that is physically identical with a PCMCIA connection located on the backside of the device 1. The following are among the signals that best characterize this connection between the board 15 and the device 1: CD1, CD2—Module Detects: these are connection detectors indicating to the palm-top computer that a board 15 has been inserted into the expansion slot; CS0, CS1—Chip Selects: these control access to the two addressable regions that the expansion board 15 can use; and IRQ—Interrupt Request: a signal that issues from the board when services are requested of the palm-top computer device 1. Available for use with the expansion module 8/device 15 may be an API (Application Programming Interface) that enables operation on the host operating system of the subject computer. This API may be effective to manage the board installation, activation of any resident applications, and events originated by the board. Assume, for exemplary purposes, a voice recognition board 15 that can run the recognition steps by itself and is provided with a compatible connection with the above palm-top computer 1. Referring to FIG. 3, this board 15 may include: a non-volatile memory 16, such as a flash type, containing the board set-up programs and the necessary APIs for dialog with the host computer 1; stored in a database may be voice features and optional tables of correspondence for the principal applications; a volatile working memory 17, such as a RAM; a speech recognition core unit 18; an interrupt control block 19; a data acquisition unit, such as a microphone line 20 and associated pre-processor 21; and I/O interfacing devices 12 (USB, 12C). Stored in the resident non-volatile memory 16 of the board 15 may be substantially all the voice recognition activating procedures, which may be activated and made available upon inserting the board 15 into the expansion slot. The activating procedures may include: an FPGA loading and activating procedure, in order to set up the connections and protocols between the computer 1 and the board 15; a voice recognition system activating procedure to set up the system, by placing it in a standby state, and activate the system as requested; an interrupt managing procedure to read the tables of correspondence between the voice commands and the software actions, and activate these actions; and a control procedure effective to manage the above software components and guide their respective activation through the various steps. Consider, for example, the Palm OS™ operating system that is resident in the palm-top computer. This operating system is host to several applications. Using suitable software modules, its characteristics related to the user interface can be extracted for each application held in the computer. These characteristics can be represented by their associated resource modules. Resources modules hear those software portions that are preset by the operating system and interact with the user through the input/output units. Given below is an example of an application resource:
Using a suitable instruction sequence, the above resources are detained by the program that is to set the table of correspondence for the voice recognizer. Those resources that can be supplied a corresponding vocal command (in the above example, these are the resources designated BUTTONS, in other cases, these may be elements in a list) are then identified. According to resource type, a patch of needed software functions to emulate the resource is constructed, and an item in the table of specific correspondence of the current application is created which would encompass the construction of each resource. FIG. 5 illustrates this kind of match in table form. Upon inserting the board, the following actions may take place in the expansion slot of the palm-top computer. Once the module detect signals (CD1, CD2) that attest of the insertion are detained, the Palm OS™ operating system searches the first block (identified by signal CS0) for availability of a memory space that is reserved for the expansion board, and searches for the presence of any applications. After finding out an application concerning the word recognizer setup, the operating system may copy that application into the internal memory, and executes its contents. A search may be also started among the resident applications to find out those having a table of correspondence already available. According to the configuration of given parameters effected by the user, the system may now be able to scan the other applications to make them available for guiding by vocal commands, initializing fresh tables of correspondence. To activate an application, the system may generate an activation request to the expansion module, supply pertinent data. The module may also set up to receive a vocal command. If the command is recognized, the module 8 may return to the system the index (in the table of correspondence) of the word that has been recognized. The detention algorithm may then produce commands as appropriate to the context of the current application. If another application is called, the databases associated with the preceding application are closed, with the state of the preceding application being optionally saved, and the procedure is resumed from activating the application as described above. In the instance of a module 8 that is designed to expand the functions of a basic electronic device 1 in terms of vocal command acquisition, a range of possible sceneries for the implementation of an interface between the module 8 and the device 15 are discussed here below by way of examples only. Consider a module 8 that is attached to a generic portable device 1 and contains a series of standard applications not to be modified by the user. Assume, moreover, a group of modifiable applications, i.e. suitable applications for expansion. A software interface may include the acquisition of a database of necessary commands to the expansion; a connection channel to the device 1; and an acquisition system. A review of a number of terms may be useful to make the aspects of the embodiments of the present invention more clearly understood, as they appear in this exemplary application. A "context", in the portable device environment, encompasses what the user is able to perceive, such as display icons, LEDs, or other signals, and the group of commands that are available at the time, whether vocal commands or commands of a different nature, together with a respective group of feasible actions. A "microcontext" means a state of the application present in the context, within which only some of the actions in the group provided are feasible. A "feedback" means executing a command, for example, in the event of the message being rejected or not recognized by the device (as well as of a message being returned which is not included in the database or is inconsistent with the current microcontext), no actions would be executed. "Grammar" means the body of commands available for the applications. An active grammar is a sub-set of necessary commands in a given context, and comprises a group of general (noncontextual) commands and a group of specific commands for a given application. These groups of commands are contained in a database, as explained herein below under the heading Scenery 1. Scenery 1: Guided acquisition of databases to the voice recognizer. An noncontextual database exists that includes the commands shared by all the applications. For example: [ok, new, details, cancel, delete, note, graffiti, next, back, show, priority, exit, etc.]. Some databases exist that are shared by some applications. For example,
When the principal applications are taken into account, there may be approximately ten contexts, each having a group of at least twenty vocal commands. Database acquisition flow Acquisition_db (application_name)
Scenery 2: Adaptation to the speaker Consider a pre-existing database. It is possible to activate or de-activate an on-line acquisition mode. With a command issued, the following situations may appear: recognition occurs, the last command is stored another command is received and recognized, and if the on-line acquisition mode is active and the last command is confirming the preceding one (e.g., is neither a cancel nor an exit command), then the stored command is acquired to the database. Scenery 3: Production of a database for a context, optionally by extracting data from different contexts This is a method of interfacing to the software application that may or may not employ voice recognition, and in which: on first installation of the application, the interfacing mode required by the application, and the "vocabulary of commands" that goes with it, are declared automatically; the user is enabled to select the interfacing mode; if the vocal command is selected, then the components of the "vocabulary of commands" in the set of vocal commands that pertain to the other voice-activatable applications are located, and a request is optionally passed for training in the vocabulary entered. Vocabulary of commands is a database that is tied to an application (e.g., by a consistent name) and contains a set of commands that are specific to that application and already exist or are generated by a vocal command acquiring step. Integration to the database construction can be obtained (on first installation) by deriving, from the other existing databases, the individual commands of the same type and performing an off-line acquisition. For the rest of them, the user would be requested a normal acquisition (see Scenery 1). The voice messages that correspond to the requested commands may be de-correlated from a linguistic standpoint, unless they lose their semantic significance by the user. For example, if the user chooses to interpret the commands by a different language from that of the device system, he/she can do so on condition that consistency be maintained between the voice message and the requested command. For example, requested command: "OK"→spoken: "va bene" requested command: "SHOW"→spoken: "mostra". In all cases, the equivocating (different words conveying the same notion), faltering pronunciation, and discriminating (words having different meanings but the same pronunciation) characteristics of speech should be taken into account in choosing the vocal commands. Scenery 4: A sequence collecting information about an application and the acquisition of vocal commands (connected with Scenery 3) and subsequent patch to the operating system in order to synchronize the vocal commands to the application. The system will be able to: display a list of applications in the palm-top computer that have no corresponding vocal command database; allow selecting an application from the list; acquire the application resources, which include inter alia the list of commands to be input by voice; and construct a training database, dependent on the application and containing the vocal command list, like in Scenery 1. The patch program of the operating system may be able to: retrieve the identification of the application requested by the user; find the dbase that pertains to the application; and detain the information from the voice recognition system and produce equivalent events for queuing to the events handled by the current application. Scenery 5: Activation of the operating system patch upon calling a generic application. The system should be able to detain the request to activate an application, and through a program may: verify that the activated application can be guided by vocal commands; if necessary, request that a database be generated for activation by vocal commands; provide the recognition device with the addresses of the databases (contextual and noncontextual) linked to the application; activate the recognition device (place it in a standby state awaiting commands); and start the application. Database: The database may contain the "vocabulary of commands" associated with a context or set of contexts. There may be a database for each context. Univocal correspondence may exist between the database in the palm-top computer and the in: database associated with the same context but contained in the recognition device. The database may include: a "completed" flag, indicating that the whole set of commands is acquired; optionally, a list of the contexts encompassed by the database; an on-line acquisition mode flag, indicating whether the database is enabled to on-line acquire fresh voice messages corresponding to the commands it contains; indications about the corresponding database in the recognition database (starting address, ending address); and a list of specific controls to the application considered, or the class of actions shared by different contexts, to show the name of the requested command (label); the presence of the recognizer in the database; and a corresponding sequence of actions (commands to be effected by the operating system in order to execute the requested command). FIG. 4 shows schematically an exemplary application flow, including communication channels and flags; enabling recognition, which verifies the state of the recognition device, identifies the context, and activates the acquisition and recognition enable flag for the device. A stacked command sequences store the sequence of the commands executed last, and allow tracing them; and allow optional on-line acquisition. A recognition acknowledge flag may be included. Data addressing may include: ↑/↓ location of the contextual database ↑/↓ location of the uncontextual databases ↑/↓ address of the recognized word, or membership class ↑/↓ address of the range of words that belong to one class. The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.
|
Same subclass Same class Consider this |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
