system
The system automates meeting scheduling by analyzing participant calendars to suggest optimal dates and times, reducing manual effort and ensuring efficient coordination.
Patent Information
- Application Number
- JP2024141631
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-22
- Publication Date
- 2026-03-06
AI Technical Summary
Conventional meeting scheduling methods are time-consuming and labor-intensive, requiring manual adjustment of multiple participants' schedules and are inefficient due to difficulties in accurately grasping each participant's availability, leading to delays and extensive communication.
A system that allows users to input meeting details, with a server analyzing participant calendars to suggest optimal dates and times, notifying participants, and automating the confirmation and calendar updates for efficient scheduling.
The system automates meeting scheduling, reducing manual effort and ensuring faster, more efficient coordination by determining optimal meeting times based on participant availability and confirming schedules with minimal user interaction.
Smart Images

Figure 2026038296000001_ABST
Abstract
Description
[Technical Field]
[0001] The technology of the present disclosure relates to a system. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]
[0004] Conventional methods for scheduling meetings require manually adjusting the individual schedules of many participants, which is extremely time-consuming and labor-intensive. It is also difficult to accurately grasp each participant's schedule, which can result in delays in scheduling the meeting. Furthermore, finding free time slots for all participants is difficult and requires a lot of back-and-forth communication, making it inefficient. A system that solves these problems and allows for quick and efficient scheduling of meetings is needed. [Means for solving the problem]
[0005] This invention provides a means for users to input detailed meeting information and a means for the server to receive and store that information. Additionally, the server has a means for acquiring participants' calendar information, analyzing it, and listing available times. Furthermore, the server has a means for selecting the optimal meeting date and time based on the available times of all participants and notifying all participants of that date and time. The invention also includes a means for users to confirm the notified meeting date and time and send their approval or rejection. Finally, the server has a means for confirming everyone's approval, finalizing and notifying the meeting date and time, and automatically adding that information to each participant's calendar. This allows for quick and efficient scheduling of meeting dates.
[0006] A "user" is someone who uses the system to enter meeting details and arrange meetings.
[0007] "Server" refers to a computer system that receives, stores, analyzes, and notifies users of conference information.
[0008] "Detailed information" refers to information necessary to set up a meeting, specifically a list of participants, a range of dates, and a desired time slot.
[0009] "Participants" means people who are expected to attend a conference.
[0010] "Calendar information" refers to schedule data in which the schedules of participants are recorded.
[0011] "Free time" refers to time in the calendar that has no scheduled events.
[0012] The "optimal meeting date and time" refers to the most suitable date and time among the available times of all participants.
[0013] "Notification" refers to the act of sending information about a conference from the server to users and participants.
[0014] "Acceptance" refers to the act of a user or participant indicating their willingness to accept the proposed meeting date and time.
[0015] "Confirmation" refers to the act of finally deciding on a meeting date and time that is approved by all participants.
[0016] "Add" refers to the act of incorporating the confirmed meeting date and time into the participants' calendar information. [Brief explanation of the drawings]
[0017] [Figure 1] 1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 11] FIG. 3 is a sequence diagram showing a processing flow of the data processing system according to the first embodiment. [Figure 12] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 1. [Figure 13] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system according to the second embodiment when an emotion engine is combined. [Figure 14] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 2 when an emotion engine is combined. DETAILED DESCRIPTION OF THE INVENTION
[0018] An example of an embodiment of a system according to the technology of the present disclosure will be described below with reference to the accompanying drawings.
[0019] First, the terms used in the following description will be explained.
[0020] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, a processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), and an APU (Accelerated Processing Unit).
[0021] In the following embodiments, a coded RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by a processor.
[0022] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.
[0023] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), Bluetooth (registered trademark), etc.
[0024] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" is also applied when three or more things are expressed connected by "and / or."
[0025] [First embodiment]
[0026] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0027] 1, a data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0028] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0029] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.
[0030] The reception device 38 includes a touch panel 38A, a microphone 38B, and the like, and receives user input. The touch panel 38A detects contact with an indicator (for example, a pen or a finger) to receive user input by the touch of the indicator. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0031] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form of expression that the user 20 can perceive (for example, audio and / or text). The display 40A displays visible information such as text and images in accordance with instructions from the processor 46. The speaker 40B outputs audio in accordance with instructions from the processor 46. The camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0032] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54.
[0033] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0034] 2, in the data processing device 12, a specific process is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific process is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0035] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0036] In the smart device 14, the processor 46 performs the reception output process. The storage 50 stores a reception output program 60. The reception output program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0037] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0038] The system of the present invention automates the scheduling of participants and efficiently sets meeting dates. In this system, a user inputs detailed meeting information, and the server processes that information to adjust the schedules of all participants and propose the optimal meeting date and time.
[0039] Below is a natural language explanation of how the system's programs work.
[0040] Program processing
[0041] The system schedules meetings using the following steps:
[0042] 1. Enter the meeting information
[0043] The user inputs the details of the meeting from the terminal, for example, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0044] 2. Receipt and storage of data
[0045] The server receives and stores the meeting information entered by the user, including the participant list, date range, and desired time slot.
[0046] 3. Get calendar information
[0047] The server retrieves the calendar information of each participant based on the participant list. For example, the server retrieves information such as "Tuesday 10:00-12:00 is a meeting" from A's calendar and "Thursday 14:00-16:00 is a meeting" from B's calendar.
[0048] 4. Free Time Analysis
[0049] The server parses the calendar information and lists the available times for all participants, for example, Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00.
[0050] 5. Selection of optimal dates
[0051] The server compares the free times of all participants and selects the best time when everyone is available, for example, Wednesday 13:00-14:00.
[0052] 6. Proposal of a schedule
[0053] The server notifies all participants of the optimal meeting date it has selected. For example, the server sends a notification to A and B saying, "I would like to schedule a meeting on Wednesday from 13:00 to 14:00."
[0054] 7. Confirmation and approval of schedule
[0055] Participants check the notified meeting date and time and send a response of approval or rejection. For example, participants A and B each send an "approval" response from their devices.
[0056] 8. Final Decision and Notice
[0057] The server confirms everyone's approval, confirms the meeting date and time, and notifies everyone again. For example, if everyone approves, Wednesday 13:00-14:00 is confirmed as the final meeting date. The server sends a confirmation notification and automatically updates the calendar information based on it.
[0058] 9. Update your calendar
[0059] The server automatically adds the confirmed meeting date and time to each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0060] This system allows users to efficiently schedule meetings without requiring many manual operations, thereby realizing faster and more efficient meeting scheduling.
[0061] The processing flow will be explained below.
[0062] Step 1:
[0063] The user uses the terminal to input the details of the meeting. Specifically, the user inputs the participant list, the date range, and the desired time slot. For example, the user inputs, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0064] Step 2:
[0065] The terminal sends the meeting details entered by the user to the server, where the data is encoded and transmitted to the server over a secure channel.
[0066] Step 3:
[0067] The server stores the meeting details received from the user in a database, including the participant list, date range, and preferred time slot.
[0068] Step 4:
[0069] The server retrieves the participant list from the database and the calendar information of each participant, which is obtained from the API of the calendar system used by the participants.
[0070] Step 5:
[0071] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times for a period of time (e.g., Tuesday through Thursday of next week).
[0072] Step 6:
[0073] The server selects the best time to meet based on the availability of all participants. The best time is calculated based on the time period when everyone is free. For example, it identifies a time period when all participants are free, such as Wednesday from 13:00 to 14:00.
[0074] Step 7:
[0075] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[0076] Step 8:
[0077] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0078] Step 9:
[0079] The server receives and aggregates everyone's responses. It checks whether everyone has accepted the meeting date and time. If everyone has accepted, it proceeds to the next step.
[0080] Step 10:
[0081] After confirming everyone's approval, the server confirms the meeting date and time and sends a notification again. The confirmation notification is automatically added to the calendars of all participants.
[0082] Step 11:
[0083] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0084] The system's process allows users to efficiently schedule meetings.
[0085] Example 1
[0086] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0087] Coordinating and managing meetings is a time-consuming and laborious task, and it is particularly difficult to consider the schedules of all participants. Conventional methods require manual input and confirmation of each participant's schedule, which is time-consuming and prone to errors. It is also extremely difficult to find an optimal date and time that matches everyone's schedules. The present invention aims to solve these problems and make meeting scheduling more efficient.
[0088] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0089] In this invention, the server includes means for a user to input detailed information about the conference, means for the server to receive and save the detailed information about the conference, means for the server to acquire schedule information about participants, means for the server to analyze the acquired schedule information and list free times, means for the server to select the optimal conference date and time from the free times of all participants, means for the server to notify all participants of the selected conference date and time, means for the user to check the notified conference date and time and send an approval or rejection, means for the server to confirm the approval of all participants and notify them of the final conference date and time, and means for the server to automatically add the finalized conference date and time to the schedule management device of each participant, thereby enabling automatic setting of the conference date and time and efficient coordination.
[0090] "User" refers to the person who enters meeting details and uses the system.
[0091] "Server" refers to the device or system that receives and stores meeting details and analyzes participant schedule information.
[0092] "Detailed meeting information" refers to information necessary for setting up a meeting, and specifically includes a list of participants, a range of dates, and a desired time slot.
[0093] "Participant" means a person listed as attending a meeting.
[0094] "Schedule information" refers to calendar and schedule data held by each participant.
[0095] "Calendar API" refers to a program interface for retrieving and updating schedule information in collaboration with external calendar services.
[0096] "Free time" refers to time periods when participants have no scheduled appointments.
[0097] The "optimal meeting date and time" refers to the most suitable meeting date and time that allows all participants to attend.
[0098] "Notification" refers to the system informing participants of the best meeting time and date and other important information.
[0099] "Approval or rejection" refers to the user's action of expressing their willingness to accept or reject the proposed meeting date and time.
[0100] "Schedule Management Device" refers to a digital device used to manage and display Participant's calendar information.
[0101] This system automates the scheduling of participants and efficiently sets meeting dates. Users input detailed meeting information, and the server processes that information to adjust the schedules of all participants and suggest the best time and date for the meeting.
[0102] Program processing overview
[0103] The system works as follows:
[0104] 1. User enters meeting information
[0105] The user uses their own terminal to enter detailed information about the meeting (participant list, date range, desired time slot) into a dedicated input form.
[0106] 2. The server receives and stores the data
[0107] The server receives the meeting information sent by the user and stores it in a database, including the participant list, date range, and desired time slot.
[0108] 3. The server retrieves the calendar information
[0109] Based on the saved participant list, the server calls each participant's calendar API (e.g., Google® Calendar API, Microsoft® Graph API) to obtain schedule information. For example, it obtains real-time information such as "Participant A has a meeting on Tuesday from 10:00 to 12:00" and "Participant B has a meeting on Thursday from 14:00 to 16:00."
[0110] 4. Server free time analysis
[0111] The server analyzes the calendar information and lists the free time slots for each participant, using, for example, Python's pandas library to calculate overlapping time slots and free time slots.
[0112] 5. The server selects the optimal schedule
[0113] The server selects a time slot that is available to all participants from the list of available times. For example, it selects "Wednesday 13:00-14:00" as the best time and date.
[0114] 6. The server proposes a date
[0115] The server notifies all participants of the optimal meeting date it has selected. Notifications are usually sent using an email service (e.g., SendGrid) or a messaging API (e.g., Twilio). For example, a notification saying "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM" is sent to participants A and B.
[0116] 7. User confirms and approves the schedule
[0117] Participants can confirm the notification and approve or decline the meeting at that date and time by clicking a link in the notification email, for example, and selecting "Approve" or "Decline."
[0118] 8. Server's decision is final and notified
[0119] The server tally the responses from each participant, and if all participants approve, it notifies them again that the meeting date and time is final. For example, it sends a confirmation notice to all participants saying, "Since all participants have approved Wednesday 13:00-14:00, the meeting will be confirmed for this time."
[0120] 9. Server updates the calendar
[0121] The server automatically adds the finalized meeting date and time to each participant's calendar using the Google Calendar API or Microsoft Graph API, adding the meeting date and time as "Wednesday 13:00-14:00" to each participant's calendar.
[0122] Examples of concrete examples and prompts
[0123] For example, if a user wants to schedule a meeting between October 17th and October 19th, 2023, and specifies "Mr. A" and "Mr. B" as participants, the following input and suggestions will be made:
[0124] Entering meeting information: "I would like to schedule a meeting for Mr. A and Mr. B to take place between October 17th and October 19th, 2023."
[0125] Example prompt sentence:
[0126] "This system automatically adjusts the schedules of the people involved and proposes the optimal meeting date. The user enters the details of the meeting, and the server uses this information to collect and analyze the calendar information of all participants and propose the optimal date and time. The proposed date and time is then approved by all participants, and once confirmed, it is automatically added to their calendars."
[0127] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0128] Step 1:
[0129] Entering meeting information
[0130] User
[0131] The user uses their own device to enter detailed information about the meeting. For example, they might enter "I would like to set up a meeting between October 17th and October 19th, 2023, with Mr. A and Mr. B participating" into a dedicated input form on their device. This input information includes the meeting name, date range, participant list, and desired time slot. The entered information is sent to the server by clicking the send button.
[0132] Input: Meeting name, date range, participant list, desired time slot
[0133] Output: The entered meeting information
[0134] Step 2:
[0135] Receiving and storing data
[0136] server
[0137] The server receives the meeting information sent by the user. The received information is saved in a database. For example, the meeting name "Project Meeting," the date range "October 17th to October 19th, 2023," the participant list "Mr. A, Mr. B," and the desired time slot "Morning" are saved in the database.
[0138] Input: Meeting information sent by the user
[0139] Output: Meeting information stored in a database
[0140] Step 3:
[0141] Get calendar information
[0142] server
[0143] The server calls the calendar API of each participant based on the saved participant list to obtain schedule information (e.g., Google Calendar API, Microsoft Graph API). For example, the server obtains information such as "Person A has a meeting on Tuesday from 10:00 to 12:00" and "Person B has a meeting on Thursday from 14:00 to 16:00."
[0144] Input: Participant list stored in the database
[0145] Output: Schedule information of the participants
[0146] Step 4:
[0147] Free / busy analysis
[0148] server
[0149] The server analyzes the calendar information and lists the free time slots for each participant. It uses Python's pandas library to analyze the information and calculates overlapping time slots and free time slots. For example, it lists free time slots such as Tuesday 9:00-10:00 and Thursday 16:00-18:00.
[0150] Input: Retrieved calendar information
[0151] Output: Free / busy list
[0152] Step 5:
[0153] Selection of optimal dates
[0154] server
[0155] The server selects the best time and date from the list of available times of all participants, taking into account the common time slots available to all participants, using an algorithm to consider priorities and select "Wednesday 13:00-14:00" as the best time.
[0156] Input: Free / Busy List
[0157] Output: The best meeting time selected
[0158] Step 6:
[0159] Suggested itinerary
[0160] server
[0161] The server notifies all participants of the optimal meeting date it has selected. For notification purposes, it uses an email service (e.g., SendGrid) or a messaging API (e.g., Twilio) to send a notification email to all participants saying, for example, "We would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[0162] Input: Best meeting time selected
[0163] Output: Notification to participants (email)
[0164] Step 7:
[0165] Confirm and approve the schedule
[0166] User
[0167] Participants can confirm the notification they receive on their devices and approve or reject the meeting at that date and time by clicking the link in the notification email and selecting "Approve" or "Reject" on the web page. The information is then sent to the server.
[0168] Input: Date and time notification sent by the server
[0169] Output: Approval or rejection response
[0170] Step 8:
[0171] Final Decision and Notification
[0172] server
[0173] The server tallying the responses from each participant and finalizing the meeting date and time once all participants have approved it, then notifying all participants again that "Wednesday 13:00-14:00 has been finalized."
[0174] Input: Participant's approval or rejection response
[0175] Output: Notification of final decision
[0176] Step 9:
[0177] Calendar updates
[0178] server
[0179] The server automatically adds the confirmed meeting date and time to each participant's calendar, using the Google Calendar API and Microsoft Graph API to register the meeting as "Wednesday 13:00-14:00" on each participant's calendar.
[0180] Input: Finalized meeting date and time
[0181] Output: Meeting date and time added to calendar
[0182] (Application example 1)
[0183] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0184] Coordinating meeting dates and times is time-consuming and requires adjusting the schedules of multiple participants. Furthermore, on-site workers and managers at manufacturing sites and other locations frequently need to hold meetings, so smooth meeting coordination is essential. However, it is difficult to manually check and adjust schedules while working on-site. Therefore, there is a need for a system that streamlines and automates meeting coordination, reducing the burden on on-site workers in particular.
[0185] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0186] In this invention, the server includes: a means for a user to input detailed information about the conference; a means for the server to receive and store the detailed information about the conference; a means for the server to acquire schedule information about participants; a means for the server to analyze the acquired schedule information and list available times; a means for the server to select an optimal conference date and time from the available times of all participants; a means for the server to notify all participants of the selected conference date and time; a means for the user to confirm the notified conference date and time and send an approval or rejection; a means for the server to confirm the approval of all participants and confirm and notify the final conference date and time; a means for the server to automatically add the finalized conference date and time to each participant's schedule; a means for inputting detailed information about the conference by voice or touch operation using smart glasses; and a means for sending approval or rejection of participants by voice or touch operation using smart glasses. This automates the task of manually arranging conference schedules, enabling efficient and quick conference arrangements, particularly for users engaged in field work.
[0187] A "user" is someone who uses the system to enter meeting details and arrange meetings.
[0188] "Meeting details" refers to information necessary to set up a meeting, such as a participant list, a date range, and a desired time slot.
[0189] "Server" is a central computer system that receives, stores, analyzes, and schedules meeting information entered by users.
[0190] "Participants" are people who need to attend a meeting.
[0191] "Schedule information" refers to each participant's schedule or individual events listed on their calendar.
[0192] "Free time" refers to a time when all participants are free and suitable for setting up a meeting based on the schedule information.
[0193] The "optimal meeting date and time" refers to the most suitable date and time for holding a meeting after analyzing the free time of all participants.
[0194] A "notification" is a message sent from the server to participants that provides information about the date and time of the conference.
[0195] "Approval" means that the participants confirm and agree that the notified meeting date and time is appropriate.
[0196] "Rejection" means that a participant indicates that the notified meeting date and time is not suitable.
[0197] "Smart glasses" are a type of wearable device that incorporates a display and operating interface, allowing users to input and check information using voice or touch controls.
[0198] A system embodying the present invention combines smart glasses used in manufacturing sites and the like with a server to automatically schedule meetings. A specific embodiment of this system will be described below.
[0199] Hardware and software used
[0200] Smart Glasses: Enter meeting details by voice or touch and accept or decline.
[0201] Server: Receives and stores detailed information about the conference, obtains, analyzes, and notifies participants of their schedules.
[0202] Calendar Management API: Use an external calendar management service (e.g., Google Calendar API) to obtain attendee schedule information.
[0203] Database: Stores meeting details and participant schedule information.
[0204] Processing flow
[0205] 1. Enter the meeting information
[0206] Using the smart glasses, the user inputs meeting details (participant list, date range, desired time slot) by voice or touch operation. For example, a manufacturing site manager might say, "I'd like to schedule a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B."
[0207] 2. Receipt and storage of data
[0208] The server receives the meeting information entered from the smart glasses and stores it in a database, including specific meeting details (participant list, date range, desired time slot).
[0209] 3. Get calendar information
[0210] The server uses the calendar management API to obtain schedule information for each participant. For example, the server obtains information such as "Team A's schedule shows a meeting on Tuesday from 10:00 to 12:00, and Team B's schedule shows a meeting on Thursday from 14:00 to 16:00."
[0211] 4. Free Time Analysis
[0212] The server analyzes the schedule information and lists the free times of all participants. The analysis results include specific free times (Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00).
[0213] 5. Selection of optimal dates
[0214] The server selects the best date that all participants can attend from the listed available times. For example, it selects "Wednesday 13:00-14:00 is best."
[0215] 6. Notification of schedule
[0216] The server then notifies all participants of the optimal meeting date. A notification message is sent to each participant via their smart glasses, stating, "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[0217] 7. Confirmation and approval of schedule
[0218] Participants use smart glasses to check the notified meeting date and time, and send a response of approval or rejection to the server by voice or touch operation. For example, an administrator can reply "approved" using the smart glasses.
[0219] 8. Final Decision and Notice
[0220] After confirming everyone's approval, the server confirms the meeting date and time and notifies everyone again. If everyone approves, a notification is sent stating, "Wednesday 13:00-14:00 has been finalized as the meeting date."
[0221] 9. Update your calendar
[0222] The server automatically adds the confirmed meeting date and time to each participant's calendar, so that the meeting is recorded as "Wednesday 13:00-14:00 meeting" on each participant's calendar.
[0223] Specific examples
[0224] For example, a manager working on a manufacturing site can use smart glasses to input a voice command such as, "I want everyone to attend the meeting next week, so please adjust the schedule." The system will then automatically suggest the optimal date and time, notify everyone, and confirm the schedule after receiving confirmation.
[0225] Prompt Sentence Examples
[0226] "I'd like to meet with my work team between Tuesday and Thursday next week. Please let me know if that's convenient for you."
[0227] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0228] Step 1:
[0229] The user uses the smart glasses to input meeting details (participant list, date range, desired time slot) using voice or touch operations. As a specific example, a manufacturing site manager might say, "I'd like to set up a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B." The input data includes the participant list, date range, and desired time slot. This is then input to the server.
[0230] Step 2:
[0231] The server receives the meeting information input from the smart glasses and stores it in a database. Specific operations on the server include parsing the input data in JSON format and saving it as a database entry. The output is a confirmation message of the saved information.
[0232] Step 3:
[0233] The server uses a calendar management API to obtain schedule information for each participant. For example, it sends an API request to obtain the participants' schedules and format them into an analyzable data format. The input is a list of participants, and the output is the schedule information for each participant.
[0234] Step 4:
[0235] The server analyzes the schedule information it obtains and lists the free time slots of all participants. A concrete example includes an algorithm that cross-references each schedule information and finds common free time slots. The input is the schedule information of the participants, and the output is a list of common free time slots.
[0236] Step 5:
[0237] The server selects the best possible date from the list of free times that all participants can attend. For example, it runs an evaluation algorithm to select the best option based on the free time list. The input is the common free time list, and the output is the best meeting date and time.
[0238] Step 6:
[0239] The server notifies all participants of the optimal meeting date and time selected. As a concrete example, a message saying "I would like to set up a meeting on Wednesday from 13:00 to 14:00" is sent to each participant via smart glasses. The input is the optimal meeting date and time, and the output is the sending status of the notification message.
[0240] Step 7:
[0241] The user uses the smart glasses to confirm the notified meeting date and time and submit an approval or rejection. Specific examples include inputting "approval" or "rejection" using touch or voice recognition on the smart glasses. The input is the notification message, and the output is the user's response.
[0242] Step 8:
[0243] The server confirms everyone's approval, confirms the meeting date and time, and notifies them again. A concrete example would include an algorithm that aggregates everyone's responses and checks whether they match. The input is the participant's response, and the output is a notification message with the confirmed meeting date and time.
[0244] Step 9:
[0245] The server automatically adds the confirmed meeting date and time to each participant's calendar. A concrete example involves using a calendar management API to add an entry to each participant's calendar. The input is the confirmed meeting date and time, and the output is the updated status of each participant's calendar.
[0246] Furthermore, an emotion engine that estimates the user's emotion may be combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0247] The system of the present invention automates the scheduling of participants and efficiently schedules meetings. Furthermore, by combining this system with an emotion engine that recognizes the user's emotions, it enables more flexible and effective scheduling of meetings.
[0248] The following explains how the system program works, with some concrete examples.
[0249] Program processing
[0250] The system schedules meetings and uses the emotion engine in the following steps:
[0251] 1. Enter the meeting information
[0252] The user uses the terminal to enter meeting details, for example, "I'd like to schedule a meeting from Tuesday to Thursday next week. Participants A and B will be participants."
[0253] 2. Emotional Engine Activation
[0254] The server uses an emotion engine to recognize emotions from the user's input and voice. For example, emotions such as "tired" or "in a hurry" can be detected from the user's voice input.
[0255] 3. Receipt and storage of data
[0256] The server stores the detailed information of the meeting received from the user in a database along with the emotion recognition results.
[0257] 4. Get Calendar Information
[0258] The server retrieves the calendar information of each participant based on the participant list. The calendar information is obtained from the API of the calendar system used by the participant.
[0259] 5. Free Time Analysis
[0260] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times within a range of dates.
[0261] 6. Selection of optimal dates
[0262] The server selects the best time and date for the meeting based on the availability of all participants. For example, it identifies a time slot such as 13:00-14:00 on Wednesday when all participants are available.
[0263] 7. Emotion-Based Optimization
[0264] Based on the user's emotions recognized by the emotion engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," an earlier meeting time will be suggested.
[0265] 8. Date Suggestion
[0266] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[0267] 9. Confirmation and Approval of Schedule
[0268] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0269] 10. Re-proposing the workflow
[0270] The server receives and re-evaluates all responses, and if not all are approved, it uses the emotion engine to re-propose the next best meeting date and time.
[0271] 11. Final Decision and Notice
[0272] After confirming everyone's approval, the server confirms the meeting date and time and notifies them again. The confirmation notification is automatically added to the calendars of all participants.
[0273] 12. Calendar Updates
[0274] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0275] This system allows users to efficiently schedule meetings without many manual operations and can respond flexibly based on emotion recognition, which not only speeds up and streamlines meeting scheduling but also improves user satisfaction.
[0276] The processing flow will be explained below.
[0277] Step 1:
[0278] The user uses the terminal to enter the details of the meeting, including the participant list, date range, and desired time slot. For example, the user might enter, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0279] Step 2:
[0280] The device sends the user's input and voice data to the server, along with voice and text data for user emotion recognition.
[0281] Step 3:
[0282] The server receives and stores detailed information about the meeting, including the participant list, schedule, desired time slot, and emotion recognition target data.
[0283] Step 4:
[0284] The server runs the emotion engine, analyzes the user's input and voice data, and recognizes emotions. For example, it detects emotions such as "tired" from voice data and saves the results.
[0285] Step 5:
[0286] The server retrieves the calendar information of each participant based on the saved participant list. The calendar information is retrieved from the API of the calendar system used by the participant.
[0287] Step 6:
[0288] The server analyzes the calendar information and lists the free times of all participants. The analysis is performed based on the specified date range.
[0289] Step 7:
[0290] The server selects the best time for the meeting based on the free time lists of all participants. For example, Wednesday 13:00-14:00 is selected as the free time for everyone.
[0291] Step 8:
[0292] The server reevaluates the appropriateness of the selected meeting date and time based on the user's emotions recognized by the emotion engine. For example, if the user is recognized as "tired," the server suggests an earlier meeting time.
[0293] Step 9:
[0294] The server notifies all participants of the selected and re-evaluated meeting date and time using email or the notification function of the calendar application.
[0295] Step 10:
[0296] Participants check the notified meeting date and time on their terminals and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0297] Step 11:
[0298] The server receives and aggregates everyone's responses, checks whether everyone has approved the meeting date and time, and if not, uses the emotion engine to re-propose the next optimal meeting date and time.
[0299] Step 12:
[0300] Once the server has confirmed everyone's approval, it will confirm the meeting date and time and notify them again. The confirmation notification will be automatically added to the calendars of all participants.
[0301] Step 13:
[0302] The server automatically updates each participant's calendar with the confirmed meeting date and time. Participants A and B's calendars will show "Meeting Wednesday 13:00-14:00."
[0303] This system allows users to efficiently schedule meetings, and the introduction of an emotion recognition engine makes scheduling more flexible and user-friendly.
[0304] Example 2
[0305] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0306] In today's business environment, scheduling meetings by coordinating the schedules of all parties involved is extremely complicated and time-consuming. In particular, scheduling meetings without considering the emotional state of the participants can be inefficient and may result in lower participant satisfaction. In this situation, our goal is to provide a flexible and effective meeting scheduling system that incorporates emotion recognition.
[0307] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0308] In this invention, the server includes means for a user to input detailed meeting information, means for the server to receive and store the detailed meeting information and emotion recognition results, means for the server to acquire participants' calendar information, means for the server to analyze the acquired calendar information and list available times, means for the server to select an optimal meeting date and time from the available times of all participants, means for the server to reevaluate the optimal meeting date and time based on the emotion recognition results, means for the server to notify all participants of the selected meeting date and time, means for the user to confirm the notified meeting date and time and send an approval or rejection, means for the server to confirm all approvals and confirm and notify the meeting date and time, and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This allows users to efficiently schedule meetings without performing many manual operations and also enables flexible response based on emotion recognition.
[0309] "User" means a person or organization that utilizes the system to enter meeting details, review and approve or reject notifications.
[0310] The "server" is a central computer system that receives information from users, performs emotion recognition, analyzes calendar information, and selects and notifies meeting dates and times.
[0311] "Detailed meeting information" refers to information necessary for setting up a meeting, such as the meeting date and time, participant list, date range, and desired time slot.
[0312] "Emotion recognition results" are information that the server analyzes emotions from user input and voice, and handles the results as data.
[0313] The "database" is a system for storing meeting details and emotion recognition results in a structured format.
[0314] "Calendar information" is data indicating the schedules of participants, and is obtained from the calendar systems used by the participants.
[0315] "Free time" is a time period during which all participants can attend the conference, as determined by analyzing calendar information.
[0316] The "optimal meeting date and time" is the most suitable time slot among the available times of all participants, and is selected taking into consideration the emotion recognition results.
[0317] A "notification" is a message sent by the server to all participants via email or calendar application to notify them of the meeting date and time selected by the server.
[0318] "Acceptance" is an action by which a user indicates their willingness to accept the proposed meeting date and time.
[0319] "Rejection" is an action that indicates the user's intention not to accept the proposed meeting date and time.
[0320] "Reevaluation" is the process in which, if approval is not obtained from all participants, the server takes into account the emotion recognition results and reselects the next optimal meeting date and time.
[0321] "Automatically add to calendar" is a process in which the confirmed date and time of the meeting is automatically reflected in the calendar system of each participant.
[0322] The purpose of the system of the present invention is to enable users to coordinate the schedules of multiple parties and efficiently schedule meetings. Furthermore, by incorporating an emotion recognition engine, the system enables more flexible and effective scheduling of meetings.
[0323] Hardware and Software Configuration
[0324] This system uses the following components:
[0325] User terminal: A device on which users enter meeting details and receive notifications. Typically, a PC or smartphone is used.
[0326] Server: The central computer system that processes information. It receives information from users, performs emotion recognition, and aggregates and analyzes calendar information.
[0327] Database: A system where the server stores detailed information about meetings and emotion recognition results. Specifically, an RDBMS such as MySQL (registered trademark) or PostgreSQL is used.
[0328] Emotion recognition engine: A software tool for recognizing emotions from a user's voice or text. The "EmotionRecognizer API," which uses natural language processing technology, is an example of this.
[0329] Calendar system API: An interface for obtaining participants' calendar information. Typical examples include Google Calendar API and Microsoft Outlook API.
[0330] System operation example
[0331] A specific example of the operation of this system is shown below.
[0332] 1. Enter the meeting information
[0333] A user uses a terminal to input detailed information about a meeting into the system. For example, the user inputs in text format, "I would like to set up a meeting between Tuesday and Thursday of next week. The participants will be A and B."
[0334] 2. Emotion Recognition
[0335] The server receives the user's input and voice data and analyzes their emotions using an emotion recognition engine. For example, if the user says "I'm tired," it will recognize that emotion.
[0336] 3. Data storage
[0337] The server stores the meeting details and emotion recognition results in a database.
[0338] 4. Get Calendar Information
[0339] The server acquires the calendar information of each participant through the API of the calendar system used by each participant.
[0340] 5. Free Time Analysis
[0341] The server analyzes the retrieved calendar information and lists the free times of all participants.
[0342] 6. Schedule selection and optimization
[0343] The server selects the optimal meeting date and time based on the free time of all participants and the results of emotion recognition. For example, it determines that "Wednesday 13:00-14:00 is optimal."
[0344] 7. Notification of schedule
[0345] The server notifies all participants of the selected meeting date and time via email or calendar app, and users can check the notification on their devices and accept or decline the request.
[0346] 8. Re-proposal
[0347] If not everyone agrees, the server will re-propose the next optimal meeting date and time, taking into account the emotion recognition results.
[0348] 9. Update your calendar
[0349] The final confirmed meeting date and time will be automatically added to each participant's calendar from the server.
[0350] Prompt Sentence Examples
[0351] Examples of prompts that can be input to the emotion recognition engine include the following:
[0352] "I'd like to schedule a meeting between Tuesday and Thursday next week. The participants will be A and B."
[0353] "I need to set up a meeting quickly."
[0354] I'm tired today, so I'd like the meeting to be shorter.
[0355] This system allows users to significantly reduce the effort required to schedule meetings, and uses emotion recognition technology to flexibly select the most appropriate meeting date and time. This makes the operation of the entire system more efficient, leading to increased user satisfaction.
[0356] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0357] Step 1:
[0358] User enters meeting information
[0359] The user uses the terminal to input the details of the meeting. A specific example of input is, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B." This input data is sent to the server in text format.
[0360] Step 2:
[0361] The server performs emotion recognition
[0362] The server receives the meeting information and voice data sent by the user. It then uses an emotion recognition engine (EmotionRecognizer API) to analyze the user's emotions. For example, if the user indicates emotions such as "tired" or "hurrying," the server extracts the emotion and saves it as the emotion recognition result. The input is the user's voice data, and the output is the emotion recognition result.
[0363] Step 3:
[0364] The server saves the data to a database
[0365] The server stores the meeting information and emotion recognition results received from the user in a database. The database used here is MySQL, PostgreSQL, or similar. The data stored is the meeting details and the associated emotion recognition results. For example, it might be stored as "I would like to schedule a meeting from Tuesday to Thursday next week. Participants are A and B. Emotion: Tired."
[0366] Step 4:
[0367] The server retrieves the calendar information.
[0368] The server obtains the calendar information of each participant based on the participant list. It uses the Google Calendar API or Microsoft Outlook API to obtain the schedule data of each participant. The input is the participant list, and the output is the calendar information of each participant.
[0369] Step 5:
[0370] The server analyzes the calendar information and lists the free time slots.
[0371] The server analyzes the acquired calendar information and identifies the free time of each participant. As a result of the analysis, it creates a list of free time such as "Tuesday 10:00-11:00" or "Wednesday 13:00-14:00". The input is the calendar information, and the output is a list of free time of all participants.
[0372] Step 6:
[0373] The server selects the best time for the meeting
[0374] The server selects the optimal meeting date and time based on the free time slots of all participants. For example, it identifies "Wednesday 13:00-14:00" as a time slot when all participants are free. This selection also takes into account the range of meeting times and preferred time slots. The input is a list of free times, and the output is the optimal meeting date and time.
[0375] Step 7:
[0376] The server performs optimization based on the emotion recognition results.
[0377] Based on the results of the emotion recognition engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," the server will suggest an earlier meeting time. The input is the emotion recognition result and the optimal meeting date and time, and the output is the final optimal meeting date and time.
[0378] Step 8:
[0379] The server notifies all participants of the meeting date and time.
[0380] The server notifies all participants of the selected meeting date and time. Notification methods include email and the notification function of a calendar app. For example, the meeting date and time may be "Wednesday, 13:00-14:00." The input is the final optimal meeting date and time, and the output is the notification to each participant.
[0381] Step 9:
[0382] User confirms meeting time and submits approval or rejection
[0383] The user checks the notified meeting date and time and uses the terminal to send a response of approval or denial to the server. For example, participant A "approves" and participant B "denies." The input is the notification of the meeting date and time, and the output is the response of approval or denial.
[0384] Step 10:
[0385] The server checks and re-evaluates everyone's approvals
[0386] The server receives everyone's responses and reevaluates the meeting date and time based on them. If not everyone approves, it uses an emotion recognition engine to re-propose the next optimal meeting date and time. The input is the approval or rejection response, and the output is the next proposed date and time.
[0387] Step 11:
[0388] The server finalizes the meeting date and time and notifies everyone.
[0389] After the server confirms everyone's approval, it finalizes the meeting date and time and notifies everyone again. The notification is automatically reflected on everyone's calendar. The input is the final approval result, and the output is the notification of the final meeting date and time.
[0390] Step 12:
[0391] The server automatically adds the confirmed meeting date and time to each participant's calendar.
[0392] The server automatically adds the confirmed meeting date and time to each participant's calendar. This records the meeting date and time on the participant's calendar as "Wednesday 13:00-14:00 Meeting." The input is the final meeting date and time, and the output is the updated calendar for each participant.
[0393] (Application example 2)
[0394] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0395] In modern factories, production line maintenance is complicated and coordinating schedules between personnel is difficult. In particular, setting schedules without considering the emotions and state of personnel is inefficient and may reduce personnel performance. In addition, it is difficult to quickly propose optimal maintenance dates and times, which can have a negative impact on the productivity of the entire factory.
[0396] The specification process by the specification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for a user to input detailed information about a meeting; means for the server to receive and save the detailed information about the meeting; means for the server to acquire calendar information about participants; means for the server to analyze the acquired calendar information and list available times; means for the server to select an optimal meeting date and time from the available times of all participants; means for analyzing the user's emotions using an emotion recognition engine; means for the server to reevaluate and optimize the optimal meeting date and time based on the results of the emotion recognition engine; means for the server to notify all participants of the selected meeting date and time; means for the user to confirm the notified meeting date and time and send an approval or rejection; means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them; and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This makes it possible to quickly and efficiently set an optimal maintenance date and time while taking into account the emotions and state of the person in charge.
[0397] A "user" is an individual or group that utilizes the system to enter meeting details.
[0398] "Detailed information about the conference" is specific information about the conference designated by the user, including a list of participants, a range of dates, and a desired time slot.
[0399] A "server" is a computer system that controls the operation of the entire system, and is a collection of hardware or software that executes and manages multiple functions.
[0400] "Calendar information" is information used to manage the schedules and plans of meeting participants, and is obtained through the API.
[0401] "Free time" refers to a time period during which the participants of the meeting are free from other schedules or tasks and can attend the meeting.
[0402] The "optimal meeting date and time" is the most suitable time for the meeting, selected based on the free time of all participants.
[0403] An "emotion recognition engine" is a piece of computer software that recognizes emotions from a user's voice, facial expressions, etc. and analyzes the results.
[0404] "Acceptance or rejection" refers to the participant's confirmation of whether the conference can be held on the notified date and time, and their expression of willingness to accept or reject the conference.
[0405] The "confirmed meeting date and time" is the date and time of the meeting that has been finally decided after approval by all participants.
[0406] "Means for notifying" refers to a method or system for notifying participants of the date and time of the meeting and other information via email or the notification function of a calendar application.
[0407] "Automatic calendar addition" means an automated process or function that seamlessly updates the confirmed meeting date and time on each participant's calendar.
[0408] The system for realizing this invention starts when a user inputs detailed information about a meeting, which is then received and saved by a server. The system is configured as follows:
[0409] The user uses the terminal to input meeting details, for example, "The next maintenance work to be done in the factory should be done this week. X and Y will be in charge." The user's input is sent to the server, which receives this information and stores it in a database.
[0410] Next, the robot's installed emotion recognition engine will be activated, capturing the employee's face and voice and analyzing their emotions. For example, it will use the robot's camera and microphone to analyze their emotions using software such as DeepFace and OpenCV. During this process, the employee's stress level and fatigue level will be identified.
[0411] The server obtains the calendar information of the person in charge using an API (for example, Google Calendar API). It analyzes the obtained calendar information and lists the free time. This makes it possible to identify the free time of all the people in charge.
[0412] The server selects the optimal meeting time from the available times listed. During this process, emotional data from an emotion recognition engine is also taken into account. For example, if the server recognizes that the person in charge is "feeling stressed," it adjusts the meeting time while taking that emotion into consideration.
[0413] The server notifies all participants of the selected meeting date and time via their terminals. Participants can check the meeting date and time and send responses of approval or rejection. If all participants approve, the server confirms the meeting date and time and notifies everyone again.
[0414] The server automatically adds the confirmed meeting date and time to each participant's calendar, making it easy for the person in charge to know the date and time of the next maintenance work.
[0415] As a specific example, the prompt entered by the user regarding the date and time of the next maintenance work is, "When is the best time for the next maintenance work? The worker's emotion has been detected as 'tired.'" Based on this prompt, the system takes into account the worker's emotion and selects the best date and time, and notifies the worker.
[0416] This enables flexible and efficient maintenance schedules to be set taking into account the emotions of the maintenance personnel, contributing to improved productivity throughout the factory. Emotion recognition technology also improves the performance and satisfaction of maintenance personnel.
[0417] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0418] Step 1:
[0419] The user inputs the details of the meeting, including the list of participants, the date range, and the desired time slot, and the input information is sent from the terminal to the server.
[0420] Step 2:
[0421] The server receives and stores the meeting details. The received data is stored in a database for later use. The input data is the meeting details sent by the user, and the output is the meeting information stored in the database.
[0422] Step 3:
[0423] An emotion recognition engine installed in the robot is activated to analyze the emotions of the employee. The robot's camera and microphone are used to capture the employee's face and voice, and the emotion is determined using software such as DeepFace and OpenCV. The input data is the video and audio collected by the camera and microphone, and the output is the emotion recognition result.
[0424] Step 4:
[0425] The server obtains the calendar information of the participants. Using a schedule management API such as the Google Calendar API, it obtains the free time slots from each participant's calendar. The input data is the calendar information of each participant, and the output is a list of free time slots.
[0426] Step 5:
[0427] The server analyzes the calendar information it retrieves and lists the free times of all participants. The analysis is performed within the specified date range based on the meeting details. The input data is the calendar information retrieved through the API, and the output is a list of free times of all participants.
[0428] Step 6:
[0429] The server selects the optimal meeting date and time from the list of available free times. It also takes into account the results of an emotion recognition engine and optimizes the schedule based on the emotional state of the participants. The input data is the list of available free times and the emotion recognition results, and the output is the optimal meeting date and time.
[0430] Step 7:
[0431] The server notifies all participants of the selected meeting time via email or calendar application. The input data is the optimal meeting time, and the output is the notified meeting time.
[0432] Step 8:
[0433] The user checks the notified meeting date and time and sends a response of approval or rejection from the terminal to the server. The input data is the notified meeting date and time, and the output is the user's response (approval or rejection).
[0434] Step 9:
[0435] The server confirms everyone's approval and confirms the meeting date and time. If all participants approve, the final meeting date and time is confirmed. The input data are the responses of all participants, and the output is the confirmed meeting date and time.
[0436] Step 10:
[0437] The server automatically adds the confirmed meeting date and time to each participant's calendar. This process updates all participants' calendars. The input data is the confirmed meeting date and time, and the output is the updated calendar information.
[0438] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0439] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (registered trademark) (Internet search engine).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0440] In the above embodiment, an example in which the specific process is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific process may be performed by the smart device 14.
[0441] [Second embodiment]
[0442] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0443] 3, the data processing system 210 includes the data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0444] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0445] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, and the camera 42 are also connected to the bus 52.
[0446] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0447] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0448] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0449] Fig. 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Fig. 4, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0450] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0451] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0452] In the smart glasses 214, the reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0453] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal."
[0454] The system of the present invention automates the scheduling of participants and efficiently sets meeting dates. In this system, a user inputs detailed meeting information, and the server processes that information to adjust the schedules of all participants and propose the optimal meeting date and time.
[0455] Below is a natural language explanation of how the system's programs work.
[0456] Program processing
[0457] The system schedules meetings using the following steps:
[0458] 1. Enter the meeting information
[0459] The user inputs the details of the meeting from the terminal, for example, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0460] 2. Receipt and storage of data
[0461] The server receives and stores the meeting information entered by the user, including the participant list, date range, and desired time slot.
[0462] 3. Get calendar information
[0463] The server retrieves the calendar information of each participant based on the participant list. For example, the server retrieves information such as "Tuesday 10:00-12:00 is a meeting" from A's calendar and "Thursday 14:00-16:00 is a meeting" from B's calendar.
[0464] 4. Free Time Analysis
[0465] The server parses the calendar information and lists the available times for all participants, for example, Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00.
[0466] 5. Selection of optimal dates
[0467] The server compares the free times of all participants and selects the best time when everyone is available, for example, Wednesday 13:00-14:00.
[0468] 6. Proposal of a schedule
[0469] The server notifies all participants of the optimal meeting date it has selected. For example, the server sends a notification to A and B saying, "I would like to schedule a meeting on Wednesday from 13:00 to 14:00."
[0470] 7. Confirmation and approval of schedule
[0471] Participants check the notified meeting date and time and send a response of approval or rejection. For example, participants A and B each send an "approval" response from their devices.
[0472] 8. Final Decision and Notice
[0473] The server confirms everyone's approval, confirms the meeting date and time, and notifies everyone again. For example, if everyone approves, Wednesday 13:00-14:00 is confirmed as the final meeting date. The server sends a confirmation notification and automatically updates the calendar information based on it.
[0474] 9. Update your calendar
[0475] The server automatically adds the confirmed meeting date and time to each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0476] This system allows users to efficiently schedule meetings without requiring many manual operations, thereby realizing faster and more efficient meeting scheduling.
[0477] The processing flow will be explained below.
[0478] Step 1:
[0479] The user uses the terminal to input the details of the meeting. Specifically, the user inputs the participant list, the date range, and the desired time slot. For example, the user inputs, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0480] Step 2:
[0481] The terminal sends the meeting details entered by the user to the server, where the data is encoded and transmitted to the server over a secure channel.
[0482] Step 3:
[0483] The server stores the meeting details received from the user in a database, including the participant list, date range, and preferred time slot.
[0484] Step 4:
[0485] The server retrieves the participant list from the database and the calendar information of each participant, which is obtained from the API of the calendar system used by the participants.
[0486] Step 5:
[0487] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times for a period of time (e.g., Tuesday through Thursday of next week).
[0488] Step 6:
[0489] The server selects the best time to meet based on the availability of all participants. The best time is calculated based on the time period when everyone is free. For example, it identifies a time period when all participants are free, such as Wednesday from 13:00 to 14:00.
[0490] Step 7:
[0491] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[0492] Step 8:
[0493] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0494] Step 9:
[0495] The server receives and aggregates everyone's responses. It checks whether everyone has accepted the meeting date and time. If everyone has accepted, it proceeds to the next step.
[0496] Step 10:
[0497] After confirming everyone's approval, the server confirms the meeting date and time and sends a notification again. The confirmation notification is automatically added to the calendars of all participants.
[0498] Step 11:
[0499] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0500] The system's process allows users to efficiently schedule meetings.
[0501] Example 1
[0502] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0503] Coordinating and managing meetings is a time-consuming and laborious task, and it is particularly difficult to consider the schedules of all participants. Conventional methods require manual input and confirmation of each participant's schedule, which is time-consuming and prone to errors. It is also extremely difficult to find an optimal date and time that matches everyone's schedules. The present invention aims to solve these problems and make meeting scheduling more efficient.
[0504] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0505] In this invention, the server includes means for a user to input detailed information about the conference, means for the server to receive and save the detailed information about the conference, means for the server to acquire schedule information about participants, means for the server to analyze the acquired schedule information and list free times, means for the server to select the optimal conference date and time from the free times of all participants, means for the server to notify all participants of the selected conference date and time, means for the user to check the notified conference date and time and send an approval or rejection, means for the server to confirm the approval of all participants and notify them of the final conference date and time, and means for the server to automatically add the finalized conference date and time to the schedule management device of each participant, thereby enabling automatic setting of the conference date and time and efficient coordination.
[0506] "User" refers to the person who enters meeting details and uses the system.
[0507] "Server" refers to the device or system that receives and stores meeting details and analyzes participant schedule information.
[0508] "Detailed meeting information" refers to information necessary for setting up a meeting, and specifically includes a list of participants, a range of dates, and a desired time slot.
[0509] "Participant" means a person listed as attending a meeting.
[0510] "Schedule information" refers to calendar and schedule data held by each participant.
[0511] "Calendar API" refers to a program interface for retrieving and updating schedule information in collaboration with external calendar services.
[0512] "Free time" refers to time periods when participants have no scheduled appointments.
[0513] The "optimal meeting date and time" refers to the most suitable meeting date and time that allows all participants to attend.
[0514] "Notification" refers to the system informing participants of the best meeting time and date and other important information.
[0515] "Approval or rejection" refers to the user's action of expressing their willingness to accept or reject the proposed meeting date and time.
[0516] "Schedule Management Device" refers to a digital device used to manage and display Participant's calendar information.
[0517] This system automates the scheduling of participants and efficiently sets meeting dates. Users input detailed meeting information, and the server processes that information to adjust the schedules of all participants and suggest the best time and date for the meeting.
[0518] Program processing overview
[0519] The system works as follows:
[0520] 1. User enters meeting information
[0521] The user uses their own terminal to enter detailed information about the meeting (participant list, date range, desired time slot) into a dedicated input form.
[0522] 2. The server receives and stores the data
[0523] The server receives the meeting information sent by the user and stores it in a database, including the participant list, date range, and desired time slot.
[0524] 3. The server retrieves the calendar information
[0525] The server retrieves schedule information by calling each participant's calendar API (e.g., Google Calendar API, Microsoft Graph API) based on the saved participant list. For example, it retrieves real-time information such as "Participant A has a meeting on Tuesday from 10:00 to 12:00" and "Participant B has a meeting on Thursday from 14:00 to 16:00."
[0526] 4. Server free time analysis
[0527] The server analyzes the calendar information and lists the free time slots for each participant, using, for example, Python's pandas library to calculate overlapping time slots and free time slots.
[0528] 5. The server selects the optimal schedule
[0529] The server selects a time slot that is available to all participants from the list of available times. For example, it selects "Wednesday 13:00-14:00" as the best time and date.
[0530] 6. The server proposes a date
[0531] The server notifies all participants of the optimal meeting date it has selected. Notifications are usually sent using an email service (e.g., SendGrid) or a messaging API (e.g., Twilio). For example, a notification saying "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM" is sent to participants A and B.
[0532] 7. User confirms and approves the schedule
[0533] Participants can confirm the notification and approve or decline the meeting at that date and time by clicking a link in the notification email, for example, and selecting "Approve" or "Decline."
[0534] 8. Server's decision is final and notified
[0535] The server tally the responses from each participant, and if all participants approve, it notifies them again that the meeting date and time is final. For example, it sends a confirmation notice to all participants saying, "Since all participants have approved Wednesday 13:00-14:00, the meeting will be confirmed for this time."
[0536] 9. Server updates the calendar
[0537] The server automatically adds the finalized meeting date and time to each participant's calendar using the Google Calendar API or Microsoft Graph API, adding the meeting date and time as "Wednesday 13:00-14:00" to each participant's calendar.
[0538] Examples of concrete examples and prompts
[0539] For example, if a user wants to schedule a meeting between October 17th and October 19th, 2023, and specifies "Mr. A" and "Mr. B" as participants, the following input and suggestions will be made:
[0540] Entering meeting information: "I would like to schedule a meeting for Mr. A and Mr. B to take place between October 17th and October 19th, 2023."
[0541] Example prompt sentence:
[0542] "This system automatically adjusts the schedules of the people involved and proposes the optimal meeting date. The user enters the details of the meeting, and the server uses this information to collect and analyze the calendar information of all participants and propose the optimal date and time. The proposed date and time is then approved by all participants, and once confirmed, it is automatically added to their calendars."
[0543] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0544] Step 1:
[0545] Entering meeting information
[0546] User
[0547] The user uses their own device to enter detailed information about the meeting. For example, they might enter "I would like to set up a meeting between October 17th and October 19th, 2023, with Mr. A and Mr. B participating" into a dedicated input form on their device. This input information includes the meeting name, date range, participant list, and desired time slot. The entered information is sent to the server by clicking the send button.
[0548] Input: Meeting name, date range, participant list, desired time slot
[0549] Output: The entered meeting information
[0550] Step 2:
[0551] Receiving and storing data
[0552] server
[0553] The server receives the meeting information sent by the user. The received information is saved in a database. For example, the meeting name "Project Meeting," the date range "October 17th to October 19th, 2023," the participant list "Mr. A, Mr. B," and the desired time slot "Morning" are saved in the database.
[0554] Input: Meeting information sent by the user
[0555] Output: Meeting information stored in a database
[0556] Step 3:
[0557] Get calendar information
[0558] server
[0559] The server calls the calendar API of each participant based on the saved participant list to obtain schedule information (e.g., Google Calendar API, Microsoft Graph API). For example, the server obtains information such as "Person A has a meeting on Tuesday from 10:00 to 12:00" and "Person B has a meeting on Thursday from 14:00 to 16:00."
[0560] Input: Participant list stored in the database
[0561] Output: Schedule information of the participants
[0562] Step 4:
[0563] Free / busy analysis
[0564] server
[0565] The server analyzes the calendar information and lists the free time slots for each participant. It uses Python's pandas library to analyze the information and calculates overlapping time slots and free time slots. For example, it lists free time slots such as Tuesday 9:00-10:00 and Thursday 16:00-18:00.
[0566] Input: Retrieved calendar information
[0567] Output: Free / busy list
[0568] Step 5:
[0569] Selection of optimal dates
[0570] server
[0571] The server selects the best time and date from the list of available times of all participants, taking into account the common time slots available to all participants, using an algorithm to consider priorities and select "Wednesday 13:00-14:00" as the best time.
[0572] Input: Free / Busy List
[0573] Output: The best meeting time selected
[0574] Step 6:
[0575] Suggested itinerary
[0576] server
[0577] The server notifies all participants of the optimal meeting date it has selected. For notification purposes, it uses an email service (e.g., SendGrid) or a messaging API (e.g., Twilio) to send a notification email to all participants saying, for example, "We would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[0578] Input: Best meeting time selected
[0579] Output: Notification to participants (email)
[0580] Step 7:
[0581] Confirm and approve the schedule
[0582] User
[0583] Participants can confirm the notification they receive on their devices and approve or reject the meeting at that date and time by clicking the link in the notification email and selecting "Approve" or "Reject" on the web page. The information is then sent to the server.
[0584] Input: Date and time notification sent by the server
[0585] Output: Approval or rejection response
[0586] Step 8:
[0587] Final Decision and Notification
[0588] server
[0589] The server tallying the responses from each participant and finalizing the meeting date and time once all participants have approved it, then notifying all participants again that "Wednesday 13:00-14:00 has been finalized."
[0590] Input: Participant's approval or rejection response
[0591] Output: Notification of final decision
[0592] Step 9:
[0593] Calendar updates
[0594] server
[0595] The server automatically adds the confirmed meeting date and time to each participant's calendar, using the Google Calendar API and Microsoft Graph API to register the meeting as "Wednesday 13:00-14:00" on each participant's calendar.
[0596] Input: Finalized meeting date and time
[0597] Output: Meeting date and time added to calendar
[0598] (Application example 1)
[0599] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0600] Coordinating meeting dates and times is time-consuming and requires adjusting the schedules of multiple participants. Furthermore, on-site workers and managers at manufacturing sites and other locations frequently need to hold meetings, so smooth meeting coordination is essential. However, it is difficult to manually check and adjust schedules while working on-site. Therefore, there is a need for a system that streamlines and automates meeting coordination, reducing the burden on on-site workers in particular.
[0601] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0602] In this invention, the server includes: a means for a user to input detailed information about the conference; a means for the server to receive and store the detailed information about the conference; a means for the server to acquire schedule information about participants; a means for the server to analyze the acquired schedule information and list available times; a means for the server to select an optimal conference date and time from the available times of all participants; a means for the server to notify all participants of the selected conference date and time; a means for the user to confirm the notified conference date and time and send an approval or rejection; a means for the server to confirm the approval of all participants and confirm and notify the final conference date and time; a means for the server to automatically add the finalized conference date and time to each participant's schedule; a means for inputting detailed information about the conference by voice or touch operation using smart glasses; and a means for sending approval or rejection of participants by voice or touch operation using smart glasses. This automates the task of manually arranging conference schedules, enabling efficient and quick conference arrangements, particularly for users engaged in field work.
[0603] A "user" is someone who uses the system to enter meeting details and arrange meetings.
[0604] "Meeting details" refers to information necessary to set up a meeting, such as a participant list, a date range, and a desired time slot.
[0605] "Server" is a central computer system that receives, stores, analyzes, and schedules meeting information entered by users.
[0606] "Participants" are people who need to attend a meeting.
[0607] "Schedule information" refers to each participant's schedule or individual events listed on their calendar.
[0608] "Free time" refers to a time when all participants are free and suitable for setting up a meeting based on the schedule information.
[0609] The "optimal meeting date and time" refers to the most suitable date and time for holding a meeting after analyzing the free time of all participants.
[0610] A "notification" is a message sent from the server to participants that provides information about the date and time of the conference.
[0611] "Approval" means that the participants confirm and agree that the notified meeting date and time is appropriate.
[0612] "Rejection" means that a participant indicates that the notified meeting date and time is not suitable.
[0613] "Smart glasses" are a type of wearable device that incorporates a display and operating interface, allowing users to input and check information using voice or touch controls.
[0614] A system embodying the present invention combines smart glasses used in manufacturing sites and the like with a server to automatically schedule meetings. A specific embodiment of this system will be described below.
[0615] Hardware and software used
[0616] Smart Glasses: Enter meeting details by voice or touch and accept or decline.
[0617] Server: Receives and stores detailed information about the conference, obtains, analyzes, and notifies participants of their schedules.
[0618] Calendar Management API: Use an external calendar management service (e.g., Google Calendar API) to obtain attendee schedule information.
[0619] Database: Stores meeting details and participant schedule information.
[0620] Processing flow
[0621] 1. Enter the meeting information
[0622] Using the smart glasses, the user inputs meeting details (participant list, date range, desired time slot) by voice or touch operation. For example, a manufacturing site manager might say, "I'd like to schedule a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B."
[0623] 2. Receipt and storage of data
[0624] The server receives the meeting information entered from the smart glasses and stores it in a database, including specific meeting details (participant list, date range, desired time slot).
[0625] 3. Get calendar information
[0626] The server uses the calendar management API to obtain schedule information for each participant. For example, the server obtains information such as "Team A's schedule shows a meeting on Tuesday from 10:00 to 12:00, and Team B's schedule shows a meeting on Thursday from 14:00 to 16:00."
[0627] 4. Free Time Analysis
[0628] The server analyzes the schedule information and lists the free times of all participants. The analysis results include specific free times (Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00).
[0629] 5. Selection of optimal dates
[0630] The server selects the best date that all participants can attend from the listed available times. For example, it selects "Wednesday 13:00-14:00 is best."
[0631] 6. Notification of schedule
[0632] The server then notifies all participants of the optimal meeting date. A notification message is sent to each participant via their smart glasses, stating, "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[0633] 7. Confirmation and approval of schedule
[0634] Participants use smart glasses to check the notified meeting date and time, and send a response of approval or rejection to the server by voice or touch operation. For example, an administrator can reply "approved" using the smart glasses.
[0635] 8. Final Decision and Notice
[0636] After confirming everyone's approval, the server confirms the meeting date and time and notifies everyone again. If everyone approves, a notification is sent stating, "Wednesday 13:00-14:00 has been finalized as the meeting date."
[0637] 9. Update your calendar
[0638] The server automatically adds the confirmed meeting date and time to each participant's calendar, so that the meeting is recorded as "Wednesday 13:00-14:00 meeting" on each participant's calendar.
[0639] Specific examples
[0640] For example, a manager working on a manufacturing site can use smart glasses to input a voice command such as, "I want everyone to attend the meeting next week, so please adjust the schedule." The system will then automatically suggest the optimal date and time, notify everyone, and confirm the schedule after receiving confirmation.
[0641] Prompt Sentence Examples
[0642] "I'd like to meet with my work team between Tuesday and Thursday next week. Please let me know if that's convenient for you."
[0643] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0644] Step 1:
[0645] The user uses the smart glasses to input meeting details (participant list, date range, desired time slot) using voice or touch operations. As a specific example, a manufacturing site manager might say, "I'd like to set up a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B." The input data includes the participant list, date range, and desired time slot. This is then input to the server.
[0646] Step 2:
[0647] The server receives the meeting information input from the smart glasses and stores it in a database. Specific operations on the server include parsing the input data in JSON format and saving it as a database entry. The output is a confirmation message of the saved information.
[0648] Step 3:
[0649] The server uses a calendar management API to obtain schedule information for each participant. For example, it sends an API request to obtain the participants' schedules and format them into an analyzable data format. The input is a list of participants, and the output is the schedule information for each participant.
[0650] Step 4:
[0651] The server analyzes the schedule information it obtains and lists the free time slots of all participants. A concrete example includes an algorithm that cross-references each schedule information and finds common free time slots. The input is the schedule information of the participants, and the output is a list of common free time slots.
[0652] Step 5:
[0653] The server selects the best possible date from the list of free times that all participants can attend. For example, it runs an evaluation algorithm to select the best option based on the free time list. The input is the common free time list, and the output is the best meeting date and time.
[0654] Step 6:
[0655] The server notifies all participants of the optimal meeting date and time selected. As a concrete example, a message saying "I would like to set up a meeting on Wednesday from 13:00 to 14:00" is sent to each participant via smart glasses. The input is the optimal meeting date and time, and the output is the sending status of the notification message.
[0656] Step 7:
[0657] The user uses the smart glasses to confirm the notified meeting date and time and submit an approval or rejection. Specific examples include inputting "approval" or "rejection" using touch or voice recognition on the smart glasses. The input is the notification message, and the output is the user's response.
[0658] Step 8:
[0659] The server confirms everyone's approval, confirms the meeting date and time, and notifies them again. A concrete example would include an algorithm that aggregates everyone's responses and checks whether they match. The input is the participant's response, and the output is a notification message with the confirmed meeting date and time.
[0660] Step 9:
[0661] The server automatically adds the confirmed meeting date and time to each participant's calendar. A concrete example involves using a calendar management API to add an entry to each participant's calendar. The input is the confirmed meeting date and time, and the output is the updated status of each participant's calendar.
[0662] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0663] The system of the present invention automates the scheduling of participants and efficiently schedules meetings. Furthermore, by combining this system with an emotion engine that recognizes the user's emotions, it enables more flexible and effective scheduling of meetings.
[0664] The following explains how the system program works, with some concrete examples.
[0665] Program processing
[0666] The system schedules meetings and uses the emotion engine in the following steps:
[0667] 1. Enter the meeting information
[0668] The user uses the terminal to enter meeting details, for example, "I'd like to schedule a meeting from Tuesday to Thursday next week. Participants A and B will be participants."
[0669] 2. Emotional Engine Activation
[0670] The server uses an emotion engine to recognize emotions from the user's input and voice. For example, emotions such as "tired" or "in a hurry" can be detected from the user's voice input.
[0671] 3. Receipt and storage of data
[0672] The server stores the detailed information of the meeting received from the user in a database along with the emotion recognition results.
[0673] 4. Get Calendar Information
[0674] The server retrieves the calendar information of each participant based on the participant list. The calendar information is obtained from the API of the calendar system used by the participant.
[0675] 5. Free Time Analysis
[0676] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times within a range of dates.
[0677] 6. Selection of optimal dates
[0678] The server selects the best time and date for the meeting based on the availability of all participants. For example, it identifies a time slot such as 13:00-14:00 on Wednesday when all participants are available.
[0679] 7. Emotion-Based Optimization
[0680] Based on the user's emotions recognized by the emotion engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," an earlier meeting time will be suggested.
[0681] 8. Date Suggestion
[0682] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[0683] 9. Confirmation and Approval of Schedule
[0684] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0685] 10. Re-proposing the workflow
[0686] The server receives and re-evaluates all responses, and if not all are approved, it uses the emotion engine to re-propose the next best meeting date and time.
[0687] 11. Final Decision and Notice
[0688] After confirming everyone's approval, the server confirms the meeting date and time and notifies them again. The confirmation notification is automatically added to the calendars of all participants.
[0689] 12. Calendar Updates
[0690] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0691] This system allows users to efficiently schedule meetings without many manual operations and can respond flexibly based on emotion recognition, which not only speeds up and streamlines meeting scheduling but also improves user satisfaction.
[0692] The processing flow will be explained below.
[0693] Step 1:
[0694] The user uses the terminal to enter the details of the meeting, including the participant list, date range, and desired time slot. For example, the user might enter, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0695] Step 2:
[0696] The device sends the user's input and voice data to the server, along with voice and text data for user emotion recognition.
[0697] Step 3:
[0698] The server receives and stores detailed information about the meeting, including the participant list, schedule, desired time slot, and emotion recognition target data.
[0699] Step 4:
[0700] The server runs the emotion engine, analyzes the user's input and voice data, and recognizes emotions. For example, it detects emotions such as "tired" from voice data and saves the results.
[0701] Step 5:
[0702] The server retrieves the calendar information of each participant based on the saved participant list. The calendar information is retrieved from the API of the calendar system used by the participant.
[0703] Step 6:
[0704] The server analyzes the calendar information and lists the free times of all participants. The analysis is performed based on the specified date range.
[0705] Step 7:
[0706] The server selects the best time for the meeting based on the free time lists of all participants. For example, Wednesday 13:00-14:00 is selected as the free time for everyone.
[0707] Step 8:
[0708] The server reevaluates the appropriateness of the selected meeting date and time based on the user's emotions recognized by the emotion engine. For example, if the user is recognized as "tired," the server suggests an earlier meeting time.
[0709] Step 9:
[0710] The server notifies all participants of the selected and re-evaluated meeting date and time using email or the notification function of the calendar application.
[0711] Step 10:
[0712] Participants check the notified meeting date and time on their terminals and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0713] Step 11:
[0714] The server receives and aggregates everyone's responses, checks whether everyone has approved the meeting date and time, and if not, uses the emotion engine to re-propose the next optimal meeting date and time.
[0715] Step 12:
[0716] Once the server has confirmed everyone's approval, it will confirm the meeting date and time and notify them again. The confirmation notification will be automatically added to the calendars of all participants.
[0717] Step 13:
[0718] The server automatically updates each participant's calendar with the confirmed meeting date and time. Participants A and B's calendars will show "Meeting Wednesday 13:00-14:00."
[0719] This system allows users to efficiently schedule meetings, and the introduction of an emotion recognition engine makes scheduling more flexible and user-friendly.
[0720] Example 2
[0721] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0722] In today's business environment, scheduling meetings by coordinating the schedules of all parties involved is extremely complicated and time-consuming. In particular, scheduling meetings without considering the emotional state of the participants can be inefficient and may result in lower participant satisfaction. In this situation, our goal is to provide a flexible and effective meeting scheduling system that incorporates emotion recognition.
[0723] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0724] In this invention, the server includes means for a user to input detailed meeting information, means for the server to receive and store the detailed meeting information and emotion recognition results, means for the server to acquire participants' calendar information, means for the server to analyze the acquired calendar information and list available times, means for the server to select an optimal meeting date and time from the available times of all participants, means for the server to reevaluate the optimal meeting date and time based on the emotion recognition results, means for the server to notify all participants of the selected meeting date and time, means for the user to confirm the notified meeting date and time and send an approval or rejection, means for the server to confirm all approvals and confirm and notify the meeting date and time, and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This allows users to efficiently schedule meetings without performing many manual operations and also enables flexible response based on emotion recognition.
[0725] "User" means a person or organization that utilizes the system to enter meeting details, review and approve or reject notifications.
[0726] The "server" is a central computer system that receives information from users, performs emotion recognition, analyzes calendar information, and selects and notifies meeting dates and times.
[0727] "Detailed meeting information" refers to information necessary for setting up a meeting, such as the meeting date and time, participant list, date range, and desired time slot.
[0728] "Emotion recognition results" are information that the server analyzes emotions from user input and voice, and handles the results as data.
[0729] The "database" is a system for storing meeting details and emotion recognition results in a structured format.
[0730] "Calendar information" is data indicating the schedules of participants, and is obtained from the calendar systems used by the participants.
[0731] "Free time" is a time period during which all participants can attend the conference, as determined by analyzing calendar information.
[0732] The "optimal meeting date and time" is the most suitable time slot among the available times of all participants, and is selected taking into consideration the emotion recognition results.
[0733] A "notification" is a message sent by the server to all participants via email or calendar application to notify them of the meeting date and time selected by the server.
[0734] "Acceptance" is an action by which a user indicates their willingness to accept the proposed meeting date and time.
[0735] "Rejection" is an action that indicates the user's intention not to accept the proposed meeting date and time.
[0736] "Reevaluation" is the process in which, if approval is not obtained from all participants, the server takes into account the emotion recognition results and reselects the next optimal meeting date and time.
[0737] "Automatically add to calendar" is a process in which the confirmed date and time of the meeting is automatically reflected in the calendar system of each participant.
[0738] The purpose of the system of the present invention is to enable users to coordinate the schedules of multiple parties and efficiently schedule meetings. Furthermore, by incorporating an emotion recognition engine, the system enables more flexible and effective scheduling of meetings.
[0739] Hardware and Software Configuration
[0740] This system uses the following components:
[0741] User terminal: A device on which users enter meeting details and receive notifications. Typically, a PC or smartphone is used.
[0742] Server: The central computer system that processes information. It receives information from users, performs emotion recognition, and aggregates and analyzes calendar information.
[0743] Database: A system for the server to store detailed information about meetings and emotion recognition results. Specifically, an RDBMS such as MySQL or PostgreSQL is used.
[0744] Emotion recognition engine: A software tool for recognizing emotions from a user's voice or text. The "EmotionRecognizer API," which uses natural language processing technology, is an example of this.
[0745] Calendar system API: An interface for obtaining participants' calendar information. Typical examples include Google Calendar API and Microsoft Outlook API.
[0746] System operation example
[0747] A specific example of the operation of this system is shown below.
[0748] 1. Enter the meeting information
[0749] A user uses a terminal to input detailed information about a meeting into the system. For example, the user inputs in text format, "I would like to set up a meeting between Tuesday and Thursday of next week. The participants will be A and B."
[0750] 2. Emotion Recognition
[0751] The server receives the user's input and voice data and analyzes their emotions using an emotion recognition engine. For example, if the user says "I'm tired," it will recognize that emotion.
[0752] 3. Data storage
[0753] The server stores the meeting details and emotion recognition results in a database.
[0754] 4. Get Calendar Information
[0755] The server acquires the calendar information of each participant through the API of the calendar system used by each participant.
[0756] 5. Free Time Analysis
[0757] The server analyzes the retrieved calendar information and lists the free times of all participants.
[0758] 6. Schedule selection and optimization
[0759] The server selects the optimal meeting date and time based on the free time of all participants and the results of emotion recognition. For example, it determines that "Wednesday 13:00-14:00 is optimal."
[0760] 7. Notification of schedule
[0761] The server notifies all participants of the selected meeting date and time via email or calendar app, and users can check the notification on their devices and accept or decline the request.
[0762] 8. Re-proposal
[0763] If not everyone agrees, the server will re-propose the next optimal meeting date and time, taking into account the emotion recognition results.
[0764] 9. Update your calendar
[0765] The final confirmed meeting date and time will be automatically added to each participant's calendar from the server.
[0766] Prompt Sentence Examples
[0767] Examples of prompts that can be input to the emotion recognition engine include the following:
[0768] "I'd like to schedule a meeting between Tuesday and Thursday next week. The participants will be A and B."
[0769] "I need to set up a meeting quickly."
[0770] I'm tired today, so I'd like the meeting to be shorter.
[0771] This system allows users to significantly reduce the effort required to schedule meetings, and uses emotion recognition technology to flexibly select the most appropriate meeting date and time. This makes the operation of the entire system more efficient, leading to increased user satisfaction.
[0772] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0773] Step 1:
[0774] User enters meeting information
[0775] The user uses the terminal to input the details of the meeting. A specific example of input is, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B." This input data is sent to the server in text format.
[0776] Step 2:
[0777] The server performs emotion recognition
[0778] The server receives the meeting information and voice data sent by the user. It then uses an emotion recognition engine (EmotionRecognizer API) to analyze the user's emotions. For example, if the user indicates emotions such as "tired" or "hurrying," the server extracts the emotion and saves it as the emotion recognition result. The input is the user's voice data, and the output is the emotion recognition result.
[0779] Step 3:
[0780] The server saves the data to a database
[0781] The server stores the meeting information and emotion recognition results received from the user in a database. The database used here is MySQL, PostgreSQL, or similar. The data stored is the meeting details and the associated emotion recognition results. For example, it might be stored as "I would like to schedule a meeting from Tuesday to Thursday next week. Participants are A and B. Emotion: Tired."
[0782] Step 4:
[0783] The server retrieves the calendar information.
[0784] The server obtains the calendar information of each participant based on the participant list. It uses the Google Calendar API or Microsoft Outlook API to obtain the schedule data of each participant. The input is the participant list, and the output is the calendar information of each participant.
[0785] Step 5:
[0786] The server analyzes the calendar information and lists the free time slots.
[0787] The server analyzes the acquired calendar information and identifies the free time of each participant. As a result of the analysis, it creates a list of free time such as "Tuesday 10:00-11:00" or "Wednesday 13:00-14:00". The input is the calendar information, and the output is a list of free time of all participants.
[0788] Step 6:
[0789] The server selects the best time for the meeting
[0790] The server selects the optimal meeting date and time based on the free time slots of all participants. For example, it identifies "Wednesday 13:00-14:00" as a time slot when all participants are free. This selection also takes into account the range of meeting times and preferred time slots. The input is a list of free times, and the output is the optimal meeting date and time.
[0791] Step 7:
[0792] The server performs optimization based on the emotion recognition results.
[0793] Based on the results of the emotion recognition engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," the server will suggest an earlier meeting time. The input is the emotion recognition result and the optimal meeting date and time, and the output is the final optimal meeting date and time.
[0794] Step 8:
[0795] The server notifies all participants of the meeting date and time.
[0796] The server notifies all participants of the selected meeting date and time. Notification methods include email and the notification function of a calendar app. For example, the meeting date and time may be "Wednesday, 13:00-14:00." The input is the final optimal meeting date and time, and the output is the notification to each participant.
[0797] Step 9:
[0798] User confirms meeting time and submits approval or rejection
[0799] The user checks the notified meeting date and time and uses the terminal to send a response of approval or denial to the server. For example, participant A "approves" and participant B "denies." The input is the notification of the meeting date and time, and the output is the response of approval or denial.
[0800] Step 10:
[0801] The server checks and re-evaluates everyone's approvals
[0802] The server receives everyone's responses and reevaluates the meeting date and time based on them. If not everyone approves, it uses an emotion recognition engine to re-propose the next optimal meeting date and time. The input is the approval or rejection response, and the output is the next proposed date and time.
[0803] Step 11:
[0804] The server finalizes the meeting date and time and notifies everyone.
[0805] After the server confirms everyone's approval, it finalizes the meeting date and time and notifies everyone again. The notification is automatically reflected on everyone's calendar. The input is the final approval result, and the output is the notification of the final meeting date and time.
[0806] Step 12:
[0807] The server automatically adds the confirmed meeting date and time to each participant's calendar.
[0808] The server automatically adds the confirmed meeting date and time to each participant's calendar. This records the meeting date and time on the participant's calendar as "Wednesday 13:00-14:00 Meeting." The input is the final meeting date and time, and the output is the updated calendar for each participant.
[0809] (Application example 2)
[0810] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0811] In modern factories, production line maintenance is complicated and coordinating schedules between personnel is difficult. In particular, setting schedules without considering the emotions and state of personnel is inefficient and may reduce personnel performance. In addition, it is difficult to quickly propose optimal maintenance dates and times, which can have a negative impact on the productivity of the entire factory.
[0812] The specification process by the specification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for a user to input detailed information about a meeting; means for the server to receive and save the detailed information about the meeting; means for the server to acquire calendar information about participants; means for the server to analyze the acquired calendar information and list available times; means for the server to select an optimal meeting date and time from the available times of all participants; means for analyzing the user's emotions using an emotion recognition engine; means for the server to reevaluate and optimize the optimal meeting date and time based on the results of the emotion recognition engine; means for the server to notify all participants of the selected meeting date and time; means for the user to confirm the notified meeting date and time and send an approval or rejection; means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them; and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This makes it possible to quickly and efficiently set an optimal maintenance date and time while taking into account the emotions and state of the person in charge.
[0813] A "user" is an individual or group that utilizes the system to enter meeting details.
[0814] "Detailed information about the conference" is specific information about the conference designated by the user, including a list of participants, a range of dates, and a desired time slot.
[0815] A "server" is a computer system that controls the operation of the entire system, and is a collection of hardware or software that executes and manages multiple functions.
[0816] "Calendar information" is information used to manage the schedules and plans of meeting participants, and is obtained through the API.
[0817] "Free time" refers to a time period during which the participants of the meeting are free from other schedules or tasks and can attend the meeting.
[0818] The "optimal meeting date and time" is the most suitable time for the meeting, selected based on the free time of all participants.
[0819] An "emotion recognition engine" is a piece of computer software that recognizes emotions from a user's voice, facial expressions, etc. and analyzes the results.
[0820] "Acceptance or rejection" refers to the participant's confirmation of whether the conference can be held on the notified date and time, and their expression of willingness to accept or reject the conference.
[0821] The "confirmed meeting date and time" is the date and time of the meeting that has been finally decided after approval by all participants.
[0822] "Means for notifying" refers to a method or system for notifying participants of the date and time of the meeting and other information via email or the notification function of a calendar application.
[0823] "Automatic calendar addition" means an automated process or function that seamlessly updates the confirmed meeting date and time on each participant's calendar.
[0824] The system for realizing this invention starts when a user inputs detailed information about a meeting, which is then received and saved by a server. The system is configured as follows:
[0825] The user uses the terminal to input meeting details, for example, "The next maintenance work to be done in the factory should be done this week. X and Y will be in charge." The user's input is sent to the server, which receives this information and stores it in a database.
[0826] Next, the robot's installed emotion recognition engine will be activated, capturing the employee's face and voice and analyzing their emotions. For example, it will use the robot's camera and microphone to analyze their emotions using software such as DeepFace and OpenCV. During this process, the employee's stress level and fatigue level will be identified.
[0827] The server obtains the calendar information of the person in charge using an API (for example, Google Calendar API). It analyzes the obtained calendar information and lists the free time. This makes it possible to identify the free time of all the people in charge.
[0828] The server selects the optimal meeting time from the available times listed. During this process, emotional data from an emotion recognition engine is also taken into account. For example, if the server recognizes that the person in charge is "feeling stressed," it adjusts the meeting time while taking that emotion into consideration.
[0829] The server notifies all participants of the selected meeting date and time via their terminals. Participants can check the meeting date and time and send responses of approval or rejection. If all participants approve, the server confirms the meeting date and time and notifies everyone again.
[0830] The server automatically adds the confirmed meeting date and time to each participant's calendar, making it easy for the person in charge to know the date and time of the next maintenance work.
[0831] As a specific example, the prompt entered by the user regarding the date and time of the next maintenance work is, "When is the best time for the next maintenance work? The worker's emotion has been detected as 'tired.'" Based on this prompt, the system takes into account the worker's emotion and selects the best date and time, and notifies the worker.
[0832] This enables flexible and efficient maintenance schedules to be set taking into account the emotions of the maintenance personnel, contributing to improved productivity throughout the factory. Emotion recognition technology also improves the performance and satisfaction of maintenance personnel.
[0833] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0834] Step 1:
[0835] The user inputs the details of the meeting, including the list of participants, the date range, and the desired time slot, and the input information is sent from the terminal to the server.
[0836] Step 2:
[0837] The server receives and stores the meeting details. The received data is stored in a database for later use. The input data is the meeting details sent by the user, and the output is the meeting information stored in the database.
[0838] Step 3:
[0839] An emotion recognition engine installed in the robot is activated to analyze the emotions of the employee. The robot's camera and microphone are used to capture the employee's face and voice, and the emotion is determined using software such as DeepFace and OpenCV. The input data is the video and audio collected by the camera and microphone, and the output is the emotion recognition result.
[0840] Step 4:
[0841] The server obtains the calendar information of the participants. Using a schedule management API such as the Google Calendar API, it obtains the free time slots from each participant's calendar. The input data is the calendar information of each participant, and the output is a list of free time slots.
[0842] Step 5:
[0843] The server analyzes the calendar information it retrieves and lists the free times of all participants. The analysis is performed within the specified date range based on the meeting details. The input data is the calendar information retrieved through the API, and the output is a list of free times of all participants.
[0844] Step 6:
[0845] The server selects the optimal meeting date and time from the list of available free times. It also takes into account the results of an emotion recognition engine and optimizes the schedule based on the emotional state of the participants. The input data is the list of available free times and the emotion recognition results, and the output is the optimal meeting date and time.
[0846] Step 7:
[0847] The server notifies all participants of the selected meeting time via email or calendar application. The input data is the optimal meeting time, and the output is the notified meeting time.
[0848] Step 8:
[0849] The user checks the notified meeting date and time and sends a response of approval or rejection from the terminal to the server. The input data is the notified meeting date and time, and the output is the user's response (approval or rejection).
[0850] Step 9:
[0851] The server confirms everyone's approval and confirms the meeting date and time. If all participants approve, the final meeting date and time is confirmed. The input data are the responses of all participants, and the output is the confirmed meeting date and time.
[0852] Step 10:
[0853] The server automatically adds the confirmed meeting date and time to each participant's calendar. This process updates all participants' calendars. The input data is the confirmed meeting date and time, and the output is the updated calendar information.
[0854] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0855] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0856] In the above embodiment, an example in which the specific processing is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the smart glasses 214.
[0857] [Third embodiment]
[0858] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0859] 5, the data processing system 310 includes the data processing device 12 and a headset type terminal 314. An example of the data processing device 12 is a server.
[0860] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0861] The headset type terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a display 343. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the display 343 are also connected to the bus 52.
[0862] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0863] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0864] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0865] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset type terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0866] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0867] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0868] In the headset type terminal 314, a reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0869] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the headset type terminal 314 will be referred to as the "terminal."
[0870] The system of the present invention automates the scheduling of participants and efficiently sets meeting dates. In this system, a user inputs detailed meeting information, and the server processes that information to adjust the schedules of all participants and propose the optimal meeting date and time.
[0871] Below is a natural language explanation of how the system's programs work.
[0872] Program processing
[0873] The system schedules meetings using the following steps:
[0874] 1. Enter the meeting information
[0875] The user inputs the details of the meeting from the terminal, for example, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0876] 2. Receipt and storage of data
[0877] The server receives and stores the meeting information entered by the user, including the participant list, date range, and desired time slot.
[0878] 3. Get calendar information
[0879] The server retrieves the calendar information of each participant based on the participant list. For example, the server retrieves information such as "Tuesday 10:00-12:00 is a meeting" from A's calendar and "Thursday 14:00-16:00 is a meeting" from B's calendar.
[0880] 4. Free Time Analysis
[0881] The server parses the calendar information and lists the available times for all participants, for example, Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00.
[0882] 5. Selection of optimal dates
[0883] The server compares the free times of all participants and selects the best time when everyone is available, for example, Wednesday 13:00-14:00.
[0884] 6. Proposal of a schedule
[0885] The server notifies all participants of the optimal meeting date it has selected. For example, the server sends a notification to A and B saying, "I would like to schedule a meeting on Wednesday from 13:00 to 14:00."
[0886] 7. Confirmation and approval of schedule
[0887] Participants check the notified meeting date and time and send a response of approval or rejection. For example, participants A and B each send an "approval" response from their devices.
[0888] 8. Final Decision and Notice
[0889] The server confirms everyone's approval, confirms the meeting date and time, and notifies everyone again. For example, if everyone approves, Wednesday 13:00-14:00 is confirmed as the final meeting date. The server sends a confirmation notification and automatically updates the calendar information based on it.
[0890] 9. Update your calendar
[0891] The server automatically adds the confirmed meeting date and time to each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0892] This system allows users to efficiently schedule meetings without requiring many manual operations, thereby realizing faster and more efficient meeting scheduling.
[0893] The processing flow will be explained below.
[0894] Step 1:
[0895] The user uses the terminal to input the details of the meeting. Specifically, the user inputs the participant list, the date range, and the desired time slot. For example, the user inputs, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[0896] Step 2:
[0897] The terminal sends the meeting details entered by the user to the server, where the data is encoded and transmitted to the server over a secure channel.
[0898] Step 3:
[0899] The server stores the meeting details received from the user in a database, including the participant list, date range, and preferred time slot.
[0900] Step 4:
[0901] The server retrieves the participant list from the database and the calendar information of each participant, which is obtained from the API of the calendar system used by the participants.
[0902] Step 5:
[0903] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times for a period of time (e.g., Tuesday through Thursday of next week).
[0904] Step 6:
[0905] The server selects the best time to meet based on the availability of all participants. The best time is calculated based on the time period when everyone is free. For example, it identifies a time period when all participants are free, such as Wednesday from 13:00 to 14:00.
[0906] Step 7:
[0907] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[0908] Step 8:
[0909] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[0910] Step 9:
[0911] The server receives and aggregates everyone's responses. It checks whether everyone has accepted the meeting date and time. If everyone has accepted, it proceeds to the next step.
[0912] Step 10:
[0913] After confirming everyone's approval, the server confirms the meeting date and time and sends a notification again. The confirmation notification is automatically added to the calendars of all participants.
[0914] Step 11:
[0915] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[0916] The system's process allows users to efficiently schedule meetings.
[0917] Example 1
[0918] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0919] Coordinating and managing meetings is a time-consuming and laborious task, and it is particularly difficult to consider the schedules of all participants. Conventional methods require manual input and confirmation of each participant's schedule, which is time-consuming and prone to errors. It is also extremely difficult to find an optimal date and time that matches everyone's schedules. The present invention aims to solve these problems and make meeting scheduling more efficient.
[0920] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0921] In this invention, the server includes means for a user to input detailed information about the conference, means for the server to receive and save the detailed information about the conference, means for the server to acquire schedule information about participants, means for the server to analyze the acquired schedule information and list free times, means for the server to select the optimal conference date and time from the free times of all participants, means for the server to notify all participants of the selected conference date and time, means for the user to check the notified conference date and time and send an approval or rejection, means for the server to confirm the approval of all participants and notify them of the final conference date and time, and means for the server to automatically add the finalized conference date and time to the schedule management device of each participant, thereby enabling automatic setting of the conference date and time and efficient coordination.
[0922] "User" refers to the person who enters meeting details and uses the system.
[0923] "Server" refers to the device or system that receives and stores meeting details and analyzes participant schedule information.
[0924] "Detailed meeting information" refers to information necessary for setting up a meeting, and specifically includes a list of participants, a range of dates, and a desired time slot.
[0925] "Participant" means a person listed as attending a meeting.
[0926] "Schedule information" refers to calendar and schedule data held by each participant.
[0927] "Calendar API" refers to a program interface for retrieving and updating schedule information in collaboration with external calendar services.
[0928] "Free time" refers to time periods when participants have no scheduled appointments.
[0929] The "optimal meeting date and time" refers to the most suitable meeting date and time that allows all participants to attend.
[0930] "Notification" refers to the system informing participants of the best meeting time and date and other important information.
[0931] "Approval or rejection" refers to the user's action of expressing their willingness to accept or reject the proposed meeting date and time.
[0932] "Schedule Management Device" refers to a digital device used to manage and display Participant's calendar information.
[0933] This system automates the scheduling of participants and efficiently sets meeting dates. Users input detailed meeting information, and the server processes that information to adjust the schedules of all participants and suggest the best time and date for the meeting.
[0934] Program processing overview
[0935] The system works as follows:
[0936] 1. User enters meeting information
[0937] The user uses their own terminal to enter detailed information about the meeting (participant list, date range, desired time slot) into a dedicated input form.
[0938] 2. The server receives and stores the data
[0939] The server receives the meeting information sent by the user and stores it in a database, including the participant list, date range, and desired time slot.
[0940] 3. The server retrieves the calendar information
[0941] The server retrieves schedule information by calling each participant's calendar API (e.g., Google Calendar API, Microsoft Graph API) based on the saved participant list. For example, it retrieves real-time information such as "Participant A has a meeting on Tuesday from 10:00 to 12:00" and "Participant B has a meeting on Thursday from 14:00 to 16:00."
[0942] 4. Server free time analysis
[0943] The server analyzes the calendar information and lists the free time slots for each participant, using, for example, Python's pandas library to calculate overlapping time slots and free time slots.
[0944] 5. The server selects the optimal schedule
[0945] The server selects a time slot that is available to all participants from the list of available times. For example, it selects "Wednesday 13:00-14:00" as the best time and date.
[0946] 6. The server proposes a date
[0947] The server notifies all participants of the optimal meeting date it has selected. Notifications are usually sent using an email service (e.g., SendGrid) or a messaging API (e.g., Twilio). For example, a notification saying "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM" is sent to participants A and B.
[0948] 7. User confirms and approves the schedule
[0949] Participants can confirm the notification and approve or decline the meeting at that date and time by clicking a link in the notification email, for example, and selecting "Approve" or "Decline."
[0950] 8. Server's decision is final and notified
[0951] The server tally the responses from each participant, and if all participants approve, it notifies them again that the meeting date and time is final. For example, it sends a confirmation notice to all participants saying, "Since all participants have approved Wednesday 13:00-14:00, the meeting will be confirmed for this time."
[0952] 9. Server updates the calendar
[0953] The server automatically adds the finalized meeting date and time to each participant's calendar using the Google Calendar API or Microsoft Graph API, adding the meeting date and time as "Wednesday 13:00-14:00" to each participant's calendar.
[0954] Examples of concrete examples and prompts
[0955] For example, if a user wants to schedule a meeting between October 17th and October 19th, 2023, and specifies "Mr. A" and "Mr. B" as participants, the following input and suggestions will be made:
[0956] Entering meeting information: "I would like to schedule a meeting for Mr. A and Mr. B to take place between October 17th and October 19th, 2023."
[0957] Example prompt sentence:
[0958] "This system automatically adjusts the schedules of the people involved and proposes the optimal meeting date. The user enters the details of the meeting, and the server uses this information to collect and analyze the calendar information of all participants and propose the optimal date and time. The proposed date and time is then approved by all participants, and once confirmed, it is automatically added to their calendars."
[0959] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0960] Step 1:
[0961] Entering meeting information
[0962] User
[0963] The user uses their own device to enter detailed information about the meeting. For example, they might enter "I would like to set up a meeting between October 17th and October 19th, 2023, with Mr. A and Mr. B participating" into a dedicated input form on their device. This input information includes the meeting name, date range, participant list, and desired time slot. The entered information is sent to the server by clicking the send button.
[0964] Input: Meeting name, date range, participant list, desired time slot
[0965] Output: The entered meeting information
[0966] Step 2:
[0967] Receiving and storing data
[0968] server
[0969] The server receives the meeting information sent by the user. The received information is saved in a database. For example, the meeting name "Project Meeting," the date range "October 17th to October 19th, 2023," the participant list "Mr. A, Mr. B," and the desired time slot "Morning" are saved in the database.
[0970] Input: Meeting information sent by the user
[0971] Output: Meeting information stored in a database
[0972] Step 3:
[0973] Get calendar information
[0974] server
[0975] The server calls the calendar API of each participant based on the saved participant list to obtain schedule information (e.g., Google Calendar API, Microsoft Graph API). For example, the server obtains information such as "Person A has a meeting on Tuesday from 10:00 to 12:00" and "Person B has a meeting on Thursday from 14:00 to 16:00."
[0976] Input: Participant list stored in the database
[0977] Output: Schedule information of the participants
[0978] Step 4:
[0979] Free / busy analysis
[0980] server
[0981] The server analyzes the calendar information and lists the free time slots for each participant. It uses Python's pandas library to analyze the information and calculates overlapping time slots and free time slots. For example, it lists free time slots such as Tuesday 9:00-10:00 and Thursday 16:00-18:00.
[0982] Input: Retrieved calendar information
[0983] Output: Free / busy list
[0984] Step 5:
[0985] Selection of optimal dates
[0986] server
[0987] The server selects the best time and date from the list of available times of all participants, taking into account the common time slots available to all participants, using an algorithm to consider priorities and select "Wednesday 13:00-14:00" as the best time.
[0988] Input: Free / Busy List
[0989] Output: The best meeting time selected
[0990] Step 6:
[0991] Suggested itinerary
[0992] server
[0993] The server notifies all participants of the optimal meeting date it has selected. For notification purposes, it uses an email service (e.g., SendGrid) or a messaging API (e.g., Twilio) to send a notification email to all participants saying, for example, "We would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[0994] Input: Best meeting time selected
[0995] Output: Notification to participants (email)
[0996] Step 7:
[0997] Confirm and approve the schedule
[0998] User
[0999] Participants can confirm the notification they receive on their devices and approve or reject the meeting at that date and time by clicking the link in the notification email and selecting "Approve" or "Reject" on the web page. The information is then sent to the server.
[1000] Input: Date and time notification sent by the server
[1001] Output: Approval or rejection response
[1002] Step 8:
[1003] Final Decision and Notification
[1004] server
[1005] The server tallying the responses from each participant and finalizing the meeting date and time once all participants have approved it, then notifying all participants again that "Wednesday 13:00-14:00 has been finalized."
[1006] Input: Participant's approval or rejection response
[1007] Output: Notification of final decision
[1008] Step 9:
[1009] Calendar updates
[1010] server
[1011] The server automatically adds the confirmed meeting date and time to each participant's calendar, using the Google Calendar API and Microsoft Graph API to register the meeting as "Wednesday 13:00-14:00" on each participant's calendar.
[1012] Input: Finalized meeting date and time
[1013] Output: Meeting date and time added to calendar
[1014] (Application example 1)
[1015] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[1016] Coordinating meeting dates and times is time-consuming and requires adjusting the schedules of multiple participants. Furthermore, on-site workers and managers at manufacturing sites and other locations frequently need to hold meetings, so smooth meeting coordination is essential. However, it is difficult to manually check and adjust schedules while working on-site. Therefore, there is a need for a system that streamlines and automates meeting coordination, reducing the burden on on-site workers in particular.
[1017] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[1018] In this invention, the server includes: a means for a user to input detailed information about the conference; a means for the server to receive and store the detailed information about the conference; a means for the server to acquire schedule information about participants; a means for the server to analyze the acquired schedule information and list available times; a means for the server to select an optimal conference date and time from the available times of all participants; a means for the server to notify all participants of the selected conference date and time; a means for the user to confirm the notified conference date and time and send an approval or rejection; a means for the server to confirm the approval of all participants and confirm and notify the final conference date and time; a means for the server to automatically add the finalized conference date and time to each participant's schedule; a means for inputting detailed information about the conference by voice or touch operation using smart glasses; and a means for sending approval or rejection of participants by voice or touch operation using smart glasses. This automates the task of manually arranging conference schedules, enabling efficient and quick conference arrangements, particularly for users engaged in field work.
[1019] A "user" is someone who uses the system to enter meeting details and arrange meetings.
[1020] "Meeting details" refers to information necessary to set up a meeting, such as a participant list, a date range, and a desired time slot.
[1021] "Server" is a central computer system that receives, stores, analyzes, and schedules meeting information entered by users.
[1022] "Participants" are people who need to attend a meeting.
[1023] "Schedule information" refers to each participant's schedule or individual events listed on their calendar.
[1024] "Free time" refers to a time when all participants are free and suitable for setting up a meeting based on the schedule information.
[1025] The "optimal meeting date and time" refers to the most suitable date and time for holding a meeting after analyzing the free time of all participants.
[1026] A "notification" is a message sent from the server to participants that provides information about the date and time of the conference.
[1027] "Approval" means that the participants confirm and agree that the notified meeting date and time is appropriate.
[1028] "Rejection" means that a participant indicates that the notified meeting date and time is not suitable.
[1029] "Smart glasses" are a type of wearable device that incorporates a display and operating interface, allowing users to input and check information using voice or touch controls.
[1030] A system embodying the present invention combines smart glasses used in manufacturing sites and the like with a server to automatically schedule meetings. A specific embodiment of this system will be described below.
[1031] Hardware and software used
[1032] Smart Glasses: Enter meeting details by voice or touch and accept or decline.
[1033] Server: Receives and stores detailed information about the conference, obtains, analyzes, and notifies participants of their schedules.
[1034] Calendar Management API: Use an external calendar management service (e.g., Google Calendar API) to obtain attendee schedule information.
[1035] Database: Stores meeting details and participant schedule information.
[1036] Processing flow
[1037] 1. Enter the meeting information
[1038] Using the smart glasses, the user inputs meeting details (participant list, date range, desired time slot) by voice or touch operation. For example, a manufacturing site manager might say, "I'd like to schedule a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B."
[1039] 2. Receipt and storage of data
[1040] The server receives the meeting information entered from the smart glasses and stores it in a database, including specific meeting details (participant list, date range, desired time slot).
[1041] 3. Get calendar information
[1042] The server uses the calendar management API to obtain schedule information for each participant. For example, the server obtains information such as "Team A's schedule shows a meeting on Tuesday from 10:00 to 12:00, and Team B's schedule shows a meeting on Thursday from 14:00 to 16:00."
[1043] 4. Free Time Analysis
[1044] The server analyzes the schedule information and lists the free times of all participants. The analysis results include specific free times (Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00).
[1045] 5. Selection of optimal dates
[1046] The server selects the best date that all participants can attend from the listed available times. For example, it selects "Wednesday 13:00-14:00 is best."
[1047] 6. Notification of schedule
[1048] The server then notifies all participants of the optimal meeting date. A notification message is sent to each participant via their smart glasses, stating, "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[1049] 7. Confirmation and approval of schedule
[1050] Participants use smart glasses to check the notified meeting date and time, and send a response of approval or rejection to the server by voice or touch operation. For example, an administrator can reply "approved" using the smart glasses.
[1051] 8. Final Decision and Notice
[1052] After confirming everyone's approval, the server confirms the meeting date and time and notifies everyone again. If everyone approves, a notification is sent stating, "Wednesday 13:00-14:00 has been finalized as the meeting date."
[1053] 9. Update your calendar
[1054] The server automatically adds the confirmed meeting date and time to each participant's calendar, so that the meeting is recorded as "Wednesday 13:00-14:00 meeting" on each participant's calendar.
[1055] Specific examples
[1056] For example, a manager working on a manufacturing site can use smart glasses to input a voice command such as, "I want everyone to attend the meeting next week, so please adjust the schedule." The system will then automatically suggest the optimal date and time, notify everyone, and confirm the schedule after receiving confirmation.
[1057] Prompt Sentence Examples
[1058] "I'd like to meet with my work team between Tuesday and Thursday next week. Please let me know if that's convenient for you."
[1059] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1060] Step 1:
[1061] The user uses the smart glasses to input meeting details (participant list, date range, desired time slot) using voice or touch operations. As a specific example, a manufacturing site manager might say, "I'd like to set up a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B." The input data includes the participant list, date range, and desired time slot. This is then input to the server.
[1062] Step 2:
[1063] The server receives the meeting information input from the smart glasses and stores it in a database. Specific operations on the server include parsing the input data in JSON format and saving it as a database entry. The output is a confirmation message of the saved information.
[1064] Step 3:
[1065] The server uses a calendar management API to obtain schedule information for each participant. For example, it sends an API request to obtain the participants' schedules and format them into an analyzable data format. The input is a list of participants, and the output is the schedule information for each participant.
[1066] Step 4:
[1067] The server analyzes the schedule information it obtains and lists the free time slots of all participants. A concrete example includes an algorithm that cross-references each schedule information and finds common free time slots. The input is the schedule information of the participants, and the output is a list of common free time slots.
[1068] Step 5:
[1069] The server selects the best possible date from the list of free times that all participants can attend. For example, it runs an evaluation algorithm to select the best option based on the free time list. The input is the common free time list, and the output is the best meeting date and time.
[1070] Step 6:
[1071] The server notifies all participants of the optimal meeting date and time selected. As a concrete example, a message saying "I would like to set up a meeting on Wednesday from 13:00 to 14:00" is sent to each participant via smart glasses. The input is the optimal meeting date and time, and the output is the sending status of the notification message.
[1072] Step 7:
[1073] The user uses the smart glasses to confirm the notified meeting date and time and submit an approval or rejection. Specific examples include inputting "approval" or "rejection" using touch or voice recognition on the smart glasses. The input is the notification message, and the output is the user's response.
[1074] Step 8:
[1075] The server confirms everyone's approval, confirms the meeting date and time, and notifies them again. A concrete example would include an algorithm that aggregates everyone's responses and checks whether they match. The input is the participant's response, and the output is a notification message with the confirmed meeting date and time.
[1076] Step 9:
[1077] The server automatically adds the confirmed meeting date and time to each participant's calendar. A concrete example involves using a calendar management API to add an entry to each participant's calendar. The input is the confirmed meeting date and time, and the output is the updated status of each participant's calendar.
[1078] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[1079] The system of the present invention automates the scheduling of participants and efficiently schedules meetings. Furthermore, by combining this system with an emotion engine that recognizes the user's emotions, it enables more flexible and effective scheduling of meetings.
[1080] The following explains how the system program works, with some concrete examples.
[1081] Program processing
[1082] The system schedules meetings and uses the emotion engine in the following steps:
[1083] 1. Enter the meeting information
[1084] The user uses the terminal to enter meeting details, for example, "I'd like to schedule a meeting from Tuesday to Thursday next week. Participants A and B will be participants."
[1085] 2. Emotional Engine Activation
[1086] The server uses an emotion engine to recognize emotions from the user's input and voice. For example, emotions such as "tired" or "in a hurry" can be detected from the user's voice input.
[1087] 3. Receipt and storage of data
[1088] The server stores the detailed information of the meeting received from the user in a database along with the emotion recognition results.
[1089] 4. Get Calendar Information
[1090] The server retrieves the calendar information of each participant based on the participant list. The calendar information is obtained from the API of the calendar system used by the participant.
[1091] 5. Free Time Analysis
[1092] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times within a range of dates.
[1093] 6. Selection of optimal dates
[1094] The server selects the best time and date for the meeting based on the availability of all participants. For example, it identifies a time slot such as 13:00-14:00 on Wednesday when all participants are available.
[1095] 7. Emotion-Based Optimization
[1096] Based on the user's emotions recognized by the emotion engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," an earlier meeting time will be suggested.
[1097] 8. Date Suggestion
[1098] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[1099] 9. Confirmation and Approval of Schedule
[1100] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[1101] 10. Re-proposing the workflow
[1102] The server receives and re-evaluates all responses, and if not all are approved, it uses the emotion engine to re-propose the next best meeting date and time.
[1103] 11. Final Decision and Notice
[1104] After confirming everyone's approval, the server confirms the meeting date and time and notifies them again. The confirmation notification is automatically added to the calendars of all participants.
[1105] 12. Calendar Updates
[1106] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[1107] This system allows users to efficiently schedule meetings without many manual operations and can respond flexibly based on emotion recognition, which not only speeds up and streamlines meeting scheduling but also improves user satisfaction.
[1108] The processing flow will be explained below.
[1109] Step 1:
[1110] The user uses the terminal to enter the details of the meeting, including the participant list, date range, and desired time slot. For example, the user might enter, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[1111] Step 2:
[1112] The device sends the user's input and voice data to the server, along with voice and text data for user emotion recognition.
[1113] Step 3:
[1114] The server receives and stores detailed information about the meeting, including the participant list, schedule, desired time slot, and emotion recognition target data.
[1115] Step 4:
[1116] The server runs the emotion engine, analyzes the user's input and voice data, and recognizes emotions. For example, it detects emotions such as "tired" from voice data and saves the results.
[1117] Step 5:
[1118] The server retrieves the calendar information of each participant based on the saved participant list. The calendar information is retrieved from the API of the calendar system used by the participant.
[1119] Step 6:
[1120] The server analyzes the calendar information and lists the free times of all participants. The analysis is performed based on the specified date range.
[1121] Step 7:
[1122] The server selects the best time for the meeting based on the free time lists of all participants. For example, Wednesday 13:00-14:00 is selected as the free time for everyone.
[1123] Step 8:
[1124] The server reevaluates the appropriateness of the selected meeting date and time based on the user's emotions recognized by the emotion engine. For example, if the user is recognized as "tired," the server suggests an earlier meeting time.
[1125] Step 9:
[1126] The server notifies all participants of the selected and re-evaluated meeting date and time using email or the notification function of the calendar application.
[1127] Step 10:
[1128] Participants check the notified meeting date and time on their terminals and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[1129] Step 11:
[1130] The server receives and aggregates everyone's responses, checks whether everyone has approved the meeting date and time, and if not, uses the emotion engine to re-propose the next optimal meeting date and time.
[1131] Step 12:
[1132] Once the server has confirmed everyone's approval, it will confirm the meeting date and time and notify them again. The confirmation notification will be automatically added to the calendars of all participants.
[1133] Step 13:
[1134] The server automatically updates each participant's calendar with the confirmed meeting date and time. Participants A and B's calendars will show "Meeting Wednesday 13:00-14:00."
[1135] This system allows users to efficiently schedule meetings, and the introduction of an emotion recognition engine makes scheduling more flexible and user-friendly.
[1136] Example 2
[1137] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[1138] In today's business environment, scheduling meetings by coordinating the schedules of all parties involved is extremely complicated and time-consuming. In particular, scheduling meetings without considering the emotional state of the participants can be inefficient and may result in lower participant satisfaction. In this situation, our goal is to provide a flexible and effective meeting scheduling system that incorporates emotion recognition.
[1139] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1140] In this invention, the server includes means for a user to input detailed meeting information, means for the server to receive and store the detailed meeting information and emotion recognition results, means for the server to acquire participants' calendar information, means for the server to analyze the acquired calendar information and list available times, means for the server to select an optimal meeting date and time from the available times of all participants, means for the server to reevaluate the optimal meeting date and time based on the emotion recognition results, means for the server to notify all participants of the selected meeting date and time, means for the user to confirm the notified meeting date and time and send an approval or rejection, means for the server to confirm all approvals and confirm and notify the meeting date and time, and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This allows users to efficiently schedule meetings without performing many manual operations and also enables flexible response based on emotion recognition.
[1141] "User" means a person or organization that utilizes the system to enter meeting details, review and approve or reject notifications.
[1142] The "server" is a central computer system that receives information from users, performs emotion recognition, analyzes calendar information, and selects and notifies meeting dates and times.
[1143] "Detailed meeting information" refers to information necessary for setting up a meeting, such as the meeting date and time, participant list, date range, and desired time slot.
[1144] "Emotion recognition results" are information that the server analyzes emotions from user input and voice, and handles the results as data.
[1145] The "database" is a system for storing meeting details and emotion recognition results in a structured format.
[1146] "Calendar information" is data indicating the schedules of participants, and is obtained from the calendar systems used by the participants.
[1147] "Free time" is a time period during which all participants can attend the conference, as determined by analyzing calendar information.
[1148] The "optimal meeting date and time" is the most suitable time slot among the available times of all participants, and is selected taking into consideration the emotion recognition results.
[1149] A "notification" is a message sent by the server to all participants via email or calendar application to notify them of the meeting date and time selected by the server.
[1150] "Acceptance" is an action by which a user indicates their willingness to accept the proposed meeting date and time.
[1151] "Rejection" is an action that indicates the user's intention not to accept the proposed meeting date and time.
[1152] "Reevaluation" is the process in which, if approval is not obtained from all participants, the server takes into account the emotion recognition results and reselects the next optimal meeting date and time.
[1153] "Automatically add to calendar" is a process in which the confirmed date and time of the meeting is automatically reflected in the calendar system of each participant.
[1154] The purpose of the system of the present invention is to enable users to coordinate the schedules of multiple parties and efficiently schedule meetings. Furthermore, by incorporating an emotion recognition engine, the system enables more flexible and effective scheduling of meetings.
[1155] Hardware and Software Configuration
[1156] This system uses the following components:
[1157] User terminal: A device on which users enter meeting details and receive notifications. Typically, a PC or smartphone is used.
[1158] Server: The central computer system that processes information. It receives information from users, performs emotion recognition, and aggregates and analyzes calendar information.
[1159] Database: A system for the server to store detailed information about meetings and emotion recognition results. Specifically, an RDBMS such as MySQL or PostgreSQL is used.
[1160] Emotion recognition engine: A software tool for recognizing emotions from a user's voice or text. The "EmotionRecognizer API," which uses natural language processing technology, is an example of this.
[1161] Calendar system API: An interface for obtaining participants' calendar information. Typical examples include Google Calendar API and Microsoft Outlook API.
[1162] System operation example
[1163] A specific example of the operation of this system is shown below.
[1164] 1. Enter the meeting information
[1165] A user uses a terminal to input detailed information about a meeting into the system. For example, the user inputs in text format, "I would like to set up a meeting between Tuesday and Thursday of next week. The participants will be A and B."
[1166] 2. Emotion Recognition
[1167] The server receives the user's input and voice data and analyzes their emotions using an emotion recognition engine. For example, if the user says "I'm tired," it will recognize that emotion.
[1168] 3. Data storage
[1169] The server stores the meeting details and emotion recognition results in a database.
[1170] 4. Get Calendar Information
[1171] The server acquires the calendar information of each participant through the API of the calendar system used by each participant.
[1172] 5. Free Time Analysis
[1173] The server analyzes the retrieved calendar information and lists the free times of all participants.
[1174] 6. Schedule selection and optimization
[1175] The server selects the optimal meeting date and time based on the free time of all participants and the results of emotion recognition. For example, it determines that "Wednesday 13:00-14:00 is optimal."
[1176] 7. Notification of schedule
[1177] The server notifies all participants of the selected meeting date and time via email or calendar app, and users can check the notification on their devices and accept or decline the request.
[1178] 8. Re-proposal
[1179] If not everyone agrees, the server will re-propose the next optimal meeting date and time, taking into account the emotion recognition results.
[1180] 9. Update your calendar
[1181] The final confirmed meeting date and time will be automatically added to each participant's calendar from the server.
[1182] Prompt Sentence Examples
[1183] Examples of prompts that can be input to the emotion recognition engine include the following:
[1184] "I'd like to schedule a meeting between Tuesday and Thursday next week. The participants will be A and B."
[1185] "I need to set up a meeting quickly."
[1186] I'm tired today, so I'd like the meeting to be shorter.
[1187] This system allows users to significantly reduce the effort required to schedule meetings, and uses emotion recognition technology to flexibly select the most appropriate meeting date and time. This makes the operation of the entire system more efficient, leading to increased user satisfaction.
[1188] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1189] Step 1:
[1190] User enters meeting information
[1191] The user uses the terminal to input the details of the meeting. A specific example of input is, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B." This input data is sent to the server in text format.
[1192] Step 2:
[1193] The server performs emotion recognition
[1194] The server receives the meeting information and voice data sent by the user. It then uses an emotion recognition engine (EmotionRecognizer API) to analyze the user's emotions. For example, if the user indicates emotions such as "tired" or "hurrying," the server extracts the emotion and saves it as the emotion recognition result. The input is the user's voice data, and the output is the emotion recognition result.
[1195] Step 3:
[1196] The server saves the data to a database
[1197] The server stores the meeting information and emotion recognition results received from the user in a database. The database used here is MySQL, PostgreSQL, or similar. The data stored is the meeting details and the associated emotion recognition results. For example, it might be stored as "I would like to schedule a meeting from Tuesday to Thursday next week. Participants are A and B. Emotion: Tired."
[1198] Step 4:
[1199] The server retrieves the calendar information.
[1200] The server obtains the calendar information of each participant based on the participant list. It uses the Google Calendar API or Microsoft Outlook API to obtain the schedule data of each participant. The input is the participant list, and the output is the calendar information of each participant.
[1201] Step 5:
[1202] The server analyzes the calendar information and lists the free time slots.
[1203] The server analyzes the acquired calendar information and identifies the free time of each participant. As a result of the analysis, it creates a list of free time such as "Tuesday 10:00-11:00" or "Wednesday 13:00-14:00". The input is the calendar information, and the output is a list of free time of all participants.
[1204] Step 6:
[1205] The server selects the best time for the meeting
[1206] The server selects the optimal meeting date and time based on the free time slots of all participants. For example, it identifies "Wednesday 13:00-14:00" as a time slot when all participants are free. This selection also takes into account the range of meeting times and preferred time slots. The input is a list of free times, and the output is the optimal meeting date and time.
[1207] Step 7:
[1208] The server performs optimization based on the emotion recognition results.
[1209] Based on the results of the emotion recognition engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," the server will suggest an earlier meeting time. The input is the emotion recognition result and the optimal meeting date and time, and the output is the final optimal meeting date and time.
[1210] Step 8:
[1211] The server notifies all participants of the meeting date and time.
[1212] The server notifies all participants of the selected meeting date and time. Notification methods include email and the notification function of a calendar app. For example, the meeting date and time may be "Wednesday, 13:00-14:00." The input is the final optimal meeting date and time, and the output is the notification to each participant.
[1213] Step 9:
[1214] User confirms meeting time and submits approval or rejection
[1215] The user checks the notified meeting date and time and uses the terminal to send a response of approval or denial to the server. For example, participant A "approves" and participant B "denies." The input is the notification of the meeting date and time, and the output is the response of approval or denial.
[1216] Step 10:
[1217] The server checks and re-evaluates everyone's approvals
[1218] The server receives everyone's responses and reevaluates the meeting date and time based on them. If not everyone approves, it uses an emotion recognition engine to re-propose the next optimal meeting date and time. The input is the approval or rejection response, and the output is the next proposed date and time.
[1219] Step 11:
[1220] The server finalizes the meeting date and time and notifies everyone.
[1221] After the server confirms everyone's approval, it finalizes the meeting date and time and notifies everyone again. The notification is automatically reflected on everyone's calendar. The input is the final approval result, and the output is the notification of the final meeting date and time.
[1222] Step 12:
[1223] The server automatically adds the confirmed meeting date and time to each participant's calendar.
[1224] The server automatically adds the confirmed meeting date and time to each participant's calendar. This records the meeting date and time on the participant's calendar as "Wednesday 13:00-14:00 Meeting." The input is the final meeting date and time, and the output is the updated calendar for each participant.
[1225] (Application example 2)
[1226] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[1227] In modern factories, production line maintenance is complicated and coordinating schedules between personnel is difficult. In particular, setting schedules without considering the emotions and state of personnel is inefficient and may reduce personnel performance. In addition, it is difficult to quickly propose optimal maintenance dates and times, which can have a negative impact on the productivity of the entire factory.
[1228] The specification process by the specification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for a user to input detailed information about a meeting; means for the server to receive and save the detailed information about the meeting; means for the server to acquire calendar information about participants; means for the server to analyze the acquired calendar information and list available times; means for the server to select an optimal meeting date and time from the available times of all participants; means for analyzing the user's emotions using an emotion recognition engine; means for the server to reevaluate and optimize the optimal meeting date and time based on the results of the emotion recognition engine; means for the server to notify all participants of the selected meeting date and time; means for the user to confirm the notified meeting date and time and send an approval or rejection; means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them; and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This makes it possible to quickly and efficiently set an optimal maintenance date and time while taking into account the emotions and state of the person in charge.
[1229] A "user" is an individual or group that utilizes the system to enter meeting details.
[1230] "Detailed information about the conference" is specific information about the conference designated by the user, including a list of participants, a range of dates, and a desired time slot.
[1231] A "server" is a computer system that controls the operation of the entire system, and is a collection of hardware or software that executes and manages multiple functions.
[1232] "Calendar information" is information used to manage the schedules and plans of meeting participants, and is obtained through the API.
[1233] "Free time" refers to a time period during which the participants of the meeting are free from other schedules or tasks and can attend the meeting.
[1234] The "optimal meeting date and time" is the most suitable time for the meeting, selected based on the free time of all participants.
[1235] An "emotion recognition engine" is a piece of computer software that recognizes emotions from a user's voice, facial expressions, etc. and analyzes the results.
[1236] "Acceptance or rejection" refers to the participant's confirmation of whether the conference can be held on the notified date and time, and their expression of willingness to accept or reject the conference.
[1237] The "confirmed meeting date and time" is the date and time of the meeting that has been finally decided after approval by all participants.
[1238] "Means for notifying" refers to a method or system for notifying participants of the date and time of the meeting and other information via email or the notification function of a calendar application.
[1239] "Automatic calendar addition" means an automated process or function that seamlessly updates the confirmed meeting date and time on each participant's calendar.
[1240] The system for realizing this invention starts when a user inputs detailed information about a meeting, which is then received and saved by a server. The system is configured as follows:
[1241] The user uses the terminal to input meeting details, for example, "The next maintenance work to be done in the factory should be done this week. X and Y will be in charge." The user's input is sent to the server, which receives this information and stores it in a database.
[1242] Next, the robot's installed emotion recognition engine will be activated, capturing the employee's face and voice and analyzing their emotions. For example, it will use the robot's camera and microphone to analyze their emotions using software such as DeepFace and OpenCV. During this process, the employee's stress level and fatigue level will be identified.
[1243] The server obtains the calendar information of the person in charge using an API (for example, Google Calendar API). It analyzes the obtained calendar information and lists the free time. This makes it possible to identify the free time of all the people in charge.
[1244] The server selects the optimal meeting time from the available times listed. During this process, emotional data from an emotion recognition engine is also taken into account. For example, if the server recognizes that the person in charge is "feeling stressed," it adjusts the meeting time while taking that emotion into consideration.
[1245] The server notifies all participants of the selected meeting date and time via their terminals. Participants can check the meeting date and time and send responses of approval or rejection. If all participants approve, the server confirms the meeting date and time and notifies everyone again.
[1246] The server automatically adds the confirmed meeting date and time to each participant's calendar, making it easy for the person in charge to know the date and time of the next maintenance work.
[1247] As a specific example, the prompt entered by the user regarding the date and time of the next maintenance work is, "When is the best time for the next maintenance work? The worker's emotion has been detected as 'tired.'" Based on this prompt, the system takes into account the worker's emotion and selects the best date and time, and notifies the worker.
[1248] This enables flexible and efficient maintenance schedules to be set taking into account the emotions of the maintenance personnel, contributing to improved productivity throughout the factory. Emotion recognition technology also improves the performance and satisfaction of maintenance personnel.
[1249] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1250] Step 1:
[1251] The user inputs the details of the meeting, including the list of participants, the date range, and the desired time slot, and the input information is sent from the terminal to the server.
[1252] Step 2:
[1253] The server receives and stores the meeting details. The received data is stored in a database for later use. The input data is the meeting details sent by the user, and the output is the meeting information stored in the database.
[1254] Step 3:
[1255] An emotion recognition engine installed in the robot is activated to analyze the emotions of the employee. The robot's camera and microphone are used to capture the employee's face and voice, and the emotion is determined using software such as DeepFace and OpenCV. The input data is the video and audio collected by the camera and microphone, and the output is the emotion recognition result.
[1256] Step 4:
[1257] The server obtains the calendar information of the participants. Using a schedule management API such as the Google Calendar API, it obtains the free time slots from each participant's calendar. The input data is the calendar information of each participant, and the output is a list of free time slots.
[1258] Step 5:
[1259] The server analyzes the calendar information it retrieves and lists the free times of all participants. The analysis is performed within the specified date range based on the meeting details. The input data is the calendar information retrieved through the API, and the output is a list of free times of all participants.
[1260] Step 6:
[1261] The server selects the optimal meeting date and time from the list of available free times. It also takes into account the results of an emotion recognition engine and optimizes the schedule based on the emotional state of the participants. The input data is the list of available free times and the emotion recognition results, and the output is the optimal meeting date and time.
[1262] Step 7:
[1263] The server notifies all participants of the selected meeting time via email or calendar application. The input data is the optimal meeting time, and the output is the notified meeting time.
[1264] Step 8:
[1265] The user checks the notified meeting date and time and sends a response of approval or rejection from the terminal to the server. The input data is the notified meeting date and time, and the output is the user's response (approval or rejection).
[1266] Step 9:
[1267] The server confirms everyone's approval and confirms the meeting date and time. If all participants approve, the final meeting date and time is confirmed. The input data are the responses of all participants, and the output is the confirmed meeting date and time.
[1268] Step 10:
[1269] The server automatically adds the confirmed meeting date and time to each participant's calendar. This process updates all participants' calendars. The input data is the confirmed meeting date and time, and the output is the updated calendar information.
[1270] The specific processing unit 290 transmits the result of the specific processing to the headset type terminal 314. In the headset type terminal 314, the control unit 46A causes the speaker 240 and the display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[1271] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1272] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the headset type terminal 314.
[1273] [Fourth embodiment]
[1274] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[1275] 7, a data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[1276] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1277] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a control target 443. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the control target 443 are also connected to the bus 52.
[1278] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[1279] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[1280] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[1281] The control object 443 includes a display device, LEDs in the eyes, and motors for driving the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.
[1282] Fig. 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Fig. 8, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[1283] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1284] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[1285] In the robot 414, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[1286] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1287] The system of the present invention automates the scheduling of participants and efficiently sets meeting dates. In this system, a user inputs detailed meeting information, and the server processes that information to adjust the schedules of all participants and propose the optimal meeting date and time.
[1288] Below is a natural language explanation of how the system's programs work.
[1289] Program processing
[1290] The system schedules meetings using the following steps:
[1291] 1. Enter the meeting information
[1292] The user inputs the details of the meeting from the terminal, for example, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[1293] 2. Receipt and storage of data
[1294] The server receives and stores the meeting information entered by the user, including the participant list, date range, and desired time slot.
[1295] 3. Get calendar information
[1296] The server retrieves the calendar information of each participant based on the participant list. For example, the server retrieves information such as "Tuesday 10:00-12:00 is a meeting" from A's calendar and "Thursday 14:00-16:00 is a meeting" from B's calendar.
[1297] 4. Free Time Analysis
[1298] The server parses the calendar information and lists the available times for all participants, for example, Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00.
[1299] 5. Selection of optimal dates
[1300] The server compares the free times of all participants and selects the best time when everyone is available, for example, Wednesday 13:00-14:00.
[1301] 6. Proposal of a schedule
[1302] The server notifies all participants of the optimal meeting date it has selected. For example, the server sends a notification to A and B saying, "I would like to schedule a meeting on Wednesday from 13:00 to 14:00."
[1303] 7. Confirmation and approval of schedule
[1304] Participants check the notified meeting date and time and send a response of approval or rejection. For example, participants A and B each send an "approval" response from their devices.
[1305] 8. Final Decision and Notice
[1306] The server confirms everyone's approval, confirms the meeting date and time, and notifies everyone again. For example, if everyone approves, Wednesday 13:00-14:00 is confirmed as the final meeting date. The server sends a confirmation notification and automatically updates the calendar information based on it.
[1307] 9. Update your calendar
[1308] The server automatically adds the confirmed meeting date and time to each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[1309] This system allows users to efficiently schedule meetings without requiring many manual operations, thereby realizing faster and more efficient meeting scheduling.
[1310] The processing flow will be explained below.
[1311] Step 1:
[1312] The user uses the terminal to input the details of the meeting. Specifically, the user inputs the participant list, the date range, and the desired time slot. For example, the user inputs, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[1313] Step 2:
[1314] The terminal sends the meeting details entered by the user to the server, where the data is encoded and transmitted to the server over a secure channel.
[1315] Step 3:
[1316] The server stores the meeting details received from the user in a database, including the participant list, date range, and preferred time slot.
[1317] Step 4:
[1318] The server retrieves the participant list from the database and the calendar information of each participant, which is obtained from the API of the calendar system used by the participants.
[1319] Step 5:
[1320] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times for a period of time (e.g., Tuesday through Thursday of next week).
[1321] Step 6:
[1322] The server selects the best time to meet based on the availability of all participants. The best time is calculated based on the time period when everyone is free. For example, it identifies a time period when all participants are free, such as Wednesday from 13:00 to 14:00.
[1323] Step 7:
[1324] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[1325] Step 8:
[1326] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[1327] Step 9:
[1328] The server receives and aggregates everyone's responses. It checks whether everyone has accepted the meeting date and time. If everyone has accepted, it proceeds to the next step.
[1329] Step 10:
[1330] After confirming everyone's approval, the server confirms the meeting date and time and sends a notification again. The confirmation notification is automatically added to the calendars of all participants.
[1331] Step 11:
[1332] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[1333] The system's process allows users to efficiently schedule meetings.
[1334] Example 1
[1335] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1336] Coordinating and managing meetings is a time-consuming and laborious task, and it is particularly difficult to consider the schedules of all participants. Conventional methods require manual input and confirmation of each participant's schedule, which is time-consuming and prone to errors. It is also extremely difficult to find an optimal date and time that matches everyone's schedules. The present invention aims to solve these problems and make meeting scheduling more efficient.
[1337] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[1338] In this invention, the server includes means for a user to input detailed information about the conference, means for the server to receive and save the detailed information about the conference, means for the server to acquire schedule information about participants, means for the server to analyze the acquired schedule information and list free times, means for the server to select the optimal conference date and time from the free times of all participants, means for the server to notify all participants of the selected conference date and time, means for the user to check the notified conference date and time and send an approval or rejection, means for the server to confirm the approval of all participants and notify them of the final conference date and time, and means for the server to automatically add the finalized conference date and time to the schedule management device of each participant, thereby enabling automatic setting of the conference date and time and efficient coordination.
[1339] "User" refers to the person who enters meeting details and uses the system.
[1340] "Server" refers to the device or system that receives and stores meeting details and analyzes participant schedule information.
[1341] "Detailed meeting information" refers to information necessary for setting up a meeting, and specifically includes a list of participants, a range of dates, and a desired time slot.
[1342] "Participant" means a person listed as attending a meeting.
[1343] "Schedule information" refers to calendar and schedule data held by each participant.
[1344] "Calendar API" refers to a program interface for retrieving and updating schedule information in collaboration with external calendar services.
[1345] "Free time" refers to time periods when participants have no scheduled appointments.
[1346] The "optimal meeting date and time" refers to the most suitable meeting date and time that allows all participants to attend.
[1347] "Notification" refers to the system informing participants of the best meeting time and date and other important information.
[1348] "Approval or rejection" refers to the user's action of expressing their willingness to accept or reject the proposed meeting date and time.
[1349] "Schedule Management Device" refers to a digital device used to manage and display Participant's calendar information.
[1350] This system automates the scheduling of participants and efficiently sets meeting dates. Users input detailed meeting information, and the server processes that information to adjust the schedules of all participants and suggest the best time and date for the meeting.
[1351] Program processing overview
[1352] The system works as follows:
[1353] 1. User enters meeting information
[1354] The user uses their own terminal to enter detailed information about the meeting (participant list, date range, desired time slot) into a dedicated input form.
[1355] 2. The server receives and stores the data
[1356] The server receives the meeting information sent by the user and stores it in a database, including the participant list, date range, and desired time slot.
[1357] 3. The server retrieves the calendar information
[1358] The server retrieves schedule information by calling each participant's calendar API (e.g., Google Calendar API, Microsoft Graph API) based on the saved participant list. For example, it retrieves real-time information such as "Participant A has a meeting on Tuesday from 10:00 to 12:00" and "Participant B has a meeting on Thursday from 14:00 to 16:00."
[1359] 4. Server free time analysis
[1360] The server analyzes the calendar information and lists the free time slots for each participant, using, for example, Python's pandas library to calculate overlapping time slots and free time slots.
[1361] 5. The server selects the optimal schedule
[1362] The server selects a time slot that is available to all participants from the list of available times. For example, it selects "Wednesday 13:00-14:00" as the best time and date.
[1363] 6. The server proposes a date
[1364] The server notifies all participants of the optimal meeting date it has selected. Notifications are usually sent using an email service (e.g., SendGrid) or a messaging API (e.g., Twilio). For example, a notification saying "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM" is sent to participants A and B.
[1365] 7. User confirms and approves the schedule
[1366] Participants can confirm the notification and approve or decline the meeting at that date and time by clicking a link in the notification email, for example, and selecting "Approve" or "Decline."
[1367] 8. Server's decision is final and notified
[1368] The server tally the responses from each participant, and if all participants approve, it notifies them again that the meeting date and time is final. For example, it sends a confirmation notice to all participants saying, "Since all participants have approved Wednesday 13:00-14:00, the meeting will be confirmed for this time."
[1369] 9. Server updates the calendar
[1370] The server automatically adds the finalized meeting date and time to each participant's calendar using the Google Calendar API or Microsoft Graph API, adding the meeting date and time as "Wednesday 13:00-14:00" to each participant's calendar.
[1371] Examples of concrete examples and prompts
[1372] For example, if a user wants to schedule a meeting between October 17th and October 19th, 2023, and specifies "Mr. A" and "Mr. B" as participants, the following input and suggestions will be made:
[1373] Entering meeting information: "I would like to schedule a meeting for Mr. A and Mr. B to take place between October 17th and October 19th, 2023."
[1374] Example prompt sentence:
[1375] "This system automatically adjusts the schedules of the people involved and proposes the optimal meeting date. The user enters the details of the meeting, and the server uses this information to collect and analyze the calendar information of all participants and propose the optimal date and time. The proposed date and time is then approved by all participants, and once confirmed, it is automatically added to their calendars."
[1376] The flow of the identification process in the first embodiment will be described with reference to FIG.
[1377] Step 1:
[1378] Entering meeting information
[1379] User
[1380] The user uses their own device to enter detailed information about the meeting. For example, they might enter "I would like to set up a meeting between October 17th and October 19th, 2023, with Mr. A and Mr. B participating" into a dedicated input form on their device. This input information includes the meeting name, date range, participant list, and desired time slot. The entered information is sent to the server by clicking the send button.
[1381] Input: Meeting name, date range, participant list, desired time slot
[1382] Output: The entered meeting information
[1383] Step 2:
[1384] Receiving and storing data
[1385] server
[1386] The server receives the meeting information sent by the user. The received information is saved in a database. For example, the meeting name "Project Meeting," the date range "October 17th to October 19th, 2023," the participant list "Mr. A, Mr. B," and the desired time slot "Morning" are saved in the database.
[1387] Input: Meeting information sent by the user
[1388] Output: Meeting information stored in a database
[1389] Step 3:
[1390] Get calendar information
[1391] server
[1392] The server calls the calendar API of each participant based on the saved participant list to obtain schedule information (e.g., Google Calendar API, Microsoft Graph API). For example, the server obtains information such as "Person A has a meeting on Tuesday from 10:00 to 12:00" and "Person B has a meeting on Thursday from 14:00 to 16:00."
[1393] Input: Participant list stored in the database
[1394] Output: Schedule information of the participants
[1395] Step 4:
[1396] Free / busy analysis
[1397] server
[1398] The server analyzes the calendar information and lists the free time slots for each participant. It uses Python's pandas library to analyze the information and calculates overlapping time slots and free time slots. For example, it lists free time slots such as Tuesday 9:00-10:00 and Thursday 16:00-18:00.
[1399] Input: Retrieved calendar information
[1400] Output: Free / busy list
[1401] Step 5:
[1402] Selection of optimal dates
[1403] server
[1404] The server selects the best time and date from the list of available times of all participants, taking into account the common time slots available to all participants, using an algorithm to consider priorities and select "Wednesday 13:00-14:00" as the best time.
[1405] Input: Free / Busy List
[1406] Output: The best meeting time selected
[1407] Step 6:
[1408] Suggested itinerary
[1409] server
[1410] The server notifies all participants of the optimal meeting date it has selected. For notification purposes, it uses an email service (e.g., SendGrid) or a messaging API (e.g., Twilio) to send a notification email to all participants saying, for example, "We would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[1411] Input: Best meeting time selected
[1412] Output: Notification to participants (email)
[1413] Step 7:
[1414] Confirm and approve the schedule
[1415] User
[1416] Participants can confirm the notification they receive on their devices and approve or reject the meeting at that date and time by clicking the link in the notification email and selecting "Approve" or "Reject" on the web page. The information is then sent to the server.
[1417] Input: Date and time notification sent by the server
[1418] Output: Approval or rejection response
[1419] Step 8:
[1420] Final Decision and Notification
[1421] server
[1422] The server tallying the responses from each participant and finalizing the meeting date and time once all participants have approved it, then notifying all participants again that "Wednesday 13:00-14:00 has been finalized."
[1423] Input: Participant's approval or rejection response
[1424] Output: Notification of final decision
[1425] Step 9:
[1426] Calendar updates
[1427] server
[1428] The server automatically adds the confirmed meeting date and time to each participant's calendar, using the Google Calendar API and Microsoft Graph API to register the meeting as "Wednesday 13:00-14:00" on each participant's calendar.
[1429] Input: Finalized meeting date and time
[1430] Output: Meeting date and time added to calendar
[1431] (Application example 1)
[1432] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1433] Coordinating meeting dates and times is time-consuming and requires adjusting the schedules of multiple participants. Furthermore, on-site workers and managers at manufacturing sites and other locations frequently need to hold meetings, so smooth meeting coordination is essential. However, it is difficult to manually check and adjust schedules while working on-site. Therefore, there is a need for a system that streamlines and automates meeting coordination, reducing the burden on on-site workers in particular.
[1434] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[1435] In this invention, the server includes: a means for a user to input detailed information about the conference; a means for the server to receive and store the detailed information about the conference; a means for the server to acquire schedule information about participants; a means for the server to analyze the acquired schedule information and list available times; a means for the server to select an optimal conference date and time from the available times of all participants; a means for the server to notify all participants of the selected conference date and time; a means for the user to confirm the notified conference date and time and send an approval or rejection; a means for the server to confirm the approval of all participants and confirm and notify the final conference date and time; a means for the server to automatically add the finalized conference date and time to each participant's schedule; a means for inputting detailed information about the conference by voice or touch operation using smart glasses; and a means for sending approval or rejection of participants by voice or touch operation using smart glasses. This automates the task of manually arranging conference schedules, enabling efficient and quick conference arrangements, particularly for users engaged in field work.
[1436] A "user" is someone who uses the system to enter meeting details and arrange meetings.
[1437] "Meeting details" refers to information necessary to set up a meeting, such as a participant list, a date range, and a desired time slot.
[1438] "Server" is a central computer system that receives, stores, analyzes, and schedules meeting information entered by users.
[1439] "Participants" are people who need to attend a meeting.
[1440] "Schedule information" refers to each participant's schedule or individual events listed on their calendar.
[1441] "Free time" refers to a time when all participants are free and suitable for setting up a meeting based on the schedule information.
[1442] The "optimal meeting date and time" refers to the most suitable date and time for holding a meeting after analyzing the free time of all participants.
[1443] A "notification" is a message sent from the server to participants that provides information about the date and time of the conference.
[1444] "Approval" means that the participants confirm and agree that the notified meeting date and time is appropriate.
[1445] "Rejection" means that a participant indicates that the notified meeting date and time is not suitable.
[1446] "Smart glasses" are a type of wearable device that incorporates a display and operating interface, allowing users to input and check information using voice or touch controls.
[1447] A system embodying the present invention combines smart glasses used in manufacturing sites and the like with a server to automatically schedule meetings. A specific embodiment of this system will be described below.
[1448] Hardware and software used
[1449] Smart Glasses: Enter meeting details by voice or touch and accept or decline.
[1450] Server: Receives and stores detailed information about the conference, obtains, analyzes, and notifies participants of their schedules.
[1451] Calendar Management API: Use an external calendar management service (e.g., Google Calendar API) to obtain attendee schedule information.
[1452] Database: Stores meeting details and participant schedule information.
[1453] Processing flow
[1454] 1. Enter the meeting information
[1455] Using the smart glasses, the user inputs meeting details (participant list, date range, desired time slot) by voice or touch operation. For example, a manufacturing site manager might say, "I'd like to schedule a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B."
[1456] 2. Receipt and storage of data
[1457] The server receives the meeting information entered from the smart glasses and stores it in a database, including specific meeting details (participant list, date range, desired time slot).
[1458] 3. Get calendar information
[1459] The server uses the calendar management API to obtain schedule information for each participant. For example, the server obtains information such as "Team A's schedule shows a meeting on Tuesday from 10:00 to 12:00, and Team B's schedule shows a meeting on Thursday from 14:00 to 16:00."
[1460] 4. Free Time Analysis
[1461] The server analyzes the schedule information and lists the free times of all participants. The analysis results include specific free times (Tuesday 9:00-10:00, Tuesday 12:00-18:00, all day Wednesday, Thursday 9:00-14:00, Thursday 16:00-18:00).
[1462] 5. Selection of optimal dates
[1463] The server selects the best date that all participants can attend from the listed available times. For example, it selects "Wednesday 13:00-14:00 is best."
[1464] 6. Notification of schedule
[1465] The server then notifies all participants of the optimal meeting date. A notification message is sent to each participant via their smart glasses, stating, "I would like to schedule a meeting on Wednesday from 1:00 PM to 2:00 PM."
[1466] 7. Confirmation and approval of schedule
[1467] Participants use smart glasses to check the notified meeting date and time, and send a response of approval or rejection to the server by voice or touch operation. For example, an administrator can reply "approved" using the smart glasses.
[1468] 8. Final Decision and Notice
[1469] After confirming everyone's approval, the server confirms the meeting date and time and notifies everyone again. If everyone approves, a notification is sent stating, "Wednesday 13:00-14:00 has been finalized as the meeting date."
[1470] 9. Update your calendar
[1471] The server automatically adds the confirmed meeting date and time to each participant's calendar, so that the meeting is recorded as "Wednesday 13:00-14:00 meeting" on each participant's calendar.
[1472] Specific examples
[1473] For example, a manager working on a manufacturing site can use smart glasses to input a voice command such as, "I want everyone to attend the meeting next week, so please adjust the schedule." The system will then automatically suggest the optimal date and time, notify everyone, and confirm the schedule after receiving confirmation.
[1474] Prompt Sentence Examples
[1475] "I'd like to meet with my work team between Tuesday and Thursday next week. Please let me know if that's convenient for you."
[1476] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1477] Step 1:
[1478] The user uses the smart glasses to input meeting details (participant list, date range, desired time slot) using voice or touch operations. As a specific example, a manufacturing site manager might say, "I'd like to set up a meeting from Tuesday to Thursday next week. The participants will be Team A and Team B." The input data includes the participant list, date range, and desired time slot. This is then input to the server.
[1479] Step 2:
[1480] The server receives the meeting information input from the smart glasses and stores it in a database. Specific operations on the server include parsing the input data in JSON format and saving it as a database entry. The output is a confirmation message of the saved information.
[1481] Step 3:
[1482] The server uses a calendar management API to obtain schedule information for each participant. For example, it sends an API request to obtain the participants' schedules and format them into an analyzable data format. The input is a list of participants, and the output is the schedule information for each participant.
[1483] Step 4:
[1484] The server analyzes the schedule information it obtains and lists the free time slots of all participants. A concrete example includes an algorithm that cross-references each schedule information and finds common free time slots. The input is the schedule information of the participants, and the output is a list of common free time slots.
[1485] Step 5:
[1486] The server selects the best possible date from the list of free times that all participants can attend. For example, it runs an evaluation algorithm to select the best option based on the free time list. The input is the common free time list, and the output is the best meeting date and time.
[1487] Step 6:
[1488] The server notifies all participants of the optimal meeting date and time selected. As a concrete example, a message saying "I would like to set up a meeting on Wednesday from 13:00 to 14:00" is sent to each participant via smart glasses. The input is the optimal meeting date and time, and the output is the sending status of the notification message.
[1489] Step 7:
[1490] The user uses the smart glasses to confirm the notified meeting date and time and submit an approval or rejection. Specific examples include inputting "approval" or "rejection" using touch or voice recognition on the smart glasses. The input is the notification message, and the output is the user's response.
[1491] Step 8:
[1492] The server confirms everyone's approval, confirms the meeting date and time, and notifies them again. A concrete example would include an algorithm that aggregates everyone's responses and checks whether they match. The input is the participant's response, and the output is a notification message with the confirmed meeting date and time.
[1493] Step 9:
[1494] The server automatically adds the confirmed meeting date and time to each participant's calendar. A concrete example involves using a calendar management API to add an entry to each participant's calendar. The input is the confirmed meeting date and time, and the output is the updated status of each participant's calendar.
[1495] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[1496] The system of the present invention automates the scheduling of participants and efficiently schedules meetings. Furthermore, by combining this system with an emotion engine that recognizes the user's emotions, it enables more flexible and effective scheduling of meetings.
[1497] The following explains how the system program works, with some concrete examples.
[1498] Program processing
[1499] The system schedules meetings and uses the emotion engine in the following steps:
[1500] 1. Enter the meeting information
[1501] The user uses the terminal to enter meeting details, for example, "I'd like to schedule a meeting from Tuesday to Thursday next week. Participants A and B will be participants."
[1502] 2. Emotional Engine Activation
[1503] The server uses an emotion engine to recognize emotions from the user's input and voice. For example, emotions such as "tired" or "in a hurry" can be detected from the user's voice input.
[1504] 3. Receipt and storage of data
[1505] The server stores the detailed information of the meeting received from the user in a database along with the emotion recognition results.
[1506] 4. Get Calendar Information
[1507] The server retrieves the calendar information of each participant based on the participant list. The calendar information is obtained from the API of the calendar system used by the participant.
[1508] 5. Free Time Analysis
[1509] The server analyzes the calendar information and lists the free times of all participants. The analysis process identifies free times within a range of dates.
[1510] 6. Selection of optimal dates
[1511] The server selects the best time and date for the meeting based on the availability of all participants. For example, it identifies a time slot such as 13:00-14:00 on Wednesday when all participants are available.
[1512] 7. Emotion-Based Optimization
[1513] Based on the user's emotions recognized by the emotion engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," an earlier meeting time will be suggested.
[1514] 8. Date Suggestion
[1515] The server notifies all participants of the selected meeting date and time using email or the notification features of their calendar application.
[1516] 9. Confirmation and Approval of Schedule
[1517] Participants can check the notified meeting date and time on their devices and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[1518] 10. Re-proposing the workflow
[1519] The server receives and re-evaluates all responses, and if not all are approved, it uses the emotion engine to re-propose the next best meeting date and time.
[1520] 11. Final Decision and Notice
[1521] After confirming everyone's approval, the server confirms the meeting date and time and notifies them again. The confirmation notification is automatically added to the calendars of all participants.
[1522] 12. Calendar Updates
[1523] The server automatically updates the confirmed meeting date and time on each participant's calendar. For example, "Meeting Wednesday 13:00-14:00" is recorded on the calendars of participants A and B.
[1524] This system allows users to efficiently schedule meetings without many manual operations and can respond flexibly based on emotion recognition, which not only speeds up and streamlines meeting scheduling but also improves user satisfaction.
[1525] The processing flow will be explained below.
[1526] Step 1:
[1527] The user uses the terminal to enter the details of the meeting, including the participant list, date range, and desired time slot. For example, the user might enter, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B."
[1528] Step 2:
[1529] The device sends the user's input and voice data to the server, along with voice and text data for user emotion recognition.
[1530] Step 3:
[1531] The server receives and stores detailed information about the meeting, including the participant list, schedule, desired time slot, and emotion recognition target data.
[1532] Step 4:
[1533] The server runs the emotion engine, analyzes the user's input and voice data, and recognizes emotions. For example, it detects emotions such as "tired" from voice data and saves the results.
[1534] Step 5:
[1535] The server retrieves the calendar information of each participant based on the saved participant list. The calendar information is retrieved from the API of the calendar system used by the participant.
[1536] Step 6:
[1537] The server analyzes the calendar information and lists the free times of all participants. The analysis is performed based on the specified date range.
[1538] Step 7:
[1539] The server selects the best time for the meeting based on the free time lists of all participants. For example, Wednesday 13:00-14:00 is selected as the free time for everyone.
[1540] Step 8:
[1541] The server reevaluates the appropriateness of the selected meeting date and time based on the user's emotions recognized by the emotion engine. For example, if the user is recognized as "tired," the server suggests an earlier meeting time.
[1542] Step 9:
[1543] The server notifies all participants of the selected and re-evaluated meeting date and time using email or the notification function of the calendar application.
[1544] Step 10:
[1545] Participants check the notified meeting date and time on their terminals and send a response of approval or rejection to the server. For example, Participant A can send a response of "approval" and Participant B can send a response of "rejection."
[1546] Step 11:
[1547] The server receives and aggregates everyone's responses, checks whether everyone has approved the meeting date and time, and if not, uses the emotion engine to re-propose the next optimal meeting date and time.
[1548] Step 12:
[1549] Once the server has confirmed everyone's approval, it will confirm the meeting date and time and notify them again. The confirmation notification will be automatically added to the calendars of all participants.
[1550] Step 13:
[1551] The server automatically updates each participant's calendar with the confirmed meeting date and time. Participants A and B's calendars will show "Meeting Wednesday 13:00-14:00."
[1552] This system allows users to efficiently schedule meetings, and the introduction of an emotion recognition engine makes scheduling more flexible and user-friendly.
[1553] Example 2
[1554] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1555] In today's business environment, scheduling meetings by coordinating the schedules of all parties involved is extremely complicated and time-consuming. In particular, scheduling meetings without considering the emotional state of the participants can be inefficient and may result in lower participant satisfaction. In this situation, our goal is to provide a flexible and effective meeting scheduling system that incorporates emotion recognition.
[1556] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1557] In this invention, the server includes means for a user to input detailed meeting information, means for the server to receive and store the detailed meeting information and emotion recognition results, means for the server to acquire participants' calendar information, means for the server to analyze the acquired calendar information and list available times, means for the server to select an optimal meeting date and time from the available times of all participants, means for the server to reevaluate the optimal meeting date and time based on the emotion recognition results, means for the server to notify all participants of the selected meeting date and time, means for the user to confirm the notified meeting date and time and send an approval or rejection, means for the server to confirm all approvals and confirm and notify the meeting date and time, and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This allows users to efficiently schedule meetings without performing many manual operations and also enables flexible response based on emotion recognition.
[1558] "User" means a person or organization that utilizes the system to enter meeting details, review and approve or reject notifications.
[1559] The "server" is a central computer system that receives information from users, performs emotion recognition, analyzes calendar information, and selects and notifies meeting dates and times.
[1560] "Detailed meeting information" refers to information necessary for setting up a meeting, such as the meeting date and time, participant list, date range, and desired time slot.
[1561] "Emotion recognition results" are information that the server analyzes emotions from user input and voice, and handles the results as data.
[1562] The "database" is a system for storing meeting details and emotion recognition results in a structured format.
[1563] "Calendar information" is data indicating the schedules of participants, and is obtained from the calendar systems used by the participants.
[1564] "Free time" is a time period during which all participants can attend the conference, as determined by analyzing calendar information.
[1565] The "optimal meeting date and time" is the most suitable time slot among the available times of all participants, and is selected taking into consideration the emotion recognition results.
[1566] A "notification" is a message sent by the server to all participants via email or calendar application to notify them of the meeting date and time selected by the server.
[1567] "Acceptance" is an action by which a user indicates their willingness to accept the proposed meeting date and time.
[1568] "Rejection" is an action that indicates the user's intention not to accept the proposed meeting date and time.
[1569] "Reevaluation" is the process in which, if approval is not obtained from all participants, the server takes into account the emotion recognition results and reselects the next optimal meeting date and time.
[1570] "Automatically add to calendar" is a process in which the confirmed date and time of the meeting is automatically reflected in the calendar system of each participant.
[1571] The purpose of the system of the present invention is to enable users to coordinate the schedules of multiple parties and efficiently schedule meetings. Furthermore, by incorporating an emotion recognition engine, the system enables more flexible and effective scheduling of meetings.
[1572] Hardware and Software Configuration
[1573] This system uses the following components:
[1574] User terminal: A device on which users enter meeting details and receive notifications. Typically, a PC or smartphone is used.
[1575] Server: The central computer system that processes information. It receives information from users, performs emotion recognition, and aggregates and analyzes calendar information.
[1576] Database: A system for the server to store detailed information about meetings and emotion recognition results. Specifically, an RDBMS such as MySQL or PostgreSQL is used.
[1577] Emotion recognition engine: A software tool for recognizing emotions from a user's voice or text. The "EmotionRecognizer API," which uses natural language processing technology, is an example of this.
[1578] Calendar system API: An interface for obtaining participants' calendar information. Typical examples include Google Calendar API and Microsoft Outlook API.
[1579] System operation example
[1580] A specific example of the operation of this system is shown below.
[1581] 1. Enter the meeting information
[1582] A user uses a terminal to input detailed information about a meeting into the system. For example, the user inputs in text format, "I would like to set up a meeting between Tuesday and Thursday of next week. The participants will be A and B."
[1583] 2. Emotion Recognition
[1584] The server receives the user's input and voice data and analyzes their emotions using an emotion recognition engine. For example, if the user says "I'm tired," it will recognize that emotion.
[1585] 3. Data storage
[1586] The server stores the meeting details and emotion recognition results in a database.
[1587] 4. Get Calendar Information
[1588] The server acquires the calendar information of each participant through the API of the calendar system used by each participant.
[1589] 5. Free Time Analysis
[1590] The server analyzes the retrieved calendar information and lists the free times of all participants.
[1591] 6. Schedule selection and optimization
[1592] The server selects the optimal meeting date and time based on the free time of all participants and the results of emotion recognition. For example, it determines that "Wednesday 13:00-14:00 is optimal."
[1593] 7. Notification of schedule
[1594] The server notifies all participants of the selected meeting date and time via email or calendar app, and users can check the notification on their devices and accept or decline the request.
[1595] 8. Re-proposal
[1596] If not everyone agrees, the server will re-propose the next optimal meeting date and time, taking into account the emotion recognition results.
[1597] 9. Update your calendar
[1598] The final confirmed meeting date and time will be automatically added to each participant's calendar from the server.
[1599] Prompt Sentence Examples
[1600] Examples of prompts that can be input to the emotion recognition engine include the following:
[1601] "I'd like to schedule a meeting between Tuesday and Thursday next week. The participants will be A and B."
[1602] "I need to set up a meeting quickly."
[1603] I'm tired today, so I'd like the meeting to be shorter.
[1604] This system allows users to significantly reduce the effort required to schedule meetings, and uses emotion recognition technology to flexibly select the most appropriate meeting date and time. This makes the operation of the entire system more efficient, leading to increased user satisfaction.
[1605] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1606] Step 1:
[1607] User enters meeting information
[1608] The user uses the terminal to input the details of the meeting. A specific example of input is, "I would like to schedule a meeting from Tuesday to Thursday next week. The participants will be A and B." This input data is sent to the server in text format.
[1609] Step 2:
[1610] The server performs emotion recognition
[1611] The server receives the meeting information and voice data sent by the user. It then uses an emotion recognition engine (EmotionRecognizer API) to analyze the user's emotions. For example, if the user indicates emotions such as "tired" or "hurrying," the server extracts the emotion and saves it as the emotion recognition result. The input is the user's voice data, and the output is the emotion recognition result.
[1612] Step 3:
[1613] The server saves the data to a database
[1614] The server stores the meeting information and emotion recognition results received from the user in a database. The database used here is MySQL, PostgreSQL, or similar. The data stored is the meeting details and the associated emotion recognition results. For example, it might be stored as "I would like to schedule a meeting from Tuesday to Thursday next week. Participants are A and B. Emotion: Tired."
[1615] Step 4:
[1616] The server retrieves the calendar information.
[1617] The server obtains the calendar information of each participant based on the participant list. It uses the Google Calendar API or Microsoft Outlook API to obtain the schedule data of each participant. The input is the participant list, and the output is the calendar information of each participant.
[1618] Step 5:
[1619] The server analyzes the calendar information and lists the free time slots.
[1620] The server analyzes the acquired calendar information and identifies the free time of each participant. As a result of the analysis, it creates a list of free time such as "Tuesday 10:00-11:00" or "Wednesday 13:00-14:00". The input is the calendar information, and the output is a list of free time of all participants.
[1621] Step 6:
[1622] The server selects the best time for the meeting
[1623] The server selects the optimal meeting date and time based on the free time slots of all participants. For example, it identifies "Wednesday 13:00-14:00" as a time slot when all participants are free. This selection also takes into account the range of meeting times and preferred time slots. The input is a list of free times, and the output is the optimal meeting date and time.
[1624] Step 7:
[1625] The server performs optimization based on the emotion recognition results.
[1626] Based on the results of the emotion recognition engine, the appropriateness of the selected meeting date and time is reevaluated. For example, if the user is recognized as "tired," the server will suggest an earlier meeting time. The input is the emotion recognition result and the optimal meeting date and time, and the output is the final optimal meeting date and time.
[1627] Step 8:
[1628] The server notifies all participants of the meeting date and time.
[1629] The server notifies all participants of the selected meeting date and time. Notification methods include email and the notification function of a calendar app. For example, the meeting date and time may be "Wednesday, 13:00-14:00." The input is the final optimal meeting date and time, and the output is the notification to each participant.
[1630] Step 9:
[1631] User confirms meeting time and submits approval or rejection
[1632] The user checks the notified meeting date and time and uses the terminal to send a response of approval or denial to the server. For example, participant A "approves" and participant B "denies." The input is the notification of the meeting date and time, and the output is the response of approval or denial.
[1633] Step 10:
[1634] The server checks and re-evaluates everyone's approvals
[1635] The server receives everyone's responses and reevaluates the meeting date and time based on them. If not everyone approves, it uses an emotion recognition engine to re-propose the next optimal meeting date and time. The input is the approval or rejection response, and the output is the next proposed date and time.
[1636] Step 11:
[1637] The server finalizes the meeting date and time and notifies everyone.
[1638] After the server confirms everyone's approval, it finalizes the meeting date and time and notifies everyone again. The notification is automatically reflected on everyone's calendar. The input is the final approval result, and the output is the notification of the final meeting date and time.
[1639] Step 12:
[1640] The server automatically adds the confirmed meeting date and time to each participant's calendar.
[1641] The server automatically adds the confirmed meeting date and time to each participant's calendar. This records the meeting date and time on the participant's calendar as "Wednesday 13:00-14:00 Meeting." The input is the final meeting date and time, and the output is the updated calendar for each participant.
[1642] (Application example 2)
[1643] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1644] In modern factories, production line maintenance is complicated and coordinating schedules between personnel is difficult. In particular, setting schedules without considering the emotions and state of personnel is inefficient and may reduce personnel performance. In addition, it is difficult to quickly propose optimal maintenance dates and times, which can have a negative impact on the productivity of the entire factory.
[1645] The specification process by the specification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for a user to input detailed information about a meeting; means for the server to receive and save the detailed information about the meeting; means for the server to acquire calendar information about participants; means for the server to analyze the acquired calendar information and list available times; means for the server to select an optimal meeting date and time from the available times of all participants; means for analyzing the user's emotions using an emotion recognition engine; means for the server to reevaluate and optimize the optimal meeting date and time based on the results of the emotion recognition engine; means for the server to notify all participants of the selected meeting date and time; means for the user to confirm the notified meeting date and time and send an approval or rejection; means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them; and means for the server to automatically add the confirmed meeting date and time to each participant's calendar. This makes it possible to quickly and efficiently set an optimal maintenance date and time while taking into account the emotions and state of the person in charge.
[1646] A "user" is an individual or group that utilizes the system to enter meeting details.
[1647] "Detailed information about the conference" is specific information about the conference designated by the user, including a list of participants, a range of dates, and a desired time slot.
[1648] A "server" is a computer system that controls the operation of the entire system, and is a collection of hardware or software that executes and manages multiple functions.
[1649] "Calendar information" is information used to manage the schedules and plans of meeting participants, and is obtained through the API.
[1650] "Free time" refers to a time period during which the participants of the meeting are free from other schedules or tasks and can attend the meeting.
[1651] The "optimal meeting date and time" is the most suitable time for the meeting, selected based on the free time of all participants.
[1652] An "emotion recognition engine" is a piece of computer software that recognizes emotions from a user's voice, facial expressions, etc. and analyzes the results.
[1653] "Acceptance or rejection" refers to the participant's confirmation of whether the conference can be held on the notified date and time, and their expression of willingness to accept or reject the conference.
[1654] The "confirmed meeting date and time" is the date and time of the meeting that has been finally decided after approval by all participants.
[1655] "Means for notifying" refers to a method or system for notifying participants of the date and time of the meeting and other information via email or the notification function of a calendar application.
[1656] "Automatic calendar addition" means an automated process or function that seamlessly updates the confirmed meeting date and time on each participant's calendar.
[1657] The system for realizing this invention starts when a user inputs detailed information about a meeting, which is then received and saved by a server. The system is configured as follows:
[1658] The user uses the terminal to input meeting details, for example, "The next maintenance work to be done in the factory should be done this week. X and Y will be in charge." The user's input is sent to the server, which receives this information and stores it in a database.
[1659] Next, the robot's installed emotion recognition engine will be activated, capturing the employee's face and voice and analyzing their emotions. For example, it will use the robot's camera and microphone to analyze their emotions using software such as DeepFace and OpenCV. During this process, the employee's stress level and fatigue level will be identified.
[1660] The server obtains the calendar information of the person in charge using an API (for example, Google Calendar API). It analyzes the obtained calendar information and lists the free time. This makes it possible to identify the free time of all the people in charge.
[1661] The server selects the optimal meeting time from the available times listed. During this process, emotional data from an emotion recognition engine is also taken into account. For example, if the server recognizes that the person in charge is "feeling stressed," it adjusts the meeting time while taking that emotion into consideration.
[1662] The server notifies all participants of the selected meeting date and time via their terminals. Participants can check the meeting date and time and send responses of approval or rejection. If all participants approve, the server confirms the meeting date and time and notifies everyone again.
[1663] The server automatically adds the confirmed meeting date and time to each participant's calendar, making it easy for the person in charge to know the date and time of the next maintenance work.
[1664] As a specific example, the prompt entered by the user regarding the date and time of the next maintenance work is, "When is the best time for the next maintenance work? The worker's emotion has been detected as 'tired.'" Based on this prompt, the system takes into account the worker's emotion and selects the best date and time, and notifies the worker.
[1665] This enables flexible and efficient maintenance schedules to be set taking into account the emotions of the maintenance personnel, contributing to improved productivity throughout the factory. Emotion recognition technology also improves the performance and satisfaction of maintenance personnel.
[1666] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1667] Step 1:
[1668] The user inputs the details of the meeting, including the list of participants, the date range, and the desired time slot, and the input information is sent from the terminal to the server.
[1669] Step 2:
[1670] The server receives and stores the meeting details. The received data is stored in a database for later use. The input data is the meeting details sent by the user, and the output is the meeting information stored in the database.
[1671] Step 3:
[1672] An emotion recognition engine installed in the robot is activated to analyze the emotions of the employee. The robot's camera and microphone are used to capture the employee's face and voice, and the emotion is determined using software such as DeepFace and OpenCV. The input data is the video and audio collected by the camera and microphone, and the output is the emotion recognition result.
[1673] Step 4:
[1674] The server obtains the calendar information of the participants. Using a schedule management API such as the Google Calendar API, it obtains the free time slots from each participant's calendar. The input data is the calendar information of each participant, and the output is a list of free time slots.
[1675] Step 5:
[1676] The server analyzes the calendar information it retrieves and lists the free times of all participants. The analysis is performed within the specified date range based on the meeting details. The input data is the calendar information retrieved through the API, and the output is a list of free times of all participants.
[1677] Step 6:
[1678] The server selects the optimal meeting date and time from the list of available free times. It also takes into account the results of an emotion recognition engine and optimizes the schedule based on the emotional state of the participants. The input data is the list of available free times and the emotion recognition results, and the output is the optimal meeting date and time.
[1679] Step 7:
[1680] The server notifies all participants of the selected meeting time via email or calendar application. The input data is the optimal meeting time, and the output is the notified meeting time.
[1681] Step 8:
[1682] The user checks the notified meeting date and time and sends a response of approval or rejection from the terminal to the server. The input data is the notified meeting date and time, and the output is the user's response (approval or rejection).
[1683] Step 9:
[1684] The server confirms everyone's approval and confirms the meeting date and time. If all participants approve, the final meeting date and time is confirmed. The input data are the responses of all participants, and the output is the confirmed meeting date and time.
[1685] Step 10:
[1686] The server automatically adds the confirmed meeting date and time to each participant's calendar. This process updates all participants' calendars. The input data is the confirmed meeting date and time, and the output is the updated calendar information.
[1687] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the control target 443 to output the result of the specific processing. The microphone 238 acquires voice indicating a user input regarding the result of the specific processing. The control unit 46A transmits voice data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.
[1688] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1689] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the robot 414.
[1690] The emotion identification model 59 as an emotion engine may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to an emotion map (see FIG. 9), which is a specific mapping. Similarly, the emotion identification model 59 may determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[1691] FIG. 9 illustrates an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and behaviors arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion includes both affect and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.
[1692] These emotions are distributed in the 3 o'clock direction on emotion map 400, and typically fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.
[1693] The inside of emotion map 400 represents what is going on in the mind, and the outside of emotion map 400 represents behavior, so the further you go outside emotion map 400, the more visible the emotions become (the more they are expressed in behavior).
[1694] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. Emotions can also be created for robots, automobiles, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on Voice Emotion Recognition and Emotional Brain Physiological Signal Analysis Systems, Tokushima University, Doctoral Dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the "reaction" domain, where sensation is dominant. The right half of the emotion map lists emotions belonging to the "situation" domain, where situational awareness is dominant.
[1695] The emotion map defines two emotions that promote learning. One is a negative emotion on the situation side, around the middle of "repentance" or "reflection." In other words, this occurs when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is a positive emotion on the response side, around "desire." In other words, this occurs when the robot experiences positive feelings such as "I want more" or "I want to know more."
[1696] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values indicating each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple pieces of training data that are combinations of user input and emotion values indicating each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 10. FIG. 10 shows an example in which multiple emotions, "relieved," "calm," and "reassuring," have similar emotion values.
[1697] The system according to the present disclosure has been described above mainly with respect to the functions of the data processing device 12, but the system according to the present disclosure is not necessarily implemented on a server. The system according to the present disclosure may be implemented as a general information processing system. The present disclosure may be implemented, for example, as a software program running on a personal computer or an application running on a smartphone, etc. The method according to the present disclosure may be provided to users in the form of SaaS (Software as a Service).
[1698] In the above embodiment, an example was given in which the specific processing is performed by one computer 22, but the technology of the present disclosure is not limited to this, and the specific processing may be distributed and performed by a plurality of computers including the computer 22. For example, the data generation model 58 may be provided in an external device of the data processing device 12, and data may be generated in the external device in accordance with input data.
[1699] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-transitory storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.
[1700] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[1701] It is not necessary to store all of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.
[1702] The hardware resource for executing a specific process can be any of the following processors: An example of a processor is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. Another example of a processor is a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.
[1703] The hardware resource that executes the specific processing may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific processing may be a single processor.
[1704] As an example of a system configured with a single processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a system that uses a processor that realizes the functions of an entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.
[1705] Furthermore, the hardware structure of these various processors can be, more specifically, an electric circuit that combines circuit elements such as semiconductor devices. The specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps may be deleted, new steps may be added, or the processing order may be rearranged, without departing from the spirit of the invention.
[1706] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, to avoid confusion and facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.
[1707] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference.
[1708] The following is further disclosed regarding the above embodiment.
[1709] (Claim 1)
[1710] means for a user to input meeting details;
[1711] means for the server to receive and store the conference details;
[1712] means for the server to obtain calendar information of participants;
[1713] A means for analyzing the calendar information acquired by the server and listing free time;
[1714] A means for the server to select the optimal conference date and time from among the available times of all participants;
[1715] means for notifying all participants of the server-selected conference date and time;
[1716] A means for the user to confirm the notified meeting date and time and submit an approval or rejection;
[1717] A means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them;
[1718] means for the server to automatically add the confirmed meeting date and time to each participant's calendar;
[1719] A system including:
[1720] (Claim 2)
[1721] 10. The system of claim 1, wherein the meeting details include a list of participants, a date range, and a preferred time slot.
[1722] (Claim 3)
[1723] 10. The system of claim 1, further comprising means for re-proposing the next best meeting date and time if the server does not obtain unanimous approval.
[1724] "Example 1"
[1725] (Claim 1)
[1726] means for a user to input meeting details;
[1727] means for the server to receive and store the conference details;
[1728] A means for the server to acquire schedule information of participants;
[1729] A means for analyzing the schedule information acquired by the server and listing free time;
[1730] A means for the server to select the optimal conference date and time from among the available times of all participants;
[1731] means for notifying all participants of the server-selected conference date and time;
[1732] A means for the user to confirm the notified meeting date and time and submit an approval or rejection;
[1733] A means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them;
[1734] means for automatically adding the confirmed date and time of the conference to the schedule management device of each participant;
[1735] A system including:
[1736] (Claim 2)
[1737] 10. The system of claim 1, wherein the meeting details include a list of participants, a date range, and a preferred time slot.
[1738] (Claim 3)
[1739] 10. The system of claim 1, further comprising means for re-proposing the next best meeting date and time if the server does not obtain unanimous approval.
[1740] "Application Example 1"
[1741] (Claim 1)
[1742] means for a user to input meeting details;
[1743] means for the server to receive and store the conference details;
[1744] A means for the server to obtain schedule information of participants;
[1745] A means for analyzing the schedule information acquired by the server and listing free time;
[1746] A means for the server to select the optimal conference date and time from among the available times of all participants;
[1747] means for notifying all participants of the server-selected conference date and time;
[1748] A means for the user to confirm the notified meeting date and time and submit an approval or rejection;
[1749] A means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them;
[1750] means for the server to automatically add the confirmed conference date and time to each participant's schedule;
[1751] means for inputting meeting details via voice or touch input using the smart glasses;
[1752] means for transmitting participant approval or rejection by voice or touch via the smart glasses;
[1753] A system including:
[1754] (Claim 2)
[1755] 10. The system of claim 1, wherein the meeting details include a list of participants, a date range, and a preferred time slot.
[1756] (Claim 3)
[1757] 10. The system of claim 1, further comprising means for re-proposing the next best meeting date and time if the server does not obtain unanimous approval.
[1758] "Example 2: Combining Emotion Engines"
[1759] (Claim 1)
[1760] means for a user to input meeting details;
[1761] a server means for receiving and storing the meeting details and the emotion recognition results;
[1762] means for the server to obtain calendar information of participants;
[1763] A means for analyzing the calendar information acquired by the server and listing free time;
[1764] A means for the server to select the optimal conference date and time from among the available times of all participants;
[1765] A means for the server to reevaluate the optimal meeting date and time based on the emotion recognition result;
[1766] means for notifying all participants of the server-selected conference date and time;
[1767] A means for the user to confirm the notified meeting date and time and submit an approval or rejection;
[1768] A means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them;
[1769] means for the server to automatically add the confirmed meeting date and time to each participant's calendar;
[1770] A system including:
[1771] (Claim 2)
[1772] 10. The system of claim 1, wherein the meeting details include a list of participants, a date range, and a preferred time slot.
[1773] (Claim 3)
[1774] 2. The system according to claim 1, further comprising means for re-proposing the next optimal meeting date and time in consideration of the emotion recognition results if the server does not obtain approval from all participants.
[1775] "Application example 2 when combining emotion engines"
[1776] (Claim 1)
[1777] means for a user to input meeting details;
[1778] means for the server to receive and store the conference details;
[1779] means for the server to obtain calendar information of participants;
[1780] A means for analyzing the calendar information acquired by the server and listing free time;
[1781] A means for the server to select the optimal conference date and time from among the available times of all participants;
[1782] means for analyzing a user's emotions using an emotion recognition engine;
[1783] A means for the server to reevaluate and optimize the optimal meeting date and time based on the results of the emotion recognition engine;
[1784] means for notifying all participants of the server-selected conference date and time;
[1785] A means for the user to confirm the notified meeting date and time and submit an approval or rejection;
[1786] A means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them;
[1787] means for the server to automatically add the confirmed meeting date and time to each participant's calendar;
[1788] A system including:
[1789] (Claim 2)
[1790] 10. The system of claim 1, wherein the meeting details include a list of participants, a date range, and a preferred time slot.
[1791] (Claim 3)
[1792] 10. The system of claim 1, further comprising means for re-proposing the next best meeting date and time if the server does not obtain unanimous approval. [Explanation of symbols]
[1793] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot< / url:> < / url:> < / url:> < / url:>
Claims
1. means for a user to input meeting details; means for the server to receive and store the conference details; means for the server to obtain calendar information of participants; A means for analyzing the calendar information acquired by the server and listing free time; A means for the server to select the optimal conference date and time from among the available times of all participants; means for notifying all participants of the server-selected conference date and time; A means for the user to confirm the notified meeting date and time and submit an approval or rejection; A means for the server to confirm everyone's approval, confirm the meeting date and time, and notify them; means for the server to automatically add the confirmed meeting date and time to each participant's calendar; A system including:
2. The system of claim 1 , wherein the meeting details include a participant list, a date range, and a desired time slot.
3. 2. The system of claim 1, further comprising means for re-proposing the next best meeting date and time if the server does not obtain approval from all participants.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A