The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
Embodiments of the present invention provide a method, system and computer program product for integrating emotional state in a message system. In accordance with an embodiment of the present invention, the emotional state of a conversant to an electronic conversation can be acquired. For example, the emotional state can be acquired through facial pattern recognition or voice pattern recognition. Thereafter, the emotional state can be classified in meta-data and affixed to a message from the conversant to a designated recipient of the message. Upon receipt, the meta-data can be processed to annotate the message when rendered for viewing by the designated recipient. In this way, the proper emotional context can supplement the content of the message.
In further illustration,
The messenger client 160 utilized by the message composer 100 further can be coupled to emotional state detection logic 180. The emotional state detection logic 180 likewise can be coupled to an emotional state sensor 170 disposed in proximity to the message composer 100. The emotional state sensor 170 can include an automated facial pattern recognizer such as that described in Chellapa P., Wilson C., and Sirohey S. Human and Machine Recognition of Faces: A Survey, in Proc. IEEE, vol. 83, no. 5, at 705-740 (1995). As another example, the emotional state sensor 170 can include an automated voice based emotional state recognizer such as that described in S. Giripunje and A. Panat, Speech Recognition for Emotions with Neural Network: A Design Approach, in Knowledge-Based Intelligent Information and Engineering Systems at 640-645 (Heidelberg 1994).
The emotional state sensor 170 can include a configuration for detecting an emotional state in the message composer 100 at the time when the message composer 100 composes the message 160. In this regard, the emotional state detection logic 180 can include program code enabled to drive the emotional state sensor 170 to acquire the emotional state of the message composer 100 and to associate the acquired emotional state with pre-configured emotional state meta-data 160B. The program code of the emotional state detection logic 180 yet further can be enabled to attach the emotional state meta data 160B to the message 160A, for example by embedding the emotional state meta-data 160B in a header of the message 160A.
Each of the messenger clients 160 in the multiple different client computing platforms 120 can be coupled to emotional state integration logic 200. The emotional state integration logic 200 can include program code enabled to detect the presence of emotional state meta-data 160B in a received message 160A. Upon detecting the presence of the emotional state meta-data 160B, the program code of the emotional state integration logic 200 can be enabled to process the emotional state meta-data 160B to supplement a view of the message 160A in the messenger client 160. For instance, an iconic indicator like an emoticon can be rendered adjacent to the message to indicate the emotional state of the message composer 100.
In yet further illustration,
In block 250, the emotional state information can be retrieved from the meta-data and in block 260, a corresponding context can be located for the emotional state. In this regard, the emotional state can be matched with a pre-configured context such as the message composer is “happy”, “sad”, “angry”, “frustrated”, etc. Thereafter, the context can be rendered in association with the message in block 270, such as in the form of an emoticon placed in the messaging client. Concurrently, in block 240 the message itself can be rendered for the benefit of the designated recipient of the message. Finally, in block 280 the process can end.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.