Transforming components of a web page to voice prompts

Embodiments of the invention address the deficiencies of the prior art by providing a method, apparatus, and program product to of converting components of a web page to voice prompts for a user. In some embodiments, the method comprises selectively determining at least one HTML component from a plurality of HTML components of a web page to transform into a voice prompt for a mobile system based upon a voice attribute file associated with the web page. The method further comprises transforming the at least one HTML component into parameterized data suitable for use by the mobile system based upon at least a portion of the voice attribute file associated with the at least one HTML component and transmitting the parameterized data to the mobile system.

FIELD OF THE INVENTION

Embodiments of the invention relate to a voice-based user interface for interacting with a web page.

BACKGROUND OF THE INVENTION

Stored data or information is generally structured to be accessed using an interface of a particular type. For example, web pages are generally structured using a markup language, such as the hypertext markup language (HTML). These web pages generally include HTML components that specify what type of HTML is displayed. The HTML components can include text boxes, buttons, tables, fields thereof, selectable links, and generally any type of HTML component that can be displayed by an internet browser.

Thus, some web pages utilize interactable components. Although these interactable web pages are typically accessed using a screen-based interface in a client-server arrangement, problems often arise when there is no screen-based interface, such as when there is only an audio interface to interact with those web pages. Many conventional voice systems used to access web pages are unable to interact with interactable components thereof, and instead are often limited to reading the text of only those web page already specified by users. Therefore, many conventional voice systems are unable to fully utilize web pages, and in particular web pages that are used to control a process or workflow.

SUMMARY OF THE INVENTION

Embodiments of the invention address the deficiencies of the prior art by providing a method, apparatus, and program product for converting user of a web page, such as user interface components of the web page, to voice prompts for a user. In some embodiments, the method comprises selectively determining at least one HTML component from a plurality of HTML components of a web page to transform into a voice prompt for a mobile system based upon a voice attribute file associated with the web page. The method further comprises transforming the at least one HTML component into parameterized data suitable for use by the mobile system based upon at least a portion of the voice attribute file associated with the at least one HTML component and transmitting the parameterized data to the mobile system.

These and other advantages will be apparent in light of the following figures and detailed description.

It should be understood that the appended drawings are not necessarily to scale, presenting a somewhat simplified representation of various features illustrative of the basic principles of embodiments of the invention. The specific design features of embodiments of the invention as disclosed herein, including, for example, specific dimensions, orientations, locations, and shapes of various illustrated components, as well as specific sequences of operations (e.g., including concurrent and/or sequential operations), will be determined in part by the particular intended application and use environment. Certain features of the illustrated embodiments may have been enlarged or distorted relative to others to facilitate visualization and clear understanding.

DETAILED DESCRIPTION

Hardware and Software Environment

Turning now to the drawings, wherein like numbers denote like parts throughout the drawings,FIG. 1is a diagrammatic illustration of a protocol translation system10consistent with embodiments of the invention. The system10includes an Internet Transaction Server12(illustrated as, and hereinafter, “ITS”12), a protocol translator14(illustrated as “PT”14), and a mobile system16. The ITS12is configured to provide web pages that include hyper text markup language (HTML) code to the protocol translator14through a first at least one network18(or, for the sake of brevity, “first” network18). In specific embodiments, the ITS12is configured to provide web pages to the protocol translator14that are part of a work flow for a user (e.g., such as a work flow for a warehouse pick system, a medical facility care system, an order implementation system). As such, each web page may include a unique identifier associated therewith as well as various HTML components (e.g., including buttons, text, tables, fields thereof, selectable links). The protocol translator14is configured to determine, based upon the unique identifier, a voice attribute file to utilize to transform at least some of the HTML components into parameterized components which are provided, in a comma delimited string, to the mobile system16. In some embodiments, the protocol translator14is further configured to generate parameterized components based solely upon the voice attribute file, the generated parameterized components otherwise not associated with corresponding HTML components of a web page. The protocol translator14provides the parameterized components to the mobile system16across a second at least one network20(or, for the sake of brevity, “second” network20). In some embodiments, the ITS12is an SAP ITS as distributed by SAP America, Inc., of Newtown Square, Pa. It will be appreciated that the first and/or second network18and/or20include at least one private communications network (e.g., such as an intranet) and/or at least one public communications network (e.g., such as the Internet). Furthermore, it will be appreciated that the illustrations of the first and second network18and20are merely illustrative, and that the ITS12, protocol translator14, and mobile system16may be interconnected through one or more common networks.

The protocol translator14is configured to selectively determine at least one HTML component from a web page to transform into a parameterized component based on the voice attribute file (e.g., the protocol translator14is configured “scrape” the web page for at least one HTML component to transform to a parameterized component based on the voice attribute file). The protocol translator14is further configured to “scrape” at least some data from the HTML component (e.g., part of a URL associated therewith, text associated therewith, a function associated therewith), compare it to a corresponding portion of the voice attribute file (e.g., a voice attribute component of the voice attribute file that matches the HTML component), and create a parameterized component that includes at least some of the scraped data as well as at least some of data from the voice attribute component associated therewith. The protocol translator14then provides parameterized components to the mobile system16. The mobile system16, in specific embodiments, is a voice direct and/or voice assist system that is configured to transform a parameterized component into a speech dialog, or “voice prompt,” for a user thereof, as well as capture speech input from the user and convert to machine readable input. As such, the protocol translator14is further configured to receive a message from the mobile system16(which may include the speech input of the user converted into the machine readable input), decode the message into a uniform resource locator (URL) or web address, then provide that URL to the ITS12. In this manner, the protocol translator14is configured as an interface between a web page and a voice recognition system that can change the interaction therebetween by adjusting voice attribute files associated therewith.

FIG. 2is a diagrammatic illustration of a protocol translator14consistent with embodiments of the invention. In specific embodiments, the protocol translator14is a computer, computing system, computing device, server, disk array, or programmable device such as a multi-user computer, a single-user computer, a handheld computing device, a networked device (including a computer in a cluster configuration), a mobile telecommunications device, a video game console (or other gaming system), etc. As such, the protocol translator14includes at least one central processing unit (CPU)30coupled to a memory32. Each CPU30is typically implemented in hardware using circuit logic disposed on one or more physical integrated circuit devices or chips. Each CPU30may be one or more microprocessors, micro-controllers, field programmable gate arrays, or ASICs, while memory32may include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, and/or another digital storage medium, and also typically implemented using circuit logic disposed on one or more physical integrated circuit devices, or chips. As such, memory32may be considered to include memory storage physically located elsewhere in the protocol translator14, e.g., any cache memory in the at least one CPU30, as well as any storage capacity used as a virtual memory, e.g., as stored on a mass storage device34, another computing system, a network storage device (e.g., a tape drive), or another network device (e.g., a server) coupled to the protocol translator14through at least one network interface36(illustrated as, and hereinafter, “network I/F”36) by way of the first and/or second network18and/or20.

The protocol translator14is coupled to at least one peripheral device through an input/output device interface38(illustrated as, and hereinafter, “I/O I/F”38). In particular, the protocol translator14receives data from a user through at least one user interface40(including, for example, a keyboard, mouse, a microphone, and/or other user interface) and/or outputs data to the user through at least one output device42(including, for example, a display, speakers, a printer, and/or another output device). Moreover, in some embodiments, the I/O I/F38communicates with a device that is operative as a user interface40and output device42in combination, such as a touch screen display (not shown).

The protocol translator14is typically under the control of an operating system44and executes or otherwise relies upon various computer software applications, sequences of operations, components, programs, files, objects, modules, etc., consistent with embodiments of the invention. In specific embodiments, the protocol translator14executes or otherwise relies on a protocol translator application46to manage translation of HTML components into parameterized components consistent with embodiments of the invention. The mass storage34of the protocol translator14includes a voice attribute file data structure48, a log data structure50, and a parsed data data structure52to store at least one respective voice attribute file, log, and, parsed data.

The protocol translator14is configured to parse a web page, store that parsed data in the parsed data data structure52, and determine a unique identifier associated with that web page. The protocol translator14is further configured to determine which voice attribute file from a plurality of voice attribute files in the voice attribute file data structure48is associated with the web page based upon the unique identifier. The protocol translator14then scrapes the web page and transforms at least one HTML component thereof into a parameterized component based on the determined attribute file. The protocol translator then provides that parameterized component to the mobile system16. In some embodiments, the unique identifier is a unique identifier of a particular template used to create the web page, while in alternative embodiments the unique identifier is the unique URL associated with the web page.

The mobile system16is configured to receive at least one parameterized component in the form of a comma delimited string and output a corresponding speech dialog, or a corresponding voice prompt, to its user. The user may then provide speech input to interact with the web page.FIG. 3is an illustration of a mobile system16consistent with embodiments of the invention. Specifically, the mobile system16includes a portable and/or wearable computer or device60(hereinafter, “mobile device”60) and a peripheral device or headset62(hereinafter, “headset”62). As illustrated inFIG. 3, the mobile device60is a wearable device worn by a user64on a belt66. In alternative embodiments, the mobile device60is carried or otherwise transported, such as on a lift truck, harness, or other manner of transportation.

In some embodiments, the user64interfaces with the mobile device60(and the mobile device60interfaces with the user64) through the headset62, which is coupled to the mobile device60through a cord68. In alternative embodiments, the headset62is a wireless headset and coupled to the mobile device60through a wireless signal (not shown). Specifically, the headset62includes a speaker70and a microphone72. The speaker70is configured to play audio (e.g., such as to instruct the user64to perform an action), while the microphone72is configured to capture speech input from the user64(e.g., such as for conversion to machine readable input by the mobile device60). As such, and in some embodiments, the user64interfaces with the mobile device60hands-free through the headset62.

FIG. 4is a diagrammatic illustration of at least a portion of the components of the mobile device60consistent with embodiments of the invention. The mobile device60includes at least one processing unit80coupled to a memory82. Each processing unit80is typically implemented in hardware using circuit logic disposed in one or more physical integrated circuit devices, or chips. Each processing unit80may be one or more microprocessors, micro-controllers, field programmable gate arrays, or ASICs, while memory82may include RAM, DRAM, SRAM, flash memory, and/or another digital storage medium, and that is also typically implemented using circuit logic disposed in one or more physical integrated circuit devices, or chips. As such, memory82is considered to include memory storage physically located elsewhere in the mobile device60, e.g., any cache memory in the at least one processing unit80, as well as any storage capacity used as a virtual memory, e.g., as stored on a mass storage device, a computer, and/or or another device coupled to the mobile device60, including coupled to the mobile device60through at least one network interface84(illustrated as, and hereinafter, “network I/F”84) by way of the second network20. The mobile device60, in turn, couples to the second network20through the network I/F84with at least one wired and/or wireless connection. In specific embodiments, the mobile device60couples to the second network20through an IEEE 802 standard, and in particular an IEEE 802.11 wireless communications standard as is known in the art.

In some embodiments, the mobile device60additionally includes at least one input/output interface86(illustrated as, and hereinafter, “I/O I/F”86) configured to communicate with at least one peripheral other than the headset62. Such a peripheral may include at least one of one or more training devices (e.g., to coach a new user through training to use the mobile device60, headset62, and/or a system to which they are coupled), image scanners, barcode readers, RFID readers, monitors, printers, and/or other peripherals (none shown). In specific embodiments, the I/O I/F86includes at least one peripheral interface, including at least one of one or more serial, universal serial bus (USB), PC Card, VGA, HDMI, DVI, and/or other interfaces (e.g., for example, other computer, communicative, data, audio, and/or visual interfaces) (none shown). The mobile device60also includes a power supply88, such as a battery, rechargeable battery, rectifier, and/or other power source. The mobile device60monitors the voltage from the power supply88with a power monitoring circuit90. In some embodiments, and in response to the power monitoring circuit90determining that the power from the power supply88is insufficient, the mobile device60shuts down to prevent potential damage. The mobile device60is configured to communicate with the headset62through a headset interface92(illustrated as, and hereinafter, “headset I/F”92), which is in turn configured to couple to the headset62through the cord68and/or wirelessly.

The mobile device60may be under the control and/or otherwise rely upon various software applications, components, programs, files, objects, modules, etc. (hereinafter, “program code”) consistent with embodiments of the invention. This program code may include an operating system (e.g., such as a Windows Embedded Compact operating system as distributed by Microsoft Corporation of Redmond, Wash.) (not shown) as well as one or more software applications (e.g., configured to operate in an operating system or as “stand-alone” applications). As such, the memory82is configured with a speech recognition and synthesis module94to convert speech input from the user64into machine readable input, as well as play a speech dialog for the user64(e.g., such as a voice prompt). Moreover, the memory82is configured with a library96configured to store a plurality of speech dialogs to play for the user64and/or to store at least one speech input template utilized by the speech recognition and synthesis module94to convert speech input of the user64into machine readable input (e.g., a “vocabulary”). The memory further includes a data store98to store data related to the mobile device60, headset62, and/or user64.

In some embodiments, a suitable mobile device60for implementing the present invention is a Talkman® wearable computer available from Vocollect, Inc., of Pittsburgh, Pa. The mobile device60is a voice-driven system, which uses speech recognition technology for documentation and/or communication. The headset62provides hands-free voice communication between the user64and the mobile device60. For example, in one embodiment, the mobile device60receives a comma delimited string from the protocol translator14and converts it into voice prompts, which are provided to the user64through the headset62. The user64may reply, via speech input, which is converted to a useable digital format (e.g., machine readable input) stored in the mobile device60and transferred, in a message, back to the protocol translator14.

FIG. 5is a diagrammatic illustration of a plurality of applications, sequences of operations, components, programs, files, objects, modules, etc., that may be included in the protocol translator application46ofFIG. 2. In some embodiments, the protocol translator application46includes an HTML parser100, a mobile device communication module102, a decoder104, an encoder106, a time out manager108, and/or a message translator110. As such, and in some embodiments, the HTML parser100is configured to parse a web page for HTML components by determining the tags associated with each component (e.g., HTML tags). The HTML parser100is further configured to determine a unique identifier associated with the web page and determine, from a voice attribute file associated with the web page, which HTML components to convert to parameterized components. Specifically, the HTML parser100is configured to determine which HTML components to transform to parameterized components by determining whether the respective voice attribute file indicates that those HTML components are to be transformed (e.g., whether those HTML components are “enabled”). The encoder106is configured to transform each enabled HTML component into a parameterized component as well as to encode parameterized components into the comma delimited string, while the mobile device communication module102is configured to provide the comma delimited string to the mobile device60. The mobile device communication module102is also configured to receive messages from the mobile device60, which are then decoded by the decoder104and translated to a format compatible with the ITS12by the message translator110. The time out manager108is configured to determine if a message to the mobile device60has timed out and alert a user and/or component of the protocol translator14or log the error in the log data structure50. The modules102-110may also be configured to log errors, faults, or respective error-free operations in the log data structure50.

In specific embodiments, each voice attribute file is configured to include a plurality of voice attribute components, each of which is used to generate a parameterized component, at least some of which are associated with corresponding HTML components of a web page. The voice attribute file is thus configured to control the voice prompts and/or voice interactions associated with a particular web page. As such, transformation of an HTML component, such as a user interface component, to a voice interactable form is performed at the protocol translator14, if at all. Each voice attribute file is stored in the voice attribute file data structure48and includes a plurality of voice attribute components, at least some of which are associated with HTML components of a web page, each voice attribute component including at least some of the following properties as described in Table 1 below:

