US12638912B1 - Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware - Google Patents
Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally awareInfo
- Publication number
- US12638912B1 US12638912B1 US18/936,092 US202418936092A US12638912B1 US 12638912 B1 US12638912 B1 US 12638912B1 US 202418936092 A US202418936092 A US 202418936092A US 12638912 B1 US12638912 B1 US 12638912B1
- Authority
- US
- United States
- Prior art keywords
- instantaneous
- emotional
- function
- phase
- functions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/01—Indexing scheme relating to G06F3/01
- G06F2203/011—Emotion or mood input determined on the basis of sensed human body parameters such as pulse, heart rate or beat, temperature of skin, facial expressions, iris, voice pitch, brain activity patterns
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
The current document is directed to methods and systems that provide an emotional compass that reflects the emotional states of human beings, dynamics of the emotional states over time periods, emotional synchronization between humans and between humans and automated interactive systems, and the degree to which the emotional state of one human is influenced or affected by the emotional state of another human or by an automated interactive system. The emotional compass can be used for continuous or intermittent emotional orientation by both automated systems and human analysts. The emotional awareness provided by the emotional compass facilitates continuous or intermittent strategy selection for achieving various different types of emotion-related results.
Description
This application is a continuation of application Ser. No. 18/544,055, filed Dec. 18, 2023.
The current document is directed to automated systems and methods that monitor interactions between human beings and between automated systems and human beings and that track, store, and report emotional states and emotional dynamics of participants in the interactions, providing emotional awareness to automated systems.
During the past 50 years, the development and evolution of processor-controlled electronic systems, electronic communications, and electronic sensors and recorders have provided a foundation for the development and commercialization of a wide variety of different types of new technologies, products, and technological fields, including large distributed computer systems and cloud-computing facilities, a wide variety of personal computing systems and devices, smart phones, and many other types of devices and systems. Many of the new technologies are related to human social interactions and activities. These include many different types of social-networking systems and applications, Internet-enabled commerce and transactions, a wide variety of interactive systems and methods providing extensive human-to-computer and computer-to-human information-exchange interfaces, automated counseling services, automated advisors and agents, and many other technologies based on, or incorporating, interactions between humans and computers and monitoring and analysis of human interactions by monitoring-and-analysis systems. Initially, these technologies employed relatively straightforward, text-based human-to-computer and computer-to-human interfaces. However, as the types of desired interfaces and the desired capabilities of such interfaces have expanded, it has become increasingly evident that further progression in human-to-computer and computer-to-human interfaces need to incorporate methods and systems for inferring emotional states of interacting human beings and tracking the emotional states and emotional dynamics over time. Human behaviors and actions are generally driven, at least in part, by human emotional states. A significant portion of the information exchanged between humans during social interactions and humans is related to their emotional states, and humans have developed sophisticated mechanisms for inferring and responding to others' emotional states. Human-to-computer and computer-to-human interfaces, by contrast, generally fail to take into account emotional states and associated emotion-driven behaviors. Current automated technologies fall far short of the capabilities needed for emotionally competent human-to-computer and computer-to-interfaces and current human-interaction-monitoring-and-analysis systems often fail to accurately determine and track emotional states of human participants in various types of interactions, including conversations.
The current document is directed to methods and systems that provide an emotional compass that reflects the emotional states of human beings, dynamics of the emotional states over time periods, emotional synchronization between humans and between humans and automated interactive systems, and the degree to which the emotional state of one human is influenced or affected by the emotional state of another human or by an automated interactive system. The emotional compass can be used for continuous or intermittent emotional orientation by both automated systems and human analysts. The emotional awareness provided by the emotional compass facilitates continuous or intermittent strategy selection for achieving various different types of emotion-related results. An automated call-center system, for example, can use the emotional compass, during an interaction with a human caller, to detect frustration or anger and to continuously select responses and proposals to increase the productivity of the interaction.
The current application is directed to methods and systems that provide an emotional compass that reflects the emotional states of human beings, dynamics of the emotional states over time periods, emotional synchronization between humans and between humans and automated interactive systems, and a degree to which the emotional state of one human is influenced or affected by the emotional state of another human or by an automated interactive system. In a first subsection, below, a detailed description of computer hardware, complex computational systems, and virtualization is provided with reference to FIGS. 1-5D . In a second subsection, the currently disclosed methods and systems are discussed with reference to FIGS. 6A-24B .
The term “abstraction” is not, in any way, intended to mean or suggest an abstract idea or concept. Computational abstractions are tangible, physical interfaces that are implemented, ultimately, using physical computer hardware, data-storage devices, and communications systems. Instead, the term “abstraction” refers, in the current discussion, to a logical level of functionality encapsulated within one or more concrete, tangible, physically-implemented computer systems with defined interfaces through which electronically-encoded data is exchanged, process execution launched, and electronic services are provided. Interfaces may include graphical and textual data displayed on physical display devices as well as computer programs and routines that control physical computer processors to carry out various tasks and operations and that are invoked through electronically implemented application programming interfaces (“APIs”) and other electronically implemented interfaces. There is a tendency among those unfamiliar with modern technology and science to misinterpret the terms “abstract” and “abstraction,” when used to describe certain aspects of modern computing. For example, one frequently encounters assertions that, because a computational system is described in terms of abstractions, functional layers, and interfaces, the computational system is somehow different from a physical machine or device. Such allegations are unfounded. One only needs to disconnect a computer system or group of computer systems from their respective power supplies to appreciate the physical, machine nature of complex computer technologies. One also frequently encounters statements that characterize a computational technology as being “only software,” and thus not a machine or device. Software is essentially a sequence of encoded symbols, such as a printout of a computer program or digitally encoded computer instructions sequentially stored in a file on an optical disk or within an electromechanical mass-storage device. Software alone can do nothing. It is only when encoded computer instructions are loaded into an electronic memory within a computer system and executed on a physical processor that so-called “software implemented” functionality is provided. The digitally encoded computer instructions are an essential and physical control component of processor-controlled machines and devices, no less essential and physical than a cam-shaft control system in an internal-combustion engine. Multi-cloud aggregations, cloud-computing services, virtual-machine containers and virtual machines, communications interfaces, and many of the other topics discussed below are tangible, physical components of physical, electro-optical-mechanical computer systems.
Of course, there are many different types of computer-system architectures that differ from one another in the number of different memories, including different types of hierarchical cache memories, the number of processors and the connectivity of the processors with other system components, the number of internal communications busses and serial links, and in many other ways. However, computer systems generally execute stored programs by fetching instructions from memory and executing the instructions in one or more processors. Computer systems include general-purpose computer systems, such as personal computers (“PCs”), various types of servers and workstations, and higher-end mainframe computers, but may also include a plethora of various types of special-purpose computing devices, including data-storage systems, communications routers, network nodes, tablet computers, and mobile telephones.
Until recently, computational services were generally provided by computer systems and data centers purchased, configured, managed, and maintained by service-provider organizations. For example, an e-commerce retailer generally purchased, configured, managed, and maintained a data center including numerous web servers, back-end computer systems, and data-storage systems for serving web pages to remote customers, receiving orders through the web-page interface, processing the orders, tracking completed orders, and other myriad different tasks associated with an e-commerce enterprise.
Cloud-computing facilities are intended to provide computational bandwidth and data-storage services much as utility companies provide electrical power and water to consumers. Cloud computing provides enormous advantages to small organizations without the resources to purchase, manage, and maintain in-house data centers. Such organizations can dynamically add and delete virtual computer systems from their virtual data centers within public clouds in order to track computational-bandwidth and data-storage needs, rather than purchasing sufficient computer systems within a physical data center to handle peak computational-bandwidth and data-storage demands. Moreover, small organizations can completely avoid the overhead of maintaining and managing physical computer systems, including hiring and periodically retraining information-technology specialists and continuously paying for operating-system and database-management-system upgrades. Furthermore, cloud-computing interfaces allow for easy and straightforward configuration of virtual computing facilities, flexibility in the types of applications and operating systems that can be configured, and other functionalities that are useful even for owners and administrators of private cloud-computing facilities used by a single organization.
While the execution environments provided by operating systems have proved to be an enormously successful level of abstraction within computer systems, the operating-system-provided level of abstraction is nonetheless associated with difficulties and challenges for developers and users of application programs and other higher-level computational entities. One difficulty arises from the fact that there are many different operating systems that run within various different types of computer hardware. In many cases, popular application programs and computational systems are developed to run on only a subset of the available operating systems and can therefore be executed within only a subset of the various different types of computer systems on which the operating systems are designed to run. Often, even when an application program or other computational system is ported to additional operating systems, the application program or other computational system can nonetheless run more efficiently on the operating systems for which the application program or other computational system was originally targeted. Another difficulty arises from the increasingly distributed nature of computer systems. Although distributed operating systems are the subject of considerable research and development efforts, many of the popular operating systems are designed primarily for execution on a single computer system. In many cases, it is difficult to move application programs, in real time, between the different computer systems of a distributed computing system for high-availability, fault-tolerance, and load-balancing purposes. The problems are even greater in heterogeneous distributed computing systems which include different types of hardware and devices running different types of operating systems. Operating systems continue to evolve, as a result of which certain older application programs and other computational entities may be incompatible with more recent versions of operating systems for which they are targeted, creating compatibility issues that are particularly difficult to manage in large distributed systems.
For all of these reasons, a higher level of abstraction, referred to as the “virtual machine,” has been developed and evolved to further abstract computer hardware in order to address many difficulties and challenges associated with traditional computing systems, including the compatibility issues discussed above. FIGS. 5A-D illustrate several types of virtual machine and virtual-machine execution environments. FIGS. 5A-B use the same illustration conventions as used in FIG. 4 . FIG. 5A shows a first type of virtualization. The computer system 500 in FIG. 5A includes the same hardware layer 502 as the hardware layer 402 shown in FIG. 4 . However, rather than providing an operating system layer directly above the hardware layer, as in FIG. 4 , the virtualized computing environment illustrated in FIG. 5A features a virtualization layer 504 that interfaces through a virtualization-layer/hardware-layer interface 506, equivalent to interface 416 in FIG. 4 , to the hardware. The virtualization layer provides a hardware-like interface 508 to a number of virtual machines, such as virtual machine 510, executing above the virtualization layer in a virtual-machine layer 512. Each virtual machine includes one or more application programs or other higher-level computational entities packaged together with an operating system, referred to as a “guest operating system,” such as application 514 and guest operating system 516 packaged together within virtual machine 510. Each virtual machine is thus equivalent to the operating-system layer 404 and application-program layer 406 in the general-purpose computer system shown in FIG. 4 . Each guest operating system within a virtual machine interfaces to the virtualization-layer interface 508 rather than to the actual hardware interface 506. The virtualization layer partitions hardware resources into abstract virtual-hardware layers to which each guest operating system within a virtual machine interfaces. The guest operating systems within the virtual machines, in general, are unaware of the virtualization layer and operate as if they were directly accessing a true hardware interface. The virtualization layer ensures that each of the virtual machines currently executing within the virtual environment receive a fair allocation of underlying hardware resources and that all virtual machines receive sufficient resources to progress in execution. The virtualization-layer interface 508 may differ for different guest operating systems. For example, the virtualization layer is generally able to provide virtual hardware interfaces for a variety of different types of computer hardware. This allows, as one example, a virtual machine that includes a guest operating system designed for a particular computer architecture to run on hardware of a different architecture. The number of virtual machines need not be equal to the number of physical processors or even a multiple of the number of processors.
The virtualization layer includes a virtual-machine-monitor module 518 (“VMM”) that virtualizes physical processors in the hardware layer to create virtual processors on which each of the virtual machines executes. For execution efficiency, the virtualization layer attempts to allow virtual machines to directly execute non-privileged instructions and to directly access non-privileged registers and memory. However, when the guest operating system within a virtual machine accesses virtual privileged instructions, virtual privileged registers, and virtual privileged memory through the virtualization-layer interface 508, the accesses result in execution of virtualization-layer code to simulate or emulate the privileged resources. The virtualization layer additionally includes a kernel module 520 that manages memory, communications, and data-storage machine resources on behalf of executing virtual machines (“VM kernel”). The VM kernel, for example, maintains shadow page tables on each virtual machine so that hardware-level virtual-memory facilities can be used to process memory accesses. The VM kernel additionally includes routines that implement virtual communications and data-storage devices as well as device drivers that directly control the operation of underlying hardware communications and data-storage devices. Similarly, the VM kernel virtualizes various other types of I/O devices, including keyboards, optical-disk drives, and other such devices. The virtualization layer essentially schedules execution of virtual machines much like an operating system schedules execution of application programs, so that the virtual machines each execute within a complete and fully functional virtual hardware layer.
While the traditional virtual-machine-based virtualization layers, described with reference to FIGS. 5A-B , have enjoyed widespread adoption and use in a variety of different environments, from personal computers to enormous, distributed computing systems, traditional virtualization technologies are associated with computational overheads. While these computational overheads have been steadily decreased, over the years, and often represent ten percent or less of the total computational bandwidth consumed by an application running in a virtualized environment, traditional virtualization technologies nonetheless involve computational costs in return for the power and flexibility that they provide. Another approach to virtualization is referred to as operating-system-level virtualization (“OSL virtualization”). FIG. 5C illustrates the OSL-virtualization approach. In FIG. 5C , as in previously discussed FIG. 4 , an operating system 404 runs above the hardware 402 of a host computer. The operating system provides an interface for higher-level computational entities, the interface including a system-call interface 428 and exposure to the non-privileged instructions and memory addresses and registers 426 of the hardware layer 402. However, unlike in FIG. 5A , rather than applications running directly above the operating system, OSL virtualization involves an OS-level virtualization layer 560 that provides an operating-system interface 562-564 to each of one or more containers 566-568. The containers, in turn, provide an execution environment for one or more applications, such as application 570 running within the execution environment provided by container 566. The container can be thought of as a partition of the resources generally available to higher-level computational entities through the operating system interface 430. While a traditional virtualization layer can simulate the hardware interface expected by any of many different operating systems, OSL virtualization essentially provides a secure partition of the execution environment provided by a particular operating system. As one example, OSL virtualization provides a file system to each container, but the file system provided to the container is essentially a view of a partition of the general file system provided by the underlying operating system. In essence, OSL virtualization uses operating-system features, such as namespace support, to isolate each container from the remaining containers so that the applications executing within the execution environment provided by a container are isolated from applications executing within the execution environments provided by all other containers. As a result, a container can be booted up much faster than a virtual machine, since the container uses operating-system-kernel features that are already available within the host computer. Furthermore, the containers share computational bandwidth, memory, network bandwidth, and other computational resources provided by the operating system, without resource overhead allocated to virtual machines and virtualization layers. Again, however, OSL virtualization does not provide many desirable features of traditional virtualization. As mentioned above, OSL virtualization does not provide a way to run different types of operating systems for different groups of containers within the same host system, nor does OSL-virtualization provide for live migration of containers between host computers, as does traditional virtualization technologies.
The currently disclosed methods and systems may be implemented in a variety of different types of automated systems, from standalone personal computers and workstations to distributed applications running within large distributed-computer systems or cloud-computing facilities. The currently disclosed methods and systems may employ a wide range of different types of monitoring devices, communication devices, and sensors for conducting interactions with humans and observing interactions between humans. In general, monitoring devices include processors and output complex signals, such as video streams, while sensors may or may not include processors and generally produce simpler signals, such as numerical values corresponding to physical measurements. The currently disclosed methods and systems may be incorporated into a wide variety of different types of applications and systems, including call centers, automated-instruction systems, automated medical-diagnosis systems, automated relationship-analysis systems, and many additional types of applications and systems that are related to inferring the emotional states of human beings, monitoring the emotional states of human beings, and/or selecting actions, strategies, and approaches based on emotional states and the dynamics of emotional states of one or more human beings.
Monitoring devices include sensors, such as temperature sensors, which may emit integer or floating-point valued temperature indications, chemical sensors, which emit numerical representations of the concentrations of particular types or classes of chemical compounds, weight sensors, which emit floating-point indications of the weight of the physical system, and other such sensors. Monitoring devices may also include microphones, which emit a stream of numerical values comprising an audio signal, and video signals, which emit a stream of numerical values that together comprise an ordered series of frames of a video signal. Thus the observation value for a dynamical variable at a particular point in time may be a single integer or floating-point value, in certain cases, or may be a set of numerical values, in the case of microphones and video cameras.
The observed state S 614 of the physical system can be represented as a vector of observation values corresponding to each of multiple dynamical variables. The observed state S is a function of the internal state I 616, but since even the dimensions of the internal state are generally unknown, the internal state cannot itself be observed or measured but can only instead be inferred from the observed state S. Monitoring of the physical system, as shown in FIG. 6B , involves collecting monitoring-device outputs, over time, and representing the observed state of the physical system by a series of observed-state vectors 620-626. A timeline 628 represents a time period over which observations are collected. The observed system 602 changes in orientation, dimensions, and shape over time, as indicated by the various different physical manifestations of this system 630-636 arranged along the timeline to indicate the observed state of the physical system at particular points in time, such as an initial time point tn 638. The instantaneous observed state of the physical system is represented by the vector function S(t) 640, which returns the particular observed-state vector for a particular time t input to the function as an argument. The state-vector function can be thought of as a collection of parametric functions, such as the parametric function x1(t) 642, each returning an observation value for the particular time t input to the state-vector function. As indicated by expressions 644, the state-vector function and the parametric state-vector-element functions are functions of the current and previous internal states of the observed physical system. However, again, little or nothing may be known about the internal state, which can only be inferred from the observed states represented by the observed-state vectors returned by the state-vector function.
As discussed below, the current methods and systems collect observations, from various different types of monitoring devices and sensors, of one or more human participants in an interaction. These monitoring devices and sensors generally collected information about the appearance and surface characteristics of the human participants. It is assumed that a portion of the internal states of the human participants corresponds to what is commonly referred to as the emotional state of a human. However, the internal state of a human is extremely complex and only a fraction of the internal state is currently known and even a smaller fraction of the internal state is, in any way, accessible to observation. Thus, the currently disclosed methods and systems generate a timeseries of observed-state vectors, or accumulated monitor and sensor data, from which the currently disclosed methods and systems infer the emotional states of human participants in an interaction. The currently disclosed methods and systems may also generate a timeseries of emotional-state vectors for an automated system interacting with one or more human participants, where the emotional-state vectors are based on emotional-states that the automated system chooses to emulate at particular points in time during an interaction. The emotional-state vectors may be continuously, periodically, intermittently generated or may be generated on-demand.
As shown in FIG. 7B , the currently described emotional-state classification is two-dimensional 710, with a valence axis 712 representing one of two different coordinate axes that index a two-dimensional emotional plane or surface. As in FIG. 7A , valence values range from a maximally negative valence value 714 to a maximally positive valence value 716. A second coordinate axis 718 represents arousal. One method for determining an arousal value for a human participant, in which the arousal value is determined from the valence values, is discussed below. In general, the arousal value represents a degree of interest, enthusiasm, or participation in a human interaction. Arousal values range from a maximally negative arousal value 720, representing indifference and inattention, to a maximally positive arousal value 722 that represents a high level of interest, enthusiasm, and engagement. A combination of a valence value and an arousal value can be considered to be a vector or a pair of coordinates that represents a point on the two-dimensional emotional plane or surface 710 indexed by the valence and arousal coordinate axes. Each different point, or location, on the two-dimensional emotional-state plane or surface represents a distinct emotional state. Radial wedge-shaped areas, such as the wedge-shaped area defined by dashed lines 724 and 726, correspond to generalized emotional-state classes. For example, the wedge-shaped area defined by dashed lines 724 and 726 corresponds to an excited emotional state, with the radial distance of a point within this wedge-shaped area from the origin corresponding to an intensity of the emotion. These various generalized emotional-state classes are labeled in FIG. 7B , and include the emotional-state classes “alert,” “excited,” “happy,” “content,” “relaxed,” “calm,” “bored,” “depressed,” “sad,” “distressed,” “angry,” and “tense.” A slightly different emotional-state classification system is represented by table 730 in the lower left-hand portion of FIG. 7B , in which the three columns represent positive-valence, neutral-valence, and negative-valence emotional states and the table entries represent the different particular emotional-state classes or types within the positive-valence, neutral-valence, and negative-valence categories. Various different emotional-state classification systems can be used by the currently disclosed methods and systems, but the following discussion is based on the use of a two-dimensional emotional-state classification system in which each emotional state represents a point in a two-dimensional emotional-state plane or surface indexed by a valence coordinate axis and an arousal coordinate axis, as shown in FIG. 7B .
A derivation of a mathematical model for the oscillation is shown in a set of expressions 920 in the lower portion of FIG. 9A . The basic assumption is represented by expression 922. This assumption is that the force acting on the weight is equal to the negative of a spring constant k times the current position x of the weight with respect to the vertical coordinate axis 908. Substituting the mass of the weight times the second derivative of the position with respect to time, according to Newton's second law, for the force in equation 922 produces equation 924. This equation is rearranged to produce the simple, second-order ordinary differential equation 926 that can be easily solved by two integrations to produce expression 928, for which expression 930 is a more general form. This expression indicates that the position of the weight at a particular point in time t is equal to a maximum amplitude A times the cosine of the time-dependent phase angle. The time-dependent phase angle θ(t) is computable as the product of a frequency ω and the time t added to an initial phase angle φ.
There is a very interesting known phenomenon in which two identical mechanically connected oscillators that initially oscillate with arbitrary initial phase angles quickly become synchronized in their oscillations. FIGS. 10A-C illustrate synchronization of two identical mechanically connected oscillators and provide various different definitions of synchronization. As shown in FIG. 10A , two identical or nearly identical pendular oscillators 1002 and 1004 are mounted to a horizontal support 1006 and are both oscillating with the same natural frequency 1008 but with different initial phase angles 1010 and 1012. After a relatively short period of time, the oscillation of the two pendular oscillators synchronizes so that the φ phases of the two oscillators have opposite values and 1014 and 1016 and the two oscillators oscillate at a relative constant phase angle of 180°. This synchronization of oscillation occurs because physical systems at a higher energy level tend to seek an optimal path to dissipating energy in order to reach an equilibrium energy state with their environments. The optimal path for energy dissipation by the two connected oscillators is for the oscillations to synchronize at a relative phase angle of 180°, which allows the oscillators to impart a maximum, aggregate force to the horizontal support, thereby most efficiently dissipating their energies. Synchronization is also observed for non-identical oscillators and for many additional types of oscillators in many different configurations within many different environments.
One mathematical model for this natural tendency for oscillators to synchronize is provided by expression 1020 in FIG. 10C . This expression indicates that the rate of change of the phase of a particular oscillator i is related to the sum of the sines of the phase differences between the particular oscillator i and the other of N oscillators with which the particular oscillator is mechanically coupled, where the constant K is referred to as the “coupling constant.” When the coupling constant K is greater than a critical coupling-constant value KC, synchronization among the oscillators occurs. There are numerous different definitions of synchronization between two oscillating systems. In one definition, represented by expressions 1022, two oscillating systems O1 and O2 are synchronized when the state of each of the two systems is functionally determined by the state of the other system. The state of the first system is a set of observed values 1024 and the state of the second system is also a set of observed values 1026, as discussed above with reference to FIG. 6A-B . Of course, the states of the systems vary with time, as do the observed values that together comprise the states, as is also discussed above with reference to FIG. 6A-B . As indicated in expression 1028, the two systems are synchronized when the state of the first system is determined as a function F of the state of the second system and the state of the second system is determined as a function F−1 of the first system, with the function F−1 being the inverse function of the function F. A second definition of synchronization 1030 indicates that the two systems are synchronized when the parametric functions that represent the elements of the state vectors differ by only a time lag τ.
Synchronization of emotional states of two or more participants in interactions is also observed. As discussed further, below, detecting synchronization of the emotional states between human participants in interactions is one functional component of the currently disclosed methods and systems. There are many ways to view and characterize emotional synchronization. One way to view and characterize emotional synchronization is to compute the instantaneous phase coherence (“PC”) from instantaneous phases and instantaneous amplitudes computed from the observed sequence of valence values, as discussed, in detail, below. A different way to view and characterize emotional synchronization between two human participants or between a human participant and an automated system is to compare the emotional-state trajectories of the participants. FIGS. 11A-F illustrate this second approach to determining the degree of emotional synchronization between two human participants or between a human participant and an automated system.
The emotional compass displays results generated by complex computations, as discussed further below and as mentioned in the discussion of FIG. 8A , generally based on observed data values obtained by various different types of sensors and monitoring devices. The emotional compass represents a type of automated navigation tool that can be used both by human beings as well as by automated systems for many different purposes. As briefly mentioned above, an emotional compass may be used by a call-center application to periodically or continuously refine response strategies in order to helpfully and sensitively respond to caller requests during automated call answering. For example, the call-center application can use the emotional compass to detect when a caller is becoming frustrated or angry and to therefore alter the response strategy in order to better satisfy the caller's needs. As another example, an automated medical-information-provision application may use the emotional compass to detect when a user is embarrassed during a discussion and to then alter the discussion in ways that would likely alleviate user embarrassment. The emotional compass rather directly solves the current problem that automated systems are generally completely unaware of the emotional components of human interactions, unlike human beings, and therefore cannot competently conduct an interaction with human beings who expect those, with whom they interact, to be emotionally aware. The emotional compass is also useful for monitoring human interactions by counseling systems and diagnostic systems. The emotional compass may be extremely useful for automated teaching systems, as yet another example, to detect when there is a resonance or synchronization between an instructor using a current approach to provide information to a student or pupil and the student or pupil. The automated teaching system can use the emotional compass to detect when the student or pupil is bored or inattentive or when the student or pupil is becoming frustrated or angry because of the student's or pupil's inability to understand the information provided. Just as compasses and GPS systems allow users to efficiently and accurately traverse physical landscapes, the emotional compass allows users to efficiently and accurately navigate emotional landscapes in which human-to-human and human-to-computer interactions occur. An automated system can use the emotional compass to steer an interaction towards one or more desired outcomes, just as the user of a compass and GPS system can steer himself or herself towards a geographical destination. An automated system that monitors human interactions can use the emotional compass to annotate and analyze recorded human interactions.
The emotional compass is thus a collection of continuously, periodically, or intermittently generated emotional-state, metric, and derived data values or a collection of emotional-state, metric, and derived data values updated on demand. The emotional compass can be accessed through a graphical interface, an application programming interface, memory locations that store generated emotional-state vectors, one or more phase-coherence metrics, and one or more emotional-synchronization metrics, and/or a data stream transmitted through a communications medium.
The remaining portions of the current document are devoted to a detailed discussion of the computational methods that provide certain of the derived values and metric values that together comprise implementation of the above-discussed emotional compass. This detailed discussion employs mathematical expressions, control-flow diagrams of computational methods, and an exemplary computer program. These methods are incorporated into complex, real-world automated systems that monitor and analyze human interactions. The currently disclosed methods and systems which provide a foundation for the above-described emotional compass are neither abstract nor nonfunctional, but instead provide a greatly needed and useful improvement to the automated systems that interact with humans and the automated human-interaction-monitoring-and-analysis systems in which they are incorporated. The currently disclosed methods essentially provide automated systems with emotional awareness.
The EMD analysis method is illustrated in FIG. 15B-C . A small portion 1506 of the second timeseries 1504 shown in FIG. 15A is reproduced at a larger scale in plot 1510 of FIG. 15B . This timeseries represents the initial signal or function for a first iteration of the EMD analysis method. A circled “1” symbol 1512 indicates that this is the first step of an iteration of steps in the EMD analysis method. In a plot representing a second step of the EMD analysis method 1514, the extremal points in the timeseries are identified and represented by small filled-in disks, such as filled-in desk 1516. In a third step of the EMD analysis method, represented by plot 1518, the extremal points of the timeseries that represent local maxima are selected and an upper-envelope curve 1520 is constructed from the selected local-maximum points using a cubic-Hermite-spline method. In a fourth step of the EMD analysis method, represented by plot 1522, the extremal points of the timeseries that represent local minima are selected and a lower-envelope curve 1524 is constructed from the selected local-minimum points using the cubic-Hermite-spline method. Plot 1526 in FIG. 15C shows, using shading, the region in between the lower-envelope and upper-envelope curves. In a fifth step illustrated by plot 1528, an average curve, represented by dashed curve 1530 in plot 1528, is constructed within the region between the lower-envelope and upper-envelope curves. Each point of the average curve is located equidistant from the lower-envelope curve and the upper-envelope curve, as indicated by arrows 1532 and 1534. In a sixth step illustrated in plot 1536, the average curve is subtracted from the timeseries shown in plot 1510 in FIG. 15B to generate a proto-IMF. The proto-IMF is plotted in plot 1538. The proto-IMF then becomes a new timeseries for another iteration of steps 1 through 7. Plot 1540 shows the upper-envelope and lower-envelope curves and average curve generated from the proto-IMF in the fifth step of the next iteration of the EMD method. When the average curve generated in the fifth step of an iteration of steps 1-6 is within a threshold value of being a horizontal line, the proto-IMF is promoted to the next IMF identified by the EMD method and is subtracted from the current initial timeseries to generate a next initial timeseries that is the starting point for a next round of iterations that generate a next IMF.
In step 1625 of the inner loop, the routine “EMD” determines the maximum and minimum extrema in the dataset cProtoIMF, as discussed above with reference to plot 1514 in FIG. 15B . In step 1626, the routine “EMD” generates a spline dataset for the maximum extrema and a spline dataset for the minimum extrema. Each spline dataset, as discussed above with reference to 16A, includes an ordered sequence of knots, each knot representing an extremal data point. The spline datasets are used to generate envelope curves by the cubic-Hermite-spline technique. In step 1627, the upper-envelope and lower-envelope curves are generated from the spline datasets, as discussed above with reference to plots 1518 and 1522 in FIG. 15B . In step 1628, the routine “EMD” generates an average curve, as discussed above with reference to plot 1528 in FIG. 15C . In step 1629, a new proto-IMF is generated as discussed above with reference to plots 1536 and 1538 in FIG. 15C . In step 1630, the new proto-IMF is compared, in the first iteration of the inner loop of steps 1625-1632, to the timeseries DS and, in subsequent iterations, to the previous proto-IMF pProtoIMF. In certain implementations, a sum of the difference, SD, is computed and compared to a threshold SD value. The following expression indicates how the SD is computed for a current proto-IMF k and a previous proto-IMF k−1:
-
- where hk(t) is the current proto-IMF;
- hk-1(t) is the previous proto-IMF;
- t is the temporal index of data points in the proto-IMFs; and
- T is the final temporal index.
When SD is less than a threshold value, as determined in step 1631, the routine “EMD” breaks out of the inner loop of steps 1625-1632. Otherwise, in step 1632, the local dataset variable pProtoIMF is set to the contents of local variable cProtoIMF and control flows back to step 1625 for a next iteration of the inner loop of steps 1625-1632. When the routine “EMD” breaks out of the inner loop of steps 1625-1632, the routine “EMD” determines whether the current proto-IMF is a valid IMF. If so, the current proto-IMF is added to the set of IMFs IMIs, in step 1634. Criteria for a valid IMF include: (1) the number of local minima and the number of local maxima differ by at most 1; and (2) the mean value is less than a small threshold value. Other criteria are possible. In step 1635, the routine “EMD” updates the timeseries DS by subtracting the current proto-IMF from DS. When the updated timeseries DS meets a stopping criterion, as determined in step 1636, DS is added to the set of IMFs as the remainder or trend, and step 1638, and the routine “EMD” terminates, in step 1640. Otherwise, in step 1637, cProtoIMF is set to DS and control flows back to step 1625 to begin a new set of iterations of the inner loop of steps 1625-1632.
- where hk(t) is the current proto-IMF;
The C++ implementation shown in FIG. 17A-K omits include statements that include various C++ libraries, including the libraries cmath, stdlib, stdio, cstring, and time. The C++ implementation shown in FIG. 17A-K is a simple implementation of the EMD analysis method that uses only simple data structures, such as arrays. EMD implementations may include additional internal methods and features to handle a variety of known problems with simplistic EMD implementations, including deficiencies in envelope generation, problems with generating envelopes at the beginning and end of a timeseries, stability problems with certain types of timeseries, and other known problems. One set of implementations computes an ensemble of IMFs by introducing stochastic noise into the analyzed timeseries and by computing the final IMFs as ensemble averages. Various alternative types of stopping criterion and proto-IMF difference computations may be used in different implementations of the EMD analysis method.
Expression 1810, at the top of FIG. 18B , shows that the cosine function is equivalent to shifting the sine function to the left by π/2 radians. While a cosine function can be used to model an oscillation, it is often more convenient to model an oscillation using the real portion of the expression Aeiθ, as indicated by expression 1812. This expression is equivalent to the expression A(cos θ+i*sin θ), as indicated in expression 1814. The real portion of this expression is A cos θ, as indicated in expression 1816, where θ=ωt+φ.
When analyzing non-periodic and nonstationary timeseries, the simple trigonometric-function-based models that describe periodic oscillations are not suitable. However, the concepts of frequency, amplitude, phase are still useful characterizations for local, discrete portions of the nonperiodic and nonstationary timeseries, even though there is not a single frequency or amplitude for the entire timeseries, as in the case of periodic timeseries. Thus, rather than a global amplitude, phase, and frequency, analytic methods need to determine the instantaneous amplitude, phase, and frequency at specific time points within the timeseries. The timeseries is modeled as a function y(t) defined by the expression 1818, which has a form similar to the form of the model for periodic oscillations in expressions 810-816. The function y(t) models a general varying timeseries as a composition of component functions u(t) and v(t) or, equivalently, component functions a(t) and θ(t) which are an instantaneous-amplitude function and an instantaneous-phase function, respectively. The function u(t)=a(t)*cos(θ(t)) is essentially a function of two unknowns a(t) and θ(t). However, the function v(t) can be obtained from u(t) via a Hilbert transform. The Hilbert transform is commonly defined by expression 1820. In this expression, “P.V.” means “principal value,” which essentially selects the principal branch of a multi-valued function. A simple example of a multi-valued function is the square-root function y=√{square root over (x)}. The value of the square-root function for x=4 is either −2 or 2. The principal value for the square-root function is taken to be the positive value, rendering the principal branch of the square-root function single valued. As indicated by expression 1822, the Hilbert transform of the cosine function is the sine function. This indicates that the Hilbert transform shifts a function u by −π/2 radians while leaving the amplitude of the function unchanged. The integral in the expression for the Hilbert transform represents a convolution. FIG. 18C illustrates a convolution of the simple function ƒ(x), shown in plot 1824, with the simple function g(x), shown in plot 1826. The function g(−x) is plotted in plot 1828. Reversing the sign of the argument results in reflecting the function across the vertical axis. The convolution of the functions ƒ(x) and g(x) involves reflecting the function g(τ) across the vertical axis, where the horizontal axis represents time τ, by using the argument t−τ, where t is a constant time value, moving the reflected function g(t−τ) to the left of the minimal time point at which the function ƒ(τ) has a non-zero value, as shown in plot 1830, and then continuously moving the function g(t−τ) to the right, past the maximum time point at which the function f(τ) has a non-zero value, and computing, at each time point, the value of the integral:
the computed value generating a point in the result of the convolution, as shown in a plot 1832. Plot 1834 shows the result of the convolution, denoted symbolically as ƒ(t)*g(t), where the symbol “*” refers to convolution rather than multiplication. Note that ƒ(t)*g(t) has nonzero values only when the functions ƒ(t) and g(t−τ) overlap, as at time points 1836 and 1838. Thus, as indicated by expressions 1840 in
Turning to FIG. 20B , the phase-coherence value for a time interval within IMF j, cj, is computed according to expression 2030. An amplitude for the same time interval in the same IMF j can be computed according to expression 2032. The phase coherence for two participants, cj, for a particular time period within IMF j is computed in the same fashion as described by equation 2008 in FIG. 20A . The amplitude aj for the same particular time period within IMF j for two participants is computed as the average maximum amplitude in the time period within the instantaneous-amplitude functions for the two participants. The computed amplitude aj can then be used, along with the sum of the computed amplitudes ai for i ranging over the IMFs for the two participants to generate a weight wj for the jth IMF. This weight can then be used to generate a weighted phase-coherence value {tilde over (c)}j according to expression 2034, where {tilde over (c)}j=wj*cj. Phase-coherence values for a particular time interval within all of the n IMFs for two participants can then be calculated as the sum of the phase-coherence values for each IMF, according to expression 2036, as the average of the individual-IMF coherence values, according to expression 2038, or by some other similar method for combining the individual-IMF coherence values to generate a phase-coherence value for a particular time interval within all of the n−1 IMFs for two participants. An instantaneous phase-coherence can be similarly computed for three or more participants as well as for multiple pairs of participants and other combinations of participants.
The present invention has been described in terms of particular embodiments, it is not intended that the invention be limited to these embodiments. Modifications within the spirit of the invention will be apparent to those skilled in the art. For example, any of many different implementations of the currently disclosed methods and systems can be obtained by varying various design and implementation parameters, including modular organization, control structures, data structures, hardware, operating system, and virtualization layers, automated orchestration systems, virtualization-aggregation systems, and other such design and implementation parameters.
Claims (21)
1. A first automated system that monitors interactions between two or more humans or between a human and the first automated system or a second automated system, the first automated system comprising:
one or more computer systems, each having one or more processors and one or more memories;
one or more monitoring devices and/or sensors; and
computer instructions, stored in one or more of the one or more memories that, when executed by one or more of the one or more processors of one or more of the one or more computer systems, control the emotionally aware, automated system to
receive output data from the monitoring devices and/or sensors,
process the received output data to continuously, periodically, or intermittently generate emotional-state vectors for one or more human or automated-system interaction participants,
process the received output data and/or generated emotional-state vectors to generate one or more phase-coherence metrics and one or more emotional-synchronization metrics, and
use the generated emotional-state vectors, the one or more generated phase-coherence metrics, and the one or more emotional-synchronization metrics to generate and output a response to one or more human interaction participants.
2. The first automated system of claim 1 incorporated into, or accessed by, an application, the second automated system, or a third automated system that implements one of:
a call center;
an automated-instruction system;
an automated medical-diagnosis system; and
an automated relationship-analysis system.
3. The first automated system of claim 1 wherein the monitoring devices and/or sensors include one or more of:
one or more audio sensors, such as microphones;
a video camera;
a user data-input device; and
physiological sensors.
4. The first automated system of claim 1 wherein each emotional-state vector includes:
a valence element having a value that indicates a degree of positive/negative feeling; and
an arousal element having a value that indicates a degree of interest, enthusiasm, and/or participation.
5. The first automated system of claim 1 wherein the received output data is processed to generate emotional-state vectors for one or more human or automated-system interaction participants by:
receiving, for each participant, a timeseries dataset generated from the received output data;
generating a valence dataset from each timeseries dataset; and
for each generated valence dataset,
generating multiple intrinsic mode functions using an empirical-mode-decomposition method,
generating, from intrinsic mode functions selected from the multiple intrinsic mode functions, a composite analytical function, using a Hilbert transform,
generating an instantaneous-amplitude function, an instantaneous-frequency function, and an instantaneous-phase function from the composite analytical function for each intrinsic mode function,
generating a quantized-and-compressed instantaneous-amplitude function from the generated instantaneous-amplitude functions,
generating a quantized-and-compressed instantaneous-frequency function from the generated instantaneous-frequency functions, and
generating a time-ordered sequence of emotional-state vectors from the quantized-and-compressed instantaneous-frequency function and the quantized-and-compressed instantaneous-amplitude function.
6. The first automated system of claim 5
wherein the quantized-and-compressed instantaneous-amplitude function is generated by
aggregating the instantaneous-amplitude functions generated from each of multiple intrinsic mode functions to generate an aggregate instantaneous-amplitude function, and
using a quantization-and-compression method that rescales the aggregate instantaneous-amplitude function and attempts to map values in the rescaled aggregate instantaneous-amplitude function to final values with equal probabilities of occurrence in the quantized-and-compressed instantaneous-amplitude function; and
wherein the quantized-and-compressed instantaneous-frequency function is generated by
aggregating the instantaneous-frequency functions generated from each of multiple intrinsic mode functions to generate an aggregate instantaneous-frequency function, and
using a quantization-and-compression method that rescales the aggregate instantaneous-frequency function and attempts to map values in the rescaled aggregate instantaneous-frequency function to final values with equal probabilities of occurrence in the quantized-and-compressed instantaneous-frequency function.
7. The first automated system of claim 5 wherein the received output data and/or generated emotional-state vectors are processed to generate one or more emotional-synchronization metrics by one of:
computing instantaneous phase-difference functions from instantaneous phases functions; and
comparing emotional-state paths of two or more interaction participants.
8. The first automated system of claim 7 wherein comparing the emotional-state paths of two interaction participants comprises:
numerically labeling a set of emotional-state vectors for each of the two interaction participants to indicate time points associated with the emotional-state vectors to generate a path of successive emotional-state vectors for each interaction participant,
for each of n pairs of emotional-state vectors having the same numerical label selected from the two paths of successive emotional-state vectors, computing a difference vector and adding the computed difference vector to a difference-vector sum;
dividing the difference-vector sum by n to produce an average difference vector; and
computing a synchronization value as the average of the magnitudes of the average difference vector subtracted from the n difference vectors.
9. The first automated system of claim 7 wherein instantaneous phase-difference functions are computed for two participants from instantaneous-phase functions and instantaneous-amplitude functions computed for the two participants by:
for each intrinsic mode function,
computing the difference between the instantaneous-phase functions corresponding to the intrinsic mode function for each of the two participants to generate an instantaneous phase-difference function.
10. The first automated system of claim 7 wherein an emotional-synchronization metric for the two participants is computed by differentiating the instantaneous phase-difference functions.
11. The first automated system of claim 7 wherein a phase-coherence metric is computed for two participants from the instantaneous phase-difference functions by:
for a time interval T,
computing, from the instantaneous phase-difference functions, phase-coherence values for time interval T by integrating an exponential function of each instantaneous phase-difference function over time interval T,
computing a weight for each phase-coherence value from the instantaneous-amplitude function computed from the intrinsic mode function corresponding to the phase-coherence value, and
computing a phase-coherence-metric value from the phase-coherence values and weights.
12. The first automated system of claim 1 further comprising an automated emotional compass that incorporates a selection of the generated emotional-state vectors, one or more phase-coherence metrics, and one or more emotional-synchronization metrics into one or more of:
an emotional-compass data structure; and
a graphical representation of the emotional-compass data structure.
13. A method for automatically generating an emotional-compass data structure containing one or more emotional-state vectors, one or more phase-coherence metrics, and one or more emotional-synchronization metrics, the method comprising:
employing one or more computer systems, each having one or more processors and one or more memories and one or more monitoring devices and/or sensors to
monitor interactions between two or more humans or between a human and the first automated system or an automated system,
generate output data from the monitoring devices and/or sensors,
process the output data to continuously, periodically, or intermittently generate emotional-state vectors for one or more human or automated-system interaction participants,
process the received output data and/or generated emotional-state vectors to generate one or more phase-coherence metrics and one or more emotional-synchronization metrics, and
use the generated emotional-state vectors, the one or more generated phase-coherence metrics, and the one or more emotional-synchronization metrics to generate and output a response to one or more human interaction participants.
14. The method of claim 13 wherein each emotional-state vector includes:
a valence element having a value that indicates a degree of positive/negative feeling; and
an arousal element having a value that indicates a degree of interest, enthusiasm, and/or participation.
15. The method of claim 13 wherein the received output data is processed to generate emotional-state vectors for one or more human or automated-system interaction participants by:
receiving, for each participant, a timeseries dataset generated from the received output data;
generating a valence dataset from each timeseries dataset;
for each generated valence dataset,
generating multiple intrinsic mode functions using an empirical-mode-decomposition method,
generating, from intrinsic mode functions selected from the multiple intrinsic mode functions, a composite analytical function, using a Hilbert transform,
generating an instantaneous-amplitude function, an instantaneous-frequency function, and an instantaneous-phase function from the composite analytical function for each intrinsic mode function,
generating a quantized-and-compressed instantaneous-amplitude function from the generated instantaneous-amplitude functions,
generating a quantized-and-compressed instantaneous-frequency function from the generated instantaneous-frequency functions, and
generating a time-ordered sequence of emotional-state vectors from the quantized-and-compressed instantaneous-frequency function and the quantized-and-compressed instantaneous-amplitude function.
16. The method of claim 15
wherein the quantized-and-compressed instantaneous-amplitude function is generated by
aggregating the instantaneous-amplitude functions generated from each of multiple intrinsic mode functions to generate an aggregate instantaneous-amplitude function, and
using a quantization-and-compression method that rescales the aggregate instantaneous-amplitude function and attempts to map values in the rescaled aggregate instantaneous-amplitude function to final values with equal probabilities of occurrence in the quantized-and-compressed instantaneous-amplitude function; and
wherein the quantized-and-compressed instantaneous-frequency function is generated by
aggregating the instantaneous-frequency functions generated from each of multiple intrinsic mode functions to generate an aggregate instantaneous-frequency function, and
using a quantization-and-compression method that rescales the aggregate instantaneous-frequency function and attempts to map values in the rescaled aggregate instantaneous-frequency function to final values with equal probabilities of occurrence in the quantized-and-compressed instantaneous-frequency function.
17. The method of claim 15 wherein the received output data and/or generated emotional-state vectors are processed to generate one or more emotional-synchronization metrics by one of:
computing instantaneous phase-difference functions from instantaneous phases functions; and
comparing emotional-state paths of two or more interaction participants.
18. The method of claim 17 wherein comparing the emotional-state trajectories of two interaction participants comprises:
numerically labeling a set of emotional-state vectors for each of the two interaction participants to indicate time points associated with the emotional-state vectors to generate a path of successive emotional-state vectors for each interaction participant,
for each of n pairs of emotional-state vectors having the same numerical label selected from the two paths of successive emotional-state vectors, computing a difference vector and adding the computed difference vector to a difference-vector sum;
dividing the difference-vector sum by n to produce an average difference vector; and
computing a synchronization value as the average of the magnitudes of the average difference vector subtracted from the n difference vectors.
19. The method of claim 17 wherein instantaneous phase-difference functions are computed for two participants from instantaneous-phase functions and instantaneous-amplitude functions computed for the two participants by:
for each intrinsic mode function,
computing the difference between the instantaneous-phase functions corresponding to the intrinsic mode function for each of the two participants to generate an instantaneous phase-difference function.
20. The method of claim 19 wherein an emotional-synchronization metric for the two participants is computed by differentiating the instantaneous phase-difference functions.
21. The method of claim 19 wherein a phase-coherence metric is computed for two participants from the instantaneous phase-difference functions by:
for a time interval T,
computing, from the instantaneous phase-difference functions, phase-coherence values for time interval T by integrating an exponential function of each instantaneous phase-difference function over time interval T,
computing a weight for each phase-coherence value from the instantaneous-amplitude function computed from the intrinsic mode function corresponding to the phase-coherence value, and
computing a phase-coherence-metric value from the phase-coherence values and weights.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/936,092 US12638912B1 (en) | 2023-12-18 | 2024-11-04 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/544,055 US12164680B1 (en) | 2023-12-18 | 2023-12-18 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
| US18/936,092 US12638912B1 (en) | 2023-12-18 | 2024-11-04 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/544,055 Continuation US12164680B1 (en) | 2023-12-18 | 2023-12-18 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US12638912B1 true US12638912B1 (en) | 2026-05-26 |
Family
ID=93796496
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/544,055 Active US12164680B1 (en) | 2023-12-18 | 2023-12-18 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
| US18/936,092 Active US12638912B1 (en) | 2023-12-18 | 2024-11-04 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/544,055 Active US12164680B1 (en) | 2023-12-18 | 2023-12-18 | Automated methods and systems that infer, track, store, and report emotional states and emotional dynamics to render computational systems emotionally aware |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US12164680B1 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12656879B2 (en) * | 2019-04-02 | 2026-06-16 | Project Dasein Llc | Leveraging machine learning and fractal analysis for classifying motion |
| US20260067488A1 (en) * | 2024-09-03 | 2026-03-05 | City University Of Hong Kong | Encoding and decoding for face videos |
| CN120913602B (en) * | 2025-10-01 | 2025-12-23 | 港湾之星健康生物(深圳)有限公司 | A Layered Fusion Method for VEM-Token Sentiment Synchronization Function |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050143138A1 (en) * | 2003-09-05 | 2005-06-30 | Samsung Electronics Co., Ltd. | Proactive user interface including emotional agent |
| US20140324749A1 (en) * | 2012-03-21 | 2014-10-30 | Alexander Peters | Emotional intelligence engine for systems |
| US20160288708A1 (en) * | 2015-03-30 | 2016-10-06 | Panasonic Automotive Systems Company Of America, Division Of Panasonic Corporation Of North America | Intelligent caring user interface |
| US10437332B1 (en) * | 2015-10-30 | 2019-10-08 | United Services Automobile Association | System and method for emotional context communication |
-
2023
- 2023-12-18 US US18/544,055 patent/US12164680B1/en active Active
-
2024
- 2024-11-04 US US18/936,092 patent/US12638912B1/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050143138A1 (en) * | 2003-09-05 | 2005-06-30 | Samsung Electronics Co., Ltd. | Proactive user interface including emotional agent |
| US20140324749A1 (en) * | 2012-03-21 | 2014-10-30 | Alexander Peters | Emotional intelligence engine for systems |
| US20160288708A1 (en) * | 2015-03-30 | 2016-10-06 | Panasonic Automotive Systems Company Of America, Division Of Panasonic Corporation Of North America | Intelligent caring user interface |
| US10437332B1 (en) * | 2015-10-30 | 2019-10-08 | United Services Automobile Association | System and method for emotional context communication |
Also Published As
| Publication number | Publication date |
|---|---|
| US12164680B1 (en) | 2024-12-10 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |