US20090018834A1 - Personal Virtual Assistant - Google Patents

Personal Virtual Assistant Download PDF

Info

Publication number
US20090018834A1
US20090018834A1 US12/235,840 US23584008A US2009018834A1 US 20090018834 A1 US20090018834 A1 US 20090018834A1 US 23584008 A US23584008 A US 23584008A US 2009018834 A1 US2009018834 A1 US 2009018834A1
Authority
US
United States
Prior art keywords
user
virtual assistant
server
speech recognition
application
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.)
Abandoned
Application number
US12/235,840
Inventor
Robert S. Cooper
Derek Sanders
Richard M. Ulmer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US12/235,840 priority Critical patent/US20090018834A1/en
Publication of US20090018834A1 publication Critical patent/US20090018834A1/en
Assigned to BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE reassignment BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE SECURITY AGREEMENT Assignors: AVAYA INC., A DELAWARE CORPORATION
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: AVAYA, INC.
Assigned to BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE reassignment BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE SECURITY AGREEMENT Assignors: AVAYA, INC.
Assigned to AVAYA INC. reassignment AVAYA INC. BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Assignors: THE BANK OF NEW YORK MELLON TRUST, NA
Assigned to AVAYA INC. reassignment AVAYA INC. BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Assigned to AVAYA INC. reassignment AVAYA INC. BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Assignors: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/527Centralised call answering arrangements not requiring operator intervention

Definitions

  • the present invention relates to a computer-based, personal virtual assistant for managing communications and information, whose behavior can be changed by the user and whose behavior automatically adapts to the user.
  • the virtual assistant of the present invention allows the mobile professional to access personal, company, and public information, including contacts, schedules, and databases from any interactive device, such as telephone.
  • VRS Voice response systems
  • U.S. Pat. No. 5,483,608 to O'Sullivan discloses an interactive VRS that automatically adapts to suit the speed at which the caller interacts with the system.
  • the VRS disclosed in O'Sullivan is programmed to measure the response times of the caller and adjust the playing speed of the application dialogue's voice messages accordingly using an algorithm incorporated into the application software of the voice response system.
  • the system will gradually speed up subsequent voice message prompts.
  • the system will slow down subsequent voice message prompts.
  • the system disclosed in O'Sullivan does not perform the actions of a virtual assistant, nor does it permit the user to control how the system adapts.
  • Martin et al. discloses a system for varying the voice menus and segments presented to the user of a voice response system according to the competence of the user.
  • the response time of a user to voice prompts is measured and an average response time is determined. It is assumed that the lower the average response time, the greater the competence of the user.
  • the average response time is used as an index to a table of ranges of response times. Each range has respective voice segments associated therewith.
  • the voice segments comprise oral instructions or queries for the user and vary according to the anticipated competence of the user.
  • a data base containing information relating to user competence is updated to reflect such a change. Accordingly, when the user next interacts with the voice response system a new set of voice segments more appropriate to the user's competence will be played.
  • the system in Martin et al. also discloses determining user competence by identifying individual callers using existing caller identification technology.
  • the call identification code of a telephone call can be used as an index to data stored in a user database comprising information relating to the competence of a user.
  • the user can be asked to enter a password before further access is allowed to the system. The password can then serve as an index to the stored data associated with the user.
  • the stored data identifies which set of voice data is appropriate for use during an interaction with said user.
  • determining the number of times per day that a user accesses the system or the length of time which a user has subscribed to such a system may also be indicative of their competence.
  • VRS disclosed in Martin does not perform the functions of a virtual assistant, nor does it permit the use to have any significant degree of control over the behavior of the system.
  • the prior art systems adapt automatically to the caller, the degree of adaptation is relatively limited.
  • the prior art systems do not disclose a virtual assistant that automatically uses words associated with polite discourse when the user's input contains words associated with polite discourse.
  • Prior art systems also do not disclose a virtual assistant that adapts to the user based on the user's emotional state.
  • the present invention relates to a personal virtual assistant with many discrete features, each of which comprises a separate but related invention.
  • a computer-based virtual assistant the behavior of which can be changed by the user, comprising a voice user interface for inputting information into and receiving information from the virtual assistant by speech, a communications network, a virtual assistant application running on a remote computer, the remote computer being electronically coupled to the user interface via the communications network, wherein the behavior of the virtual assistant changes responsive to user input.
  • Another aspect of the present invention is a computer-based virtual assistant that automatically adapts its behavior comprising a voice user interface for inputting information into and receiving information from the virtual assistant by speech, a communications network, a virtual assistant application running on a remote computer, the remote computer being electronically coupled to the user interface via the communications network, wherein the remote computer is programmed to automatically change the behavior of the virtual assistant responsive to input received by the virtual assistant.
  • the virtual assistant adapts to the user in many different ways based on the input the virtual assistant receives.
  • Such input could be user information, such as information about the user's experience, the time between user sessions, the amount of time a user pauses when recording a message, the user's emotional state, whether the user uses words associated with polite discourse, and the amount of time since a user provided input to the virtual assistant during a session.
  • user information such as information about the user's experience, the time between user sessions, the amount of time a user pauses when recording a message, the user's emotional state, whether the user uses words associated with polite discourse, and the amount of time since a user provided input to the virtual assistant during a session.
  • FIG. 1 is an overview of the virtual assistant (VA) of the present invention
  • FIG. 2 is a diagram of the VA Server
  • FIG. 3 is a diagram of the VA Studio
  • FIG. 4 is a diagram of the VA Engine conceptual model
  • FIG. 5 is a diagram of the VA Manager conceptual model
  • FIG. 6 is a screen shot of the Microsoft Management Console for managing the VA Server Manger
  • FIG. 7 is a screen shot of a web page that uses Active Server Pages to manage the VA Server Manager
  • FIG. 8 is a diagram of the component relationships of a VA Server Set
  • FIG. 9 is a diagram of a relatively small VA system
  • FIG. 10 is a diagram of a large VA system
  • FIG. 11 is a diagram of a very large VA system
  • FIG. 12 is a diagram of a hardware configuration for a single ISDN PRI link
  • FIG. 13 is a diagram of a hardware configuration for a two ISDN PRI links
  • FIG. 14 is a screen shot of the Custom Component Selection screen
  • FIG. 15 is a screen shot of GlobalCall Feature Selection screen
  • FIG. 16 is a screen shot of the Outlook Feature Selection pane
  • FIG. 17 is a screen shot of the VA Management Console
  • FIG. 18 is of the VA Management Console with the general information form displayed in the right panel;
  • FIG. 19 is a screen shot of the Add Application Instance Dialog box
  • FIG. 20 is a screen shot of the Select TTS Server Dialog box
  • FIG. 21 is a screen shot of the Add Recognition Server Dialog box
  • FIG. 22 is a screen shot of the Add VA Engine Dialog box
  • FIG. 23 is a screen shot of the Set Application File Dialog box
  • FIG. 24 is a screen shot of the Add Process Dialog box
  • FIG. 25 is a screen shot of the Properties Display Panel for a Resource Manager Service
  • FIG. 26 is a screen shot of the Alert Configuration Interface
  • FIG. 27 is a screen shot of the TTS Dictionary Display
  • FIG. 28 is a screen shot of the Dictionary Entry Dialog box
  • FIG. 29 is a screen shot of the Database Manager Panel
  • FIG. 30 is a screen shot of the Mailbox Properties Dialog with Virtual Assistant Tab
  • FIG. 31 is a screen shot of the General tab on the Virtual assistant Preferences screen
  • FIG. 32 is a screen shot of the Phone/Pager Tab on the of the Virtual assistant Preferences screen
  • FIG. 33 is a screen shot of the VA Interaction tab on the of the Virtual assistant Preferences screen
  • FIG. 34 is a flow chart that illustrates a call flow based on different tempo and assertiveness settings
  • FIG. 35 is a screen shot of the Phone Schedule screen
  • FIG. 36 is a screen shot of the Virtual assistant Tab.
  • FIG. 37 is a diagram of a choice prompt stream with corresponding active segments.
  • each subheading is meant only so as to aid the reader and are not meant to be limiting or controlling upon the invention. Generally, the contents of each subheading are readily utilized in the other subheadings.
  • the virtual assistant of the present invention allows the mobile professional to access personal, company, and public information, including contacts, schedules, and databases from any interactive device, such as telephone.
  • the virtual assistant (“VA”) system of the present invention is comprised of two main components: (1) the VA Server, which is built on a Windows NT telephony server platform, and (2) the VA Studio, which allows skilled information technology professionals to develop VA applications that interface with electronic messaging systems, such as Microsoft Exchange and Lotus Notes.
  • the VA Server is a component of the Service Deployment Environment (“SDE”), which is discussed in more detail below.
  • the VA Studio is a component of the Service Creation Environment (“SCE”), which is also discussed in more detail below.
  • the VA Server 10 is comprised of a human interface 12 and a network interface 14 for handling calls and providing automated access to information to corporate 28 , private 30 and pubic 32 information repositories and sources.
  • the human interface 12 is comprised of a graphical user interface 22 , which may be a web browser, a subscriber (or user) voice user interface 24 , generally accessed by a telephone, and a public voice user interface 26 .
  • the virtual assistant allows a user to use a voice interactive device, such as a telephone, either wired or wireless, to access and update such information.
  • the VA Server also manages all incoming communications by sorting, prioritizing, and filtering such communications, while providing notice to the user of important messages and events.
  • a core component of the VA Server 40 is the voice-enabled Virtual Machine 42 , which is also referred to as the VA Engine.
  • the VA Engine receives spoken commands, interprets and executes them.
  • the VA Engine supports a COM interface 44 , which in turn enables VA applications to provide voice access to network applications.
  • the VA Engine also supports a telephony interface 46 to voice messaging 52 and private branch exchange systems 54 , enabling third-party systems to be integrated with the VA Server.
  • the VA Server conforms to Windows NT telephony and speech interface specifications.
  • the voice messaging interface 56 supports the VPIM (Voice Profile for Internet Mail) standard, and provides a gateway between proprietary voice messaging systems and VA Server.
  • VPIM Voice Profile for Internet Mail
  • the VA system management services provide operations, administration and maintenance capability (OA&M) 60 .
  • OA&M operations, administration and maintenance capability
  • the OA&M applications also provide a Simple Network Management Protocol (“SNMP”) interface to third party management applications, such as HP Openview and CA Unicenter.
  • SNMP Simple Network Management Protocol
  • the VA Server is operable on Windows NT Server, release 4.0 or higher, in both single and multiprocessor configurations.
  • Windows NT Server release 4.0 or higher
  • the VA Server can be ported to other computing platforms. Multiple systems may be clustered together to support higher system workloads and fail-safe operation.
  • the VA Application in the preferred embodiment, is compatible with a messaging server 62 , such as Microsoft Exchange/Outlook.
  • the VA's architecture advantageously permits integration with other commercially available and customized messaging applications.
  • the VA Application can be easily modified to satisfy specific requirements of a user.
  • the basic functions of the VA Application include:
  • Call Control remote users to perform conference calling and call management; notification and forwarding features allow remote users to be contacted immediately by phone/pager when they receive specific voice-mails, e-mails, faxes, or pages
  • Internet Applications users can access and internet via an internet server 64 and obtain public information such as weather, travel, financial, competitive data and news
  • Intranet Applications users can remotely access information contained on a corporate network (inside the company firewall) using the VA, for example, customer data, shipping and inventory information, sales reports, and financial data, or any information on a database server 66 , including SQL databases such as Oracle or Informix.
  • CRM customer relationship management
  • the VA Studio 80 is comprised of a grammar generator 82 and a publishing toolkit 84 .
  • the VA Studio allows a user to create, modify and debug applications that run on the VA Server 40 without requiring the user to be skilled in the complexities of the underlying components of the VA Server, such as the speech recognition engine, text to speech engine, switch control and unified messaging.
  • VA Studio employs a graphical user interface (GUI) application that runs on a Windows NT workstation. It allows developers to create projects, each of which defines a VA application.
  • GUI graphical user interface
  • VA Studio is a multiple document interface (MDI) application that follows the workspace-based model.
  • VA Studio follows the Microsoft Component Object Model (COM).
  • VA applications are developed using Active Scripting languages such as VBScript and JScript, thus enabling integration with a variety of third party components.
  • the VA applications created with the VA studio will include voice query to SQL databases, message stores, business logic and mainframe applications.
  • VA applications are composed of discourses and resources. Discourses are the context of conversations between a user and the VA. Resources are items like voice prompts and dictionaries. A developer can utilize the VA Studio Wizard to generate a “skeleton” VA application template. Application templates consist of packages of predefined discourses and resources. Discourses are the context of conversations between a user and the VA. Resources are items like voice prompts and dictionaries. Once a VA application template is generated, the application is further customized using any supported Active Scripting languages.
  • VA Studio After writing the VA application, it is then submitted to the build process.
  • VA Studio checks for dialog errors, builds a master intermediate grammar and builds a master lexicon. Once compiled and error-free the application is ready to be published.
  • the VA Server allows a scripted application to access services such as voice mail, databases, and telephony equipment.
  • a VA application is created, modified, debugged and tested using the VA Studio.
  • the completed application is then automatically installed and configured to run on the VA Server, which enables the VA application to take incoming calls and provide access to both public and private information.
  • a VA application allows a user to manage electronic communications and access his or her business's computer resources through a telephone. Using speech recognition and text-to-speech technology, the VA communicates with callers in spoken English. By calling into the VA on a standard telephone, a user can perform functions such as the following:
  • the VA can perform many of the functions of a personal secretary, such as the following:
  • the VA performs the above functions by interfacing with a company's Microsoft Exchange server.
  • This application in effect, allows users to use their desktop Outlook software over the telephone.
  • the VA software includes a development platform (the SCE) and run-time platform (the SDE), which can host a variety of different VA's.
  • the SDE provides the core components necessary for the functionality of a VA: a telephony interface, speech recognition facilities, a text-to-speech engine, interfaces with databases and mail servers, and an administrative framework in which the assistant applications will run.
  • the SCE also includes development tools that programmers can use to create custom VA applications.
  • the VA Platform consists of three main components:
  • SDE Service Deployment Environment
  • the Service Creation Environment (SCE)
  • the function of each of these components can be understood using a World Wide Web analogy.
  • the SDE functions like a web server, providing connections with the network and telephone system, controlling the execution of VA applications, and providing resources such as text-to-speech and voice recognition engines that will be accessed by the applications that run on it.
  • VA applications are analogous to web pages, determining the content that will be presented and controlling the interactions with the user.
  • a VA application uses scripting languages such as VBScript, JavaScript, and Perl, so that developers can add significant functionality to a VA, such as performing mathematical calculations, processing text, and calling ActiveX and COM objects.
  • the SCE is the development environment used to create the VA applications.
  • the main component of the SCE is the VA Studio application, which is based on the Microsoft Visual Studio paradigm and provides a graphical environment with a variety of tools that can be used to create, debug, and publish applications that are run on the SDE.
  • the SCE also includes a set of COM objects that can be used in applications to perform functions such as checking email, reading from a database, and manipulating sound files.
  • the Service Deployment Environment consists of eight processes that run simultaneously and perform the functions necessary to support a VA application.
  • each of these SDE components runs as a Windows NT Service or background process.
  • VA server set Although they may all run on the same hardware platform, for large VA implementations the components can be distributed across several servers and communicate over the network. Such distribution can allow, for example, one server to be dedicated to performing voice recognition functions while another supports the VA Engine that actually runs the applications. When multiple VA components are distributed across multiple machines, these machines are collectively termed a VA server set.
  • the VA Engine The VA Engine
  • the VA Engine 100 is the virtual machine on which a VA application 102 runs. Based on the application's instructions, the VA Engine uses its telephony interface 104 to communicate with the user 106 and its speech interface 110 to recognize speech into text and translate text into speech. The VA Engine connects to an Active Scripting Engine 112 to execute the scripts contained in the VA application, and it also communicates with administrative processes such as the VA Server 114 and VA Manager 116 .
  • the user is electronically coupled to the virtual assistant application via a public switched telephone network.
  • the communications network that electronically couples the user interface to the computer on which a virtual assistant application is running could be a packet switched telephone network.
  • the communications network could be a wireless communications network.
  • a VA Engine process can support user interaction over only one telephone line, but multiple VA Engines can be run simultaneously on a single platform. If the VA platform is connected to more than one telephone line, then a separate VA Engine will be running for each incoming line.
  • TTS Text-to-Speech
  • the Text-to-Speech Server 120 receives text from other components, translates it into speech (that is, into a sound file), and returns it to the requesting component.
  • This speech translation service is isolated in a separate component to improve performance and to allow for TTS vendor-independence.
  • the preferred embodiment uses the AcuVoice TTS system, but the platform can be easily modified to support a TTS engine from a different vendor. Only the TTS Server component would have to be modified for such a customization, not the entire platform.
  • Multiple VA Engines can use the same TTS Server process, and more than one TTS Server can be running at the same site, allowing translation services to be distributed across multiple machines for load-balancing.
  • the Recognition Server 122 receives sound files from other components, attempts to recognize them as speech, and returns the recognized text.
  • the Recognition Server is a component that isolates speech-recognition functions from the rest of the VA platform.
  • the server provides an interface to a third-party voice recognition engine (in the preferred embodiment, Nuance) that can be changed to a different vendor's brand without requiring the entire VA platform to be modified.
  • Nuance third-party voice recognition engine
  • Multiple VA Engines can use the same Recognition Server process, and more than one Recognition Server can be running simultaneously.
  • the Recognition Server process requires three additional processes to be running:
  • the Resource Manager is a management process that automatically load-balances requests when more than one instance of the Recognition Server is running. Rather than making recognition requests to a particular Recognition Server, the VA Engine makes the request to the Resource Manager, which forwards it to the first available Recognition Server.
  • the Compilation Server compiles dynamic grammars.
  • the License Manager server runs continually in the background and dispenses licenses to all requesting components. Only one license manager need run in a single server set, but no Recognition Server components can launch unless the license manager is already running.
  • all of the sub-processes of the Recognition Server are recommended only for Nuance brand Recognition Servers. If a user uses different speech recognition software, a different set of processes may be needed.
  • the VA Server The VA Server
  • the VA Server 114 performs persistent VA functions that should occur even when no user is connected to a VA application. These functions include the following:
  • VA Server Only one VA Server can run on a system, but a single VA Server can provide persistent services to multiple VA Engines running both locally and on remote systems.
  • each system that is running one or more VA components should also be running the VA Manager application 116 .
  • This application creates and monitors all VA components that are active on the system, and it provides management interfaces that are used for the following purposes:
  • the VA Manager provides the interface through which the VA Server Manager 130 communicates with all systems in use at the site.
  • the VA Server Manager 130 provides a single point of control for all of the processes and servers being used in a VA server set. It communicates with the VA Manager 116 running on each VA server in the set and, through this interface, allows an administrator to use a single system to manage the entire site.
  • the VA software includes an MMC snap-in component 140 that allows the VA Server Manager services (and, thereby, the entire VA site) to be managed from the Microsoft Management Console application.
  • MMC Microsoft Management Console
  • the VA software also includes an administrative web page 142 that uses Active Server Pages to interface with the VA Server Manager service, allowing an administrator to manage the site through a standard web browser.
  • the VA Server Manager 130 monitors all of the VA components (such as Recognition Servers 132 , TTS Servers 134 , and VA Engines 136 ) running on all the systems within the server set, and it can be configured to page the system administrator with an alert if components fail or other system-critical events occur.
  • VA components such as Recognition Servers 132 , TTS Servers 134 , and VA Engines 136
  • the VA Server Manager process uses a Microsoft MSDE database to store configuration parameters and platform logs.
  • the MSDE database engine is installed automatically as part of the VA platform install, and the recommended tables and initial data are created during the installation routine.
  • the VA Server Manager uses a COM object called DBManager to communicate with the database.
  • This object is created automatically at start-up by the VA Server Manager and provides a set of application programming interfaces (API's) that other VA components can use to retrieve configuration information and log data.
  • API's application programming interfaces
  • the DBManager object automatically handles version checking, database restoration, and other database management functions.
  • the VA Web Server The VA Web Server
  • the VA platform uses a Microsoft IIS Web Server to support browser-based administrative utilities. These utilities include the following a VA Logging Tool, which is used by the administrator to view and manage system logs.
  • the VA software uses a set of shared directories for storing files necessary for platform operations. In a multi-server implementation, these shares are stored on a central server (the same server that hosts the VA Server Manager process) and can be accessed by all the systems in the server set.
  • the shared directories used by the VA platform are described in the table below.
  • the service processes that make up the VA platform either can be run on a single server (a VA platform server) or can be distributed across multiple servers (a VA platform server set).
  • a single-server implementation is adequate for small companies that need to support only a few incoming VA calls at a time. For larger companies, however, a server set implementation will be necessary for load balancing.
  • the Server Set Controller Node 150 As illustrated in FIG. 8 , when the VA platform is distributed across multiple servers, one node in the server set is designated the Server Set Controller Node 150 . As the platform's primary server, the Server Set Controller Node will host the following components:
  • the VA Server Manager service 152 The VA Server Manager service 152
  • the IIS web-server The IIS web-server
  • Shared directories that will be used by all the servers in the server set to store logs, utterance files, application files, and user information
  • Each secondary node 160 in the set will host one or more instances of VA Engines 162 , TTS Servers 164 , and/or Recognition Servers 166 . These processes will be monitored by a VA Manager process 170 on each server, which will in turn communicate with the VA Server Manager 172 on the Server Set Controller Node 150 .
  • the lone server is configured as the controller node, hosting the database, web-server, and VA Server Manager process along with all other VA services.
  • VA Voice over IP
  • FIG. 9 The way a business configures its VA platform will depend on the number of users who will be interacting with the VA application. As illustrated in FIG. 9 , for smaller sites, all the VA components can be run on a single server 180 . Such a site could support several incoming telephone lines 182 , allowing up to multiple instances of the VA application to be running simultaneously.
  • a medium-sized company may, for instance, use a six-server rack 184 , with two of the servers running VA Engines 186 a , 186 b , two servers running Recognition Servers 190 a , 190 b , one running VA Servers 192 , and one running TTS Servers 194 .
  • a large organization may require even more scalability.
  • the site may use upwards of eight systems for VA Engines 202 , sixteen for Recognition Servers 204 a , 204 b , four for VA Servers 206 , and four for TTS Servers 206 .
  • the duties of the VA Virtual Assistant platform administrator include the following tasks:
  • VA management interfaces to manage the systems in the server set, start and stop the VA services, and run VA applications
  • IIS Microsoft Internet Information Server
  • a VA platform server system uses two (2) personal computers, each of meets the minimum hardware requirements listed in the table below:
  • the following operating system and third-party software are be installed on a server in order to support the VA platform software.
  • Windows NT 4.0 Component Requirement Operating System Windows NT 4.0 with the following options and add-on software: Windows Messaging Option NT Service Pack 5 Windows NT Option Pack 4.0 (Controller Node Only) Microsoft Management Console (MMC), Version 1.1 Microsoft Data Access Controls (MDAC) Version 2.1 Web Server (Controller Microsoft Internet Information Server Version Node only) Web Browser Microsoft Internet Explorer Version 5.0 Voice Recognition Nuance 6.2.1 Software Text-To-Speech Software AcuVoice 3.02 Exchange Client Microsoft Outlook 2000 Should be installed with the Collaboration Data Objects (CDO) option Fax Services (optional) Facsys or Jfax Recommended only for systems that will support Fax services:
  • MMC Microsoft Management Console
  • MDAC Microsoft Data Access Controls
  • Web Server Controller Microsoft Internet Information Server Version Node only
  • Web Browser Microsoft Internet Explorer Version 5.0 Voice Recognition Nuance 6.2.1 Software Text-To-Speech Software AcuVoice 3.02 Exchange Client Microsoft Outlook 2000
  • CDO Collaboration Data Objects
  • Fax Services optionally Facsys or Jfax
  • the prerequisites for installing the VA Management Console software on a remote workstation are listed in the table below:
  • VA platform server Although in general there is no one order required for installing the pre-requisite software packages for the VA platform, the following sequence is generally used when preparing a VA platform server:
  • MMC Microsoft Management Console
  • MDAC Microsoft Data Access Controls
  • all of the VA platform servers and the Microsoft Exchange Server are located in the same Windows NT domain.
  • a server's domain should not be changed after the VA platform is installed. For this reason, when installing the VA software on a machine, it is recommended that the server already be properly configured on the domain in which it will be used.
  • NTFS When partitioning the hard drive(s), use NTFS on all disk volumes. If there are already have FAT volumes on the system, they can be updated to NTFS after Windows NT is installed
  • the Windows Messaging option selects the Windows Messaging option. If the Windows Messaging option is not selected, or if a server on which Windows NT has already been installed is being prepared, the option can be added later.
  • Windows NT Option Pack 4.0 (On the Server Set Controller Node only): The Option Pack is needed to install the proper version of the Microsoft Internet Information Service (IIS) on the node.
  • IIS Microsoft Internet Information Service
  • the version included on the core media does not support Active Server Pages and therefore cannot be used.
  • MMC Version 1.1 The Windows NT Option Pack installs an earlier (1.0) version of MMC, so the MMC Version 1.1 should be installed after installing the Option Pack software.
  • Internet Explorer Version 5.0 Although an earlier version of Internet Explorer is installed along with the Windows NT and the Option Pack software, Version 5.0 is used in the preferred embodiment on VA platform.
  • a RAID solution should be installed to provide large, reliable storage for VA logs and utterance files. If a RAID solution is used, it should be properly configured after installation of the operating system on the Controller Node.
  • the VA platform requires up to three different types of telephony boards, depending upon the types of services that will be available. Telephony hardware is recommended only in the platform's telephony server(s). Small installations will likely have only a single machine performing telephony services, though larger configurations may require multiple systems.
  • VA platform installations should have an ISDN PRI connection to the local telephone network.
  • the Dialogic D/240PCI-T1 Board is recommended to connect the platform to the telephone system. This board provides both the interface to the telephone network and the voice processing resources that are recommended for speech recognition.
  • the D/3240PCI-T1 board supports 24 ports on a single ISDN PRI link, providing 23 active channels for voice connections (one channel is reserved for internal use).
  • the D/240PCI-T1 board provides approximately half the total amount of voice resources recommended to support concurrent VA sessions on all of the board's channels. In order to support simultaneous sessions on all 23 available ports, a voice resource board (described below) is recommended:
  • a voice resource board provides the extra processing power recommended to support the full simultaneous use of all ISDN PRI channels on the telephony adapter board(s).
  • Each D/240PCI-T1 adapter contains enough hardware resources to support 12 simultaneous VA sessions. Generally, an additional 22 voice resources are recommended to support VA sessions on all 23 channels.
  • the Dialogic D/320SC voice resource board provides 32 voice resources
  • the Dialogic D/640SC voice resource board provides 64 voice resources.
  • one D/320SC board will provide full support for a single ISDN PRI link.
  • a D/640SC board is recommended to fully support two PRI links.
  • a Dialogic audio conferencing adapter is recommended for all VA platforms that will support the VA application's call conferencing feature.
  • Three different models of conferencing adapters can be used, depending upon the call traffic that needs to be supported:
  • Dialogic DCB/320 Supports up to 32 simultaneous conferees
  • Dialogic DCB/640 Supports up to 64 simultaneous conferees
  • Dialogic DCB/960 Supports up to 96 simultaneous conferees
  • the telephony server is installed without a conferencing adapter, the VA platform software will still function, but the call conferencing feature will not be available.
  • the recommended telephony hardware and software should be first installed and configured.
  • the recommended telephony cards should be installed according to the manufacturer's instructions.
  • the Bus ID rotary switch When installing the Dialogic D/240PCI-T1 card(s), be set the Bus ID rotary switch to the proper value. In systems with a single card, the card's rotary switch should be set to ‘1’. In multi-card systems, the rotary switch should be set to a different number for each card, starting with ‘1’ and progressing sequentially.
  • the GlobalCall ISDN option 246 should be selected.
  • Nuance 6.2.1 is installed on each machine that will be used in the VA platform server set.
  • the Nuance 6.2.1 installation media contains five separate software packages, which should be installed on each system in the following order:
  • Version 3.02 of the AcuVoice Speech Synthesis software should be installed on each system in the server set. Install the software according to the documentation included with the product.
  • all VA platform servers running a VA application should have Outlook 2000 installed on them.
  • the Outlook software is used not by a regular user but by the platform itself to communicate with the Exchange server.
  • the Collaboration Data Objects option 252 should be selected.
  • the VA platform server processes run under the domain user account “ConitaVA.” Before configuring Microsoft Exchange or installing the VA platform, this account needs to be created on the domain in which the VA platform server(s) will be running.
  • the account should be a member of the Administrators group.
  • the ConitaVA user name is not hardwired into the VA platform software, so the administrator can, if desired, create a different account name under which the services will run.
  • the Install Shield application for the platform software will use ConitaVA as a default, so the administrator should be sure to enter the proper user name if a different account is to be used.
  • the default VA application maintains only a small amount of information about each of its users, and the majority of user management functions are performed through the standard Microsoft Exchange interfaces. For this reason, it is recommended that Microsoft Exchange accounts be set up for each person who will also be using the VA application. New users can be added and old users can be removed after the VA platform is installed and in operation.
  • the ConitaVA user account in order for the VA platform services to have access to the necessary Microsoft Exchange interfaces, should be given permissions as an Exchange Service Account Administrator. This configuration is performed through the Microsoft Exchange Administrator application.
  • the VA platform will support fax services, then the fax provider software should be prepared before installing the VA platform.
  • the VA platform supports the following two separate fax services, Facsys and Jfax.
  • VA Server Install which installs the application components on a system that will be part of the VA server set.
  • VA Exchange Administrator Extension which is installed on the Microsoft Exchange server. This package includes the add-in interface that will be used to manage VA users from within the Exchange Administrator framework.
  • VA Outlook Client which installs the VA add-in for Microsoft Outlook. This allows VA users to configure their Virtual Assistants from within a standard Outlook interface. This installation should be performed on the desktop systems for each person who will have a VA account.
  • VA Application Developer Workstation which is used to install the VA Studio and other application development components on a programmer's workstation. This package is needed only if a developer will be writing custom VA applications at the site.
  • VA Administration Station which is used to install the VA Management Console on an administrator's workstation.
  • the VA Management Console will already be installed along with the VA platform software on the systems that make up the VA server set.
  • the Administration Station install is useful, however, for an administrator who wishes to manage the server set from a remote system.
  • the general process for installing and configuring a full VA platform implementation is as follows:
  • the amount of free disk space recommended to install the VA platform components on a server depends on the type of installation chosen for the system. Approximate space requirements are listed in the table below:
  • the disk space requirements are for the VA platform software only. They do not include the amount needed for prerequisite packages such as Nuance and AcuVoice.
  • Server Set Controller Node On the Server Set Controller Node, it is recommended that an additional 1 GB of free space be available for the storage of logs and temporary files during VA platform operation.
  • An MSDE or SQL Server database is recommended by the VA platform to store configuration and log data.
  • a Server Set Controller Node To be installed without the MSDE database, a Server Set Controller Node should already have either MSDE or SQL Server installed.
  • the VA platform software While only 100 MB is recommended for the initial installation of the VA platform software, in the preferred embodiment, because the VA platform software stores temporary speech and log files on the Server Set Controller Node during execution, the amount of disk space used can grow very quickly. It is recommended that there be one (1) GB of free disk space on the Server Set Controller Node in order to store a full set of speech and log data. For systems with smaller capacity, the amount of temporary data stored can be reduced, but such restrictions will limit the ability of an administrator to monitor the platform and track errors.
  • the first installation is the VA Server install. This installation should be performed first on the server that will be the Server Set Controller Node and then on each secondary server. Before beginning the VA platform installation, if a multi-node server set will be installed, identify which server will be the Server Set Controller Node
  • the next screen will provide a prompt to select the directory into which the VA platform files will be installed.
  • this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • click Browse To change the directory, click Browse, select a new directory, and click Next.
  • the next screen will provide a prompt for entry of the password for the Conita VA service account. Enter the proper password and click Next.
  • the next screen will provide a prompt for the name of the Windows NT domain to which the service account belongs. Enter this domain name and click and click Next.
  • the final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next to begin the installation.
  • the process for installing the VA software on secondary servers is very similar to that for Server Set Controller Nodes, but there will be no prompt to install the MSDE database because a database is recommended only on the controller node.
  • the next screen will provide a prompt to select the directory into which the VA platform files will be installed.
  • this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • the next screen will provide a prompt to enter the password for the Conita VA service account. Enter the proper password and click Next.
  • the next screen will provide a prompt for the name of the Windows NT domain to which the service account belongs. Enter this domain name and click and click Next. Note: All VA servers in a server set and the Microsoft Exchange server with which they will communicate should be located in the same domain.
  • the final interactive screen of the installation process will provide a prompt to select the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next to begin the installation.
  • the VA platform Install Shield routine generates a log file that is useful for diagnosing a failed installation.
  • the full path to this file is c:.backslash.Program Files.backslash.Conita Virtual Assistant.backslash.Log.backslash.ConitaVAInstallLog.txt.
  • the log file should be checked first to see whether it contains a more detailed message.
  • the Install Shield routine will create two new subdirectories under c:.backslash.inetpubt.backslash.wwwroot. These directories contain a web-based tool used for managing the VA platform logs. Although the Install Shield creates these directories, perform the following steps to configure the virtual directories and security permissions for the files.
  • the administrator should install the VA Exchange Administrator Extension package on the Exchange server that will be used with the VA platform.
  • This package inserts a custom add-in into the Microsoft Exchange Administrator application.
  • the add-in is used to manage the Exchange accounts that can be accessed through the Virtual Assistant application.
  • the VA platform software will be installed in an environment that has an existing Microsoft Exchange server in use. In some circumstances, however, an administrator may be installing Exchange fresh along with the VA software. In such a case, the Exchange server should be fully installed and configured before attempting to install the VA extensions.
  • the Microsoft Exchange server software runs on a separate machine from the VA platform software. At smaller sites, it is possible for Exchange and the VA platform to occupy the same server.
  • the Microsoft Exchange server on which the VA extensions will be installed has been fully installed and configured.
  • the final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA User Administrator software will be installed. Change the folder's name if desired, then click Next.
  • an administrator may have installed the Microsoft Exchange Administrator application on a system other than the Exchange server itself (that is, on a system used to administer Exchange remotely).
  • the VA Exchange extensions can also be installed on this administrative station to allow for remote VA management. Note: Before the VA extensions can be installed on an administrative station, they should first be installed on the Exchange Server itself.
  • the next screen prompts for the directory in which the VA Extension files will be installed. Accept the default or select a new directory, then click Next.
  • the final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA User Administrator software will be installed. Change the folder's name if desired, then click Next.
  • VA Outlook Add-In Before users can begin logging into their Virtual Assistants, the VA Outlook Add-In should be installed on their desktop workstations. This package adds a configuration interface to the users' Microsoft Outlook applications that will be used to personalize the settings for the Virtual Assistants.
  • the installation media makes the VA Outlook Add-In install program available in two forms:
  • a self-extracting ZIP file Small in size (820 KB), the self-extracting ZIP is designed to be transmitted over email systems. When executed, it unpacks the recommended installation files and runs the install, which requires no user input.
  • an administrator can install the VA Management Console on a machine separate from the VA platform software.
  • Such an administrative station advantageously allows the VA platform to be managed remotely over the network. This installation installs only the basic components needed to run the MMC Snap-In console and to communicate with the VA Server Manager process on the Server Set Controller Node.
  • the next screen will prompt to select the directory into which the VA platform files will be installed.
  • this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • the final interactive screen of the installation process will prompt to select the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next.
  • an application development system may need to be installed. This package installs the VA Studio and other development tools. Although the Application Development software can be run on the same server as the VA platform, in most cases, the development environment should be installed on a separate system and the custom applications “published” to the VA platform when they are completed.
  • the next screen will prompt the selection of the directory into which the VA platform files will be installed.
  • this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • the final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next.
  • the VA Management Console 260 allows an administrator to view and manage all the VA components running in a server set. This interface is implemented as a snap-in for the Microsoft Management Console (MMC) framework, which provides a consistent interface for application administration.
  • MMC Microsoft Management Console
  • the VA Management Console includes a tree view of system components on the left side of the screen 262 and an information panel on the right 264 . Highlighting a component in the tree view will cause its configuration interface to appear in the right-hand pane. Right clicking on a component will open a pop-up menu listing additional functions such as viewing properties, adding new components, and deleting existing components.
  • the VA Management Console will be run only on the Server Set Controller Node.
  • the VA Management Console can be launched by executing the MMC framework and loading the VA snap-in. To do so, use the following procedure:
  • the VA Management Console snap-in will now be displayed within the MMC. If the VA Serverset Manager snap in does not appear in the Add Standalone Snap-In dialog, it is likely that the VAServerManager service is not running. Start the VAServerManager service (through the Control Panel>Services interface) and try adding the snap-in console again.
  • the administrator When the VA platform is first installed, the administrator will need to perform the following tasks to configure the platform and launch the first application:
  • the first configuration task to be performed within the VA Management Console is to set the general information for the server set. To do so, as shown in FIG. 18 , expand the VA Manager 270 and Configuration 272 folders in the component tree, then click the General Information node 274 .
  • the general information form 276 will be displayed in the right-hand pane. In this form, enter the following information:
  • Company Name 282 The name of the organization implementing the VA
  • Site Name 284 The name of the site at which the VA platform is located. (This field is used to distinguish platforms at organizations that may be running more than one set of VA servers.)
  • Nuance License Number 288 This key, which is custom generated by Nuance for each organization, should be provided with the Nuance software.
  • the VA platform software When the VA platform software is first installed, no servers will be configured.
  • One of the first configuration tasks is adding one or more servers to the set. After the system is up and running, servers may need to be added or removed to expand the capacity of the server set or to replace a failing system.
  • the Server Set Controller Node should be added to the list of managed servers. Then, if a multi-platform implementation is being used, add each of the secondary servers. Note: The process for adding a server is the same for the controller node and secondary nodes.
  • a server Before a server can be added to the set controlled by the VA Management Console, it should have the VA platform software installed, and its VA Manager service should be started.
  • the VA Manager process is registered as an auto-starting NT service by the install routine. If, however, the VA Manager service has been stopped on a system, it can be started using the Control Panel>Services interface. Unlike other VA processes such as VA Engines and Recognition Servers, the VA Manager service is started through the Windows NT Services interface, not through the VA Management console.
  • the VA Manager service is running on the server to be added
  • the ConitaVA user account has been properly created for either the domain as a whole or for the server being added
  • the VA Platform When the VA Platform is first installed, no applications are registered for execution. After adding all the servers to the server set, the next task is to create one or more applications. Periodically, additional applications may be needed to support new users.
  • the VA application which is delivered on the platform installation media, is the application that will be used for most VA implementations. Some users, however, may elect to configure multiple instances of the VA application, or install other custom-written applications.
  • the basic process for adding an application instance is the same, be it for the VA application or for a custom VA application.
  • each VA application requires a set of associated service processes and a publication file.
  • Each application instance requires four different types of service processes to be running:
  • VA Engines on which the application will run. Each VA Engine will support a single active telephone call; a Virtual Assistant platform that supports multiple simultaneous callers will generally have one VA Engine per telephone channel.
  • TTS Text-to-Speech
  • One or more Recognition Servers for translating voice input into text One VA Server process, which monitors users' mailboxes and notifies them when events occur, such as a message being received or a task being assigned.
  • a VA Server process is recommended only for applications that support event notification functionality. The default VA application uses a VA Server process, but a custom application may not require one.
  • the VA Management Console provides a mechanism for creating these processes in one batch while configuring the application.
  • a Virtual Assistant Publication (.vapub) file is an archive that holds the various source files that make up an application. These files include the following:
  • a vapub file is generated by the VA application developer using the Service Creation Environment and then uploaded to the VA platform.
  • the source files for an application are published to every server in the server set, even if that server does not host any of the service components that will be associated with the application. This blanket-distribution allows a new process (such as an additional Recognition Server) to be associated with an existing application without having to republish the application files.
  • a new process such as an additional Recognition Server
  • TTS Server Type drop down box select the type of TTS server to be created.
  • the TTS server is AcuVoice, so this will be the only option available in the drop down box. If the system has been customized to support a different TTS server, additional choices may be available.
  • Add VA Engine dialog 296 will appear, as shown in FIG. 22 .
  • VA Engine Process to be created.
  • Telephony Engine will be selected as the VA Engine type.
  • This engine type processes input and output from the telephone system via a telephony card.
  • the other possible VA Engine type, Sound Card Engine is used when the Virtual Assistant application will receive input from a microphone and output sound to a system's speakers.
  • the Sound Card Engine can be used to test new applications before connecting them to the telephone system.
  • the .vapub file for the Conita VA application is located in the following directory:
  • % conitava %.backslash.VApplications.backslash.VAOutlook.pub where % conitava % indicates the installation path for the platform software (by default, C:.backslash.Program Files.backslash.Conita Virtual Assistant).
  • the vapub file will be located in the directory chosen by the developer when he or she published the application to the VA platform.
  • VA service components recommended for an application will probably create all at once, it is possible to create a VA application instance without associated services and add those components later. To do so, right-click the VA Applications node in the component tree and select New>Application Instance from the pop-up menu. On the initial screen of the Add Application Instance Dialog, make sure that all of the component boxes are unchecked. Although this procedure will create the application instance in the component tree, the application cannot be run until the recommended service processes have been created and associated with it. The steps for manually creating services and associating them with an application are discussed below.
  • a dialog box will open, listing all server processes linked to that application and asking whether to delete those processes along with the application.
  • Manual creation can be used to associate additional processes with an existing application.
  • An application that is running slowly, for example, may need to have a second Recognition Server associated with it to speed up the processing of recognition requests.
  • the administrator avoids having to create the entire application from scratch.
  • the Add Process Dialog 296 will open, as illustrated in FIG. 24 .
  • Type Description Accuvoice TTS Server The service that performs Text-To-Speech translation Nuance RecServer The service that recognizes speech into text Nuance Resource The Resource Manager is created Manager automatically by the platform when a VA application instance is created. Nuance License Manager Recommended by the Nuance Manager RecServer, the License Manager process supplies a valid license to the recognition server process External App A custom-written VA application Telephony Server A COM object server that provides an interface between the VA platform and the telephony hardware APIs
  • each service should be running.
  • An administrator has the option to configure each service as “auto-start,” which indicates that when a system is rebooted the VA Server Manager will automatically attempt to start all of its registered services.
  • An administrator can choose to start or stop all of services running on a platform, all of an individual application's services, or each service individually.
  • a VA service process When a VA service process is created (either manually or through the creation of a new application instance), its auto-start property is by default set to False, indicating that the service will not automatically be started by the VA Server Manager at system start-up. If desired, an administrator can change the auto-start property for a service by clicking on the service's node in the component tree and, in the properties page that appears in the right-hand window, checking or unchecking the Auto-Start check box.
  • the global function will attempt to start all of the services currently being used in the server set, including TTS Servers, Recognition Servers, VA Engines, License Managers, and Resource Managers. This function, in effect, starts all the registered applications on the platform and prepares them to receive incoming calls.
  • Type Startup Order Group Telephony Server 1 External App 1 Nuance Resource Manager 2
  • Nuance License Manager 2 Accuvoice TTS Server 2
  • Nuance RecServer 3 Sound Card Engine 4
  • the telephony servers and external application services will be started first, and the two types of VA Engines (sound card and telephony) will be started last. Because a Telephony Engine cannot be started unless its associated TTS Server is already running, the engine is assigned to higher-numbered group than the TTS Server, guaranteeing they will be started in the proper order.
  • An administrator can also start services at an application level. This function will attempt to start all the processes associated with a particular application. These processes usually include VA Engines, TTS Servers, and Recognition Servers.
  • the VA Server Manager When an application is started, the VA Server Manager will first verify that any global services (such as the Nuance License Manager) needed for the application are already running. If a global dependency is not running, none of the application's services will be started and an error message will be displayed.
  • any global services such as the Nuance License Manager
  • This panel appears in the right-hand window of the VA Management Console GUI when the service's name is clicked on in the component tree.
  • the user has highlighted the TestApplicationResourceMgr node, which is the Nuance Resource Manager for the TestApplication application.
  • the properties for the service appear in the right-hand part of the screen.
  • the Process Status field indicates the status of the process. It can have one of the following values:
  • the code for the error will be displayed in the Error Code field.
  • This error code a hexadecimal number—indicates the reason for the process's failure. A complete listing of the possible error codes and their meanings is set forth below. If one or more of the processes for an application fail to start, the displayed error code can be looked up to determine the reason for the failure.
  • a failed process may also list troubleshooting information in the large Process Events text box on its properties panel.
  • One of the most common causes for a component's failure to start is that one of its prerequisite services is not running.
  • a VA Engine for example, will not start if its TTS Server is not running.
  • a Recognition Server will not start if its License Manager service is not already running. If a particular component has failed to start, make sure that all its associated services are running correctly and, if they are not, attempt to start them.
  • the administrator has several options to choose from when shutting down services on the VA platform.
  • VA services are stopped, the applications will cease execution and no incoming calls can be received.
  • the method for shutting down a VA platform is to use the Stop All (Graceful) function. This function immediately sets the platform so that it will not receive any new incoming calls, but it does not disconnect any current VA sessions. Once all active sessions are complete, the platform will be shut down.
  • an administrator may need to stop all services on the platform immediately. Doing so will disconnect all current VA sessions and close all the platform's applications. To perform an immediate shutdown,
  • a prompt will be provided to confirm the immediate shutdown command. Select Yes to proceed.
  • the VA Management Console includes functions that allow a particular application or an individual service to be stopped. To do so, perform the following steps:
  • the VA platform includes an alert feature that allows the administrator to be paged when selected system errors occur. Such alerts are sent via email pager, and the administrator can configure the type of errors to be monitored and how frequently he or she should be paged. To configure the alerts, double click on the Alerting Setup node under the component tree's Configuration folder. As shown in FIG. 26 , the alert configuration interface 300 will appear in the right-hand frame. In this interface, enter the administrator's pager email address in the Pager Email field 302 and click the Set button, then select the minimum amount of time between pages.
  • an interval is selected (such as 10 minutes) that is long enough to prevent the administrator from being inundated with repeated messages for the same recurring error, but is short enough that the administrator will be informed in case a different error occurs.
  • the checkbox frame select the subsystems to be monitored for errors.
  • the Select All and Clear All buttons can be used to select or clear all of the checkboxes at once. If logon errors is selected, the number of failed logon attempts that should occur before the administrator is notified should be specified. After selecting paging options, click the Test button to have a test message sent to the email pager.
  • the TTS server is configured with pronunciation strings for most common English words. For other words—such as technical terms and proper names—the server uses an algorithm to determine the most likely pronunciation. In many cases, this algorithm may lead to a word's being pronounced incorrectly. For example, the TTS system may pronounce the name Conita as “Co-knit-ah” rather than the correct “Co-night-ah.”
  • the TTS Dictionary feature allows the correction of the TTS's pronunciation of words and phrases. The mechanism works by simple string substitution, that is, whenever the TTS engine encounters a specified string, it will replace it with a more phonetically accurate version before processing the text. An ad ininistrator could, for example, specify that the TTS engine replace all occurrences of the string “Conita” with “Conighta” before translating it to speech. Such a substitution would result in the correct pronunciation of the word.
  • the TTS Dictionary display 308 will appear in the right-hand pane.
  • the dictionary should be configured separately for each TTS server.
  • click the Select Server button 310 to display the entries for a particular server, click the Select Server button 310 and select the name of the desired TTS server.
  • click the Add button to add a new entry to that server's dictionary, click the Add button.
  • the Dictionary Entry dialog 312 will be displayed. In this dialog, enter the actual spelling of the word or phrase and the replacement string that should be used for a correct pronunciation. By default, all string replacements are not case sensitive. Selecting the Match Case checkbox 314 will make the matching case sensitive.
  • the VA Database which is hosted by the Server Set Controller Node, is used by the VA Server Manager to store call log and platform configuration data.
  • This database is implemented with the Microsoft Data Engine (MSDE).
  • MSDE which was released with the Microsoft Office 2000 suite, provides access to databases that are compatible with SQL Server 7.0, though with a smaller set of features.
  • the engine does not include an interface such as the SQL Server Enterprise Manager, and it supports a maximum database size of 2 GB (compared to SQL Server's 32 TB).
  • MSDE databases can be read by the SQL Server interfaces, and they can be upgraded to SQL Server databases if increased size is needed.
  • MSDE does not include its own user interface
  • most management tasks for the VA Database will be performed through the VA Management Console application.
  • a node called Database Manager which, when highlighted, will cause the database management panel 316 to be displayed in the right side of the console window, as shown in FIG. 29 .
  • the configuration parameters and user information stored in the database are essential to the operation of the VA platform. For this reason, the database should be regularly backed up.
  • the Last Database Backup field indicates when the last backup of the current VA database occurred. It is recommended that the VA database be backed up regularly.
  • the directory in which the database will, be backed up is indicated in the Backup Directory field. To change this, edit the field's value directly or click the browse button and select the new directory from a Browse for Folder dialog. To back-up the VA database, click the Backup button.
  • the database can be restored from a back-up.
  • the Restore File field enter the name of the back-up file from which to restore the database (or, click the browse button and choose the filename from an Open File dialog). Then, click the Restore button to begin the restoration.
  • the VA Server Manager maintains logs and transcriptions for all of the calls processed by the VA platforms. These logs are vital not only for diagnosing problems with the systems but also for performing accounting tasks such as billing departments for VA usage. These stored files, however, can grow quite large, particularly on platforms with many users; the logs and transcriptions should be purged periodically to free up disk space. The frequency with which these purges will need to be performed will depend upon the record-keeping needs of the organization and the amount of disk space available on the VA platform.
  • Days combo box indicate how many days to retain transcriptions and/or logs.
  • the database can be backed up and transcriptions and logs can be purged manually, it is usually much more convenient for an administrator to establish a Maintenance Plan, which allows scheduling of regular backup and purge operations. A new Maintenance Plan is added by clicking the Add button inside the Maintenance Plans frame.
  • VA Exchange Server Extension installation inserts a custom Add-In to the Microsoft Exchange Administrator application. As illustrated in FIG. 30 , this installation adds a new tab called Virtual Assistant 318 to the Mailbox Properties Dialog 320 for each user. This tab is used to edit the user's VA properties.
  • An administrator uses the VA Exchange Add-In to enable and disable VA users, and to assign IDs and PIN's for VA users.
  • the Conita VA application requires the following information for each user account:
  • User ID which corresponds to the DNIS number that callers will dial to access a particular user's VA. For example, if John Smith dials 555-1213 to access his Virtual Assistant, then his User ID will be 5551213. In any environment with multiple users, the User ID/DNIS number is essential for identifying which user's Virtual Assistant is being called. When an incoming call is received, the VA application automatically detects the DNIS number and uses it to identify the VA user for which the call is intended. The User ID should be exactly seven digits.
  • each user account requires a Personal Identification Number, which will be entered by the user when he or she dials into the Virtual Assistant.
  • the PIN can be any 4-digit number.
  • the initial PIN for each user is assigned by the VA administrator when he or she sets up the user's account. Users can change their PIN numbers as desired through the Virtual Assistant preferences tab in their Microsoft Outlook application.
  • the Virtual Assistant tab When the VA Exchange Extension package is first installed, the Virtual Assistant tab will be added to each user's mailbox properties dialog, but the user will not be registered with the VA system. Before these users can begin interacting with their Virtual Assistants, the administrator should enable each of them as a VA user. To enable a VA user, perform the following steps:
  • VA Exchange Extensions Included with the VA Exchange Extensions is a utility that can be used to enable or disable all of the VA user accounts in a single batch. This utility is most useful for quickly disabling all VA accounts before removing the VA Exchange Extensions from the Exchange Server. Note: When a VA user account is disabled, the User ID and PIN are not retained. These properties should be entered again by the administrator if the account is re-enabled.
  • the User ID and PIN numbers will remain undefined and should be set for each user by the administrator.
  • the Virtual Assistant platform software registers the following DCOM objects:
  • the security parameters for these DCOM objects are set automatically by the Install Shield.
  • the default values for each of the objects is as follows:
  • a VA administrator can modify the DCOM configuration. However, because setting improper parameters can prevent the VA services from running, such modifications should be made only by an administrator with advanced DCOM experience.
  • the ConitaVA user account (or which ever user account under which the VA processes are running) should have access and launch permissions for all VA objects.
  • vladcom In case the DCOM settings for the VA platform objects are modified, a utility called vladcom is available to reset the objects to their original configuration. This utility is copied to the VA bin directory at install time. To use vladcom to reset the DCOM permissions of VA objects, perform the following steps:
  • ⁇ domain> is the server's NT domain and ⁇ user> is the NT username under which the VA services are running (e.g. “ConitaVA”).
  • the VA platform installation routine automatically sets the access permissions for each directory that it creates.
  • the following user accounts are granted Full Control of all the directories under the root install path (by default, c:.backslash.Program Files.backslash.Conita Virtual Assistant):
  • the installation routine automatically sets the MSDE database (and/or SQL Server, if it is being used instead) to NT Authentication only.
  • the ConitaVA NT account will then be used by the platform software to access the VA database.
  • This setting of authentication is effective at the server-level, not the database level. If other MSDE and/or SQL Server databases are supported on the Controller Node, however, the SQL Server authentication methods may be set for these databases.
  • the VA-established authentication can be modified by performing the following steps:
  • the first three digits of the code indicate which type of message the code represents. These digits can have one of three values, as indicated below:
  • This table lists only those errors and messages generated by the VA platform software.
  • the VA Management Console interface will also report messages generated by Windows NT. If an error displayed in the Management Console does not appear in this list, it is likely an NT error.
  • Windows NT error codes can be translated using the Error Lookup feature of Microsoft Developer Studio.
  • the VA application should be installed on the user's personal computer. After the VA application is installed, the following user preferences should be set:
  • the user's Personal Identification Number (PIN)
  • the user preferences are set using Microsoft Outlook on the user's personal computer.
  • the VA user preferences are located on the Virtual assistant Preferences screen 330 .
  • the Virtual Assistant Preferences screen has three tabs: a General tab 332 , a Phone/Pager tab 334 and a VA Interaction tab 336 .
  • the General tab 332 has an Account Number field 340 , which displays the user's account number.
  • the user's account number should be assigned by system administrator, and the user should not be able to change his or her account number.
  • the PIN button 342 is also on the General tab.
  • the PIN is a four-digit code that is recommended for the user to log into the VA. The PIN is initially assigned by the system administrator, but can be changed by the user by clicking the PIN button 342 .
  • the General tab also has a field 344 for designating the contact where the user's information is located.
  • the VA Application uses the user's contact information to page the user and route telephone calls and reminders to the user.
  • the New Contact button 346 can be used to create a contact for the user. If the user desires to have the VA route telephone calls to the user, all of the user's telephone numbers should be stored in the user's contact record.
  • a user can move old messages from the Microsoft Outlook Inbox to an archive folder by clicking the Archive Folder field 350 , the Select Folder screen appears, which allows the user to select the folder to be used for archiving.
  • the My operator is field is used to select the user's operator from a list. If the user's operator is not included in the contact list, the user can create a new contact for his or her operator. Alternatively, the user can select A manually entered number from the drop-down list 352 and enter the operator's number in the And can be reached at field 354 . If user selected a contact as his or her operator, the operator's telephone number (for example, business) can be selected from the And can be reached at field 354 . If the only available selection is None, the user has not entered any telephone numbers for the contact.
  • the Phone/Pager tab 360 allows the user to control how the VA notifies the user about incoming calls and reminders.
  • the VA can attempt to route incoming calls to the telephone at a specified location via the “follow me” feature.
  • the By Phone field 362 has three buttons that control how the “follow me” feature works. If the Route all calls to button 364 is selected, the VA routes all calls to the specific contact (the user or an operator) selected from the first drop-down list box 366 at the phone number (for example, business) from the second drop-down list box 368 .
  • the user can also select A manually entered number from the first list box 366 , in which case the second box 368 becomes a text field in which the user can enter the phone number.
  • the VA will route calls to the user only at specific times, or will route calls to different numbers at different times. For example, the user might want calls to be routed to the user from 8:00 am to 5:00 pm Monday through Friday. If the Route calls based on schedule button 370 is selected, selecting the Schedule button 372 will allow the user to specify a call routing schedule. Specifying a call routing schedule is discussed in more detail in the section entitled “Setting Up a “Follow Me” Schedule.”
  • the VA will not route calls to the user. Selecting the Do Not Disturb button also deactivates the “follow me” feature, the telephone notification for reminders feature and Rules Wizard messages. If this option is selected, the VA will ask callers to leave a voice message for the user.
  • the By Pager field 376 controls how the VA attempts to page the user. If the Route all pages to button 378 is selected, the VA will route all pages to a specified e-mail address. A contact (usually the user) is selected from the first drop-down list box 380 . If the contact has a pager e-mail address, it appears in the second box 382 . If not, a warning message is displayed. If the contact does not currently have a pager e-mail address, one can be entered on the Virtual Assistant tab of the contact information form. If A manually entered e-mail is selected from the first drop-down list box 380 , the second box 382 becomes a text field in which an e-mail address can be entered. If the Do Not Disturb button 384 is selected, the VA will not route pages to the user, and the pager notification for reminders feature and Rules Wizard messages feature is deactivated.
  • a reminder can be set so that the VA reminds the user of a task or appointment by selecting the telephone checkbox 386 and/or the pager checkbox 388 .
  • the user can be notified we he or she receives certain types of messages by selecting the telephone checkbox 390 and/or pager checkbox 392 .
  • the VA Interaction tab allows the user to specify how the VA interacts with the user.
  • the Tempo field 394 controls the verbosity of the VA. When tempo is set to slow, the VA uses longer phrases to speak to the user. When tempo is set to fast, the VA uses shorter phrases. To change the tempo of the VA, the slider dragged to the desired position. For example, a user would set the tempo to slow when first learning how to use the VA, and after becoming more familiar with the VA, the tempo could be set to fast.
  • the assertiveness of the VA is controlled by the Assertiveness field 396 .
  • assertiveness When assertiveness is set to low, the VA asks for confirmation before performing a task. For example, if a user instructs the VA to delete a message, the VA asks for confirmation before actually deleting the message.
  • assertiveness When assertiveness is set to high, the VA carries out most commands without asking for confirmation. To change the assertiveness of the VA, the slider is dragged to the desired position. A user could set assertiveness to low when learning how to use the VA, and after becoming more familiar with the VA, assertiveness could be set to high.
  • FIG. 34 illustrates how a call flow changes based on different settings for assertiveness and tempo.
  • the user does not manually adjust the tempo and assertiveness settings. Rather, the VA automatically adjusts these settings based on input received by the virtual assistant, such as information about the user.
  • the virtual assistant could have a user competence setting.
  • the options for the user competence setting could be, for example, novice, experienced and expert, and the tempo and/or assertiveness settings would change automatically responsive to a change in the user competence level.
  • the assertiveness setting and tempo setting would automatically be set to low and slow, respectively.
  • the assertiveness setting and tempo setting would automatically be set to high and fast, respectively.
  • any setting could change automatically responsive to changes in the user competence level.
  • the virtual assistant could automatically increase the tempo and/or assertiveness of the virtual assistant after the user has accessed the virtual assistant a predetermined number of times, preferably, twenty.
  • the virtual assistant could automatically provide a prompt to the user in response to which the user could increase the tempo and/or assertiveness of the virtual assistant after the user accessed the virtual assistant a predetermined number of times, preferably, twenty.
  • the virtual assistant could play a tip to the user about the use of the virtual assistant, or a message of the day, which is determined by the system administrator. Either the tip or the message of the day, or both, might be played every time a user accesses the virtual assistant.
  • the virtual assistant could automatically disable the tips or message of the day if the user accesses the virtual assistant a predetermined number of times. That predetermined number could be calculated automatically by the virtual assistant based on a multiple of the number of tips and/or messages of the day. For example, if there are thirty tips, the virtual assistant could automatically disable the tips after the user heard each tip two to ten times, and, preferably each tips was heard three times.
  • the tips and/or message of the day could be automatically disabled if the user access the virtual assistant a predetermined number of times for a predetermined period of time.
  • the virtual assistant could automatically disable the tips and/or message of the day if the user accesses the virtual assistant more than once in a day.
  • the tips and/or message of the day could be automatically disabled during the current user session if the time since that last user session is a predetermined amount of time, such as ten minutes or less.
  • the virtual assistant could have a politeness setting, which, when enabled, would cause the virtual assistant to include words or phrases associated with polite discourse in the output from the virtual assistant.
  • words or phrases could be, for example, “please,” thank you,” “thanks,” “excuse,” “pardon,” “may I,” “would you mind,” or other words and phrases associated with polite discourse.
  • the user information input into the virtual assistant could be information about the user's experience with the virtual assistant, particularly, whether words associated with polite discourse are included in input received from the user. If, such words of polite discourse are included in the input received from the user, the virtual assistant could automatically enable the politeness setting.
  • the user information input into the virtual assistant could be information about the user's emotion, which could be based on information about the user's voice volume, word choice and speech rate. Based on such information, the virtual assistant could automatically determine the user's emotional state, calm or angry, for example. If the user's emotional state is angry, the output of the virtual assistant could automatically include words associated with submissive discourse, such as “sorry,” “regret” and “apologize.” The virtual assistant could save the information obtained about the user's emotional state for use in future sessions.
  • the user information also could be comprised of information about the amount of time since the user last provided input to the virtual assistant. If the amount of time since the user last provided input to the virtual assistant is a predetermined amount of time, for example, fifteen seconds or more, the virtual assistant could perform a predetermined action.
  • the predetermined action would be determined by context. For example, if the user was reading messages, the predetermined action would be to read the next message, or prompt the user by saying, “Shall I read your next message,” or provide a hint to the user by saying, “You could read your next message.”
  • the user experience information could be information about the amount of time a user pauses during the recording of a message. If this amount of time is greater than a some predetermined amount of time, such as two seconds, the virtual assistant would stop recording, provide the user with the option to continue recording. Then, the amount of time before the virtual assistant stopped recording would be automatically increased by some other predetermined amount of time, such as 500 milliseconds, so that the virtual assistant would continue recording during future pauses in recording by the user.
  • a predetermined amount of time such as two seconds
  • Speech recognition errors are always possible in which case the VA may misinterpret a command. For example, Read this message could be interpreted to mean Delete this message. In this case, if assertiveness is set to high, the VA will delete the message without asking the user for confirmation.
  • an alternative embodiment of the VA would have a setting for the user competence. If the user competence setting is set to novice, the VA could be programmed not to execute a particular command, such as Delete this message or Delete all messages, without user confirmation. Conversely, if the user competence setting is set to expert, such commands could be executed without confirmation when the assertiveness setting is set to high.
  • the VA Interaction tab includes a setting 400 to prompt a user to record a subject when sending a message.
  • the VA Interaction tab includes a setting 402 to change the name for the VA from the default name “Conita.” If the user wants to change the name of the VA, this box should be checked and the new name of the VA should be entered in the text box 404 .
  • the VA name entered in the text box 404 is used in the “Come back” command (for example, “Conita, come back”). This command allows a user to bring the VA back during a telephone call so that additional commands can be issued by the user. Adding a name to the “Come back” command makes it easier for the VA to understand this command and decreases the chance of the VA coming back accidentally because it misinterpreted a phrase in a phone conversation as the “Come back” command.
  • the VA Interaction tab includes a setting 406 for ‘come back’ on the keypad only. If this box 406 is not checked, the VA will come back from a break if the user says “Come back” or presses a predetermined key, such as the star (*) key, on a telephone keypad. If this box 406 is checked, the VA will come back only if a predetermined key, such as the star (*) key, is pressed on the telephone keypad.
  • the VA Interaction tab includes VA Greeting settings 408 .
  • the VA When a user calls its VA and logs in successfully” the VA responds with a greeting message.
  • the greeting information about the user's appointments or tasks could be automatically disabled during a user session if the time since the last user session is a predetermined amount of time, such as ten minutes or less.
  • the virtual assistant will provide time-of-day specific greetings to the user based on when the user accesses the virtual assistant. For example, if the user accesses the virtual assistant in the morning, the virtual assistant may greet the user by saying, “Good morning.” These time-of-day specific greetings can be automatically disabled during the current user session if the time since the last user session is a predetermined amount of time, such as ten minutes or less.
  • the user should establish a call routing schedule, which causes the VA to route phone calls to the user at different times.
  • the user before establishing a call routing schedule, the user should define a contact for himself of herself in Microsoft Outlook. Under this contact, the user should specify each telephone number (home, business, and so on) to which it wants the VA to route calls.
  • the user also should specify this contact in the Contact where my information is located 344 on the VA Preferences General tab 332 .
  • the user should enable the Route calls based on schedule setting 370 on the Phone/Pager tab 360 and then click the Schedule button 372 .
  • the Schedule button 372 Upon clicking the Schedule button 372 , as shown in FIG. 35 , the Phone Schedule screen 418 is activated. A block of time is selected by clicking the box for the starting date and time and dragging the mouse to the box for the ending date and time. The block of time selected is highlighted in blue. Clicking the right mouse button activates a menu that displays the telephone numbers (for example, home or work) for the contact specified in the Contact where my information is located 344 on the VA Preferences General tab 332 .
  • the user selects the telephone number to which the VA should route calls during the specified block of time.
  • Other can be selected from the menu and then the other contact and telephone number can be selected.
  • the specified time block changes, for example, to white with a green border.
  • a user can select more than one block of time, and can specify a different telephone number for each block of time.
  • the user can override the call routing schedule with the “Follow me” voice command, which is discussed above. If the user overrides the routing schedule with a voice command, a red line identifies the period of time for which the override is in effect. Also, if the contact where the user's contact information is located is changed, or if the contact to whom calls are being routing is deleted, the VA cannot use the schedule to route calls and a colored border, such as a red border, identifies the affected time blocks. The user should delete these time blocks and redefine them for the new contact.
  • the VA can notify a user by telephone or pager when the user receives certain types of messages. For example, the user might want to be notified if he or she receives a message from his or her supervisor. In order to use this feature, the user should use the Outlook Rules Wizard to specify the types of messages that trigger automatic notification. Information concerning the use of the Outlook Rules Wizard can be found at the Microsoft web site, www.microsoft.com. To set up a rule for VA notification, the type of message for which the user wants to be notified should be selected. Also, the forward it to people or distribution list setting should be enabled. Under Rule Description, the underlined people or distribution list should be selected and then the VAManager should be selected, which causes the affected messages to be forwarded to the VA, which in turn forwards them to the user.
  • the Phone setting 390 and/or the Pager setting 392 should be enabled.
  • the VA software when the VA software is installed, it adds a Virtual assistant tab 420 to the Outlook screen for defining contacts.
  • This tab allows the entry of additional contact information for the VA.
  • the VA tab 420 has Name Pronunciation—First 422 and Name Pronunciation—Last fields 424 which allow the entry of a phonetic pronunciation for a contact's first or last name. These fields can be used to enter a phonetic pronunciation if the VA does not pronouncing the contact's name correctly. For example, if a contact named “Conita” is being pronounced “Coneeta,” a user could enter “Conighta” in this field to change the pronunciation used by the VA.
  • the Nickname 426 and Nickname2 428 fields can be used to enter a contact's nickname. If a nickname is entered, the VA can look up that contact using the specified nickname. Alternatively, a contact's nickname can be entered on the Details tab 430 .
  • the Pager E-mail field 432 can be used to enter the e-mail address for a contact's pager.
  • the Gender field 434 can be used to select the contact's gender.
  • the VA when interacting with a user, will use words associated with the gender selected. If male is selected, the VA may ask the user, “Would you like to call him?”
  • the user in making utterances to the VA, the user should speak clearly and at a moderate pace. The user also should speak at normal volume level. If the VA has difficulty in understanding the user, different volume levels should be tried. The user should use words and phrases that the VA understands. Background noise will reduce the ability of the VA to understand utterances from the user.
  • a user should interact with the VA in a quiet place. The user should avoid pauses when saying a command. If a user pauses, the VA will interpret the pause as the completion of a command. The user should avoid pauses when saying a number, such as a telephone number because should a pause will be interpreted as the end of the number. The user should pronounce each digit when uttering a number to the VA. For example, if a user's PIN is 2314, the user should say “two, three, one, four.” An exception is time; for example, the user can utter either “12 o'clock” or “1200.”
  • help can be requested by uttering “Help” or “What are my options?”
  • the VA will respond automatically with information to assist the user in performing the current task. Also, if there is a period of silence and the user appears to be having trouble, the VA will offer help by reading a list of possible options.
  • the VA can provide either global help of context-sensitive help.
  • Global help lists the tasks that can be performed with the VA.
  • To request global help the user should utter “What are my options?” after the VA says, “What can I do for you?”.
  • the VA responds by listing the major tasks that can be performed. The user can then utter the desired option.
  • any request for help results in a context-sensitive help message for that task. For example, if the user requests to send a message, the VA asks who is to be the intended recipient. If, at this point, the users utters “What are my options?” the VA will tell the user how to provide the contact name for the message recipient.
  • the VA allows a user to issue commands with predetermined key, such as the star (*) or “star” key, of the telephone keypad.
  • predetermined key such as the star (*) or “star” key
  • Star mode This method of interaction, known as Star mode, is useful when the VA is having difficulty understanding a user's utterances because of background noise.
  • the star key (*) on the telephone keypad should be pressed.
  • the VA will provide the user information as to the available options.
  • the option can be selected by the user by pressing the * key.
  • the star mode is discussed in more detail below.
  • the VA is programmed to allow the user to “barge in.”
  • the VA stops talking. For example, if the VA is reading a message and user wants to hear the next message before the VA has completed reading the current message, the user can barge in and say “Next.” This will cause the VA to begin reading the next message.
  • the barge in feature can be deactivated by pressing a predetermined key, such as the number sign (#) key, on the telephone keypad.
  • the barge-in feature can be deactivated by pressing the # key again. A user might want to deactivate the barge-in off if background noise that will cause recognition errors is anticipated.
  • a user can stop the VA from performing an action by saying “Cancel” or “Stop.” For example, if a user asks the VA to place a telephone call and then decides not to place the call, uttering “Cancel” will stop the VA from placing the call.
  • the cancel function is also useful if a user loses track of what he or she is doing or wants to restart a task. Uttering “Cancel” will stop the current task; the VA will indicate that it is ready to receive the next utterance by saying, “What can I do for you?”
  • a user can deactivate the VA, that is, put it on hold, at any time by uttering “Take a break.”
  • the VA stops the task or action being performed and waits for the user to utter a predetermined command, such as “Come back.” After the VA back is reactivated, the VA can continue the task that it was performing when it was deactivated, or begin performing a new task or action.
  • a user When a user wants to end a VA session, the user can utter a predetermined phrase, such as “good-bye” or simply hang up. If the VA hears the user utter “good-bye,” it will also say “good-bye” and prepare to hang up. A short period between the time when the VA says “good-bye” and the time when it actually hangs up allows the user to restart the session by saying “wait” or any other supported system command.
  • the VA does not understand a user utterance, it will ask the user to clarify the utterance. In many cases, the VA will not understand a user utterance because of a recognition error. Recognition errors can be the result of speech problems, syntax problems or inappropriate context.
  • Speech problems occur when the VA cannot recognize what is being uttered by the user for one of several reasons, such as background noise, bad phone connection, heavily accented speech, speech is too loud, too fast or too slow.
  • Syntax problems occur when a user utterance does not conform to the syntax recognized by the VA.
  • the VA is very flexible in recognizing utterances, it is designed to recognize phrases for specific tasks. If the user does not provide the VA with sufficient information, or an utterance contains extraneous words, the VA might become confused. For example, the VA may not understand the utterance, “What I need to know is the number for John Smith's home extension.” However, the utterance, “What is John Smith's home phone number?” can be understood by the VA.
  • Recognition errors also occur if a user utters a valid command, but the command is inappropriate given the context. For example, if a user is creating an appointment, the VA expects to be provided information about the appointment. If the user utters a command to call a contact before finishing the task of creating the appointment, the VA will not recognize the command as valid.
  • the user can be instructed to take the following actions:
  • the VA can be programmed to provide such instructions automatically, depending on the number and/or frequency of recognition errors.
  • the VA automatically disconnects and terminates the user session if it receives a predetermined number of recognition errors.
  • the VA also automatically disconnects after predetermined period of inactivity, for example, approximately 15 seconds. Before disconnecting, the VA should inform the user to call back and try again.
  • the automatic disconnect feature prevents an off-hook VA from staying connected due to background noise.
  • the automatic disconnect feature also allows the user to obtain a better connection if recognition errors are due to a bad connection.
  • a user wants to send the system administrator a comment about the VA, the user can utter “Leave a comment.” The VA then prompts the user to record and comment and automatically sends it to the system administrator.
  • a user When a user calls the VA, it should log in.
  • the system administrator determines the recommended log-in information. If each user has a unique telephone number for his or her VA, then the user need only provide a PIN to log in. If every user uses the same number to reach his or her VA, the user should provide both an account number and a PIN to log in.
  • the VA will respond with a brief tone and a greeting. For example, “You have four e-mail messages. You have two voice mail messages.” After the greeting, the VA will provide a prompt such as, “What can I do for you?” This indicates that the VA is ready to receive commands or utterances from the user.
  • the greetings will automatically change responsive to how the user has previously interacted with the VA.
  • the VA may be initially configured to provide time-of-day specific greetings (for example, “Good morning,” “Good afternoon,” “Good evening”) when the user logs in.
  • time-of-day specific greetings may be automatically disabled for a predetermined period of time, such as a days if the amount of time since the user last accessed the VA is a predetermined amount of time, such as ten minutes or less.
  • the time-of-day specific greetings also could be disabled after the user accesses the VA more than a three times in a day.
  • the VA may be initially configured to provide information to the user about the user's appointments scheduled for, or tasks that are due, the day.
  • appointment and/or task information may be automatically disabled for a predetermined period of time, such as the rest of the day, if the amount of time since the user last accessed the VA is a predetermined amount of time, such as ten minutes or less.
  • the providing of such appointment or task information also could be disabled after the user accesses the VA more than a three times in a day.
  • the user After a user logs in to the VA, the user will likely want to listen to new messages, such as voice mail messages, e-mails, meeting and task requests generated through Microsoft Outlook, and faxes received by the VA and stored as messages.
  • new messages such as voice mail messages, e-mails, meeting and task requests generated through Microsoft Outlook, and faxes received by the VA and stored as messages.
  • the VA provides several different options for listening to messages. These options allow a user to quickly determine which messages are important and then obtain more detail about them. The options are listed in the table set forth below:
  • Option Information provided Count Count of messages Browse Sender and subject List Sender and subject Read Sender, subject, body of the message, attachments Note: The VA cannot read faxes to a user To read a faxed message, the user should forward it either to a fax machine or to a personal computer that contains fax display software More detail Detail in addition to that provided by the read option; varies according to the type of message
  • “Navigating” is the process of directing the VA to the specific message or messages a user wants to hear. If a user instructs the VA to “Read my messages,” the VA reads all messages in order, beginning with the oldest new message. However, there are many options that allow a user to specify which message or messages VA should read.
  • “New” messages are those that have been received since the user last called the VA (and, perhaps, since the user last checked messages on a personal computer). “Old” messages include all other messages, even if they have not been read. If a user instructs the VA to read messages, it reads the new messages by default, and then will read the user's old messages. If the user instructs the VA to “Read my old messages,” the VA starts reading the most recent old message, and then reads the user's most recent old messages.
  • Read messages are those that the VA has read to the user or the user has read with Outlook on a personal computer.
  • Unread messages are those that the VA has not read to the user and the user has not read with Outlook.
  • the “first” message is the most recent message received by the user.
  • the “last” message is the oldest message received by the user.
  • a user can tell the VA read the first or last message by saying “Read my first message” or “Read my last message.”
  • the VA should have a message context. That is, it should be listing, reading, or performing a similar activity. If the VA says, “What can I do for you?” and a user says “Next,” a misrecognition will likely occur. As discussed above, a user is not required to wait for the VA to finish reading the current message; when the user wants to hear the next message, the user can barge in and request the VA to read the next message.
  • a user can filter, or tag, the messages the user wants to access by providing additional descriptive information to the VA. For example, if a user instructs the VA to “Read my new messages,” the VA reads all new messages beginning with the first new message. However, if a user is expecting an important message from a particular person, e.g., John Smith, the VA will read only messages from John Smith if the user instructs the VA to “Read my new messages from John Smith.”
  • a user can request the VA to provide a count of messages by saying, “How many messages do I have?”
  • the VA will respond, for example, by saying, “You have four messages. Two of these are e-mail messages, and two are voice mail messages.
  • the following table shows other options available to a user in requesting a count of messages.
  • a user can browse messages by saying, “Browse my messages.”
  • the VA responds by reading the sender and subject for each message, beginning with the first message. For example, “Sally Jones . . . Need your timesheet,” and “James Ford . . . Lunch today?”
  • If a user wants the VA to read a message the user can barge in while the VA is reading the subject and say, “Read it.” The user-should say, “Read it” before the VA begins the next message. If the VA begins reading the next message before the user says, “Read it,” the user can say “Previous” to get back to the message.
  • voice messages the VA plays back a recording of the sender's name.
  • For faxes the VA reads the number of the sending fax machine.
  • a user lists messages by saying, “List my messages.”
  • the VA responds by reading the sender, delivery date, and subject for each message, beginning with the first message.
  • Listing is an efficient way for a user to review messages and determine which ones are the most important. If the user wants the VA to read the current message it is listing, the user can barge in and say “Read it.” The following table shows other options available to a user in requesting a list of messages:
  • the VA reads different types of messages in different ways, based on the information available for the type of message. In general, however, the VA reads messages as follows:
  • the VA cannot read faxes.
  • a user should forward it either to a fax machine or to a personal computer that contains fax display software.
  • the message description contains the information necessary for a user to identify a message.
  • the VA reads this information first so the user can decide whether to listen to the message.
  • the message description is different for different message types, as shown in the following table:
  • the message description contains the For this message type following E-mail Sender, delivery date, and subject Voice mail Message type, caller's name, delivery date, and callback number Meeting requests Sender, delivery date, and subject Task requests Sender, delivery date, and subject Faxes Telephone number of the machine that sent the fax
  • the messages can be filtered as follows:
  • Example Message type Read my voice mail messages E-mail Voice mail Meeting requests Task requests Sender Read my messages from John Smith Message status: Read my first message First or Last Read my urgent messages New or Old Read or Unread Deleted Urgent A combination of the Read my e-mail messages from John Smith other options
  • the VA When the VA finishes reading the text of a message, it reads (or plays) any attachments included with the message. Before reading an attachment, the VA tells the user its type and name. If user asks for more detail, the VA tells the user the attachment's file size. In the preferred embodiment, the VA can read text, rich text, HTML, and sound files (e.g., .wav files). The VA informs a user if an attachment cannot be read. If a message contains more than one attachment, a user has the following navigation options:
  • the user can say, “Get more detail.”
  • the VA will respond by providing additional detail, depending on the type of message.
  • a user wants to remove a message from the Inbox and retain a copy, the user can move it to an archive folder.
  • To move a message from Inbox to an archive folder say, “File this message.”
  • the user can access it from the VA only if it is returned to the Inbox by saying “Restore” immediately, before issuing the next command.
  • an archive folder should be created under Microsoft Outlook, and the name of the archive folder should be specified in the user preferences, which is discussed above.
  • the message to be deleted should be the current message, that is, the message the VA is describing or reading. If a user wants to restore a deleted message, it can do so by saying “Restore this message” immediately, i.e., before the user continues to the next command. Once the user issues the next command, the VA cannot restore the deleted message.
  • all deleted messages are moved to the Microsoft Outlook Deleted Items folder. Messages in the Deleted Items folder are subject to the permanent deletion policy defined with Outlook. If a user tells the VA to delete a meeting or task request, the VA will ask the user if it wants to respond to the sender with a rejection before deleting the message.
  • a user can browse contacts by saying, “Browse my contacts.”
  • the VA responds by telling how many contacts in the contact list and reading the name of each contact (in alphabetical order).
  • a user can list contacts by saying, “List my contacts.”
  • the VA responds by telling how many contacts in contact the list, and reading the name and company of each contact. If the user wants more detailed information about the current contact that the VA is listing, the user can barge in and say “Read it.”
  • the user can read contacts by saying “Read my contacts.”
  • the VA responds by telling how many contacts in the contact list, and reading each contact's name, title, company, telephone numbers, and e-mail address.
  • the user wants more detailed information about a contact than the VA provides by reading, the user can say, “Get more detail.”
  • the VA responds by reading the contact name, job title, birthday, spouse name, gender, anniversary and other telephone numbers.
  • a specific field of information for example, a telephone number or e-mail address
  • the user can use any of the following commands:
  • the user When a user inquires about a contact, the user should identify the contact for the VA.
  • the user can use any of the following to identify a contact:
  • the more information provided the more precisely the VA can identify the contact. For example, if a user asks for a contact by last name only and the contact list contains more than one contact with that last name, the VA cannot immediately determine which contact the user wants. If the VA finds more than one matching contact, it begins with the first contact and asks whether this is the one the user wants. The user can respond by saying either “Yes” or “No” until the user identifies the desired contact.
  • the user can say “Add a contact.”
  • the VA prompts the user to provide first name, last name, e-mail address, work telephone number and home telephone number.
  • the VA When prompting for a name, the VA first asks the user to say the name. The VA then repeats the name and asks if it is correct. If the name is correct, the user will say “Yes” and the VA prompts the user for the next piece of information. If the name is not correct, the user can either say “Try again” to say the name again, or say “No” to spell the name one letter at a time, with the VA confirming each letter. When the VA confirms the last letter of the name, that user can say, “That's it” to continue.
  • the VA recites the International Phonetic Alphabet word for each letter on the button (for example, “Alpha Bravo Charlie”). The user can then say the word for the letter.
  • a user can create a new contact from an e-mail message.
  • the e-mail should be the current message the VA is reading.
  • the user can say “Add this contact.”
  • the VA adds the sender of the e-mail to the user's contact list, if that person is not already in the contact list.
  • a user can send a new message to any contact in the contact list by saying “Send a message.”
  • the message is recorded as a sound file (.wav) and attached to an e-mail message.
  • the recipient of the e-mail message should have some means of playing sound files.
  • the user can specify the name of the contact in the command (for example, “Send a message to John Smith”). If the user says, “Send a message,” the VA asks for the name of the contact. If the contact has more than one e-mail address, the VA asks to specify which e-mail address to use.
  • the user can specify the name of a distribution list (for example, “Send a message to Quality Team”) instead of a contact.
  • the VA sends the message to each contact in the distribution list.
  • the VA asks whether to record a subject for the message. If the user says, “Yes,” the VA directs the user to record the subject. After requesting the subject, the VA asks to begin recording the body of the message. When finished recording the body, the VA asks whether to send the message.
  • a user can reply to a message in Inbox by saying “Reply to this message.”
  • the message replied to should be the current message, that is, the message the VA is describing or reading.
  • the reply is recorded as a sound file (.wav) and included as an attachment.
  • a user can also record a sound file for the subject of the reply.
  • the original message is included in the reply. All attachments (except those created by the VA) are stripped from the reply. The original message is appended to the reply message. If the user replies to a voice mail message, the VA attempts to call the person who left the message.
  • a user can forward any message in Inbox to a contact on the contact list by saying “Forward this message.”
  • the message forwarded should be the current message, that is the message the VA is describing or reading.
  • the VA handles forwarded messages in much the same way as it handles replies, except that the original attachments are included.
  • the user can specify the name of a contact when forwarding a message. If the user says, “Forward this message,” the VA asks for the name of the contact. If the contact has more than one e-mail address, the VA asks to specify which e-mail address to use.
  • the user can fax a message by saying, “Fax this message.”
  • the message to be faxed should be the current message, that is, the message the VA is describing or reading.
  • a user can fax a message to either an existing contact in the contact list (the user should specify the name of the contact and the VA faxes the message to the contact's fax number) or a fax number that is recited to the VA at the time of the fax request. Attachments are included in a faxed message only if the fax software recognizes them.
  • the VA handles incoming calls from the user and from other callers attempting to reach the user.
  • the VA receives an incoming call, it asks for the caller's name. If the user is the caller, the user identifies itself by saying, “It's me,” and logging in using the account number (if required) and PIN. The user can then start issuing commands to the VA. If another caller is attempting to reach the user, the caller should record a name when the VA asks for it. The VA then asks whether the caller wants to be connected to the user or leave a message. If the caller asks to be connected, the VA handles the call based on the user preference settings:
  • the “follow me” feature attempts to forward the call to the “follow me” telephone number specified the “follow me feature” is disabled,. or asks the caller to record a the VA cannot reach the user, or message the “do not disturb” feature is enabled the user rejects the call
  • the VA After recording a message, the VA asks if the caller wants to send the message. If the caller does not respond immediately, the VA recites a list of options (for example, send the message, review the message or cancel). The caller can select the desired option by saying the correct phrase. The caller's message, including the recorded name and telephone number, is sent to the Inbox as a voice mail message. The user can then listen to this voice mail message the next time the user accesses the VA.
  • a list of options for example, send the message, review the message or cancel.
  • the caller can select the desired option by saying the correct phrase.
  • the caller's message including the recorded name and telephone number, is sent to the Inbox as a voice mail message. The user can then listen to this voice mail message the next time the user accesses the VA.
  • the VA assigns a line number to each inbound and outbound call. This is useful if the user needs to keep track of multiple calls or if the user is involved in a conference call. If the user has several active calls, the user can use the following calls to determine which caller is on which line:
  • the VA After the VA connects a call, it become temporarily inactive, that is, it “goes to sleep.” While sleeping, the VA only responds to a specific wake-up command. This allows the user to talk with the calling or called party without interference from the VA.
  • the user can interrupt a call and reactivate, or “wake up,” the VA at any time by saying “Come back.”
  • the VA responds by saying, “I'm here.”
  • the user can then issue commands to the VA again. If the user does not want the other party to the call to hear the dialog with the VA, the user can say “Go private.” When a call is completed, the VA returns to continue performing tasks.
  • a user can terminate a call by either hanging up (this also terminates the call with the VA) or saying one of the following commands:
  • the VA interrupts with a tone.
  • This tone is referred to as a “whisper,” since it is audible only to the user, that is, no other parties on the line can hear the tone.
  • the user can break from the current call and speak to the VA by saying, “Come back.”
  • the VA gives the user more detail about the call and allows the user to accept it by saying, “Take the call” or reject it by saying, “Reject the call.” If the user does not respond in a predetermined amount of time, the VA sends the call to voice mail.
  • the VA prompts incoming callers to provide a name. If the user has the “follow me” feature enabled, the VA attempts to reach the user by telephone and inform the user of the incoming call. When the VA contacts the user, it recites the recorded name of the caller. The user then has the option to accept or reject the call. If the user accepts, the VA connects the caller. If the VA cannot transfer the call because the user rejected the call, the VA could not reach the user or the user as the Do Not Disturb feature enabled, it asks the caller to leave a message. The VA only attempts to reach the user at one number. The user can change this number at any time. The user also can set this number to change at different times of the day.
  • a user can set options for the “follow me” feature in the Microsoft Outlook VA user preferences, which is discussed above.
  • the user can issue the following commands to override the user preferences for the “follow me” feature:
  • Command Description Following me Use this command to turn “follow me” on or to override the current call routing schedule.
  • the VA asks to specify the duration of the override and the telephone number at which the user can be reached. Hold my calls Use this command to enable on the “do not disturb” option.
  • the VA asks the user to specify the duration.
  • the user can specify any of the following:
  • An override command expires when the specified duration has passed.
  • the user can also cancel an override command at any time by saying “Put me on schedule.”
  • an override command expires or is canceled, the user preference “follow me” settings are reinstated.
  • the user can command the VA to call to a contact from the user's Microsoft Outlook list by:
  • the VA Inquiring about the contact's telephone number (for example, “What is John Smith's work phone number”).
  • the VA provides the requested number and then asks if the user wants to call it.
  • the VA Before placing a call to a contact, the VA recites the contact's name and location and then remains silent for a short period. This period of silence allows the user to correct a mistake or cancel the call. If the contact has more than one telephone number, the VA asks which number to call. If the user has previously called a contact with more than one telephone number, the VA will automatically call the contact at the telephone number last used by the VA to call the contact. If no telephone number exists for the contact, the VA informs the user of this and returns to the main menu. If the contact's telephone number includes an extension, the VA reminds the user of the extension before placing the call. The VA determines whether the call is long distance or local and adjusts the number accordingly.
  • a user can command the VA to place a call to any telephone number from two to eleven digits long.
  • To place a call to a telephone number say “Call ⁇ phone number>” (for example, “Call 803-366-4509.”)
  • the VA repeats the number and the user has a short period of time to correct any mistakes.
  • the user can instruct the VA to call back a person who left a voice mail message.
  • the voice mail message should be the current message, that is, message the VA is listing or reading.
  • To instruct the VA to call back say “Give them a call.”
  • the VA should be able to determine the caller's telephone number. Either the caller should leave a number, or the VA should capture the number from which the call was placed. The VA informs the user if it cannot determine the caller's telephone number.
  • the VA uses the concept of a “conference room” to enable a user to make conference calls. If a user puts a call in the conference room, that person can hear and speak to all of the other parties in the conference room. If the user “goes private” with a line, none of the other parties on other private lines or in the conference room can hear the user. There are three ways a call can be placed in the conference room:
  • the new call is placed in the conference room.
  • the user can instruct the VA to place a call or calls in the conference room.
  • the user can have both “private” and “conference room” calls active at the same time.
  • the following table lists commands that the user can use to manage conference calls:
  • a user can obtain a summary of appointments by saying “Summarize my appointments.”
  • the VA responds by asking for the date, in response to which the user can say “Today,” “Tomorrow,” or a specific date, for example, February 19th.
  • the VA recites the number of meetings, all day events, and appointments.
  • a user can browse his or her schedule by saying, “Browse my appointments.”
  • the VA responds by asking for the date.
  • the VA recites the subject and start time for each appointment.
  • a user can request a list of all appointments by saying, “List my appointments” or “What are my appointments?”
  • the VA responds by asking for the date.
  • the VA tells the user how many appointments he or she has and recites the start time, duration, and subject for each appointment.
  • a user can filter the appointment list by any of the following:
  • Type of Filter Example Date (today or tomorrow) List my appointments today First or last List my first appointment Next or previous List my next appointment A combination of the other filters List my first appointment today
  • a user can request that the VA read all appointments by saying “Read my appointments.”
  • the VA tells the user how many appointments he or she has, and then reads the start time, duration and subject for each appointment.
  • a user can filter the appointments to be read by the same criteria that used to filter an appointment list:
  • Type of Filter Example Date (today or tomorrow) Read my appointments for today First or last Read my first appointment Next or previous Read my next appointment A combination of the other filters Read my first appointment tomorrow
  • the user can say, “Get more detail,” and the VA responds by providing information regarding whether or not the appointment is recurring, attendees and location.
  • a user can respond to a meeting request by saying “Reply” or “Forward” while the VA is listing or reading it.
  • the VA lists the options for replying to a meeting request, which are Accept, Tentatively accept, Decline, Forward and Reply.
  • the VA asks if the user wants to add an annotation. If a user accepts a meeting request, the VA deletes it from the Inbox and moves it to the Calendar folder. If the user chooses to forward a meeting request, the VA requests the name of the contact to whom the user is forwarding it.
  • a user can ask the VA to find free time in his or her schedule using the following commands:
  • the VA To add an appointment to a user's schedule, say, “Schedule an appointment.” (The user can also specify “Today” or “Tomorrow” in the command; for example, “Schedule an appointment tomorrow.”)
  • the VA then asks the user to specify the following the duration of the appointment, date (if not specified in the original command), starting time and subject.
  • the VA automatically checks free time when a user schedules an appointment.
  • the VA can remind a user of his or her appointments, by either telephone or pager or both.
  • the VA plays a “whisper” tone. This tone is different from the “whisper” tone for an incoming call.
  • the VA does not actually deliver the reminder until the user either completes or cancels the current function.
  • the VA uses the default reminder time specified for the Microsoft Outlook Calendar.
  • the user should first set the correct notification options in the Microsoft Outlook VA user preferences. The option that controls reminder notification is notify me on reminders via on the VA Preferences Phone/Pager tab.
  • a user can delete an appointment by saying, “Delete this appointment” while the VA is describing or reading it.
  • a user can use the VA to deliver a wake-up call by creating an appointment with a reminder for the time the user wants to be awakened.
  • a user can use the following commands to request the date and time:
  • the user can cause the VA adjust the time for emails, appointments, and tasks accordingly.
  • To change time zone say, “Change my time zone.”
  • the VA asks for the current local time, which it uses to compute the new time zone.
  • a user can use the VA to manage task information stored in the Outlook Tasks folder.
  • a user can do any of the following with the VA:
  • a user can receive task requests that other people send (task requests are treated as incoming messages by the VA). However, a user cannot use the VA to generate and send task requests.
  • a user can request a summary of tasks by saying, “What are my tasks?”
  • the VA responds by telling the user how many tasks the user has that are due today, overdue, due in the future or have no due date.
  • a user can browse tasks by saying, “Browse my tasks.”
  • the VA responds by reading the subject and due date for each task, beginning with the first task.
  • a user can request a list of all tasks by saying, “List my tasks.”
  • the VA responds by telling the user how many tasks the user has, then reading the subject and due date for each task.
  • a user can filter the task list by any of the following:
  • Type of Filter Example Category (future, due today, due tomorrow, List my tasks due today overdue, no due date) First or last List my first task Next or previous List my next task A combination of the other filters List my first task due today
  • a user can request that the VA read all tasks by saying, “Read my tasks.”
  • the VA tells the user how many tasks the user has, then reads the subject, date, whether a reminder has been set, and, if so, the reminder date and time, and the body, for each task.
  • a user can filter the tasks to be read by the same criteria as a task list:
  • the user can say, “Get more detail,” and the VA responds by providing the information regarding subject, due date, person who assigned the task, whether a reminder has been set, start date, status, priority, and percent complete.
  • the user should say, “Create a task.”
  • the VA then asks the user to specify the task subject (description), due date, and whether the user wants a reminder.
  • a user can set a reminder so that the VA will remind the user of a task.
  • a user can choose to be reminded either by telephone or by pager.
  • the VA plays a “whisper” tone to notify the user of a reminder. This tone is different from the “whisper” tone for an incoming call.
  • the VA does not actually deliver the reminder until the user either completes or cancels the current function.
  • a user should first set the correct options in the Microsoft Outlook user preferences.
  • the option that controls reminders is Notify me on reminders via on the VA Preferences Phone/Pager tab.
  • a user can respond to a task request by saying, “Reply” while the VA is listing or reading it.
  • the VA then lists the following options: Reply or Forward.
  • the VA asks if the user wants to add an annotation. If a user chooses to forward a task request, the VA requests the name of the contact to whom the user is forwarding the task.
  • the user should say, “Delete this task.”
  • the task that user deletes should be the current task (that is, the task that the VA is listing or reading.
  • the VA responds with “Deleting task . . . done.”
  • the VA asks if the user wants to send a rejection message to the sender.
  • the VA allows a user to use the telephone keypad to issue commands.
  • the user should press a predetermined key, such as the star key (*), to enable a choice prompt mode.
  • a predetermined key such as the star key (*)
  • the VA prompts the user with the available choices. A user can then use the keypad to select the desired choice.
  • the user may elect to interact with the virtual assistant by speech. If, however, conditions are not favorable for accurate speech recognition, for example, there is background noise or signal quality on a wireless handset is low, the user may elect to enter a choice prompt mode, as described above. As mentioned above, the user could selectively enter choice prompt mode by pressing a predetermined key, such as the star key, on a telephone keypad.
  • a choice prompt is a prompt, that is, output, from the virtual assistant that prompts the user to indicate a choice or take some specific action.
  • the choice prompt is divided into active segments, which correspond to the choices that are selectable by the user. User input during a particular active segment indicates that the user desires to select the choice being provided during the active segment of the choice prompt.
  • the choice prompts could be, “Would you like to send your message (prompt 1 ) 440 , review your message (prompt 2 ) 442 , or discard your message (prompt 3 ) 444 ?”
  • the corresponding active segments are 450 , 452 and 454 , respectively.
  • the user can depress a predetermined key on the telephone keypad, or speak a predetermined utterance, during the active segment that corresponds to the desired choice.
  • a predetermined key on the telephone keypad or speak a predetermined utterance, during the active segment that corresponds to the desired choice.
  • prompt 1 440 is being spoken would signify the user has selected “send the message.”
  • prompt 2 442 is being spoken would signify the user has selected “review the message.”
  • prompt 3 444 is being spoken would signify the user has selected “discard the message.” It should be noted that saying “Yes” or pressing the star key would have no selective effect outside of the active window of the choice prompt stream.
  • the virtual assistant could be configured to accept only DTMF input.
  • voice input would not be possible because the speech recognition engine would not interpret spoken utterances.
  • the ability of a user to “barge in” would be disabled.
  • no sounds, whether spoken or extraneous background noises, would interrupt the virtual assistant.
  • the only acceptable input would be the predetermined DTMF.
  • a user could select to enter a choice prompt mode where only specific voice commands, such as “yes” and “no” would be interpreted by the speech recognition engine.
  • the user could selectively exit choice prompt mode by pressing the star key again.
  • the virtual assistant could be configured to permit the user to exit the voice interface and enter the choice prompt mode to complete a specific task. Then, once the specific task is complete, the user would automatically exit the choice prompt mode and re-enter the voice use interface for further interaction with the virtual assistant by speech.
  • the default option is the first option recited by the VA. If the user knows that its intends to choose the default option, the user can press the star key twice (**), which enables the Star mode and chooses the default option in one step.
  • a user can use a combination of voice and keypad commands to perform a task.

Abstract

A computer-based virtual assistant includes a virtual assistant application running on a computer capable of receiving human voice communications from a user of a remote user interface and transmitting a vocalization to the remote user interface, the virtual assistant application enabling the user to access email and voicemail messages of the user, the virtual assistant application selecting a responsive action to a verbal query or instruction received from the remote user interface and transmitting a vocalization characterizing the selected responsive action to the remote user interface, and the virtual assistant waiting a predetermined period of time, and if no canceling indication is received from the remote user interface, proceeding to perform the selected responsive action, and if a canceling indication is received from the remote user interface halting the selected responsive action and transmitting a new vocalization to the remote user interface. Also a method of using the virtual assistant.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. application Ser. No. 12/053,229, filed Mar. 3, 2008, which in turn is a continuation of U.S. application Ser. No. 10/837,605, filed May 4, 2004, entitled “Personal Virtual Assistant,” now U.S. Pat. No. 7,415,100, which in turn is a continuation of U.S. application Ser. No. 09/519,075, filed Mar. 6, 2000, now U.S. Pat. No. 6,757,362; all of these applications are hereby incorporated by reference in their entireties.
  • FIELD OF THE INVENTION
  • The present invention relates to a computer-based, personal virtual assistant for managing communications and information, whose behavior can be changed by the user and whose behavior automatically adapts to the user.
  • BACKGROUND OF THE INVENTION
  • Mobile professionals, such as physicians, attorneys, sales representatives and other highly mobile professionals often find it difficult to communicate with clients, customers, colleagues and assistants. These mobile professionals travel frequently and are not accessible via a desk telephone or traditional, wired computer network. They typically employ human assistants to relay important information, maintain their schedules and filter out all unnecessary interruptions. The virtual assistant of the present invention allows the mobile professional to access personal, company, and public information, including contacts, schedules, and databases from any interactive device, such as telephone.
  • Electronic assistants with voice interfaces are known. U.S. Pat. No. 5,653,789 to Miner, et al. discloses a method implemented by a computer-based electronic assistant to receive and manage incoming calls to a subscriber. The electronic assistant in Miner, however, does not disclose a virtual assistant whose underlying behavior can be changed by the user or who has any degree of automatic adaptivity.
  • Voice response systems (VRS) that automatically adapt to the user are known. For example, U.S. Pat. No. 5,483,608 to O'Sullivan discloses an interactive VRS that automatically adapts to suit the speed at which the caller interacts with the system. The VRS disclosed in O'Sullivan is programmed to measure the response times of the caller and adjust the playing speed of the application dialogue's voice messages accordingly using an algorithm incorporated into the application software of the voice response system. Thus, if the caller is responding relatively fast and without error to the voice message prompts, the system will gradually speed up subsequent voice message prompts. If the caller is responding more slowly to the voice message prompts or is making errors in their responses, the system will slow down subsequent voice message prompts. The system disclosed in O'Sullivan, however, does not perform the actions of a virtual assistant, nor does it permit the user to control how the system adapts.
  • Another caller adaptive VRS is disclosed in U.S. Pat. No. 5,553,121 to Martin et al. Martin et al. discloses a system for varying the voice menus and segments presented to the user of a voice response system according to the competence of the user. The response time of a user to voice prompts is measured and an average response time is determined. It is assumed that the lower the average response time, the greater the competence of the user. The average response time is used as an index to a table of ranges of response times. Each range has respective voice segments associated therewith. The voice segments comprise oral instructions or queries for the user and vary according to the anticipated competence of the user. If the average response time changes such that the voice segments indexed are different to the current voice segments then a data base containing information relating to user competence is updated to reflect such a change. Accordingly, when the user next interacts with the voice response system a new set of voice segments more appropriate to the user's competence will be played. The system in Martin et al. also discloses determining user competence by identifying individual callers using existing caller identification technology. The call identification code of a telephone call can be used as an index to data stored in a user database comprising information relating to the competence of a user. Alternatively, the user can be asked to enter a password before further access is allowed to the system. The password can then serve as an index to the stored data associated with the user. The stored data identifies which set of voice data is appropriate for use during an interaction with said user. Alternatively, determining the number of times per day that a user accesses the system or the length of time which a user has subscribed to such a system may also be indicative of their competence. Again, VRS disclosed in Martin does not perform the functions of a virtual assistant, nor does it permit the use to have any significant degree of control over the behavior of the system.
  • Further, while the prior art systems adapt automatically to the caller, the degree of adaptation is relatively limited. For example, the prior art systems do not disclose a virtual assistant that automatically uses words associated with polite discourse when the user's input contains words associated with polite discourse. Prior art systems also do not disclose a virtual assistant that adapts to the user based on the user's emotional state.
  • SUMMARY OF INVENTION
  • The present invention relates to a personal virtual assistant with many discrete features, each of which comprises a separate but related invention. Thus, one aspect of the present invention is a computer-based virtual assistant the behavior of which can be changed by the user, comprising a voice user interface for inputting information into and receiving information from the virtual assistant by speech, a communications network, a virtual assistant application running on a remote computer, the remote computer being electronically coupled to the user interface via the communications network, wherein the behavior of the virtual assistant changes responsive to user input.
  • Another aspect of the present invention is a computer-based virtual assistant that automatically adapts its behavior comprising a voice user interface for inputting information into and receiving information from the virtual assistant by speech, a communications network, a virtual assistant application running on a remote computer, the remote computer being electronically coupled to the user interface via the communications network, wherein the remote computer is programmed to automatically change the behavior of the virtual assistant responsive to input received by the virtual assistant. As detailed below, the virtual assistant adapts to the user in many different ways based on the input the virtual assistant receives. Such input could be user information, such as information about the user's experience, the time between user sessions, the amount of time a user pauses when recording a message, the user's emotional state, whether the user uses words associated with polite discourse, and the amount of time since a user provided input to the virtual assistant during a session.
  • Other features and advantages will become apparent based on the following detailed description of the preferred embodiments and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is an overview of the virtual assistant (VA) of the present invention;
  • FIG. 2 is a diagram of the VA Server;
  • FIG. 3 is a diagram of the VA Studio;
  • FIG. 4 is a diagram of the VA Engine conceptual model;
  • FIG. 5 is a diagram of the VA Manager conceptual model;
  • FIG. 6 is a screen shot of the Microsoft Management Console for managing the VA Server Manger;
  • FIG. 7 is a screen shot of a web page that uses Active Server Pages to manage the VA Server Manager;
  • FIG. 8 is a diagram of the component relationships of a VA Server Set;
  • FIG. 9 is a diagram of a relatively small VA system;
  • FIG. 10 is a diagram of a large VA system;
  • FIG. 11 is a diagram of a very large VA system;
  • FIG. 12 is a diagram of a hardware configuration for a single ISDN PRI link;
  • FIG. 13 is a diagram of a hardware configuration for a two ISDN PRI links;
  • FIG. 14 is a screen shot of the Custom Component Selection screen;
  • FIG. 15 is a screen shot of GlobalCall Feature Selection screen;
  • FIG. 16 is a screen shot of the Outlook Feature Selection pane;
  • FIG. 17 is a screen shot of the VA Management Console;
  • FIG. 18 is of the VA Management Console with the general information form displayed in the right panel;
  • FIG. 19 is a screen shot of the Add Application Instance Dialog box;
  • FIG. 20 is a screen shot of the Select TTS Server Dialog box;
  • FIG. 21 is a screen shot of the Add Recognition Server Dialog box;
  • FIG. 22 is a screen shot of the Add VA Engine Dialog box;
  • FIG. 23 is a screen shot of the Set Application File Dialog box;
  • FIG. 24 is a screen shot of the Add Process Dialog box;
  • FIG. 25 is a screen shot of the Properties Display Panel for a Resource Manager Service;
  • FIG. 26 is a screen shot of the Alert Configuration Interface;
  • FIG. 27 is a screen shot of the TTS Dictionary Display;
  • FIG. 28 is a screen shot of the Dictionary Entry Dialog box;
  • FIG. 29 is a screen shot of the Database Manager Panel;
  • FIG. 30 is a screen shot of the Mailbox Properties Dialog with Virtual Assistant Tab;
  • FIG. 31 is a screen shot of the General tab on the Virtual assistant Preferences screen;
  • FIG. 32 is a screen shot of the Phone/Pager Tab on the of the Virtual assistant Preferences screen;
  • FIG. 33 is a screen shot of the VA Interaction tab on the of the Virtual assistant Preferences screen;
  • FIG. 34 is a flow chart that illustrates a call flow based on different tempo and assertiveness settings;
  • FIG. 35 is a screen shot of the Phone Schedule screen;
  • FIG. 36 is a screen shot of the Virtual assistant Tab; and
  • FIG. 37 is a diagram of a choice prompt stream with corresponding active segments.
  • DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The subheadings used herein are meant only so as to aid the reader and are not meant to be limiting or controlling upon the invention. Generally, the contents of each subheading are readily utilized in the other subheadings.
  • Overview
  • Mobile professionals, such as physicians, attorneys, sales representatives and other highly mobile professionals often find it difficult to communicate with clients, customers, colleagues and assistants. These mobile professionals travel frequently and are not accessible via a desk telephone or traditional, wired computer network. They typically employ human assistants to relay important information, maintain their schedules and filter out all unnecessary interruptions. The virtual assistant of the present invention allows the mobile professional to access personal, company, and public information, including contacts, schedules, and databases from any interactive device, such as telephone.
  • The virtual assistant (“VA”) system of the present invention is comprised of two main components: (1) the VA Server, which is built on a Windows NT telephony server platform, and (2) the VA Studio, which allows skilled information technology professionals to develop VA applications that interface with electronic messaging systems, such as Microsoft Exchange and Lotus Notes. The VA Server is a component of the Service Deployment Environment (“SDE”), which is discussed in more detail below. The VA Studio is a component of the Service Creation Environment (“SCE”), which is also discussed in more detail below.
  • As shown in FIG. 1, the VA Server 10 is comprised of a human interface 12 and a network interface 14 for handling calls and providing automated access to information to corporate 28, private 30 and pubic 32 information repositories and sources. The human interface 12 is comprised of a graphical user interface 22, which may be a web browser, a subscriber (or user) voice user interface 24, generally accessed by a telephone, and a public voice user interface 26. The virtual assistant allows a user to use a voice interactive device, such as a telephone, either wired or wireless, to access and update such information. The VA Server also manages all incoming communications by sorting, prioritizing, and filtering such communications, while providing notice to the user of important messages and events.
  • VA Server
  • As seen in FIG. 2, a core component of the VA Server 40 is the voice-enabled Virtual Machine 42, which is also referred to as the VA Engine. The VA Engine receives spoken commands, interprets and executes them. The VA Engine supports a COM interface 44, which in turn enables VA applications to provide voice access to network applications.
  • The VA Engine also supports a telephony interface 46 to voice messaging 52 and private branch exchange systems 54, enabling third-party systems to be integrated with the VA Server.
  • The VA Server conforms to Windows NT telephony and speech interface specifications. The voice messaging interface 56 supports the VPIM (Voice Profile for Internet Mail) standard, and provides a gateway between proprietary voice messaging systems and VA Server.
  • The VA system management services provide operations, administration and maintenance capability (OA&M) 60. The OA&M applications also provide a Simple Network Management Protocol (“SNMP”) interface to third party management applications, such as HP Openview and CA Unicenter.
  • In the preferred embodiment, the VA Server is operable on Windows NT Server, release 4.0 or higher, in both single and multiprocessor configurations. Those skilled in the art, however, recognize that the VA Server can be ported to other computing platforms. Multiple systems may be clustered together to support higher system workloads and fail-safe operation.
  • VA Application
  • The VA Application, in the preferred embodiment, is compatible with a messaging server 62, such as Microsoft Exchange/Outlook. The VA's architecture, however, advantageously permits integration with other commercially available and customized messaging applications. The VA Application can be easily modified to satisfy specific requirements of a user. The basic functions of the VA Application include:
  • Messaging—voice-mail, e-mail, and faxes
  • Contact Management—scheduling, planning, group calendar, contact and referral organization
  • Call Control—remote users to perform conference calling and call management; notification and forwarding features allow remote users to be contacted immediately by phone/pager when they receive specific voice-mails, e-mails, faxes, or pages Internet Applications—users can access and internet via an internet server 64 and obtain public information such as weather, travel, financial, competitive data and news
  • Intranet Applications—users can remotely access information contained on a corporate network (inside the company firewall) using the VA, for example, customer data, shipping and inventory information, sales reports, and financial data, or any information on a database server 66, including SQL databases such as Oracle or Informix.
  • Customer Relationship Management applications—the VA Server integrates with commercially available customer relationship management (CRM) software applications 70, such as Siebel, Pivotal, Sales Logix and Onyx.
  • VA Studio
  • As seen in FIG. 3, the VA Studio 80 is comprised of a grammar generator 82 and a publishing toolkit 84. The VA Studio allows a user to create, modify and debug applications that run on the VA Server 40 without requiring the user to be skilled in the complexities of the underlying components of the VA Server, such as the speech recognition engine, text to speech engine, switch control and unified messaging.
  • VA Studio employs a graphical user interface (GUI) application that runs on a Windows NT workstation. It allows developers to create projects, each of which defines a VA application. VA Studio is a multiple document interface (MDI) application that follows the workspace-based model.
  • The VA Studio follows the Microsoft Component Object Model (COM). VA applications are developed using Active Scripting languages such as VBScript and JScript, thus enabling integration with a variety of third party components. The VA applications created with the VA studio will include voice query to SQL databases, message stores, business logic and mainframe applications.
  • VA applications are composed of discourses and resources. Discourses are the context of conversations between a user and the VA. Resources are items like voice prompts and dictionaries. A developer can utilize the VA Studio Wizard to generate a “skeleton” VA application template. Application templates consist of packages of predefined discourses and resources. Discourses are the context of conversations between a user and the VA. Resources are items like voice prompts and dictionaries. Once a VA application template is generated, the application is further customized using any supported Active Scripting languages.
  • After writing the VA application, it is then submitted to the build process. During the build process, VA Studio checks for dialog errors, builds a master intermediate grammar and builds a master lexicon. Once compiled and error-free the application is ready to be published.
  • When an application is published, it is transported from the VA Studio to the VA Server. The VA Server allows a scripted application to access services such as voice mail, databases, and telephony equipment.
  • A VA application is created, modified, debugged and tested using the VA Studio. The completed application is then automatically installed and configured to run on the VA Server, which enables the VA application to take incoming calls and provide access to both public and private information.
  • Platform Overview
  • An Introduction to Virtual Assistant Applications
  • A VA application allows a user to manage electronic communications and access his or her business's computer resources through a telephone. Using speech recognition and text-to-speech technology, the VA communicates with callers in spoken English. By calling into the VA on a standard telephone, a user can perform functions such as the following:
  • Sending and receiving voice mail messages
  • Checking, replying to, and forwarding email messages
  • Looking up phone numbers and addresses in an electronic address book
  • Accessing information in a company database
  • Accessing information on the World Wide Web
  • In addition, the VA can perform many of the functions of a personal secretary, such as the following:
  • Informing the user via pager when new voice and email messages arrive
  • Filtering incoming voice mail, email, and pages as instructed by the user
  • Automatically dialing phone numbers
  • In the preferred embodiment, the VA performs the above functions by interfacing with a company's Microsoft Exchange server. This application, in effect, allows users to use their desktop Outlook software over the telephone.
  • The VA software includes a development platform (the SCE) and run-time platform (the SDE), which can host a variety of different VA's. The SDE provides the core components necessary for the functionality of a VA: a telephony interface, speech recognition facilities, a text-to-speech engine, interfaces with databases and mail servers, and an administrative framework in which the assistant applications will run. The SCE also includes development tools that programmers can use to create custom VA applications.
  • VA Platform Components
  • As discussed above, the VA Platform consists of three main components:
  • The Service Deployment Environment (SDE)
  • Virtual Assistant Applications
  • The Service Creation Environment (SCE)
  • The function of each of these components can be understood using a World Wide Web analogy. The SDE functions like a web server, providing connections with the network and telephone system, controlling the execution of VA applications, and providing resources such as text-to-speech and voice recognition engines that will be accessed by the applications that run on it.
  • The VA applications are analogous to web pages, determining the content that will be presented and controlling the interactions with the user. A VA application uses scripting languages such as VBScript, JavaScript, and Perl, so that developers can add significant functionality to a VA, such as performing mathematical calculations, processing text, and calling ActiveX and COM objects.
  • Just as Microsoft Front Page and Netscape Composer are used to create web pages, the SCE is the development environment used to create the VA applications. The main component of the SCE is the VA Studio application, which is based on the Microsoft Visual Studio paradigm and provides a graphical environment with a variety of tools that can be used to create, debug, and publish applications that are run on the SDE. The SCE also includes a set of COM objects that can be used in applications to perform functions such as checking email, reading from a database, and manipulating sound files.
  • The SDE Service Processes
  • The Service Deployment Environment consists of eight processes that run simultaneously and perform the functions necessary to support a VA application. In the preferred embodiment, each of these SDE components runs as a Windows NT Service or background process.
  • Although they may all run on the same hardware platform, for large VA implementations the components can be distributed across several servers and communicate over the network. Such distribution can allow, for example, one server to be dedicated to performing voice recognition functions while another supports the VA Engine that actually runs the applications. When multiple VA components are distributed across multiple machines, these machines are collectively termed a VA server set.
  • The VA Engine
  • As illustrated in FIG. 4, the VA Engine 100 is the virtual machine on which a VA application 102 runs. Based on the application's instructions, the VA Engine uses its telephony interface 104 to communicate with the user 106 and its speech interface 110 to recognize speech into text and translate text into speech. The VA Engine connects to an Active Scripting Engine 112 to execute the scripts contained in the VA application, and it also communicates with administrative processes such as the VA Server 114 and VA Manager 116.
  • In the preferred embodiment, the user is electronically coupled to the virtual assistant application via a public switched telephone network. As can be appreciated by one skilled in the art, the communications network that electronically couples the user interface to the computer on which a virtual assistant application is running could be a packet switched telephone network. Also, the communications network could be a wireless communications network.
  • A VA Engine process can support user interaction over only one telephone line, but multiple VA Engines can be run simultaneously on a single platform. If the VA platform is connected to more than one telephone line, then a separate VA Engine will be running for each incoming line.
  • The Text-to-Speech (TTS) Server
  • The Text-to-Speech Server 120 receives text from other components, translates it into speech (that is, into a sound file), and returns it to the requesting component. This speech translation service is isolated in a separate component to improve performance and to allow for TTS vendor-independence. The preferred embodiment uses the AcuVoice TTS system, but the platform can be easily modified to support a TTS engine from a different vendor. Only the TTS Server component would have to be modified for such a customization, not the entire platform.
  • Multiple VA Engines can use the same TTS Server process, and more than one TTS Server can be running at the same site, allowing translation services to be distributed across multiple machines for load-balancing.
  • The Recognition Server
  • The Recognition Server 122 receives sound files from other components, attempts to recognize them as speech, and returns the recognized text. Like the TTS server, the Recognition Server is a component that isolates speech-recognition functions from the rest of the VA platform. The server provides an interface to a third-party voice recognition engine (in the preferred embodiment, Nuance) that can be changed to a different vendor's brand without requiring the entire VA platform to be modified.
  • Multiple VA Engines can use the same Recognition Server process, and more than one Recognition Server can be running simultaneously.
  • Recognition Server Sub-Processes
  • The Recognition Server process requires three additional processes to be running:
  • The Resource Manager: The Resource Manager is a management process that automatically load-balances requests when more than one instance of the Recognition Server is running. Rather than making recognition requests to a particular Recognition Server, the VA Engine makes the request to the Resource Manager, which forwards it to the first available Recognition Server.
  • The Compilation Server: The Compilation Server compiles dynamic grammars.
  • The License Manager: The License Manager server runs continually in the background and dispenses licenses to all requesting components. Only one license manager need run in a single server set, but no Recognition Server components can launch unless the license manager is already running.
  • In the preferred embodiment, all of the sub-processes of the Recognition Server are recommended only for Nuance brand Recognition Servers. If a user uses different speech recognition software, a different set of processes may be needed.
  • The VA Server
  • The VA Server 114 performs persistent VA functions that should occur even when no user is connected to a VA application. These functions include the following:
  • Monitoring external sources such as email boxes, databases, and web sites for events (e.g. a new mail message arrives or a database field is updated)
  • Applying rules and filters to external source events to determine whether the VA system should take any actions
  • Paging users when specified events occur
  • Only one VA Server can run on a system, but a single VA Server can provide persistent services to multiple VA Engines running both locally and on remote systems.
  • The VA Manager
  • As illustrated in FIG. 5, each system that is running one or more VA components should also be running the VA Manager application 116. This application creates and monitors all VA components that are active on the system, and it provides management interfaces that are used for the following purposes:
  • Configuration (both at start-up and during run-time)
  • Signaling of events such as errors and informational messages
  • Logging of events
  • Logging of each call received by the VA applications running on the system
  • Performance monitoring (through an interface to Window NT's Perfmon utility)
  • The VA Manager provides the interface through which the VA Server Manager 130 communicates with all systems in use at the site.
  • The VA Server Manager
  • The VA Server Manager 130 provides a single point of control for all of the processes and servers being used in a VA server set. It communicates with the VA Manager 116 running on each VA server in the set and, through this interface, allows an administrator to use a single system to manage the entire site.
  • There are two ways an administrator can connect with the VA Server Manager application:
  • Using the Microsoft Management Console (MMC): As illustrated in FIG. 6, the VA software includes an MMC snap-in component 140 that allows the VA Server Manager services (and, thereby, the entire VA site) to be managed from the Microsoft Management Console application.
  • Using an Administrative Web Page: The VA software also includes an administrative web page 142 that uses Active Server Pages to interface with the VA Server Manager service, allowing an administrator to manage the site through a standard web browser.
  • Returning to FIG. 5, the VA Server Manager 130 monitors all of the VA components (such as Recognition Servers 132, TTS Servers 134, and VA Engines 136) running on all the systems within the server set, and it can be configured to page the system administrator with an alert if components fail or other system-critical events occur.
  • Additional VA Platform Components
  • In addition to the service processes, the following components are used on the VA platform.
  • The VA Database
  • The VA Server Manager process uses a Microsoft MSDE database to store configuration parameters and platform logs. The MSDE database engine is installed automatically as part of the VA platform install, and the recommended tables and initial data are created during the installation routine.
  • The VA Server Manager uses a COM object called DBManager to communicate with the database. This object is created automatically at start-up by the VA Server Manager and provides a set of application programming interfaces (API's) that other VA components can use to retrieve configuration information and log data. In addition, the DBManager object automatically handles version checking, database restoration, and other database management functions.
  • The VA Web Server
  • In the preferred embodiment, as illustrated in FIG. 7, the VA platform uses a Microsoft IIS Web Server to support browser-based administrative utilities. These utilities include the following a VA Logging Tool, which is used by the administrator to view and manage system logs.
  • VA Shared Directories
  • The VA software uses a set of shared directories for storing files necessary for platform operations. In a multi-server implementation, these shares are stored on a central server (the same server that hosts the VA Server Manager process) and can be accessed by all the systems in the server set. The shared directories used by the VA platform are described in the table below.
  • TABLE 1-1
    VA Platform Shared Directories
    Directory Description
    % conitava %.backslash.VAApplications Used to store the source
    files for the applications
    that will run on the platform
    % conitava %.backslash.VALogs Used to store
    application logs
    % conitava %.backslash.VAUsers Used to store information
    about VA users
    % conitava %.backslash.VAUtterances Used to store temporary
    sound files containing
    the commands spoken
    by VA users
    % conitava % represents the base path under which the VA platform software was installed. By default, this path is c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • VA Platform Configurations
  • The service processes that make up the VA platform either can be run on a single server (a VA platform server) or can be distributed across multiple servers (a VA platform server set). A single-server implementation is adequate for small companies that need to support only a few incoming VA calls at a time. For larger companies, however, a server set implementation will be necessary for load balancing.
  • As illustrated in FIG. 8, when the VA platform is distributed across multiple servers, one node in the server set is designated the Server Set Controller Node 150. As the platform's primary server, the Server Set Controller Node will host the following components:
  • The VA Server Manager service 152
  • The VA DBManager service 154 and the VA database 156
  • The IIS web-server
  • Shared directories that will be used by all the servers in the server set to store logs, utterance files, application files, and user information
  • Each secondary node 160 in the set will host one or more instances of VA Engines 162, TTS Servers 164, and/or Recognition Servers 166. These processes will be monitored by a VA Manager process 170 on each server, which will in turn communicate with the VA Server Manager 172 on the Server Set Controller Node 150. In single-server implementations, the lone server is configured as the controller node, hosting the database, web-server, and VA Server Manager process along with all other VA services.
  • Scaling a VA Implementation
  • The way a business configures its VA platform will depend on the number of users who will be interacting with the VA application. As illustrated in FIG. 9, for smaller sites, all the VA components can be run on a single server 180. Such a site could support several incoming telephone lines 182, allowing up to multiple instances of the VA application to be running simultaneously.
  • For larger sites that need to support many simultaneous VA application sessions, the VA components can be distributed across multiple systems. As illustrated in FIG. 10, a medium-sized company may, for instance, use a six-server rack 184, with two of the servers running VA Engines 186 a, 186 b, two servers running Recognition Servers 190 a, 190 b, one running VA Servers 192, and one running TTS Servers 194.
  • A large organization may require even more scalability. As illustrated in FIG. 11, to support a public switch 196 with 32 incoming T1 lines 200, the site may use upwards of eight systems for VA Engines 202, sixteen for Recognition Servers 204 a, 204 b, four for VA Servers 206, and four for TTS Servers 206.
  • Duties of the VA Administrator
  • The duties of the VA Virtual Assistant platform administrator include the following tasks:
  • Preparing the server(s) for installation of the VA platform software
  • Installing the VA software on the systems
  • Ensuring that the application software can communicate with the telephone system and other hosts such as a Microsoft Exchange server
  • Configuring Microsoft Exchange to support VA users
  • Using the VA management interfaces to manage the systems in the server set, start and stop the VA services, and run VA applications
  • Monitoring the platform interfaces and error logs
  • Maintaining the VA database
  • Managing VA user accounts
  • In order to perform the above duties, a VA administrator needs to have experience with the following software packages:
  • Windows NT
  • Microsoft Exchange Server
  • Microsoft Internet Information Server (IIS)
  • Microsoft MSDE or SQL Server databases
  • Platform Server Prerequisites
  • In the preferred embodiment, a VA platform server system uses two (2) personal computers, each of meets the minimum hardware requirements listed in the table below:
  • Component Requirement
    Processor Pentium III central processing unit (CPU)
    Memory 128 MB
    Disk Space
    200 MB Minimum, 1 GB Recommended
    Network a PCI 10/100 local area network (LAN)
    adaptor
    Sound Card A Windows-compliant sound card
    Microphone A Windows-compliant external microphone
    Telephony Adapter Dialogic D/240PCI-T1 (PCI Bus)
    (Telephony Server Only)
    Conferencing Adapter One of the following:
    (Optional, Telephony Dialogic DCB/320 (ISA
    Bus) Server Only) Dialogic DCB/640 (ISA
    Bus) Dialogic DCB/960 (ISA Bus)
    recommended only for installations that
    support the call conferencing feature
    Voice Resource Board One of the following:
    (Optional, Telephony Dialogic D/320SC (ISA
    Bus) Server Only) Dialogic D/640SC (ISA
    Bus)
    RAID (Optional, Server A RAID solution is recommended for use on
    Set Controller Node the Server Set Controller in High-traffic
    only) environments
  • In the preferred embodiment, the following operating system and third-party software are be installed on a server in order to support the VA platform software.
  • Component Requirement
    Operating System Windows NT 4.0 with the following options
    and add-on software:
    Windows Messaging Option NT Service Pack
    5 Windows NT Option Pack 4.0 (Controller
    Node Only) Microsoft Management Console
    (MMC), Version 1.1 Microsoft Data Access
    Controls (MDAC) Version 2.1
    Web Server (Controller Microsoft Internet Information Server Version
    Node only)
    Web Browser Microsoft Internet Explorer Version 5.0
    Voice Recognition Nuance 6.2.1
    Software
    Text-To-Speech Software AcuVoice 3.02
    Exchange Client Microsoft Outlook 2000
    Should be installed with the Collaboration
    Data Objects (CDO) option
    Fax Services (optional) Facsys or Jfax Recommended only for systems
    that will support Fax services
  • Prerequisites for Other VA Systems
  • In the preferred embodiment, the prerequisites for installing the SCE on a workstation are listed in the table below:
  • Component Requirement
    Operating System Windows NT Workstation or Server 4.0 NT
    Service Pack
    5 or higher
    Web Browser Microsoft Internet Explorer Version 5.0
  • In the preferred embodiment, the prerequisites for installing the VA Management Console software on a remote workstation are listed in the table below:
  • Component Requirement
    Operating System Windows NT Workstation or Server 4.0 NT
    Service Pack
    5 or higher
    Web Browser Microsoft Internet Explorer Version 5.0
  • TABLE 2-2
    VA Administrative Station Requirements
    Concurrent Users Supported Processes Recommended
    23 23 VA Engines (391 MB memory)
    1 Recognition Server
    46 46 VA Engines (782 MB memory)
    1 Recognition Server
  • Smallest configuration supported:
  • 1 Controller Node (uniprocessor)—VA Engines & Telephony
  • 1 Rec Node (multiprocessor)
  • Pre-Requisite Installation Process
  • Although in general there is no one order required for installing the pre-requisite software packages for the VA platform, the following sequence is generally used when preparing a VA platform server:
  • Windows NT 4.0 operating system
  • NT Service Pack 5.0
  • Windows NT Option Pack 4.0 (Controller Node only)
  • Dialogic DNA 3.2 software (Telephony server nodes only)
  • Nuance Speech Recognition software
  • AcuVoice TTS software
  • Microsoft Management Console (MMC) Version 1.1
  • Microsoft Data Access Controls (MDAC) Version 2.1
  • Outlook 2000
  • Installing & Configuring Windows NT
  • Domain Considerations
  • In the preferred embodiment, all of the VA platform servers and the Microsoft Exchange Server are located in the same Windows NT domain. A server's domain should not be changed after the VA platform is installed. For this reason, when installing the VA software on a machine, it is recommended that the server already be properly configured on the domain in which it will be used.
  • Initial Configuration
  • When installing and configuring the Windows NT operating system on VA platform servers, the following steps should be performed:
  • When partitioning the hard drive(s), use NTFS on all disk volumes. If there are already have FAT volumes on the system, they can be updated to NTFS after Windows NT is installed
  • During the Select Components phase of the installation, select the Windows Messaging option. If the Windows Messaging option is not selected, or if a server on which Windows NT has already been installed is being prepared, the option can be added later.
  • Installing Windows NT Add-Ons
  • After the basic Windows NT operating system is installed on the server, the following set of add-on packages should be installed in the specified order:
  • NT Service Pack 5.0:
  • Windows NT Option Pack 4.0 (On the Server Set Controller Node only): The Option Pack is needed to install the proper version of the Microsoft Internet Information Service (IIS) on the node. Although IIS can be select as an option when installing Windows NT 4.0, the version included on the core media does not support Active Server Pages and therefore cannot be used.
  • When installing the Option Pack, Upgrade Only option should be used. Although IIS is recommended only on the Server Set Controller Node, this Option should be installed.
  • Pack on secondary servers in case Controller Node later needs to be moved to a different server.
  • Microsoft Management Console (MMC) Version 1.1: The Windows NT Option Pack installs an earlier (1.0) version of MMC, so the MMC Version 1.1 should be installed after installing the Option Pack software.
  • Microsoft Data Access Components 2.1
  • Internet Explorer Version 5.0: Although an earlier version of Internet Explorer is installed along with the Windows NT and the Option Pack software, Version 5.0 is used in the preferred embodiment on VA platform.
  • Configuring RAID
  • For the server that will act as the Server Set Controller Node, a RAID solution should be installed to provide large, reliable storage for VA logs and utterance files. If a RAID solution is used, it should be properly configured after installation of the operating system on the Controller Node.
  • Configuring the Telephony Hardware
  • Hardware Requirements
  • The VA platform requires up to three different types of telephony boards, depending upon the types of services that will be available. Telephony hardware is recommended only in the platform's telephony server(s). Small installations will likely have only a single machine performing telephony services, though larger configurations may require multiple systems.
  • Telephony Adapter Boards
  • VA platform installations should have an ISDN PRI connection to the local telephone network. The Dialogic D/240PCI-T1 Board is recommended to connect the platform to the telephone system. This board provides both the interface to the telephone network and the voice processing resources that are recommended for speech recognition. The D/3240PCI-T1 board supports 24 ports on a single ISDN PRI link, providing 23 active channels for voice connections (one channel is reserved for internal use). The D/240PCI-T1 board provides approximately half the total amount of voice resources recommended to support concurrent VA sessions on all of the board's channels. In order to support simultaneous sessions on all 23 available ports, a voice resource board (described below) is recommended:
  • Voice Resource Boards
  • A voice resource board provides the extra processing power recommended to support the full simultaneous use of all ISDN PRI channels on the telephony adapter board(s). Each D/240PCI-T1 adapter contains enough hardware resources to support 12 simultaneous VA sessions. Generally, an additional 22 voice resources are recommended to support VA sessions on all 23 channels. In the preferred embodiment, the Dialogic D/320SC voice resource board provides 32 voice resources, and the Dialogic D/640SC voice resource board provides 64 voice resources.
  • Based on the number of resources provided, one D/320SC board will provide full support for a single ISDN PRI link. A D/640SC board is recommended to fully support two PRI links.
  • Conferencing Adapters
  • A Dialogic audio conferencing adapter is recommended for all VA platforms that will support the VA application's call conferencing feature. Three different models of conferencing adapters can be used, depending upon the call traffic that needs to be supported:
  • Dialogic DCB/320: Supports up to 32 simultaneous conferees
  • Dialogic DCB/640: Supports up to 64 simultaneous conferees
  • Dialogic DCB/960: Supports up to 96 simultaneous conferees
  • If the telephony server is installed without a conferencing adapter, the VA platform software will still function, but the call conferencing feature will not be available.
  • Typical Configurations
  • As shown in FIG. 12, the following telephony hardware is recommended to support a single ISDN PRI link, which can handle 23 simultaneous calls:
  • 1 D/240PCI-T1 Adapter 210
  • 1 D/320SC Voice Resource Adapter 212
  • 1 DCB/320 Conferencing Adapter 214
  • 1 CTBUS to SCBus Connector 216
  • 2 SCBus ribbon cables 218
  • As shown in FIG. 13, to support two ISDN PRI links, which can support 46 simultaneous calls, the following telephony hardware is recommended:
  • 2 D/240PCI-T1 Adapters 220 a, 220 b
  • 1 D/640SC Voice Resource Adapter 222
  • 1 DCB/640 Conferencing Adapter 224
  • 1 CTBUS to SCBus Connector 226
  • 2 SCBus ribbon cables 228 a, 228 b
  • Installing the Telephony Hardware and Software
  • Before the VA platform is installed, the recommended telephony hardware and software should be first installed and configured.
  • Installing the Telephony Hardware
  • In the machine or machines that have been designated telephony servers for the VA platform, the recommended telephony cards should be installed according to the manufacturer's instructions. When installing the Dialogic D/240PCI-T1 card(s), be set the Bus ID rotary switch to the proper value. In systems with a single card, the card's rotary switch should be set to ‘1’. In multi-card systems, the rotary switch should be set to a different number for each card, starting with ‘1’ and progressing sequentially.
  • Installing the Dialogic DNA 3.2 Software
  • After installing the Dialogic hardware in the telephony server(s), it is recommended that version 3.2 of the Dialogic Native Architecture (DNA) software be installed. When installing DNA 3.2, options that should be selected to ensure proper support for the VA platform are as follows:
  • When starting the DNA 3.2 Install Shield, select the Complete Install option.
  • 1. As shown in FIG. 14, on the Custom Component Selection screen 230, the following components should be selected for installation:
  • Dialogic Core Drivers, Firmware, & Configuration Files 232
  • Springware Development Library 234
  • Springware TAPI Service Provider 236
  • Online Documentation 238
  • ISDN Package 240
  • GlobalCall API Package 242
  • 2. On the ISDN Protocol Selection Screen, select the ISDN Protocol(s) recommended by the local telephone service provider. (Consult the local provider for the specific protocols needed.)
  • 3. As shown in FIG. 15, on the GlobalCall Feature Selection screen, the GlobalCall ISDN option 246 should be selected.
  • Configuring the Dialogic Hardware
  • During the installation of the VA platform software, Dialogic-specific data files will be modified by the installation routine. For this reason, there is no need to configure the Dialogic boards before installing the VA platform. The Dialog configuration steps necessary after installing the VA platform are discussed.
  • Installing Nuance 6.2.1
  • In the preferred embodiment, Nuance 6.2.1 is installed on each machine that will be used in the VA platform server set. The Nuance 6.2.1 installation media contains five separate software packages, which should be installed on each system in the following order:
  • 1. Nuance 6.2.1 Core Software
  • 2. Dialog Optimizer Beta 1)
  • 3. Java Plug-In (Version 1.1.2)
  • 4. Nuance Grammar Builder (Beta 1)
  • 5. Foundation Speech Objects (Beta 1)
  • More detailed instructions on installing the Nuance packages can be found in the Nuance documentation that accompanies the installation media.
  • Installing AcuVoice TTS
  • In the preferred embodiment, Version 3.02 of the AcuVoice Speech Synthesis software should be installed on each system in the server set. Install the software according to the documentation included with the product.
  • Installing Microsoft Outlook 2000
  • In the preferred embodiment, all VA platform servers running a VA application should have Outlook 2000 installed on them. The Outlook software is used not by a regular user but by the platform itself to communicate with the Exchange server. As shown in FIG. 16, at the Feature Selection Pane 250, the Collaboration Data Objects option 252 should be selected. When installing Outlook 2000, perform the following steps to ensure selection of the proper version:
  • 1. Choose a Custom Install from the main selection menu
  • 2. On the Features screen, right-click the box next to each Node other than Microsoft Outlook for Windows. From the drop down menu, select Not Available.
  • 3. Ensure that the Microsoft Outlook for Windows node is marked as Run From My Computer.
  • 4. Expand the Microsoft Outlook Node, right-click the box next to Collaboration Data Objects 252, and choose Run From My Computer.
  • Creating the ConitaVA User Account
  • By default, all of the VA platform server processes run under the domain user account “ConitaVA.” Before configuring Microsoft Exchange or installing the VA platform, this account needs to be created on the domain in which the VA platform server(s) will be running. The account should be a member of the Administrators group. The ConitaVA user name is not hardwired into the VA platform software, so the administrator can, if desired, create a different account name under which the services will run. The Install Shield application for the platform software will use ConitaVA as a default, so the administrator should be sure to enter the proper user name if a different account is to be used.
  • Configuring the Microsoft Exchange Server
  • In the preferred embodiment, organizations installing the VA platform will already be using Microsoft Exchange for their regular email and communication services. In such environments, the existing Exchange server and its user accounts will likely continued to be used, with the VA services added on to them. In some situations, however, a new Microsoft Exchange platform may be installed along with the VA platform. If so, the Exchange server should be fully installed and configured according to Microsoft's documentation before installing the VA platform software.
  • The default VA application maintains only a small amount of information about each of its users, and the majority of user management functions are performed through the standard Microsoft Exchange interfaces. For this reason, it is recommended that Microsoft Exchange accounts be set up for each person who will also be using the VA application. New users can be added and old users can be removed after the VA platform is installed and in operation.
  • Creating ConitaVA as a Service Account Administrator
  • In the preferred embodiment, in order for the VA platform services to have access to the necessary Microsoft Exchange interfaces, the ConitaVA user account should be given permissions as an Exchange Service Account Administrator. This configuration is performed through the Microsoft Exchange Administrator application.
  • Preparing Fax Services
  • If the VA platform will support fax services, then the fax provider software should be prepared before installing the VA platform. In the preferred embodiment, the VA platform supports the following two separate fax services, Facsys and Jfax.
  • Installation Overview
  • When installing the software for a VA implementation, an administrator should perform three different types of installations:
  • VA Server Install, which installs the application components on a system that will be part of the VA server set.
  • VA Exchange Administrator Extension, which is installed on the Microsoft Exchange server. This package includes the add-in interface that will be used to manage VA users from within the Exchange Administrator framework.
  • VA Outlook Client, which installs the VA add-in for Microsoft Outlook. This allows VA users to configure their Virtual Assistants from within a standard Outlook interface. This installation should be performed on the desktop systems for each person who will have a VA account.
  • There are two additional types of installations that can be performed if needed within a particular environment:
  • VA Application Developer Workstation, which is used to install the VA Studio and other application development components on a programmer's workstation. This package is needed only if a developer will be writing custom VA applications at the site.
  • VA Administration Station, which is used to install the VA Management Console on an administrator's workstation. The VA Management Console will already be installed along with the VA platform software on the systems that make up the VA server set. The Administration Station install is useful, however, for an administrator who wishes to manage the server set from a remote system.
  • Installation Media
  • Three different pieces of media can be used for installing the VA platform software. These CDs/floppy disks and the types of installs for which they are used are listed in the table below:
  • CD-ROM Used Installation Type
    VA Platform CD VA Server
    VA Administration Station
    VA Application Developer
    VA Exchange CD VA Exchange Administrator Extension
    VA Outlook Client Floppy Disk VA Outlook Client
  • Installation Procedure
  • In the preferred embodiment, the general process for installing and configuring a full VA platform implementation is as follows:
  • 1. Prepare the site for installation.
  • 2. Install the VA platform software on the Server Set Controller Node
  • 3. Install the VA platform software on each secondary node, if using a multi-system implementation
  • 4. Install the VA Exchange Administrator Extension on the Microsoft Exchange Server
  • 5. (Optional) Install an Administration Station and/or VA Application Developer's platform
  • 6. (Optional) Install the VA Exchange Administrator Extension on a remote Exchange administration station
  • 7. Configure the platform to run one or more VA applications
  • 8. Create VA user accounts with through the Exchange Administrator interface
  • 9. Distribute and/or install the Outlook Client component on the workstations of all VA users
  • Installing in Stages
  • In many situations—particularly when installing a VA server set for the first time—it may be desirable to install the platform servers in stages. In such a procedure, a single node with all the VA software is installed, configured to run a single VA application, and tested to see whether the application functions correctly—first over the system speakers and then over a phone line. Then, additional servers can be added to the server set until the full installation is complete.
  • For an installation in stages, the following procedure is recommended:
  • 1. Install the Server Set Controller Node software package on a single server
  • 2. Install the VA Exchange Administrator package on the Microsoft Exchange Server
  • 3. Configure the single VA platform server to run a VA application using a sound card interface
  • 4. Create one or two VA user accounts for testing purposes
  • 5. Test the application to be sure it functions correctly
  • 6. Remove the Sound Card Engine and replace it with a Dialogic Telephony Engine
  • 7. Test the application to be sure it functions over the phone lines
  • 8. Once the first server is functioning properly, add in each additional node in succession
  • 9. Create VA user accounts
  • 10. Distribute and/or install the Outlook Client component on the workstations of all VA users
  • 11. Bring the full VA platform online for general use
  • Calculating Disk Space Requirements
  • The amount of free disk space recommended to install the VA platform components on a server depends on the type of installation chosen for the system. Approximate space requirements are listed in the table below:
  • Installation Type Approximate Space Recommended
    Server Set Controller Node plus 200 MB
    MSDE Database
    Server Set Controller Node without 100 MB
    MSDE Database
    Secondary Node 100 MB
    Microsoft Exchange Administrator  5 MB
    Extension
    Administration Station
     10 MB
    Application Developers Workstation  10 MB
  • The disk space requirements are for the VA platform software only. They do not include the amount needed for prerequisite packages such as Nuance and AcuVoice.
  • On the Server Set Controller Node, it is recommended that an additional 1 GB of free space be available for the storage of logs and temporary files during VA platform operation. An MSDE or SQL Server database is recommended by the VA platform to store configuration and log data. To be installed without the MSDE database, a Server Set Controller Node should already have either MSDE or SQL Server installed.
  • While only 100 MB is recommended for the initial installation of the VA platform software, in the preferred embodiment, because the VA platform software stores temporary speech and log files on the Server Set Controller Node during execution, the amount of disk space used can grow very quickly. It is recommended that there be one (1) GB of free disk space on the Server Set Controller Node in order to store a full set of speech and log data. For systems with smaller capacity, the amount of temporary data stored can be reduced, but such restrictions will limit the ability of an administrator to monitor the platform and track errors.
  • VA Platform Server Installation
  • When setting up a VA implementation, the first installation is the VA Server install. This installation should be performed first on the server that will be the Server Set Controller Node and then on each secondary server. Before beginning the VA platform installation, if a multi-node server set will be installed, identify which server will be the Server Set Controller Node
  • Installing the Server Set Controller Node
  • On the server that will be the controller node, perform the following steps to install the VA platform software:
  • 1. Insert the VA Platform CD in the CD-ROM Drive. The Install Shield application executes automatically.
  • 2. Read the introduction and license screens, clicking Next when finished. The Setup Type selection screen will appear.
  • 3. Select VA Server from the setup type list box and click Next. The Select Components screen will be displayed.
  • 4. Select the “Yes, this is the Serverset Controller” option and click Next.
  • The next screen will provide a prompt to select the directory into which the VA platform files will be installed. By default, this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • To keep the default destination directory, click Next.
  • To change this directory, click Browse and select a new destination, then click Next.
  • 5. The next screen will ask to install the MSDE database. Select either yes or no, based on the following criteria:
  • Select No only if the MSDE database software or Microsoft SQL Server is already installed on the server. Click Next to move to the user account screen.
  • Select Yes if neither MSDE or Microsoft SQL Server is installed.
  • 6. If Yes is selected to install MSDE, there will be a prompt for the directory in which the database should be installed. By default, this directory is c:.backslash.Program Files.backslash.Conita Virtual Assistant.backslash.MSSQL7.
  • To accept the default directory, click Next.
  • To change the directory, click Browse, select a new directory, and click Next.
  • 7. After the database information is selected, the Enter Account Information screen will be displayed.
  • 8. On the Account Information screen, the username and password for the NT account under which the VA software will run should be entered. By default, this account will be named ConitaVA and should have already been configured on the server and/or domain before the installation began. Click Next to continue.
  • 9. The next screen will provide a prompt for entry of the password for the Conita VA service account. Enter the proper password and click Next.
  • 10. The next screen will provide a prompt for the name of the Windows NT domain to which the service account belongs. Enter this domain name and click and click Next.
  • Note: All VA servers in a server set and the Microsoft Exchange server with which they will communicate should be located in the same domain.
  • 11. The final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next to begin the installation.
  • In most cases, no reboot is recommended after the VA Server installation. If, however, one or more system files were locked by other applications while the installation routine was running, a reboot of the system will be recommended to complete the VA installation, and a prompt will be provided to perform the reboot.
  • Installing Additional VA Server Nodes
  • The process for installing the VA software on secondary servers is very similar to that for Server Set Controller Nodes, but there will be no prompt to install the MSDE database because a database is recommended only on the controller node.
  • The full procedure for the VA Server install an a secondary node is as follows:
  • 1. Insert the VA Platform CD in the CD-ROM Drive. The Install Shield application should execute automatically.
  • 2. Read the introduction and license screens, clicking Next when finished. The Setup Type selection screen will appear.
  • 3. Select VA Server from the setup type list box and click Next. The Select Components screen will be displayed.
  • 4. Select the “No, this is not the Serverset Controller” option and click Next.
  • 5. The next screen will provide a prompt to select the directory into which the VA platform files will be installed. By default, this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • To keep the default destination directory, click Next.
  • To change this directory, click Browse and select a new destination, then click Next.
  • 6. On the Account Information screen, enter the username and password for the NT account under which the VA software will run. By default, this account will be named ConitaVA and should have already been configured on the server and/or domain before the installation began. Click Next to continue.
  • 7. The next screen will provide a prompt to enter the password for the Conita VA service account. Enter the proper password and click Next.
  • 8. The next screen will provide a prompt for the name of the Windows NT domain to which the service account belongs. Enter this domain name and click and click Next. Note: All VA servers in a server set and the Microsoft Exchange server with which they will communicate should be located in the same domain.
  • 9. The final interactive screen of the installation process will provide a prompt to select the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next to begin the installation.
  • In most cases, no reboot is recommended after the VA Server installation. If, however, one or more system files were locked by other applications while the installation routine was running, the system will have to be rebooted to complete the VA installation. In such a case, there will be a prompt to perform the reboot.
  • Troubleshooting a VA Server Installation
  • The VA platform Install Shield routine generates a log file that is useful for diagnosing a failed installation. The full path to this file is c:.backslash.Program Files.backslash.Conita Virtual Assistant.backslash.Log.backslash.ConitaVAInstallLog.txt. In case of warning or error messages during an install, the log file should be checked first to see whether it contains a more detailed message.
  • Configuring the Platform after an Installation
  • Configuring IIS on the Controller Node
  • During the installation of the VA platform software on the Server Set Controller Node, the Install Shield routine will create two new subdirectories under c:.backslash.inetpubt.backslash.wwwroot. These directories contain a web-based tool used for managing the VA platform logs. Although the Install Shield creates these directories, perform the following steps to configure the virtual directories and security permissions for the files.
  • 1. Create two virtual directories under the default web sites and point them to the actual directories created by the install.
  • 2. Give the two virtual directories read and script access.
  • 3. Make default.htm the default document for both directories.
  • 4. Remove anonymous access to the two virtual directories.
  • 5. Enable Windows NT Challenge/Response access to the virtual directories.
  • Set access permissions on the two actual directories to allow access only to the user account(s) who will be functioning as an administrator for the VA platform.
  • Installing the VA Exchange Administrator Extension
  • For all sites that will be running the default VA application, the administrator should install the VA Exchange Administrator Extension package on the Exchange server that will be used with the VA platform. This package inserts a custom add-in into the Microsoft Exchange Administrator application. The add-in is used to manage the Exchange accounts that can be accessed through the Virtual Assistant application. In most cases, the VA platform software will be installed in an environment that has an existing Microsoft Exchange server in use. In some circumstances, however, an administrator may be installing Exchange fresh along with the VA software. In such a case, the Exchange server should be fully installed and configured before attempting to install the VA extensions.
  • In the preferred embodiment, the Microsoft Exchange server software runs on a separate machine from the VA platform software. At smaller sites, it is possible for Exchange and the VA platform to occupy the same server.
  • Before Beginning
  • Before beginning the installation of the VA Exchange Server Extension package, the following tasks should have been completed:
  • The Microsoft Exchange server on which the VA extensions will be installed has been fully installed and configured.
  • An Exchange administrative user's account has been set up for the person who will act as the VA administrator.
  • Regular Exchange user accounts have been set up for each person who will be a Virtual Assistant user.
  • Before beginning the installation, the Exchange organization, site, and container to which the extensions will be added should be determined, as well as the name of the Add-In shared directory for the Exchange server.
  • Installing the VA Extensions on an Exchange Server
  • The process for installing the VA extension on a Microsoft Exchange server is as follows:
  • 1. Insert the VA Exchange Server Extension CD in the server's CD-ROM drive.
  • 2. Read the introduction and license screens, clicking Next when finished.
  • 3. On the Setup Type screen, choose Exchange Server and click Next.
  • 4. On the Exchange Server Name screen, enter the name of the server on which the extensions are being installed. Click Next.
  • 5. On the Exchange Organization screen, enter the name of the organization to which the VA extensions are being added. Click Next.
  • 6. On the Exchange Site screen, enter the name of the site to which the VA extensions are being added. Click Next.
  • 7. On the Exchange Add-ins Share screen, enter the name of the shared directory under which Microsoft Exchange add-Ins are stored. By default, this directory is named “Add-Ins.” Click Next.
  • 8. On the Exchange Container Screen, enter the name of the container in which the VA user accounts will be held. By default, this container is named “Recipients,” but it may have been changed If the Exchange server has been customized. Click Next.
  • 9. On the Exchange Extension Display Name screen, enter the name to be displayed for the VA Add-Ins node. (This node will appear under the Add-Ins folder in the Exchange Administrator GUI.) By default, the display name will be “Virtual Assistant User Administration.” Click Next.
  • 10. On the Virtual Assistant Administrator Alias screen, enter the Exchange alias for the VA administrator user. By default, this user name is “ConitaVA,” but a different account name for administrative user may have been chosen. Click Next.
  • 11. The final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA User Administrator software will be installed. Change the folder's name if desired, then click Next.
  • At this point, the automated portion of the install will begin. Once the Install Shield has finished copying the VA files to the system, there will be a prompt to click Finish to end the installation.
  • Installing the Exchange Extensions on an Administrative Station
  • In some environments, an administrator may have installed the Microsoft Exchange Administrator application on a system other than the Exchange server itself (that is, on a system used to administer Exchange remotely). The VA Exchange extensions can also be installed on this administrative station to allow for remote VA management. Note: Before the VA extensions can be installed on an administrative station, they should first be installed on the Exchange Server itself.
  • The process for installing the VA extensions on a remote administrative machine requires fewer user-input steps than the full Exchange Server install:
  • 1. Insert the VA Exchange Server Extension CD in the system's CD-ROM drive. The Install Shield application should execute automatically.
  • 2. Read the introduction and license screens, clicking Next when finished.
  • 3. On the Setup Type screen, choose Exchange Administrator Only and click Next.
  • 4. The next screen prompts for the directory in which the VA Extension files will be installed. Accept the default or select a new directory, then click Next.
  • 5. On the Virtual Assistant Administrator Alias screen, enter the Exchange alias for the VA administrator user. By default, this user name is “ConitaVA,” but a different account name for administrative user may have been chosen. Click Next.
  • 6. The final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA User Administrator software will be installed. Change the folder's name if desired, then click Next.
  • Uninstalling the VA Extensions
  • To remove the VA Extensions from the Exchange Server, use the Add/Remove Programs function under Windows NT's Control Panel. The uninstall routine will remove the Virtual Assistant tab from the Recipients Properties dialog.
  • Installing the VA Outlook Add-In
  • Before users can begin logging into their Virtual Assistants, the VA Outlook Add-In should be installed on their desktop workstations. This package adds a configuration interface to the users' Microsoft Outlook applications that will be used to personalize the settings for the Virtual Assistants.
  • The installation media makes the VA Outlook Add-In install program available in two forms:
  • A regular Install Shield.file. Stored on a floppy diskette, this Install Shield can be executed on an individual machine or used with automatic software distribution systems.
  • A self-extracting ZIP file. Small in size (820 KB), the self-extracting ZIP is designed to be transmitted over email systems. When executed, it unpacks the recommended installation files and runs the install, which requires no user input.
  • Installing an Administration Station
  • If desired, an administrator can install the VA Management Console on a machine separate from the VA platform software. Such an administrative station advantageously allows the VA platform to be managed remotely over the network. This installation installs only the basic components needed to run the MMC Snap-In console and to communicate with the VA Server Manager process on the Server Set Controller Node.
  • To install an administration station, perform the following steps:
  • 1. Insert the VA Platform CD in the CD-ROM Drive. The Install Shield application should execute automatically.
  • 2. Read the introduction and license screens, clicking Next when finished. The Setup Type selection screen will appear.
  • 3. Select VA Administration Station from the Setup Type list box and click Next.
  • 4. The next screen will prompt to select the directory into which the VA platform files will be installed. By default, this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • 5. The final interactive screen of the installation process will prompt to select the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next.
  • Installing a VA Application Development System
  • If programmers will be developing customized VA applications, then an application development system may need to be installed. This package installs the VA Studio and other development tools. Although the Application Development software can be run on the same server as the VA platform, in most cases, the development environment should be installed on a separate system and the custom applications “published” to the VA platform when they are completed.
  • To install a VA application development system, perform the following steps:
  • 1. Insert the VA Platform CD in the CD-ROM Drive. The Install Shield application should execute automatically.
  • 2. Read the introduction and license screens, clicking Next when finished. The Setup Type selection screen will appear.
  • 3. Select VA Application Development from the Setup Type list box and click Next.
  • 4. The next screen will prompt the selection of the directory into which the VA platform files will be installed. By default, this directory will be c:.backslash.Program Files.backslash.Conita Virtual Assistant.
  • To keep the default destination directory, click Next.
  • To change this directory, click Browse and select a new destination, then click Next.
  • 5. The final interactive screen of the installation process will prompt the selection of the Program Folder in which the icons for the VA platform software are to be installed. Change the folder's name if desired, then click Next.
  • Overview of the VA Management Console
  • As illustrated in FIG. 17, the VA Management Console 260 allows an administrator to view and manage all the VA components running in a server set. This interface is implemented as a snap-in for the Microsoft Management Console (MMC) framework, which provides a consistent interface for application administration. Based on the Microsoft Windows Explorer paradigm, the VA Management Console includes a tree view of system components on the left side of the screen 262 and an information panel on the right 264. Highlighting a component in the tree view will cause its configuration interface to appear in the right-hand pane. Right clicking on a component will open a pop-up menu listing additional functions such as viewing properties, adding new components, and deleting existing components. In a multi-node server set, the VA Management Console will be run only on the Server Set Controller Node.
  • Launching the VA Management Console
  • To launch the VA Management Console, select Start>Programs>Co-nita Virtual Assistant>Conita Management Console.
  • If the desktop icon is deleted, the VA Management Console can be launched by executing the MMC framework and loading the VA snap-in. To do so, use the following procedure:
  • 1. From the Start Menu, select Run.
  • 2. In the Run dialog, type “mmc” and click OK.
  • 3. From the MMC's Console menu, select Add/Remove Snap-In. The Add Snap-In dialog will open.
  • 4. Click the Add button. The Add Standalone Snap-In dialog will open.
  • 5. From the list of available snap-ins, choose the VA Serverset Manager and click OK. The Select Server dialog will be displayed.
  • 6. Click the Select button and choose the server on which the VAServerManager process is running (i.e. the Server Set Controller Node).
  • 7. Click Finish to close the Select Server Dialog and OK to close the Add/Remove Snap-In dialog.
  • The VA Management Console snap-in will now be displayed within the MMC. If the VA Serverset Manager snap in does not appear in the Add Standalone Snap-In dialog, it is likely that the VAServerManager service is not running. Start the VAServerManager service (through the Control Panel>Services interface) and try adding the snap-in console again.
  • Initial Configuration Tasks
  • When the VA platform is first installed, the administrator will need to perform the following tasks to configure the platform and launch the first application:
  • 1. Configure General Server Set Information
  • 2. Add the Server Set Controller Node to the list of managed servers
  • 3. (For multi-server platforms) Add secondary nodes to the list of managed servers
  • 4. Create an application instance for the Conita VA application
  • 5. Start the VA application services for the platform
  • 6. Test the application to ensure it is running correctly
  • 7. Configure alerts for the VA platform
  • 8. Set any TTS Dictionary entries that are known to be needed
  • Each of these tasks is discussed in detail below.
  • Configuring the General Server Set Information
  • The first configuration task to be performed within the VA Management Console is to set the general information for the server set. To do so, as shown in FIG. 18, expand the VA Manager 270 and Configuration 272 folders in the component tree, then click the General Information node 274. The general information form 276 will be displayed in the right-hand pane. In this form, enter the following information:
  • Exchange Server 280: The machine name of the Microsoft Exchange Server with which the VA applications will communicate.
  • Company Name 282: The name of the organization implementing the VA
  • Site Name 284: The name of the site at which the VA platform is located. (This field is used to distinguish platforms at organizations that may be running more than one set of VA servers.)
  • Conita License Number 286
  • Nuance License Number 288: This key, which is custom generated by Nuance for each organization, should be provided with the Nuance software.
  • Adding and Removing Servers
  • When the VA platform software is first installed, no servers will be configured. One of the first configuration tasks is adding one or more servers to the set. After the system is up and running, servers may need to be added or removed to expand the capacity of the server set or to replace a failing system.
  • After an installation, the Server Set Controller Node should be added to the list of managed servers. Then, if a multi-platform implementation is being used, add each of the secondary servers. Note: The process for adding a server is the same for the controller node and secondary nodes.
  • Adding a Server
  • Before a server can be added to the set controlled by the VA Management Console, it should have the VA platform software installed, and its VA Manager service should be started.
  • Note: The VA Manager process is registered as an auto-starting NT service by the install routine. If, however, the VA Manager service has been stopped on a system, it can be started using the Control Panel>Services interface. Unlike other VA processes such as VA Engines and Recognition Servers, the VA Manager service is started through the Windows NT Services interface, not through the VA Management console.
  • To add a server to the VA server set, use the following procedure:
  • 1. Expand the VA Manager node in the component tree (if unexpanded).
  • 2. Right-click the Server Set node. A pop-up menu will appear.
  • 3. From the pop-up menu, select New>Server. The Select Computer dialog will open.
  • 4. From the dialog's list, select the server to be added and click OK. A Logon dialog will open.
  • 5. Enter the Username and Password for the VA user for the server being added, and then click OK.
  • If an error message is received when attempting to add a new server to the server set, check the following:
  • The VA Manager service is running on the server to be added
  • The correct name and password for the VA user was entered
  • The ConitaVA user account has been properly created for either the domain as a whole or for the server being added
  • Removing a Server
  • To remove a server from the server set, right-click the server's node in the component tree and select Delete from the pop-up menu.
  • Configuring Applications
  • When the VA Platform is first installed, no applications are registered for execution. After adding all the servers to the server set, the next task is to create one or more applications. Periodically, additional applications may be needed to support new users.
  • The VA application, which is delivered on the platform installation media, is the application that will be used for most VA implementations. Some users, however, may elect to configure multiple instances of the VA application, or install other custom-written applications. The basic process for adding an application instance is the same, be it for the VA application or for a custom VA application.
  • Application Requirements
  • In order to be created and executed, each VA application requires a set of associated service processes and a publication file.
  • Associated Service Processes
  • Each application instances requires four different types of service processes to be running:
  • One or more VA Engines (on which the application will run). Each VA Engine will support a single active telephone call; a Virtual Assistant platform that supports multiple simultaneous callers will generally have one VA Engine per telephone channel.
  • One or more Text-to-Speech (TTS) servers for translating text into voice output
  • One or more Recognition Servers for translating voice input into text One VA Server process, which monitors users' mailboxes and notifies them when events occur, such as a message being received or a task being assigned. Note: A VA Server process is recommended only for applications that support event notification functionality. The default VA application uses a VA Server process, but a custom application may not require one.
  • Each of these recommended server processes could be created separately and then associated with the application instance. The VA Management Console, however, provides a mechanism for creating these processes in one batch while configuring the application.
  • The Publication File
  • A Virtual Assistant Publication (.vapub) file is an archive that holds the various source files that make up an application. These files include the following:
  • The application code executed by the VA Engine
  • A “grammar” containing the words and phrases recognized by the application
  • The recorded prompts and other sound files used by the application
  • A vapub file is generated by the VA application developer using the Service Creation Environment and then uploaded to the VA platform.
  • Part of the process of creating a new application instance is “publishing” its vapub file, meaning that its contents are unpacked and distributed to the appropriate directories on the VA platform servers. At publication time, the grammar is compiled into a format that can be understood by the Speech Recognition software and loaded in the recognition engines.
  • These publication functions are performed automatically by the Management Console software when an administrator creates a new application instance. In case of a failure during the publication process, any files created on the platform servers will be rolled back and removed.
  • Note: The source files for an application are published to every server in the server set, even if that server does not host any of the service components that will be associated with the application. This blanket-distribution allows a new process (such as an additional Recognition Server) to be associated with an existing application without having to republish the application files.
  • Creating an Application Instance
  • To create a new application instance (including the associated processes it will use), follow these steps:
  • 1. Expand the VA Management node in the component tree (if unexpanded).
  • 2. Right-click the VA Applications node. A pop-up menu will appear.
  • 3. From the pop-up menu, select New>Application Instance. The Add Application Instance dialog 290 will open, which is shown in FIG. 19.
  • 4. In the dialog, enter a name for the application instance. It is recommended that the application instance be given a descriptive name, such as Conita VA.sub.—1, that reflects which type of application it is.
  • 5. Ensure that all three checkboxes for creating server processes are checked.
  • 6. Click OK. The Select TTS Server dialog 292 will open, as shown in FIG. 20.
  • 7. Check the Create new TTS Server box.
  • 8. In the Process Name field, enter a name for the new TTS server process.
  • 9. From the TTS Server Type drop down box, select the type of TTS server to be created. In the preferred embodiment, the TTS server is AcuVoice, so this will be the only option available in the drop down box. If the system has been customized to support a different TTS server, additional choices may be available.
  • 10. Click OK. The Add Recognition Server dialog 294 will open as shown in FIG. 21.
  • 11. Complete the name, target host, and server-type fields, then click OK. The Add VA Engine dialog 296 will appear, as shown in FIG. 22.
  • 12. In the Add VA Engine dialog, enter a name for the new engine.
  • 13. From the Select Server drop down box, select the host on which the VA engine will run.
  • 14. In the Select Type drop down box, select the type of VA Engine process to be created. In most instances, the Telephony Engine will be selected as the VA Engine type. This engine type processes input and output from the telephone system via a telephony card. The other possible VA Engine type, Sound Card Engine, is used when the Virtual Assistant application will receive input from a microphone and output sound to a system's speakers. The Sound Card Engine can be used to test new applications before connecting them to the telephone system.
  • 15. Click OK. The Set Application File dialog 298 will appear, as shown in FIG. 23.
  • 16. In the Path to file field, enter the full path to the vapub file for the application, or, click the Browse button and find the file using the Open File dialog. In the preferred embodiment, the .vapub file for the Conita VA application is located in the following directory:
  • % conitava %.backslash.VApplications.backslash.VAOutlook.pub where % conitava % indicates the installation path for the platform software (by default, C:.backslash.Program Files.backslash.Conita Virtual Assistant). For a custom-written VA application, the vapub file will be located in the directory chosen by the developer when he or she published the application to the VA platform.
  • After clicking OK, the new application instance and its related server processes will be added to the component tree.
  • Creating an Application Instance without Associated Components
  • Although the various VA service components recommended for an application will probably create all at once, it is possible to create a VA application instance without associated services and add those components later. To do so, right-click the VA Applications node in the component tree and select New>Application Instance from the pop-up menu. On the initial screen of the Add Application Instance Dialog, make sure that all of the component boxes are unchecked. Although this procedure will create the application instance in the component tree, the application cannot be run until the recommended service processes have been created and associated with it. The steps for manually creating services and associating them with an application are discussed below.
  • Removing Application Instances
  • To remove an application from the Server Set, use the following procedure:
  • 1. In the component tree, right click the node for the application to be deleted. A pop-up menu will open.
  • 2. Select Delete from the pop-up menu.
  • 3. A dialog box will open, listing all server processes linked to that application and asking whether to delete those processes along with the application.
  • Select Yes to delete all server processes linked to the application.
  • Select No to retain the linked server processes. (These processes can be deleted manually later if necessary)
  • Select Cancel to abort the delete operation
  • Creating Processes Manually
  • Although an administrator most likely will use the Create Application feature mechanism to create VA Engine, TTS Server, and Recognition Server processes, a process can be created manually.
  • Manual creation can be used to associate additional processes with an existing application. An application that is running slowly, for example, may need to have a second Recognition Server associated with it to speed up the processing of recognition requests. By manually creating and associating the new process, the administrator avoids having to create the entire application from scratch.
  • To create a new process, perform the following steps:
  • 1. In the VA Management Console's component tree, right click the node for the server on which the process is to be created. A pop-up menu will open.
  • 2. Select New>Process from the menu. The Add Process Dialog 296 will open, as illustrated in FIG. 24.
  • 3. In the Name field, enter a name for the new process.
  • 4. From the Type combo box, select the type of process to be created. The default set of process types are listed in the table below:
  • Type Description
    Accuvoice TTS Server The service that performs Text-To-Speech
    translation
    Nuance RecServer The service that recognizes speech into text
    Nuance Resource The Resource Manager is created
    Manager automatically by the platform when a VA
    application instance is created.
    Nuance License Manager Recommended by the Nuance Manager
    RecServer, the License Manager process
    supplies a valid license to the recognition
    server process
    External App A custom-written VA application
    Telephony Server A COM object server that provides an interface
    between the VA platform and the telephony
    hardware APIs
  • 5. From the Associate with application instance combo box, select the name of the application with which the process is to be associated. To create a global process, select “No Application.”
  • 6. Click OK. The new process will be added to the component tree
  • Starting VA Application Services
  • For a VA application to be able to handle incoming calls, all of its related services should be running. An administrator has the option to configure each service as “auto-start,” which indicates that when a system is rebooted the VA Server Manager will automatically attempt to start all of its registered services.
  • There are times, however, when a VA administrator will need to start or stop services manually. These situations include the following:
  • When a new application has been added to the system and needs to be started for the first time
  • When the platform needs to be brought down for maintenance
  • When a process has been terminated due to an error and could not be automatically restarted by the VA Server Manager
  • An administrator can choose to start or stop all of services running on a platform, all of an individual application's services, or each service individually.
  • Configuring Auto-Start Services
  • When a VA service process is created (either manually or through the creation of a new application instance), its auto-start property is by default set to False, indicating that the service will not automatically be started by the VA Server Manager at system start-up. If desired, an administrator can change the auto-start property for a service by clicking on the service's node in the component tree and, in the properties page that appears in the right-hand window, checking or unchecking the Auto-Start check box.
  • In most instances it will be desirable for all platform processes to be set to auto-start, which will save administrators from having to manually start the services when a server is rebooted. For this reason, it is recommended the Auto-Start option be selected for each associated service after an application is created.
  • Starting All Services (Global)
  • The global function will attempt to start all of the services currently being used in the server set, including TTS Servers, Recognition Servers, VA Engines, License Managers, and Resource Managers. This function, in effect, starts all the registered applications on the platform and prepares them to receive incoming calls.
  • The procedure for starting all services is as follows:
  • 1. Right-click the VA Manager node in the component tree. A pop-up menu will open.
  • 2. From the menu, select Start All Processes
  • Service Process Start Orders
  • When a global start-up is performed, all global service processes (such as the Nuance License manager) are started first, and then all per-VA Application processes (such as TTS Server and Recognition Servers) are started. Within these two categories (global and per-application), the order in which services are started is determined by Startup Groups. Based on its dependencies, each process type is assigned to a group, and each group is assigned a number indicating in which order it should be started (from lowest to highest). Each process in a group is started at roughly the same time. The default Startup Order Groups are listed in the table below:
  • Type Startup Order Group
    Telephony Server
    1
    External App 1
    Nuance Resource Manager 2
    Nuance License Manager 2
    Accuvoice TTS Server 2
    Nuance RecServer 3
    Sound Card Engine 4
    Telephony Engine 4
  • As the table indicates, the telephony servers and external application services will be started first, and the two types of VA Engines (sound card and telephony) will be started last. Because a Telephony Engine cannot be started unless its associated TTS Server is already running, the engine is assigned to higher-numbered group than the TTS Server, guaranteeing they will be started in the proper order.
  • Starting All Services for an Application
  • An administrator can also start services at an application level. This function will attempt to start all the processes associated with a particular application. These processes usually include VA Engines, TTS Servers, and Recognition Servers.
  • To start all the services for an individual application, perform the following steps:
  • 1. Expand the VA Applications node in the component tree.
  • 2. Right-click on the node for the application for which all services are to be started.
  • 3. Select Start from the pop-up menu.
  • Once an application is started, it will be ready to receive incoming calls.
  • When an application is started, the VA Server Manager will first verify that any global services (such as the Nuance License Manager) needed for the application are already running. If a global dependency is not running, none of the application's services will be started and an error message will be displayed.
  • Starting Individual Services
  • Although in most instances either the global or application start-up functions will be used, at times only a single service may need to be started. To do so, right-click the component to start and select Start from the pop-up menu. As with starting an application, any global processes recommended by the individual service should already be running. Otherwise, the service will fail to start. Note: Alternatively, a service can be started manually by highlighting its name in the component node and clicking the Start (arrow) button on the MMC Snap-In's toolbar.
  • Troubleshooting Services that Fail to Start
  • To check on the status of a particular service, view its properties display panel. This panel appears in the right-hand window of the VA Management Console GUI when the service's name is clicked on in the component tree. As illustrated in FIG. 25, the user has highlighted the TestApplicationResourceMgr node, which is the Nuance Resource Manager for the TestApplication application. The properties for the service appear in the right-hand part of the screen.
  • On this properties panel, the Process Status field indicates the status of the process. It can have one of the following values:
  • Running: The process is running properly
  • Stopped: The process has been stopped by an administrator
  • Error: The process has failed to start because of an error
  • If the process has an Error status, then the code for the error will be displayed in the Error Code field. This error code—a hexadecimal number—indicates the reason for the process's failure. A complete listing of the possible error codes and their meanings is set forth below. If one or more of the processes for an application fail to start, the displayed error code can be looked up to determine the reason for the failure.
  • In addition to displaying an error code, a failed process may also list troubleshooting information in the large Process Events text box on its properties panel. One of the most common causes for a component's failure to start is that one of its prerequisite services is not running. A VA Engine, for example, will not start if its TTS Server is not running. A Recognition Server will not start if its License Manager service is not already running. If a particular component has failed to start, make sure that all its associated services are running correctly and, if they are not, attempt to start them.
  • Stopping VA Services
  • As with starting VA services, the administrator has several options to choose from when shutting down services on the VA platform. When VA services are stopped, the applications will cease execution and no incoming calls can be received.
  • Shutting Down Gracefully
  • In the preferred embodiment, the method for shutting down a VA platform is to use the Stop All (Graceful) function. This function immediately sets the platform so that it will not receive any new incoming calls, but it does not disconnect any current VA sessions. Once all active sessions are complete, the platform will be shut down.
  • To perform a graceful shutdown, do the following:
  • 1. Right-click the VA Manager node in the component tree. A pop-up menu will open.
  • 2. From the menu, select Stop All (Graceful).
  • 3. Provide a prompt to confirm the shutdown command. Select Yes to proceed.
  • Shutting Down Immediately
  • In some cases, an administrator may need to stop all services on the platform immediately. Doing so will disconnect all current VA sessions and close all the platform's applications. To perform an immediate shutdown,
  • 1. Right-click the VA Manager node in the component tree. A pop-up menu will open.
  • 2. From the menu, select Stop All (Immediate).
  • 3. A prompt will be provided to confirm the immediate shutdown command. Select Yes to proceed.
  • Stopping Individual Applications and Services
  • The VA Management Console includes functions that allow a particular application or an individual service to be stopped. To do so, perform the following steps:
  • 1. Expand the component tree until the node for the application or service to stop is complete
  • 2. Right-click the node for the application or service and select Stop from the pop-up menu.
  • Configuring Alerts
  • The VA platform includes an alert feature that allows the administrator to be paged when selected system errors occur. Such alerts are sent via email pager, and the administrator can configure the type of errors to be monitored and how frequently he or she should be paged. To configure the alerts, double click on the Alerting Setup node under the component tree's Configuration folder. As shown in FIG. 26, the alert configuration interface 300 will appear in the right-hand frame. In this interface, enter the administrator's pager email address in the Pager Email field 302 and click the Set button, then select the minimum amount of time between pages. It is recommend that an interval is selected (such as 10 minutes) that is long enough to prevent the administrator from being inundated with repeated messages for the same recurring error, but is short enough that the administrator will be informed in case a different error occurs. In the checkbox frame, select the subsystems to be monitored for errors. The Select All and Clear All buttons can be used to select or clear all of the checkboxes at once. If Logon errors is selected, the number of failed logon attempts that should occur before the administrator is notified should be specified. After selecting paging options, click the Test button to have a test message sent to the email pager.
  • Using the TTS Dictionary
  • By default, the TTS server is configured with pronunciation strings for most common English words. For other words—such as technical terms and proper names—the server uses an algorithm to determine the most likely pronunciation. In many cases, this algorithm may lead to a word's being pronounced incorrectly. For example, the TTS system may pronounce the name Conita as “Co-knit-ah” rather than the correct “Co-night-ah.” The TTS Dictionary feature allows the correction of the TTS's pronunciation of words and phrases. The mechanism works by simple string substitution, that is, whenever the TTS engine encounters a specified string, it will replace it with a more phonetically accurate version before processing the text. An ad ininistrator could, for example, specify that the TTS engine replace all occurrences of the string “Conita” with “Conighta” before translating it to speech. Such a substitution would result in the correct pronunciation of the word.
  • Setting TTS Dictionary Entries
  • As shown in FIG. 27 to view the current TTS Dictionary entries on the system, click the TTS Dictionary node 304 under the component tree's Configuration folder 306. The TTS Dictionary display 308 will appear in the right-hand pane. The dictionary should be configured separately for each TTS server. To display the entries for a particular server, click the Select Server button 310 and select the name of the desired TTS server. As illustrated in FIG. 28, to add a new entry to that server's dictionary, click the Add button. The Dictionary Entry dialog 312 will be displayed. In this dialog, enter the actual spelling of the word or phrase and the replacement string that should be used for a correct pronunciation. By default, all string replacements are not case sensitive. Selecting the Match Case checkbox 314 will make the matching case sensitive. It may take some experimenting to find a replacement string that will result in the proper pronunciation for a word. Use the Play button on the TTS Dictionary display screen to test a particular entry. When this button is clicked, the highlighted en try will be sent to the TTS Server and the resulting speech output played over the server's speakers.
  • Managing the VA Database and Call Logs
  • The VA Database, which is hosted by the Server Set Controller Node, is used by the VA Server Manager to store call log and platform configuration data. This database is implemented with the Microsoft Data Engine (MSDE). MSDE, which was released with the Microsoft Office 2000 suite, provides access to databases that are compatible with SQL Server 7.0, though with a smaller set of features. The engine does not include an interface such as the SQL Server Enterprise Manager, and it supports a maximum database size of 2 GB (compared to SQL Server's 32 TB). MSDE databases, however, can be read by the SQL Server interfaces, and they can be upgraded to SQL Server databases if increased size is needed.
  • Using the VA Management Console to Manage the Database
  • Because MSDE does not include its own user interface, most management tasks for the VA Database will be performed through the VA Management Console application. As Included in the console's component tree is a node called Database Manager which, when highlighted, will cause the database management panel 316 to be displayed in the right side of the console window, as shown in FIG. 29.
  • Backing up the Database
  • The configuration parameters and user information stored in the database are essential to the operation of the VA platform. For this reason, the database should be regularly backed up. In the Backup frame on the Database Manager panel, the Last Database Backup field indicates when the last backup of the current VA database occurred. It is recommended that the VA database be backed up regularly. The directory in which the database will, be backed up is indicated in the Backup Directory field. To change this, edit the field's value directly or click the browse button and select the new directory from a Browse for Folder dialog. To back-up the VA database, click the Backup button.
  • Restoring the Database
  • In case of a VA database failure, the database can be restored from a back-up. To do so, in the Restore File field enter the name of the back-up file from which to restore the database (or, click the browse button and choose the filename from an Open File dialog). Then, click the Restore button to begin the restoration.
  • Purging Call Logs and Transcriptions
  • The VA Server Manager maintains logs and transcriptions for all of the calls processed by the VA platforms. These logs are vital not only for diagnosing problems with the systems but also for performing accounting tasks such as billing departments for VA usage. These stored files, however, can grow quite large, particularly on platforms with many users; the logs and transcriptions should be purged periodically to free up disk space. The frequency with which these purges will need to be performed will depend upon the record-keeping needs of the organization and the amount of disk space available on the VA platform.
  • To purge call transcriptions and/or logs, perform the following steps:
  • 1. Select either the Purge Transcriptions older than or Purge Logs and Transcriptions older than option button.
  • 2. In the Days combo box, indicate how many days to retain transcriptions and/or logs.
  • 3. Click the Purge button to purge all outdated transcriptions and/or logs.
  • Establishing Maintenance Plans
  • 1. Although the database can be backed up and transcriptions and logs can be purged manually, it is usually much more convenient for an administrator to establish a Maintenance Plan, which allows scheduling of regular backup and purge operations. A new Maintenance Plan is added by clicking the Add button inside the Maintenance Plans frame.
  • Removing Maintenance Plans
  • To remove an unneeded maintenance plan, highlight the plan in the list box and click the Remove button.
  • User Administration Concepts
  • With the default VA application, all user account management functions are performed through the Microsoft Exchange Administrator interface. The majority of these functions are regular Exchange tasks (such as mailbox maintenance) that are unrelated to the Virtual Assistant application. For the few VA-specific administration tasks that are recommended, the VA Exchange Server Extension installation inserts a custom Add-In to the Microsoft Exchange Administrator application. As illustrated in FIG. 30, this installation adds a new tab called Virtual Assistant 318 to the Mailbox Properties Dialog 320 for each user. This tab is used to edit the user's VA properties.
  • VA User Administration Tasks
  • An administrator uses the VA Exchange Add-In to enable and disable VA users, and to assign IDs and PIN's for VA users.
  • VA User Account Information
  • The Conita VA application requires the following information for each user account:
  • User ID, which corresponds to the DNIS number that callers will dial to access a particular user's VA. For example, if John Smith dials 555-1213 to access his Virtual Assistant, then his User ID will be 5551213. In any environment with multiple users, the User ID/DNIS number is essential for identifying which user's Virtual Assistant is being called. When an incoming call is received, the VA application automatically detects the DNIS number and uses it to identify the VA user for which the call is intended. The User ID should be exactly seven digits.
  • PIN—In addition to a User ID, each user account requires a Personal Identification Number, which will be entered by the user when he or she dials into the Virtual Assistant. The PIN can be any 4-digit number. The initial PIN for each user is assigned by the VA administrator when he or she sets up the user's account. Users can change their PIN numbers as desired through the Virtual Assistant preferences tab in their Microsoft Outlook application.
  • Enabling and Disabling VA Users
  • When the VA Exchange Extension package is first installed, the Virtual Assistant tab will be added to each user's mailbox properties dialog, but the user will not be registered with the VA system. Before these users can begin interacting with their Virtual Assistants, the administrator should enable each of them as a VA user. To enable a VA user, perform the following steps:
  • 1. In the Microsoft Exchange Administrator application, expand the site and container nodes under which the VA user accounts are located.
  • 2. Double click the node for the user that to be enabled as a VA user. Returning to FIG. 31, the Mailbox Properties Dialog 320 for that user will open.
  • 3. Click the Virtual Assistant tab 318.
  • 4. Check the box 322 next to Enable Virtual Assistant (see figure below), then click Apply. The ID and PIN text boxes will become enabled.
  • 5. In the ID field 324, enter the User ID/DNIS number that will be used to access this user's Virtual Assistant account.
  • 6. In the PIN field 326, enter the initial Personal Identification Number that the user will have to enter to access his or her account.
  • Note: When setting up user accounts for the first time, all users can be assigned the same PIN (e.g. ‘1111’) and requested that they change it to a new value when they first log in. Users can change their PIN's through the Virtual Assistant properties tab within their Microsoft Outlook applications.
  • 7. Click OK to accept the new VA settings for the user.
  • Disabling a VA User Account
  • To disable a VA user's account, the following steps should be performed:
  • 1. In the Microsoft Exchange Administrator application, expand the site and container nodes under which the VA user accounts are located.
  • 2. Double click the node for the user to be disabled. The Recipients Properties Dialog for that user will open.
  • 3. Click the Virtual Assistant tab.
  • 4. Uncheck the box next to Enable Virtual Assistant, then click Apply.
  • The ID and PIN text boxes will be greyed out.
  • 5. Click OK to accept the changes.
  • When a user account is disabled, that user can no longer dial into his or her Virtual Assistant. When a VA user account is disabled, the User ID and PIN are not retained. These properties should be entered again by the administrator if the account is re-enabled.
  • Batch Account Enabling and Disabling
  • Included with the VA Exchange Extensions is a utility that can be used to enable or disable all of the VA user accounts in a single batch. This utility is most useful for quickly disabling all VA accounts before removing the VA Exchange Extensions from the Exchange Server. Note: When a VA user account is disabled, the User ID and PIN are not retained. These properties should be entered again by the administrator if the account is re-enabled.
  • To launch the Enable/Disable utility, select Start>Programs>Conita Virtual Assistant User Administration>Enable/Disable Virtual Assistant. The utility presents two choices, enable or disable:
  • If disable is selected, then all users will have their VA accounts disabled
  • If enable is selected, then all user accounts will be enabled.
  • For these newly enabled accounts, the User ID and PIN numbers will remain undefined and should be set for each user by the administrator.
  • An additional task that this utility will perform is repair. If the VA Exchange administrative user is deleted or that user's Contacts folder is corrupted, then users cannot use their VA. However, all the VA information for the VA users is still valid. Creating a new VA Exchange administrative user and selecting the repair in the utility will repair the VA Exchange administrative user's knowledge of VA users, and allow users to access their VA again.
  • Setting DCOM Permissions
  • At install time, the Virtual Assistant platform software registers the following DCOM objects:
  • VADBManager
  • VAEngine
  • VAExternalApp
  • VAManager
  • VAServer
  • VAServerManager
  • VATelephony
  • VATextToSpeechAcuVoice
  • VATextToSpeechBT
  • The security parameters for these DCOM objects are set automatically by the Install Shield. The default values for each of the objects is as follows:
  • Access Permissions: Allow access to the ConitaVA user account
  • Launch Permissions: Allow launch to the ConitaVA user account
  • If necessary for a particular site's security arrangements, a VA administrator can modify the DCOM configuration. However, because setting improper parameters can prevent the VA services from running, such modifications should be made only by an administrator with advanced DCOM experience.
  • Because the VA Manager processes should be able to access and launch other VA DCOM objects, the ConitaVA user account (or which ever user account under which the VA processes are running) should have access and launch permissions for all VA objects.
  • Resetting DCOM Permissions
  • In case the DCOM settings for the VA platform objects are modified, a utility called vladcom is available to reset the objects to their original configuration. This utility is copied to the VA bin directory at install time. To use vladcom to reset the DCOM permissions of VA objects, perform the following steps:
  • 1. Open a DOS command line window.
  • 2. Change to the c:.backslash.Program Files.backslash.Conita Virtual Assistant.backslash.bin directory.
  • 3. Execute the following command:
  • vladcom-cf dcomcfg.txt-pf DCOM_progid.txt-id<domain>.backslash.<user>
  • Where <domain> is the server's NT domain and <user> is the NT username under which the VA services are running (e.g. “ConitaVA”).
  • Securing File System Data
  • The VA platform installation routine automatically sets the access permissions for each directory that it creates. The following user accounts are granted Full Control of all the directories under the root install path (by default, c:.backslash.Program Files.backslash.Conita Virtual Assistant):
  • Domain Administrator
  • Local System Administrator
  • System
  • ConitaVA
  • All other user accounts are granted permission to these directories.
  • If a system's security arrangements require it, these permissions can be modified to grant or deny access for other accounts. However, because the ConitaVA account should have access to the VA directories, it should always grant be granted Full Control.
  • VA Database Security
  • When the VA platform software is installed on the Server Set Controller Node, the installation routine automatically sets the MSDE database (and/or SQL Server, if it is being used instead) to NT Authentication only. The ConitaVA NT account will then be used by the platform software to access the VA database. This setting of authentication is effective at the server-level, not the database level. If other MSDE and/or SQL Server databases are supported on the Controller Node, however, the SQL Server authentication methods may be set for these databases. The VA-established authentication can be modified by performing the following steps:
  • 1. In the SQL Server Enterprise Manager, change the authentication method for the entire server to SQL Server authentication
  • 2. Change the authentication method for the VA Database to NT Authentication. No matter which method is used for the server-wide authentication, the database-specific method for the VA Database should be NT Authentication.
  • Error & Message Codes
  • The first three digits of the code indicate which type of message the code represents. These digits can have one of three values, as indicated below:
  • 0.times.0 Success Message
  • 0.times.4 Informational Mess age
  • 0.times.8 Warning Message
  • 0.times.C Error Message
  • The complete set of possible error codes and their descriptions are listed in the table below.
  • Notes:
  • The entries in the table are ordered numerically by the code, but the first three digits are ignored. 0x40000034, for example, appears immediately after 0xC00000033.
  • This table lists only those errors and messages generated by the VA platform software. The VA Management Console interface, however, will also report messages generated by Windows NT. If an error displayed in the Management Console does not appear in this list, it is likely an NT error.
  • Windows NT error codes can be translated using the Error Lookup feature of Microsoft Developer Studio.
  • Message Code Description
    0xC0000001 VAVM ALREADY STARTED
    0xC0000002 VAVM ERROR PARSING VADL STRING
    0xC0000003 VAVM ERROR PARSING VADL FILE
    0xC0000004 VAVM EXTERNAL MODULE NOT FOUND
    0xC0000005 VAVM MODULE NAME ALREADY EXPORTED
    0xC0000006 VAVM START DISCOURSE NOT SPECIFIED
    0xC0000007 VAVM DISCOURSE NOT DEFINED
    0xC0000008 TTS NOT INITIALIZED
    0xC0000009 TTS NULL STRING
    0xC000000A TTS UNKNOWN TYPE
    0xC000000B AUDIO STREAM NOT DEFINED
    0xC000000C AUDIO STREAM FORMAT NOT SUPPORTED
    0xC000000D AUDIO STREAM OVERFLOW
    0xC000000E TTS RENDER STRING ERROR
    0xC000000F TTS SYNTHESIS FAILED
    0xC0000010 WRITE OPERATION FAILED
    0xC0000011 VAVM INTERNAL ERROR
    0xC0000012 VAVM GETSCRIPTINGHOST FAILED
    0xC0000013 VAVM INVALID DISPID FOR NAMESPACE
    0xC0000014 VAVM NAMESPACE MEMBER NOT DEFINED
    0xC0000015 VAVM INVALID DISPID FOR RECRESULT
    0xC0000016 VAVM INVALID TYPE FOR RECRESULT
    0xC0000017 VAVM SCRIPT ITEM NAME ALREADY DEFINED
    0x40000018 VAVM SHUTDOWN
    0x40000019 VAVM REMOTE HANGUP
    0xC000001A VAVM BARGE IN
    0xC000001B VAVM NO ACTIVE CALL
    0xC000001C VAVM RECOGNITION ERROR
    0x4000001D VAVM RECOGNITION UNRECOGNIZED
    0xC000001E SPEECH INITIALIZE ERROR
    0xC000001F SPEECH UNINITIALIZE ERROR
    0xC0000020 SPEECH GRAMMAR ERROR
    0xC0000021 SPEECH ABORT ERROR
    0xC0000022 SPEECH RECOGNITION ERROR
    0xC0000023 SPEECH SETPARAMETER ERROR
    0xC0000024 TELEPHONY INITIALIZE ERROR
    0xC0000025 TELEPHONY NOT INITIALIZED
    0xC0000026 TELEPHONY UNINITIALIZE ERROR
    0xC0000027 TELEPHONY ANSWER CALL ERROR
    0xC0000028 TELEPHONY TERMINATE CALL ERROR
    0xC0000029 TELEPHONY PLACE CALL ERROR
    0xC000002A TELEPHONY TRANSFER CALL ERROR
    0xC000002B TELEPHONY INVALID CALLID
    0xC000002C TELEPHONY RECORD ERROR
    0xC000002D TELEPHONY STOP RECORD ERROR
    0xC000002E TELEPHONY PLAY ERROR
    0xC000002F TELEPHONY SETPARAMETER ERROR
    0xC0000030 TELEPHONY GETPARAMETER ERROR
    0xC0000031 TELEPHONY CHANNEL CLOSED
    0xC0000032 PROCESSID OUT OF RANGE
    0xC0000033 DELETED PROCESS
    0x40000034 VAMANAGER PARAMETER CHANGE
    0xC0000035 VAMANAGER PERFMON FAILED
    0xC0000036 INSUFFICIENT MEMORY RESOURCES
    0xC0000037 COUNTER ARRAY TOO SMALL
    0x40000038 INACTIVITY TIMEOUT
    0xC0000039 VAVM INITIALIZATION ERROR
    0xC000003A VAVM TOPIC NOT FOUND
    0xC000003B VAVM STARTUP ERROR
    0x0000003C VAVM STARTUP COMPLETE
    0xC000003D VAVM NOT IMPLEMENTED
    0xC000003E VAVM GRAMMAR NOT DEFINED FOR
    DISCOURSE
    0xC000003F VAVM SCRIPTING ERROR
    0xC0000040 TTS INITIALIZE ERROR
    0x40000041 BEGIN CALL
    0x40000042 USER LOGIN
    0x40000043 END CALL
    0x40000044 BEGIN SESSION
    0x40000045 END SESSION
    0x80000046 TTS TOO MANY CHANNELS
    0x80000047 TTS SEND FAILED
    0xC0000048 SYSTEM ERROR
    0xC0000049 DCOM ERROR
    0x0000004A TTS ABORTED
    0x4000004B TTS CLIENT CONNECTED
    0x4000004C TTS CLIENT DISCONNECTED
    0xC000004D VAMANAGER PROCESS TERMINATED
    0x4000004E VAMANAGER PROCESS STARTING
    0xC000004F VAMANAGER PROCESS FAILED TO START
    0xC0000050 TTS UNKNOWN STRING TYPE
    0xC0000051 VAVM PROMPT RESOURCE NOT FOUND
    0xC0000052 VAVM PROMPT INVALID RESOURCE
    0xC0000053 VAVM INVALID PROMPT EXPRESSION
    0xC0000054 VAVM INVALID PROMPT RESOURCE
    0xC0000055 VAVM NOT SUPPORTED
    0xC0000056 VAMANAGER WRITE TO LOG FILE FAILED
    0xC0000057 VAMANAGER INVALID COMPONENT ID
    0xC0000058 VAMANAGER PROCESS NOT FOUND
    0xC0000059 VAMANAGER PROCESS ALREADY EXIST
    0xC000005A VAMANAGER CANNOT DESTROY
    RUNNING PROCESS
    0xC000005B VAMANAGER COMPONENT NOT FOUND
    0xC000005C USER ALREADY SELECTED
    0xC000005D USER NOT SELECTED
    0xC000005E USER NOT FOUND
    0xC000005F USER ALREADY EXIST
    0xC0000060 USER UPDATE FAILED
    0xC0000061 USER CREATION FAILED
    0xC0000062 UNKNOWN AUTH METHOD
    0xC0000063 USER NOT AUTHENTICATED
    0xC0000064 UNKNOWN IDENT METHOD
    0xC0000065 DUP IDENT VALUE
    0xC0000066 PARAMETER CREATION FAILED
    0xC0000067 PARAMETER UPDATE FAILED
    0xC0000068 BUFFER TOO SMALL
    0xC0000069 PERMISSION DENIED
    0xC000006A DATABASE ERROR
    0xC000006B VASERVER RULE CREATION FAILED
    0xC000006C VASERVER RULEID ALREADY EXIST
    0xC000006D VASERVER RULEID NOT FOUND
    0xC000006E VASERVER USER HAS PENDING REQUEST
    0xC000006F POPMON NOT INITIALIZED
    0xC0000070 POPMON ALREADY INITIALIZED
    0xC0000071 POPMON RULES ENGINE NOT SPECIFIED
    0xC0000072 POPMON DUPLICATE RULE
    0x40000073 POPMON USER RELEASED
    0xC0000074 POPRULE SYNTAX ERROR
    0xC0000075 POPRULE UNDEFINED KEYWORD
    0xC0000076 POPRULE WRONG NUM PARAMS
    0xC0000077 POPRULE EMPTY RULE
    0x80000078 SITEMANAGER SELECTSITE FAILED
    0x80000079 SITEMANAGER ADDSITE FAILED
    0x8000007A SITEMANAGER REMOVESITE FAILED
    0x8000007B SITEMANAGER ENUMERATION ERROR
    0x8000007C SITEMANAGER SELECTCOMPUTER FAILED
    x8000007D SITEMANAGER ADDCOMPUTER FAILED
    0x8000007E SITEMANAGER REMOVECOMPUTER FAILED
    0x8000007F SITEMANAGER SETPARAMETER FAILED
    0xC0000080 SITEMANAGER CONNECT FAILED
    0x80000081 SITEMANAGER SETSITENOTIFY FAILED
    0x80000082 SITEMANAGER SELECTPROCESS FAILED
    0x80000083 SITEMANAGER ADDPROCESS FAILED
    0x80000084 SITEMANAGER PROCESSCOMMAND FAILED
    0xC0000085 SITEMANAGER CONNECTLOCAL FAILED
    0xC0000086 SITEMANAGER CONNECTREMOTE FAILED
    0x80000087 SITEMANAGER ADDUSERNOTIFY FAILED
    0x80000088 SITEMANAGER SETUP FAILED
    0xC0000089 SITEMANAGER DATASOURCE FAILURE
    0x8000008A SITEMANAGER CONNECTION TIMEOUT
    0x8000008B SITEMANAGER COMPONENTMANAGER FAILURE
    0x4000008C SITEMANAGER VAMANAGER CONNECTION
    0xC000008D APP NOT FOUND
    0xC000008E VAPROCESS NOT STARTED
    0x8000008F UNKNOWN PAGE TYPE
    0x80000090 UNKNOWN PAGE KEYWORD
    0x80000091 PAGE FILE SYNTAX ERROR
    0x00000092 APPLICATION GENERAL SUCCESS
    0x40000093 APPLICATION GENERAL INFORMATIONAL
    0x80000094 APPLICATION GENERAL WARNING
    0xC0000095 APPLICATION GENERAL ERROR
    0xC0000096 APPLICATION LOGON FAILED
    0x80000097 UNSYNCHRONIZED PARAMETERS
    0x80000098 INVALID AUDIO STREAM
    0x80000099 AUDIO BUFFER UNDEFINED
    0xC000009A TELEPHONY SET CONTROL ERROR
    0x4000009B COL INVALID INDEX
    0x4000009C COL PROPERTY DOES NOT EXIST
    0x4000009D COL NO MESSAGES
    0x4000009E COL NO PREVIOUS MESSAGE
    0x4000009F COL NO NEXT MESSAGE
    0x400000A0 COL NO ATTACHMENTS
    0x400000A1 COL NO PREVIOUS ATTACHMENT
    0x400000A2 COL NO NEXT ATTACHMENT
    0x400000A3 COL NOT MEETING REQUEST
    0x400000A4 COL NO RECIPIENT
    0xC00000A5 TELEPHONY CONTROL CALL ACTIVE
    0xC00000A6 VAVM NO ACTIVE SESSION
    0xC00000A7 VAVM INVALID CALL STATE
    0xC00000A8 VAVM SESSION TERMINATION
    0x400000A9 TELEPHONY BUFFER OVERFLOW
    0x400000AA TELEPHONY BUFFER HIWATER
    0x800000AB PARAMETER DOES NOT EXIST
    0x800000AC EVENTSINK ALREADY DEFINED
    0x800000AD EVENTSINK NOT DEFINED
    0xC00000AE TELEPHONY WAIT FOR CALL ERROR
    0x400000AF EXTERNAL EVENT
    0xC00000B0 TELEPHONY CONF TOO BIG
    0xC00000B1 TELEPHONY DUPLICATE JOIN
    0xC00000B2 TELEPHONY UNKNOWN CONFEREE
    0xC00000B3 TELEPHONY TROMBONE ERROR
    0xC00000B4 TELEPHONY CONF JOIN ERROR
    0x400000B5 VAVM LOG SESSION
    0xC00000B6 TELEPHONY STOP WAIT CALL ERROR
    0xC00000B7 TELEPHONY CONF DROP ERROR
    0xC00000B8 TELEPHONY MUTE CALL ERROR
    0xC00000B9 TELEPHONY LISTEN CALL ERROR
    0x800000BA SERVERMANAGER NOT INITIALIZED
    0x800000BB DB ENTRY ALREADY EXISTS
    0x400000BC PROCESS PARAMETERS NOT INITIALIZED
    0xC00000BD TELEPHONY HOLD CALL ERROR
    0xC00000BE TELEPHONY RELEASE HOLD ERROR
    0xC00000BF TELEPHONY ACQUIRE CALL ERROR
    0xC00000C0 VADBM CREATE DATABASE FAILED
    0xC00000C1 VADBM REGISTRY PARAMETER ERROR
    0xC00000C2 VADBM SQL SCRIPT MISSING
    0xC00000C3 VADBM SQL SCRIPT ERROR
    0xC00000C4 VADBM SQL SERVER NOT FOUND
    0xC00000C5 VADBM DATABASE UPDATE ERROR
    0xC00000C6 VADBM TABLE READ ERROR
    0x400000C7 VADBM COMPONENT VERSION ERROR
    0xC00000C8 VADBM VAMANAGER CONNECT ERROR
    0xC00000C9 VADBM INITIALIZATION ERROR
    0xC00000CA VADBM OLEDB SESSION ERROR
    0xC00000CB SYSTEM DIRECTORY ERROR
    0xC00000CC EXCHMON USER NOT FOUND
    0xC00000CD EXCHMON ALREADY INITIALIZED
    0xC00000CE EXCHMON NOT INITIALIZED
    0xC00000CF EXCHMON RULES ENGINE NOT SPECIFIED
    0xC00000D0 TELEPHONY CONNECT CALL ERROR
    0xC00000D1 VADBM BACKUP FAILED
    0xC00000D2 VADBM RESTORE FAILED
    0xC00000D3 VADBM INVALID RESTORE DEVICE
    0xC00000D4 VADBM MAX LENGTH EXCEEDED
    0xC00000D5 VADBM EXPORT FAILED
    0xC00000D6 VADBM NO SUCH TABLE
    0xC00000D7 VADBM LOG PURGE ERROR
    0xC00000D8 VADBM JOB ERROR
    0xC00000D9 VADBM JOB NAME ERROR
    0xC00000DA VADBM INVALID JOB
    0xC00000DB VADBM TABLE MIGRATION ERROR
    0xC00000DC VAPUBLISH APP ALREADY BEING PUBLISHED
    0xC00000DD VAPUBLISH APP COMPILE ERROR
    0xC00000DE VAPUBLISH MISC ERROR
    0xC00000DF VAPUBLISH APP COPY ERROR
    0x000000E0 VAPUBLISH COMPLETE
    0xC00000E1 VAPUBLISH VAL CREATE ERROR
    0xC00000E2 VAPUBLISH VAL COMPILE ERROR
    0xC00000E3 VAPUBLISH POSTBUILD ERROR
    0x400000E4 VAPUBLISH INFORMATION
    0x400000E5 VAPUBLISH CHILD PROCESS OUTPUT
    0xC00000E6 VAPUBLISH COPY ERROR
    0xC00000E7 VAPUBLISH FAILED
    0xC00000E8 VAPUBLISH CLEAR DIR FAILED
  • The VA Application
  • Setting User Preferences for the VA Application
  • The VA application should be installed on the user's personal computer. After the VA application is installed, the following user preferences should be set:
  • The user's Personal Identification Number (PIN)
  • Name and telephone number of the user's human operator
  • How the VA can reach the user with incoming calls
  • How the user wants to be reminded of appointments and tasks
  • Tempo and assertiveness of the VA
  • In the preferred embodiment, the user preferences are set using Microsoft Outlook on the user's personal computer.
  • Obtaining the Virtual assistant Preferences Screen
  • As shown in FIG. 31, the VA user preferences are located on the Virtual assistant Preferences screen 330. The Virtual Assistant Preferences screen has three tabs: a General tab 332, a Phone/Pager tab 334 and a VA Interaction tab 336.
  • The General tab 332 has an Account Number field 340, which displays the user's account number. The user's account number should be assigned by system administrator, and the user should not be able to change his or her account number. Also on the General tab is the PIN button 342. The PIN is a four-digit code that is recommended for the user to log into the VA. The PIN is initially assigned by the system administrator, but can be changed by the user by clicking the PIN button 342.
  • The General tab also has a field 344 for designating the contact where the user's information is located. The VA Application uses the user's contact information to page the user and route telephone calls and reminders to the user. The New Contact button 346 can be used to create a contact for the user. If the user desires to have the VA route telephone calls to the user, all of the user's telephone numbers should be stored in the user's contact record.
  • A user can move old messages from the Microsoft Outlook Inbox to an archive folder by clicking the Archive Folder field 350, the Select Folder screen appears, which allows the user to select the folder to be used for archiving.
  • The My operator is field is used to select the user's operator from a list. If the user's operator is not included in the contact list, the user can create a new contact for his or her operator. Alternatively, the user can select A manually entered number from the drop-down list 352 and enter the operator's number in the And can be reached at field 354. If user selected a contact as his or her operator, the operator's telephone number (for example, business) can be selected from the And can be reached at field 354. If the only available selection is None, the user has not entered any telephone numbers for the contact.
  • Phone/Pager Tab
  • As shown in FIG. 32, the Phone/Pager tab 360 allows the user to control how the VA notifies the user about incoming calls and reminders. When the user is away from his or her desk, the VA can attempt to route incoming calls to the telephone at a specified location via the “follow me” feature. The By Phone field 362 has three buttons that control how the “follow me” feature works. If the Route all calls to button 364 is selected, the VA routes all calls to the specific contact (the user or an operator) selected from the first drop-down list box 366 at the phone number (for example, business) from the second drop-down list box 368. Alternatively, the user can also select A manually entered number from the first list box 366, in which case the second box 368 becomes a text field in which the user can enter the phone number.
  • If the Route calls based on schedule button 370 is selected, the VA will route calls to the user only at specific times, or will route calls to different numbers at different times. For example, the user might want calls to be routed to the user from 8:00 am to 5:00 pm Monday through Friday. If the Route calls based on schedule button 370 is selected, selecting the Schedule button 372 will allow the user to specify a call routing schedule. Specifying a call routing schedule is discussed in more detail in the section entitled “Setting Up a “Follow Me” Schedule.”
  • If the Do Not Disturb button 374 is selected, the VA will not route calls to the user. Selecting the Do Not Disturb button also deactivates the “follow me” feature, the telephone notification for reminders feature and Rules Wizard messages. If this option is selected, the VA will ask callers to leave a voice message for the user.
  • The By Pager field 376 controls how the VA attempts to page the user. If the Route all pages to button 378 is selected, the VA will route all pages to a specified e-mail address. A contact (usually the user) is selected from the first drop-down list box 380. If the contact has a pager e-mail address, it appears in the second box 382. If not, a warning message is displayed. If the contact does not currently have a pager e-mail address, one can be entered on the Virtual Assistant tab of the contact information form. If A manually entered e-mail is selected from the first drop-down list box 380, the second box 382 becomes a text field in which an e-mail address can be entered. If the Do Not Disturb button 384 is selected, the VA will not route pages to the user, and the pager notification for reminders feature and Rules Wizard messages feature is deactivated.
  • A reminder can be set so that the VA reminds the user of a task or appointment by selecting the telephone checkbox 386 and/or the pager checkbox 388. Similarly, the user can be notified we he or she receives certain types of messages by selecting the telephone checkbox 390 and/or pager checkbox 392.
  • VA Interaction Tab
  • As shown in FIG. 33, in the preferred embodiment, the VA Interaction tab allows the user to specify how the VA interacts with the user. The Tempo field 394 controls the verbosity of the VA. When tempo is set to slow, the VA uses longer phrases to speak to the user. When tempo is set to fast, the VA uses shorter phrases. To change the tempo of the VA, the slider dragged to the desired position. For example, a user would set the tempo to slow when first learning how to use the VA, and after becoming more familiar with the VA, the tempo could be set to fast.
  • Returning to FIG. 33, in the preferred embodiment, the assertiveness of the VA is controlled by the Assertiveness field 396. When assertiveness is set to low, the VA asks for confirmation before performing a task. For example, if a user instructs the VA to delete a message, the VA asks for confirmation before actually deleting the message. When assertiveness is set to high, the VA carries out most commands without asking for confirmation. To change the assertiveness of the VA, the slider is dragged to the desired position. A user could set assertiveness to low when learning how to use the VA, and after becoming more familiar with the VA, assertiveness could be set to high.
  • FIG. 34 illustrates how a call flow changes based on different settings for assertiveness and tempo.
  • In an alternative embodiment, the user does not manually adjust the tempo and assertiveness settings. Rather, the VA automatically adjusts these settings based on input received by the virtual assistant, such as information about the user. For example, rather than manually setting a tempo or assertiveness setting, the virtual assistant could have a user competence setting. The options for the user competence setting could be, for example, novice, experienced and expert, and the tempo and/or assertiveness settings would change automatically responsive to a change in the user competence level. Thus, if the user competence level were set to novice, the assertiveness setting and tempo setting would automatically be set to low and slow, respectively. Conversely, if the user competence level were set to expert, the assertiveness setting and tempo setting would automatically be set to high and fast, respectively. As can be appreciated by one skilled in the art, any setting could change automatically responsive to changes in the user competence level.
  • In another alternative embodiment, the virtual assistant could automatically increase the tempo and/or assertiveness of the virtual assistant after the user has accessed the virtual assistant a predetermined number of times, preferably, twenty. Alternatively, the virtual assistant could automatically provide a prompt to the user in response to which the user could increase the tempo and/or assertiveness of the virtual assistant after the user accessed the virtual assistant a predetermined number of times, preferably, twenty.
  • In an alternative embodiment, the virtual assistant could play a tip to the user about the use of the virtual assistant, or a message of the day, which is determined by the system administrator. Either the tip or the message of the day, or both, might be played every time a user accesses the virtual assistant. The virtual assistant could automatically disable the tips or message of the day if the user accesses the virtual assistant a predetermined number of times. That predetermined number could be calculated automatically by the virtual assistant based on a multiple of the number of tips and/or messages of the day. For example, if there are thirty tips, the virtual assistant could automatically disable the tips after the user heard each tip two to ten times, and, preferably each tips was heard three times. In yet another embodiment, the tips and/or message of the day could be automatically disabled if the user access the virtual assistant a predetermined number of times for a predetermined period of time. For example, the virtual assistant could automatically disable the tips and/or message of the day if the user accesses the virtual assistant more than once in a day. In another alternative embodiment, the tips and/or message of the day could be automatically disabled during the current user session if the time since that last user session is a predetermined amount of time, such as ten minutes or less.
  • In another embodiment, the virtual assistant could have a politeness setting, which, when enabled, would cause the virtual assistant to include words or phrases associated with polite discourse in the output from the virtual assistant. Such words or phrases could be, for example, “please,” thank you,” “thanks,” “excuse,” “pardon,” “may I,” “would you mind,” or other words and phrases associated with polite discourse. Alternatively, the user information input into the virtual assistant could be information about the user's experience with the virtual assistant, particularly, whether words associated with polite discourse are included in input received from the user. If, such words of polite discourse are included in the input received from the user, the virtual assistant could automatically enable the politeness setting.
  • Alternatively, the user information input into the virtual assistant could be information about the user's emotion, which could be based on information about the user's voice volume, word choice and speech rate. Based on such information, the virtual assistant could automatically determine the user's emotional state, calm or angry, for example. If the user's emotional state is angry, the output of the virtual assistant could automatically include words associated with submissive discourse, such as “sorry,” “regret” and “apologize.” The virtual assistant could save the information obtained about the user's emotional state for use in future sessions.
  • The user information also could be comprised of information about the amount of time since the user last provided input to the virtual assistant. If the amount of time since the user last provided input to the virtual assistant is a predetermined amount of time, for example, fifteen seconds or more, the virtual assistant could perform a predetermined action. The predetermined action would be determined by context. For example, if the user was reading messages, the predetermined action would be to read the next message, or prompt the user by saying, “Shall I read your next message,” or provide a hint to the user by saying, “You could read your next message.”
  • Alternatively, the user experience information could be information about the amount of time a user pauses during the recording of a message. If this amount of time is greater than a some predetermined amount of time, such as two seconds, the virtual assistant would stop recording, provide the user with the option to continue recording. Then, the amount of time before the virtual assistant stopped recording would be automatically increased by some other predetermined amount of time, such as 500 milliseconds, so that the virtual assistant would continue recording during future pauses in recording by the user.
  • Speech recognition errors are always possible in which case the VA may misinterpret a command. For example, Read this message could be interpreted to mean Delete this message. In this case, if assertiveness is set to high, the VA will delete the message without asking the user for confirmation. Thus, an alternative embodiment of the VA would have a setting for the user competence. If the user competence setting is set to novice, the VA could be programmed not to execute a particular command, such as Delete this message or Delete all messages, without user confirmation. Conversely, if the user competence setting is set to expert, such commands could be executed without confirmation when the assertiveness setting is set to high.
  • Prompt to record a subject when sending messages
  • Returning to FIG. 33, in the preferred embodiment, the VA Interaction tab includes a setting 400 to prompt a user to record a subject when sending a message.
  • Change VA Name
  • As shown in FIG. 33, in the preferred embodiment, the VA Interaction tab includes a setting 402 to change the name for the VA from the default name “Conita.” If the user wants to change the name of the VA, this box should be checked and the new name of the VA should be entered in the text box 404. The VA name entered in the text box 404 is used in the “Come back” command (for example, “Conita, come back”). This command allows a user to bring the VA back during a telephone call so that additional commands can be issued by the user. Adding a name to the “Come back” command makes it easier for the VA to understand this command and decreases the chance of the VA coming back accidentally because it misinterpreted a phrase in a phone conversation as the “Come back” command.
  • ‘Come back’ on keypad only
  • As shown in FIG. 33, in the preferred embodiment, the VA Interaction tab includes a setting 406 for ‘come back’ on the keypad only. If this box 406 is not checked, the VA will come back from a break if the user says “Come back” or presses a predetermined key, such as the star (*) key, on a telephone keypad. If this box 406 is checked, the VA will come back only if a predetermined key, such as the star (*) key, is pressed on the telephone keypad.
  • VA Greeting
  • As shown in FIG. 33, in the preferred embodiment, the VA Interaction tab includes VA Greeting settings 408. When a user calls its VA and logs in successfully” the VA responds with a greeting message. There four check boxes 410, 412, 414 and 416 that allow the user to specify the information contained in the greeting message. For example, if user checks check box 414 for the number of Appointments for today, the VA will tell the user how many appointments it has, and other relevant information about such appointments, for a predetermined period of time, such as one day. Any combination of the boxes 410, 412, 414 and 416 can be checked.
  • In an alternative embodiment, the greeting information about the user's appointments or tasks could be automatically disabled during a user session if the time since the last user session is a predetermined amount of time, such as ten minutes or less.
  • In addition, the virtual assistant will provide time-of-day specific greetings to the user based on when the user accesses the virtual assistant. For example, if the user accesses the virtual assistant in the morning, the virtual assistant may greet the user by saying, “Good morning.” These time-of-day specific greetings can be automatically disabled during the current user session if the time since the last user session is a predetermined amount of time, such as ten minutes or less.
  • Setting Up a “Follow Me” Schedule
  • Returning to FIG. 32, if the Route calls based on schedule setting is enabled, the user should establish a call routing schedule, which causes the VA to route phone calls to the user at different times. In the preferred embodiment, before establishing a call routing schedule, the user should define a contact for himself of herself in Microsoft Outlook. Under this contact, the user should specify each telephone number (home, business, and so on) to which it wants the VA to route calls. Returning to FIG. 31, the user also should specify this contact in the Contact where my information is located 344 on the VA Preferences General tab 332.
  • Returning to FIG. 32, in the preferred embodiment, to set up a call routing schedule, the user should enable the Route calls based on schedule setting 370 on the Phone/Pager tab 360 and then click the Schedule button 372. Upon clicking the Schedule button 372, as shown in FIG. 35, the Phone Schedule screen 418 is activated. A block of time is selected by clicking the box for the starting date and time and dragging the mouse to the box for the ending date and time. The block of time selected is highlighted in blue. Clicking the right mouse button activates a menu that displays the telephone numbers (for example, home or work) for the contact specified in the Contact where my information is located 344 on the VA Preferences General tab 332. The user selects the telephone number to which the VA should route calls during the specified block of time. To cause the VA to route calls to a contact other than the user, Other can be selected from the menu and then the other contact and telephone number can be selected. In the preferred embodiment, if a contact other than the user is selected, the specified time block changes, for example, to white with a green border.
  • In the preferred embodiment, a user can select more than one block of time, and can specify a different telephone number for each block of time. In addition, the user can override the call routing schedule with the “Follow me” voice command, which is discussed above. If the user overrides the routing schedule with a voice command, a red line identifies the period of time for which the override is in effect. Also, if the contact where the user's contact information is located is changed, or if the contact to whom calls are being routing is deleted, the VA cannot use the schedule to route calls and a colored border, such as a red border, identifies the affected time blocks. The user should delete these time blocks and redefine them for the new contact.
  • Other VA Options Set with Outlook
  • In addition to the preferences that can set on the Virtual assistant Preferences screen, there are other options that can be set with Outlook, including Automatic message notification through the Rules Wizard and Additional contact information.
  • The VA can notify a user by telephone or pager when the user receives certain types of messages. For example, the user might want to be notified if he or she receives a message from his or her supervisor. In order to use this feature, the user should use the Outlook Rules Wizard to specify the types of messages that trigger automatic notification. Information concerning the use of the Outlook Rules Wizard can be found at the Microsoft web site, www.microsoft.com. To set up a rule for VA notification, the type of message for which the user wants to be notified should be selected. Also, the forward it to people or distribution list setting should be enabled. Under Rule Description, the underlined people or distribution list should be selected and then the VAManager should be selected, which causes the affected messages to be forwarded to the VA, which in turn forwards them to the user. Returning to FIG. 32, in the preferred embodiment, in order for rules notification to function, the Phone setting 390 and/or the Pager setting 392 should be enabled.
  • As shown in FIG. 36, when the VA software is installed, it adds a Virtual assistant tab 420 to the Outlook screen for defining contacts. This tab allows the entry of additional contact information for the VA. The VA tab 420 has Name Pronunciation—First 422 and Name Pronunciation—Last fields 424 which allow the entry of a phonetic pronunciation for a contact's first or last name. These fields can be used to enter a phonetic pronunciation if the VA does not pronouncing the contact's name correctly. For example, if a contact named “Conita” is being pronounced “Coneeta,” a user could enter “Conighta” in this field to change the pronunciation used by the VA.
  • The Nickname 426 and Nickname2 428 fields can be used to enter a contact's nickname. If a nickname is entered, the VA can look up that contact using the specified nickname. Alternatively, a contact's nickname can be entered on the Details tab 430.
  • The Pager E-mail field 432 can be used to enter the e-mail address for a contact's pager.
  • The Gender field 434 can be used to select the contact's gender. The VA, when interacting with a user, will use words associated with the gender selected. If male is selected, the VA may ask the user, “Would you like to call him?”
  • Interacting with the VA
  • In the preferred embodiment, in making utterances to the VA, the user should speak clearly and at a moderate pace. The user also should speak at normal volume level. If the VA has difficulty in understanding the user, different volume levels should be tried. The user should use words and phrases that the VA understands. Background noise will reduce the ability of the VA to understand utterances from the user. A user should interact with the VA in a quiet place. The user should avoid pauses when saying a command. If a user pauses, the VA will interpret the pause as the completion of a command. The user should avoid pauses when saying a number, such as a telephone number because should a pause will be interpreted as the end of the number. The user should pronounce each digit when uttering a number to the VA. For example, if a user's PIN is 2314, the user should say “two, three, one, four.” An exception is time; for example, the user can utter either “12 o'clock” or “1200.”
  • If a user has difficulty performing a task, help can be requested by uttering “Help” or “What are my options?” The VA will respond automatically with information to assist the user in performing the current task. Also, if there is a period of silence and the user appears to be having trouble, the VA will offer help by reading a list of possible options.
  • The VA can provide either global help of context-sensitive help. Global help lists the tasks that can be performed with the VA. To request global help, the user should utter “What are my options?” after the VA says, “What can I do for you?”. The VA responds by listing the major tasks that can be performed. The user can then utter the desired option.
  • When the user is performing a task, any request for help results in a context-sensitive help message for that task. For example, if the user requests to send a message, the VA asks who is to be the intended recipient. If, at this point, the users utters “What are my options?” the VA will tell the user how to provide the contact name for the message recipient.
  • In the preferred embodiment, as an alternative to uttering commands, the VA allows a user to issue commands with predetermined key, such as the star (*) or “star” key, of the telephone keypad. This method of interaction, known as Star mode, is useful when the VA is having difficulty understanding a user's utterances because of background noise. To enable the Star mode, the star key (*) on the telephone keypad should be pressed. The VA will provide the user information as to the available options. At the time the desired option is being provided, the option can be selected by the user by pressing the * key. The star mode is discussed in more detail below.
  • If the VA is providing output, and the user desires to interrupt the VA, the VA is programmed to allow the user to “barge in.” When a user barges in, the VA stops talking. For example, if the VA is reading a message and user wants to hear the next message before the VA has completed reading the current message, the user can barge in and say “Next.” This will cause the VA to begin reading the next message. The barge in feature can be deactivated by pressing a predetermined key, such as the number sign (#) key, on the telephone keypad. When the barge-in feature is deactivated, the VA will continue to respond to user voice commands, but will not allow a user to barge-in while the VA is providing output, by speech or otherwise. The barge-in feature can be reactivated by pressing the # key again. A user might want to deactivate the barge-in off if background noise that will cause recognition errors is anticipated.
  • A user can stop the VA from performing an action by saying “Cancel” or “Stop.” For example, if a user asks the VA to place a telephone call and then decides not to place the call, uttering “Cancel” will stop the VA from placing the call. The cancel function is also useful if a user loses track of what he or she is doing or wants to restart a task. Uttering “Cancel” will stop the current task; the VA will indicate that it is ready to receive the next utterance by saying, “What can I do for you?”
  • A user can deactivate the VA, that is, put it on hold, at any time by uttering “Take a break.” The VA stops the task or action being performed and waits for the user to utter a predetermined command, such as “Come back.” After the VA back is reactivated, the VA can continue the task that it was performing when it was deactivated, or begin performing a new task or action.
  • When a user wants to end a VA session, the user can utter a predetermined phrase, such as “good-bye” or simply hang up. If the VA hears the user utter “good-bye,” it will also say “good-bye” and prepare to hang up. A short period between the time when the VA says “good-bye” and the time when it actually hangs up allows the user to restart the session by saying “wait” or any other supported system command.
  • If the VA does not understand a user utterance, it will ask the user to clarify the utterance. In many cases, the VA will not understand a user utterance because of a recognition error. Recognition errors can be the result of speech problems, syntax problems or inappropriate context.
  • Speech problems occur when the VA cannot recognize what is being uttered by the user for one of several reasons, such as background noise, bad phone connection, heavily accented speech, speech is too loud, too fast or too slow.
  • Syntax problems occur when a user utterance does not conform to the syntax recognized by the VA. Although the VA is very flexible in recognizing utterances, it is designed to recognize phrases for specific tasks. If the user does not provide the VA with sufficient information, or an utterance contains extraneous words, the VA might become confused. For example, the VA may not understand the utterance, “What I need to know is the number for John Smith's home extension.” However, the utterance, “What is John Smith's home phone number?” can be understood by the VA.
  • Recognition errors also occur if a user utters a valid command, but the command is inappropriate given the context. For example, if a user is creating an appointment, the VA expects to be provided information about the appointment. If the user utters a command to call a contact before finishing the task of creating the appointment, the VA will not recognize the command as valid.
  • If the VA is having difficulty understanding user commands, the user can be instructed to take the following actions:
  • Eliminate background noise.
  • Speak more loudly.
  • Speak more distinctly.
  • Speak at a natural pace—not too slowly.
  • Eliminate like pauses.
  • Make sure that those around the user are not speaking at the same time.
  • Say “Cancel” and start over again.
  • Instead of speaking commands, press the * key and use Star mode to issue commands.
  • Let the VA assist in framing a command.
  • Look up examples of the command to be issued.
  • The VA can be programmed to provide such instructions automatically, depending on the number and/or frequency of recognition errors.
  • In the preferred embodiment, the VA automatically disconnects and terminates the user session if it receives a predetermined number of recognition errors. The VA also automatically disconnects after predetermined period of inactivity, for example, approximately 15 seconds. Before disconnecting, the VA should inform the user to call back and try again. The automatic disconnect feature prevents an off-hook VA from staying connected due to background noise. The automatic disconnect feature also allows the user to obtain a better connection if recognition errors are due to a bad connection.
  • If a user wants to send the system administrator a comment about the VA, the user can utter “Leave a comment.” The VA then prompts the user to record and comment and automatically sends it to the system administrator.
  • Calling the VA and Logging In
  • When a user calls the VA, it should log in. The system administrator determines the recommended log-in information. If each user has a unique telephone number for his or her VA, then the user need only provide a PIN to log in. If every user uses the same number to reach his or her VA, the user should provide both an account number and a PIN to log in.
  • After a user has logged in successfully, the VA will respond with a brief tone and a greeting. For example, “You have four e-mail messages. You have two voice mail messages.” After the greeting, the VA will provide a prompt such as, “What can I do for you?” This indicates that the VA is ready to receive commands or utterances from the user.
  • The actual content of the greeting depends on settings specified by the user, as discussed above. In an alternative embodiment, the greetings will automatically change responsive to how the user has previously interacted with the VA. For example, the VA may be initially configured to provide time-of-day specific greetings (for example, “Good morning,” “Good afternoon,” “Good evening”) when the user logs in. Such time-of-day specific greetings may be automatically disabled for a predetermined period of time, such as a days if the amount of time since the user last accessed the VA is a predetermined amount of time, such as ten minutes or less. The time-of-day specific greetings also could be disabled after the user accesses the VA more than a three times in a day.
  • Similarly, the VA may be initially configured to provide information to the user about the user's appointments scheduled for, or tasks that are due, the day. Such appointment and/or task information may be automatically disabled for a predetermined period of time, such as the rest of the day, if the amount of time since the user last accessed the VA is a predetermined amount of time, such as ten minutes or less. The providing of such appointment or task information also could be disabled after the user accesses the VA more than a three times in a day.
  • Overview of Messages
  • After a user logs in to the VA, the user will likely want to listen to new messages, such as voice mail messages, e-mails, meeting and task requests generated through Microsoft Outlook, and faxes received by the VA and stored as messages.
  • The VA provides several different options for listening to messages. These options allow a user to quickly determine which messages are important and then obtain more detail about them. The options are listed in the table set forth below:
  • Option Information provided
    Count Count of messages
    Browse Sender and subject
    List Sender and subject
    Read Sender, subject, body of the message,
    attachments
    Note: The VA cannot read faxes to a user To
    read a faxed message, the user should forward
    it either to a fax machine or to a personal
    computer that contains fax display software
    More detail Detail in addition to that provided by the read
    option; varies according to the type of message
  • “Navigating” is the process of directing the VA to the specific message or messages a user wants to hear. If a user instructs the VA to “Read my messages,” the VA reads all messages in order, beginning with the oldest new message. However, there are many options that allow a user to specify which message or messages VA should read.
  • “New” messages are those that have been received since the user last called the VA (and, perhaps, since the user last checked messages on a personal computer). “Old” messages include all other messages, even if they have not been read. If a user instructs the VA to read messages, it reads the new messages by default, and then will read the user's old messages. If the user instructs the VA to “Read my old messages,” the VA starts reading the most recent old message, and then reads the user's most recent old messages.
  • “Read” messages are those that the VA has read to the user or the user has read with Outlook on a personal computer. “Unread” messages are those that the VA has not read to the user and the user has not read with Outlook.
  • The “first” message is the most recent message received by the user. The “last” message is the oldest message received by the user. A user can tell the VA read the first or last message by saying “Read my first message” or “Read my last message.”
  • A user can tell the VA to read the next or previous message by saying “Next” or “Previous.” In order for these commands to work, the VA should have a message context. That is, it should be listing, reading, or performing a similar activity. If the VA says, “What can I do for you?” and a user says “Next,” a misrecognition will likely occur. As discussed above, a user is not required to wait for the VA to finish reading the current message; when the user wants to hear the next message, the user can barge in and request the VA to read the next message.
  • A user can filter, or tag, the messages the user wants to access by providing additional descriptive information to the VA. For example, if a user instructs the VA to “Read my new messages,” the VA reads all new messages beginning with the first new message. However, if a user is expecting an important message from a particular person, e.g., John Smith, the VA will read only messages from John Smith if the user instructs the VA to “Read my new messages from John Smith.”
  • Listening to Messages
  • A user can request the VA to provide a count of messages by saying, “How many messages do I have?” The VA will respond, for example, by saying, “You have four messages. Two of these are e-mail messages, and two are voice mail messages.
  • The following table shows other options available to a user in requesting a count of messages.
  • Option Example
    Message type: How many e-mail messages do I have?
    E-mail Do I have any voice mail messages?
    Voice mail
    Meeting requests
    Task requests
    Message status: How many old messages do I have?
    New or Old
    Read or Unread
    Urgent
    A combination of the How many new meeting requests do I have?
    other options
  • A user can browse messages by saying, “Browse my messages.” The VA responds by reading the sender and subject for each message, beginning with the first message. For example, “Sally Jones . . . Need your timesheet,” and “James Ford . . . Lunch today?” If a user wants the VA to read a message, the user can barge in while the VA is reading the subject and say, “Read it.” The user-should say, “Read it” before the VA begins the next message. If the VA begins reading the next message before the user says, “Read it,” the user can say “Previous” to get back to the message. For voice messages, the VA plays back a recording of the sender's name. For faxes, the VA reads the number of the sending fax machine.
  • A user lists messages by saying, “List my messages.” The VA responds by reading the sender, delivery date, and subject for each message, beginning with the first message. Listing is an efficient way for a user to review messages and determine which ones are the most important. If the user wants the VA to read the current message it is listing, the user can barge in and say “Read it.” The following table shows other options available to a user in requesting a list of messages:
  • Option Examples
    List my voice mail messages
    List my meeting requests
    Message type:
    E-mail
    Voice mail
    Meeting requests
    Task requests
    Sender or subject List my messages by sender
    Message status: List my unread messages
    New or Old
    Read or Unread
    Urgent
    A combination of the other options List my e-mail messages by sender
  • In order to hear the body of a message, the user should ask the VA to read it. The most basic command for reading messages is simply “Read my messages.” This causes the VA to read all of a user's messages.
  • The VA reads different types of messages in different ways, based on the information available for the type of message. In general, however, the VA reads messages as follows:
  • Message description
  • Message text
  • Message attachments
  • As mentioned above, the VA cannot read faxes. To read a faxed message, a user should forward it either to a fax machine or to a personal computer that contains fax display software.
  • The message description contains the information necessary for a user to identify a message. The VA reads this information first so the user can decide whether to listen to the message. The message description is different for different message types, as shown in the following table:
  • The message description contains the
    For this message type following
    E-mail Sender, delivery date, and subject
    Voice mail Message type, caller's name, delivery date, and
    callback number
    Meeting requests Sender, delivery date, and subject
    Task requests Sender, delivery date, and subject
    Faxes Telephone number of the machine that sent the
    fax
  • When a user instructs the VA to read messages, the messages can be filtered as follows:
  • Option Example
    Message type: Read my voice mail messages
    E-mail
    Voice mail
    Meeting requests
    Task requests
    Sender Read my messages from John Smith
    Message status: Read my first message
    First or Last Read my urgent messages
    New or Old
    Read or Unread
    Deleted
    Urgent
    A combination of the Read my e-mail messages from John Smith
    other options
  • When the VA finishes reading the text of a message, it reads (or plays) any attachments included with the message. Before reading an attachment, the VA tells the user its type and name. If user asks for more detail, the VA tells the user the attachment's file size. In the preferred embodiment, the VA can read text, rich text, HTML, and sound files (e.g., .wav files). The VA informs a user if an attachment cannot be read. If a message contains more than one attachment, a user has the following navigation options:
  • First
  • Last
  • Next
  • Previous
  • If a user wants more detailed information about a message than the VA provides automatically by reading, the user can say, “Get more detail.” The VA will respond by providing additional detail, depending on the type of message.
  • If a user wants to remove a message from the Inbox and retain a copy, the user can move it to an archive folder. To move a message from Inbox to an archive folder, say, “File this message.” Once a message is archived, the user can access it from the VA only if it is returned to the Inbox by saying “Restore” immediately, before issuing the next command. Before a user can archive messages, an archive folder should be created under Microsoft Outlook, and the name of the archive folder should be specified in the user preferences, which is discussed above.
  • As user can delete any message from the Inbox by saying, “Delete this message.” The message to be deleted should be the current message, that is, the message the VA is describing or reading. If a user wants to restore a deleted message, it can do so by saying “Restore this message” immediately, i.e., before the user continues to the next command. Once the user issues the next command, the VA cannot restore the deleted message. When the user ends the current session, all deleted messages are moved to the Microsoft Outlook Deleted Items folder. Messages in the Deleted Items folder are subject to the permanent deletion policy defined with Outlook. If a user tells the VA to delete a meeting or task request, the VA will ask the user if it wants to respond to the sender with a rejection before deleting the message.
  • Managing Contacts
  • A user can browse contacts by saying, “Browse my contacts.” The VA responds by telling how many contacts in the contact list and reading the name of each contact (in alphabetical order).
  • If a user wants more information than browsing provides, a user can list contacts by saying, “List my contacts.” The VA responds by telling how many contacts in contact the list, and reading the name and company of each contact. If the user wants more detailed information about the current contact that the VA is listing, the user can barge in and say “Read it.”
  • If the user wants more information than listing provides, the user can read contacts by saying “Read my contacts.” The VA responds by telling how many contacts in the contact list, and reading each contact's name, title, company, telephone numbers, and e-mail address.
  • If the user wants more detailed information about a contact than the VA provides by reading, the user can say, “Get more detail.” The VA responds by reading the contact name, job title, birthday, spouse name, gender, anniversary and other telephone numbers.
  • To access a specific field of information (for example, a telephone number or e-mail address) for a specific contact, the user can use any of the following commands:
  • Look up a contact
  • Look up John Smith
  • Who is John Smith?
  • What is John Smith's telephone number?
  • What is John Smith's work telephone number?
  • What is John Smith's address?
  • What is John Smith's e-mail?
  • When a user inquires about a contact, the user should identify the contact for the VA. The user can use any of the following to identify a contact:
  • First name and last name
  • Last name only
  • First name only
  • Nickname1
  • Nickname2
  • Nickname and last name
  • The more information provided, the more precisely the VA can identify the contact. For example, if a user asks for a contact by last name only and the contact list contains more than one contact with that last name, the VA cannot immediately determine which contact the user wants. If the VA finds more than one matching contact, it begins with the first contact and asks whether this is the one the user wants. The user can respond by saying either “Yes” or “No” until the user identifies the desired contact.
  • To create a new contact, the user can say “Add a contact.” The VA prompts the user to provide first name, last name, e-mail address, work telephone number and home telephone number.
  • When prompting for a name, the VA first asks the user to say the name. The VA then repeats the name and asks if it is correct. If the name is correct, the user will say “Yes” and the VA prompts the user for the next piece of information. If the name is not correct, the user can either say “Try again” to say the name again, or say “No” to spell the name one letter at a time, with the VA confirming each letter. When the VA confirms the last letter of the name, that user can say, “That's it” to continue.
  • When spelling a contact's name or e-mail address, the user has the following options:
  • Say the letter (for example, “B”)
  • Say the International Phonetic Alphabet word for the letter (for example, “Bravo” for B) because the VA is morel likely to understand a word than a single letter.
  • Press the button on the telephone keypad that corresponds to the letter. The VA recites the International Phonetic Alphabet word for each letter on the button (for example, “Alpha Bravo Charlie”). The user can then say the word for the letter.
  • When spelling an e-mail address, user can say “At” for the at sign (@) and “Dot” for a period (.).
  • A user can create a new contact from an e-mail message. The e-mail should be the current message the VA is reading. To create a new contact from an e-mail message, the user can say “Add this contact.” The VA adds the sender of the e-mail to the user's contact list, if that person is not already in the contact list.
  • Sending Messages
  • A user can send a new message to any contact in the contact list by saying “Send a message.” The message is recorded as a sound file (.wav) and attached to an e-mail message. The recipient of the e-mail message should have some means of playing sound files. The user can specify the name of the contact in the command (for example, “Send a message to John Smith”). If the user says, “Send a message,” the VA asks for the name of the contact. If the contact has more than one e-mail address, the VA asks to specify which e-mail address to use. The user can specify the name of a distribution list (for example, “Send a message to Quality Team”) instead of a contact. The VA sends the message to each contact in the distribution list. When the contact name and e-mail address have been resolved, the VA asks whether to record a subject for the message. If the user says, “Yes,” the VA directs the user to record the subject. After requesting the subject, the VA asks to begin recording the body of the message. When finished recording the body, the VA asks whether to send the message.
  • A user can reply to a message in Inbox by saying “Reply to this message.” The message replied to should be the current message, that is, the message the VA is describing or reading. The reply is recorded as a sound file (.wav) and included as an attachment. A user can also record a sound file for the subject of the reply. The original message is included in the reply. All attachments (except those created by the VA) are stripped from the reply. The original message is appended to the reply message. If the user replies to a voice mail message, the VA attempts to call the person who left the message.
  • A user can forward any message in Inbox to a contact on the contact list by saying “Forward this message.” The message forwarded should be the current message, that is the message the VA is describing or reading. The VA handles forwarded messages in much the same way as it handles replies, except that the original attachments are included. The user can specify the name of a contact when forwarding a message. If the user says, “Forward this message,” the VA asks for the name of the contact. If the contact has more than one e-mail address, the VA asks to specify which e-mail address to use.
  • The user can fax a message by saying, “Fax this message.” The message to be faxed should be the current message, that is, the message the VA is describing or reading. A user can fax a message to either an existing contact in the contact list (the user should specify the name of the contact and the VA faxes the message to the contact's fax number) or a fax number that is recited to the VA at the time of the fax request. Attachments are included in a faxed message only if the fax software recognizes them.
  • Managing Telephone Calls
  • The VA handles incoming calls from the user and from other callers attempting to reach the user. When the VA receives an incoming call, it asks for the caller's name. If the user is the caller, the user identifies itself by saying, “It's me,” and logging in using the account number (if required) and PIN. The user can then start issuing commands to the VA. If another caller is attempting to reach the user, the caller should record a name when the VA asks for it. The VA then asks whether the caller wants to be connected to the user or leave a message. If the caller asks to be connected, the VA handles the call based on the user preference settings:
  • If . . . Then the VA . . .
    the “follow me” feature is enabled attempts to forward the call to
    the “follow me” telephone
    number specified
    the “follow me feature” is disabled,. or asks the caller to record a
    the VA cannot reach the user, or message
    the “do not disturb” feature is enabled
    the user rejects the call
  • After recording a message, the VA asks if the caller wants to send the message. If the caller does not respond immediately, the VA recites a list of options (for example, send the message, review the message or cancel). The caller can select the desired option by saying the correct phrase. The caller's message, including the recorded name and telephone number, is sent to the Inbox as a voice mail message. The user can then listen to this voice mail message the next time the user accesses the VA.
  • The VA assigns a line number to each inbound and outbound call. This is useful if the user needs to keep track of multiple calls or if the user is involved in a conference call. If the user has several active calls, the user can use the following calls to determine which caller is on which line:
  • Command Description
    Who is on line? Tells which caller is on each line
    Who is on line <x>? Tells which caller is on the specified line
  • After the VA connects a call, it become temporarily inactive, that is, it “goes to sleep.” While sleeping, the VA only responds to a specific wake-up command. This allows the user to talk with the calling or called party without interference from the VA. The user can interrupt a call and reactivate, or “wake up,” the VA at any time by saying “Come back.” The VA responds by saying, “I'm here.” The user can then issue commands to the VA again. If the user does not want the other party to the call to hear the dialog with the VA, the user can say “Go private.” When a call is completed, the VA returns to continue performing tasks.
  • A user can terminate a call by either hanging up (this also terminates the call with the VA) or saying one of the following commands:
  • Command Description
    Drop line <x> Terminates the call assigned to line <x> but
    keeps the call with the VA open
    Drop all lines Terminates all calls on all lines but keeps the
    call with the VA open
  • If a user receives an incoming telephone call while already on a call, the VA interrupts with a tone. This tone is referred to as a “whisper,” since it is audible only to the user, that is, no other parties on the line can hear the tone. When the user hears the whisper, the user can break from the current call and speak to the VA by saying, “Come back.” The VA gives the user more detail about the call and allows the user to accept it by saying, “Take the call” or reject it by saying, “Reject the call.” If the user does not respond in a predetermined amount of time, the VA sends the call to voice mail.
  • The VA prompts incoming callers to provide a name. If the user has the “follow me” feature enabled, the VA attempts to reach the user by telephone and inform the user of the incoming call. When the VA contacts the user, it recites the recorded name of the caller. The user then has the option to accept or reject the call. If the user accepts, the VA connects the caller. If the VA cannot transfer the call because the user rejected the call, the VA could not reach the user or the user as the Do Not Disturb feature enabled, it asks the caller to leave a message. The VA only attempts to reach the user at one number. The user can change this number at any time. The user also can set this number to change at different times of the day.
  • A user can set options for the “follow me” feature in the Microsoft Outlook VA user preferences, which is discussed above. The user can issue the following commands to override the user preferences for the “follow me” feature:
  • Command Description
    Follow me Use this command to turn “follow me” on or to
    override the current call routing schedule. The
    VA asks to specify the duration of the override
    and the telephone number at which the user can
    be reached.
    Hold my calls Use this command to enable on the “do not
    disturb” option. The VA asks the user to
    specify the duration.
  • When the VA asks for the duration of an override (“How long . . . ?”), the user can specify any of the following:
  • <x> hours (where x is a number from 1 through 96)
  • <y> minutes (where y is 15, 30, 45, or 90)
  • <x> hours, <y> minutes
  • All day
  • Forever
  • Until I tell you different
  • An override command expires when the specified duration has passed. The user can also cancel an override command at any time by saying “Put me on schedule.” When an override command expires or is canceled, the user preference “follow me” settings are reinstated.
  • The user can command the VA to call to a contact from the user's Microsoft Outlook list by:
  • Saying “Call <contact name>” (for example, “Call John Smith”).
  • Inquiring about the contact's telephone number (for example, “What is John Smith's work phone number”). The VA provides the requested number and then asks if the user wants to call it.
  • Before placing a call to a contact, the VA recites the contact's name and location and then remains silent for a short period. This period of silence allows the user to correct a mistake or cancel the call. If the contact has more than one telephone number, the VA asks which number to call. If the user has previously called a contact with more than one telephone number, the VA will automatically call the contact at the telephone number last used by the VA to call the contact. If no telephone number exists for the contact, the VA informs the user of this and returns to the main menu. If the contact's telephone number includes an extension, the VA reminds the user of the extension before placing the call. The VA determines whether the call is long distance or local and adjusts the number accordingly.
  • A user can command the VA to place a call to any telephone number from two to eleven digits long. To place a call to a telephone number, say “Call <phone number>” (for example, “Call 803-366-4509.”) Before placing the call, the VA repeats the number and the user has a short period of time to correct any mistakes.
  • The user can instruct the VA to call back a person who left a voice mail message. The voice mail message should be the current message, that is, message the VA is listing or reading. To instruct the VA to call back, say “Give them a call.” The VA should be able to determine the caller's telephone number. Either the caller should leave a number, or the VA should capture the number from which the call was placed. The VA informs the user if it cannot determine the caller's telephone number.
  • The VA uses the concept of a “conference room” to enable a user to make conference calls. If a user puts a call in the conference room, that person can hear and speak to all of the other parties in the conference room. If the user “goes private” with a line, none of the other parties on other private lines or in the conference room can hear the user. There are three ways a call can be placed in the conference room:
  • If the user is already talking to someone and accepts an incoming call without “going private,” the new call is placed in the conference room.
  • If the user is talking to someone and asks the VA to call another party without “going private,” the new call is placed in the conference room.
  • The user can instruct the VA to place a call or calls in the conference room.
  • The user can have both “private” and “conference room” calls active at the same time. The following table lists commands that the user can use to manage conference calls:
  • Command Description
    Put line <x> in the conference room Puts the specified line in the
    conference room
    Put everyone in the conference room Puts all of the user's current calls
    in the conference room
    Put me in the conference room Switches the user from a private
    call to the conference room.
    Who is in the conference room? Lists all calls that are in the
    conference room
  • Managing A Schedule
  • A user can obtain a summary of appointments by saying “Summarize my appointments.” The VA responds by asking for the date, in response to which the user can say “Today,” “Tomorrow,” or a specific date, for example, February 19th. When the user has provided the date, the VA recites the number of meetings, all day events, and appointments.
  • A user can browse his or her schedule by saying, “Browse my appointments.” The VA responds by asking for the date. When the user provides the date, the VA recites the subject and start time for each appointment.
  • A user can request a list of all appointments by saying, “List my appointments” or “What are my appointments?” The VA responds by asking for the date. When the user has provided the date, the VA tells the user how many appointments he or she has and recites the start time, duration, and subject for each appointment.
  • A user can filter the appointment list by any of the following:
  • Type of Filter Example
    Date (today or tomorrow) List my appointments today
    First or last List my first appointment
    Next or previous List my next appointment
    A combination of the other filters List my first appointment today
  • A user can request that the VA read all appointments by saying “Read my appointments.” The VA tells the user how many appointments he or she has, and then reads the start time, duration and subject for each appointment.
  • A user can filter the appointments to be read by the same criteria that used to filter an appointment list:
  • Type of Filter Example
    Date (today or tomorrow) Read my appointments for today
    First or last Read my first appointment
    Next or previous Read my next appointment
    A combination of the other filters Read my first appointment tomorrow
  • If a user needs more detailed information about an appointment than the VA provides by reading, the user can say, “Get more detail,” and the VA responds by providing information regarding whether or not the appointment is recurring, attendees and location.
  • A user can respond to a meeting request by saying “Reply” or “Forward” while the VA is listing or reading it. When a user says, “Reply,” the VA lists the options for replying to a meeting request, which are Accept, Tentatively accept, Decline, Forward and Reply.
  • When a user responds to a meeting request, the VA asks if the user wants to add an annotation. If a user accepts a meeting request, the VA deletes it from the Inbox and moves it to the Calendar folder. If the user chooses to forward a meeting request, the VA requests the name of the contact to whom the user is forwarding it.
  • A user can ask the VA to find free time in his or her schedule using the following commands:
  • Find free time (the VA will then ask the user to specify the date)
  • Find free time today
  • Find free time tomorrow
  • To add an appointment to a user's schedule, say, “Schedule an appointment.” (The user can also specify “Today” or “Tomorrow” in the command; for example, “Schedule an appointment tomorrow.”) The VA then asks the user to specify the following the duration of the appointment, date (if not specified in the original command), starting time and subject. The VA automatically checks free time when a user schedules an appointment.
  • The VA can remind a user of his or her appointments, by either telephone or pager or both. When notifying the user of a reminder by telephone, the VA plays a “whisper” tone. This tone is different from the “whisper” tone for an incoming call. The VA does not actually deliver the reminder until the user either completes or cancels the current function. When a user schedules an appointment, the VA uses the default reminder time specified for the Microsoft Outlook Calendar. In order for the VA to deliver reminders, the user should first set the correct notification options in the Microsoft Outlook VA user preferences. The option that controls reminder notification is notify me on reminders via on the VA Preferences Phone/Pager tab.
  • A user can delete an appointment by saying, “Delete this appointment” while the VA is describing or reading it.
  • A user can use the VA to deliver a wake-up call by creating an appointment with a reminder for the time the user wants to be awakened. To deliver wake-up calls the user should ensure that telephone reminders are enabled in the Microsoft Outlook user preferences.
  • A user can use the following commands to request the date and time:
  • What day is it?
  • What time is it?
  • If a user travels to a different time zone, the user can cause the VA adjust the time for emails, appointments, and tasks accordingly. To change time zone, say, “Change my time zone.” The VA asks for the current local time, which it uses to compute the new time zone.
  • Managing Tasks
  • A user can use the VA to manage task information stored in the Outlook Tasks folder. A user can do any of the following with the VA:
  • Request a task summary
  • Browse tasks
  • List tasks
  • Read tasks
  • Get more detail about a task
  • Create a task
  • Set reminders
  • Respond to a task request
  • Delete a task
  • Mark a task as complete
  • A user can receive task requests that other people send (task requests are treated as incoming messages by the VA). However, a user cannot use the VA to generate and send task requests.
  • A user can request a summary of tasks by saying, “What are my tasks?” The VA responds by telling the user how many tasks the user has that are due today, overdue, due in the future or have no due date.
  • A user can browse tasks by saying, “Browse my tasks.” The VA responds by reading the subject and due date for each task, beginning with the first task.
  • A user can request a list of all tasks by saying, “List my tasks.” The VA responds by telling the user how many tasks the user has, then reading the subject and due date for each task.
  • A user can filter the task list by any of the following:
  • Type of Filter Example
    Category (future, due today, due tomorrow, List my tasks due today
    overdue, no due date)
    First or last List my first task
    Next or previous List my next task
    A combination of the other filters List my first task due today
  • A user can request that the VA read all tasks by saying, “Read my tasks.” The VA tells the user how many tasks the user has, then reads the subject, date, whether a reminder has been set, and, if so, the reminder date and time, and the body, for each task.
  • A user can filter the tasks to be read by the same criteria as a task list:
  • Type of Filter Example
    Category (future, due today, due Read my tasks due today
    tomorrow, overdue, no due date)
    First or last Read my first task
    Next or previous Read my next task
    A combination of the other filters Read my first task due today
  • If a user needs more detailed information about a task than the VA provides by reading, the user can say, “Get more detail,” and the VA responds by providing the information regarding subject, due date, person who assigned the task, whether a reminder has been set, start date, status, priority, and percent complete.
  • To create a new task, the user should say, “Create a task.” The VA then asks the user to specify the task subject (description), due date, and whether the user wants a reminder.
  • A user can set a reminder so that the VA will remind the user of a task. A user can choose to be reminded either by telephone or by pager. The VA plays a “whisper” tone to notify the user of a reminder. This tone is different from the “whisper” tone for an incoming call. The VA does not actually deliver the reminder until the user either completes or cancels the current function. In order for the VA to deliver reminders, a user should first set the correct options in the Microsoft Outlook user preferences. The option that controls reminders is Notify me on reminders via on the VA Preferences Phone/Pager tab.
  • A user can respond to a task request by saying, “Reply” while the VA is listing or reading it. The VA then lists the following options: Reply or Forward.
  • When a user responds to a task request, the VA asks if the user wants to add an annotation. If a user chooses to forward a task request, the VA requests the name of the contact to whom the user is forwarding the task.
  • To delete a task, the user should say, “Delete this task.” The task that user deletes should be the current task (that is, the task that the VA is listing or reading. The VA responds with “Deleting task . . . done.” When a user attempts to delete a task request, the VA asks if the user wants to send a rejection message to the sender.
  • To mark a task as complete, the user should say, “Mark it as complete” while the VA is listing or reading the task. The VA responds with “Done. Task marked as complete.”
  • Using the Telephone Keypad to Issue Commands
  • As an alternative to voice commands, the VA allows a user to use the telephone keypad to issue commands. To use this feature, the user should press a predetermined key, such as the star key (*), to enable a choice prompt mode. When the choice prompt mode is enabled, the VA prompts the user with the available choices. A user can then use the keypad to select the desired choice.
  • If conditions are favorable for speech recognition, for example, the user is in a quiet car, the user may elect to interact with the virtual assistant by speech. If, however, conditions are not favorable for accurate speech recognition, for example, there is background noise or signal quality on a wireless handset is low, the user may elect to enter a choice prompt mode, as described above. As mentioned above, the user could selectively enter choice prompt mode by pressing a predetermined key, such as the star key, on a telephone keypad.
  • A choice prompt is a prompt, that is, output, from the virtual assistant that prompts the user to indicate a choice or take some specific action. As shown in FIG. 37, the choice prompt is divided into active segments, which correspond to the choices that are selectable by the user. User input during a particular active segment indicates that the user desires to select the choice being provided during the active segment of the choice prompt. For example, as illustrated in FIG. 37, the choice prompts could be, “Would you like to send your message (prompt 1) 440, review your message (prompt 2) 442, or discard your message (prompt 3) 444?” The corresponding active segments are 450, 452 and 454, respectively. The user can depress a predetermined key on the telephone keypad, or speak a predetermined utterance, during the active segment that corresponds to the desired choice. Thus, by pressing the star key, or saying “Yes,” while prompt 1 440 is being spoken would signify the user has selected “send the message.” Similarly, by pressing the star key, or saying “Yes,” while prompt 2 442 is being spoken would signify the user has selected “review the message.” Finally, by pressing the star key, or saying “Yes,” while prompt 3 444 is being spoken would signify the user has selected “discard the message.” It should be noted that saying “Yes” or pressing the star key would have no selective effect outside of the active window of the choice prompt stream.
  • Once in choice prompt mode, the virtual assistant could be configured to accept only DTMF input. In other words, voice input would not be possible because the speech recognition engine would not interpret spoken utterances. Similarly, the ability of a user to “barge in” would be disabled. Thus, no sounds, whether spoken or extraneous background noises, would interrupt the virtual assistant. The only acceptable input would be the predetermined DTMF.
  • Alternatively, a user could select to enter a choice prompt mode where only specific voice commands, such as “yes” and “no” would be interpreted by the speech recognition engine. The user could selectively exit choice prompt mode by pressing the star key again.
  • Alternatively, the virtual assistant could be configured to permit the user to exit the voice interface and enter the choice prompt mode to complete a specific task. Then, once the specific task is complete, the user would automatically exit the choice prompt mode and re-enter the voice use interface for further interaction with the virtual assistant by speech.
  • In an alternative embodiment, the default option is the first option recited by the VA. If the user knows that its intends to choose the default option, the user can press the star key twice (**), which enables the Star mode and chooses the default option in one step.
  • A user can use a combination of voice and keypad commands to perform a task.
  • The above description of the preferred embodiments detail many ways in which the present invention can provide its intended purposes. Programmers skilled in the art are able to produce workable computer programs to practice the teachings set forth above. While several preferred embodiments are described in detail hereinabove, it is apparent that various changes might be made without departing from the scope of the invention, which is set forth in the accompanying claims.

Claims (24)

1. A computer-based virtual assistant comprising:
a virtual assistant server running at least one virtual assistant application capable of receiving human voice communications from a user of a remote user interface and transmitting vocalizations to the remote user interface;
at least two speech recognition servers, each of said at least two speech recognition servers running a speech recognition engine adapted to receive speech input and return text output based on the speech input; and
a speech recognition server load balancer receiving speech recognition requests from the virtual assistant application and sending the speech recognition requests from the virtual assistant application to an available one of the at least two speech recognition servers.
2. The computer-based virtual assistant of claim 1 wherein said speech recognition server load balancer provides the speech recognition requests from the virtual assistant server to the first available one of the at least two speech recognition servers.
3. The computer-based virtual assistant of claim 1 including a compilation server for compiling dynamic grammars.
4. The computer-based virtual assistant of claim 1 including a license manager server dispensing licenses to requesting components.
5. The computer-based virtual assistant of claim 1 wherein the virtual assistant application enables the user to send voice mail messages.
6. The computer-based virtual assistant of claim 1, wherein the virtual assistant application enables the user to reply to and forward email messages.
7. The computer-based virtual assistant according to claim 1, wherein the virtual assistant application enables the user to access scheduling data of the user.
8. The computer-based virtual assistant according to claim 1, wherein the virtual assistant application is configured to inform the user via a pager when a new voice or email message arrives.
9. The computer-based virtual assistant according to claim 1, wherein the virtual assistant application is configured to filter incoming voice mail and email as instructed by the user.
10. The computer-based virtual assistant according to claim 1, wherein the virtual assistant application is configured to enable the user to send and receive voice mail messages, to reply to and forward email messages and to access scheduling data of the user.
11. The computer-based virtual assistant according to claim 1, further comprising:
a communications interface to communicate over a network, the network being one of a public switched telephone network, a packet switched telephone network, and a wireless telecommunications network.
12. A method comprising:
providing a virtual assistant server running at least one virtual assistant application capable of receiving human voice communications from a remote user interface and transmitting vocalizations to the remote user interface;
providing at least two speech recognition servers, each of said at least two speech recognition servers running a speech recognition engine adapted to receive speech input and return text output based on the speech input;
receiving a speech recognition request from the virtual assistant application; and
performing load balancing among the at least two speech recognition servers to provide the speech recognition request to an available one of the speech recognition servers.
13. The method of claim 12 wherein said performing load balancing comprises performing load balancing among the at least two speech recognition servers to provide the speech recognition request to the first available one of the speech recognition servers.
14. The method according to claim 12, further comprising:
receiving voice mail messages via the virtual assistant application.
15. The method according to claim 12 further comprising:
replying to and forwarding email messages via the virtual assistant application.
16. The method according to claim 15 further comprising:
accessing scheduling data of the user via the virtual assistant application.
17. The method according to claim 16, wherein the transmitting step occurs over a network, selected from the group consisting of a public switched telephone network, a packet switched telephone network, and a wireless telecommunications network.
18. The method of claim 12 including compiling dynamic grammars.
19. The method of claim 12 including dispensing licenses to requesting components of the at least two speech recognition servers.
20. The method of claim 12 including:
receiving voice mail messages via the virtual assistant application;
replying to and forwarding email messages via the virtual assistant application; and
accessing scheduling data of the user via the virtual assistant application.
21. A computer-based virtual assistant comprising:
a virtual assistant server running at least one virtual assistant application capable of receiving human voice communications from a remote user interface and transmitting vocalizations to the remote user interface;
at least one speech recognition server running a speech recognition engine adapted to receive speech input and return text output based on the speech input; and
a compilation server for compiling dynamic grammars.
22. The computer-based virtual assistant of claim 21 wherein said at least one speech recognition server comprises first and second speech recognition servers and including a speech recognition server load balancer receiving speech recognition requests from the virtual assistant and sending the speech recognition requests from the virtual assistant server to an available one of the at least two speech recognition servers.
23. The computer-based virtual assistant of claim 21 wherein said speech recognition server load balancer provides the speech recognition requests from the virtual assistant server to the first available one of the at least two speech recognition servers.
24. The computer-based virtual assistant of claim 21 including a license manager server dispensing licenses to requesting components of the at least one speech recognition server.
US12/235,840 2000-03-06 2008-09-23 Personal Virtual Assistant Abandoned US20090018834A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/235,840 US20090018834A1 (en) 2000-03-06 2008-09-23 Personal Virtual Assistant

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/519,075 US6757362B1 (en) 2000-03-06 2000-03-06 Personal virtual assistant
US10/837,605 US7415100B2 (en) 2000-03-06 2004-05-04 Personal virtual assistant
US12/053,229 US8000453B2 (en) 2000-03-06 2008-03-21 Personal virtual assistant
US12/235,840 US20090018834A1 (en) 2000-03-06 2008-09-23 Personal Virtual Assistant

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/053,229 Continuation US8000453B2 (en) 2000-03-06 2008-03-21 Personal virtual assistant

Publications (1)

Publication Number Publication Date
US20090018834A1 true US20090018834A1 (en) 2009-01-15

Family

ID=32508226

Family Applications (6)

Application Number Title Priority Date Filing Date
US09/519,075 Expired - Lifetime US6757362B1 (en) 2000-03-06 2000-03-06 Personal virtual assistant
US10/837,605 Expired - Lifetime US7415100B2 (en) 2000-03-06 2004-05-04 Personal virtual assistant
US12/053,229 Expired - Fee Related US8000453B2 (en) 2000-03-06 2008-03-21 Personal virtual assistant
US12/235,850 Expired - Fee Related US7920678B2 (en) 2000-03-06 2008-09-23 Personal virtual assistant
US12/235,840 Abandoned US20090018834A1 (en) 2000-03-06 2008-09-23 Personal Virtual Assistant
US12/235,860 Abandoned US20090018839A1 (en) 2000-03-06 2008-09-23 Personal Virtual Assistant

Family Applications Before (4)

Application Number Title Priority Date Filing Date
US09/519,075 Expired - Lifetime US6757362B1 (en) 2000-03-06 2000-03-06 Personal virtual assistant
US10/837,605 Expired - Lifetime US7415100B2 (en) 2000-03-06 2004-05-04 Personal virtual assistant
US12/053,229 Expired - Fee Related US8000453B2 (en) 2000-03-06 2008-03-21 Personal virtual assistant
US12/235,850 Expired - Fee Related US7920678B2 (en) 2000-03-06 2008-09-23 Personal virtual assistant

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/235,860 Abandoned US20090018839A1 (en) 2000-03-06 2008-09-23 Personal Virtual Assistant

Country Status (1)

Country Link
US (6) US6757362B1 (en)

Cited By (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050188320A1 (en) * 2004-02-24 2005-08-25 Bocking Andrew D. Method and system for managing unread electronic messages
US20080082329A1 (en) * 2006-09-29 2008-04-03 Joseph Watson Multi-pass speech analytics
US20130031562A1 (en) * 2011-07-27 2013-01-31 Salesforce.Com, Inc. Mechanism for facilitating dynamic load balancing at application servers in an on-demand services environment
US20130275875A1 (en) * 2010-01-18 2013-10-17 Apple Inc. Automatically Adapting User Interfaces for Hands-Free Interaction
US20140201629A1 (en) * 2013-01-17 2014-07-17 Microsoft Corporation Collaborative learning through user generated knowledge
US20140245140A1 (en) * 2013-02-22 2014-08-28 Next It Corporation Virtual Assistant Transfer between Smart Devices
WO2015039105A1 (en) * 2013-09-16 2015-03-19 Persais, Llc System and method for distributed virtual assistant platforms
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
WO2016106250A1 (en) * 2014-12-23 2016-06-30 Ejenta, Inc. Intelligent personal agent platform and system and methods for using same
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US9633674B2 (en) 2013-06-07 2017-04-25 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9633660B2 (en) 2010-02-25 2017-04-25 Apple Inc. User profiling for voice input processing
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9672822B2 (en) 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9729592B2 (en) 2013-08-27 2017-08-08 Persais, Llc System and method for distributed virtual assistant platforms
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9798393B2 (en) 2011-08-29 2017-10-24 Apple Inc. Text correction processing
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9953088B2 (en) 2012-05-14 2018-04-24 Apple Inc. Crowd sourcing information to fulfill user requests
US9966068B2 (en) 2013-06-08 2018-05-08 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US10083690B2 (en) 2014-05-30 2018-09-25 Apple Inc. Better resolution when referencing to concepts
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10089072B2 (en) 2016-06-11 2018-10-02 Apple Inc. Intelligent device arbitration and control
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10169329B2 (en) 2014-05-30 2019-01-01 Apple Inc. Exemplar-based natural language processing
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10185542B2 (en) 2013-06-09 2019-01-22 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10311875B2 (en) 2016-12-22 2019-06-04 Soundhound, Inc. Full-duplex utterance processing in a natural language virtual assistant
US10318871B2 (en) 2005-09-08 2019-06-11 Apple Inc. Method and apparatus for building an intelligent automated assistant
US10332518B2 (en) 2017-05-09 2019-06-25 Apple Inc. User interface for correcting recognition errors
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10403283B1 (en) 2018-06-01 2019-09-03 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US10496753B2 (en) * 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10684703B2 (en) 2018-06-01 2020-06-16 Apple Inc. Attention aware virtual assistant dismissal
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10699717B2 (en) 2014-05-30 2020-06-30 Apple Inc. Intelligent assistant for home automation
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10714117B2 (en) 2013-02-07 2020-07-14 Apple Inc. Voice trigger for a digital assistant
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10748546B2 (en) 2017-05-16 2020-08-18 Apple Inc. Digital assistant services based on device capabilities
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10789945B2 (en) 2017-05-12 2020-09-29 Apple Inc. Low-latency intelligent automated assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11010127B2 (en) 2015-06-29 2021-05-18 Apple Inc. Virtual assistant for media playback
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11023513B2 (en) 2007-12-20 2021-06-01 Apple Inc. Method and apparatus for searching using an active ontology
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11069336B2 (en) 2012-03-02 2021-07-20 Apple Inc. Systems and methods for name pronunciation
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11217251B2 (en) 2019-05-06 2022-01-04 Apple Inc. Spoken notifications
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US11231904B2 (en) 2015-03-06 2022-01-25 Apple Inc. Reducing response latency of intelligent automated assistants
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut suggestions
US11269678B2 (en) 2012-05-15 2022-03-08 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11314370B2 (en) 2013-12-06 2022-04-26 Apple Inc. Method for extracting salient dialog usage from live data
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11468282B2 (en) 2015-05-15 2022-10-11 Apple Inc. Virtual assistant in a communication session
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11495218B2 (en) 2018-06-01 2022-11-08 Apple Inc. Virtual assistant operation in multi-device environments
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11928604B2 (en) 2019-04-09 2024-03-12 Apple Inc. Method and apparatus for building an intelligent automated assistant

Families Citing this family (573)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US8321411B2 (en) 1999-03-23 2012-11-27 Microstrategy, Incorporated System and method for management of an automatic OLAP report broadcast system
US8607138B2 (en) 1999-05-28 2013-12-10 Microstrategy, Incorporated System and method for OLAP report generation with spreadsheet report within the network user interface
US9208213B2 (en) 1999-05-28 2015-12-08 Microstrategy, Incorporated System and method for network user interface OLAP report formatting
AU6630800A (en) 1999-08-13 2001-03-13 Pixo, Inc. Methods and apparatuses for display and traversing of links in page character array
US6873693B1 (en) * 1999-09-13 2005-03-29 Microstrategy, Incorporated System and method for real-time, personalized, dynamic, interactive voice services for entertainment-related information
US8130918B1 (en) 1999-09-13 2012-03-06 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with closed loop transaction processing
US7941481B1 (en) 1999-10-22 2011-05-10 Tellme Networks, Inc. Updating an electronic phonebook over electronic communication networks
US8024415B2 (en) * 2001-03-16 2011-09-20 Microsoft Corporation Priorities generation and management
US6847924B1 (en) * 2000-06-19 2005-01-25 Ncr Corporation Method and system for aggregating data distribution models
US7634528B2 (en) * 2000-03-16 2009-12-15 Microsoft Corporation Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services
US7743340B2 (en) * 2000-03-16 2010-06-22 Microsoft Corporation Positioning and rendering notification heralds based on user's focus of attention and activity
US20020087649A1 (en) * 2000-03-16 2002-07-04 Horvitz Eric J. Bounded-deferral policies for reducing the disruptiveness of notifications
US7143039B1 (en) * 2000-08-11 2006-11-28 Tellme Networks, Inc. Providing menu and other services for an information processing system using a telephone or other audio interface
CA2425844A1 (en) * 2000-10-16 2002-04-25 Eliza Corporation Method of and system for providing adaptive respondent training in a speech recognition application
US7844666B2 (en) * 2000-12-12 2010-11-30 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system
US20050065779A1 (en) * 2001-03-29 2005-03-24 Gilad Odinak Comprehensive multiple feature telematics system
US7480638B1 (en) * 2001-04-03 2009-01-20 Ebay Inc. Method and system automatically to remind parties to a network-based transaction to comply with obligations established under a transaction agreement
CA2441195C (en) * 2001-04-19 2008-08-26 British Telecommunications Public Limited Company Voice response system
US20020178226A1 (en) * 2001-05-24 2002-11-28 Anderson Andrew V. Method and apparatus for message escalation by digital assistants
US7444375B2 (en) * 2001-06-19 2008-10-28 Visto Corporation Interactive voice and text message system
US7609829B2 (en) * 2001-07-03 2009-10-27 Apptera, Inc. Multi-platform capable inference engine and universal grammar language adapter for intelligent voice application execution
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
US20030009341A1 (en) * 2001-07-05 2003-01-09 Tien-Yao Cheng Humanistic devices and methods for same
US20030014254A1 (en) * 2001-07-11 2003-01-16 You Zhang Load-shared distribution of a speech system
US7216114B2 (en) * 2001-08-09 2007-05-08 International Business Machines Corporation Transfer of mail folders between e-mail users
US8713107B2 (en) * 2001-09-06 2014-04-29 J. Albert Avila Method and system for remote delivery of email
ITFI20010199A1 (en) 2001-10-22 2003-04-22 Riccardo Vieri SYSTEM AND METHOD TO TRANSFORM TEXTUAL COMMUNICATIONS INTO VOICE AND SEND THEM WITH AN INTERNET CONNECTION TO ANY TELEPHONE SYSTEM
US7167917B2 (en) * 2002-01-03 2007-01-23 International Business Machines Corporation Visual tool for developing service components for use in advanced intelligent networks
US7305700B2 (en) 2002-01-08 2007-12-04 Seven Networks, Inc. Secure transport for mobile communication network
US20030167167A1 (en) * 2002-02-26 2003-09-04 Li Gong Intelligent personal assistants
US20030163311A1 (en) * 2002-02-26 2003-08-28 Li Gong Intelligent social agents
US8693377B1 (en) * 2002-03-08 2014-04-08 Robert Joseph Hazy User driven voice interaction
US7336779B2 (en) * 2002-03-15 2008-02-26 Avaya Technology Corp. Topical dynamic chat
US20050149331A1 (en) * 2002-06-14 2005-07-07 Ehrilich Steven C. Method and system for developing speech applications
DE10240584A1 (en) * 2002-08-28 2004-03-11 Pilz Gmbh & Co. Safety control system for fault protected operation of critical process such as occurs in machine system operation
US20040122721A1 (en) * 2002-12-18 2004-06-24 Lasorsa Peter M. Calendar travel time module
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US7793233B1 (en) 2003-03-12 2010-09-07 Microsoft Corporation System and method for customizing note flags
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7627552B2 (en) 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7421438B2 (en) 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7240292B2 (en) * 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7769794B2 (en) 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7188316B2 (en) * 2003-03-24 2007-03-06 Microsoft Corporation System and method for viewing and editing multi-value properties
US7890960B2 (en) 2003-03-26 2011-02-15 Microsoft Corporation Extensible user context system for delivery of notifications
US7827561B2 (en) 2003-03-26 2010-11-02 Microsoft Corporation System and method for public consumption of communication events between arbitrary processes
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US7536386B2 (en) * 2003-03-27 2009-05-19 Microsoft Corporation System and method for sharing items in a computer system
US7457879B2 (en) * 2003-04-01 2008-11-25 Microsoft Corporation Notification platform architecture
US7412392B1 (en) * 2003-04-14 2008-08-12 Sprint Communications Company L.P. Conference multi-tasking system and method
US7669134B1 (en) 2003-05-02 2010-02-23 Apple Inc. Method and apparatus for displaying information during an instant messaging session
US7974990B2 (en) * 2003-07-16 2011-07-05 Hewlett-Packard Development Company, L.P. Managing program applications
US7313528B1 (en) * 2003-07-31 2007-12-25 Sprint Communications Company L.P. Distributed network based message processing system for text-to-speech streaming data
US7881934B2 (en) * 2003-09-12 2011-02-01 Toyota Infotechnology Center Co., Ltd. Method and system for adjusting the voice prompt of an interactive system based upon the user's state
US8094804B2 (en) 2003-09-26 2012-01-10 Avaya Inc. Method and apparatus for assessing the status of work waiting for service
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7181463B2 (en) 2003-10-24 2007-02-20 Microsoft Corporation System and method for managing data using static lists
US7697673B2 (en) * 2003-11-17 2010-04-13 Apptera Inc. System for advertisement selection, placement and delivery within a multiple-tenant voice interaction service system
ES2767875T3 (en) 2003-12-01 2020-06-18 Blackberry Ltd Method to provide notifications of new events on a small screen device
US20050138642A1 (en) * 2003-12-18 2005-06-23 International Business Machines Corporation Event correlation system and method for monitoring resources
JP2005190338A (en) * 2003-12-26 2005-07-14 Toshiba Corp Device and method for information extraction
US7774834B1 (en) * 2004-02-18 2010-08-10 Citrix Systems, Inc. Rule generalization for web application entry point modeling
US7890996B1 (en) 2004-02-18 2011-02-15 Teros, Inc. Using statistical analysis to generate exception rules that allow legitimate messages to pass through application proxies and gateways
US8000989B1 (en) 2004-03-31 2011-08-16 Avaya Inc. Using true value in routing work items to resources
US7953859B1 (en) 2004-03-31 2011-05-31 Avaya Inc. Data model of participation in multi-channel and multi-party contacts
US7734032B1 (en) 2004-03-31 2010-06-08 Avaya Inc. Contact center and method for tracking and acting on one and done customer contacts
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US20050240878A1 (en) * 2004-04-26 2005-10-27 Microsoft Corporation System and method for scaling icons
US7992103B2 (en) 2004-04-26 2011-08-02 Microsoft Corporation Scaling icons for representing files
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US9462122B1 (en) 2004-06-07 2016-10-04 Aol Inc. Selective call routing and blocking
US7760707B1 (en) 2004-06-07 2010-07-20 Aol Inc. Voice over internet protocol application development framework
US8245190B2 (en) * 2004-06-14 2012-08-14 Alcatel Lucent First and second manager components that communicate to initialize and/or shut down software components in an ordered sequence
US20050283368A1 (en) * 2004-06-22 2005-12-22 Leung Kam L System and method for automated personalized alerts using interactive voice response
US8738412B2 (en) 2004-07-13 2014-05-27 Avaya Inc. Method and apparatus for supporting individualized selection rules for resource allocation
US20060155750A1 (en) * 2004-08-12 2006-07-13 Fowler James F System to generate unpublished corporate data
US7797724B2 (en) 2004-08-31 2010-09-14 Citrix Systems, Inc. Methods and apparatus for secure online access on a client device
US7110949B2 (en) * 2004-09-13 2006-09-19 At&T Knowledge Ventures, L.P. System and method for analysis and adjustment of speech-enabled systems
US7949121B1 (en) 2004-09-27 2011-05-24 Avaya Inc. Method and apparatus for the simultaneous delivery of multiple contacts to an agent
US8234141B1 (en) 2004-09-27 2012-07-31 Avaya Inc. Dynamic work assignment strategies based on multiple aspects of agent proficiency
US20080154601A1 (en) * 2004-09-29 2008-06-26 Microsoft Corporation Method and system for providing menu and other services for an information processing system using a telephone or other audio interface
DK1794665T3 (en) * 2004-09-29 2008-07-14 Swisscom Ag Method and system for loading user instructions into a user-controlled telecommunications device
US7788589B2 (en) * 2004-09-30 2010-08-31 Microsoft Corporation Method and system for improved electronic task flagging and management
US20060085183A1 (en) * 2004-10-19 2006-04-20 Yogendra Jain System and method for increasing recognition accuracy and modifying the behavior of a device in response to the detection of different levels of speech
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (en) 2004-12-03 2006-06-30 Seven Networks Internat Oy E-mail service provisioning method for mobile terminal, involves using domain part and further parameters to generate new parameter set in list of setting parameter sets, if provisioning of e-mail service is successful
WO2006073081A1 (en) * 2005-01-05 2006-07-13 Nec Corporation Discriminative data learning system, learning device, discriminating device, and learning method
US8346871B2 (en) * 2005-01-07 2013-01-01 International Business Machines Corporation Maintaining message privacy on an exposed display device
US9917819B2 (en) * 2005-01-13 2018-03-13 International Business Machines Corporation System and method for providing a proxied contact management system
US20060189278A1 (en) * 2005-02-24 2006-08-24 Research In Motion Limited System and method for making an electronic handheld device more accessible to a disabled person
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US8490015B2 (en) * 2005-04-15 2013-07-16 Microsoft Corporation Task dialog and programming interface for same
US20060236253A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Dialog user interfaces for related tasks and programming interface for same
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US7796742B1 (en) 2005-04-21 2010-09-14 Seven Networks, Inc. Systems and methods for simplified provisioning
US8522154B2 (en) 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US20060253272A1 (en) * 2005-05-06 2006-11-09 International Business Machines Corporation Voice prompts for use in speech-to-speech translation system
US7809127B2 (en) 2005-05-26 2010-10-05 Avaya Inc. Method for discovering problem agent behaviors
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7552383B2 (en) 2005-06-23 2009-06-23 International Business Machines Corporation Method for efficiently processing comments to records in a database, while avoiding replication/save conflicts
US7538685B1 (en) * 2005-06-28 2009-05-26 Avaya Inc. Use of auditory feedback and audio queues in the realization of a personal virtual assistant
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
US8069166B2 (en) 2005-08-01 2011-11-29 Seven Networks, Inc. Managing user-to-user contact with inferred presence information
US7601904B2 (en) * 2005-08-03 2009-10-13 Richard Dreyfuss Interactive tool and appertaining method for creating a graphical music display
JP2007041988A (en) * 2005-08-05 2007-02-15 Sony Corp Information processing device, method and program
US7779042B1 (en) 2005-08-08 2010-08-17 Avaya Inc. Deferred control of surrogate key generation in a distributed processing architecture
US20070043687A1 (en) * 2005-08-19 2007-02-22 Accenture Llp Virtual assistant
US20070067387A1 (en) * 2005-09-19 2007-03-22 Cisco Technology, Inc. Conferencing system and method for temporary blocking / restoring of individual participants
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
US7822587B1 (en) 2005-10-03 2010-10-26 Avaya Inc. Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior
US7752230B2 (en) 2005-10-06 2010-07-06 Avaya Inc. Data extensibility using external database tables
US7787609B1 (en) 2005-10-06 2010-08-31 Avaya Inc. Prioritized service delivery based on presence and availability of interruptible enterprise resources with skills
US8849908B2 (en) * 2005-10-13 2014-09-30 Kaydon A. Stanzione Internet based data, voice and video alert notification communications system
US7890635B2 (en) * 2005-12-08 2011-02-15 International Business Machines Corporation Selective view synchronization for composite services delivery
US7818432B2 (en) * 2005-12-08 2010-10-19 International Business Machines Corporation Seamless reflection of model updates in a visual page for a visual channel in a composite services delivery system
US20070147355A1 (en) * 2005-12-08 2007-06-28 International Business Machines Corporation Composite services generation tool
US10332071B2 (en) * 2005-12-08 2019-06-25 International Business Machines Corporation Solution for adding context to a text exchange modality during interactions with a composite services application
US7809838B2 (en) * 2005-12-08 2010-10-05 International Business Machines Corporation Managing concurrent data updates in a composite services delivery system
US8189563B2 (en) * 2005-12-08 2012-05-29 International Business Machines Corporation View coordination for callers in a composite services enablement environment
US20070133773A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Composite services delivery
US20070133769A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Voice navigation of a visual view for a session in a composite services enablement environment
US7877486B2 (en) * 2005-12-08 2011-01-25 International Business Machines Corporation Auto-establishment of a voice channel of access to a session for a composite service from a visual channel of access to the session for the composite service
US20070136793A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Secure access to a common session in a composite services delivery environment
US20070136449A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Update notification for peer views in a composite services delivery environment
US8005934B2 (en) * 2005-12-08 2011-08-23 International Business Machines Corporation Channel presence in a composite services enablement environment
US8259923B2 (en) 2007-02-28 2012-09-04 International Business Machines Corporation Implementing a contact center using open standards and non-proprietary components
US11093898B2 (en) 2005-12-08 2021-08-17 International Business Machines Corporation Solution for adding context to a text exchange modality during interactions with a composite services application
US20070133512A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Composite services enablement of visual navigation into a call center
US20070133509A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Initiating voice access to a session from a visual access channel to the session in a composite services delivery system
US7827288B2 (en) * 2005-12-08 2010-11-02 International Business Machines Corporation Model autocompletion for composite services synchronization
US20070133511A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Composite services delivery utilizing lightweight messaging
US20070136421A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Synchronized view state for composite services delivery
US7792971B2 (en) * 2005-12-08 2010-09-07 International Business Machines Corporation Visual channel refresh rate control for composite services delivery
US20070132834A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Speech disambiguation in a composite services enablement environment
US20070156682A1 (en) * 2005-12-28 2007-07-05 Microsoft Corporation Personalized user specific files for object recognition
US20070156811A1 (en) * 2006-01-03 2007-07-05 Cisco Technology, Inc. System with user interface for sending / receiving messages during a conference session
US20070162505A1 (en) * 2006-01-10 2007-07-12 International Business Machines Corporation Method for using psychological states to index databases
WO2007085023A2 (en) * 2006-01-20 2007-07-26 Josef Berger Systems and methods for operating communication processes using a personalized communication web server
IL174107A0 (en) * 2006-02-01 2006-08-01 Grois Dan Method and system for advertising by means of a search engine over a data network
US8737173B2 (en) 2006-02-24 2014-05-27 Avaya Inc. Date and time dimensions for contact center reporting in arbitrary international time zones
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US20070239455A1 (en) * 2006-04-07 2007-10-11 Motorola, Inc. Method and system for managing pronunciation dictionaries in a speech application
US9021027B2 (en) * 2006-04-20 2015-04-28 Cisco Technology, Inc. Techniques for alerting a user of unchecked messages before communication with a contact
US7764951B2 (en) 2006-04-20 2010-07-27 Cisco Technology, Inc. Techniques for tracking communication frequency across communication modalities
US8150692B2 (en) 2006-05-18 2012-04-03 Nuance Communications, Inc. Method and apparatus for recognizing a user personality trait based on a number of compound words used by the user
US8718257B2 (en) * 2006-07-10 2014-05-06 Francesco Ricci Systems and methods for providing answering services
US20080037720A1 (en) * 2006-07-27 2008-02-14 Speechphone, Llc Voice Activated Communication Using Automatically Updated Address Books
TWM308453U (en) * 2006-08-04 2007-03-21 Dexin Corp Accommodating and positioning structure of mouse
US7936867B1 (en) 2006-08-15 2011-05-03 Avaya Inc. Multi-service request within a contact center
US8391463B1 (en) 2006-09-01 2013-03-05 Avaya Inc. Method and apparatus for identifying related contacts
US8938063B1 (en) 2006-09-07 2015-01-20 Avaya Inc. Contact center service monitoring and correcting
US8811597B1 (en) 2006-09-07 2014-08-19 Avaya Inc. Contact center performance prediction
US20080083037A1 (en) * 2006-10-03 2008-04-03 Rmcl, Inc. Data loss and theft protection method
US7899161B2 (en) 2006-10-11 2011-03-01 Cisco Technology, Inc. Voicemail messaging with dynamic content
US8073681B2 (en) 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US20080096533A1 (en) * 2006-10-24 2008-04-24 Kallideas Spa Virtual Assistant With Real-Time Emotions
US20080109517A1 (en) * 2006-11-08 2008-05-08 Cisco Technology, Inc. Scheduling a conference in situations where a particular invitee is unavailable
US8594305B2 (en) * 2006-12-22 2013-11-26 International Business Machines Corporation Enhancing contact centers with dialog contracts
US20080167876A1 (en) * 2007-01-04 2008-07-10 International Business Machines Corporation Methods and computer program products for providing paraphrasing in a text-to-speech system
US7818176B2 (en) 2007-02-06 2010-10-19 Voicebox Technologies, Inc. System and method for selecting and presenting advertisements based on natural language processing of voice-based input
US7720919B2 (en) * 2007-02-27 2010-05-18 Cisco Technology, Inc. Automatic restriction of reply emails
US9247056B2 (en) * 2007-02-28 2016-01-26 International Business Machines Corporation Identifying contact center agents based upon biometric characteristics of an agent's speech
US9055150B2 (en) * 2007-02-28 2015-06-09 International Business Machines Corporation Skills based routing in a standards based contact center using a presence server and expertise specific watchers
US7870277B2 (en) * 2007-03-12 2011-01-11 Citrix Systems, Inc. Systems and methods for using object oriented expressions to configure application security policies
US8631147B2 (en) 2007-03-12 2014-01-14 Citrix Systems, Inc. Systems and methods for configuring policy bank invocations
US7853678B2 (en) 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring flow control of policy expressions
US8490148B2 (en) 2007-03-12 2013-07-16 Citrix Systems, Inc Systems and methods for managing application security profiles
US7865589B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing structured policy expressions to represent unstructured data in a network appliance
US7853679B2 (en) * 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring handling of undefined policy events
US8219087B2 (en) 2007-03-21 2012-07-10 Cellco Partnership Method, apparatus, computer program product and system for providing dynamic assignment of session capabilities
US8131556B2 (en) 2007-04-03 2012-03-06 Microsoft Corporation Communications using different modalities
US8983051B2 (en) * 2007-04-03 2015-03-17 William F. Barton Outgoing call classification and disposition
US20080247529A1 (en) * 2007-04-03 2008-10-09 Microsoft Corporation Incoming Call Classification And Disposition
US8255335B1 (en) 2007-04-11 2012-08-28 United Services Automobile Association (Usaa) System and method to establish a PIN
IL182518A0 (en) * 2007-04-12 2007-09-20 Grois Dan Pay per relevance (ppr) advertising method and system
US9703520B1 (en) 2007-05-17 2017-07-11 Avaya Inc. Negotiation of a future communication by use of a personal virtual assistant (PVA)
US20080298561A1 (en) * 2007-05-29 2008-12-04 Color City Enterprise Co., Ltd. Web-call method
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
ITFI20070177A1 (en) 2007-07-26 2009-01-27 Riccardo Vieri SYSTEM FOR THE CREATION AND SETTING OF AN ADVERTISING CAMPAIGN DERIVING FROM THE INSERTION OF ADVERTISING MESSAGES WITHIN AN EXCHANGE OF MESSAGES AND METHOD FOR ITS FUNCTIONING.
US8504534B1 (en) 2007-09-26 2013-08-06 Avaya Inc. Database structures and administration techniques for generalized localization of database items
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
WO2009045298A1 (en) * 2007-10-03 2009-04-09 Virtela Communications, Inc. Pandemic remote access design
US8595642B1 (en) 2007-10-04 2013-11-26 Great Northern Research, LLC Multiple shell multi faceted graphical user interface
US8165886B1 (en) 2007-10-04 2012-04-24 Great Northern Research LLC Speech interface system and method for control and interaction with applications on a computing system
US8364694B2 (en) 2007-10-26 2013-01-29 Apple Inc. Search assistant for digital media assets
US8620662B2 (en) 2007-11-20 2013-12-31 Apple Inc. Context-aware unit selection
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8140335B2 (en) 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8327272B2 (en) 2008-01-06 2012-12-04 Apple Inc. Portable multifunction device, method, and graphical user interface for viewing and managing electronic calendars
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US10176827B2 (en) 2008-01-15 2019-01-08 Verint Americas Inc. Active lab
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US8856182B2 (en) 2008-01-25 2014-10-07 Avaya Inc. Report database dependency tracing through business intelligence metadata
US8169436B2 (en) 2008-01-27 2012-05-01 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US20090209341A1 (en) * 2008-02-14 2009-08-20 Aruze Gaming America, Inc. Gaming Apparatus Capable of Conversation with Player and Control Method Thereof
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8239189B2 (en) * 2008-02-26 2012-08-07 Siemens Enterprise Communications Gmbh & Co. Kg Method and system for estimating a sentiment for an entity
US8289283B2 (en) 2008-03-04 2012-10-16 Apple Inc. Language input interface on a device
US8448177B1 (en) * 2008-04-10 2013-05-21 United Services Automobile Association (Usaa) Task prioritization based on users' interest
JP2009265279A (en) * 2008-04-23 2009-11-12 Sony Ericsson Mobilecommunications Japan Inc Voice synthesizer, voice synthetic method, voice synthetic program, personal digital assistant, and voice synthetic system
CA2665055C (en) * 2008-05-23 2018-03-06 Accenture Global Services Gmbh Treatment processing of a plurality of streaming voice signals for determination of responsive action thereto
CA2665009C (en) * 2008-05-23 2018-11-27 Accenture Global Services Gmbh System for handling a plurality of streaming voice signals for determination of responsive action thereto
CA2665014C (en) * 2008-05-23 2020-05-26 Accenture Global Services Gmbh Recognition processing of a plurality of streaming voice signals for determination of responsive action thereto
US9305548B2 (en) 2008-05-27 2016-04-05 Voicebox Technologies Corporation System and method for an integrated, multi-modal, multi-device natural language voice services environment
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US20130070910A1 (en) * 2008-07-10 2013-03-21 Daniel O'Sullivan Advanced Adaptive Communications System (ACS)
US20130218565A1 (en) * 2008-07-28 2013-08-22 Nuance Communications, Inc. Enhanced Media Playback with Speech Recognition
US10033869B2 (en) 2008-08-29 2018-07-24 8X8, Inc. Methods and systems for information streaming to user interface
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US20100082328A1 (en) * 2008-09-29 2010-04-01 Apple Inc. Systems and methods for speech preprocessing in text to speech synthesis
US8352268B2 (en) 2008-09-29 2013-01-08 Apple Inc. Systems and methods for selective rate of speech and speech preferences for text to speech synthesis
US8583418B2 (en) 2008-09-29 2013-11-12 Apple Inc. Systems and methods of detecting language and natural language strings for text to speech synthesis
US8396714B2 (en) 2008-09-29 2013-03-12 Apple Inc. Systems and methods for concatenation of words in text to speech synthesis
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8352272B2 (en) 2008-09-29 2013-01-08 Apple Inc. Systems and methods for text to speech synthesis
US8355919B2 (en) 2008-09-29 2013-01-15 Apple Inc. Systems and methods for text normalization for text to speech synthesis
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8484028B2 (en) * 2008-10-24 2013-07-09 Fuji Xerox Co., Ltd. Systems and methods for document navigation with a text-to-speech engine
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US10489434B2 (en) 2008-12-12 2019-11-26 Verint Americas Inc. Leveraging concepts with information retrieval techniques and knowledge bases
US20100162121A1 (en) * 2008-12-22 2010-06-24 Nortel Networks Limited Dynamic customization of a virtual world
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US8326637B2 (en) 2009-02-20 2012-12-04 Voicebox Technologies, Inc. System and method for processing multi-modal device interactions in a natural language voice services environment
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US20100257462A1 (en) * 2009-04-01 2010-10-07 Avaya Inc Interpretation of gestures to provide visual queues
US8054964B2 (en) * 2009-04-30 2011-11-08 Avaya Inc. System and method for detecting emotions at different steps in a communication
US10540976B2 (en) * 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9111263B2 (en) * 2009-06-15 2015-08-18 Microsoft Technology Licensing, Llc Adaptive meeting management
US20110010179A1 (en) * 2009-07-13 2011-01-13 Naik Devang K Voice synthesis and processing
JP5482042B2 (en) * 2009-09-10 2014-04-23 富士通株式会社 Synthetic speech text input device and program
US8943094B2 (en) 2009-09-22 2015-01-27 Next It Corporation Apparatus, system, and method for natural language processing
US8565386B2 (en) 2009-09-29 2013-10-22 Avaya Inc. Automatic configuration of soft phones that are usable in conjunction with special-purpose endpoints
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US9516069B2 (en) 2009-11-17 2016-12-06 Avaya Inc. Packet headers as a trigger for automatic activation of special-purpose softphone applications
US8600743B2 (en) 2010-01-06 2013-12-03 Apple Inc. Noise profile determination for voice-related feature
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
CA2794542A1 (en) * 2010-02-02 2011-08-11 4D Retail Technology Corporation Systems and methods for human intelligence personal assistance
US8284917B2 (en) 2010-02-09 2012-10-09 Research In Motion Limited System and method for handling a meeting request
WO2011116190A1 (en) * 2010-03-18 2011-09-22 Jacob Munns Method and system for simultaneously managing a plurality of simulated real-time conversations
WO2011126889A2 (en) 2010-03-30 2011-10-13 Seven Networks, Inc. 3d mobile user interface with configurable workspace management
US8549413B2 (en) 2010-04-08 2013-10-01 International Business Machines Corporation Discriminating among resources to share
US9208147B1 (en) 2011-01-07 2015-12-08 Narrative Science Inc. Method and apparatus for triggering the automatic generation of narratives
US8639516B2 (en) 2010-06-04 2014-01-28 Apple Inc. User-specific noise suppression for voice quality improvements
US8386929B2 (en) 2010-06-22 2013-02-26 Microsoft Corporation Personal assistant for task utilization
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
EP2405365B1 (en) * 2010-07-09 2013-06-19 Sony Ericsson Mobile Communications AB Method and device for mnemonic contact image association
US9104670B2 (en) 2010-07-21 2015-08-11 Apple Inc. Customized search or acquisition of digital media assets
US9077630B2 (en) 2010-07-26 2015-07-07 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
EP3651028A1 (en) 2010-07-26 2020-05-13 Seven Networks, LLC Mobile network traffic coordination across multiple applications
US8886176B2 (en) 2010-07-26 2014-11-11 Seven Networks, Inc. Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
US9122744B2 (en) 2010-10-11 2015-09-01 Next It Corporation System and method for providing distributed intelligent assistance
US8204953B2 (en) 2010-11-01 2012-06-19 Seven Networks, Inc. Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012060997A2 (en) 2010-11-01 2012-05-10 Michael Luna Application and network-based long poll request detection and cacheability assessment therefor
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
CN103620576B (en) 2010-11-01 2016-11-09 七网络公司 It is applicable to the caching of mobile applications behavior and network condition
CA2798523C (en) 2010-11-22 2015-02-24 Seven Networks, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
GB2500327B (en) 2010-11-22 2019-11-06 Seven Networks Llc Optimization of resource polling intervals to satisfy mobile device requests
US9253304B2 (en) * 2010-12-07 2016-02-02 International Business Machines Corporation Voice communication management
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
GB2501416B (en) 2011-01-07 2018-03-21 Seven Networks Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9720899B1 (en) * 2011-01-07 2017-08-01 Narrative Science, Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US10185477B1 (en) 2013-03-15 2019-01-22 Narrative Science Inc. Method and system for configuring automatic generation of narratives from data
US9563906B2 (en) 2011-02-11 2017-02-07 4D Retail Technology Corp. System and method for virtual shopping display
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
US20120226500A1 (en) * 2011-03-02 2012-09-06 Sony Corporation System and method for content rendering including synthetic narration
JP5803169B2 (en) * 2011-03-14 2015-11-04 オムロンヘルスケア株式会社 Sleep evaluation apparatus and sleep evaluation method
US9760566B2 (en) 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
US9298287B2 (en) 2011-03-31 2016-03-29 Microsoft Technology Licensing, Llc Combined activation for natural user interface systems
US9858343B2 (en) 2011-03-31 2018-01-02 Microsoft Technology Licensing Llc Personalization of queries, conversations, and searches
US9244984B2 (en) 2011-03-31 2016-01-26 Microsoft Technology Licensing, Llc Location based conversational understanding
US10642934B2 (en) 2011-03-31 2020-05-05 Microsoft Technology Licensing, Llc Augmented conversational understanding architecture
US9842168B2 (en) * 2011-03-31 2017-12-12 Microsoft Technology Licensing, Llc Task driven user intents
WO2012145533A2 (en) 2011-04-19 2012-10-26 Seven Networks, Inc. Shared resource and virtual resource management in a networked environment
GB2496537B (en) 2011-04-27 2014-10-15 Seven Networks Inc System and method for making requests on behalf of a mobile device based on atmoic processes for mobile network traffic relief
EP2702500B1 (en) 2011-04-27 2017-07-19 Seven Networks, LLC Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US9454962B2 (en) 2011-05-12 2016-09-27 Microsoft Technology Licensing, Llc Sentence simplification for spoken language understanding
US8769110B2 (en) * 2011-05-27 2014-07-01 Sony Corporation Transferring RUI from one device to another
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
WO2013012107A1 (en) 2011-07-19 2013-01-24 엘지전자 주식회사 Electronic device and method for controlling same
EP2737742A4 (en) 2011-07-27 2015-01-28 Seven Networks Inc Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8798995B1 (en) 2011-09-23 2014-08-05 Amazon Technologies, Inc. Key word determinations from voice data
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
EP2575064A1 (en) * 2011-09-30 2013-04-03 General Electric Company Telecare and/or telehealth communication method and system
US9640175B2 (en) * 2011-10-07 2017-05-02 Microsoft Technology Licensing, Llc Pronunciation learning from user correction
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
US8959082B2 (en) 2011-10-31 2015-02-17 Elwha Llc Context-sensitive query enrichment
US8766805B2 (en) 2011-11-28 2014-07-01 Motorola Mobility Llc Smart adaptive device for alerting user of scheduled tasks prior to falling asleep
WO2013086214A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A system of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
WO2013086455A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
EP2792188B1 (en) 2011-12-14 2019-03-20 Seven Networks, LLC Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
WO2013090821A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9019106B2 (en) 2011-12-15 2015-04-28 Google Technology Holdings LLC Adaptive wearable device for controlling an alarm based on user sleep state
US9836177B2 (en) 2011-12-30 2017-12-05 Next IT Innovation Labs, LLC Providing variable responses in a virtual-assistant environment
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US9275633B2 (en) * 2012-01-09 2016-03-01 Microsoft Technology Licensing, Llc Crowd-sourcing pronunciation corrections in text-to-speech engines
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
WO2013155208A1 (en) 2012-04-10 2013-10-17 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US9223537B2 (en) 2012-04-18 2015-12-29 Next It Corporation Conversation user interface
US20130282844A1 (en) 2012-04-23 2013-10-24 Contact Solutions LLC Apparatus and methods for multi-mode asynchronous communication
US9635067B2 (en) 2012-04-23 2017-04-25 Verint Americas Inc. Tracing and asynchronous communication network and routing method
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US11023520B1 (en) * 2012-06-01 2021-06-01 Google Llc Background audio identification for query disambiguation
WO2013185109A2 (en) 2012-06-08 2013-12-12 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US9536528B2 (en) 2012-07-03 2017-01-03 Google Inc. Determining hotword suitability
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9713675B2 (en) 2012-07-17 2017-07-25 Elwha Llc Unmanned device interaction methods and systems
US9044543B2 (en) 2012-07-17 2015-06-02 Elwha Llc Unmanned device utilization methods and systems
CN104704797B (en) 2012-08-10 2018-08-10 纽昂斯通讯公司 Virtual protocol communication for electronic equipment
US20140088971A1 (en) * 2012-08-20 2014-03-27 Michael D. Metcalf System And Method For Voice Operated Communication Assistance
US9384736B2 (en) * 2012-08-21 2016-07-05 Nuance Communications, Inc. Method to provide incremental UI response based on multiple asynchronous evidence about user input
US9536049B2 (en) 2012-09-07 2017-01-03 Next It Corporation Conversational virtual healthcare assistant
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
JP5999839B2 (en) * 2012-09-10 2016-09-28 ルネサスエレクトロニクス株式会社 Voice guidance system and electronic equipment
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
RU2530268C2 (en) * 2012-11-28 2014-10-10 Общество с ограниченной ответственностью "Спиктуит" Method for user training of information dialogue system
US9723118B2 (en) * 2012-12-06 2017-08-01 Blackberry Limited Method of identifying contacts for initiating a communication using speech recognition
KR102211595B1 (en) * 2012-12-07 2021-02-04 삼성전자주식회사 Speech recognition apparatus and control method thereof
US9276802B2 (en) 2012-12-11 2016-03-01 Nuance Communications, Inc. Systems and methods for sharing information between virtual agents
US9659298B2 (en) 2012-12-11 2017-05-23 Nuance Communications, Inc. Systems and methods for informing virtual agent recommendation
US9148394B2 (en) 2012-12-11 2015-09-29 Nuance Communications, Inc. Systems and methods for user interface presentation of virtual agent
US9560089B2 (en) 2012-12-11 2017-01-31 Nuance Communications, Inc. Systems and methods for providing input to virtual agent
US9679300B2 (en) 2012-12-11 2017-06-13 Nuance Communications, Inc. Systems and methods for virtual agent recommendation for multiple persons
US9262175B2 (en) * 2012-12-11 2016-02-16 Nuance Communications, Inc. Systems and methods for storing record of virtual agent interaction
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
KR20140089871A (en) * 2013-01-07 2014-07-16 삼성전자주식회사 Interactive server, control method thereof and interactive system
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9473631B2 (en) * 2013-01-29 2016-10-18 Nvideon, Inc. Outward calling method for public telephone networks
US9865266B2 (en) * 2013-02-25 2018-01-09 Nuance Communications, Inc. Method and apparatus for automated speaker parameters adaptation in a deployed speaker verification system
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9368114B2 (en) * 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US11151899B2 (en) 2013-03-15 2021-10-19 Apple Inc. User training by intelligent digital assistant
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
CN105144133B (en) 2013-03-15 2020-11-20 苹果公司 Context-sensitive handling of interrupts
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10445115B2 (en) 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
GB2520226A (en) * 2013-05-28 2015-05-20 Ibm Differentiation of messages for receivers thereof
CN105265005B (en) 2013-06-13 2019-09-17 苹果公司 System and method for the urgent call initiated by voice command
US9704476B1 (en) * 2013-06-27 2017-07-11 Amazon Technologies, Inc. Adjustable TTS devices
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
CN105453026A (en) 2013-08-06 2016-03-30 苹果公司 Auto-activating smart responses based on activities from remote devices
US10212207B2 (en) * 2013-08-21 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for accessing devices and services
WO2015031486A1 (en) * 2013-08-27 2015-03-05 Persais, Llc System and method for virtual assistants with shared capabilities and agent store
US20150088765A1 (en) * 2013-09-24 2015-03-26 Oracle International Corporation Session memory for virtual assistant dialog management
US10134395B2 (en) * 2013-09-25 2018-11-20 Amazon Technologies, Inc. In-call virtual assistants
US9584565B1 (en) 2013-10-08 2017-02-28 Google Inc. Methods for generating notifications in a shared workspace
US9189742B2 (en) 2013-11-20 2015-11-17 Justin London Adaptive virtual intelligent agent
US9571645B2 (en) 2013-12-16 2017-02-14 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US10534623B2 (en) 2013-12-16 2020-01-14 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9479931B2 (en) 2013-12-16 2016-10-25 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9804820B2 (en) 2013-12-16 2017-10-31 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9823811B2 (en) * 2013-12-31 2017-11-21 Next It Corporation Virtual assistant team identification
US20150286486A1 (en) * 2014-01-16 2015-10-08 Symmpl, Inc. System and method of guiding a user in utilizing functions and features of a computer-based device
US10846112B2 (en) 2014-01-16 2020-11-24 Symmpl, Inc. System and method of guiding a user in utilizing functions and features of a computer based device
JP2015138147A (en) * 2014-01-22 2015-07-30 シャープ株式会社 Server, interactive device, interactive system, interactive method and interactive program
US10333995B2 (en) 2014-01-23 2019-06-25 International Business Machines Corporation Providing of recommendations determined from a collaboration session system and method
US9218410B2 (en) 2014-02-06 2015-12-22 Contact Solutions LLC Systems, apparatuses and methods for communication flow modification
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10147414B1 (en) 2014-05-15 2018-12-04 Namecoach, Inc Link-based audio-recording, collection, collaboration, embedding and delivery system
US9633547B2 (en) 2014-05-20 2017-04-25 Ooma, Inc. Security monitoring and control
US10553098B2 (en) 2014-05-20 2020-02-04 Ooma, Inc. Appliance device integration with alarm systems
US10586175B2 (en) * 2014-05-23 2020-03-10 NewVoiceMedia Ltd. System and method for an optimized, self-learning and self-organizing contact center
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
KR102245098B1 (en) * 2014-05-23 2021-04-28 삼성전자주식회사 Mobile terminal and control method thereof
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9509799B1 (en) * 2014-06-04 2016-11-29 Grandios Technologies, Llc Providing status updates via a personal assistant
AU2015271665B2 (en) 2014-06-05 2020-09-10 Interdev Technologies Systems and methods of interpreting speech data
US8995972B1 (en) 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
US9761222B1 (en) * 2014-06-11 2017-09-12 Albert Scarasso Intelligent conversational messaging
US9390706B2 (en) * 2014-06-19 2016-07-12 Mattersight Corporation Personality-based intelligent personal assistant system and methods
US11330100B2 (en) * 2014-07-09 2022-05-10 Ooma, Inc. Server based intelligent personal assistant services
US20160071517A1 (en) 2014-09-09 2016-03-10 Next It Corporation Evaluating Conversation Data based on Risk Factors
WO2016044321A1 (en) 2014-09-16 2016-03-24 Min Tang Integration of domain information into state transitions of a finite state transducer for natural language processing
WO2016044290A1 (en) 2014-09-16 2016-03-24 Kennewick Michael R Voice commerce
US9606986B2 (en) 2014-09-29 2017-03-28 Apple Inc. Integrated word N-gram and class M-gram language models
US9747896B2 (en) 2014-10-15 2017-08-29 Voicebox Technologies Corporation System and method for providing follow-up responses to prior natural language inputs of a user
US11341338B1 (en) 2016-08-31 2022-05-24 Narrative Science Inc. Applied artificial intelligence technology for interactively using narrative analytics to focus and control visualizations of data
US11238090B1 (en) 2015-11-02 2022-02-01 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data
US11475076B2 (en) 2014-10-22 2022-10-18 Narrative Science Inc. Interactive and conversational data exploration
US10747823B1 (en) * 2014-10-22 2020-08-18 Narrative Science Inc. Interactive and conversational data exploration
US10614799B2 (en) 2014-11-26 2020-04-07 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance
US10431214B2 (en) 2014-11-26 2019-10-01 Voicebox Technologies Corporation System and method of determining a domain and/or an action related to a natural language input
US9786299B2 (en) 2014-12-04 2017-10-10 Microsoft Technology Licensing, Llc Emotion type classification for interactive dialog system
US10764424B2 (en) 2014-12-05 2020-09-01 Microsoft Technology Licensing, Llc Intelligent digital assistant alarm system for application collaboration with notification presentation
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9911415B2 (en) * 2014-12-19 2018-03-06 Lenovo (Singapore) Pte. Ltd. Executing a voice command during voice input
US9166881B1 (en) 2014-12-31 2015-10-20 Contact Solutions LLC Methods and apparatus for adaptive bandwidth-based communication management
WO2016133319A1 (en) 2015-02-16 2016-08-25 Samsung Electronics Co., Ltd. Method and device for providing information
US9747435B2 (en) * 2015-04-27 2017-08-29 Apple Inc. Authentication and control of encryption keys
US10038757B2 (en) 2015-04-29 2018-07-31 Microsoft Technology Licensing, Llc Providing personalized greetings on a digital assistant
US10009286B2 (en) 2015-05-08 2018-06-26 Ooma, Inc. Communications hub
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
KR102341144B1 (en) * 2015-06-01 2021-12-21 삼성전자주식회사 Electronic device which ouputus message and method for controlling thereof
US9807045B2 (en) 2015-06-10 2017-10-31 Google Inc. Contextually driven messaging system
WO2017024248A1 (en) 2015-08-06 2017-02-09 Contact Solutions LLC Tracing and asynchronous communication network and routing method
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
CN106547511B (en) 2015-09-16 2019-12-10 广州市动景计算机科技有限公司 Method for playing and reading webpage information in voice, browser client and server
US11170038B1 (en) 2015-11-02 2021-11-09 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from multiple visualizations
US11232268B1 (en) 2015-11-02 2022-01-25 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from line charts
US11222184B1 (en) 2015-11-02 2022-01-11 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10331418B2 (en) * 2015-12-08 2019-06-25 Paypal, Inc. State machine representation of a development environment deployment process
EP3185523B1 (en) 2015-12-21 2018-10-10 Wipro Limited System and method for providing interaction between a user and an embodied conversational agent
US10063647B2 (en) 2015-12-31 2018-08-28 Verint Americas Inc. Systems, apparatuses, and methods for intelligent network communication and engagement
US11089132B2 (en) 2016-03-29 2021-08-10 Microsoft Technology Licensing, Llc Extensibility for context-aware digital personal assistant
US10945129B2 (en) 2016-04-29 2021-03-09 Microsoft Technology Licensing, Llc Facilitating interaction among digital personal assistants
US10824932B2 (en) 2016-04-29 2020-11-03 Microsoft Technology Licensing, Llc Context-aware digital personal assistant supporting multiple accounts
US10248452B2 (en) 2016-05-20 2019-04-02 Microsoft Technology Licensing, Llc Interaction framework for executing user instructions with online services
US10104199B2 (en) 2016-05-27 2018-10-16 Bank Of America Corporation Three-way communication link for information retrieval and notification
US10038644B2 (en) 2016-05-27 2018-07-31 Bank Of America Corporation Communication system for resource usage monitoring
US10154101B2 (en) 2016-05-27 2018-12-11 Bank Of America Corporation System for resource usage monitoring
US10607386B2 (en) 2016-06-12 2020-03-31 Apple Inc. Customized avatars and associated framework
EP3748558A1 (en) 2016-06-13 2020-12-09 Google LLC Automated telephone call initiating system and method
US10827064B2 (en) 2016-06-13 2020-11-03 Google Llc Automated call requests with status updates
US10789559B2 (en) 2016-06-23 2020-09-29 International Business Machines Corporation Virtually assisted task generation
WO2018004556A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Natural language indexer for virtual assistants
CN109074273B (en) * 2016-07-25 2022-03-29 惠普发展公司,有限责任合伙企业 Automatic virtual input device
WO2018023106A1 (en) 2016-07-29 2018-02-01 Erik SWART System and method of disambiguating natural language processing requests
US11042579B2 (en) 2016-08-25 2021-06-22 Lakeside Software, Llc Method and apparatus for natural language query in a workspace analytics system
KR102596430B1 (en) * 2016-08-31 2023-10-31 삼성전자주식회사 Method and apparatus for speech recognition based on speaker recognition
US9947319B1 (en) 2016-09-27 2018-04-17 Google Llc Forming chatbot output based on user state
US10951720B2 (en) 2016-10-24 2021-03-16 Bank Of America Corporation Multi-channel cognitive resource platform
JP2018072560A (en) * 2016-10-28 2018-05-10 富士通株式会社 Information processing system, information processor, and information processing method
WO2018084910A1 (en) 2016-11-07 2018-05-11 Axon Enterprise, Inc. Systems and methods for interrelating text transcript information with video and/or audio information
US10572591B2 (en) * 2016-11-18 2020-02-25 Lenovo (Singapore) Pte. Ltd. Input interpretation based upon a context
US10878307B2 (en) 2016-12-23 2020-12-29 Microsoft Technology Licensing, Llc EQ-digital conversation assistant
US10051442B2 (en) * 2016-12-27 2018-08-14 Motorola Solutions, Inc. System and method for determining timing of response in a group communication using artificial intelligence
US10467509B2 (en) * 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Computationally-efficient human-identifying smart assistant computer
US11568148B1 (en) 2017-02-17 2023-01-31 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on explanation communication goals
US10943069B1 (en) 2017-02-17 2021-03-09 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US11068661B1 (en) 2017-02-17 2021-07-20 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on smart attributes
US10719542B1 (en) 2017-02-17 2020-07-21 Narrative Science Inc. Applied artificial intelligence technology for ontology building to support natural language generation (NLG) using composable communication goals
KR102318502B1 (en) * 2017-03-20 2021-10-29 이베이 인크. Detection of Mission Changes During Conversation
US10600406B1 (en) * 2017-03-20 2020-03-24 Amazon Technologies, Inc. Intent re-ranker
US11436417B2 (en) 2017-05-15 2022-09-06 Google Llc Providing access to user-controlled resources by automated assistants
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10861210B2 (en) * 2017-05-16 2020-12-08 Apple Inc. Techniques for providing audio and video effects
US10466963B2 (en) * 2017-05-18 2019-11-05 Aiqudo, Inc. Connecting multiple mobile devices to a smart home assistant account
US10614794B2 (en) * 2017-06-15 2020-04-07 Lenovo (Singapore) Pte. Ltd. Adjust output characteristic
US11222060B2 (en) 2017-06-16 2022-01-11 Hewlett-Packard Development Company, L.P. Voice assistants with graphical image responses
US10847163B2 (en) * 2017-06-20 2020-11-24 Lenovo (Singapore) Pte. Ltd. Provide output reponsive to proximate user input
US10931724B2 (en) 2017-07-18 2021-02-23 NewVoiceMedia Ltd. System and method for integrated virtual assistant-enhanced customer service
US10482904B1 (en) 2017-08-15 2019-11-19 Amazon Technologies, Inc. Context driven device arbitration
US11200027B2 (en) * 2017-09-19 2021-12-14 Google Llc Virtual assistant configured to automatically customize groups of actions
US10565981B2 (en) * 2017-09-26 2020-02-18 Microsoft Technology Licensing, Llc Computer-assisted conversation using addressible conversation segments
US10699706B1 (en) * 2017-09-26 2020-06-30 Amazon Technologies, Inc. Systems and methods for device communications
US10832251B1 (en) 2017-10-04 2020-11-10 Wells Fargo Bank, N.A Behavioral analysis for smart agents
US10887161B1 (en) 2017-10-16 2021-01-05 Wells Fargo Bank, N.A. Multi-device interface application
US10516637B2 (en) * 2017-10-17 2019-12-24 Microsoft Technology Licensing, Llc Smart communications assistant with audio interface
US10726843B2 (en) * 2017-12-20 2020-07-28 Facebook, Inc. Methods and systems for responding to inquiries based on social graph information
US11042708B1 (en) 2018-01-02 2021-06-22 Narrative Science Inc. Context saliency-based deictic parser for natural language generation
US11561986B1 (en) 2018-01-17 2023-01-24 Narrative Science Inc. Applied artificial intelligence technology for narrative generation using an invocable analysis service
US10656775B2 (en) 2018-01-23 2020-05-19 Bank Of America Corporation Real-time processing of data and dynamic delivery via an interactive interface
CN108460111B (en) * 2018-02-08 2020-10-16 合肥工业大学 Personal character modeling and generating method and device based on conversation
US10388286B1 (en) * 2018-03-20 2019-08-20 Capital One Services, Llc Systems and methods of sound-based fraud protection
EP3872620B1 (en) * 2018-06-01 2023-11-22 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10861454B2 (en) * 2018-06-12 2020-12-08 Mastercard Asia/Pacific Pte. Ltd Interactive voice-activated bot with visual cue
US11232270B1 (en) 2018-06-28 2022-01-25 Narrative Science Inc. Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to numeric style features
US11074297B2 (en) 2018-07-17 2021-07-27 iT SpeeX LLC Method, system, and computer program product for communication with an intelligent industrial assistant and industrial machine
WO2020018541A1 (en) 2018-07-17 2020-01-23 iT SpeeX LLC Method, system, and computer program product for role- and skill-based privileges for an intelligent industrial assistant
US11232262B2 (en) 2018-07-17 2022-01-25 iT SpeeX LLC Method, system, and computer program product for an intelligent industrial assistant
WO2020022723A1 (en) * 2018-07-20 2020-01-30 삼성전자주식회사 Electronic device and control method therefor
US10848443B2 (en) * 2018-07-23 2020-11-24 Avaya Inc. Chatbot socialization
US10764678B2 (en) 2018-07-23 2020-09-01 PeeQ Technologies, LLC Throwable microphone with virtual assistant interface
US11189275B2 (en) * 2018-08-02 2021-11-30 Polycom, Inc. Natural language processing while sound sensor is muted
EP3937030A1 (en) * 2018-08-07 2022-01-12 Google LLC Assembling and evaluating automated assistant responses for privacy concerns
US10887454B2 (en) 2018-08-20 2021-01-05 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11568175B2 (en) 2018-09-07 2023-01-31 Verint Americas Inc. Dynamic intent classification based on environment variables
US11037558B2 (en) * 2018-09-24 2021-06-15 International Business Machines Corporation Audio modulation for an audio interface
US11017028B2 (en) 2018-10-03 2021-05-25 The Toronto-Dominion Bank Systems and methods for intelligent responses to queries based on trained processes
US11068943B2 (en) * 2018-10-23 2021-07-20 International Business Machines Corporation Generating collaborative orderings of information pertaining to products to present to target users
US11196863B2 (en) 2018-10-24 2021-12-07 Verint Americas Inc. Method and system for virtual assistant conversations
US11238850B2 (en) 2018-10-31 2022-02-01 Walmart Apollo, Llc Systems and methods for e-commerce API orchestration using natural language interfaces
US11183176B2 (en) 2018-10-31 2021-11-23 Walmart Apollo, Llc Systems and methods for server-less voice applications
US11195524B2 (en) 2018-10-31 2021-12-07 Walmart Apollo, Llc System and method for contextual search query revision
US11404058B2 (en) 2018-10-31 2022-08-02 Walmart Apollo, Llc System and method for handling multi-turn conversations and context management for voice enabled ecommerce transactions
US11557297B2 (en) * 2018-11-09 2023-01-17 Embodied, Inc. Systems and methods for adaptive human-machine interaction and automatic behavioral assessment
US11275553B2 (en) 2018-12-07 2022-03-15 Google Llc Conditionally assigning various automated assistant function(s) to interaction with a peripheral assistant control device
US10770072B2 (en) 2018-12-10 2020-09-08 International Business Machines Corporation Cognitive triggering of human interaction strategies to facilitate collaboration, productivity, and learning
US11341330B1 (en) 2019-01-28 2022-05-24 Narrative Science Inc. Applied artificial intelligence technology for adaptive natural language understanding with term discovery
US11798542B1 (en) * 2019-01-31 2023-10-24 Alan AI, Inc. Systems and methods for integrating voice controls into applications
US11514914B2 (en) * 2019-02-08 2022-11-29 Jpmorgan Chase Bank, N.A. Systems and methods for an intelligent virtual assistant for meetings
JP2022520763A (en) 2019-02-08 2022-04-01 アイ・ティー スピークス エル・エル・シー Methods, systems, and computer program products for developing dialog templates for intelligent industry assistants
KR20200098079A (en) * 2019-02-11 2020-08-20 현대자동차주식회사 Dialogue system, and dialogue processing method
WO2020171880A1 (en) 2019-02-19 2020-08-27 Provisur Technologies, Inc. Multi-presentation slicing conveyor apparatus
US11308949B2 (en) 2019-03-12 2022-04-19 International Business Machines Corporation Voice assistant response system based on a tone, keyword, language or etiquette behavioral rule
CN110225207B (en) * 2019-04-29 2021-08-06 厦门快商通信息咨询有限公司 Harassment prevention method, system, terminal and storage medium fusing semantic understanding
JP7167357B2 (en) 2019-05-06 2022-11-08 グーグル エルエルシー automatic call system
US10902854B1 (en) * 2019-05-17 2021-01-26 Eyeballs Financial, LLC Systems and methods for generating responses to questions about user accounts
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11164585B2 (en) * 2019-06-07 2021-11-02 Mitsubishi Electric Automotive America, Inc. Systems and methods for virtual assistant routing
US11438452B1 (en) 2019-08-09 2022-09-06 Apple Inc. Propagating context information in a privacy preserving manner
WO2021046517A2 (en) 2019-09-05 2021-03-11 Paro AI, LLC Method and system of natural language processing in an enterprise environment
US11263198B2 (en) 2019-09-05 2022-03-01 Soundhound, Inc. System and method for detection and correction of a query
US11158321B2 (en) 2019-09-24 2021-10-26 Google Llc Automated calling system
US11489794B2 (en) 2019-11-04 2022-11-01 Bank Of America Corporation System for configuration and intelligent transmission of electronic communications and integrated resource processing
KR20210059367A (en) * 2019-11-15 2021-05-25 삼성전자주식회사 Voice input processing method and electronic device supporting the same
US11163539B2 (en) * 2020-01-07 2021-11-02 International Business Machines Corporation Virtual detection and technical issue modification
US11328728B2 (en) * 2020-01-20 2022-05-10 Blackberry Limited Voice assistant proxy for voice assistant servers
US11430445B2 (en) * 2020-01-30 2022-08-30 Walmart Apollo, Llc Detecting voice grocery concepts from catalog items
US11763259B1 (en) 2020-02-20 2023-09-19 Asana, Inc. Systems and methods to generate units of work in a collaboration environment
US11551685B2 (en) * 2020-03-18 2023-01-10 Amazon Technologies, Inc. Device-directed utterance detection
US11341455B2 (en) 2020-04-24 2022-05-24 Nielsen Consumer Llc Methods, systems, articles of manufacture, and apparatus to monitor the availability of products for purchase
CN111246027B (en) * 2020-04-28 2021-02-12 南京硅基智能科技有限公司 Voice communication system and method for realizing man-machine cooperation
US11411950B2 (en) 2020-04-28 2022-08-09 Bank Of America Corporation Electronic system for integration of communication channels and active cross-channel communication transmission
US11749282B1 (en) * 2020-05-05 2023-09-05 Amazon Technologies, Inc. Goal-oriented dialog system
US11238217B2 (en) 2020-05-11 2022-02-01 International Business Machines Corporation Task based self exploration of cognitive systems
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11900323B1 (en) * 2020-06-29 2024-02-13 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on video dictation
US11216257B1 (en) * 2020-07-02 2022-01-04 Intrado Corporation Automated conference sessions generated to manage application development
US11677574B1 (en) 2020-07-02 2023-06-13 Intrado Corporation Automated conference sessions generated to manage application development
US11657810B2 (en) * 2020-07-27 2023-05-23 International Business Machines Corporation Query routing for bot-based query response
US11537661B2 (en) 2020-10-02 2022-12-27 PolyAI Limited Systems and methods for conversing with a user
US11303749B1 (en) 2020-10-06 2022-04-12 Google Llc Automatic navigation of an interactive voice response (IVR) tree on behalf of human user(s)
US11521616B2 (en) * 2020-10-13 2022-12-06 Merlin Labs, Inc. System and/or method for semantic parsing of air traffic control audio
CN112261232B (en) * 2020-10-23 2022-03-01 杭州蓦然认知科技有限公司 Method for processing voice instruction of calling party by voice assistant and voice assistant
US11483262B2 (en) 2020-11-12 2022-10-25 International Business Machines Corporation Contextually-aware personalized chatbot
US11688392B2 (en) 2020-12-08 2023-06-27 Google Llc Freeze words
US20220236857A1 (en) * 2021-01-25 2022-07-28 Google Llc Undoing application operation(s) via user interaction(s) with an automated assistant
US11789696B2 (en) 2021-03-23 2023-10-17 Microsoft Technology Licensing, Llc Voice assistant-enabled client application with user view context
CN113254023B (en) * 2021-05-14 2023-08-11 网易(杭州)网络有限公司 Object reading method and device and electronic equipment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
US11663024B2 (en) * 2021-06-07 2023-05-30 International Business Machines Corporation Efficient collaboration using a virtual assistant
US11824819B2 (en) 2022-01-26 2023-11-21 International Business Machines Corporation Assertiveness module for developing mental model
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US11625450B1 (en) * 2022-07-07 2023-04-11 Fmr Llc Automated predictive virtual assistant intervention in real time
US11776537B1 (en) * 2022-12-07 2023-10-03 Blue Lakes Technology, Inc. Natural language processing system for context-specific applier interface

Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4348550A (en) * 1980-06-09 1982-09-07 Bell Telephone Laboratories, Incorporated Spoken word controlled automatic dialer
US4747125A (en) * 1986-12-02 1988-05-24 Buchberger Gregory D Programmed conversation recording system with variable patience interval
US4932021A (en) * 1989-04-03 1990-06-05 At&T Bell Laboratories Path learning feature for an automated telemarketing system
US5199062A (en) * 1988-01-20 1993-03-30 Phone Base Systems Inc. Telephone communications system including a digital telephone switch, a voice response unit and a stored program sequence for controlling both the switch and the voice response unit
US5493608A (en) * 1994-03-17 1996-02-20 Alpha Logic, Incorporated Caller adaptive voice response system
US5511112A (en) * 1991-05-20 1996-04-23 Inventions, Inc. Automated voice system for improving agent efficiency and improving service to parties on hold
US5553121A (en) * 1994-08-19 1996-09-03 Ibm Corporation Voice response system
US5553119A (en) * 1994-07-07 1996-09-03 Bell Atlantic Network Services, Inc. Intelligent recognition of speech signals using caller demographics
US5652789A (en) * 1994-09-30 1997-07-29 Wildfire Communications, Inc. Network based knowledgeable assistant
US5719921A (en) * 1996-02-29 1998-02-17 Nynex Science & Technology Methods and apparatus for activating telephone services in response to speech
US5771273A (en) * 1996-02-05 1998-06-23 Bell Atlantic Network Services, Inc. Network accessed personal secretary
US5818908A (en) * 1996-11-05 1998-10-06 At&T Corp. Selective voice menu system
US5864605A (en) * 1996-08-22 1999-01-26 At&T Corp Voice menu optimization method and system
US5867495A (en) * 1996-11-18 1999-02-02 Mci Communications Corporations System, method and article of manufacture for communications utilizing calling, plans in a hybrid network
US5915001A (en) * 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US6006188A (en) * 1997-03-19 1999-12-21 Dendrite, Inc. Speech signal processing for determining psychological or physiological characteristics using a knowledge base
US6016336A (en) * 1997-11-18 2000-01-18 At&T Corp Interactive voice response system with call trainable routing
US6021181A (en) * 1997-02-24 2000-02-01 Wildfire Communications, Inc. Electronic voice mail message handling system
US6119087A (en) * 1998-03-13 2000-09-12 Nuance Communications System architecture for and method of voice processing
US6144938A (en) * 1998-05-01 2000-11-07 Sun Microsystems, Inc. Voice user interface with personality
US6246981B1 (en) * 1998-11-25 2001-06-12 International Business Machines Corporation Natural language task-oriented dialog manager and method
US6269336B1 (en) * 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6327568B1 (en) * 1997-11-14 2001-12-04 U.S. Philips Corporation Distributed hardware sharing for speech processing
US20020029203A1 (en) * 2000-09-01 2002-03-07 Pelland David M. Electronic personal assistant with personality adaptation
US6377928B1 (en) * 1999-03-31 2002-04-23 Sony Corporation Voice recognition for animated agent-based navigation
US6385584B1 (en) * 1999-04-30 2002-05-07 Verizon Services Corp. Providing automated voice responses with variable user prompting
US6412079B1 (en) * 1998-10-09 2002-06-25 Openwave Systems Inc. Server pool for clustered system
US6466654B1 (en) * 2000-03-06 2002-10-15 Avaya Technology Corp. Personal virtual assistant with semantic tagging
US6480826B2 (en) * 1999-08-31 2002-11-12 Accenture Llp System and method for a telephonic emotion detection that provides operator feedback
US6542602B1 (en) * 2000-02-14 2003-04-01 Nice Systems Ltd. Telephone call monitoring system
US20030088409A1 (en) * 1999-03-19 2003-05-08 International Business Machines Corporation Speech recognition system including manner discrimination
US6606596B1 (en) * 1999-09-13 2003-08-12 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, including deployment through digital sound files
US6615172B1 (en) * 1999-11-12 2003-09-02 Phoenix Solutions, Inc. Intelligent query engine for processing voice based queries
US6633846B1 (en) * 1999-11-12 2003-10-14 Phoenix Solutions, Inc. Distributed realtime speech recognition system
US6792086B1 (en) * 1999-08-24 2004-09-14 Microstrategy, Inc. Voice network access provider system and method
US6792082B1 (en) * 1998-09-11 2004-09-14 Comverse Ltd. Voice mail system with personal assistant provisioning
US6928614B1 (en) * 1998-10-13 2005-08-09 Visteon Global Technologies, Inc. Mobile office with speech recognition
US7136838B1 (en) * 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US434850A (en) * 1890-08-19 Joseph twedell
US5051924A (en) * 1988-03-31 1991-09-24 Bergeron Larry E Method and apparatus for the generation of reports
DE69635015T2 (en) * 1995-11-17 2006-03-30 At & T Corp. AUTOMATIC VOCABULAR GENERATION FOR LANGUAGE-BASED VOICE BASED ON A TELECOMMUNICATIONS NETWORK
US5835570A (en) * 1996-06-26 1998-11-10 At&T Corp Voice-directed telephone directory with voice access to directory assistance
US6018568A (en) * 1996-09-25 2000-01-25 At&T Corp. Voice dialing system
US6233318B1 (en) * 1996-11-05 2001-05-15 Comverse Network Systems, Inc. System for accessing multimedia mailboxes and messages over the internet and via telephone
US5991364A (en) * 1997-03-27 1999-11-23 Bell Atlantic Network Services, Inc. Phonetic voice activated dialing
KR100280045B1 (en) * 1997-05-02 2001-02-01 윤종용 Pigtailing method between optical waveguide device and optical fiber module
US6061718A (en) * 1997-07-23 2000-05-09 Ericsson Inc. Electronic mail delivery system in wired or wireless communications system
US6108627A (en) * 1997-10-31 2000-08-22 Nortel Networks Corporation Automatic transcription tool
US6104788A (en) * 1997-12-04 2000-08-15 Siemens Information And Communication Networks, Inc. Apparatus and method for using a telephone for remote scheduling
US6108788A (en) * 1997-12-08 2000-08-22 Entrust Technologies Limited Certificate management system and method for a communication security system
US6167118A (en) * 1997-12-30 2000-12-26 Dsc Telecom L.P. Method and a system for by-passing a receiver-off-hook timer for voice dialing systems and for supporting spoken digit dialing
US6330308B1 (en) * 1998-04-09 2001-12-11 Bell Atlantic Network Services, Inc. Voice mail system for obtaining forwarding number information from directory assistance systems having speech recognition
US6462616B1 (en) * 1998-09-24 2002-10-08 Ericsson Inc. Embedded phonetic support and TTS play button in a contacts database
US6718015B1 (en) * 1998-12-16 2004-04-06 International Business Machines Corporation Remote web page reader
US6363342B2 (en) * 1998-12-18 2002-03-26 Matsushita Electric Industrial Co., Ltd. System for developing word-pronunciation pairs
US6707891B1 (en) * 1998-12-28 2004-03-16 Nms Communications Method and system for voice electronic mail
US6963633B1 (en) * 2000-02-07 2005-11-08 Verizon Services Corp. Voice dialing using text names
US6487278B1 (en) * 2000-02-29 2002-11-26 Ameritech Corporation Method and system for interfacing systems unified messaging with legacy systems located behind corporate firewalls
WO2003063009A1 (en) * 2002-01-18 2003-07-31 Bea Systems, Inc. System, method and interface for controlling server lifecycle
EP1339242A1 (en) * 2002-02-20 2003-08-27 BRITISH TELECOMMUNICATIONS public limited company Network maintenance

Patent Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4348550A (en) * 1980-06-09 1982-09-07 Bell Telephone Laboratories, Incorporated Spoken word controlled automatic dialer
US4747125A (en) * 1986-12-02 1988-05-24 Buchberger Gregory D Programmed conversation recording system with variable patience interval
US5199062A (en) * 1988-01-20 1993-03-30 Phone Base Systems Inc. Telephone communications system including a digital telephone switch, a voice response unit and a stored program sequence for controlling both the switch and the voice response unit
US4932021A (en) * 1989-04-03 1990-06-05 At&T Bell Laboratories Path learning feature for an automated telemarketing system
US5511112A (en) * 1991-05-20 1996-04-23 Inventions, Inc. Automated voice system for improving agent efficiency and improving service to parties on hold
US5493608A (en) * 1994-03-17 1996-02-20 Alpha Logic, Incorporated Caller adaptive voice response system
US5553119A (en) * 1994-07-07 1996-09-03 Bell Atlantic Network Services, Inc. Intelligent recognition of speech signals using caller demographics
US5553121A (en) * 1994-08-19 1996-09-03 Ibm Corporation Voice response system
US5652789A (en) * 1994-09-30 1997-07-29 Wildfire Communications, Inc. Network based knowledgeable assistant
US5771273A (en) * 1996-02-05 1998-06-23 Bell Atlantic Network Services, Inc. Network accessed personal secretary
US5719921A (en) * 1996-02-29 1998-02-17 Nynex Science & Technology Methods and apparatus for activating telephone services in response to speech
US5864605A (en) * 1996-08-22 1999-01-26 At&T Corp Voice menu optimization method and system
US5818908A (en) * 1996-11-05 1998-10-06 At&T Corp. Selective voice menu system
US5915001A (en) * 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US5867495A (en) * 1996-11-18 1999-02-02 Mci Communications Corporations System, method and article of manufacture for communications utilizing calling, plans in a hybrid network
US6021181A (en) * 1997-02-24 2000-02-01 Wildfire Communications, Inc. Electronic voice mail message handling system
US6006188A (en) * 1997-03-19 1999-12-21 Dendrite, Inc. Speech signal processing for determining psychological or physiological characteristics using a knowledge base
US6327568B1 (en) * 1997-11-14 2001-12-04 U.S. Philips Corporation Distributed hardware sharing for speech processing
US6016336A (en) * 1997-11-18 2000-01-18 At&T Corp Interactive voice response system with call trainable routing
US6119087A (en) * 1998-03-13 2000-09-12 Nuance Communications System architecture for and method of voice processing
US6144938A (en) * 1998-05-01 2000-11-07 Sun Microsystems, Inc. Voice user interface with personality
US6269336B1 (en) * 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6792082B1 (en) * 1998-09-11 2004-09-14 Comverse Ltd. Voice mail system with personal assistant provisioning
US6412079B1 (en) * 1998-10-09 2002-06-25 Openwave Systems Inc. Server pool for clustered system
US6928614B1 (en) * 1998-10-13 2005-08-09 Visteon Global Technologies, Inc. Mobile office with speech recognition
US6246981B1 (en) * 1998-11-25 2001-06-12 International Business Machines Corporation Natural language task-oriented dialog manager and method
US20030088409A1 (en) * 1999-03-19 2003-05-08 International Business Machines Corporation Speech recognition system including manner discrimination
US7136838B1 (en) * 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US6377928B1 (en) * 1999-03-31 2002-04-23 Sony Corporation Voice recognition for animated agent-based navigation
US6385584B1 (en) * 1999-04-30 2002-05-07 Verizon Services Corp. Providing automated voice responses with variable user prompting
US6792086B1 (en) * 1999-08-24 2004-09-14 Microstrategy, Inc. Voice network access provider system and method
US6480826B2 (en) * 1999-08-31 2002-11-12 Accenture Llp System and method for a telephonic emotion detection that provides operator feedback
US6606596B1 (en) * 1999-09-13 2003-08-12 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, including deployment through digital sound files
US6615172B1 (en) * 1999-11-12 2003-09-02 Phoenix Solutions, Inc. Intelligent query engine for processing voice based queries
US6633846B1 (en) * 1999-11-12 2003-10-14 Phoenix Solutions, Inc. Distributed realtime speech recognition system
US6542602B1 (en) * 2000-02-14 2003-04-01 Nice Systems Ltd. Telephone call monitoring system
US6466654B1 (en) * 2000-03-06 2002-10-15 Avaya Technology Corp. Personal virtual assistant with semantic tagging
US20020029203A1 (en) * 2000-09-01 2002-03-07 Pelland David M. Electronic personal assistant with personality adaptation

Cited By (245)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
US20050188320A1 (en) * 2004-02-24 2005-08-25 Bocking Andrew D. Method and system for managing unread electronic messages
US11599266B2 (en) 2004-02-24 2023-03-07 Blackberry Limited Method and system for managing unread electronic messages
US8255835B2 (en) * 2004-02-24 2012-08-28 Research In Motion Limited Method and system for managing unread electronic messages
US8291347B2 (en) * 2004-02-24 2012-10-16 Research In Motion Limited Method and system for managing unread electronic messages
US10318871B2 (en) 2005-09-08 2019-06-11 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7752043B2 (en) * 2006-09-29 2010-07-06 Verint Americas Inc. Multi-pass speech analytics
US20080082334A1 (en) * 2006-09-29 2008-04-03 Joseph Watson Multi-pass speech analytics
US20080082329A1 (en) * 2006-09-29 2008-04-03 Joseph Watson Multi-pass speech analytics
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US11023513B2 (en) 2007-12-20 2021-06-01 Apple Inc. Method and apparatus for searching using an active ontology
US10381016B2 (en) 2008-01-03 2019-08-13 Apple Inc. Methods and apparatus for altering audio output signals
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US9865248B2 (en) 2008-04-05 2018-01-09 Apple Inc. Intelligent text-to-speech conversion
US10108612B2 (en) 2008-07-31 2018-10-23 Apple Inc. Mobile device having human language translation capability with positional feedback
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10475446B2 (en) 2009-06-05 2019-11-12 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10795541B2 (en) 2009-06-05 2020-10-06 Apple Inc. Intelligent organization of tasks items
US11080012B2 (en) 2009-06-05 2021-08-03 Apple Inc. Interface for a virtual digital assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US9548050B2 (en) 2010-01-18 2017-01-17 Apple Inc. Intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10706841B2 (en) 2010-01-18 2020-07-07 Apple Inc. Task flow identification based on user intent
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US10705794B2 (en) * 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10741185B2 (en) 2010-01-18 2020-08-11 Apple Inc. Intelligent automated assistant
US10496753B2 (en) * 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20130275875A1 (en) * 2010-01-18 2013-10-17 Apple Inc. Automatically Adapting User Interfaces for Hands-Free Interaction
US10049675B2 (en) 2010-02-25 2018-08-14 Apple Inc. User profiling for voice input processing
US10692504B2 (en) 2010-02-25 2020-06-23 Apple Inc. User profiling for voice input processing
US9633660B2 (en) 2010-02-25 2017-04-25 Apple Inc. User profiling for voice input processing
US10102359B2 (en) 2011-03-21 2018-10-16 Apple Inc. Device access using voice authentication
US10417405B2 (en) 2011-03-21 2019-09-17 Apple Inc. Device access using voice authentication
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US11350253B2 (en) 2011-06-03 2022-05-31 Apple Inc. Active transport based notifications
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US20130031562A1 (en) * 2011-07-27 2013-01-31 Salesforce.Com, Inc. Mechanism for facilitating dynamic load balancing at application servers in an on-demand services environment
US8954587B2 (en) * 2011-07-27 2015-02-10 Salesforce.Com, Inc. Mechanism for facilitating dynamic load balancing at application servers in an on-demand services environment
US9798393B2 (en) 2011-08-29 2017-10-24 Apple Inc. Text correction processing
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US11069336B2 (en) 2012-03-02 2021-07-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9953088B2 (en) 2012-05-14 2018-04-24 Apple Inc. Crowd sourcing information to fulfill user requests
US11269678B2 (en) 2012-05-15 2022-03-08 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US20140201629A1 (en) * 2013-01-17 2014-07-17 Microsoft Corporation Collaborative learning through user generated knowledge
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US10714117B2 (en) 2013-02-07 2020-07-14 Apple Inc. Voice trigger for a digital assistant
US10373616B2 (en) 2013-02-22 2019-08-06 Verint Americas Inc. Interaction with a portion of a content item through a virtual assistant
US11200895B2 (en) 2013-02-22 2021-12-14 Verint Americas Inc. Interaction with a portion of a content item through a virtual assistant
US20140245140A1 (en) * 2013-02-22 2014-08-28 Next It Corporation Virtual Assistant Transfer between Smart Devices
US11823677B2 (en) 2013-02-22 2023-11-21 Verint Americas Inc. Interaction with a portion of a content item through a virtual assistant
US9672822B2 (en) 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
US9966060B2 (en) 2013-06-07 2018-05-08 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US9633674B2 (en) 2013-06-07 2017-04-25 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US10657961B2 (en) 2013-06-08 2020-05-19 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9966068B2 (en) 2013-06-08 2018-05-08 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US11048473B2 (en) 2013-06-09 2021-06-29 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10769385B2 (en) 2013-06-09 2020-09-08 Apple Inc. System and method for inferring user intent from speech inputs
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10185542B2 (en) 2013-06-09 2019-01-22 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US9729592B2 (en) 2013-08-27 2017-08-08 Persais, Llc System and method for distributed virtual assistant platforms
WO2015039105A1 (en) * 2013-09-16 2015-03-19 Persais, Llc System and method for distributed virtual assistant platforms
US11314370B2 (en) 2013-12-06 2022-04-26 Apple Inc. Method for extracting salient dialog usage from live data
US10169329B2 (en) 2014-05-30 2019-01-01 Apple Inc. Exemplar-based natural language processing
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10417344B2 (en) 2014-05-30 2019-09-17 Apple Inc. Exemplar-based natural language processing
US10699717B2 (en) 2014-05-30 2020-06-30 Apple Inc. Intelligent assistant for home automation
US10714095B2 (en) 2014-05-30 2020-07-14 Apple Inc. Intelligent assistant for home automation
US10497365B2 (en) 2014-05-30 2019-12-03 Apple Inc. Multi-command single utterance input method
US10657966B2 (en) 2014-05-30 2020-05-19 Apple Inc. Better resolution when referencing to concepts
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10083690B2 (en) 2014-05-30 2018-09-25 Apple Inc. Better resolution when referencing to concepts
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10878809B2 (en) 2014-05-30 2020-12-29 Apple Inc. Multi-command single utterance input method
US10904611B2 (en) 2014-06-30 2021-01-26 Apple Inc. Intelligent automated assistant for TV user interactions
US9668024B2 (en) 2014-06-30 2017-05-30 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10431204B2 (en) 2014-09-11 2019-10-01 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10453443B2 (en) 2014-09-30 2019-10-22 Apple Inc. Providing an indication of the suitability of speech recognition
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9986419B2 (en) 2014-09-30 2018-05-29 Apple Inc. Social reminders
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10390213B2 (en) 2014-09-30 2019-08-20 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10438595B2 (en) 2014-09-30 2019-10-08 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US11556230B2 (en) 2014-12-02 2023-01-17 Apple Inc. Data detection
WO2016106250A1 (en) * 2014-12-23 2016-06-30 Ejenta, Inc. Intelligent personal agent platform and system and methods for using same
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US11231904B2 (en) 2015-03-06 2022-01-25 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10529332B2 (en) 2015-03-08 2020-01-07 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10311871B2 (en) 2015-03-08 2019-06-04 Apple Inc. Competing devices responding to voice triggers
US10930282B2 (en) 2015-03-08 2021-02-23 Apple Inc. Competing devices responding to voice triggers
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US11468282B2 (en) 2015-05-15 2022-10-11 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US11127397B2 (en) 2015-05-27 2021-09-21 Apple Inc. Device voice control
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US20190116264A1 (en) * 2015-06-05 2019-04-18 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10356243B2 (en) * 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US20170346949A1 (en) * 2015-06-05 2017-11-30 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10681212B2 (en) * 2015-06-05 2020-06-09 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11010127B2 (en) 2015-06-29 2021-05-18 Apple Inc. Virtual assistant for media playback
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10354652B2 (en) 2015-12-02 2019-07-16 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10942703B2 (en) 2015-12-23 2021-03-09 Apple Inc. Proactive assistance based on dialog communication between devices
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US11069347B2 (en) 2016-06-08 2021-07-20 Apple Inc. Intelligent automated assistant for media exploration
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US10942702B2 (en) 2016-06-11 2021-03-09 Apple Inc. Intelligent device arbitration and control
US10580409B2 (en) 2016-06-11 2020-03-03 Apple Inc. Application integration with a digital assistant
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10089072B2 (en) 2016-06-11 2018-10-02 Apple Inc. Intelligent device arbitration and control
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10553215B2 (en) 2016-09-23 2020-02-04 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10699713B2 (en) 2016-12-22 2020-06-30 Soundhound, Inc. Techniques for concurrent processing of user speech
US10311875B2 (en) 2016-12-22 2019-06-04 Soundhound, Inc. Full-duplex utterance processing in a natural language virtual assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11656884B2 (en) 2017-01-09 2023-05-23 Apple Inc. Application integration with a digital assistant
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10332518B2 (en) 2017-05-09 2019-06-25 Apple Inc. User interface for correcting recognition errors
US10741181B2 (en) 2017-05-09 2020-08-11 Apple Inc. User interface for correcting recognition errors
US10847142B2 (en) 2017-05-11 2020-11-24 Apple Inc. Maintaining privacy of personal information
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10789945B2 (en) 2017-05-12 2020-09-29 Apple Inc. Low-latency intelligent automated assistant
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US10748546B2 (en) 2017-05-16 2020-08-18 Apple Inc. Digital assistant services based on device capabilities
US10909171B2 (en) 2017-05-16 2021-02-02 Apple Inc. Intelligent automated assistant for media exploration
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11495218B2 (en) 2018-06-01 2022-11-08 Apple Inc. Virtual assistant operation in multi-device environments
US10720160B2 (en) 2018-06-01 2020-07-21 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10984798B2 (en) 2018-06-01 2021-04-20 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11009970B2 (en) 2018-06-01 2021-05-18 Apple Inc. Attention aware virtual assistant dismissal
US10684703B2 (en) 2018-06-01 2020-06-16 Apple Inc. Attention aware virtual assistant dismissal
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10403283B1 (en) 2018-06-01 2019-09-03 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US10944859B2 (en) 2018-06-03 2021-03-09 Apple Inc. Accelerated task performance
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11928604B2 (en) 2019-04-09 2024-03-12 Apple Inc. Method and apparatus for building an intelligent automated assistant
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11217251B2 (en) 2019-05-06 2022-01-04 Apple Inc. Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut suggestions
US11360739B2 (en) 2019-05-31 2022-06-14 Apple Inc. User activity shortcut suggestions
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators

Also Published As

Publication number Publication date
US8000453B2 (en) 2011-08-16
US20090018835A1 (en) 2009-01-15
US7415100B2 (en) 2008-08-19
US6757362B1 (en) 2004-06-29
US20090018839A1 (en) 2009-01-15
US7920678B2 (en) 2011-04-05
US20040225650A1 (en) 2004-11-11
US20080201306A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
US7920678B2 (en) Personal virtual assistant
US6466654B1 (en) Personal virtual assistant with semantic tagging
JP4187926B2 (en) Method and voice mail system for customizing and managing information to facilitate call handling in a voice mail system
US7286985B2 (en) Method and apparatus for preprocessing text-to-speech files in a voice XML application distribution system using industry specific, social and regional expression rules
US7538685B1 (en) Use of auditory feedback and audio queues in the realization of a personal virtual assistant
US8457296B2 (en) System and method for processing multi-modal communications during a call session
US7242752B2 (en) Behavioral adaptation engine for discerning behavioral characteristics of callers interacting with an VXML-compliant voice application
US7643998B2 (en) Method and apparatus for improving voice recognition performance in a voice application distribution system
US6785654B2 (en) Distributed speech recognition system with speech recognition engines offering multiple functionalities
US20070168215A1 (en) Voice Controlled Business Scheduling System and Method
US20070206759A1 (en) Systems, methods, and apparatus to record conference call activity
US7302466B1 (en) Autonomous eclone
US20040010412A1 (en) Method and apparatus for reducing data traffic in a voice XML application distribution system through cache optimization
US20020123899A1 (en) Method and system for enabling workers to communicate anonymously with their employers
WO2001075555A2 (en) Personal virtual assistant
EP1051833A2 (en) Voice mail system
US20020039408A1 (en) Method and system for enabling workers to communicate anonymously with their employers
WO2001067241A1 (en) Virtual assistant engine
Cisco Release Notes for Cisco Personal Assistant Release 1.3(2)
Cisco Introduction
US7133501B2 (en) Method and apparatus for soliciting personal voice recordings for a voice-dialing system
Morgan et al. Cisco Unity Fundamentals
IES80868B2 (en) A transaction processing system

Legal Events

Date Code Title Description
AS Assignment

Owner name: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE, PENNSYLVANIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:AVAYA INC., A DELAWARE CORPORATION;REEL/FRAME:025863/0535

Effective date: 20110211

Owner name: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLAT

Free format text: SECURITY AGREEMENT;ASSIGNOR:AVAYA INC., A DELAWARE CORPORATION;REEL/FRAME:025863/0535

Effective date: 20110211

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., PENNSYLVANIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:AVAYA, INC.;REEL/FRAME:029608/0256

Effective date: 20121221

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., P

Free format text: SECURITY AGREEMENT;ASSIGNOR:AVAYA, INC.;REEL/FRAME:029608/0256

Effective date: 20121221

AS Assignment

Owner name: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE, PENNSYLVANIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:AVAYA, INC.;REEL/FRAME:030083/0639

Effective date: 20130307

Owner name: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE,

Free format text: SECURITY AGREEMENT;ASSIGNOR:AVAYA, INC.;REEL/FRAME:030083/0639

Effective date: 20130307

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION

AS Assignment

Owner name: AVAYA INC., CALIFORNIA

Free format text: BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256;ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.;REEL/FRAME:044891/0801

Effective date: 20171128

Owner name: AVAYA INC., CALIFORNIA

Free format text: BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535;ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST, NA;REEL/FRAME:044892/0001

Effective date: 20171128

Owner name: AVAYA INC., CALIFORNIA

Free format text: BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639;ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.;REEL/FRAME:045012/0666

Effective date: 20171128