TABLE 1Properties of a Voice Attribute Component of Voice Attribute FileNAMEVALUESDESCRIPTIONClassString/IntegerIdentifies the particular web page with which the voiceattribute file is associated. May include a templateidentifier or at least a portion of a URL associatedwith a web page.EnabledIntegerEnables the conversion of the HTML component intoa parameterized component.0: Never send the specified parameterizedcomponent to the mobile device.1: Always send the specified parameterizedcomponent to the mobile device.2: Send the specified parameterized component if acorresponding HTML component is present in theweb page, but don't send otherwise.Field IDString/IntegerSpecifies a field ID for the parameterized component.Configured to match a field ID of the correspondingHTML component.Field NameString/IntegerOptional. Specifies a name for a particular HTMLcomponent and may be pulled from the HTMLcomponent.Field ValueString/IntegerOptional. Specifies a value for a particular HTMLcomponent and may be pulled from the HTMLcomponent. This can be compared to later values toconfirm an operation or this value can be spoken to auser.CommandString/IntegerAssigns the parameterized component a command.As an example, the command may be “Help.” Theuser may speak “Help” to hear help information aboutthe web page. As another example, the commandmay be “Button.” The user may interact with aparticular HTML button component associated withthe voice attribute file by speaking “Sign Off,” which isthe response to select the particular HTML buttoncomponent.GroupString/IntegerAssigns the parameterized component to a particulargroup to allow for control of the workflow and todetermine when vocabulary and button commandsare available to a user. Parameterized componentswith lower numbers are converted to voice promptsfirst.SequenceString/IntegerAssigns the parameterized component a particularorder in a group to allow for control of the workflowwithin a grouping of commands. Parameterizedcomponents with lower numbers are converted tovoice prompts first.Vocab WordString/IntegerSpecifies the vocabulary word to provide to themobile system. As an example, the vocabulary wordassigned to a button can include “details.” When theuser says “Details,” the system interprets this asinterfacing with that button (e.g., pressing and/orselecting the button). As another example, thevocabulary word can be associated with specificinformation, such as to allow a user to request aparticular piece of information, such as “MaterialNumber.”Pre-PromptString/IntegerOptional. Assigns a pre-prompt to the parameterizedcomponent. As an example, a parameterizedcomponent for a voice prompt may specify to “Go tothe ‘Freezer’ section, then say ‘Ready.’” The pre-prompt for this voice prompt is “Go to the.”PromptString/IntegerOptional. Assigns a prompt to the parameterizedcomponent. As an example, a parameterizedcomponent for a voice prompt may specify to “Go tothe ‘Freezer’ section, then say ‘Ready.’” The promptfor this voice prompt is “section.” In this example,“Freezer” is specified by the Field Value, which may,in turn, be scraped from the web page.Post-PromptString/IntegerOptional. Assigns a post-prompt to theparameterized component. As an example, aparameterized component for a voice prompt mayspecify to “Go to the ‘Freezer’ section, then say‘Ready.’” The post-prompt for this voice prompt is“then say ‘Ready.’”Validate Pre-PromptString/IntegerOptional. Assigns a pre-prompt for a validation voiceprompt. As an example, a parameterized componentfor a validation voice prompt may specify “Wrongthree, try again.” The validation pre-prompt is“Wrong.”Validate Post-String/IntegerOptional. Assigns a post-prompt for a validation voicePromptprompt. As an example, a parameterized componentfor a validation voice prompt may specify “Wrongthree, try again.” The validation post-prompt is “tryagain.”ConfirmString/IntegerOptional. Confirms speech input of a user. As anSpoken Valueexample, a parameterized component for aPre-Promptconfirmation voice prompt may confirm speech inputby responding “You said ‘new function,’ correct?” inresponse to a user saying “New Function.” The pre-prompt for this voice prompt may be “You said.”ConfirmString/IntegerOptional. Confirms speech input of a user. As anSpoken Valueexample, a parameterized component for aPost-Promptconfirmation voice prompt may confirm speech inputby responding “You said ‘new function,’ correct?” inresponse to a user saying “New Function.” The post-prompt for this voice prompt may be “correct?”FieldStringOptional. Description of a particular component.DescriptionPost ButtonString/IntegerOptional. Specifies a button to select after collectinginformation from a user.ValidateBooleanOptional. Specifies whether to validate informationfrom the user against what was sent from the protocoltranslator. For example, if user provides a speechinput of “three,” the system (mobile system orprotocol translator) will not validate that number if thisproperty is not active.Validate PriorityBooleanOptional. Specifies whether the user can speak overPrompta validation voice prompt when the user is attemptingto reply to the validation voice prompt.ConfirmBooleanOptional. Specifies whether to confirm speech inputSpoken Valueof user. For example, if the user provides a speechinput of “New Function,” the system validates that byresponding with a voice prompt specifying “You said‘New Function,’ correct?” if this property is active.Speak ValueBooleanOptional. Specifies whether to speak a value fromthe protocol translator back to the user.ReadyBooleanOptional. Specifies whether to require the user to say‘Ready’ after providing a speech input.UOMBooleanOptional. Specifies to the protocol that this particularvoice attribute component is a unit of measure. Assuch, the protocol translator translates the HTMLcomponent As an example, kilograms, pounds, liters,single units, cases of units, etc.DescriptionStringOptional. Description associated with parameterizedcomponent. User can request more informationabout a voice prompt if this property is active.Min LengthIntegerOptional. Specifies min number of digits for a valueto be entered. Zero is default and specifies no minlength.Max LengthIntegerOptional. Specifies max number of digits for a valueto be entered. Zero is default and specifies no maxlength.

Thus, the voice attribute file specifies various options with each HTML component of a web page, including whether that HTML component is even associated with a parameterized component. Moreover, the voice attribute file can specify various options for parameterized components that are not associated with HTML components of a web page. In this manner, the protocol translator14can specify a plurality of parameterized components, and a plurality of voice prompts, for each web page, whether those parameterized components and/or voice prompts are associated with HTML components or not. In some embodiments, the mobile system16is configured to indicate to the protocol translator14the language for which that mobile system16is configured. As such, the protocol translator14indicates, with each parameterized component, the language associated with the mobile system16for which that parameterized component is intended. In this manner, the protocol translator14is configured to provide voice prompts in a number of languages consistent with embodiments of the invention. When the protocol translator14is not aware of a language for a mobile system16, such as at an initial configuration, the default language indicated in a parameterized component is English.

As discussed above, the protocol translator14is further configured to receive messages from the mobile system16and convert them to a URL to send to the ITS12. For example, the user may respond to select a second menu option by saying “Two,” thus selecting to continue to the next selected menu. The mobile system16converts that into machine readable input and provides the machine readable input to the protocol translator14. In particular, the protocol translator14may receive the following comma delimited message that includes the machine readable input specifying that the user said “Two”:

In turn, the protocol translator14parses the message to determine a URL to send to the ITS12that includes the indication of a particular web page that the speech input is associated with (e.g., “http://10.0.13.186:8002/sap(cz1tsme9jueiit3jwlu5n”), the particular component of the web page that the speech input is associated with (e.g., a menu option “rlmob-menopt[1]”), the particular speech input (e.g., “2”), and the action to take with regard to that menu option (e.g., the selection of that second menu item, which triggers movement to a next page associated with that menu option, or an “˜OKCode” specifying “NEXT”). As such, the protocol translator14may provide the following URL to the ITS12that specifies a new web page for the ITS12to navigate to in response to user interaction therewith:

In this manner, the protocol translator14is configured to both provide parameterized components to the mobile system16for the mobile system16to convert to speech dialog as well as provide URLs to the ITS12to allow voice directed and/or voice assisted user navigation through a web page, and in particular a web page associated with a workflow. The protocol translator14does so without reconfiguring the input for the web page through the use of voice attribute files that in turn can be manipulated to update the selective scraping of their respective web pages.

A person having ordinary skill in the art will recognize that the environments illustrated inFIGS. 1-5are not intended to limit the scope of embodiments of the invention. In particular, system10, ITS12, protocol translator14, and mobile system16may include fewer or additional components consistent with alternative embodiments of the invention. Indeed, a person having skill in the art will recognize that other alternative hardware and/or software environments may be used without departing from the scope of the invention. For example, the protocol translator application46may be configured with fewer or additional modules, while the mass storage34may be configured with fewer or additional data structures. Additionally, a person having ordinary skill in the art will appreciate that the protocol translator14and/or mobile device60may include more or fewer applications disposed therein. As such, other alternative hardware and software environments may be used without departing from the scope of embodiments of the invention.

Moreover, a person having ordinary skill in the art will appreciate that the terminology used to describe various pieces of data, such as HTML component, parameterized component, comma delimited string, voice prompt, comma delimited message, speech dialog, and speech input are merely used for differentiation purposes and not intended to be limiting.

The routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions executed by one or more computing systems will be referred to herein as a “sequence of operations,” a “program product,” or, more simply, “program code.” The program code typically comprises one or more instructions that are resident at various times in various memory and storage devices in a computing system (e.g., the protocol translator12and/or mobile device60), and that, when read and executed by one or more processors of the computing system, cause that computing system to perform the steps necessary to execute steps, elements, and/or blocks embodying the various aspects of the invention.

While the invention has and hereinafter will be described in the context of fully functioning computing systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of computer readable signal bearing media used to actually carry out the distribution. Examples of computer readable signal bearing media include but are not limited to physical and tangible recordable type media such as volatile and nonvolatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., CD-ROM's, DVD's, etc.), among others, and transmission type media such as digital and analog communication links.

Software Description and Flows

FIG. 6is flowchart200illustrating a sequence of operations executed by a computing system to determine which HTML components associated with a web page to transform into parameterized components for a mobile system and transforming the same consistent with embodiments of the invention. Specifically, a computing system, such as that configured with a protocol translator application, receives a web page (block202). The HTML of the web page is then parsed and a unique identifier associated with the web page is determined (block204). In some embodiments, the HTML code of the web page is parsed to determine each HTML tag set (e.g., matching opening and closing tabs), and thus each HTML component (button, text field, table, field thereof, selectable link, etc.) of the web page. As such, a voice attribute file associated with the web page is determined based on unique identifier of the web page (block206). In response to determining the voice attribute file associated with the web page, voice attribute components (e.g., individual instructions for each parameterized component, whether that parameterized component is associated with an HTML component or not) are also determined and the initial voice attribute component of the voice attribute file is selected (block208). The program code then determines whether the voice attribute component is enabled (e.g., whether a parameterized component is to be generated from that voice attribute component) (block210). When the voice attribute component is enabled (“Yes” branch of decision block210) the program code determines whether there is an HTML component associated with the voice attribute component (block216).

In some embodiments, the program code is configured to transform HTML components of a web page to parameterized components. As such, one or more HTML components of a web page may not be converted while others are not. As such, the program code determines whether an HTML component is associated with the selected voice attribute component (block216). In particular, the program code determines an identifier associated with the voice attribute component matches a unique identifier of an HTML component in block216. Thus, when an HTML component is associated with the selected voice attribute component (“Yes” branch of decision block216) the program code copies at least a portion of the data associated with that HTML component, converts that data to XML, and generates a parameterized component from the data associated with the HTML component and data from the selected voice attribute component (block218).

In some embodiments, in addition to scraping a web page, the program code is configured to generated parameterized components that are not associated with corresponding HTML components. For example, the program code may be configured to provide help options to the mobile system that are not present on a web page with which those help options are associated. As such, a voice attribute component of a voice attribute file associated with the web page, but otherwise not associated with an HTML component of the web page, may be utilized to generate a parameterized component for the mobile system. Thus, and returning to block216, when an HTML component is associated with the selected voice attribute component (“No” branch of decision block216) the selected voice attribute component is converted into a parameterized component (block220). In response to determining that the voice attribute component is not enabled (“No” branch of decision block210), in response to transforming an HTML component into a parameterized component (block218), or in response to converting a selected voice attribute component into a parameterized component (block220), the program code determines whether the last voice attribute component of the voice attribute file has been reached (block222). When the last voice attribute component has not been reached (“No” branch of decision block222) the next voice attribute component is selected (block223) and the sequence of operations proceeds to again determine whether the selected voice attribute component is enabled (block210). When the last voice attribute component has been reached (“Yes” branch of decision block222) parameterized components are grouped and ordered according to their respective voice attribute components (block224).

In response to grouping and ordering parameterized components, a language associated with each of the parameterized components is determined (block226) and the parameterized components are encoded into at least one comma delimited strings according to their grouping and ordering along with an indication of the determined language for the parameterized components (block228). The program code then sends the at least one comma delimited string for the mobile system to transform into voice prompts (block230).

FIG. 7is a flowchart240illustrating a sequence of operations executed by a computing system to determine and configure a parameterized component for a mobile system based on a voice attribute file consistent with embodiments of the invention. Specifically, the sequence of operations ofFIG. 7may be executed during the conversion of an HTML component into a parameterized component as illustrated in blocks218ofFIG. 6. Returning toFIG. 7, a vocabulary term associated with an HTML component and/or a voice attribute component in turn associated with that HTML component to configure in a parameterized component is determined (block242). The program code then determines whether a pre-prompt associated with the HTML component and/or the voice attribute component associated therewith is enabled (block244). A pre-prompt is a portion of voice prompt that indicates to the user information that may be useful to interact with the web page. For example, the pre-prompt may indicate to “Say ‘yes’ or ‘no’” or otherwise indicate context for the particular HTML component with which that pre-prompt is associated. Thus, when the voice attribute component indicates that a pre-prompt is enabled, the program code determines that a pre-prompt is associated with the HTML component (“Yes” branch of decision block244) and determines the pre-prompt to add to the parameterized component (block246).

In response to determining that a pre-prompt is not enabled (“No” branch of decision block244) or in response to determining the pre-prompt to add to the parameterized component (block246), the program code determines if a post-prompt associated with the HTML component and/or the voice attribute component is enabled (block248). Similarly to the pre-prompt, the post-prompt also indicates context for the particular HTML component and/or voice attribute component with which that post-prompt is associated. Thus, when the program code determines that a post-prompt is enabled (“Yes” branch of decision block248) the program code determines a post-prompt to add to the parameterized component (block250). In response to determining that a post-prompt is not enabled (“No” branch of decision block248) or in response to determining a post-prompt to add to the parameterized component (block250), the program code adds the vocabulary term, the pre-prompt, and/or the post-prompt to the parameterized component (block252).

FIG. 8is a flowchart260illustrating a sequence of operations to receive a message from a mobile system, decode that message into a URL, and send that URL to an ITS consistent with embodiments of the invention. In some embodiments, a protocol translator receives a message from a mobile system, and in particular a mobile device of the mobile system (block262). The protocol translator then decodes this message (block264) and formats the decoded message into a URL for an ITS (block266). For example, the message may contain a portion of a URL as well as data that can be formatted to add to the URL to interact with a web page. The protocol translator thus receives this message and formats it into a URL that can be subsequently provided to the ITS. Once the message is formatted into a URL for the ITS (block266) the URL is provided to the ITS (block268) for the ITS to act accordingly.

Thus, the voice attribute files are associated with particular web pages, while at least some of the voice attribute components of the voice attribute files are associated with respective HTML components of the web pages. In turn, each voice attribute defines the voice interactability for each web page. As such, attributes for a particular web page can be configured on a web-page-by-web-page basis to control interactions of a user of a mobile system with that particular web page. Moreover, configuration of these attributes are controlled by changing the voice attribute components, or particular properties thereof, of the voice attribute files rather than changing web pages or protocol systems. In specific embodiments, the voice attribute files are XML-based and can be changed through a text-based editing software. Advantageously, this allows any web page, and the components thereof, to be transformed to voice prompts without knowledge of business logic or process logic, or specialized knowledge of the protocol translator or mobile system, by configuring a voice attribute file associated therewith. One having ordinary skill in the art will appreciate that alternatively formatted voice attribute files may be used, including voice attribute files that are incorporated into a database, a program, or other format well known in the art.