US12438973B2 - Voice application network platform - Google Patents
Voice application network platformInfo
- Publication number
- US12438973B2 US12438973B2 US18/896,366 US202418896366A US12438973B2 US 12438973 B2 US12438973 B2 US 12438973B2 US 202418896366 A US202418896366 A US 202418896366A US 12438973 B2 US12438973 B2 US 12438973B2
- Authority
- US
- United States
- Prior art keywords
- dvaes
- voice
- components
- user
- enabled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/247—Telephone sets including user guidance or feature selection means facilitating their use
- H04M1/2478—Telephone terminals specially adapted for non-voice services, e.g. email, internet access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/247—Telephone sets including user guidance or feature selection means facilitating their use
- H04M1/2477—Telephone sets including user guidance or feature selection means facilitating their use for selecting a function from a menu display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42221—Conversation recording systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/487—Arrangements for providing information services, e.g. recorded voice services or time announcements
- H04M3/493—Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
- H04M3/4936—Speech interaction details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/253—Telephone sets using digital voice transmission
- H04M1/2535—Telephone sets using digital voice transmission adapted for voice communication over an Internet Protocol [IP] network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72445—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/74—Details of telephonic subscriber devices with voice recognition means
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/487—Arrangements for providing information services, e.g. recorded voice services or time announcements
- H04M3/493—Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
Definitions
- the invention relates to systems and methods that utilize speech recognition techniques to interact with a user to allow the user to obtain information and to perform various functions.
- voice services can be speech recognition and touchtone enabled. Examples of such services include voice mail, voice activated dialing, customer care services, and the provision of access to Internet content via telephone.
- IVR Interactive Voice Response
- a user would typically use a telephone to call in to a central computer system which provides voice services via an IVR system.
- the IVR system deployed on the central computer system would then launch voice services, for instance by playing an audio clip containing a menu of choices to the user via the telephone line connection.
- the user could then make a selection by speaking a response.
- the spoken response would be received at the central computer system via the telephone line connection, and the central computer system would interpret the spoken response using speech recognition techniques.
- the IVR system would then continue to perform application logic to take further action.
- the further action could involve playing another menu of choices to the user over the telephone line, obtaining and playing information to the user, connecting the user to a third party or a live operator, or any of a wide range of other actions.
- a user is almost always connected to the central computer system via a telephone call.
- the call could be made using a typical telephone or cell phone over the PSTN, or the call might be placed via a VoIP-type (Skype, SIP) connection. Regardless, the user must establish a dedicated, persistent voice connection to the central computer system to access the voice services.
- FIG. 1 depicts a typical prior art architecture for a centralized voice services platform.
- the speech recognition functions are performed at a central computer system.
- a user telephone 1010 is used to place a telephone call to a central voice services platform 1060 via a telephone network 1040 .
- the telephone network 1040 could be a traditional PSTN, or a VoIP based system. Either way, the user would have to establish the telephone call to the central voice service platform 1060 via a telephone carrier.
- the central voice services platform must be capable of handling a large number of simultaneous telephone calls, especially during peak hours. Providing and maintaining the hardware capability to maintain multiple simultaneous separate voice telephone calls is quite expensive. For instance, the average cost of providing a single IVR telecom port presently ranges from $1,500 to $3,000 per telephone line of service.
- a public telephony based IVR system service provider often must commit to a minimum volume of minutes with a telephony carrier vendor, leading to a fixed minimum telecom related expense. This creates a situation where the service provider needs to quickly ramp up the volume of business in order to recover the telecom expense per user, and thus increase the profit margin per user.
- the central voice services platform is complicated and expensive to begin with.
- These traditional IVR system deployments are also highly vulnerable to the failure of one or more components. It requires extensive redundant hardware and software systems in order to overcome this vulnerability in order to provide reliable service. And because the hardware and software being used is expensive to begin with, providing redundant capabilities is very expensive.
- a typical high end high end centralized computer system has also been complicated by the type of voice services provided by such systems and the usage pattern associated with such voice services.
- a Voice Mail service system may have different provisioning requirements than an outbound notification system.
- the service provider using a high end high end centralized computer system would have to manage a very high level of complexity if it had to simultaneously provide contrasting voice services.
- the types of voice services drive the traffic pattern of calls, driving the number of phone lines needed, and the need for speech recognition servers and associated application processing servers.
- Prior art centralized voice services platforms also tend to be “operator-centric.” In other words, multiple different service providers provide call-in voice services platforms, but each service provider usually maintains their own separate platform. Even when several service providers are all using a common set of hardware and software, each company usually maintains its own separate call in telephone number. If the user has called in to a first company's voice services platform, he would be unable to access the voice services of a second company's platform. In order to access the second company's voice services platform, the user must terminate his call to the first company, and then place a new call to the second company's platform. Thus, obtaining access to multiple different IVR systems offered by different companies is not convenient.
- Some prior art voice services platforms were used to send audio messages to users via their telephones.
- the central voice services platform would have a pre-recorded audio message that needed to be played to multiple users.
- the platform would call each of the users, and once connected to a user, would play the audio message.
- the number of simultaneous calls that can be placed by the centralized voice services platform is obviously limited by the number of telephone ports it has. Further, in some instances, the PSTN was incapable of simultaneously connecting calls on all the available line ports connected to the voice services platform.
- the telephone carrier employed by the user would bill the user for calls made to the voice services platform.
- the amount of the charges could be determined in many different ways. For instance, the telephone carrier could simply bill the user a flat rate for each call to the voice services platform. Alternatively, the telephone carrier could bill the user a per-minute charge for being connected to the voice services platform. In still other methods, the voice services platform could calculate user charges and then inform the carrier about how much to bill the user. Regardless of how the charges are calculated, it would still be necessary for the telephony carrier to perform the billing, collect the money, and then pay some amount to the voice service platform.
- FIG. 14 is a diagram of a method embodying the invention for associating a user with a particular DVAES-enable device
- FIG. 15 is a diagram of a method embodying the invention for registering a DVAES-enabled device, and providing the device with credentials;
- Systems, devices and methods embodying the invention are intended to provide users with speech—and touch tone enabled Voice Applications for accessing various services.
- the systems, devices and methods embodying the invention serve some of the same functions as the prior art centralized voice services platforms.
- a VA provides a user with the ability to use their natural voice, touch tone sequences or other forms of user input, to access and/or control an application, to obtain information, to perform a certain function, or to accomplish other tasks.
- a user will interact with a system embodying the invention, at least in part, via speech
- other forms of user interaction fall within the scope and spirit of the invention.
- developing technologies that allow a user to make selections from visual menus via hand or eye movements could also be the basis of a user interaction protocol.
- developing technologies that are able to sense a user's brainwave patterns could form the basis of a user interaction protocol.
- systems and methods embodying the invention are not limited to speech-based user interfaces.
- a VA could be specifically developed to utilize the benefits of speech recognition-based input processing. For instance, a VA could be developed to access, play and manipulate voice mail via speech commands. Alternatively, a VA could act as an extension or an enhancement of traditional GUI-like applications to allow the traditional applications to be accessed and/or controlled by speech commands. For instance, a VA could allow the user to call up specific e-mail messages on a display via spoken commands, and the user would then read the e-mail messages on the display.
- a VA could act like one of the interactive voice response systems that are accessible to users on prior art centralized voice services platforms.
- a VA could act in exactly the same way as a prior art IVR system to allow a user to obtain information or accomplish various functions using a speech enabled interface.
- a system embodying the invention can perform voice applications that would have been impossible to perform on prior art centralized voice services platforms.
- Other VAs could perform a wide variety of other tasks. In most instances, the user would be able to accomplish functions or obtain information by simply speaking voice commands.
- FIG. 2 A depicts a high-level diagram of how a system embodying the invention would be organized.
- the telephone network 230 could be a traditional PSTN, a VoIP system, a peer-to-peer telephone network, a cellular telephone network, or any other network that allows a user to place and receive telephone calls.
- the data network 220 could be the Internet, or possibly a private or internal local area network or intranet.
- users would only be physically coupled to a data network, such as the Internet.
- a data network such as the Internet.
- the user's on-site equipment could enable them to place VoIP telephone calls via the data network.
- VoIP telephone calls might make use of the PSTN, or the entire call might be handled over the data network.
- the user would be capable of simultaneously maintaining a telephone connection and sending and receiving data.
- DVAESA Distributed Voice Application Execution System Architecture
- DVAESA refers to a system and method of providing voice application services, in a distributed fashion, over a network, to a customer device.
- Such a system is closely managed by a centralized system to, among other things, ensure optimum performance, availability and usability.
- DVAES-enabled equipment or local devices/device This means equipment and/or software which is configured to act as a component of a DVAESA embodying the invention.
- a user would utilize an audio interface device to access the DVAESA.
- a first user's audio interface 200 comprises a microphone and speaker.
- a second user audio interface 201 comprises a telephone.
- the telephone 201 is also connected to the same user local device 210 as the first user audio interface.
- a third user's audio interface 202 could also comprise a telephone.
- This telephone 202 could be a regular wired telephone, a wireless telephone or even a cellular telephone.
- the DVAES-enabled devices may support multiple audio interface devices, and the multiple devices could all be of the same type, or multiple different types of user audio interfaces could all be connected to the same local device.
- a user audio device and a DVAES-enabled device could be integrated into a single electronic device.
- a PDA with cell phone capability could also incorporate all of the hardware and software elements necessary for the device to also act as the DVAES-enabled equipment.
- a single user device could function as both the DVAES-enabled equipment that communicates with the network, and as the user audio interface.
- the user local device 203 shown in FIG. 2 A is intended to illustrate this sort of an embodiment.
- the user audio interface 202 shown in FIG. 2 A could be a cell phone that is capable of interacting with the normal cellular telephone network.
- the cellular telephone might also be capable of interacting with the user local device 212 via a wired or wireless connection.
- the cellular telephone 202 might be configured such that it acts like a regular cellular telephone when the user is away from home (and is not connected to the local device 212 ). But the cellular telephone might switch to a different operating mode when it is connected to the local device 212 (when the user is at home), such that all incoming calls to that cell phone are initially received and processed by the local device 212 .
- the DVAESA also would include some network-based elements. As shown in FIG. 2 A , the network-based elements could include a VA rendering agent 240 , a network storage device 242 and a system manager 244 . Each of these network-based elements would be connected to the data network.
- the VAs may enable the users to interact with such third party service providers via the data and telephone networks.
- VAs When a DVAESA as shown in FIG. 2 A is configured, VAs would be “rendered” by the VA rendering agent 240 , the output of the rendering process would be rendered VAs. These rendered VAs may be stored on the Network Storage Device 242 , or be distributed or delivered to a DVAES-enabled Device. “Rendering” refers to a process in which a generic VA is personalized for a particular user and/or one or more particular DVAES-Devices to generate Rendered VAs.
- the system manager 244 could instruct the VA rendering agent 240 to render a VA for a particular user, or such rendering request could originate from the DVAES-enabled Device.
- the DVAESA network data storage element 242 could be used to store generic VAs, rendered VAs, or a wide variety of other data and resources (e.g. audio files, grammars etc.).
- the VA rendering agent would personalize a generic VA during the rendering process. This could take into account personal traits of the individual user, information about the configuration of the local device(s), or a wide variety of other things, as will be explained in more detail below.
- the information used to personalize a VA during the rendering process could be provided to the VA rendering agent at the time it is instructed to render the VA, or the VA rendering agent could access the information from various data storage locations available via the data network.
- the user's local devices would typically be inexpensive computing devices that are capable of running a voice browser and performing speech recognition capable rendered VAs.
- the local device would be physically present at the user's location, such as a home or office.
- the local device could be a virtual device that is capable of interacting with one or more user audio interfaces.
- the local devices may also store rendered VAs, and then act to perform the rendered VAs to the user's audio interface.
- the user local device could be a customer premise device that is also used for some other function.
- the local device could be a cable modem or set-top box that is also used to connect a television to a cable network, however, the device would also be configured to perform VAs for the user via the user's audio interface.
- a local low-power device 212 would be linked to a user's telephone 202 .
- the local device 212 would also be linked to the Internet 220 via a medium to high speed connection, and possibly to the telephone network 230 .
- the user could speak commands into the telephone 202 , and those spoken commands would be processed by the local device 212 to determine what the user is requesting.
- the local device 212 may be able to satisfy the user's request.
- the local device 212 might need to request information from a VA Rendering Agent 240 to satisfy the user's request. If that is the case, the local device 212 would send a query over the data network 220 to the VA Rendering Agent 240 for some type of content.
- the functions that are performed in response to a user request may not involve playing audio information to the user via the user's audio interface.
- the local device could be performing a VA relating to accessing e-mail.
- a user's spoken request could cause the local device to act in a manner that ultimately results in the user's e-mail messages being shown on a display screen.
- the user makes use of a speech-based interface to obtain information and/or perform a certain function, the ultimate result is not the playback of audio, but rather display of an e-mail message.
- the end result of a user request could take many other forms, such as the local device causing a certain action to be taken. For instance, the user might speak a request that causes the user's home air conditioning system, to be turned on.
- the list of possible actions that could be enabled by the local device is virtually endless. But the point is that the local device is able to provide a speech-enabled interface to the user, via the audio interface, to allow the user to accomplish a task.
- the user might pick up his telephone 202 and speak a request to be connected to another person's telephone.
- the local device would interpret the user's spoken request, and then take steps to place a telephone call to the person identified by the user. This might involve connecting the user via the telephone network 230 , or connecting the user to the requested party via a VoIP call placed over the data network 220 .
- the VAs provided by the system can completely replace the dial tone that people have come to associate with their telephones.
- the moment that a user picks up his telephone he will be launched directly into a voice application that is provided by the system.
- this may have been technically possible, but it was always accomplished by making use of the traditional phone system.
- one of the prior art centralized voice services platforms would have been capable of ensuring that the moment a user lifts his telephone, that user was immediately connected to a central voice services platform that would guide the remainder of the user's experience. But this was always accomplished by establishing an immediate voice channel between the user's telephone and the central voice services platform.
- the DVAES architecture makes it possible to answer the call, and take voice mail recordings, without any further involvement of the carrier.
- the DVAES architecture makes it possible to eliminate the services of the telephone carrier.
- the involvement of the carrier necessarily increased the cost of providing the voice services. Because the carrier can be eliminated, the same sorts of voice services can be provided to a user for a significantly reduced price. And, as explained below, the services can be delivered with greater performance and with new and better features.
- rendered Voice Application processing is performed on the local device and the associated voice recognition functions in most cases may also be performed on the local device. For this reason, there is no need to establish a dedicated duplex audio link with a remote high end computer. Also, because the local low-power device is coupled to a data network such as the Internet, it can rapidly obtain Rendered Voice Applications and associated data from various remote sources in order to satisfy user requests. For these reasons, the simple low-power local device allows one to provide the user with speech recognition enabled Voice Applications without the need to create and maintain a high end speech service platform with multiple telephone line access equipment.
- a DVAESA embodying the invention has a very high limit on the number of users that can be simultaneously serviced.
- a DVAESA embodying the invention the moment a customer picks up his telephone he will be connected to the system.
- a DVAESA embodying the invention is “always on.”
- much of the interactions between the user and the system are handled directly by the local device on the customer premises. If the local device cannot immediately service a user request, and additional information is needed, the local device may make an synchronous or asynchronous request over the Internet. Typically, the information will be quite rapidly returned and played to the user. Thus, even if there is a small delay, the user is nevertheless still connected to the voice services system.
- the underlying nature of the DVAESA makes it easy to connect multiple redundant servers to the network, so that in the event one or more assets fail, redundant assets can step in to take over the functions of the failed equipment. This was difficult to do in prior art central voice services platforms, and even when it was possible to provide redundant capabilities, the cost of providing the redundant equipment was much higher than with a DVAESA.
- a prior art central voice service platform needs a telephone carrier to provide access to the users. If the telephone carrier has a service outage, the prior art system cannot function. In contrast, a DVAESA does not have any reliance on a telephone carrier.
- the prior art central voice services platform is making calls to deliver audio messages to a plurality of users, it is tying up its phone lines, and thus its capacity to allow users to call in for services.
- a DVAESA is delivering audio messages to a plurality of users, the users are still able to access their voice services for other purposes.
- a user is interacting with a VA on a DVAESA embodying the invention then he is not yet connected to anything via the telephone network. If the user wishes to be connected to a live operator, the DVAESA can simply setup an outgoing telephone call from the user's phone. In fact, it might even be possible to connect the user to the operator or third party voice service platform using the network. Thus, enacting this sort of transfer is far easier with a DVAESA as compared to the prior art central voice services platform.
- a DVAESA embodying the invention could also be used to rapidly collect data from a very large number of users in ways that would have been impossible with prior art central voice services platforms.
- a television program is currently airing, and during the program, viewers are invited to vote on a particular issue.
- the users would typically place a telephone call to a central voice services platform and make a voice vote.
- prior art voice services platforms are only able to talk to a limited number of callers at the same time because the callers must be connected by dedicated phone lines.
- the user might be able to pick up the phone and say, “I want to vote on issue X.”
- the system would already know that viewers of a television program had been invited to place a vote, so the system could immediately take the user's voice vote.
- the system could also tabulate the votes from all users making similar voice votes, and then provide the voting results to the television show producers in real time. Because so little actual information is being exchanged, and the exchanges are made over the Internet, thousands, and perhaps even millions of votes could be received and tabulated in a very short period of time. This would have been impossible with prior art central voice services platforms.
- a DVAESA embodying the invention also allows for much greater personalization of the voice applications themselves than was possible with prior art central voice services platforms.
- the architecture allows the users themselves to control many aspects of this personalization.
- a first DVAESA operator could load a first set of VAs onto the user's local equipment, and a second DVAESA operator could load a second set of VAs onto the same piece of operator equipment.
- the first DVAESA operator could be one that provides the user with services related to his business
- the second DVAESA operator could be one that provides the user with services relating to the user's personal life.
- the user can cause both sets of VAs to be loaded on a first device at his office, and a second device at his home. This allows the user to easily and immediately access services from either operator, regardless of his present location. This sort of flexibility would also have been completely impossible in prior art central voice services platforms.
- the individual local devices can be identified with unique ID numbers, and credentials verifying the identity and permissions of users and devices can all be created and stored in various locations on the system. By using these unique identification numbers and certification files, one can ensure that only authorized users can access sensitive information or perform sensitive functions.
- the cost of a PC or laptop computer is much greater than the projected cost of a local device embodying the invention.
- the local device will not include a display screen, a keyboard, speakers, or any of the other typical peripheral devices associated with PCs.
- a local device embodying the invention need not be capable of performing any functions other than the speech recognition enabled VAs. For all these reasons, a local device embodying the invention can be produced and delivered to a customer for a fraction of the cost of a PC or laptop computer, and associated speech recognition software.
- a simple local device embodying the invention is likely to be far more reliable than a PC or laptop computer running specialized software.
- a typical home or office PC is used for many different functions, is frequently used by multiple different individuals, and it is exposed to all sorts of potential problems in the form of computer viruses and physical risks.
- the typical PC or laptop computer cannot provide the “always-on” type of reliability that we associate with telephones, cell phones and other simple computing devices.
- a simple local device embodying the invention will be much more reliable than a PC or laptop running specialized software.
- a simple local device embodying the invention can be plugged into a telephone jack and an Internet connection, and associated systems supporting the local device can automatically handle all the required registration and configuration tasks. This sort of simple setup makes systems and methods embodying the invention far easier to use than prior art systems that utilize specialized software running on PCs or laptops.
- DVAES Architecture embodying the invention also provides many benefits and advantages compared to the speech recognition systems found in these sorts of consumer electronic devices.
- the speech recognition engines are necessarily designed to be usable by a large number of different users. For this reason, they are designed to be usable by “the lowest common denominator.” Basically, this means that the functionality must be very easy to understand, and that the voice prompts and voice inputs must be very simple and predictable. In these devices, the user's responses are merely compared to a simple list of acceptable responses. If there is no match, the device has no way of understanding the user's response or of asking a different question to elicit more detail.
- each individual user will be provided with a voice application that is specifically tailored to their characteristics and needs. And no special device training or complex setup procedures are required to provide that customized voice application to each user.
- the VA Rendering Agent automatically customizes the voice application when it is prepared and provided to the user's local device. Also, even if the initial voice application provided to the user is not efficient, as explained in more detail below, a system embodying the invention has ways of reviewing usage history to automatically improve and replace the original voice application with a new voice application that better serves the user's needs.
- the VAs are being rendered from a central rendering agent, the actual VAs can be more complex, and could be varied over time. For instance, if the system notes that a first user only needs a relatively simple VA to interface with the device, the VA rendering agent could load a simple VA on the user's device. But if a second user needs a more complex VA to effectively use the device, the system could ensure that a more complex VA with better and more detailed prompts is loaded onto the second user's device.
- the local device can provide a much more complex and sophisticated voice recognition interface than is possible with prior art consumer electronic devices. For instance, if the user's local device has difficulty interpreting a user response, the local device could enlist the aid of a more powerful speech recognition engine on a network server to help interpret the response. Because of the greater sophistication that is possible with a system embodying the invention, if the local device does not understand something, it can often ask another question of the user to clarify the situation. In addition, the local device can offer a greatly expanded vocabulary and speech processing by enlisting the assistance of network agents. For all these reason, a consumer electronic device that is coupled into the DVAES architecture can provide a much more sophisticated voice application than prior art devices which were not connected to a network.
- the inventors have developed a comprehensive system which supports and in some measure controls the local device present in a user's home or office.
- the comprehensive system which stands behind the local device, and the multitude of advantages that it provides as compared to the above-described prior art systems, will be fully described below.
- the Applicants are not aware of any similar comprehensive system which is designed and configured to support a simple low-powered device that is located at a user's home or office, so that the low power device can interact with the user via a customized speech enabled interface, and wherein that local low-powered device provides some or all of the actual speech recognition functionality.
- the devices 2110 and 2120 appearing in FIG. 2 B would be the local, relatively low-powered devices that are typically located at a user's home or office. As shown in FIG. 2 , in some instances, a local device 2110 could simply be connected to the user's existing telephone. In other instances, the local device could be coupled to a speaker 2007 and microphone 2009 so that the local device can play audio to the user, and receive spoken commands from the user. In still other embodiments, the local device may be a standalone telephone, or be included as part of a cellular telephone, a computing device with wireless access, a PDA that incorporates a cellular telephone, or some other type of mobile device that has access to a data network. Details about various local devices and their capabilities will be provided below.
- VASSs One of the primary functions of the VASSs is to render VAs and to then provide VA components to VAAs.
- the VASS would provide customized VAs components to VAAs, upon demand, so that the VAAs can perform the customized VAs components for the user.
- the VASSs could personalize generic VAs based on known individual user characteristics, characteristics of the environment in which the VA components will be performed, information about how a user has previously interacted with the system, and a wide variety of factors.
- the VASS would then distribute the personalized VAs components to the VAAs so that the VAAs can perform the VAs components for the users.
- the distribution of the personalized VA components to the VAAs could also be accomplished in multiple different ways, as will be discussed below. A detailed description of the VASSs, their functions, and the multiple different ways that they can be configured into a system will be explained below.
- the system shown in FIG. 2 B includes a DVAMS.
- the DVAMS handles a wide variety of management functions which include registering users, specific items of hardware and other DVAES components, directing the rendering, caching, distribution and updating of VAs components, organizing and optimizing the performance of system assets, and multiple other functions.
- the DVAMS may also include an interface that allows an individual user to customize how the system will interact with him, and what products and services the user wishes to use.
- the DVAMS would also provide an interface that allows system operators to manually control various aspects of the system. Details above the DVAMS are provided below.
- VAs could be stored on a VASS.
- a VA is then “rendered” by the VA generator of a VASS to produce personalized distributable VA components to one or more DVAES-enabled devices.
- This rendering process may make use of specific personal information relating to an individual user.
- a database of user personal information could be accessed by the VA or the VASS during the rendering process to allow the rendered VA components to be highly personalized to the user.
- the personalized VA components would then be distributed to a VAA located on one or more pieces of DVAES-enabled equipment which will be accessed by the user.
- FIG. 3 shows an illustration of an exemplary VA.
- the VA includes a VASS interface 18110 , a dialog engine 18120 , a dialog controller 18130 , VA configuration materials 18140 , an optional template 18150 , a set of execution requirements 18160 and an optional manifest 18170 .
- the VA configuration materials comprise configuration data created during the deployment process.
- the VA configuration materials could include a deployment specification, which may include life cycle information for the VA, rendering constraints, rules, distributable VA components, and possibly a specification of the VASS storage location.
- the VA configuration materials could also include a dialog list, a dialog output specification (e.g., SALT, VoiceXML, or others), and optional dialog resources such as audio text, grammars and templates.
- the configuration materials might also include instructions specifying the flow between dialogs.
- the execution requirements provide a description of requirements for execution of a VA during rendering and performance.
- the execution requirements may name one or more data services that must be available during rendering, or may indicate whether the rendered VA components require access to a high-speed data connection during performance.
- the VASS Interface 18110 provides access to a VA's internal methods for rendering parts of specific VA components to the VASS. Examples of methods of the VASS interface that are provided to the VASS include generating full or partial VA components, pause generation, abort generation, and clean up generation.
- the VASS interface could also provide data access services to the VA. This could include data access to user profile data, DVAES performance data, application data and external data.
- the VASS interface also provides the VA the capability to log detailed VA-specific events to the VASS OA&M Service.
- the VA Log items could include details of the VA rendering process, such as start time, end time, VA ID, and a Data Access Attributes component list. Additionally, the VA logs may include detailed error messages.
- the logging level provided by a VA may be configurable and may provide varying levels of logging in response to a configuration setting.
- a VA may also perform error notifications to the VASS OA&M Service. The error notifications may be configurable and may provide varying levels of error handling in response to a configuration setting.
- the VA dialog controller 18130 is the component that receives the instruction to render the VA from the VASS interface.
- a dialog is a unit of interaction with the user. In its simplest form, a dialog could be the ability to play an audio file such as a greeting prompt. In more complex forms, a dialog could be the sequence of instructions, along with a speech recognition context specification (such as a. grammar or an n-best List).
- a dialog in the context of the VA is a dialog specification that defines what the dialog intends to perform, with no specific instructions about how the dialog will eventually be performed by a VAA.
- the dialog specification is Voice Browser or VAA agnostic.
- the Dialog Engine 18120 of the VA is responsible for the creation of personalized and distributable VA components.
- the dialog engine receives an instruction from the dialog controller to render a specific dialog. Based on such an instruction, the dialog engine loads the dialog specification and begins to render the dialog.
- the rendering process binds a resource with a dialog. For instance, this could mean associating a prompt file with a dialog like a “welcome greeting.” This could also be associating a grammar with the dialog, such as a list of names for a voice dialing VA.
- the association of the resource is done by the dialog controller based on rules and by accessing the VASS Data access interface.
- the dialog engine may create the resource.
- Some of the resources that could be created by the dialog engine include synthesized speech with the support of a TTS engine, compiled grammars based on the support of an ASR engine, and concatenation of audio files.
- the dialog rendering process also includes transforming the dialog to the specified output format.
- the dialog engine based on VA configuration materials, may render a distributable VA component in a specified format.
- this distributable VA component could be rendered in accordance with the Voice XML specification.
- the VA component may be rendered in accordance with the SALT specification.
- the dialog engine may use a template specification in the target standard as specified by the VA configuration materials, and complete the rendering once appropriate resources are generated and associated with the template. Upon completion of the rendering, the dialog engine generates an output that is in the form of a personalized distributable VA component. Such output is stored in the VASS storage, as instructed by the dialog controller. Once the dialog is “rendered,” the dialog engine informs the dialog controller and waits for an instruction to produce the next dialog.
- VA components are generated as an output of the VASS rendering process.
- VA components could be one of multiple different types.
- a VA component could be a “resource component” or an “interaction component.”
- Resource components are typically the most atomic form of VA components. Examples of resource components include audio files, and speech recognition grammars, and ECMA script segments/files. Resource components may be generated by the VASS. For instance, the TTS engine could generate an audio file, or a compiled grammar could be generated by an ASR Service. Alternatively, resource components may be provided by the operator. For instance, the operator could provide audio files.
- the optional manifest provides a description of the VA and its constituent pieces, and may include descriptions and cryptographic hashes for rendered VA components for use by cryptographic integrity checking algorithms.
- the VA generator 9210 implements the “rendering” process by which distributable VA components are created. It takes instructions and configuration parameters from one or more DVAMSs, combines them with third party information and user-specific personalization instructions, and produces a set of distributable VA components for use by a VAA loaded on one or more DVAES-enabled devices.
- the Data Access Service 9220 may provide an interface between the Voice Application Generator and a plurality of data sources, including DVAES-specific sources for personalization information, and public data sources.
- the information collected by the Data Access Service could include user profile data, user configuration information, and user-defined application specific preferences.
- User configuration information includes such data as account number, zip code, VDAE association(s), and allocated VAs.
- Some examples of user-defined application preferences include attributes of an address book for voice application dialing, and handling characteristics for re-direction to voice mail.
- the information collected by the Data Access Service would also include performance data that is application-specific, VAA specific, environment specific, and configuration specific.
- the performance data could also include monitoring results and logging results.
- Application data is information collected or analysis results associated with the use of a VA in order to self-configure and operate effectively.
- the application data could also comprises volatile application specific information, such as the current number of unread emails, the number of new voice mail messages, a reminder in a calendar application, or information about specific reservations (for a reservation management VA).
- Application data may be obtained from one or more DVAMSs, VAAs, or other systems.
- the types of information in the DVAMS and in the DVAES-enabled device may be different, in that the DVAMS information may have had the above referenced analysis step performed on it, and the DVAES-enabled device data may comprise raw VA logs from a voice browser.
- the Data Access Service also provides an interface to external data services to obtain external information. These services may include stock quotes, external email systems, information clipping services, and the like. In other exemplary embodiments, the Data Access Service may provide information from common information sources, such as news wires and RSS feeds.
- the Data Access Service is especially useful in that some of the required content is stored in differing locations and in different formats. For example, user preference materials may be stored in a local database, cache, or directory of the registry component of a DVAMS, while dialog personalization materials may be scattered between a plurality of DVAMS and DVAES-enabled devices.
- the Data Access Service has a data transform capability in which it can transform the format of information from one format to another, and may optionally call external services to assist with the transforming.
- the Data Access Service might call an external service provided by a DVAMS to analyze a user's raw logs obtained from a DVAES-enabled device in order to determine specific types of personalization required and to produce the necessary personalization information to enable the VA generator to personalize an aspect of a VA.
- the VA Storage 9320 is local or network storage for rendered VA components.
- the VA storage is accessed by the VA generator and by the DVAMS.
- the VA storage in combination with the content distribution manager 9310 and/or the DVAMS are responsible for pushing rendered VA components to a content distribution service (CDS) or to individual DVAES-enabled devices.
- CDS content distribution service
- the VA storage is also accessed by the CDS or individual devices that may request content from the VA storage.
- the optional cache subsystem 9110 provides a cache for obtaining information published by other VASSs, DVAMSs, or DVAES-enabled devices.
- the Voice Application Storage 9320 is the primary storage for rendered voice application components prior to and post distribution.
- Voice application storage may be a disk store, a directory service, a content manager system, or other mechanism, as are well known in the art for storing voice application components in a manner in which they may be stored and retrieved by other system components.
- Voice Application Storage optionally exposes an external interface so it may be accessed from other systems.
- the external interface may be a service (such a WEBDAV), a directory (such as LDAP), a database, or other method well understood to those skilled in the art.
- a VASS may “render” a VA by producing a version of VA components that are customized to operate within the constraints of each DVAES-enabled device that the VA is allocated to. For example, rendering may generate VA components that take into account DVAES-enabled device limitations, such as system memory, the version of a VAA available on the device, historical or projected network performance, or other DVAES-enabled device factors.
- DVAES-enabled device limitations such as system memory, the version of a VAA available on the device, historical or projected network performance, or other DVAES-enabled device factors.
- the VASS may further customize each instance of the VA components with personalization information associated with a specific user or group of users.
- the VASS makes the rendered VA components available to one or more DVAES-enabled devices, and facilitates the distribution of VA components through the CDS and caching components of the VASS and DVAES-enabled device to maintain the currency of the VASS components at each DVAES-enabled devices.
- the VA generator could be activated by a VASS event listener, by the DVAMS or by a VAA request.
- the VASS event listener is a service that actively listens or monitors for events in DVAES and the DVAMS.
- the VASS event listener detects the occurrence of an event and initiates the rendering process.
- the DVAMS initiates the rendering process upon the occurrence of an event in a DVAES and/or the DVAMS.
- an external service such as a VAA, could initiate the rendering process directly by issuing a request over the network.
- the rendering process could be partial or complete. During partial rendering, only select voice application components could be rendered. The specific voice application components that are rendered are a function of the impact area based on a DVAES or a DVAMS event. Complete rendering is a process by which all components of a voice application are rendered. The motivation for rendering could be the creation of a new user or a configuration change in a device.
- the generator When a VA generator is notified of a change in the DVAES and/or the DVAMS, the generator loads the VA from the VA storage and executes the generation process for the VA to generate personalized instances of the VA components for distribution. If disparate devices require different renderings, the VA generator produces as many rendered instances of the VA components as required.
- the VA generator determines the changed materials, and by inspecting the changed materials, determines the scope of the changes. After determining the scope of the changes, the VA generator determines the VAs that must be rendered in order to provide rendered VA components to the DVAES in accordance with the configuration and personalization materials.
- step 10140 the VA generator loads the un-rendered VA from VA storage that is relevant to the notification.
- the VA generator may take into account user preference materials, historical recognition performance, previous dialog interactions, and various device and environmental factors (e.g., network quality, background noise) associated with the environment(s) in which the VA is expected to be performed.
- the VA generator tailors a VA by associating the user's preference materials with a VA.
- the user preference materials may be used to adjust aspects of specific VA components, such as dialogs, language, audio, synthesized speech, and a variety of other items. In this way, a user may select the “sound and feel” of the voice applications that they are presented with.
- the user preference materials are obtained by the VA generator using the VASS's data access service, which in turn obtains the materials from the DVAMS.
- the personalization materials may be stored in one or more devices, in the CDS, or in an Internet application. The data access service locates these materials and makes them available to the VA generator.
- the VA generator may then initiate the rendering of personalized VA components in one or more of three optional steps.
- the VA generator interacts with the dialog controller of the VA to perform each of the personalizations and to produce VA components.
- Personalization of VA components using these materials may be a multi-part process.
- the VA generator performs both parts of the process as one operation.
- the steps are performed in two distinct operations.
- the operations are one of collecting user activity information that relates to a user's prior interactions with a DVAES, and performing a first operational analysis upon this information to determine patterns of use, patterns of failure, and/or patterns of interaction.
- a second operation is performed in which the VA is personalized based upon the results of the analysis.
- the process assumes that the analysis operation is already performed and the resulting personalization materials are made available to the VA generator.
- the VA generator may create personalized VA components using recognition materials in step 10160 .
- Recognition personalization uses information collected from previous interactions with a user that identifies how a user has interacted with the ASR components in the past, and may include the specification of alternate ASR services, different grammars, or different recognition techniques.
- the VA generator may also optionally generate personalized VA components using dialog personalization materials in step 10170 . This results in VA components that have been personalized to account for prior interactions between the user and the VA. Dialog Personalization can result in changes in the Voice User interface and the dialog flow of the VA.
- Dialog personalization uses information collected from previous interactions with a user that identifies how a user has interacted with dialogs contained in VA components in the past.
- the dialog personalization information may take into account the fact that in the past, a particular user always selects the third option in a list of information. Based on this fact, the order in which the options or information are presented can be changed. For example, if the user is presented with “you have 5 appointments, 2 emails, and 2 voice mails”, and the user regularly selects the voice mail option, the dialog may be regenerated to present “you have 2 voice mails, 2 emails, and 5 appointments,” or even “you have 2 voice mails and some other items, voice mail 1 is . . . ”.
- the VA generator may request the dialog personalization materials from a VASS's data access service, which in turn obtains the materials from information published by a DVAMS to a database, directory, or registry.
- the dialog personalization materials are published from a DVAMS to other DVAES systems and may be stored in a CDS, may be obtained directly from a cache, or may be obtained from one or more DVAES systems.
- the dialog personalization materials are stored in a DVAES-enabled device and are obtained directly from the device by the VASS's data access service.
- the VA generator may also optionally generate personalized VA components with environmental personalization materials in step 10180 . This results in VA components that have been additionally personalized to account for factors related to the anticipated performance environment. Aspects of the DVAES-enabled device(s) and VAA(s) to which the personalized VA components will be distributed are considered in this step.
- Environment personalization materials use information collected about the environment that the personalized VA components will likely be performed in. These materials include VAA and DVAES-enabled device configuration information and other materials regarding network latency. These materials are used to adjust requirements for services that may not be available in specific devices and to determine which portions of a VA's components are already available without additional publishing of the components.
- the DVAMS would ensure that the rendered VA components are sent to all the user's VAAs on all the user's local devices.
- step 10200 the VA Generator determines if there are more VAs requiring rendering. If so, the process returns to step 10140 , in which the next set of VA and personalization materials are selected for rendering. If not, the process terminates.
- the Operations, Administration, and Monitoring service 9500 of the VASS is responsible for ensuring that the VASS components are working efficiently.
- the OA&M Service is also the DVAES component that interfaces with the DVAMS.
- the VASS's OA&M service provides services similar to the OA&M service of a VAA.
- the OA&M Service Upon start up, the OA&M Service loads configuration materials and establishes a connection with the DVAMS.
- the OA&M service could operate in an active mode and/or in a passive mode. In active mode, the OA&M service starts all the other services in the VASS based on the order specified in the configuration data. In passive mode, all the VASS Services self-start based on a startup routine in the OS. Once the services have started, they register with the OA&M.
- the interface between the OA&M Service and the VASS services may be based on an API or a messaging protocol. Examples of messaging protocols that may be used include SNMP, RPC, SOAP, and TCP/IP Messaging.
- the connection between the OA&M service and the DVAMS may also be based on a network provisioning, communication, and monitoring protocols like SNMP or tr-069.
- the OA& M Service may shutdown and restart the VASS components and services.
- Device and service conditions include such items as CPU load, available memory, and changes in configuration.
- the OA&M service may notify services to reload changed configurations as an alternative to a service shutdown and restart.
- the OA&M Service may provide a heartbeat service in deployments that require one.
- the OA& M Service may receive and store log and error events received from the VASS components and services.
- the OA& M service may propagate such log and error information to the DVAMS and optionally to an additional network management system. Additionally the OA&M service may send a health heartbeat signal to the DVAMS.
- Each VASS component may be registered with multiple DVAMS systems. In some embodiments, each VASS component may be registered with a DVAMS associated with a specific DVAES. In other embodiments, where there is a plurality of DVAES implementations (for example, where two different, competing vendors have deployed DVAES architectures), a VASS component may register with separate DVAMSs associated with each of the DVAES deployments.
- One or more VAAs could be deployed on a single DVAES-enabled device. Also, in some instances, the functions of a single VAA might be shared between two or more such devices. The establishment and configuration of the VAAs on the DVAES-enabled equipment would be controlled primarily by the DVAMS, as explained in detail below.
- the DVAES-enabled device could be a dedicated network appliance, similar to a cable set-top box or a cable modem. In other instances, the DVAES-enabled device could act as both the host for one or more VAAs, and perform other functions.
- a DVAES-enabled device could be a part of common network and telecommunications devices such as VoIP telephony adapters, cable and DSL modems and routers, integrated access devices, fixed-line and wireless devices, dedicated network appliances, VoIP telephones, residential gateways, set top boxes, cellular telephones, automotive telematic devices, wearable computing devices, media center controllers, mobile computing devices (e.g. PDAs), or any other device which has network access.
- VoIP telephony adapters such as VoIP telephony adapters, cable and DSL modems and routers, integrated access devices, fixed-line and wireless devices, dedicated network appliances, VoIP telephones, residential gateways, set top boxes, cellular telephones, automotive telematic devices, wearable computing devices,
- DVAES-capable Most existing customer premise equipment and consumer devices that could be DVAES-capable lack the DVAES components, configurations, and membership credentials that would allow them to participate in one or more DVAESs. Adding a DVAES-enablement layer of software components and configuration materials would make them DVAES-enabled, and thus capable of participating within the DVAES architecture. In many instances, it would probably not be feasible to retrofit existing devices so that they are DVAES-enabled, although this is certainly possible. However, it should be no problem to add the DVAES-enabling elements to many different types of commonly sold and distributed customer premise equipment and/or consumer electronics.
- DVAES-enabled devices may be virtualized.
- the DVAES architecture components may integrate with and support components of extant legacy systems to facilitate migration from centralized voice service platforms to a distributed architecture.
- a DVAES-enabled hardware layer 3100 preferably provides computer hardware and firmware for the operation of DVAES architecture components.
- the hardware and firmware of the DVAES-enabled hardware layer 3100 is used to provide an operable computing platform upon which to host the DVAES-enablement layer 3400 .
- the DVAES-enabled hardware layer supporting the DVAES-enablement layer described herein is exemplary in nature and may be provided by any hardware, firmware, or software combination that fulfills the operating requirements of the DVAES-enablement layer.
- a DVAES-enabled device's hardware layer 3100 comprises an operational computing platform combined with specialty hardware interfaces and firmware to enable the DVAES architecture.
- a DVAES-enabled device's hardware layer 3100 comprises a processor 3112 ; volatile 3114 and non-volatile memory 3116 (e.g. RAM, ROM, FLASH or other forms of memory devices); a bus 3118 ; one or more optional hard disks or other mass storage devices 3119 , optional I/O interfaces 3113 which could include USB, serial, parallel and other types of interfaces; optional audio I/O devices which would typically include a speaker and a microphone 3140 ; optional telephony interfaces 3110 ; at least one network interface 3120 ; and optional DSP/audio hardware/drivers 3130 .
- a DVAES-enabled device requires sufficient RAM to effectively run the DVAES components assigned to the device.
- the amount of RAM required is implementation dependent. Additional RAM can improve the effectiveness of a DVAES-enabled device and optionally may be included. For instance, adding additional RAM may enable the device to perform more complex voice applications
- a DVAES-enabled device requires sufficient persistent storage such as ROM, FLASH memory (EEROM or other suitable technologies), or other types of non-volatile memory to persistently store information required for the operation of the devices within the device itself. Examples of types of information that may be stored in the non-volatile memory include device firmware, configuration materials, copies of an operating system, VAA components, VAA configurations, VA components, and user personalization information. Persistent storage such as FLASH memory may be provided within the DVAES-enabled device, or may be alternatively accessed using a wired or wireless I/O interface.
- a DVAES-enabled device may be equipped with a local hard disk for the persistent storage of materials as described above.
- Optional audio I/O Devices such as one or more speakers and a microphone could be used to interact with the user.
- the speaker(s) would play audio to the user, and the microphone would pickup the user's spoken responses.
- the DVAES-enabled device's networking layer may include networking components for managing VOIP calls, including, for example, such components as a SIP stack or H.323 services. Components required to interface to external PSTN and PBX systems are supported as part of this layer. Collectively, all such components are considered part of the network layer of a DVAES-enabled device.
- a DVAES-enabled device preferably provides an audio and signaling layer 3300 to abstract the functionality of network voice and data mechanisms from the OS layer 3200 and from the DVAES-enablement layer 3400 .
- the audio and signaling layer 3300 provides audio I/O device abstraction for DVAES components.
- the audio and signaling layer 3300 abstracts a local audio device such as a microphone and speaker into an input/output device associated with a VAA, without regard to the type or location of the physical audio I/O device.
- the audio and signaling layer 3300 provides support for network voice components of the DVAES-enabled device, such as support for VoIP.
- the audio and signaling layer 3300 of a DVAES-enabled device provides DVAES component interfaces to hardware audio and signaling services and network audio and signaling services (collectively audio and signaling services).
- Hardware audio and signaling services includes FSX interfaces connected to a telephone and audio I/O device (speaker/microphone or USB headset) interfaces.
- Network Audio & Signaling Services includes support for Voice Over network Signaling and transport protocols and standards such as SIP, H323, MGCP, RTP, PSTN and WiFi or Bluetooth based audio I/O device interfaces.
- the Audio and Signaling Layer applies aspects of device hardware, the supporting operating system and drivers, and configuration materials for establishing sessions between audio and signaling services and one or more DVAES components.
- the Audio and Signaling layer may provide such mapping based on configurable rules.
- the applications of mapping rules may be based on physical and derived attributes of audio and signaling services.
- An audio and signaling session is a uni-directional or bi-directional connection established with hardware audio and signaling source(s) or a connection established with a network audio and signaling source.
- the audio and signaling layer 3300 manages audio and signaling sessions by providing a connection between DVAES components (e.g. a VAA) and the audio and signaling services.
- DVAES components e.g. a VAA
- the audio and signaling layer 3300 creates an audio and signaling session that is made available to a VAA based on mappings and rules.
- audio and signaling sessions are connected with one or more voice sessions in the line manager component of a VAA, as will be explained in more detail below.
- the features of the audio and signaling layer vary in accordance with the capabilities of the underlying hardware. These features may further include aspects of hardware device controllers, such as home automation controllers, enabling voice applications to control locally connected hardware and control systems. Furthermore, the audio and signaling layer can support one or more audio and signaling sessions depending upon capabilities of the hardware, software resources and configuration of the DVAES-enabled device.
- a DVAES-enabled device can utilize audio associated with standard analog telephones, a microphone/speaker combination (such as a microphone and speaker), VoIP-based telephony devices, locally connected telephones (e.g. FSX interface connected telephone devices), and other devices located on a PSTN or data network.
- a microphone/speaker combination such as a microphone and speaker
- VoIP-based telephony devices e.g. FSX interface connected telephone devices
- locally connected telephones e.g. FSX interface connected telephone devices
- a DVAES-enabled device optionally supports device-level configuration materials that define the configuration and operation of the hardware, operating system, and networking, and audio and signaling layers of the device.
- the configuration materials may be stored in any combination of flat files, XML files, registry databases, or other databases as dictated by the operating system, network, and audio and signaling layer components being configured.
- the configuration materials may be stored in a cache.
- the device configuration materials are not originally stored in non-volatile memory of the DVAES-enabled device itself. Rather, these materials are loaded into each DVAES-enabled device when it boots and requests its network address and other information from the network.
- Traditional mechanisms for providing device configuration materials include the well-known BOOTP, DHCP, and the TFTP protocols.
- some or all of the device configuration materials may be stored within a network-based cache mechanism such as a content distribution service, and may be obtained by the device using protocols appropriate to accessing the content distribution service. Some of these protocols include HTTP and FTP.
- At least some of the device configuration materials are stored on each DVAES-enabled device, either within the DVAES-enabled device's cache, or in a separate configuration area used to persistently store these materials.
- Examples of such persistent storage areas include the FLASH memory or optional hard disk drive of the DVAES-enabled device.
- some embodiments of the device configuration materials define telephony line interface definitions, including line interface configuration parameters, associations between specific line interfaces and operating system device drivers, and the like.
- the device configuration materials define specific limits and capabilities of a DVAES-enabled device, and may include limits upon the capabilities of the device. These device configuration materials may define artificial limits in the capabilities of a device, either for enabling resource sharing between components or to provide software limitations to capabilities that may be removed when the device is activated. For example, specific capabilities of a DVAES-enabled device may only be enabled based upon the level of service that a user purchases. In some embodiments, where clustering or cooperative processing of DVAES-enabled devices is a factor, the configuration materials also provide details on how the DVAES-enabled device interacts with other DVAES-enabled devices in the cluster. Clustering is described in more detail below.
- Each DVAES-enabled device is registered with at least one DVAMS. Groups of DVAES-enabled devices may also be registered. Registration is the process by which a DVAES-enabled device becomes part of a DVAES.
- the DVAES-enabled device connects to the registration service published by the DVAMS and registers itself.
- the DVAES-enabled device provides a unique machine ID along with owner, location, hardware configuration, software configuration, and available user, group of users, VAAs, and VA information as part of the registration process.
- FIG. 7 illustrates an exemplary set of process steps taken by a device in order to register itself with DVAMS.
- a device initiates a connection to a DVAMS.
- the connection can be made using information that is pre-configured or configured on the device and that specifies the DVAMS to access. Alternatively, the connection can be made by referencing a service that specifies the DVAMS to access.
- the device may download information that specifies the DVAMS to access, or use downloaded information that specifies a particular service provider, and the service provider may then specify that the device register with a particular DVAMS.
- the device receives a membership credential from the DVAMS.
- the membership credential may be directly downloaded to the device, or it may be made available in a directory, database, or content delivery service, from where it is subsequently distributed to the device.
- Each membership credential associates a specific device, by means of its unique ID, with a specific DVAMS.
- the device downloads (or has distributed to it) and stores any required DVAES-enablement layer components and configurations from the DVAMS.
- the device receives the actual required components and configurations from a DVAMS.
- the device receives a list of components that are required by the device, and the device is responsible for obtaining these materials via alternate means, such as accessing the materials from a VASS or a CDS.
- the DVAES enablement layer materials may include various implementations of one or more VAAs, VAA configuration materials, device configuration materials, user configuration materials, device components, and any other required components of the DVAES architecture.
- Each implementation of downloaded materials may be embodied as different instances or versions that may have similar or differing features and capabilities.
- DVAES components are, in most embodiments, inherently downloadable into a DVAES device. DVAES components may be directly downloaded, or if stored in a non-volatile cache, automatically updated by refreshing their cache-based storage. The downloadable nature of the components is embodied in their packaging method. For example, in some embodiments, the DVAES components may be written in Java and are deployed in Jar or Ear files. In other deployment environments, DVAES components may be written in C++ or C # and are deployed as part of .NET assemblies using .MSI install packages. In other embodiments, the applications may be developed in C or assembly language, and require third party installers.
- FIG. 8 illustrates another process embodying the invention, by which a DVAES-capable device is registered, has all required components downloaded into it and is made ready for use by one or more users.
- step S 110 the device starts up.
- step S 120 the device checks its state to determine if it is already registered with a DVAMS.
- step S 120 If the device determined, in step S 120 , that it was already registered, the method would have proceeded directly to step S 130 . If the result of the check in step S 120 indicated that the device was unregistered, then after the registration process is complete, the method will eventually reach step S 130 . In step S 130 , the device performs any required downloads and updates its configuration materials. The device also re-starts any required services, or optionally reboots.
- step S 140 the device provides user-provided account materials, and then in step S 150 , the device associates itself with one or more users of the system and reports that association to a DVAMS.
- step S 160 the device performs any required downloads and updates its configuration materials. Also in step S 160 , the device would re-start any required services, or optionally reboots, depending on whether updated materials requiring such an action were downloaded.
- step S 170 the device registers any required VAAs with a DVAMS.
- step S 180 the device receives VAA membership credentials.
- step S 190 the device performs any required downloads and updates its configuration materials, and the device re-starts any required services, or optionally reboots.
- a DVAES device may need to replace or update its configuration materials after the initial configuration process.
- a DVAMS may identify that one or more components on a device are missing, or are out of date and need to be replaced.
- An example of components to be downloaded or updated would include a VAA, configuration materials related to a VAA, device drivers, program executables, device configurations, and the like.
- replacement of these components in the device may not require a complete reset of the device and can be effected by downloading the components, and performing a restart of the affected service or services.
- rebooting the device may occur to re-start the affected service or services. The decision to restart services or reboot the device is implementation dependent.
- FIGS. 6 and 9 illustrates various components of the DVAES enablement layer.
- the DVAES enabling component layer 3400 of a DVAES-enabled device comprises VAA configuration materials 3420 and at least one VAA.
- the DVAES-enabling layer of devices provides support for performing voice applications, enabling these devices to be effective in providing the performance of distributed voice applications in a widely distributed architecture.
- VAA virtual reality-adjustment Agent
- a VAA may be deployed as a single, integrated service, or as a collection of individual services that cooperatively operate to provide VAA services to a DVAES.
- the components that make up a VAA may be pre-distributed or pre-loaded onto a device upon manufacturing the device. More typically, however, VAAs would be deployed on an as—required basis into DVAES-enabled devices, including standard consumer electronics and networking devices, to enable the performance of voice applications by these devices.
- a single user may end up with multiple VAAs loaded on his local device.
- a first VAA could be configured to perform VA components related to the user's personal use
- a second VAA could be configured to perform VA components related to the user's professional use.
- the user may have registered for voice services with two separate service providers.
- a first DVAES is operated by a first operator such as Comcast
- a second DVAES is operated by a second operator such as Verizon.
- Comcast could be providing the user with services related to his personal life
- Verizon could be providing services related to the user's professional life.
- two separate VAAs may be loaded onto the user's local device, one of which is registered with and controlled by the Comcast DVAES, and the other of which is registered with and controlled by Verizon. There would be no inherent conflict in loading both VAAs onto the same customer device. And the DVAMS for the respective service providers would each control, update and maintain their respective VAAs loaded onto the user's device.
- a single piece of local equipment may be providing support for a plurality of users.
- each of the users could make use of a different VAA.
- the VAAs could be provided by, updated and maintained by the same DVAES, or by different DVAESs operated by different operators.
- a VAA could operate in a virtualized manner, and not be bound to specific hardware until they are executed.
- One example of this type of virtualization is deployment of a VAA using software such as VMWare (commercially available from EMC, of Hopkinton, Mass.), Xen (public domain), or virtual server (commercially available from Microsoft of Redmond, Wash.). This means that a VAA may be loaded onto a particular DVAES-enabled device only after a user identifies that he wishes to use that device to access a voice application.
- the VAA configuration materials comprise definitions of the services and components that the VAA requires to operate as configured. These services and component definitions may name services local to the device (such as an ASR or TTS service), or may name remote services (such as remote ASR or TTS services, a DVAMS, TASS, or CDS service).
- the configuration materials may also identify the number of instances of each service to start for the voice browser pool (e.g. a number and types of voice browser sessions required), and may further specify the voice applications that each voice browser instance may perform. Default voice applications, e.g. voice applications that are associated with a specific voice browser instance on startup, also may be assigned to each voice browser instance.
- the VAA configuration materials also provide configuration settings for determining the items to log, log levels, and locations where logs should be sent (e.g. the DVAMS).
- the items to log may be specified on a service or component level, and may be detailed down to the logging of the performance of specific VA components.
- the association between Voice Browsers and specific voice sessions may be made on a static (configuration) basis as defined in the VAA configuration information, or the association may be made on an on-demand basis.
- each voice browser instance may be associated with zero or more voice sessions.
- Each VAA's configuration materials are further configuration materials for the configuration of specific voice browser instances and components.
- Each set of voice browser configuration materials permits monitoring of each voice browser and internal component states, including specific items such as Voice browser start, Voice browser stop, Voice browser errors, Voice browser VA component currently processing, and Voice browser cache state changes.
- the Voice Browser is also configurable to monitor and log VA states, including: Initial URL, Page Transitions, Log tags, Event Catch tags, Session variables, VA component Errors, Input Fields, and specific prompts.
- the VAA Configuration materials may include specifications for the following items:
- the configuration materials may also specify the amount of cache used and caching rules.
- these cache configuration rules may be specified by the DVAES-enabled device configuration.
- the line manager 6110 provides comprehensive voice session management features to a VAA.
- a Voice Session is a bi-directional, managed connection between a voice browser and an Audio and Signaling session.
- a line manager has channels. Channels could operate in Basic and/or Telephony Mode.
- a basic channel provides a uni-directional or bi-directional interface to an Audio and Signaling Session that supports, for instance, a microphone & speaker audio source. This implementation typically relies on the drivers of the DVAES enabled device.
- a telephony channel is a more advanced implementation of a channel as it provides an interface to Audio and Signaling Sessions that support phone type connections (e.g., an analog telephone, a cordless telephone, WiFi, VOIP, Skype, etc.).
- a telephony channel propagates audio and signaling events uni-directionally or bi-directionally between a Voice Browser to an Audio and Signaling Session.
- the Line Manager can support multiple Voice Sessions based on the number of audio and signaling sessions supported by the DVAES enabled device.
- the line manager component 6110 manages instances of Voice Browsers.
- the line manager may create voice browser instances when a VAA is started.
- One or more voice browsers are managed in a pool by the line manager.
- the specifics of the number and type of voice browsers that are activated are based on VAA configuration data.
- a request is made by the audio and signaling layer 3300 to the VAA's line manager 6110 for a voice session.
- the line manager establishes a voice session by accepting the request, and associates the voice session with one or more VAA components based on VAA configuration data or rules. In some embodiments, this assignment activates a voice browser. In some cases, the line manager instantiates new Voice Browser instances if a sufficient number of Voice Browser instances are not available.
- the line manager 6110 also manages the starting, stopping, and suspension/resumption of specific instances of voice browser sessions based on VAA requirements, VA requirements, system, voice browser, audio and signaling session instructions, and/or the configuration materials.
- An Audio and Signaling Session connected to a voice session could be as basic as an analog phone connected to an FXS or FXO interface on a DVAES enabled device, or as advanced as a VoIP or Skype-like connection.
- the Audio and Signaling Session could also be a PBX that treats the VAA as an extension to the PBX.
- a telephony channel in the line manager may be activated instantly when the user picks up a telephone handset connected to an FXS interface of a DVAES enabled device, or it could be activated when a PBX sends a request to a DVAES-enabled device to accept a SIP call. Effectively, in doing so, the line manager enables the VAA to perform a Voice Application on the off hook event of a connected telephone device, and/or when a DVAES enabled device receives a phone call.
- a telephony channel accepts and propagates standard telecom instructions and call/network data (e.g. ANI) to and from the Audio and Signaling Session. Examples of such instructions include “off Hook”, “Dial,” “Bridge,” “Transfer” etc.
- the Line Manager may switch a voice session connection with an Audio and Signaling Session from a first voice browser to a second voice browser. This has the effect of switching the user from one VA to another.
- the Line Manager may accept instructions from a voice browser to pause a voice session and switch the voice session to an alternate voice browser.
- the Line Manager could permit the user to switch voice browsers and launch a new Voice Application based on a “Hot word” voice command. So, in this instance, as soon as the voice browser determines that a hot word has been spoken, the voice browser would make the request to pause the voice session and to switch the voice session to an alternate browser.
- the switch to a different or new voice browser might be triggered by keying a specific DTMF key sequence. Whenever such an instruction is received by the line manager, the current voice browser is paused and the voice session is connected to a new voice browser.
- FIG. 19 is intended to illustrate some exemplary uses of the line manager to connect a plurality of audio and signaling sessions (F 310 a , F 310 b , F 310 c ) to one or more voice browsers (F 210 a , F 210 b , F 210 c ), using voice sessions.
- A&S Session F 310 c is connected to a plurality of voice sessions F 110 b , F 110 c , which are in turn associated with a plurality of voice browsers F 110 a , F 110 b , F 110 c .
- An example of this type of configuration might include a user participating with one or more voice browsers, and a second VA providing “hot word” recognition and processing.
- the line manager 6110 provides logs detailing line manager events to the OA&M Service 6160 .
- the Line Manager Log items may include details of one or more voice sessions, including Start time, End Time, Voice Browser ID, Line Manager Channel ID and Type, Audio and Signaling session ID and Type. Additionally line manager log information may include detailed error messages.
- the logging level provided by the line manager is configurable and provides varying levels of logging in response to a configuration setting.
- the Line Manager may also provide error notifications to the VAA OA&M Service.
- the error notifications may range from severe to warning, and the detail level could be configurable.
- the VAA cache may make a request to the devices cache, which makes a request over the network to the source.
- the configuration of cache behaviors is defined by caching rules.
- the cache with a cache manager component extends local as-needed caching algorithms to content distribution service components, and further provides predictive and push-based cache updates to the proxy server.
- the size of the cache, cache update frequency, caching rules, caching schemes to use, lookup locations for a CDS, and content sources at a DVAMS and/or a VASS are specified as part of the appropriate layer's (e.g. device's, or VAA's) configuration information.
- the cache manager component provides active management of the cache associated with each VAA.
- Each cache manager component is started when its respective VAA is started on a DVAES-enabled device.
- the cache manager could use rule-based configuration information to determine the size of the cache, cache update frequency, and other parameters related to the management of the cache and the cached materials.
- the cache manager may be shared between VAA instances on a specific device.
- the cache manager is preferably configured to proactively review the contents of the cache and to refresh the cached materials on the basis of predicted use. For example, a cached item that is used regularly will be updated in the cache more frequently than an item that is not used regularly. This approach reduces the network latency apparent to a user when a voice browser is performing a VA component using cached components by limiting the number of times that the cache must be refreshed while VA components are performing in real-time.
- the cache manager may be configured to register a messaging interface to receive update requests from other components of a DVAES or DVAMS. Upon receipt of a message indicating a change in cached materials, the cache manager automatically initiates a refresh of its cache of these changed materials. In most cases, the refresh operation can occur in the background without the user noticing the operation.
- voice browsers There may be multiple types of voice browsers, each with their own different voice application interpreters.
- the type of a voice browser required is based upon its need to access services of the VAA and the DVAES enabled device, upon characteristics of the voice application interpreter, and upon instructions of the VA component being performed.
- a first voice application interpreter VAI
- VAI voice application interpreter
- a second, more complex voice application interpreter would support the complete VoiceXML 2.0 standard, which includes telephony standards.
- Embodiments of the voice application interpreter support established voice application specification standards such as VoiceXML, X+V and SALT. Additional embodiments could also support vendor-specific extensions and derivatives of such standards. Alternatively a voice application interpreter may support proprietary or non-standard voice application components. A voice application interpreter may additionally support scripting languages such ECMA Script or a similar mechanism that extends the voice application specification with scripted logic.
- the voice application interpreter provides service interfaces to VAA services.
- service interfaces are messaging conduits between a Voice Browser and the VAA services, such as the ASR service, the TTS service, and the OA&M service.
- the service interfaces may be based on open standards messaging and control protocols (e.g. MRCP for ASR), a standard services interface language such as SOAP, or the service interface may be based on a specific direct API implementation.
- a voice browser may access the Local Services Engine (LSE) to provide VA components additional capabilities, or to improve the efficiency of VA component performance.
- LSE Local Services Engine
- the Voice Browser will provide the ability to process VA component requests and propagate such requests to the LSE.
- the interface between the LSE and the voice browser could be an API or a proprietary inter-process protocol.
- a voice browser session is initiated when a new request is made by the line manager 6110 for a voice browser to perform a particular VA component.
- each voice session is associated with one voice browser session, however one voice session may be associated with a plurality of voice browser sessions.
- “Hot Word” and transcription services may be implemented by having a voice session associated with both a first voice browser session, and a second voice browser session performing a voice application that provides the “Hot word” or transcription service.
- the voice application interpreter required to process the voice application is activated.
- the voice application interpreter would then typically load and validate the first VA component into memory and begin to perform the VA component by interpreting, running, or playing each of said VA's components.
- An instruction to load a VA component may be based on the configuration materials, user input, or an aspect of a running VA component. Some examples of such aspects include VA component logic, a specification within a VA component, a DTMF interaction with the user, or the starting of a session with a voice browser.
- the voice browser or its voice application interpreter may pre-obtain a required set of VA components to ensure that the VA components are immediately available from the cache when they are needed.
- a voice browser or voice application interpreter may pre-fetch a complete or partial set of VA components at a time prior to performing the first component of a VA, thus ensuring that a consistent set of VA components are present in the cache of a DVAES-enabled device.
- the list of required VA components may be found in the manifest. This permits the VA's performance to progress without delays that might occur if VA components were obtained from a network resource.
- the association between a voice browser and a VA and its components may take the form of specifying a URI or URL.
- the association may be made based upon the capabilities of the voice browser and the requirements of the voice application, the needs of the user, and performance considerations.
- a voice browser and voice application interpreter further enable the performance of a VA component by accepting input from a voice session, processing said input in accordance with instructions provided by a VA component, and by communicating instructions between a voice application interpreter and a Voice Browser based on aspects of the currently loaded VA components.
- a voice application interpreter may pass service requests to other VAA components and services
- VA components provide instructions to the voice application interpreter, and the voice application interpreter may in turn instruct other VAA components and external services to do certain things based on the instructions it receives from the VA component.
- the voice application interpreter may function in an instruction only mode or in a control mode.
- the voice application interpreter in an “instruction only” mode propagates performance instructions to the voice browser, and the voice browser then further propagates such requests to VAA services.
- the voice application interpreter in a “control mode” functions as a voice application interpreter in the instruction mode, and additionally manages at least some VAA resources, and acts as a conduit for passing resources between VAA components.
- a voice application interpreter might fetch a VA component containing an audio prompt, and instruct the voice browser to play the audio prompt.
- the voice browser would simply propagate the play instruction with the location of the loaded VA component to the line manager, who in turn would instruct the Audio and Signaling Session, which will in turn instructs a module supporting the hardware or network service on the DVAES enabled device to execute a “Play audio” request.
- a voice application interpreter If a voice application interpreter was acting in the control mode, the voice application interpreter is responsible for playing of a prompt by managing the buffering of the Audio to the Voice Session, hence intimately interfacing with the Audio and Signaling session.
- a voice application interpreter could pass an instruction via the Voice Session to Audio and Signaling session to terminate user spoken input stream directly to the ASR Service.
- the Voice Browser Voice Application Interpreter loads and performs the VA components. This performance includes the performance of the interaction VA components and the performance of referenced resource VA components (e.g. audio files and grammars) in a specified order and organization as specified by the interaction VA components.
- the Voice Application Interpreter performs the component to enable interactions with the user. Additionally the VA components also have the ability to instruct the Voice Browsers to load and transition to other VA components.
- a meaningful interaction is typically established by loading and transitioning to and from many VA components.
- the possible permutations and combinations of the VA component performance sequencing are generated by the VA in the VASS during the rendering process.
- the specific combination of VA components that are performed is typically determined by the User during a Voice Browser Session.
- the VASS may provide VA components pertaining to the “Main Menu Selection”, “Voice Mail”, and “Address book.” While these are the possible VA components that a User could interact with, the specific combination of VA components is determined during the interaction with the user, as he may simply just navigate from main menu VA components to Voice Mail VA components during a given Voice Browser Session.
- a Voice Browser could perform multiple transitions between VA components. These transitions could be enabled by fetching VA components from the cache that may be distributed by the DVAMS beforehand, or may be fetched from the VASS storage in real time or may be fetched from the VASS as a result of a rendering process by the VASS in real time.
- a Voice Browser session could support all such transitions and fetches of VA components in any order.
- a voice browser may include certain features that may be available for all VA components to access. These features are geared to streamline and standardize the VA development process by natively providing certain capabilities in the voice browser that all VA components could access. The voice browser may also support global navigation controls that are accessible to all VA components.
- Navigation controls include the capability for a user to issue commands like Back, Forward, Repeat, Home, Main Menu etc., and for the Voice Browser to process such input without any performance instruction from the VA component.
- the voice navigation facility would be available to all applications.
- the Voice Browser will pass instructions to the ASR service independent of the VA component performance.
- Each voice browser may provide detailed logs of internal voice browser events to the OA&M Service.
- the voice browser log items may include details of one or more voice browser sessions, including start time, end time, voice browser ID, line manager channel ID and type, Audio and Signaling session ID and type, VA Component instruction, Audio Played, ASR Service ID, ASR or DTMF Request, and ASR or DTMF response.
- the voice browser logs may include detailed error messages.
- the error logging level provided by the Voice Browser is configurable and may range from severe to warning.
- LSE 6130 is a VAA execution environment for pluggable utility components that provides a Voice Browser and VA components additional application processing and logic support for the performance of VAs.
- the LSE may propagate requests and data received from a Voice Browser to the appropriate LSE utility components.
- the LSE utility component operates on that request. Such operations may be synchronous or asynchronous.
- An example of a synchronous request is an authentication request to an external system.
- An instruction and transport ASR session provides a voice browser the ability to instruct the ASR engine to load a grammar (a VA component) by providing a reference to the grammar, and to begin recognition upon receiving such instruction.
- the ASR Service would then be waiting for the transport of the audio stream from the voice browser. Once the audio is received, and the ASR engine processes the audio, the ASR service provides the recognition results back to the Voice Browser.
- an ASR service could establish an instruction only session with the voice browser.
- the voice browser would instruct the ASR engine to load a grammar (a VA Component) by providing a reference to the grammar and the Voice Session ID with the Line Manager.
- the ASR Service would establish a transport only session with the Line Manager to receive the audio data directly from the Line Manager.
- the Voice Browser would be functioning in instruction only mode, and would have no control of the audio stream.
- the ASR session could be active and persistent for the duration of the voice browser session, hence maintaining multiple recognition contexts for the entire duration of the voice browser session.
- the ASR Session could be transient and could be established and destroyed several times during the course of a voice browser session.
- an ASR session could be active and persistent for the duration of the voice session. In this case, the ASR session could potentially be maintaining multiple recognition contexts to support more than one voice browser session if such sessions are associated with a voice session.
- the ASR service preferably supports a plurality of recognition engines.
- the ASR service may support multiple simultaneous ASR sessions providing Speech Recognition services to one or more Voice Browsers.
- the ASR service could also be shared between multiple VAAs or other DVAES-enabled devices.
- the ASR Service could provide intelligent recognition management capabilities. These include the ability to do simultaneous recognition of the same utterance across different recognition engines, which could be local or remote.
- the ASR service could also manage the ability to use an external ASR engine for specialized (complex grammars) or higher quality speech recognition.
- An example of the above includes the capability to use a remote recognition engine when the local recognition engine does not provide the desired recognition accuracy for given utterance.
- the Voice Browser In the just-in-time mode, the Voice Browser would be waiting for the ASR service to complete the transcription function before it proceeds to further perform the VA component.
- the ASR service receives the utterance for transcription and informs the Voice Browser of such receipt, based on which the Voice Browser proceeds with the performance of the VA component.
- the ASR Service 6140 would preferably provide detailed logs of internal ASR Service events to the OA&M Service 6160 .
- the ASR Service Log items could include details of all ASR sessions, including Start Time End Time, Voice ASR Session ID, Browser ID, Line Manager Channel ID and Type, Audio and Signaling session ID and Type, ASR or DTMF Grammar, ASR or DTMF Recognized output, confidence score, n-best list, and Recorded Audio. Additionally the ASR Service logs could include detailed error messages.
- the logging level provided by the ASR Service may be configurable and may provide varying levels of logging in response to a configuration setting.
- the ASR Service could also perform error notifications to the VAA's OA&M Service.
- the error notifications could range from severe to warning, and the detail level could be configurable.
- the TTS Service would receive an instruction from a voice browser to convert Text to Audio.
- the voice browser would initiate a connection with the TTS Service when a VA component issues a TTS request.
- Such a connection between the TTS service and the voice browser is considered a TTS Session.
- a TTS Session has a unique ID.
- a TTS session could be an instruction and transport session, an instruction only session, or a transport only session.
- An instruction and transport TTS Session with a voice browser provides the voice browser the ability to instruct the TTS engine to convert text to synthesized audio, and to begin the conversion. Upon receiving such an instruction the TTS Service would convert the text to synthesized audio and transport the audio back to the voice browser.
- the TTS service could establish an instruction only session with the voice browser.
- the voice browser would instruct the TTS engine to convert text and transport the synthesized audio to a target voice session.
- a TTS session could be active and persistent for the duration of a Voice Browser Session.
- a TTS Session could be transient and could be established and destroyed several times during the course of a Voice Browser Session.
- a TTS session could be active and persistent for the duration of a Voice Session. In such a case, the TTS session could potentially be supporting more than one Voice Browser session if such sessions are associated with a single Voice session.
- the TTS Service would provide detailed logs of internal TTS Service Events to the OA&M Service.
- the TTS Service Log items could include details of all TTS sessions, including Start Time, End Time, Voice Session ID, Browser ID, Line Manager Channel ID and Type Audio, Signaling session ID and Type, text, and a resulting synthesized audio file. Additionally the TTS Service logs could include detailed error messages.
- the Logging Level provided by the TTS Service may be configurable and may provide varying levels of logging in response to a configuration setting.
- the TTS Service could also perform error notifications to the VAA OA&M Service.
- the error notifications could range from severe to warning, and the detail level may be configurable.
- the Operations, Administration, and Monitoring service of the VAA is responsible for ensuring that the VAA components are working efficiently.
- the OA&M Service is also the primary VAA component that interfaces with the DVAMS.
- the OA&M Service Upon start up, the OA&M Service loads the configuration materials and establishes a connection with the DVAMS.
- the OA&M service could operate in an active mode and/or a passive mode. In the active mode, the OA&M service starts all the other services in the VAA based on the order specified in the configuration data. In passive mode, all the VAA Services self-start based on a startup routine in the OS. Once the services have started, they register with the OA&M.
- the interface between the OA&M Service and the various other VAA services may be based on an API or a messaging protocol. Examples of messaging protocols that may be used include SNMP, RPC, SOAP, and TCP/IP Messaging.
- the connection between the OA&M service and the DVAMS may also be based on a network provisioning, communications, and monitoring protocols or specifications like SNMP or tr-069.
- the OA& M Service may receive and store log and error events received from the VAA components and services.
- the OA& M service may propagate such log and error information to the DVAMS and optionally to an additional Network management system. Additionally the OA&M service may send a health heartbeat signal to the DVAMS.
- the OA&M service may continue to function if the DVAES-device is temporarily disconnected from the network.
- the OA&M Service would cache normal real-time logs until a connection is available. If the cached log size is too large, extra logs are purged as necessary to free up space to record the logs.
- VAA's may be clustered to provide redundancy, to distribute processing loads, and to optimize the use of specific resources.
- VAA services may be provided by a plurality of DVAES-enabled devices, with the dispatch of specific voice sessions to any of a plurality of VAA instances operating on disparate DVAES-enabled devices. By utilizing the voice session transport mechanisms in this manner, VAA services may be provided by whichever DVAES-enabled device is able to best provide the requested services at a specific point in time.
- the VAA contacts a DVAMS.
- the DVAMS used may be the same DVAMS with which the device itself registered, or a different DVAMS.
- the DVAMS to use is specified in the configuration materials or certification materials for the device and VAA.
- the VAA provides the DVAMS with its device ID, VAA ID, and device/VAA configuration information. If the VAA does not already have a VAA ID, one is generated by the VAA using the unique device ID.
- the DVAMS returns membership materials to the VAA, which bind device ID, and VAA ID to the VAA. These materials may be provided by the DVAMS directly to the device, or it may be provided to a distribution mechanism from which they are subsequently downloaded by the device.
- step 8160 the VAA stores VAA registration materials in VAA configuration materials.
- step 8170 the VAA downloads any required VA components specified by the VAA registration materials. Further, if a local service component is required by the VAA configuration materials, the VAA startup process starts the local service component
- Each VAA also starts its own line manager, which in turn starts the defined voice browsers and voice applications defined in the configuration materials. If no startup voice browsers are defined in the configuration materials, a VAA may not initiate a voice browser upon booting and functions as a telephony gateway.
- the VAA startup process also starts the cache manager and cache interface, as necessary. Changed items in the cache are refreshed during the booting process as required by the appropriate cache rules. For example, if a user changes his voice application preferences on a remote server, the changes are propagated to the DVAES-enabled device as part of the requisite re-rendering and propagation of the user's personalized VAs.
- FIG. 11 illustrates this method.
- the line manager establishes a connection between the voice session and a voice browser, which creates a voice browser session.
- the line manager determines which voice browser and VA to run (although in alternate embodiments, the user may make this determination) based on configuration data or dynamic rules (e.g., rules based on hardware interface, phone line, date, time, etc.).
- the voice browser is already running and the VAA connects the voice session to an already running instance of the voice browser.
- a voice browser may be preconfigured to listen for “hot words” and DMTF instructions. This voice browser may be left running between uses to reduce the amount of time spent stopping and restarting a voice browser with the same voice application.
- the VAA may create a new instantiation of a voice browser to handle the VA.
- the voice browser fetches materials as necessary for the voice application.
- the running voice browser fetches (if needed) the specified voice application components from the cache mechanisms of the VAA, or possibly from a VASS or CDS, in accordance with the DVAMS provided content management rules.
- Voice application components, including required resources, audio files, and data may be located in VAA cache, device cache, local storage, a CDS, a VASS, a DVAMS, and/or a third party network.
- step 7180 the voice browser performs the VA to enable interactions with the user.
- the Content Distribution Service may be deployed in strategic locations of the network.
- the CDS is an optional component of a DVAES that may be helpful to overall system performance when the DVAES user base substantially increases.
- the CDS provides network-based caching of content such as VA components, audio files, grammars, etc. in the broadband service provider's network. This caching helps performance by reducing network traffic latency by moving static content closer to the network edge.
- a Distributed Voice Application Management System (DVAMS) is responsible for operating, monitoring, and administering a DVAES.
- the DVAMS also provides device, user, and DVAES-component registration services, and provides administration support for configuring one or more Virtual Distributed Application Environments (VDAEs) that may be deployed using specific DVAES implementations.
- VDAEs Virtual Distributed Application Environments
- the concept of a Virtual Distributed Application Environment is discussed in greater detail below.
- the DVAMS may maintain one or more registration directories to track registration information, and associated credential information.
- the DVAMS registration directories can function to integrate and publish information about a user, a group of users, devices, VAAs, VAs and VASSs.
- the registration directory may be constructed using a commercial directory product such as openLDAP (open source). Alternatively, commercial directory services such as those provided by Novell (Provo UT) may be used. In other embodiments, a database such as those commercially available from Oracle or Microsoft may be used.
- the DVAMS Registration Service could be a web-based interface, or the Registration service could function through one or more VAs.
- One preferred implementation of the DVAES registration service is a SOAP-based web service, although other forms of service may be provided as implementation requirements dictate.
- the registration service accepts a request for registration from a DVAES-enabled device, a user, a group of users, VAAs, and VASSs, validates this request, and if the request is valid and authorized, enters the registration information in the DVAMS registration directory.
- FIG. 12 shows the components of an exemplary embodiment of a Distributed Voice Application Management System (DVAMS) 11000 .
- the DVAMS comprises Presentation Services 11110 , DVAMS Services 11200 , and Messaging Services 11300 .
- the Presentation Services 11100 include the components of a DVAMS that provide user interfaces, service and administration interfaces for operations personnel, and other public interfaces to DVAMS and DVAES services.
- the presentation services can include a Services Administration Portal 11110 , a Network Operations Portal 11120 , and a Subscriber Portal 11130 .
- the Service Administration Portal 11110 would be used by Customer Care and DVAES Operators to manage a DVAES, its voice applications, and users.
- the Service Administration Portal would typically be a web based system that provides user and device management features.
- the Service Administration Portal will also facilitate provisioning of application features by establishing configuration parameters and application preferences for different users.
- the Service Administration Portal could also provide an operator the ability to organize users into groups and to assign roles and permissions to the users and groups for the purpose of administering the applications available to the users/groups of users.
- the users could be grouped based on regional locations, or communities, or based on their membership in a particular organization.
- An operator may enable a device associated with a user using the Service Administration Portal. Activation of the device will allow the user to access the different voice applications using the device.
- the Operator may additionally create one or more VDAEs using the Service Administration Portal, and assign users, applications and associated devices to particular VDAEs.
- the Subscriber Portal 11130 provides a personalized environment for users to manage and access their voice applications and device configurations.
- the subscriber Portal might also allow new users to register for services, as described below. Additionally, the portal may act as a medium for operators to provide users with enhanced applications in the form of pluggable user interface components called “portlets.”
- the Subscriber Portal may also facilitate the provision of promotional information and customer support to the users.
- users may be able to manage aspects of their DVAES-enabled devices, such as the device configuration settings.
- the Subscriber Portal may allow a user to add or subscribe to new VAs, to modify their existing VAs, and to cancel VAs.
- VA designed to provide the user with messaging via e-mail, or voice mail.
- the user could customize the messaging application to greet callers with personalized messages, or provide call handling of incoming calls based on different caller profiles.
- the user may be able to customize e-mail messaging applications to notify the user of the receipt of important e-mails by ringing a phone connected to the device and playing an alert message.
- the Subscriber Portal could allow a user to customize VAs in many, many other ways.
- the Subscriber Portal 11130 may allow a user to register with a DVAES. This would typically be a web-based portal that a user could access to register for services.
- FIG. 13 illustrates a process in which a user registers and activates their account using a web-based Subscriber Portal of a DVAMS.
- step 17110 the User clicks on the new customer registration link.
- step 17120 the link takes the user to the new customer registration page. This page is hosted/controlled by a DVAMS.
- step 17140 the DVAMS would create a user ID, if necessary.
- a user could be authenticated in various different ways, including through a voice print analysis. Thus, the input or generation of a user ID and password may not be necessary.
- step 17150 the DVAMS produces configuration materials, including binding materials for user/devices.
- step 17170 the DVAMS may also produce other, optional configuration materials.
- step 17180 the DVAMS pushes he configuration materials to a directory.
- a notification may also be sent to an associated VASS of this change in the system configuration, which would cause the VASS to render personalized VAs to the device associated with the user.
- step 17190 the DVAMS would push configuration materials to the device itself, possibly via a CDS.
- An optional notification may be sent to the device or DVAES components to facilitate the pushing of the materials from the CDS to the device.
- step 16110 the VAA would connect to a registration service in a DVAMS.
- step 16120 the DVAMS would identify the VAA from configuration materials.
- step 16130 the DVAMS would bind the VAA to the user.
- step 16140 the DVAMS adds or updates the user information in a registration database.
- the Messaging Services 11300 of a DVAMS could comprise, among other things, a Device Messaging component 11310 , a VAA Messaging component 11320 , a VASS Messaging component 11330 , and an External Messaging component 11340 .
- the Device Messaging component could operate to send notification messages to DVAES-enabled devices. This could include messages regarding cache updates and refresh notifications.
- the Device Messaging component could function to receive messages from DVAES-enabled devices. Received messages could include device operation logs, and error messages.
- the VASS Messaging component could operate to send messages to VASSs regarding such things as the need to render new VA components for particular DVAES-enabled equipment, or the need to re-render VA components to a particular user's DVAES-enabled equipment to further modify or personalize the VA.
- the messages could also direct VASSs to transfer or copy various items of content into one or more CDSs.
- the VASS messaging component could also operate to receive messages from the VASSs, such as operations logs and error messages.
- the DVAMS Services component 11200 can be broadly divided into Device Services 11210 , VAA Services 11220 , VA Services 11230 , and VASS Services 11240 .
- the Device Services component 11210 could include, among other elements, a Device Provisioning and Upgrades component 11212 , a Monitoring component 11214 , and a Configuration component 11216 . These services provide support for device registration, deployment, and device tests, as well as monitoring and configuration services.
- the Device Provisioning and Upgrades component 11212 could include deployment and boot testing for a DVAES-enabled device, its OS, firmware, networking, and audio and signaling layers.
- the Monitoring component could function to monitor device heartbeat signals, device logs, device errors, device CPUs, and device memory and cache allocations.
- the Configuration component 11216 could function to manage and control device settings, device start-up, and device shut down.
- a DVAES credential is constructed that indicates that a particular device has been registered with a DVAMS.
- the DVAMS credential may indicate the device's unique ID, that it was registered with a particular DVAMS, and also may indicate an expiration date after which the credential is no longer valid. Other information also may be included in the credential.
- the DVAES credential is returned to the device as an indication that it has been successfully registered.
- the DVAMS would receive the registration request, along with the device's unique ID, and the device's capabilities/configuration materials.
- Optional information included with the request may also include an account/password or other materials indicative of the business relationship between the DVAMS operator and the device's owner.
- step 12120 the DVAMS makes a determination if the materials provided by the device need validation. If so, the method proceeds to step 12125 where the materials are checked to determine if the device can be registered. If the device cannot be registered, the process terminates with a failure to register the device. If the device can be registered, or if no materials requiring validation were provided in the first place, the method proceeds to step 12130 , where the DVAMS stores the device's information in the DVAMS device registry. If information about this particular device was already present in the registry, the DVAMS replaces the contents in the registry with the newly provided information.
- the DVAMS creates a device credential.
- the device credential is a SAML assertion that binds the device's unique ID with the DVAMS that registered it.
- the device credential may bind the device to another DVAMS if so required by the architecture. This would result in the device being registered by a first DVAMS, but being controlled by a second DVAMS.
- a copy of the credential may be optionally stored in the device registry.
- steps 12172 and 12174 could be accomplished by having the DVAMS create a new instance of the device's component list, and then publishing that list to a CDS. The DVAMS would then notify the device that the component list has changed, and require the device to download the new component list from the CDS. The device could then download any missing components.
- the Device Monitoring component 11214 could function to monitor device heartbeat signals, device and operating system error reporting, and resource utilization, including utilization of CPU and memory.
- the DVAMS device-monitoring component preferably comprises an instance of a heartbeat service, an SNMP trap sink for error reporting, and an SNMP-based resource-monitoring component.
- the Device Configuration component 11216 provides configuration management of devices, including management of service configurations, which comprises two aspects, configuration collection, and the management of the configuration section of the device registry.
- Configuration collection may be provided using SNMP, TR-069, or other protocols for collecting configuration materials from a device. Once configuration materials are collected, they are associated with a device and stored in the device registry for subsequent use.
- the VAA Services component 11220 could include, among other elements, a Registration, Activation, and Deactivation component 11222 , a Monitoring component 11224 , and a Configuration component 11226 .
- the functions of the Registration, Activation, and Deactivation component are self-explanatory.
- the VAA Monitoring component could function to monitor various VAAs aspects, such as VAA heartbeat signals, VAA application logs, VAA recognition logs, and VAA errors.
- the VAA Configuration component could function to enable VAA extensions, VAA lines, VAA codices, and recognizer tuning parameters.
- the DVAMS VAA services component provides a service interface to a VAA registry, which enables the registration of VAAs on DVAES-enabled devices within the DVAES architecture.
- the service interface to the VAA registry could take at least two forms. First, a web user interface for DVAES operators would permits DVAES operators to manually register and manage VAAs on specific DVAES-devices and associated information stored within a VAA registry. Alternatively, the service interface could be a fully or partially automated interface that allows VAAs to directly register with a DVAMS. An automated interface to the DVAMS's VAA registry may take the form of RPC, SOAP, or other well-known service interface mechanisms.
- the service interface provides the capability to “register” a VAA.
- Registration is a process by which information about a specific VAA and its underlying device is collected and stored in the VAA registry, and the VAA is issued a DVAES credential that indicates that the VAA has been registered.
- Information collected about each VAA includes the VAA's unique ID, VAA and device configuration materials, including component versions present on the device, hardware capabilities, and the like. Examples of the type of materials collected are included in the list of device capabilities described elsewhere.
- the VAA registry can be a unique registry dedicated to the management of VAA information, or it may be a more general service such as a DVAMS registration directory.
- a DVAES credential is constructed that indicates that a particular VAA has been registered with a DVAMS.
- the DVAMS credential indicates the device's unique ID, the VAA unique ID, and that the VAA was registered with a particular DVAMS.
- the credential may also indicate an expiration date, after which the credential is no longer valid. Other information may also be included in the credential, as desired.
- the DVAES credential is returned to the VAA as an indication that it has been successfully registered.
- a process such as the one shown in FIG. 16 is performed by the DVAMS in response to a “register VAA” request. This process would typically be performed by the Registration, Activation and Deactivation component 11222 of the VAA Services component 11220 .
- the DVAMS receives the request, the device's unique ID, the VAA's unique ID, and the device's capabilities/configuration materials.
- the DVAMS makes a determination about where the VAA can be registered. The decision may be made based on a number of factors, including aspects of the device the VAA is running in, details about the owner of the device, or other factors such as performance and the ability of a DVAES to support the particular device or device configuration.
- step 13130 the DVAMS stores the VAA's information in the DVAMS VAA registry. If the VAA was previously registered, the process replaces the contents in the VAA registry with the newly provided contents.
- the DVAMS creates a VAA credential.
- the VAA credential is a SAML assertion that binds the device's unique ID with the VAA's unique ID and with the DVAMS that registered it.
- the VAA's credential may bind the device to another DVAMS. In this instance, a first DVAMS would have registered the VAA, and a second DVAMS would be responsible for future monitoring and control of the VAA.
- a copy of the credential may be optionally stored in the VAA registry.
- step 13170 the DVAMS reviews the VAA configuration. Then, in step 13180 the DVAMS determines if the VAA has all required components. If all required components are present in the VAA, the process ends. However, if the result of the check in step 13180 indicates that all required components are not present in the VAA, the method proceeds to step 13185 , wherein the DVAMS instructs the device as to the new components it requires. This instruction may be performed by downloading required components directly into the VAA, or by providing to the VAA a list of the required components, or by other means.
- step 13185 could also be accomplished by creating a new instance of the VAAs component list, publishing that list to a CDS, and then notify the VAA that the component list has changed. The VAA could then download the new component list, download any missing components, and then restart to load the new components.
- the VAA Monitoring service 11224 could include an instance of a heartbeat signal monitoring service and centralized log collection from the VAA. Log collection may be undertaken using a common logging protocol such as syslog, or may be implemented using a custom log management process. ASR and TTS logs are also managed in this way.
- the DVAMS receives performance logs, VA logs, TTS logs, and ASR logs from VAAs, and performance metrics from DVAES-enabled devices. These logs are processed by the DVAMS to identify errors and non-optimum performance. Based on these analyses, changes may be made in the personalization materials associated with a user, a VAA, or a device (depending upon type of change).
- the DVAMS may generate a new ASR grammar to correct speech recognition failures for a particular user.
- the DVAMS would then associate the newly generated ASR grammar with a user's preferences so as to correct ASR deficiencies in all newly rendered VA components.
- the DVAMS might also cause previously rendered VAs to be re-rendered to incorporate the newly generated ASR grammar.
- the DVAMS may act to change the presentation order preference associated with the voice script for that user's rendered copies of the VA.
- the VA Services component 11230 could include, among other elements, a VA Distribution and Activation component 11232 , a VA Cache Content Manager 11234 , a VA Monitoring component 11236 , and a VA Configuration component 11238 .
- the VA Distribution and Activation component could function to control rendering, activation, deactivation, and registration of VAs.
- the VA Cache Content Manager would function to organize content for caching. The caching could be based on various system events.
- the VA Monitoring component could function to monitor and log user usage for billing, VA heartbeat signals, and/or VA application logs.
- the VA Configuration component would function to control VA permissions, VA privileges, and default behavior. Some of these items would be controlled or configured based on individual user's characteristics, their usage patterns, and their stated preferences.
- the VASS Services component 11240 could include, among other elements, a System Data Services component 11242 , a VASS Monitoring component 11244 , and a VASS Configuration component 11246 .
- the System Data Services component could provide a VASS with access to DVAMS data (e.g., logs, User billing information, Class of Service, user characteristics, etc.).
- the VASS Monitoring component could operate to monitor VASS heartbeat signals, VASS errors, VASS logs, traffic, server load, CPU, and memory usages.
- the VASS Configuration component could operate to control various VASS parameters and data access locations.
- the DVAMS could be configured such that the VA deployment and activation component 11232 , the VAA registration, activation and deactivation component 11222 , and possibly the VASS configuration component 11246 , are all organized under a consolidated DVAMS distribution service.
- the DVAMS distribution service would be responsible for moving the VA components and the VAA components to target locations.
- a deployment specification would inform the distribution service to either move VA and/or VAA content to the CDS, or to move the content to a DVAES enabled device, or a combination of the above.
- the distribution service could process the move instruction by physically moving the components to the target destinations in a push model, or by instructing the targets to refresh themselves from a storage location.
- the distribution service may also have the ability to interface with cache service on the DVAES enabling layer of a VAA and/or with the VAA cache service.
- the DVAMS may have a deployment service that is responsible for deploying VAAs to DVAES-enabled devices, and also possibly VAs to a VASS.
- the DVAMS may use the above-mentioned distribution service for deploying the VAA components and VAA configuration materials on DVAES-enabled devices.
- the DVAMS would create and provide a deployment specification to the distribution service.
- the deployment specification for a VAA may include information about the VDAE, the location of a CDS, a deployment model (pull/push), a list of VAA components that need to be deployed, and other DVAES specific deployment considerations (for instance, the component Packing and Unpacking modes supported by the DVAES OS).
- the DVAMS may, in some circumstances, may only deploy the VAA configuration materials or a few VAA components.
- the DVAMS manages many broad categories of data.
- the DVAMS can use this data as part of an analytics process, which is continuous, which is intended to constantly improve the customization of VAs for individual users.
- the objective of this analytics process is to intelligently correlate data generated by the DVAES during its functioning with historical DVAMS data, and with the data stored in all repositories, to improve the usability of the Voice Applications.
- the improvement to user experience could be specific to a user, a group of users, a specific device, a VDAE, or some combination of the above.
- the impact of the analytics could be to render VA components, or the VAA, or in some cases even the VASS and the DVAMS itself.
- the analytics engine correlates available data about a user, and possibly data about that user's local devices, with other pertinent system data to determine root causes of any problems.
- a VA might be provided for the user to collect information from the user to further narrow or determine root causes of lack of performance.
- the analytics process might determine that the device under use is constantly low on memory and/or CPU, hence it does not perform well on large grammar recognitions.
- the analytics might determine that the device is used in an environment that has very poor background noise, or that the user is saying a phrase that is not supported by the grammar etc. Based on such results, the Analytics engine will take corrective steps to personalize the VA or the VAA to resolve such issues.
- the analytics engine could also operate to render highly personalized VA components in a more proactive manner to improve user performance.
- the analytics engine could decide that the user's skill level has changed based on observing the user's usage pattern. As a result, the analytics engine may determine that the user should use a more intuitive and streamlined user interface, instead of a verbose interface.
- the engine could also change the size of the cache of the VAA based on how the rest of the resources on a device are utilizing the memory.
- the analytics process may initiate content distribution to the device proactively to eliminate latency. For instance, the analytics engine may determine that a user accesses certain types of content at approximately the same times each day. For instance, the user may access sports team scores or news headlines at approximately the same time each day. In that instance, the analytics engine will ensure that the desired content is proactively cached on the user device in advance of the time that the user would typically access the data, which should make the delivery of the information to the user more rapid.
- VDAE Virtual Distributed Application Environment
- VDAE The purpose of creating a VDAE is to provide a logical connection between VDAES users and elements to facilitate the management of the users and elements.
- the best way to illustrate the benefits of creating VDAEs is to provide some specific examples.
- VAAs associated with Provider Y that are also stored on some devices located in the employees' offices, homes and mobile computing devices. These VAAs would provide the employees with services in their personal lives.
- a DVAMS could define a first VDAE to include all the employees VAAs that are associated with their corporate employment, and that are associated with Provider X. This would allow the DVAMS to make global changes to the DVAMS services that the corporation provides to its employees. A certain change could be made for all the employees by applying the change to all of the elements defined in the first VDAE.
- VAA for business services
- provider Y for personal services
- the employee could also have another VAA from Provider X (for business services) and another VAA from Provider Y (for personal services) stored on a device in his office.
- VAA for business services
- VAA from Provider Y
- the DVAMS is instructed to make changes to the employee's work related services, by altering only the VAAs that are in first VDAE, no changes will be made to the employees personal VAAs, even though they are resident on the same devices.
- a second VDAE as encompassing all VAAs that are associated with a single employee. This would mean that all the work related VAAs from Provider X and all the personal VAAs from Provider Y would be grouped in the second VDAE. Now, if some aspect of personal information regarding the employee changes, that change can be applied to all of the employees voice services by making the change for all elements in the second VDAE. The change could be applied regardless of who provides the services, and regardless of where the VAAs are located.
- a logical VDAE could be defined to include all VAAs, VAs and services that are provided by a particular service provider. This would allow a DVAMS to make global changes to all elements of its system by applying the change to all things grouped within that VDAE.
- a VAA can be a part of multiple different VDAEs, and may perform voice applications associated with a plurality of VDAEs.
- a particular employee's personal services VAA which is provided by service provider Y, could be a part of a first VDAE that associates all of that user's VAAs, and a part of a second VDAE that associates all of the VAA's located within one state, and a part of a third VDAE that associates all VAA's provided by service provider Y.
- VDAE Voice Access Attachment
- Any grouping of users, equipment, VAs, VAAs, VASSs, CDSs or other system components could be grouped into a VDAE by some common logical connection. And that VDAE grouping could then be used to help manage the system, and delivery of services to the users.
- Each VA is allocated to at least one VDAE, which maps its deployment across one or more DVAES-enabled devices and VASS platforms that are similarly associated with the VDAE.
- the allocation is performed by a DVAMS as described below.
- Each VA to be deployed is allocated in this manner.
- a VASS allocated to the VDAE “renders” the VA, producing a version of the VA components customized to operate within the constraints of each allocated VAA (and thus the devices that the VAAs are associated with).
- User associations within each VDAE may provide further information that is used to customize each VA with personalization information associated with a specific user or group of users.
- a VDAE has users allocated to it after the user is registered with a DVAMS. In some instances, the allocation of users to a VDAE is automatically performed on the basis of a default VDAE named in an account or device profile associated with the user's account or device respectively. Furthermore, users may be allocated to a VDAE from the operator interface.
- a VDAE has VAAs allocated to it, based upon relationships between users and devices. If a user and device are both associated with a VDAE, a VAA is associated with the user+device. If no VAA is presently associated, a new VDAE is created and is then associated with the user and device.
- a VDAE has one or more VASSs associated with it.
- VASS's are associated with a VDAE based upon requests received from the operator interface.
- a VDAE has one or more DVAMS's associated with it. DVAMS associations are made based upon the operator interface.
- a VDAE may have one or more CDS's associated with it. CDS associations are made based upon the operator interface.
- a VDAE may be used in several ways.
- a VDAE may be used to represent a group of users of a specific device (e.g. a premise device).
- the VDAE represents the set of users, VAAs and VAs that are assigned to a particular premise device.
- a VDAE may represent the set of users, devices, and voice applications that are managed by an operator.
- a VDAE could represent a social group, a workgroup at an office, members of an affinity group, members of a loyalty program (like a frequent flyer program), or members of a group that have signed up for a specific voice service.
- VDAEs may be nested.
- a first VDAE may encompass or include a plurality of subordinate VDAEs.
- a first VDAE may represent a user's home. Multiple subordinate VDAEs might represent each family member in the home. The VDAEs for each family member would be encompassed by or included within the first VDAE for the entire home.
- One or more VDAEs may be deployed to one or more DVAESs.
- a VDAE is deployed by translating a VDAE specification into a deployment specification.
- the resulting deployment specification names the VAs to be deployed to specific devices for use of specific users. For example, if a VDAE associates a first user and a second user with a first device, and further associates a first VA with said first user, and second and third VAs with the second user, and determines a first VAA is present on the first device, and a second VAA is present on a second device, a deployment specification that requires: 1.
- the first VA should be rendered for the first user considering the environment of the first VAA and the first device; 2.
- the second and third VAs to be rendered for the second user should consider the environment of the second VAA and the second device; 3.
- the first VA components are distributed to the first VAA; and 4.
- the second and third VA components are distributed to the second VAA.
- a DVAMS can use the VDAEs to help update or upgrade system components. For instance, let's assume that a VDAE logically associates all users of a particular VA. And let's assume that a voice dialing grammar in that VA must be changed. In order to make this change, the VA must be re-rendered to all of the users who make use of the VA. These re-rendered VA components must then be propagated to all affected DVAES-enabled devices.
- the DVAMS can use the VDAE for mapping all of the users of the VA to generate a deployment specification that lists all affected users and/or VAAs, and the DVAES-enabled equipment that uses the VA.
- the DVAMS would then provide this deployment specification to the VASS and instruct the VASS to re-render the necessary VA components for all the users/VAAs in the deployment specification.
- the VASS would then re-render the necessary VA components for each of those users/VAAs listed in the deployment specification.
- the VASS would also distribute the re-rendered VA components to the appropriate DVAES-enabled devices. This could be done by notifying each of the affected DVAES-enabled devices to update their caches with the newly tendered VA components.
- a DVAMS determines that a particular device requires an update of one or more of its configuration materials. This determination could be based upon a change in the allocation of a device to a VDAE (and thus a DVAES). This determination could also be based upon receiving notification of a change in required components on a device, or when a device is determined to require adjustments in its configuration based upon performance, network topology changes, etc. In other instances, the DVAMS may have completed an analysis of allocation models, configuration specifications, device performance reports, device capability information, or other materials and concluded that a change in a device's configuration materials is necessary.
- step 14120 the DVAMS generates the updated configuration materials.
- step 14130 the DVAMS pushes the updated configuration materials to the CDS.
- the method would then proceed directly to step 14170 , where the DVAMS would inform the cache manager on the VAA or device, via a communication protocol, to refresh the cache holding the configuration materials.
- the DVAMS may provide the destination for the refresh i.e. the CDS.
- the cache manager may know to go to the CDS based on update and refresh rules.
- the communication protocol between the DVAMS and the VAA/device may be specific, or it may be a general request to a cache manager to obtain a non-cached version of the content.
- step 14140 the updated materials are cached somewhere on the network.
- the DVAMS informs the CDS via a communication protocol that there is new content that needs to be refreshed.
- this request can be a content request made to the CDS specifying delivery of a non-cached copy of the content, or it could be made via a CDS specific protocol/request.
- step 14160 the CDS fetches the content that needs to be refreshed.
- the content can come either from a cache on the DVAMS, from a VASS, or from other DVAES locations.
- the content that is typically stored on the CDS is common to groups of VAAs. This embodiment would then proceed to step 14170 , discussed above, where the cache manager of a VAA or device is instructed to update the cached configuration materials.
- DVAES-enabled device's dynamic configuration mechanism supports the provisioning of DVAES services using whichever device a user is currently accessing.
- a user may be provisioned fully on a first DVAES-enabled device, and may be provided services of said first device using any of a plurality of DVAES-enabled devices that are appropriately associated using one or more clustering or cooperative processing techniques.
- a user may have access to a telephone device connected to a FSX port on a first DVAES-enabled device, and be seamlessly connected over a network to their personalized voice applications deployed on a second DVAES-enabled device when they pick up the handset of the telephone.
- a cluster of DVAES-enabled devices may have user identification/authentication materials deployed on each device within the cluster, and may route the user's requests to one or more DVAES-enabled devices in the cluster for fulfillment. Said selection of services, and routing of requests, may be performed upon the basis of aspects of the DVAES architecture and device loads, including, for example, specific device capabilities, provisioning decisions, current load, network latency, and device location.
- DVAES components may be aggregated in any desired manner and will interoperate freely if appropriate credentials are provided.
- the aggregation takes the form of clustering. Clustering provides redundancy at the platform level and provides redundancy, and in some instances, load balancing.
- aggregation takes the form of cooperative processing where multiple hardware instances are members of a DVAES and each hardware instance may independently provide services as required to perform a distributed, personalized voice application for a user. The user receives services at whichever hardware device they are using, without regard to the location that they are accessing the DVAES from or the intervening network topology.
- the DVAES architecture supports a plurality of caching schemes.
- the DVAES architecture optimizes the overall performance of the system by using a combination of caching schemes, including the use of predictive, push and pull based caching, combined with the content distribution service (CDS) technologies, and “wakeup-pull” caching schemes.
- the caching schemes may, in part, be based upon allocations, and those allocations may themselves be based upon VDAE groupings.
- the caching schemes would be rule based. These rules may be distributed within a DVAES as needed, and may be dynamically changed to account for variations in network latency, processing capabilities, and usage patterns.
- Traditional web-based content distribution networks (such as Akamai) are an additional caching mechanism that is advantageous to the DVAES architecture.
- Each of these caching techniques permits content created by a VASS or DVAMS to be transparently propagated to a DVAES-enabled device.
- any reference in this specification to “one embodiment,” “an embodiment,” “example embodiment,” etc. means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention.
- the appearances of such phrases in various places in the specification are not necessarily all referring to the same embodiment.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
-
- Services and Number of instances of each service;
- Associations between services;
- Optional Associations of OA&M Service to VAA Services;
- Line Manager Configuration Items;
- Number of Voice Sessions and Types;
- Association of Voice Sessions to Audio and Signaling sessions;
- Association of Voice Sessions to ASR sessions;
- Association of Voice Sessions to TTS sessions;
- Association of Voice Sessions to Voice Browser Sessions;
- Optional Associations of Voice Sessions to OA&M Services;
- Voice Browser Configuration Items;
- Number of Voice Browser Sessions and Types;
- Association of Voice Browser Sessions to Voice Sessions;
- Association of Voice Browser Sessions to ASR sessions;
- Association of Voice Browser Sessions to TTS sessions;
- Associations of Voice Browser Sessions to an OA&M Service;
- ASR Service Configuration Items;
- Association of ASR Sessions to Voice sessions;
- Associations ASR Sessions to OA&M Service;
- TTS Service Configuration Items;
- Number of TTS Sessions and Types;
- TTS number of Voice Browser Sessions and Type;
- Association of TTS Sessions to Voice sessions; and
- TTS associations of OA&M Service;
-
- 1. Real time voice application management, which includes voice application installation, activation, deactivation, monitoring, and parameter configuration.
- 2. System monitoring, which includes monitoring hardware and third party software, monitoring for errors, warnings and notifications.
- 3. System configuration, which includes setting parameters and configuration files, executing recovery routines, and platform image rollback capabilities.
- 4. Allocation of resources to individual users, DVAES-enabled devices, and services to effect a smoothly operating DVAES. This allocation of resources could help to establish one or more Virtual Distributed Application Environments (VDAEs), which are discussed in more detail below.
- 5. Collection and analytical processing of system data produced during the operation of each DVAES. This data primarily includes system configuration settings and information collected during runtime from various DVAES services and components. For instance, the data could include monitoring results, tuning logs, and error notifications. As noted above, this data can be analyzed and used during the VA rendering process to help customize or personalize individual rendered VA components that are allocated to particular users.
-
- 1. A set of users, or a plurality of groups of users; or
- 2. A set of DVAES-enabled equipment; or
- 3. A set of DVAES-enabled equipment and/or VASSs and/or CDSs; or
- 4. A grouping of any combination of the above-mentioned elements.
Claims (31)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/896,366 US12438973B2 (en) | 2005-09-01 | 2024-09-25 | Voice application network platform |
Applications Claiming Priority (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US71280805P | 2005-09-01 | 2005-09-01 | |
| US11/514,116 US20070047719A1 (en) | 2005-09-01 | 2006-09-01 | Voice application network platform |
| US15733709P | 2009-03-04 | 2009-03-04 | |
| US12/717,893 US11102342B2 (en) | 2005-09-01 | 2010-03-04 | System and method for displaying the history of a user's interaction with a voice application |
| US17/410,683 US11909901B2 (en) | 2005-09-01 | 2021-08-24 | System and method for displaying the history of a user's interaction with a voice application |
| US17/965,616 US11616872B1 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US18/115,562 US11876921B2 (en) | 2005-09-01 | 2023-02-28 | Voice application network platform |
| US18/412,940 US12126750B2 (en) | 2005-09-01 | 2024-01-15 | Voice application network platform |
| US18/896,366 US12438973B2 (en) | 2005-09-01 | 2024-09-25 | Voice application network platform |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/412,940 Continuation US12126750B2 (en) | 2005-09-01 | 2024-01-15 | Voice application network platform |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20250016260A1 US20250016260A1 (en) | 2025-01-09 |
| US12438973B2 true US12438973B2 (en) | 2025-10-07 |
Family
ID=42266101
Family Applications (10)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/717,893 Active 2026-12-11 US11102342B2 (en) | 2005-09-01 | 2010-03-04 | System and method for displaying the history of a user's interaction with a voice application |
| US17/410,683 Active US11909901B2 (en) | 2005-09-01 | 2021-08-24 | System and method for displaying the history of a user's interaction with a voice application |
| US17/965,598 Active 2026-09-01 US11743369B2 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US17/965,616 Active US11616872B1 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US17/965,609 Active US11706327B1 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US18/115,562 Active 2026-11-07 US11876921B2 (en) | 2005-09-01 | 2023-02-28 | Voice application network platform |
| US18/139,791 Active US11778082B2 (en) | 2005-09-01 | 2023-04-26 | Voice application network platform |
| US18/139,808 Active US11785127B2 (en) | 2005-09-01 | 2023-04-26 | Voice application network platform |
| US18/412,940 Active US12126750B2 (en) | 2005-09-01 | 2024-01-15 | Voice application network platform |
| US18/896,366 Active US12438973B2 (en) | 2005-09-01 | 2024-09-25 | Voice application network platform |
Family Applications Before (9)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/717,893 Active 2026-12-11 US11102342B2 (en) | 2005-09-01 | 2010-03-04 | System and method for displaying the history of a user's interaction with a voice application |
| US17/410,683 Active US11909901B2 (en) | 2005-09-01 | 2021-08-24 | System and method for displaying the history of a user's interaction with a voice application |
| US17/965,598 Active 2026-09-01 US11743369B2 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US17/965,616 Active US11616872B1 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US17/965,609 Active US11706327B1 (en) | 2005-09-01 | 2022-10-13 | Voice application network platform |
| US18/115,562 Active 2026-11-07 US11876921B2 (en) | 2005-09-01 | 2023-02-28 | Voice application network platform |
| US18/139,791 Active US11778082B2 (en) | 2005-09-01 | 2023-04-26 | Voice application network platform |
| US18/139,808 Active US11785127B2 (en) | 2005-09-01 | 2023-04-26 | Voice application network platform |
| US18/412,940 Active US12126750B2 (en) | 2005-09-01 | 2024-01-15 | Voice application network platform |
Country Status (1)
| Country | Link |
|---|---|
| US (10) | US11102342B2 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101307578B1 (en) * | 2012-07-18 | 2013-09-12 | 티더블유모바일 주식회사 | System for supplying a representative phone number information with a search function |
| US20210043214A1 (en) * | 2019-08-05 | 2021-02-11 | Twilio Inc. | Programmable Voice Extension Framework |
| US11463774B2 (en) * | 2020-06-17 | 2022-10-04 | Dish Network L.L.C. | Systems and methods for dynamic voice remote to control media devices |
| US11627223B2 (en) * | 2021-04-22 | 2023-04-11 | Zoom Video Communications, Inc. | Visual interactive voice response |
| US20230049219A1 (en) * | 2021-08-11 | 2023-02-16 | AVAST Software s.r.o. | Application user journey management |
| US12499890B2 (en) * | 2023-05-18 | 2025-12-16 | Verizon Patent And Licensing Inc. | Method and system for dynamic IVR prompt generation via prior contextual language analysis |
Citations (108)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5073923A (en) | 1990-04-12 | 1991-12-17 | Northern Telecom Limited | Private telephone system with unified command feature |
| US5323444A (en) | 1991-08-16 | 1994-06-21 | U S West Advanced Technologies, Inc. | Emergency call system with call capacity/last chance routing feature |
| WO1996020448A1 (en) | 1994-12-23 | 1996-07-04 | Southwestern Bell Technology Resources, Inc. | Flexible network platform and call processing system |
| US5802526A (en) * | 1995-11-15 | 1998-09-01 | Microsoft Corporation | System and method for graphically displaying and navigating through an interactive voice response menu |
| US5918014A (en) | 1995-12-27 | 1999-06-29 | Athenium, L.L.C. | Automated collaborative filtering in world wide web advertising |
| US6035018A (en) | 1998-11-03 | 2000-03-07 | Lucent Technologies Inc. | Access, selection, and downloading of a pre-recorded outgoing greeting message for a voice messaging system from an external source |
| US6072482A (en) | 1997-09-05 | 2000-06-06 | Ericsson Inc. | Mouse mode manager and voice activation for navigating and executing computer commands |
| US6088428A (en) | 1991-12-31 | 2000-07-11 | Digital Sound Corporation | Voice controlled messaging system and processing method |
| US6212408B1 (en) | 1999-05-03 | 2001-04-03 | Innovative Global Solution, Inc. | Voice command system and method |
| WO2001045086A2 (en) | 1999-12-15 | 2001-06-21 | Nokia Corporation | A system and method of voice browsing for mobile terminals using a dual-mode wireless connection |
| US6285984B1 (en) | 1996-11-08 | 2001-09-04 | Gregory J. Speicher | Internet-audiotext electronic advertising system with anonymous bi-directional messaging |
| GB2362540A (en) | 1999-10-18 | 2001-11-21 | Voxsurf Software Ltd | Accessing databases via the internet |
| US6334103B1 (en) | 1998-05-01 | 2001-12-25 | General Magic, Inc. | Voice user interface with personality |
| US20020001370A1 (en) | 2000-06-05 | 2002-01-03 | Walker David L. | Voice portal platform |
| US20020022453A1 (en) | 2000-03-31 | 2002-02-21 | Horia Balog | Dynamic protocol selection and routing of content to mobile devices |
| US20020059073A1 (en) | 2000-06-07 | 2002-05-16 | Zondervan Quinton Y. | Voice applications and voice-based interface |
| US20020065944A1 (en) | 2000-11-29 | 2002-05-30 | Marianne Hickey | Enhancement of communication capabilities |
| US20020073034A1 (en) | 2000-12-06 | 2002-06-13 | The Belo Company | Method and system for operating online classified advertisements |
| US6408272B1 (en) | 1999-04-12 | 2002-06-18 | General Magic, Inc. | Distributed voice user interface |
| US20020108125A1 (en) * | 2001-02-07 | 2002-08-08 | Joao Raymond Anthony | Apparatus and method for facilitating viewer or listener interaction |
| US20020161646A1 (en) | 2001-04-27 | 2002-10-31 | Gailey Michael L. | Advertising campaign and business listing management for a location-based services system |
| US20020169615A1 (en) | 2001-03-23 | 2002-11-14 | Irwin Kruger | Computerized voice-controlled system for compiling quality control data |
| US20020169604A1 (en) | 2001-03-09 | 2002-11-14 | Damiba Bertrand A. | System, method and computer program product for genre-based grammars and acoustic models in a speech recognition framework |
| US20020188451A1 (en) | 2001-03-09 | 2002-12-12 | Guerra Lisa M. | System, method and computer program product for a dynamically configurable voice portal |
| US20030007609A1 (en) | 2001-07-03 | 2003-01-09 | Yuen Michael S. | Method and apparatus for development, deployment, and maintenance of a voice software application for distribution to one or more consumers |
| US20030068999A1 (en) | 2001-10-09 | 2003-04-10 | Casali Joseph A. | Interactive taxi information system |
| US20030114202A1 (en) | 2001-12-18 | 2003-06-19 | Jung-Bum Suh | Hands-free telephone system for a vehicle |
| US20030119487A1 (en) | 2001-12-20 | 2003-06-26 | Silvester Kelan C | Method and appparatus for providing a wireless communication device with local audio signal storage |
| US20030125944A1 (en) | 1999-07-12 | 2003-07-03 | Robert C. Wohlsen | Method and system for identifying a user by voice |
| US20030144005A1 (en) | 2002-01-30 | 2003-07-31 | General Motors Corporation. | Method and system for vehicle preference selection monitoring |
| US20030191816A1 (en) | 2000-01-11 | 2003-10-09 | Spoovy, Llc | System and method for creating and delivering customized multimedia communications |
| US6636831B1 (en) | 1999-04-09 | 2003-10-21 | Inroad, Inc. | System and process for voice-controlled information retrieval |
| US6636504B1 (en) | 1999-03-18 | 2003-10-21 | Verizon Services Corp. | Reverse billing of internet telephone calls |
| US6658388B1 (en) | 1999-09-10 | 2003-12-02 | International Business Machines Corporation | Personality generator for conversational systems |
| US20030233238A1 (en) | 2002-06-14 | 2003-12-18 | International Business Machines Corporation | Distributed voice browser |
| US20040006476A1 (en) | 2001-07-03 | 2004-01-08 | Leo Chiu | Behavioral adaptation engine for discerning behavioral characteristics of callers interacting with an VXML-compliant voice application |
| US20040006471A1 (en) | 2001-07-03 | 2004-01-08 | Leo Chiu | Method and apparatus for preprocessing text-to-speech files in a voice XML application distribution system using industry specific, social and regional expression rules |
| US20040010412A1 (en) | 2001-07-03 | 2004-01-15 | Leo Chiu | Method and apparatus for reducing data traffic in a voice XML application distribution system through cache optimization |
| US20040068364A1 (en) | 2001-12-06 | 2004-04-08 | Wei Zhao | Automated location-intelligent traffic notification service systems and methods |
| US20040093218A1 (en) * | 2002-11-12 | 2004-05-13 | Bezar David B. | Speaker intent analysis system |
| US6738743B2 (en) | 2001-03-28 | 2004-05-18 | Intel Corporation | Unified client-server distributed architectures for spoken dialogue systems |
| US6744881B1 (en) | 2000-09-06 | 2004-06-01 | Convergys Customer Management Group, Inc. | System and method for automated customer calling |
| US6757781B2 (en) | 1999-12-22 | 2004-06-29 | Seagate Technology Llc | Buffer management system for managing the transfer of data into and out of a buffer in a disc drive |
| US20040151285A1 (en) | 2003-01-30 | 2004-08-05 | Sychta Brian V. | Method and system for managing in-vehicle telephony |
| US20040163073A1 (en) | 2002-06-27 | 2004-08-19 | Openpeak Inc. | Method, system, and computer program product for automatically managing components within a controlled environment |
| US20040174983A1 (en) | 2003-03-07 | 2004-09-09 | Comverse Ltd. | Configurable call progress tones |
| US20040210637A1 (en) | 2000-02-11 | 2004-10-21 | Microsoft Corporation | Distributed conference bridge |
| US20040230689A1 (en) | 2000-02-11 | 2004-11-18 | Microsoft Corporation | Multi-access mode electronic personal assistant |
| US6829334B1 (en) | 1999-09-13 | 2004-12-07 | Microstrategy, Incorporated | System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with telephone-based service utilization and control |
| US6882974B2 (en) | 2002-02-15 | 2005-04-19 | Sap Aktiengesellschaft | Voice-control for a user interface |
| US20050091057A1 (en) | 1999-04-12 | 2005-04-28 | General Magic, Inc. | Voice application development methodology |
| US6901431B1 (en) | 1999-09-03 | 2005-05-31 | Cisco Technology, Inc. | Application server providing personalized voice enabled web application services using extensible markup language documents |
| US20050135338A1 (en) | 2003-12-23 | 2005-06-23 | Leo Chiu | Method for creating and deploying system changes in a voice application system |
| US20050141679A1 (en) | 1999-09-13 | 2005-06-30 | Michael Zirngibl | System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with telephone-based service utilization and control |
| US20050163136A1 (en) | 2003-11-17 | 2005-07-28 | Leo Chiu | Multi-tenant self-service VXML portal |
| US20050234727A1 (en) | 2001-07-03 | 2005-10-20 | Leo Chiu | Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response |
| US20050234720A1 (en) | 2004-04-02 | 2005-10-20 | Eric Paillet | Voice application system |
| US20050283367A1 (en) | 2004-06-17 | 2005-12-22 | International Business Machines Corporation | Method and apparatus for voice-enabling an application |
| US6988070B2 (en) | 2000-05-11 | 2006-01-17 | Matsushita Electric Works, Ltd. | Voice control system for operating home electrical appliances |
| US20060047511A1 (en) | 2004-09-01 | 2006-03-02 | Electronic Data Systems Corporation | System, method, and computer program product for content delivery in a push-to-talk communication system |
| US7016847B1 (en) | 2000-12-08 | 2006-03-21 | Ben Franklin Patent Holdings L.L.C. | Open architecture for a voice user interface |
| US7020609B2 (en) | 1995-04-10 | 2006-03-28 | Texas Instruments Incorporated | Voice activated apparatus for accessing information on the World Wide Web |
| US20060069701A1 (en) | 2004-09-29 | 2006-03-30 | O'rourke Charles S Iii | Shareability utility |
| US7024363B1 (en) | 1999-12-14 | 2006-04-04 | International Business Machines Corporation | Methods and apparatus for contingent transfer and execution of spoken language interfaces |
| US7043232B2 (en) | 2003-11-10 | 2006-05-09 | Lucent Technologies Inc. | Method and system for sending personalized outgoing voicemail/multimedia mail messages based on the caller ID |
| US20060122840A1 (en) | 2004-12-07 | 2006-06-08 | David Anderson | Tailoring communication from interactive speech enabled and multimodal services |
| US7062709B2 (en) | 2002-12-21 | 2006-06-13 | International Business Machines Corporation | Method and apparatus for caching VoiceXML documents |
| US7069221B2 (en) | 2001-10-26 | 2006-06-27 | Speechworks International, Inc. | Non-target barge-in detection |
| US20060159246A1 (en) | 2005-01-14 | 2006-07-20 | Avaya Technology Corp. | Private branch exchange with remote access to features |
| US20060182247A1 (en) | 2005-01-28 | 2006-08-17 | Batni Ramachendra P | Change to playback characteristic of ringback tone |
| US20060206340A1 (en) | 2005-03-11 | 2006-09-14 | Silvera Marja M | Methods for synchronous and asynchronous voice-enabled content selection and content synchronization for a mobile or fixed multimedia station |
| US7174005B1 (en) | 2005-04-28 | 2007-02-06 | Techradium, Inc. | School-wide notification and response system |
| US20070078706A1 (en) | 2005-09-30 | 2007-04-05 | Datta Glen V | Targeted advertising |
| US20070135101A1 (en) | 2005-12-08 | 2007-06-14 | Comverse, Ltd. | Enhanced visual IVR capabilities |
| US20070143113A1 (en) | 2005-12-20 | 2007-06-21 | International Business Machines Corporation Armonk | Sharing voice application processing via markup |
| US20070156747A1 (en) * | 2005-12-12 | 2007-07-05 | Tegic Communications Llc | Mobile Device Retrieval and Navigation |
| US7263712B2 (en) * | 2001-05-29 | 2007-08-28 | Intel Corporation | Enabling a PC-DTV receiver to share the resource cache with multiple clients |
| US20070206758A1 (en) | 2003-12-01 | 2007-09-06 | Zvi Barak | System and method for communicating with a plurality of participants |
| US20070263838A1 (en) | 2006-04-07 | 2007-11-15 | Brady Wiseman | Method and system for informing customer service agent of details of user's interaction with voice-based knowledge retrieval system |
| US20070283268A1 (en) | 2006-06-06 | 2007-12-06 | Berger Adam L | Advertising delivery |
| US20080104630A1 (en) | 2006-10-25 | 2008-05-01 | Sbc Knowledge Ventures, Lp | System and method of providing voice communication |
| US7376222B2 (en) | 2000-06-29 | 2008-05-20 | Ching-Yi Lin | Phone appliance with display screen and methods of using the same |
| US20080165937A1 (en) | 2007-01-04 | 2008-07-10 | Darryl Moore | Call re-directed based on voice command |
| US7415442B1 (en) | 2000-09-26 | 2008-08-19 | Integrated Technological Systems, Inc. | Integrated technology money transfer system |
| US7466810B1 (en) | 2004-12-20 | 2008-12-16 | Neltura Technology, Inc. | Distributed system for sharing of communication service resources between devices and users |
| US20090007171A1 (en) | 2005-11-30 | 2009-01-01 | Qwest Communications International Inc. | Dynamic interactive advertisement insertion into content stream delivered through ip network |
| US20090022283A1 (en) | 2005-11-24 | 2009-01-22 | Data Connection Limited | Telephone call processing method and apparatus |
| US7483833B2 (en) | 2003-10-21 | 2009-01-27 | Koninklijke Philips Electronics N.V. | Intelligent speech recognition with user interfaces |
| US7552055B2 (en) | 2004-01-10 | 2009-06-23 | Microsoft Corporation | Dialog component re-use in recognition systems |
| US7599838B2 (en) | 2004-09-01 | 2009-10-06 | Sap Aktiengesellschaft | Speech animation with behavioral contexts for application scenarios |
| US7657005B2 (en) | 2004-11-02 | 2010-02-02 | At&T Intellectual Property I, L.P. | System and method for identifying telephone callers |
| US20100036717A1 (en) | 2004-12-29 | 2010-02-11 | Bernard Trest | Dynamic Information System |
| US20100054432A1 (en) | 2002-05-20 | 2010-03-04 | Callwave, Inc. | Systems and methods for call screening |
| US7689426B2 (en) | 2002-05-07 | 2010-03-30 | Avaya Inc. | Method and apparatus for distributed interactive voice processing |
| US20100086107A1 (en) | 2008-09-26 | 2010-04-08 | Tzruya Yoav M | Voice-Recognition Based Advertising |
| US7702084B2 (en) | 2002-05-31 | 2010-04-20 | Jingle Networks, Inc. | Toll-free directory assistance with preferred advertisement listing |
| US7801283B2 (en) | 2003-12-22 | 2010-09-21 | Lear Corporation | Method of operating vehicular, hands-free telephone system |
| US7801306B2 (en) | 1998-08-20 | 2010-09-21 | Akikaze Technologies, Llc | Secure information distribution system utilizing information segment scrambling |
| US7809376B2 (en) | 2005-11-29 | 2010-10-05 | Roberto S. Catalan | Enhanced analogue of interactive voice response structures and functions for mobile phones and similar handheld communications devices |
| US7844215B2 (en) * | 2006-08-08 | 2010-11-30 | Accenture Global Services Gmbh | Mobile audio content delivery system |
| US7885817B2 (en) | 2005-03-08 | 2011-02-08 | Microsoft Corporation | Easy generation and automatic training of spoken dialog systems using text-to-speech |
| US7889853B2 (en) | 2004-07-27 | 2011-02-15 | At&T Intellectual Property I, L.P. | Methods, systems, devices, and products for providing ring backs |
| US7948892B2 (en) | 2005-01-14 | 2011-05-24 | Fujitsu Limited | Relay method, relay device, communication system, and computer program |
| US8085909B2 (en) * | 2007-01-25 | 2011-12-27 | At&T Intellectual Property I, Lp | Multi-mode IVR |
| US8140340B2 (en) | 2008-01-18 | 2012-03-20 | International Business Machines Corporation | Using voice biometrics across virtual environments in association with an avatar's movements |
| US8223931B1 (en) | 2012-03-01 | 2012-07-17 | Tal Lavian | Systems and methods for visual presentation and selection of IVR menu |
| US20130045778A1 (en) | 2007-11-14 | 2013-02-21 | Yahoo! Inc. | Advertisements on mobile devices using integrations with mobile applications |
| US8483853B1 (en) * | 2006-09-12 | 2013-07-09 | Sonos, Inc. | Controlling and manipulating groupings in a multi-zone media system |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5074923A (en) | 1990-03-26 | 1991-12-24 | General Electric Company | Method for id sizing of filament reinforced annular objects |
| US6235452B1 (en) | 1999-08-05 | 2001-05-22 | International Business Machines Corporation | Detection of a gaseous substance emanating from a layer of polymeric composition |
| US20030233328A1 (en) | 2002-04-23 | 2003-12-18 | Scott David A. | Method and system for securely communicating data in a communications network |
-
2010
- 2010-03-04 US US12/717,893 patent/US11102342B2/en active Active
-
2021
- 2021-08-24 US US17/410,683 patent/US11909901B2/en active Active
-
2022
- 2022-10-13 US US17/965,598 patent/US11743369B2/en active Active
- 2022-10-13 US US17/965,616 patent/US11616872B1/en active Active
- 2022-10-13 US US17/965,609 patent/US11706327B1/en active Active
-
2023
- 2023-02-28 US US18/115,562 patent/US11876921B2/en active Active
- 2023-04-26 US US18/139,791 patent/US11778082B2/en active Active
- 2023-04-26 US US18/139,808 patent/US11785127B2/en active Active
-
2024
- 2024-01-15 US US18/412,940 patent/US12126750B2/en active Active
- 2024-09-25 US US18/896,366 patent/US12438973B2/en active Active
Patent Citations (113)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5073923A (en) | 1990-04-12 | 1991-12-17 | Northern Telecom Limited | Private telephone system with unified command feature |
| US5323444A (en) | 1991-08-16 | 1994-06-21 | U S West Advanced Technologies, Inc. | Emergency call system with call capacity/last chance routing feature |
| US6088428A (en) | 1991-12-31 | 2000-07-11 | Digital Sound Corporation | Voice controlled messaging system and processing method |
| WO1996020448A1 (en) | 1994-12-23 | 1996-07-04 | Southwestern Bell Technology Resources, Inc. | Flexible network platform and call processing system |
| US7020609B2 (en) | 1995-04-10 | 2006-03-28 | Texas Instruments Incorporated | Voice activated apparatus for accessing information on the World Wide Web |
| US5802526A (en) * | 1995-11-15 | 1998-09-01 | Microsoft Corporation | System and method for graphically displaying and navigating through an interactive voice response menu |
| US5918014A (en) | 1995-12-27 | 1999-06-29 | Athenium, L.L.C. | Automated collaborative filtering in world wide web advertising |
| US6285984B1 (en) | 1996-11-08 | 2001-09-04 | Gregory J. Speicher | Internet-audiotext electronic advertising system with anonymous bi-directional messaging |
| US6072482A (en) | 1997-09-05 | 2000-06-06 | Ericsson Inc. | Mouse mode manager and voice activation for navigating and executing computer commands |
| US6334103B1 (en) | 1998-05-01 | 2001-12-25 | General Magic, Inc. | Voice user interface with personality |
| US7801306B2 (en) | 1998-08-20 | 2010-09-21 | Akikaze Technologies, Llc | Secure information distribution system utilizing information segment scrambling |
| US6035018A (en) | 1998-11-03 | 2000-03-07 | Lucent Technologies Inc. | Access, selection, and downloading of a pre-recorded outgoing greeting message for a voice messaging system from an external source |
| US6636504B1 (en) | 1999-03-18 | 2003-10-21 | Verizon Services Corp. | Reverse billing of internet telephone calls |
| US6636831B1 (en) | 1999-04-09 | 2003-10-21 | Inroad, Inc. | System and process for voice-controlled information retrieval |
| US20050091057A1 (en) | 1999-04-12 | 2005-04-28 | General Magic, Inc. | Voice application development methodology |
| US6408272B1 (en) | 1999-04-12 | 2002-06-18 | General Magic, Inc. | Distributed voice user interface |
| US20060293897A1 (en) | 1999-04-12 | 2006-12-28 | Ben Franklin Patent Holding Llc | Distributed voice user interface |
| US6212408B1 (en) | 1999-05-03 | 2001-04-03 | Innovative Global Solution, Inc. | Voice command system and method |
| US20030125944A1 (en) | 1999-07-12 | 2003-07-03 | Robert C. Wohlsen | Method and system for identifying a user by voice |
| US6901431B1 (en) | 1999-09-03 | 2005-05-31 | Cisco Technology, Inc. | Application server providing personalized voice enabled web application services using extensible markup language documents |
| US6658388B1 (en) | 1999-09-10 | 2003-12-02 | International Business Machines Corporation | Personality generator for conversational systems |
| US6829334B1 (en) | 1999-09-13 | 2004-12-07 | Microstrategy, Incorporated | System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with telephone-based service utilization and control |
| US6977992B2 (en) | 1999-09-13 | 2005-12-20 | Microstrategy, Incorporated | System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with real-time database queries |
| US20050141679A1 (en) | 1999-09-13 | 2005-06-30 | Michael Zirngibl | System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with telephone-based service utilization and control |
| GB2362540A (en) | 1999-10-18 | 2001-11-21 | Voxsurf Software Ltd | Accessing databases via the internet |
| US7024363B1 (en) | 1999-12-14 | 2006-04-04 | International Business Machines Corporation | Methods and apparatus for contingent transfer and execution of spoken language interfaces |
| WO2001045086A2 (en) | 1999-12-15 | 2001-06-21 | Nokia Corporation | A system and method of voice browsing for mobile terminals using a dual-mode wireless connection |
| US6757781B2 (en) | 1999-12-22 | 2004-06-29 | Seagate Technology Llc | Buffer management system for managing the transfer of data into and out of a buffer in a disc drive |
| US20030191816A1 (en) | 2000-01-11 | 2003-10-09 | Spoovy, Llc | System and method for creating and delivering customized multimedia communications |
| US20040230689A1 (en) | 2000-02-11 | 2004-11-18 | Microsoft Corporation | Multi-access mode electronic personal assistant |
| US20040210637A1 (en) | 2000-02-11 | 2004-10-21 | Microsoft Corporation | Distributed conference bridge |
| US20020022453A1 (en) | 2000-03-31 | 2002-02-21 | Horia Balog | Dynamic protocol selection and routing of content to mobile devices |
| US6988070B2 (en) | 2000-05-11 | 2006-01-17 | Matsushita Electric Works, Ltd. | Voice control system for operating home electrical appliances |
| US20020001370A1 (en) | 2000-06-05 | 2002-01-03 | Walker David L. | Voice portal platform |
| US20020059073A1 (en) | 2000-06-07 | 2002-05-16 | Zondervan Quinton Y. | Voice applications and voice-based interface |
| US7334050B2 (en) | 2000-06-07 | 2008-02-19 | Nvidia International, Inc. | Voice applications and voice-based interface |
| US7376222B2 (en) | 2000-06-29 | 2008-05-20 | Ching-Yi Lin | Phone appliance with display screen and methods of using the same |
| US6744881B1 (en) | 2000-09-06 | 2004-06-01 | Convergys Customer Management Group, Inc. | System and method for automated customer calling |
| US7415442B1 (en) | 2000-09-26 | 2008-08-19 | Integrated Technological Systems, Inc. | Integrated technology money transfer system |
| US20020065944A1 (en) | 2000-11-29 | 2002-05-30 | Marianne Hickey | Enhancement of communication capabilities |
| US20020073034A1 (en) | 2000-12-06 | 2002-06-13 | The Belo Company | Method and system for operating online classified advertisements |
| US7016847B1 (en) | 2000-12-08 | 2006-03-21 | Ben Franklin Patent Holdings L.L.C. | Open architecture for a voice user interface |
| US20020108125A1 (en) * | 2001-02-07 | 2002-08-08 | Joao Raymond Anthony | Apparatus and method for facilitating viewer or listener interaction |
| US7174297B2 (en) | 2001-03-09 | 2007-02-06 | Bevocal, Inc. | System, method and computer program product for a dynamically configurable voice portal |
| US20020169604A1 (en) | 2001-03-09 | 2002-11-14 | Damiba Bertrand A. | System, method and computer program product for genre-based grammars and acoustic models in a speech recognition framework |
| US20020188451A1 (en) | 2001-03-09 | 2002-12-12 | Guerra Lisa M. | System, method and computer program product for a dynamically configurable voice portal |
| US20020169615A1 (en) | 2001-03-23 | 2002-11-14 | Irwin Kruger | Computerized voice-controlled system for compiling quality control data |
| US6738743B2 (en) | 2001-03-28 | 2004-05-18 | Intel Corporation | Unified client-server distributed architectures for spoken dialogue systems |
| US20020161646A1 (en) | 2001-04-27 | 2002-10-31 | Gailey Michael L. | Advertising campaign and business listing management for a location-based services system |
| US7263712B2 (en) * | 2001-05-29 | 2007-08-28 | Intel Corporation | Enabling a PC-DTV receiver to share the resource cache with multiple clients |
| US20050234727A1 (en) | 2001-07-03 | 2005-10-20 | Leo Chiu | Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response |
| US20040010412A1 (en) | 2001-07-03 | 2004-01-15 | Leo Chiu | Method and apparatus for reducing data traffic in a voice XML application distribution system through cache optimization |
| US20040006476A1 (en) | 2001-07-03 | 2004-01-08 | Leo Chiu | Behavioral adaptation engine for discerning behavioral characteristics of callers interacting with an VXML-compliant voice application |
| US20030007609A1 (en) | 2001-07-03 | 2003-01-09 | Yuen Michael S. | Method and apparatus for development, deployment, and maintenance of a voice software application for distribution to one or more consumers |
| US20040006471A1 (en) | 2001-07-03 | 2004-01-08 | Leo Chiu | Method and apparatus for preprocessing text-to-speech files in a voice XML application distribution system using industry specific, social and regional expression rules |
| US20030068999A1 (en) | 2001-10-09 | 2003-04-10 | Casali Joseph A. | Interactive taxi information system |
| US7069221B2 (en) | 2001-10-26 | 2006-06-27 | Speechworks International, Inc. | Non-target barge-in detection |
| US20040068364A1 (en) | 2001-12-06 | 2004-04-08 | Wei Zhao | Automated location-intelligent traffic notification service systems and methods |
| US20030114202A1 (en) | 2001-12-18 | 2003-06-19 | Jung-Bum Suh | Hands-free telephone system for a vehicle |
| US20030119487A1 (en) | 2001-12-20 | 2003-06-26 | Silvester Kelan C | Method and appparatus for providing a wireless communication device with local audio signal storage |
| US20030144005A1 (en) | 2002-01-30 | 2003-07-31 | General Motors Corporation. | Method and system for vehicle preference selection monitoring |
| US6882974B2 (en) | 2002-02-15 | 2005-04-19 | Sap Aktiengesellschaft | Voice-control for a user interface |
| US7689426B2 (en) | 2002-05-07 | 2010-03-30 | Avaya Inc. | Method and apparatus for distributed interactive voice processing |
| US8064588B2 (en) | 2002-05-20 | 2011-11-22 | Callwave, Inc. | Systems and methods for call screening |
| US20100054432A1 (en) | 2002-05-20 | 2010-03-04 | Callwave, Inc. | Systems and methods for call screening |
| US7702084B2 (en) | 2002-05-31 | 2010-04-20 | Jingle Networks, Inc. | Toll-free directory assistance with preferred advertisement listing |
| US20030233238A1 (en) | 2002-06-14 | 2003-12-18 | International Business Machines Corporation | Distributed voice browser |
| US20040163073A1 (en) | 2002-06-27 | 2004-08-19 | Openpeak Inc. | Method, system, and computer program product for automatically managing components within a controlled environment |
| US20040093218A1 (en) * | 2002-11-12 | 2004-05-13 | Bezar David B. | Speaker intent analysis system |
| US7062709B2 (en) | 2002-12-21 | 2006-06-13 | International Business Machines Corporation | Method and apparatus for caching VoiceXML documents |
| US20040151285A1 (en) | 2003-01-30 | 2004-08-05 | Sychta Brian V. | Method and system for managing in-vehicle telephony |
| US20040174983A1 (en) | 2003-03-07 | 2004-09-09 | Comverse Ltd. | Configurable call progress tones |
| US7483833B2 (en) | 2003-10-21 | 2009-01-27 | Koninklijke Philips Electronics N.V. | Intelligent speech recognition with user interfaces |
| US7043232B2 (en) | 2003-11-10 | 2006-05-09 | Lucent Technologies Inc. | Method and system for sending personalized outgoing voicemail/multimedia mail messages based on the caller ID |
| US20050163136A1 (en) | 2003-11-17 | 2005-07-28 | Leo Chiu | Multi-tenant self-service VXML portal |
| US20070206758A1 (en) | 2003-12-01 | 2007-09-06 | Zvi Barak | System and method for communicating with a plurality of participants |
| US7801283B2 (en) | 2003-12-22 | 2010-09-21 | Lear Corporation | Method of operating vehicular, hands-free telephone system |
| US20050135338A1 (en) | 2003-12-23 | 2005-06-23 | Leo Chiu | Method for creating and deploying system changes in a voice application system |
| US7552055B2 (en) | 2004-01-10 | 2009-06-23 | Microsoft Corporation | Dialog component re-use in recognition systems |
| US20050234720A1 (en) | 2004-04-02 | 2005-10-20 | Eric Paillet | Voice application system |
| US20050283367A1 (en) | 2004-06-17 | 2005-12-22 | International Business Machines Corporation | Method and apparatus for voice-enabling an application |
| US7889853B2 (en) | 2004-07-27 | 2011-02-15 | At&T Intellectual Property I, L.P. | Methods, systems, devices, and products for providing ring backs |
| US20060047511A1 (en) | 2004-09-01 | 2006-03-02 | Electronic Data Systems Corporation | System, method, and computer program product for content delivery in a push-to-talk communication system |
| US7599838B2 (en) | 2004-09-01 | 2009-10-06 | Sap Aktiengesellschaft | Speech animation with behavioral contexts for application scenarios |
| US20060069701A1 (en) | 2004-09-29 | 2006-03-30 | O'rourke Charles S Iii | Shareability utility |
| US7657005B2 (en) | 2004-11-02 | 2010-02-02 | At&T Intellectual Property I, L.P. | System and method for identifying telephone callers |
| US20060122840A1 (en) | 2004-12-07 | 2006-06-08 | David Anderson | Tailoring communication from interactive speech enabled and multimodal services |
| US7466810B1 (en) | 2004-12-20 | 2008-12-16 | Neltura Technology, Inc. | Distributed system for sharing of communication service resources between devices and users |
| US20100036717A1 (en) | 2004-12-29 | 2010-02-11 | Bernard Trest | Dynamic Information System |
| US7948892B2 (en) | 2005-01-14 | 2011-05-24 | Fujitsu Limited | Relay method, relay device, communication system, and computer program |
| US20060159246A1 (en) | 2005-01-14 | 2006-07-20 | Avaya Technology Corp. | Private branch exchange with remote access to features |
| US20060182247A1 (en) | 2005-01-28 | 2006-08-17 | Batni Ramachendra P | Change to playback characteristic of ringback tone |
| US7885817B2 (en) | 2005-03-08 | 2011-02-08 | Microsoft Corporation | Easy generation and automatic training of spoken dialog systems using text-to-speech |
| US20060206340A1 (en) | 2005-03-11 | 2006-09-14 | Silvera Marja M | Methods for synchronous and asynchronous voice-enabled content selection and content synchronization for a mobile or fixed multimedia station |
| US7174005B1 (en) | 2005-04-28 | 2007-02-06 | Techradium, Inc. | School-wide notification and response system |
| US20070078706A1 (en) | 2005-09-30 | 2007-04-05 | Datta Glen V | Targeted advertising |
| US20090022283A1 (en) | 2005-11-24 | 2009-01-22 | Data Connection Limited | Telephone call processing method and apparatus |
| US7809376B2 (en) | 2005-11-29 | 2010-10-05 | Roberto S. Catalan | Enhanced analogue of interactive voice response structures and functions for mobile phones and similar handheld communications devices |
| US20090007171A1 (en) | 2005-11-30 | 2009-01-01 | Qwest Communications International Inc. | Dynamic interactive advertisement insertion into content stream delivered through ip network |
| US20070135101A1 (en) | 2005-12-08 | 2007-06-14 | Comverse, Ltd. | Enhanced visual IVR capabilities |
| US20070156747A1 (en) * | 2005-12-12 | 2007-07-05 | Tegic Communications Llc | Mobile Device Retrieval and Navigation |
| US20070143113A1 (en) | 2005-12-20 | 2007-06-21 | International Business Machines Corporation Armonk | Sharing voice application processing via markup |
| US20070263838A1 (en) | 2006-04-07 | 2007-11-15 | Brady Wiseman | Method and system for informing customer service agent of details of user's interaction with voice-based knowledge retrieval system |
| US20070283268A1 (en) | 2006-06-06 | 2007-12-06 | Berger Adam L | Advertising delivery |
| US7844215B2 (en) * | 2006-08-08 | 2010-11-30 | Accenture Global Services Gmbh | Mobile audio content delivery system |
| US8483853B1 (en) * | 2006-09-12 | 2013-07-09 | Sonos, Inc. | Controlling and manipulating groupings in a multi-zone media system |
| US20080104630A1 (en) | 2006-10-25 | 2008-05-01 | Sbc Knowledge Ventures, Lp | System and method of providing voice communication |
| US20080165937A1 (en) | 2007-01-04 | 2008-07-10 | Darryl Moore | Call re-directed based on voice command |
| US8085909B2 (en) * | 2007-01-25 | 2011-12-27 | At&T Intellectual Property I, Lp | Multi-mode IVR |
| US20130045778A1 (en) | 2007-11-14 | 2013-02-21 | Yahoo! Inc. | Advertisements on mobile devices using integrations with mobile applications |
| US8140340B2 (en) | 2008-01-18 | 2012-03-20 | International Business Machines Corporation | Using voice biometrics across virtual environments in association with an avatar's movements |
| US20100086107A1 (en) | 2008-09-26 | 2010-04-08 | Tzruya Yoav M | Voice-Recognition Based Advertising |
| US8223931B1 (en) | 2012-03-01 | 2012-07-17 | Tal Lavian | Systems and methods for visual presentation and selection of IVR menu |
Non-Patent Citations (91)
| Title |
|---|
| Office Action for U.S. Appl. No. 11/514,116 issued Feb. 26, 2010. |
| Office Action for U.S. Appl. No. 12/717,826 issued Nov. 28, 2011. |
| Office Action for U.S. Appl. No. 12/717,839 issued Dec. 29, 2011. |
| Office Action for U.S. Appl. No. 12/717,839 issued Mar. 17, 2015. |
| Office Action for U.S. Appl. No. 12/717,839 issued May 2, 2014. |
| Office Action for U.S. Appl. No. 12/717,839 issued Nov. 20, 2015. |
| Office Action for U.S. Appl. No. 12/717,839 issued Sep. 21, 2012. |
| Office Action for U.S. Appl. No. 12/717,854 issued Dec. 29, 2011. |
| Office Action for U.S. Appl. No. 12/717,854 issued Feb. 3, 2015. |
| Office Action for U.S. Appl. No. 12/717,854 issued Jan. 4, 2016. |
| Office Action for U.S. Appl. No. 12/717,854 issued Oct. 16, 2012. |
| Office Action for U.S. Appl. No. 12/717,858 issued Apr. 22, 2016. |
| Office Action for U.S. Appl. No. 12/717,858 issued Mar. 27, 2015. |
| Office Action for U.S. Appl. No. 12/717,858 issued Nov. 25, 2011. |
| Office Action for U.S. Appl. No. 12/717,858 issued Sep. 27, 2012. |
| Office Action for U.S. Appl. No. 12/717,865 issued Apr. 10, 2015. |
| Office Action for U.S. Appl. No. 12/717,865 issued Aug. 15, 2013. |
| Office Action for U.S. Appl. No. 12/717,865 issued Jun. 21, 2021. |
| Office Action for U.S. Appl. No. 12/717,865 issued Mar. 13, 2012. |
| Office Action for U.S. Appl. No. 12/717,865 issued May 9, 2017. |
| Office Action for U.S. Appl. No. 12/717,875 issued Dec. 29, 2011. |
| Office Action for U.S. Appl. No. 12/717,875 issued Jan. 4, 2016. |
| Office Action for U.S. Appl. No. 12/717,875 issued Jun. 27, 2017. |
| Office Action for U.S. Appl. No. 12/717,875 issued May 5, 2015. |
| Office Action for U.S. Appl. No. 12/717,875 issued Nov. 26, 2012. |
| Office Action for U.S. Appl. No. 12/717,881 issued Aug. 15, 2013. |
| Office Action for U.S. Appl. No. 12/717,881 issued Nov. 22, 2011. |
| Office Action for U.S. Appl. No. 12/717,888 issued Apr. 1, 2015. |
| Office Action for U.S. Appl. No. 12/717,888 issued Jan. 25, 2012. |
| Office Action for U.S. Appl. No. 12/717,888 issued Jun. 3, 2016. |
| Office Action for U.S. Appl. No. 12/717,888 issued Sep. 27, 2012. |
| Office Action for U.S. Appl. No. 12/717,893 issued Apr. 26, 2021. |
| Office Action for U.S. Appl. No. 12/717,893 issued Apr. 9, 2015. |
| Office Action for U.S. Appl. No. 12/717,893 issued Aug. 1, 2014. |
| Office Action for U.S. Appl. No. 12/717,893 issued Mar. 1, 2012. |
| Office Action for U.S. Appl. No. 12/717,893 issued Oct. 15, 2013. |
| Office Action for U.S. Appl. No. 12/717,893 issued Sep. 27, 2012. |
| Office Action for U.S. Appl. No. 12/717,897 issued Dec. 9, 2014. |
| Office Action for U.S. Appl. No. 12/717,897 issued Feb. 3, 2012. |
| Office Action for U.S. Appl. No. 12/717,897 issued Jul. 19, 2013. |
| Office Action for U.S. Appl. No. 12/717,897 issued Sep. 21, 2012. |
| Office Action for U.S. Appl. No. 12/943,510 issued Apr. 10, 2012. |
| Office Action for U.S. Appl. No. 12/943,510 issued Nov. 21, 2012. |
| Office Action for U.S. Appl. No. 13/355,840 issued Apr. 5, 2012. |
| Office Action for U.S. Appl. No. 13/595,482 issued Jan. 5, 2017. |
| Office Action for U.S. Appl. No. 13/595,482 issued Jul. 8, 2015. |
| Office Action for U.S. Appl. No. 13/595,482 issued Mar. 10, 2016. |
| Office Action for U.S. Appl. No. 13/595,482 issued Oct. 10, 2017. |
| Office Action for U.S. Appl. No. 13/595,482 issued Sep. 20, 2019. |
| Office Action for U.S. Appl. No. 13/595,482 issued Sep. 9, 2014. |
| Office Action for U.S. Appl. No. 15/216,752 issued Aug. 29, 2018. |
| Office Action for U.S. Appl. No. 15/216,752 issued Jan. 12, 2018. |
| Office Action for U.S. Appl. No. 15/216,752 issued Mar. 24, 2017. |
| Office Action for U.S. Appl. No. 15/246,770 issued Jan. 26, 2018. |
| Office Action for U.S. Appl. No. 15/784,423 issued Aug. 22, 2019. |
| Office Action for U.S. Appl. No. 15/784,423 issued Nov. 16, 2018. |
| Office Action for U.S. Appl. No. 15/982,701 issued Mar. 19, 2019. |
| Office Action for U.S. Appl. No. 16/773,444 issued Mar. 3, 2021. |
| Office Action for U.S. Appl. No. 16/773,444 issued May 29, 2020. |
| Office Action for U.S. Appl. No. 16/773,444 issued Sep. 15, 2021. |
| Office Action for U.S. Appl. No. 16/799,033 issued Mar. 2, 2021. |
| Office Action for U.S. Appl. No. 16/799,033 issued Sep. 15, 2021. |
| Office Action for U.S. Appl. No. 17/410,583 issued Aug. 17, 2022. |
| Office Action for U.S. Appl. No. 17/582,479 issued Sep. 27, 2022. |
| Office Action for U.S. Appl. No. 17/582,555 issued Sep. 26, 2022. |
| Office Action for U.S. Appl. No. 18/412,940 issued Aug. 13, 2024. |
| Supplementary European Search Report issued in 06802900.8 on Apr. 13, 2010. |
| U.S. Appl. No. 11/514,116, filed Sep. 1, 2006. |
| U.S. Appl. No. 12/717,826, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,839, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,854, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,858, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,865, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,875, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,881, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,888, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,893, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/717,897, filed Mar. 4, 2010. |
| U.S. Appl. No. 12/943,510, filed Jul. 10, 2010. |
| U.S. Appl. No. 13/355,840, filed Jan. 23, 2012. |
| U.S. Appl. No. 13/595,482, filed Aug. 27, 2012. |
| U.S. Appl. No. 15/216,752, filed Jul. 22, 2016. |
| U.S. Appl. No. 15/246,770, filed Aug. 25, 2016. |
| U.S. Appl. No. 15/784,423, filed Oct. 16, 2017. |
| U.S. Appl. No. 15/982,701, filed May 17, 2018. |
| U.S. Appl. No. 16/773,444, filed Jan. 27, 2020. |
| U.S. Appl. No. 16/799,033, filed Feb. 24, 2020. |
| U.S. Appl. No. 17/410,683, filed Aug. 24, 2021. |
| U.S. Appl. No. 17/582,479 filed Jan. 24, 2022. |
| U.S. Appl. No. 17/582,555, filed Jan. 24, 2022. |
| U.S. Appl. No. 18/412,940, filed Jan. 15, 2024. |
Also Published As
| Publication number | Publication date |
|---|---|
| US11102342B2 (en) | 2021-08-24 |
| US20230269320A1 (en) | 2023-08-24 |
| US12126750B2 (en) | 2024-10-22 |
| US20230239390A1 (en) | 2023-07-27 |
| US11706327B1 (en) | 2023-07-18 |
| US20230262157A1 (en) | 2023-08-17 |
| US11743369B2 (en) | 2023-08-29 |
| US20210392220A1 (en) | 2021-12-16 |
| US20100158205A1 (en) | 2010-06-24 |
| US11778082B2 (en) | 2023-10-03 |
| US20240267451A1 (en) | 2024-08-08 |
| US11785127B2 (en) | 2023-10-10 |
| US11876921B2 (en) | 2024-01-16 |
| US11909901B2 (en) | 2024-02-20 |
| US20230216945A1 (en) | 2023-07-06 |
| US11616872B1 (en) | 2023-03-28 |
| US20250016260A1 (en) | 2025-01-09 |
| US20230239389A1 (en) | 2023-07-27 |
| US20230084151A1 (en) | 2023-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8401859B2 (en) | Voice application network platform | |
| US12438973B2 (en) | Voice application network platform | |
| US9313307B2 (en) | System and method for verifying the identity of a user by voiceprint analysis | |
| US10447860B1 (en) | Interactive voice response using a cloud-based service | |
| US20060276230A1 (en) | System and method for wireless audio communication with a computer | |
| KR20130118346A (en) | Method and apparatus for data channel augmented auto attended voice response systems | |
| US20140247927A1 (en) | Dynamic speech resource allocation | |
| US8964960B2 (en) | System and method for interacting with a user via a variable volume and variable tone audio prompt | |
| US11641420B2 (en) | System and method for placing telephone calls using a distributed voice application execution system architecture | |
| US10367929B2 (en) | System and method for connecting a user to business services | |
| US20050272415A1 (en) | System and method for wireless audio communication with a computer | |
| US10171673B2 (en) | System and method for performing certain actions based upon a dialed telephone number | |
| AU2012200261A1 (en) | Voice application network platform |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| AS | Assignment |
Owner name: XTONE, INC., VIRGINIA Free format text: CHANGE OF NAME;ASSIGNOR:XTONE NETWORKS, INC.;REEL/FRAME:069050/0409 Effective date: 20120221 Owner name: XTONE NETWORKS, INC., VIRGINIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DHAWAN, VISHAL;PRICE, TIMOTHY M;REEL/FRAME:068703/0527 Effective date: 20100304 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ALLOWED -- NOTICE OF ALLOWANCE NOT YET MAILED Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |