Techniques for relaying audio messages to devices
By setting up residing devices in residential environments, identifying and transmitting messages to associated devices, the challenge of transmitting messages between user devices is solved, enabling efficient transmission and secure presentation across multiple devices and optimizing the user experience.
Patent Information
- Application Number
- CN202511733499.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2021-04-22
- Filing Date
- 2021-05-10
- Publication Date
- 2026-02-17
AI Technical Summary
Existing technologies present transmission challenges when transmitting messages between user devices, especially when the sending device is unaware of the receiving device's information. This makes it difficult to effectively transmit voice messages to multiple different types of devices and may compromise privacy and security.
By setting up resident devices in a residential environment, identifying devices associated with users, utilizing natural language processing and user profiles, determining message recipients, and transmitting messages over LAN or WAN, privacy and security are ensured, and messages are selectively presented on the recipient's device.
It enables efficient message transmission across multiple devices, reduces computational resource consumption, improves privacy and security, optimizes user experience, reduces network traffic, and selectively presents messages based on device location and activity status.
Smart Images

Figure CN121547478A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application number 202180034208.3, application date May 10, 2021, and invention title "Technology for relaying audio messages to a device". Cross-reference to related applications
[0002] This application claims the benefit and priority of U.S. Provisional Application No. 63 / 022,908, filed May 11, 2020; and U.S. Patent Application No. 17 / 238,065, filed April 22, 2021; each of which is incorporated herein by reference in its entirety and for all purposes. Background Technology
[0003] There are technologies for transmitting messages between user devices. Consider a scenario where a first user speaks to a first device (e.g., a mobile phone). The first device records the message and then transmits it to a second device (e.g., another mobile phone). The second device can receive the message and then present it to its user (e.g., via the mobile phone's speaker). However, sometimes, for example, when the sending device may not know information about some of the receiving devices (e.g., user associations, device locations, etc.), the process for transmitting voice messages from one device to one or more other devices can be challenging. Summary of the Invention
[0004] Figure 1 This is a simplified block diagram of an exemplary system based on some implementation schemes; Figure 2 This is another simplified block diagram illustrating, according to some embodiments, a technique for transmitting messages to one or more devices in order to present at least some of the exemplary techniques announced; Figure 3 This is another simplified block diagram illustrating a graphical user interface (GUI) for presenting a user device according to some implementation schemes; Figure 4 This is another simplified block diagram illustrating, according to some implementations, at least some exemplary technologies for transmitting messages to a specific user device in order to present an announcement; Figure 5 This is another simplified block diagram illustrating an exemplary architecture of a system for transmitting messages to one or more devices in order to present an announcement, according to some implementation schemes; Figure 6 This is a simplified flowchart illustrating an exemplary process for transmitting a message to one or more devices in order to present an announcement, according to some implementations; Figure 7This is another simplified flowchart illustrating an exemplary process for transmitting messages to a specific user device according to some implementation schemes; Figure 8 This is another simplified flowchart illustrating an exemplary process for transmitting messages to one or more devices according to some implementation schemes; Figure 9 This is another simplified flowchart illustrating an exemplary process for transmitting messages to one or more devices according to some implementation schemes; Figure 10 This is another block diagram illustrating an exemplary process for transmitting messages to one or more devices according to some embodiments; and Figure 11 This is another simplified flowchart illustrating an exemplary process for transmitting messages to one or more devices according to some implementation schemes. Attached Figure Description
[0005] In the following description, various examples will be described. For illustrative purposes, many specific configurations and details are presented to provide a thorough understanding of the examples. However, it will also be apparent to those skilled in the art that some examples can be implemented without these specific details. Furthermore, well-known features may be omitted or simplified to avoid confusion with the examples described herein.
[0006] Implementations of this disclosure provide techniques for transmitting a message, including an announcement, to one or more devices for presentation of the announcement. In a first example, consider the context of a residential environment corresponding to a home. A user (e.g., a father) might want to announce to other family members that dinner is ready. The father could announce "Dinner is ready" to a device (e.g., a mobile phone), and an audio recording (e.g., an audio file) of the announcement could be transmitted to a resident device in the home (e.g., a central device) (e.g., a tablet, a smart speaker, a smart digital media player configured to control a television (TV), etc.). The resident device can then identify one or more devices associated with the residential environment (e.g., associated with family members), each device having a specific type (e.g., including mobile device types). The resident device can then transmit the announcement to one or more devices for presentation on each device.
[0007] In the second example, the father might want to announce to his son that his laundry cycle is complete (e.g., "Son, your laundry is done"). In this example, in addition to announcing the message to a mobile phone, the father could also instruct the intended recipient (i.e., the father's son). The father's mobile device can then transmit the message, including at least the announcement and the intended recipient, to a home-based device. The home-based device can then identify the specific user device associated with the father's son (e.g., the son's mobile phone) and transmit the announcement to the son's mobile phone for presentation.
[0008] In the third example, Dad might want to announce (e.g., via his mobile phone) that he will be home from get off work soon. In this example, Dad's mobile phone can transmit the announcement from outside the residential environment (e.g., via a wide area network (WAN)) to a hosted device. The hosted device can verify that Dad's user account type is authorized to use the hosted device to relay messages to other devices associated with the residential environment. Upon verification, the hosted device can then generate a message formatted in part based on Dad's user account type (e.g., an administrator, rather than a shared user) (e.g., thus displaying Personally Identifiable Information (PII)), and then relay the message to other devices associated with the residential environment. In at least this way, the hosted device can ensure both a higher level of privacy and security when an announcement is relayed to one or more devices associated with the residential environment.
[0009] In the fourth example, a resident's temporary babysitter wants to relay a message that the baby has been put to sleep to the appropriate user in the residential environment. When the temporary babysitter makes the announcement, the resident device in the residential environment determines, based on identifying the temporary babysitter, that the announcement is intended for selected members of the residential environment (e.g., the mother and father, but not the housekeeper, etc.). The resident device identifies one or more devices associated with the mother and father and then transmits the announcement to those devices. Each of the one or more devices determines whether to present the announcement (e.g., or whether to block presentation), based in part on verification of one or more conditions (e.g., the device's proximity to another device, the device's current location, the time of day, and specific activities currently associated with the device (e.g., and / or associated recipient user accounts)).
[0010] In the exemplary example corresponding to the first example above, consider the context of a residential environment corresponding to a dwelling. The residential environment may include one or more controller devices, which may be dwelling devices of the dwelling (e.g., smart speakers, smart digital media players configured to control televisions (TVs), mobile phones, etc.). Dwelling devices may perform one or more tasks (e.g., announcing users relayed to the residential environment on behalf of the user, issuing reminders, accessing the internet, controlling accessories, etc.).
[0011] A residential environment may be associated with one or more user profiles (e.g., user account profiles) of users associated with the residential environment. In some embodiments, user profiles may be stored and maintained by at least one resident device of the residential environment. Each user account may be associated with one or more personal devices (also referred to as “user devices”). In a simplified example illustrating a particular family’s residential background, the mother, father, son, daughter, and temporary caregiver may each have different user profiles. Even if the temporary caregiver may not be a member of the family itself, the temporary caregiver may still be associated with the residential environment and may participate as a “shared user,” as further described below. In a non-limiting example, the mother’s user profile may be associated with a personal device such as a smartwatch, the father’s user profile may be associated with another personal device (e.g., the father’s mobile phone), the son’s user profile may be associated with the son’s mobile phone and the son’s smartwatch, and so on. In some embodiments, user profiles may also be associated with one or more resident devices. In one example, the father’s user profile may be associated with a resident device (e.g., a smart speaker) in the father’s residential office. In another example, all user profiles in a residential environment can be associated with public dwelling devices (e.g., smart speakers in the living room of a residence) located in a common area (e.g., a zone) of the residential environment.
[0012] In some implementations, different types of user profiles may exist, including, for example, owner profiles, administrator profiles, shared user profiles, etc. In some implementations, different types of profiles may be associated with different characteristics, access permissions for sending / receiving announcements, and / or privacy controls. For example, in some implementations, owner profile types and / or administrator profile types may be able to access data indicating which other user profiles and / or associated user devices are associated with the residential environment. In this example, the user device (e.g., a mobile device) associated with the administrator account profile may also have additional access permissions for sending and / or receiving messages to / from devices associated with the residential environment. For example, the user device may be able to send announcements to devices in the residential environment from any suitable location, including outside the residential environment (e.g., via a wide area network (WAN), such as the Internet). Similarly, the administrator's user device may be able to receive and / or present announcement messages from the residential environment from any suitable location. In some implementations, announcements associated with an administrator profile may be formatted to include, for example, personally identifiable information (PII) corresponding to the administrator user (e.g., facial image, name) to identify the administrator making the announcement.
[0013] In another example, a user with a shared user profile type may be associated with a different set of access permissions and / or privacy controls. For example, a shared user may be able to send messages to other devices associated with the residential environment, but may not be able to access details of a separate user profile and / or user device associated with the residential environment. In this example, when a user device (e.g., a smartwatch) associated with a shared user account is outside the local area network (LAN) associated with the residential environment, the residential stationary device may not relay announcements to that user device. Furthermore, in this example, when a user device is outside the residential environment (e.g., when receiving messages from outside the LAN, for example via a WAN), the stationary device may also not relay messages received from the user device to other devices in the residential environment. In some implementations, announcements associated with a shared user account profile (e.g., including a guest user) may be formatted to exclude the guest user's PII. Using the residential context described above as an example, in one example, the mother and father may each have an administrator (or owner) profile, while the son, daughter, and temporary nanny may have shared user profiles. It should be understood that any suitable combination of user profiles (and / or user profile types) and their association with devices can be used to implement the implementation schemes described herein. It should also be understood that any suitable access control and / or privacy control can be applied to different user accounts and / or account types. For example, when utilizing a resident device to relay announcements to other devices in a residential environment, the administrator account type can be configured to exclude specific user PIIs.
[0014] Continuing with the first example above, a user can speak an announcement into the device. For example, a user could speak into the microphone of their mobile phone, “Announce to the house that dinner is ready.” In this example, the announcement (“Dinner is ready”) could correspond to an element (e.g., a portion) of an audio recording (e.g., which records the entire spoken message). In some implementations, the mobile phone can then transmit the recording, including the announcement, to another device for further processing. For example, the mobile phone can transmit the recording to a dwelling device in the residential environment (e.g., a smart speaker in the kitchen). The dwelling device can then determine (e.g., obtain) the announcement from the recording. For example, the dwelling device can perform natural language processing (NLP) on the recording (“Announce to the house that dinner is ready”) to determine that the announcement corresponds to a subset of words including “Dinner is ready.” In some implementations, the dwelling device can transmit the recording to another device (e.g., a server device) to analyze the recording. For example, the server device can perform NLP to determine the start and end points of the announcement within the recording. The server device can then transmit the concatenated data, including indications of the start and end points, back to the dwelling device. The dwelling device can then stitch the recording together based on the stitched data and continue further processing of the announcement, as further described herein. In some embodiments, the device receiving and recording the voice recording including the announcement can correspond to any suitable device. For example, a dwelling device in a residential environment (e.g., a smart speaker in the kitchen) can directly receive and record the announcement. In this example, the smart speaker can process the recording itself (e.g., stitch the announcement together from the recording) without transmitting the recording to another device (e.g., another dwelling device and / or server device) for further processing. In yet another example, a personal device (e.g., Dad's mobile phone) can be used to process the recording. It should be understood that one or more devices and / or combinations thereof can be used to process the recording. It should also be understood that the device receiving, recording, and / or processing the recording can be located in any suitable location (e.g., inside or outside the residential environment). For example, using the above illustration, Dad may have left the residential environment and is located in another location (e.g., an office building) and may have forgotten to inform the residents that dinner is ready. Upon remembering, Dad can announce dinner is ready over his phone. In this example, the record could be processed (e.g., analyzed) using the father's personal device, a residential device, a server device in the cloud, and / or any suitable combination thereof to obtain an announcement.
[0015] After processing the record to obtain an announcement, the devices associated with the residential environment can then identify one or more devices for receiving the announcement. For example, continuing with the first example above, a resident device in the residential environment (e.g., a smart speaker in the kitchen) can receive the record from Dad's mobile phone and then stitch the record together to obtain the announcement. In some embodiments, the resident device can then retrieve a list of devices for receiving the announcement. For example, as described above, the resident device can store a list of user profiles associated with the residential environment in a database. In some embodiments, the list of user profiles may also (and / or alternatively) be stored in the cloud (e.g., stored on a server device) and then retrieved by the resident device. Based on the retrieved list of user profiles associated with the residential environment, the resident device can then identify one or more other devices for receiving the announcement. It should be understood that the resident device (and / or server device) may have access to data in each of the user profiles and / or devices (e.g., other resident devices and / or personal devices) associated with the residential environment. For example, using the above illustrations, a dwelling device can determine that the mother's user profile is associated with the mother's smartwatch, the father's user profile is associated with the father's mobile phone and another dwelling device (e.g., located in the father's home office), the son's user profile is associated with the son's mobile phone and the son's smartwatch, and so on. The dwelling device can also identify other dwelling devices associated with the residential environment and linked to multiple users (e.g., located in common areas of the residence). In some implementations, each of these devices can be of a different type. For example, some of these devices can be personal devices, including devices of the mobile device type (e.g., mobile phones, tablets, smartwatches, and / or other wearable devices). In another example, some devices can be of the dwelling device type (e.g., a smart speaker in the father's home office). In one example, the dwelling device can identify all of these devices used to receive the announcement that dinner is ready. In another example, a subset of devices can be identified (e.g., excluding the subset of personal devices associated with the father (the announcer), excluding the subset of devices not currently in the residential environment, etc.) used to receive the announcement.
[0016] It should be understood that each of these devices may reside in the same location or in different locations. For example, Mom's smartwatch may currently be located in the gym, the son's mobile phone and smartwatch may be located at school, the babysitter's mobile phone may be located in the living room of the house, and the daughter's mobile phone may also be located in the living room of the house, etc. In some implementations, the residential environment may also be divided into different areas. For example, the living room may correspond to one area, the kitchen may correspond to another area, Dad's residential office may correspond to yet another area, etc. In some implementations, an area may be associated with one or more residing devices (e.g., a smart speaker in Dad's residential office).
[0017] Continuing the example above, identifying the residing device of the receiving device (e.g., a smart speaker in the kitchen) allows the transmission of messages, including announcements (e.g., including spliced audio recordings), to one or more identified devices. For example, consider a scenario where at least some of these devices are within a residential environment (e.g., a babysitter and daughter's mobile phones in the living room, a smart speaker in the living room, etc.). In some implementations, the residing device can transmit messages to these devices via a local area network (LAN) of the residential environment. For example, the residing device may be connected to the LAN via a router (e.g., an edge router) and can transmit messages to these devices within the residential environment via a WiFi connection over the LAN. As described herein, it should be understood that a LAN can describe any suitable computer network that interconnects electronic devices within a limited area (e.g., a residential environment). Therefore, other suitable network protocols (e.g., Bluetooth, Thread, ZigBee, etc.) can be utilized within the context of, for example, a LAN, allowing user devices (e.g., mobile phones) to communicate directly with the smart speaker (and / or vice versa) without having to use TCP / IP as used with WiFi in a "traditional" LAN configuration. In another example, at least some of the devices in the setup may be located outside the residential environment (e.g., a mother's smartwatch at the gym, a son's mobile phone and smartwatch at school, etc.). In this example, the residing device may also be connected to a wide area network (WAN) (e.g., the Internet) via a router. The residing device can transmit messages to these devices via the WAN (e.g., via a server device associated with the residing device).
[0018] In some implementations, as described above, the residing device may determine a subset of devices and / or user accounts associated with the residential environment for receiving messages. For example, in some implementations, the residing device may determine a specific user type (e.g., administrator type or shared user type) for a particular user account (e.g., a receiving user account) within the residential environment. The residing device may also determine the devices (e.g., user devices) associated with the particular user account. If the particular user type is not authorized to receive messages while located outside the residential environment (e.g., outside the LAN), the residing device may determine whether any of the devices associated with the particular user account are within the LAN. The residing device may then relay messages to only those devices within the LAN. If the particular user type is authorized to receive messages while located outside the residential environment, the residing device may relay messages to a larger set (e.g., all) of the associated user devices for the particular user account. In some implementations, for a given user account, the residing device may send messages to a subset of devices associated with the user account based on one or more determined conditions (e.g., proximity to the residing device or other user devices, device location, time of day, current activity associated with the user account, etc.). In some implementations, the resident device may send messages to all devices associated with the user account (e.g., condition-independent), and one or more receiving devices may determine to block the presentation of the message based on one or more conditions, as further described herein.
[0019] In another example of determining which recipient user accounts and / or recipient devices to transmit messages to, the residing device may determine this list in part based on determining the sender's specific user type and / or the identity of the sender's user account. For example, the residing device may be configured to store a list of rules corresponding to a list of recipients (e.g., including recipient devices) based on a specific sender account (and / or account type). In one example, the residing device may determine the sender's identity based on voice recognition, as described herein. The residing device may determine that the sender's identity is associated with an administrator account type (e.g., Dad's account). In this example, the residing device may then relay the message to a set of devices in the residential environment (e.g., all devices). In another example, the residing device may determine that the voice corresponds to a shared user account of a temporary caregiver and may accordingly relay the message to a subset of user accounts and / or devices (e.g., devices associated only with Mom and Dad). It should be understood that any suitable rules may be used to determine which user accounts and / or devices to route messages to, for example, based on the sender's determined identity and / or account type.
[0020] Continuing the above example, when each identified device receives a message from the residing device, the corresponding device may present an announcement on its device. In some implementations, the form of the announcement presentation may be based on a specific device type. In one example, using the above example, the device may be a residing device in the living room, and the announcement may be in the form of an audio announcement (e.g., “Dinner is ready”). In another example, where the device may be a smartwatch or mobile device, the device may first present a notification that an announcement has been sent to the residence (e.g., a banner). When the user taps the notification, the device may output an audio announcement. In some implementations, the audio announcement may also be presented along with a text-based announcement (e.g., a text transcription of the audio). In some implementations, images may also be presented, for example, depending on privacy control settings (e.g., identifying the sender's avatar and / or icon). In some implementations, there may be no identification of a specific sender, but rather the recipient is notified that there is an announcement from a user in the residential environment. In some implementations, as further described herein, the sender may (or may not) be identified in part based on the type of user profile associated with the sender (e.g., administrator, owner, shared user). In yet another example, audio recordings may also be included within audiovisual recordings transmitted and presented on one or more devices within the device. For example, in the case where the receiving device is a resident device in a home configured to control a smart digital media player for a television (TV), the resident device may present the announcement via both audio and video (and / or text). In this example, the sender may also have recorded the announcement using a device equipped for audiovisual recording. It should be understood that any suitable method may be used to present the announcement.
[0021] As further described herein, a receiving device that receives (e.g., relayed from a dwelling device in a residential environment) a message can then determine whether to present or block the message, for example, based on determining one or more conditions. In one example, the receiving device may determine a condition corresponding to whether one or more devices (e.g., user devices and / or dwelling devices) are nearby. If nearby, the receiving device may (e.g., based on rules) determine whether to present the message. For example, the receiving device (e.g., a smartwatch) may determine that another nearby device (e.g., a user's mobile phone) has a high priority to present the message (e.g., via notification). It should be understood that while message notifications may not be displayed, messages (e.g., announcements and / or associated metadata) may be stored on the device. In another example, the receiving device may determine another condition corresponding to a specific type of activity associated with the receiving user account (e.g., sleeping, jogging, working, driving, etc.). Based on the activity type, the device may determine whether to present or block the message. For example, in the case of sleeping, the user device infers a "Do Not Disturb" instruction and can therefore determine to block the message. It should be understood that any suitable one or more conditions (e.g., relative device location with respect to the user and / or residential environment, user device preferences, etc.) may be used to determine whether to present or block relay messages (e.g., announcements) relayed from the resident device.
[0022] As further described herein, conditions for the residing device to determine which devices (e.g., a response to the original announcement) to relay a reply (e.g., an acknowledgment) message to can also be applied. For example, the residing device may determine to relay the reply message only to the device that originally sent the message. In another example, the reply message may be transmitted to multiple devices. Correspondingly, the device receiving the response message may also utilize one or more conditions to determine whether to present and / or suppress messages relayed from the residing device as acknowledgments of the announcement.
[0023] In the second exemplary example, consider a scenario where the father intends to transmit an announcement to a specific user associated with the residential environment. For example, using the previous example above, suppose the father wants to announce to his son that his laundry cycle is complete so that the son can retrieve his clothes from the laundry room. In this example, similar to what has been described above, the father could speak the announcement into his mobile phone (e.g., “Son, your clothes are done”). The father’s mobile phone could record the announcement and then transmit the record via message to a home-based device (e.g., a smart speaker in the kitchen). In this case, the record could also indicate the intended recipient (e.g., the father’s son), which could be used to identify the recipient from the record. In some implementations, the device that receives and records the announcement (e.g., the father’s mobile phone) could also receive additional types of input regarding the intended destination and / or intended recipient of the message. For example, the father’s mobile phone could receive input corresponding to a specific area of the residence. For example, suppose the father knows that his son is currently in his son’s bedroom (e.g., an area of the residential environment) which includes another home-based device. The father could select his son’s bedroom as the intended destination, which could be transmitted by the father’s mobile phone along with the record of the announcement to the home-based device. In another example, the father might not know exactly whose clothes are in the laundry room, but he might know that they belong to one of the people associated with the residential environment (e.g., excluding the temporary nanny). In this example, the father can choose a subset of people to receive the announcement.
[0024] Continuing the example above, where a father wants to announce to his son that the laundry is done, a residing device (e.g., a smart speaker in the kitchen) can first obtain the announcement from a record (e.g., similar to that described herein). The residing device can then identify a specific user device (e.g., the son's mobile phone) among one or more devices associated with the son to receive the announcement, based on any suitable criteria. For example, as previously described, the residing device can retrieve the son's user profile and determine the devices associated with the son (e.g., a smartwatch and a mobile phone). In some implementations, the residing device can select a specific user device among the devices associated with the son (e.g., based on a predefined priority order). For example, based on a heuristic-based probability that the son will see the message, the residing device can select the son's mobile device instead of the son's smartwatch to transmit the message (or vice versa). In another example, the residing device can select two (e.g., all) devices associated with the son to receive the message.
[0025] In some implementations, a dwell device (e.g., a smart speaker in the kitchen) may select a specific user device to receive messages based on the determined location of one or more devices associated with the user. For example, using the above illustration, the dwell device may receive location data (e.g., including Global Positioning System (GPS) coordinates) from each of the user devices (e.g., a smartwatch and a mobile phone) associated with the son. When it is determined that two devices are close to each other (e.g., adjacent), the dwell device may determine to select the son's mobile phone instead of the smartwatch for message transmission. In another example, consider a scenario where the father selects the son's bedroom to receive messages. In this example, the son's bedroom may also have a dwell device (e.g., a tablet). In this example, the smart speaker in the kitchen may receive GPS coordinates from both the tablet and the son's user device in the son's bedroom. When it is determined that all three devices (e.g., the tablet, mobile phone, and smartwatch) are likely in the same bedroom (e.g., the same area), the dwell device may determine to select only one (or a subset) of the devices to receive messages. In some implementations, the residing device may determine which user equipment is used to receive messages based in part on whether the user equipment is inside or outside a residential environment, the type of user profile, and / or other suitable factors, as described herein. In some implementations, and similar to the previous examples, the residing device may transmit messages via a specific network path based on the location of the specific receiving user equipment. For example, in the case where the son (e.g., with his mobile device and smartwatch) is at school, the residing device may transmit messages (including announcement records) to the specific user equipment (e.g., the son's mobile phone) via a WAN (e.g., via a server device). In another case where the specific receiving user equipment is within a residential environment, the residing device may transmit messages via a LAN associated with the residential environment. Upon receiving a message, the receiving user equipment may present an announcement.
[0026] In some implementations, utilizing the second example above, the residing device may select multiple devices (e.g., all devices) associated with the son's user account to receive messages. In this case, the multiple devices may each determine, upon receiving a message from the residing device, whether to block the display of the message or to present the message. For example, suppose in the second example, the residing device transmits a message to a tablet (e.g., the residing device), a mobile phone, and a smartwatch in the son's bedroom. In this example, the mobile phone and smartwatch may each determine that they are currently in the son's bedroom, as is the residing device. They may also (e.g., based on activity detected via the smartwatch and / or mobile phone) determine that the son is likely in the bedroom. In this case, the mobile phone and smartwatch may store the message upon receiving it but block its presentation. Meanwhile, the residing device in the bedroom may present the message via a speaker connected to the tablet. In some implementations, similar to those described herein, each device may determine how to process the message in part based on verifying the existence of one or more conditions.
[0027] Furthermore, similar to the description above with respect to the first example, in some embodiments, the form (e.g., and / or format) of the announcement's presentation can be based on any suitable factors, including but not limited to the specific recipient device type, the identity of the recipient user account, the sender user account type, the sending device type, etc. Moreover, as described herein, the recipient device can determine whether and / or how to present the message based on one or more settings of the recipient device. For example, using the above example, suppose a resident device transmits a message to the son's mobile phone. However, in one example, the son's mobile phone is far from the residential environment (e.g., at school). In this example, the son's mobile phone is configured to ignore messages received from the resident device in the residential environment when the phone is far from the residential environment. In this case, even if the mobile phone can receive (and / or detect) the message from the resident device, the mobile phone may not present (e.g., may block) the announcement. Any suitable settings of the recipient device can be used to implement embodiments of this disclosure. In some embodiments, the recipient device may be able to respond to the announcement. For example, a response may correspond to sending the message back to the original sender device for presentation on that device (e.g., the father's mobile phone and / or a smart speaker in the kitchen).
[0028] Embodiments of this disclosure provide several techniques superior to existing systems. In one example, embodiments of this disclosure provide techniques for efficiently transmitting announcements to one or more devices, each associated with a residential environment. For example, some conventional systems enable user devices to transmit messages to announce on resident devices (e.g., smart speakers) within a residential environment. However, embodiments of this disclosure enable devices to transmit messages to announce on multiple devices, which can be of different types (e.g., including mobile device types, resident device types, etc.). Furthermore, the sending and / or receiving devices can each be located in different locations (e.g., within a residential environment, outside a residential environment, and / or any suitable combination thereof). Moreover, embodiments of this disclosure enable the sending device to send messages to one or more devices (e.g., associated with one or more user profiles), even if the sending device may not have access to data about the receiving device. For example, a sending device that cannot access data about other user profiles and / or other user devices may be associated with a shared user profile (e.g., as described above). In this case, the sending device may still be able to transmit announcements to other devices based on using resident devices as relay devices for transmitting announcements to other devices. In at least these ways, embodiments of this disclosure provide a more efficient mechanism for transmitting announcements. For example, user devices (e.g., mobile phones, smartwatches, etc.) may require less battery power and / or other computing resources to transmit announcements, at least because the resident device in the residential environment acts as a relay device for the user devices (e.g., receiving announcements, identifying recipient user devices, transmitting messages to each device, etc.). The savings in computing resources can be significant when considering the large number of announcements within a residential environment. In another example, the technology of this disclosure provides additional privacy and / or security features when transmitting announcements within a residential environment. For example, as a privacy feature, and as described above, user devices not associated with an administrator (or owner) profile (e.g., and therefore unable to access other devices associated with the residential environment) can be prevented from accessing the address information of devices in the residential environment, while still being able to make announcements to other devices, wherein the announcements are managed by the resident device in the residential environment (e.g., acting as a relay device). Furthermore, as an example security feature, depending on the type of user account (e.g., shared and / or guest user type), when the associated device is outside the residential environment, it can prevent the device from transmitting messages to the residential environment via a resident device, but when the device is inside the residential environment, it can be allowed to transmit messages (e.g., using the residential environment's LAN). Correspondingly, it can also (and / or alternatively) prevent shared user account types from receiving messages when located outside the residential environment. As an additional security feature, in some cases, the recipient user account and associated device can be determined in part based on the sender account's identity and / or sender account type.For example, a resident device can be configured to automatically relay messages from a specific account type (e.g., a shared user type) to a subset of user accounts (and / or associated devices) in a residential environment.
[0029] In another example of technological advantage, the technology of this disclosure can improve user experience by enabling user devices to transmit announcements to specific user devices associated with the intended recipient. For example, using the previous example, a father might want to announce to his son that the laundry is done. Instead of sending the message to every device associated with the home environment, a targeted message can be sent to the device associated with the son. In some implementations, this can reduce the number of messages transmitted, resulting in a significant reduction in total network traffic for a large number of announcements. Additionally, the technology of this disclosure enables the system to selectively transmit announcements to a device for presentation based on the device's location relative to other devices. For example, using the above example, if the son's mobile device is in the same area of the home environment (e.g., the son's bedroom) along with another device (e.g., a home device or another user device), the system can transmit the announcement only to a specific device (e.g., the home device instead of the mobile device, or vice versa) for presentation. This can improve user experience by reducing the likelihood that the user will feel overwhelmed by message notifications.
[0030] In another example of technological advantage, the techniques described herein can achieve a better user experience by presenting messages in part based on the sending device and / or the receiving device in part based on verification of one or more conditions. For example, the receiving device can present messages in part based on whether other devices are nearby. If so, the receiving device can block the message. In another non-limiting example, if the device determines that the user is currently busy with a specific activity (e.g., sleeping), the receiving device can block the presentation of the message. Thus, the described techniques enable the determination of the optimal device (e.g., the dwelling device and / or the user device) in the residential environment to present messages to the user in a timely manner without overwhelming the user with messages.
[0031] For clarity, it should be understood that while the techniques disclosed herein primarily relate to transmitting messages to one or more devices in the context of a residential environment for the presentation of announcements, the embodiments should not be construed as limited thereto. For example, embodiments may be performed in other suitable contexts (e.g., school buildings, office buildings, gyms, etc.). Moreover, it should be understood that any suitable device may be adapted to perform the embodiments described herein. For example, some embodiments herein primarily involve a resident device in a residential environment identifying one or more user devices (or specific user devices) for transmitting announcements. However, server devices (e.g., in the cloud) may also be used to perform one or more operations of these embodiments. In another example, user devices (e.g., mobile phones or tablets associated with an administrator or owner profile) may also perform one or more operations of these embodiments described herein (e.g., identifying one or more user devices for receiving announcements; transmitting announcement messages, etc.), operations that would otherwise typically be performed by a resident device and / or server device.
[0032] Figure 1 This is a simplified block diagram 100 illustrating an exemplary environment based on some implementation schemes. Figure 1 The exemplary environment depicted includes a residential environment 101. Residential environment 101 may correspond to a defined (e.g., limited) area and / or structure (e.g., a living unit), wherein one or more user profiles (e.g., family members, roommates, etc.) are associated with residential environment 101. Each user profile associated with residential environment 101 may also be associated with one or more devices (e.g., smartwatches, mobile phones, tablets, etc.). For example, in Figure 1 In this context, user 112 may refer to an associated user who has a user profile associated with user device 120 (e.g., a mobile phone) and also with another user device 122 (e.g., a smartwatch). User 112 in... Figure 1 The area is depicted as a specific region 106 within a residential environment 101 (e.g., marked by vertical dividing lines within the residential space). In one example, the region may correspond to a room or other suitable partition (e.g., living room, kitchen, bedroom, office, etc.). In some cases, the user profile associated with the residential environment may be associated with a user device currently located outside the residential environment. For example, in Figure 1 In this context, user 114 may represent an associated user with a user profile associated with user device 124, and user device 124 is currently outside of residential environment 101 (e.g., at school, in office, etc.).
[0033] Within residential environment 101 may be one or more controller devices, which typically operate as resident devices within residential environment 101 (e.g., tablets, smart home controllers, smart digital media players, home automation devices, etc.). In some embodiments, each resident device in the residential environment may be configured to perform the techniques disclosed herein. In some embodiments, one or more resident devices may perform operations to synchronize with each other (e.g., and / or coordinate operations). For example, a specific resident device in the residential environment may be selected from among other resident devices to perform the embodiments described herein. In this example, other resident devices (e.g., in different areas of residential environment 101) may route messages to the selected resident device for performing these operations (e.g., identifying the receiving device, and / or announcing a relay to other devices in the residential environment).
[0034] exist Figure 1 In the simplified residential environment 101, a dwelling device 108 (e.g., a smart speaker device) is depicted as a representative dwelling device suitable for implementing the embodiments described herein. The dwelling device 108 may reside in a different area 104 of the residential environment 101 than area 106. In one example, area 104 may correspond to a common space within the residential environment 101 (e.g., a kitchen, living room, etc.). In this case, as a dwelling device within a common space, the dwelling device 108 may be associated with more than one user profile. For example, where area 104 corresponds to the common living room of the residential environment 101, the dwelling device 108 may be associated with all associated users of the residential environment 101 (e.g., or a subset of users). In this example, user 110 may be one of the associated users of the residential environment 101 associated with the dwelling device 108. In some embodiments, a particular dwelling device may be associated with a particular user profile (e.g., a dwelling device in a bedroom associated with a particular user).
[0035] In some embodiments, as described herein, residency device 108 may be communicatively connected to one or more other devices, each of which is also associated with residential environment 101. For example, residency device 108 may be communicatively connected to one or more personal (e.g., user) devices and / or other residency devices. As described herein, in some embodiments, user devices (e.g., user device 120, which may be a mobile device) or other residency devices may be connected to residency device 108 via a LAN when located within residential environment 101. In some embodiments, user devices (e.g., user device 124, which may be another mobile device) may be connected to residency device 108 via a WAN when located outside residential environment 101. In some embodiments, residency device 108 may be connected to a router also included within residential environment 101. The router may (e.g., via a LAN, as described herein) be communicatively connected to one or more devices (e.g., user device 120, residency device 108, etc.) associated with residential environment 101. The router may also be connected to one or more external networks (e.g., WANs, such as the Internet) outside residential environment 101. In some implementations, the router may operate as an edge (e.g., border) router providing connectivity between a LAN and a WAN (e.g., operating within residential environment 101). For example, a server device may be connected to the router via the WAN. In some implementations, the server device may be associated (e.g., as a service provider) with one or more resident devices (e.g., resident device 108) within residential environment 101 and may perform one or more of the operations described herein. For example, the server device may receive messages from resident device 108 via the WAN and then relay the messages to devices currently associated with residential environment 101 that are outside of residential environment 101. In another example, the server device may route messages received from devices outside residential environment 101 and destined for devices within residential environment 101 to resident device 108 within residential environment 101.
[0036] In some implementations, the resident device 108 is operable with an instant messaging service 130. The instant messaging service 130 can perform one or more operations described in the embodiments herein. In one example, the instant messaging service 130 of the resident device 108 can be configured to transmit messages containing announcements to one or more devices associated with the residential environment 101. For example, the instant messaging service 130 can receive messages including announcements. In one example, the resident device can receive and record voice announcements (e.g., “Announcement: Dinner is ready”) received from a user 110 speaking into a microphone of the resident device 108. The resident device 108 can then identify one or more user profiles (e.g., user accounts) associated with the residential environment 101, and corresponding user devices (and / or resident devices) associated with each user profile (e.g., user device 120, user device 122, user device 124). The resident device 108 can then identify at least a portion (e.g., a subset and / or all) of the devices for receiving announcements, and then transmit messages including announcements to each of these identified devices. As described above, depending on, for example, the location of the corresponding receiving device, any suitable network path (e.g., the LAN of residential environment 101, or an external WAN) can be used to transmit the message. Upon receiving a message, the corresponding receiving device may present (or block) the announcement, partly based on the type and / or configuration settings of each receiving device, and / or verification of one or more conditions (e.g., the location of the receiving device, proximity to other user devices, time of day, current activity, etc.). In another example, instant messaging service 130 may be configured to transmit a message including an announcement to a specific user device for presentation. For example, instant messaging service 130 may receive a message including an announcement. In one example, user device 120 may receive and record a voice announcement (e.g., “Tell your son his laundry is done”) received from user 112 speaking into the microphone of user device 120. In some implementations, as described above, user device 120 may transmit a message containing a recording including an announcement to resident device 108. In this example, resident device 108, operating as a relay device, may obtain the announcement from the message and then identify the specific user device associated with the son for receiving the announcement. For example, if user equipment 124 corresponds to the son's mobile phone, the resident device can identify user equipment 124 (e.g., by retrieving the son's user profile) and then transmit another message, including the announcement, to the specific user equipment 124 for presentation to user 114 (e.g., the son).
[0037] Figure 2 This is another simplified block diagram depicting an exemplary process performed by a system according to some embodiments of this disclosure. Process 200 is a system that can transmit (e.g., relay) a message including an announcement to one or more devices to present the announcement (e.g., Figure 1An exemplary advanced process for the resident device 108. This process can be similar to... Figure 1 The process 101 is performed within the context of a residential environment (and / or devices associated with that residential environment). Figure 201 depicts an exemplary state corresponding to a block of process 200. Figure 201 may include similar elements to reference 101. Figure 1 The elements of those elements depicted. For example, user 203 may correspond to... Figure 1 User 110, resident device 207 can correspond to resident device 108, user profile 209 can correspond to Figure 1 User 114's user account profile, user device 213 (e.g., mobile phone) may correspond to user device 124 of user 114, user account profile 211 may correspond to user profile of user 112, user device 215 (e.g., smartwatch) may correspond to user device 122 of user 112, and user device 217 (e.g., mobile phone) may correspond to user device 120. Additionally, voice message 205 may correspond to a voice message spoken by user 203. Network 219 may correspond to one or more networks. For example, network 219 may include a LAN associated with a residential environment. Network 219 may also include a WAN (e.g., the Internet).
[0038] As described herein, although the residential environment-resident device 207 is depicted as a system performing process 200, it should be understood that other suitable devices may perform one or more operations of process 200. For example, a server device associated with the residential environment (e.g., connected to the residential environment via a WAN) may perform one or more operations of process 200. In one example, the server device may be operated by a cloud service provider, where the residential environment-resident device utilizes the server device to provide one or more services to devices in the residential environment. In another example, a user device (e.g., a tablet or mobile phone) with appropriate access rights (e.g., an administrator or owner) may be able to perform one or more operations of process 200.
[0039] Turning further to process 200, at box 202, the system may receive a first message including the announcement. For example, using diagram 201 for illustration, user 203 might want to announce to other members of the residential environment that dinner is ready. User 203 speaks a voice message 205: “Computer, announce that dinner is ready.” The system may receive the voice message 205 as input (e.g., corresponding to the first message) via, for example, a microphone attached to the system, and then record the voice message 205. The system may then analyze the recorded message to determine (e.g., obtain) the announcement.
[0040] In some implementations, a voice message may contain one or more elements that can be determined and analyzed (e.g., categorized) by the system to obtain an announcement from a first message. In some implementations, the system may perform NLP on voice message 205 to obtain an announcement based on the determined categorization of one or more elements of voice message 205. For example, using Figure 201 for illustration, a voice message may contain trigger elements or phrases (e.g., "computer," "announce") that correspond to one or more words that can signal to the system that a user is about to speak a message. The trigger elements may also indicate the expected action that the system should perform upon receiving the message. The voice message may also contain domain elements that correspond to one or more words that indicate a domain of the message (e.g., "food," "clothing," "sports," etc.). Where the voice message contains an announcement, the announcement may correspond to one or more words (e.g., phrases) within the message. Using Figure 201 for illustration, voice message 205 contains a trigger phrase (e.g., "computer, announce") that signals to the system that an announcement will subsequently be spoken. Voice message 205 also includes an announcement (e.g., “Dinner is ready”) and domain elements (e.g., “Dinner,” indicating that the announcement is about food). In some embodiments, the system may determine the announcement based at least in part on the determined domain and / or subdomain (e.g., “food,” “cooking,” etc.). It should be understood that the system may use any suitable words and / or phrases to determine one or more elements of voice message 205. When the system determines the announcement, it may further determine the start and end points of the announcement within the recording of voice message 205. In some embodiments, the system may further determine the text transcription corresponding to one or more words of the announcement. In some embodiments, if the original announcement also includes video (e.g., an audiovisual announcement), the start and end points may further correspond to corresponding frames of the video. When determining the start and end points of voice message 205 (e.g., the start and end points may be referred to as splicing data), the system may splice the recording of voice message 205 to obtain the announcement as a spliced recording (e.g., “Dinner is ready”).
[0041] As described above, in some embodiments, the voice message may also indicate the intended recipient of the message (e.g., where the message is an announcement). For example, voice message 205 may alternatively be “Computer, announcing to Bob that dinner is ready,” in which case the intended recipient can be identified as “Bob.” In some embodiments, the system may infer and / or subsequently determine the intended recipient (e.g., everyone associated with the residential environment, everyone currently in the residence, etc.). In some embodiments, the intended recipient may be inferred at least in part based on one or more elements of the message (e.g., the identified domain, sender, etc.). In the example of Figure 201, since the domain is associated with “dinner” or “food,” it can be inferred that the message is intended for associated members of the residential environment currently present in the residential environment (e.g., those who may participate in dinner). In some embodiments, as further described herein (e.g., referring to…), Figure 10 The system can determine the intended recipient based on one or more rules. For example, a specific user account (e.g., associated with the announcer, i.e., user 203) can be associated with a subset of user accounts in the residential environment. In this example, if it is determined that the voice recorded in voice message 205 corresponds to user account 203, then devices associated with a subset of user accounts can be selected as the message recipients. It should be understood that the system can determine (e.g., infer) one or more intended recipients (or any other suitable information) based on any suitable method (e.g., machine learning algorithms (e.g., performing NLP) and / or heuristic-based algorithms, etc.).
[0042] Similarly, as further described herein (e.g., see...) Figure 4 In some implementations, the system may also be able to infer the expected location of one or more intended recipients. Using the previous example above, if the voice message 205 were instead “Computer, announce to Bob’s office that dinner is ready,” the system could determine the expected location (e.g., “Bob’s office”). In the example of Figure 201, the expected location could be inferred to correspond to any suitable location associated with the residential environment. In some implementations, the location may not be inferred (e.g., in cases where a message is announced to each device associated with the residential environment regardless of the current location). In some implementations, the system may subsequently use the determined location (e.g., area) to transmit subsequent messages to a specific area, for example, when a resident device in the residential environment is associated with a specific determined location (e.g., an area of the residence, such as the son’s bedroom, living room, etc.).
[0043] Although Figure 201 depicts user 203 speaking directly to stationary device 207, it should be understood that the implementation is not limited to this. For example, in another implementation, user device 203's user equipment (e.g., mobile phone) may receive voice message 205, record the message, and then transmit the recording of voice message 205 to stationary device 207, where stationary device 207 may act as a relay device. Moreover, as described herein, multiple stationary devices may be present within a residential environment. In some implementations, each stationary device may be configured to perform process 200. In some implementations, stationary devices may have been synchronized to have a specific stationary device (e.g., stationary device 207) to coordinate the reception of any announcements associated with the residential environment, process the announcements, and then transmit the announcements to the appropriate user equipment and / or other stationary devices for message presentation. Thus, in this example where a specific stationary device is selected (e.g., or otherwise chosen) to perform process 200, voice message 205 may have already been received and recorded by another stationary device and transmitted to stationary device 207 for further processing.
[0044] In some implementations, as described herein, the system may be able to additionally determine the identity of the sender. For example, using Figure 201 for illustration, the residing device 207 may perform speech analysis (e.g., via NLP) on the voice of user 203 to determine the identity of user 203. In another example, where user 203 speaks into a mobile phone (which will later record and transmit the speech to residing device 207), residing device 207 may determine the identity of the speaker in part based on identifier information of the mobile device (e.g., as associated with user 203). In some implementations, the system may utilize any suitable technology to determine the identity of the person making the announcement.
[0045] As described herein, in some embodiments, one or more operations may be performed by another device. For example, while recording voice message 205, the resident device 207 may subsequently store a record of voice message 205 and then transfer a copy of the record to a server device (e.g., in the cloud). The server device may then analyze (e.g., classify) the elements of the record to determine splicing data. As described herein, the splicing data may indicate the start and end points within the record. The server device may then transmit the splicing data back to the resident device 207, at which point the resident device 207 may then splice the previously stored record to obtain another record that includes only the announcement portion of voice message 205 (e.g., “Dinner is ready”). In some embodiments, the server device may also determine other elements, including but not limited to one or more intended recipients, domains, sender identities, etc. These one or more elements may also be transmitted to the resident device 207 for further processing, as further described herein.
[0046] In some implementations, the residing device 207 may amplify and / or transform the announced recording (or "announcement"). For example, the residing device 207 amplifies the audio sound by fading in and out of the sound at the beginning and end of the recording, respectively. The residing device 207 may also alter the pitch and / or tone of one or more words within a word.
[0047] In some implementations, the resident device 207 may further add an additional portion (e.g., a preamble or other indicator) to the record, such as indicating the identity of the sender (e.g., the announcer). In some implementations, determining whether to indicate the sender's identity may be based in part on the type of user profile associated with the sender. As described herein, multiple user profile types may exist (e.g., shared user, administrator, owner, etc.). In some implementations, an administrator (e.g., owner) profile may be associated with a user having all administrative privileges, and administrators and / or shared users may be invited to associate with the residential environment. In some implementations, a resident device may be assigned to one or more owners, while the same resident device may be associated with a broader set of users within the residential environment (e.g., in terms of resident devices typically shared by the residence). In some implementations, an administrator profile may be associated with a user who can manage one or more resident devices within the residential environment (e.g., including user profiles that access other members). In some implementations, a shared user profile may be associated with a user invited to send and receive messages from the residential environment (e.g., a visitor user, such as a temporary nanny or housekeeper), but may not have access to the profiles (or other information) of other shared users. It should be understood that any suitable profile type can be used to implement the embodiments described herein. Using Figure 201 for further illustration, if user 203 (e.g., “Dad”) is an administrator or owner (e.g., as described above), the resident device 207 can enable the recipient to know who sent the announcement and thus transform the announcement to correspond to “Announcement from Dad: Dinner is ready”. In another example, where user 203 is a shared user (e.g., associated with a shared user profile), the system can determine when sending the announcement that the shared user’s identity should remain anonymous (e.g., at least anonymous to other shared users). Thus, in one example, the transformed announcement could correspond to “Announcement from the residence: Dinner is ready”. In at least this way, the technology of this disclosure enables enhanced privacy protection while still allowing shared users (e.g., visitors) whose associated devices may not include address data (e.g., Internet Protocol (IP) address information, Media Access Control (MAC) address information, etc.) of other devices associated with the residential environment to still send announcements to other devices associated with the residential environment. It should be understood that any suitable technology can be used to generate and / or transform announcement records according to the technology of this disclosure. For example, as per [reference to...] Figure 3As a further example, the sender's identity can be indicated by text format, icons, or other suitable indicators.
[0048] At box 204, the system may identify one or more devices for receiving the announcement. Using Figure 201 for further illustration, the system (e.g., resident device 207) may first retrieve one or more user profiles associated with the residential environment. For example, as described above with respect to box 202, the system may have previously identified one or more intended recipients of the announcement. For example, the system may have already inferred the intended recipients of the message (e.g., all associated users identified within the residential environment) based on the content of the message (e.g., the identified domain). In another example, the system may use NLP to determine the identity of a recipient explicitly mentioned in the message (e.g., "son," "temporary babysitter," etc.). Based on the identified intended recipients, the system may retrieve associated user profiles for each intended recipient. In the example of Figure 201, at least two intended recipients are identified as each having a corresponding user profile (e.g., user profile 209 and user profile 211). In some embodiments, the user profiles may have been previously generated and stored when a new user is associated with the residential environment (e.g., by resident device 207 and / or a remote server device). In some implementations, user profiles may optionally be stored in the cloud and then temporarily retrieved by the resident device during execution process 200. In some implementations, each resident device in a residential environment may store a user profile. In some implementations, any suitable mechanism may be used to maintain user profiles.
[0049] In some implementations, after retrieving the user profile of each intended recipient, the system may then determine one or more devices for receiving the announcement. For example, returning to Figure 201, the system may determine that user device 213 is associated with user profile 209, and user devices 216 and 217 are associated with user profile 211. It should be understood that any suitable number of devices may be associated with a particular user profile. The system may identify each of these devices that should receive the announcement for presentation. It should also be understood that each identified recipient device may have a particular device type among a plurality of different device types. The plurality of different device types may include any suitable type, including mobile devices. For example, as depicted in Figure 201, a mobile phone (e.g., user device 213) is depicted, and a smartwatch (e.g., user device 215) is also depicted. Moreover, one or more recipient devices may correspond to a dwelling device associated with a residential environment. For example, as described herein, a dwelling device may be associated with multiple users in a residential environment (e.g., a smart speaker located in the living room and available for general use). In this example, user profiles 209 and 211 can both be associated with a resident device intended for general use, and this resident device can also be included in the recipient device list. Another resident device can be associated with a specific user and / or a specific area of the residential environment (e.g., user 203's bedroom).
[0050] At box 206, the system can transmit a second message to one or more receiving devices for presentation. Continuing with Figure 201 for illustration, the system (e.g., resident device 207) can transmit a message to each identified receiving device via one or more networks 219. The second message can be formatted to contain any suitable information that can be used to present the announcement. For example, the second message may contain an announcement record (e.g., “Dinner is ready”). The second message may also contain other information, including but not limited to the sender’s identity and / or related identification information (e.g., profile image or icon), the sender’s current location, the identifier of the sending device (e.g., resident device or user device), the location of the sending device (e.g., area of a residential environment), instructions on how to present the announcement (e.g., via both audio and transcribed text, specific color codes, pop-up messages, etc.). In some embodiments, as further described herein (e.g., see...), Figure 3The receiving device may also determine whether and / or how to present the announcement based on, for example, the type of the receiving device, the location of the receiving device (e.g., a specific area in a residential environment), the proximity of the receiving device to other devices associated with the residential environment (described further herein), or other suitable settings. For example, a mobile phone (e.g., user device 213) may present the notification via text, pop-up / banner, audio, and / or video, while a smart speaker-hosted device may present the announcement via audio. In another example, a smartwatch (e.g., user device 215) may present the announcement via audio and / or text pop-up / banner. A smart media player connected to a TV may additionally present announcements corresponding to audiovisual recordings.
[0051] In some implementations, as described herein, the specific network path through which the second message can be transmitted can be determined, at least in part, based on the location of a particular device (e.g., the sending device and / or the receiving device). For example, suppose user equipment 213 and... Figure 1 User 114 is associated with a user currently away from residential environment 101. In this example, a second message can be transmitted via the Internet (e.g., via cellular signal) by a resident device 207 in residential environment 101. In another example, assume user devices 215 and 217 are associated with... Figure 1The user 112 is associated with the device, which is described as being within residential environment 101. In this example, the residing device 207 can transmit a second message to each receiving device via the LAN of residential environment 101. In some implementations, the residing device 207 may first detect whether the device is within residential environment 101 (e.g., and / or a specific area) before determining whether to transmit a message to the receiving device. For example, if the device is currently outside the residential environment, the residing device 207 may include instructions that devices associated with a specific user type (e.g., shared user type) of the residential environment will not receive relay messages. Assume that, in one example, user profile 209 is associated with a shared user type, and user device 213 is associated with user profile 209. In this example, the residing device 207 first detects that user device 213 is not within the residential environment (e.g., because no ping response was received from user device 213 via the LAN). The residing device 207 may then determine not to transmit a message to user device 213. In another example, if user profile 209 is alternatively associated with an administrator type, resident device 207 may determine to relay messages to user device 213, even if the user device may currently be far from the residential environment. In this way, the technology allows core members of the residence to receive messages from any suitable location (e.g., inside or outside the residence), while visitor members (e.g., including shared users such as housekeepers or temporary caregivers) may only receive announcements when they are inside the residence. In this context, this enhances privacy and / or security features by ensuring that only authorized user accounts (and / or devices) can send or receive announcements.
[0052] In some implementations, the specific network path may also depend on the location of the sending user equipment. For example, if the sending equipment is outside residential environment 101 (e.g., at a school), a server equipment (e.g., associated with resident equipment 207) may coordinate the routing of messages to appropriate receiving equipment (e.g., within and / or outside residential environment 101). If at least one of the receiving equipment is within the residential environment, the server equipment may route the message to resident equipment 207, which may then route the message to the user equipment via the LAN of residential environment 101. In some implementations, for example, where the entire residence (e.g., all associated users) is identified as the intended recipient, the system may determine that devices associated with the sending user profile (e.g., user equipment and / or resident equipment) should be excluded from receiving the second message. In some implementations, one or more of the sending equipment may receive the second message, but each device may still determine whether and / or how the message is presented. For example, another user equipment of the sender may determine not to pop up (e.g., block) the notification when it is determined that the second message contains an announcement from the sender (but the announcement may still be received, stored, and / or otherwise processed by other user equipment). It should be understood that the system may utilize any appropriate settings and / or rules to determine which devices should receive the second message.
[0053] In some implementations, when transmitting a second message including the announcement, the resident device 207 may determine whether the announcement should be deleted from the resident device 207, stored for future record retention, or otherwise processed by the resident device 207. Similarly, in cases where a remote server is involved in processing the initial record, the remote server may also be configured to delete (or otherwise archive) the record (e.g., after a predefined time period).
[0054] Figure 3 An exemplary graphical user interface (GUI) 310 of a device 300 (e.g., a mobile phone) receiving a message that can be manipulated by the device 300 to be presented is shown. In some embodiments, the device 300 may be similar to other mobile devices described herein (e.g., mobile phones). Figure 2 User equipment 213 Figure 1 One or more mobile devices (such as user equipment 124, etc.). It should be understood that although the description of the display regarding the mobile phone... Figure 3The implementation may include a GUI 310, but the implementation should not be construed as limited thereto. For example, one or more of the features described with respect to device 300 may also be implemented by another type of device (e.g., another type of mobile device, such as a smartwatch, tablet, smart glasses, etc.). In another example, a resident device (e.g., a smart speaker, a smart media player connected to a TV, etc.) may also be configured to implement one or more of the features described with respect to device 300 (e.g., a smart speaker may present announced audio sounds, a smart media player may display a similar GUI for display on a connected TV, etc.).
[0055] Turning further to GUI 310, several elements are depicted, including a first identifier (ID) 314, a first icon 316, a first announcement 318, a second ID 320, a second icon 322, a second announcement 324, a first user response 326, a third ID 328, a third icon 330, a third announcement 332, a first countdown timer 334, a second user response 336, a second countdown timer 338, and a microphone button 340. In some embodiments, other elements may also be displayed, including but not limited to settings icons (e.g., for adjusting settings).
[0056] For clarity, consider device 300 and... Figure 1 The residential environment 101 is associated with scenarios involving associated users. For example, an associated user could be (e.g., a son in a family). Other associated users in the residential environment could include sisters, a mother, a housekeeper, etc. In this scenario, the son could take device 300 to school (e.g., outside the residential environment). At a certain point in the day, the housekeeper could arrive at the residence and collect the family's mail. Upon collecting the mail, the housekeeper could announce: "Computer, announcing that the mail has been delivered." In one implementation, the resident device in the residential environment 101 (e.g., Figure 2The residing device 207 speaks the message and records it. In another example, the message may be recorded by the butler's user device (e.g., a mobile phone) and then transmitted to the residing device 207 for further processing, as described herein. The residing device 207 may identify the announcement (e.g., "Mail has been delivered") from the message, as described herein. The residing device 207 may also identify the sender as the butler. In one example, the residing device 207 may identify the sender via voice recognition when spoken directly to the residing device 207 (smart speaker). In another example, the residing device 207 may identify the sender as the butler via a device identifier and / or user identifier received from the butler's mobile phone that can be associated with the residential environment. In one example, the butler may be associated with a shared user profile. The residing device 207 may (e.g., among one or more other devices) identify the device 300 for receiving announcements and may then transmit a message containing the announcement (e.g., a record and / or transcription of the announcement) to the device 300. As described herein, the network path through which messages are transmitted can depend in part on the location of the sending device and / or the receiving device. In the example above, the resident device 207 may transmit messages from the residential environment to the receiving device 300 (e.g., via a server device associated with the resident device 207) via a WAN (e.g., the Internet).
[0057] When device 300 receives an announcement, applications (e.g., and / or services) executing on device 300 can present the announcement and information about the message within GUI 310. For example, as depicted within GUI 310, a first ID 314 may indicate that the announcement was sent from a “residence” (e.g., residential environment 101) and that the sender is a shared user. It should be noted that in this case, because the sender is a housekeeper (who may have a shared user profile), the housekeeper's identity may not be revealed. As described herein, this allows for better support of privacy controls when the announcement is transmitted via the technology of this disclosure. It should be understood that any suitable type and / or scope of privacy controls may be supported. GUI 310 may also display a first icon 316, which may correspond to an icon (e.g., an image, a mark, or other suitable identifier) associated with the sender. In this case, the icon may be a generic icon to preserve the sender's anonymity (e.g., to prevent visibility to other shared users). GUI 310 may also display a first announcement 318 (e.g., “Mail delivered”). In this illustration, a transcription of the text is also presented within a text field. In one embodiment, a user of device 300 can tap on a text field (or other suitable GUI element) to allow device 300 to present an audio (and / or video) recording of the announcement. It should be understood that, as depicted in GUI 310, the announcements are displayed in chronological order from top to bottom. Therefore, when the first announcement 318 is presented, other announcements and / or responses (e.g., a second announcement 324, a first user response 326, etc.) may not yet be presented. In some embodiments, one or more other suitable notifications of the first announcement 318 may be presented in addition to displaying GUI 310 (and / or alternatively). For example, a banner notification may pop up on the screen, where GUI 310 may be presented upon receiving a tap on the banner from the user. In another example, where device 300 is a different kind of device (e.g., a smart speaker), a unique light may illuminate on the smart speaker to indicate that the announcement is ready to be presented. In some embodiments, the announcement may be presented automatically immediately upon being received by device 300. It should be understood that any suitable form of notification and / or presentation of the announcement can be implemented according to the techniques of this disclosure.
[0058] Continuing with the above scenario, after receiving the message containing the first announcement 318, the son's sister (e.g., also associated with the residential environment) may also want to send an announcement to members of the residential environment. In some implementations, the announcement may be transmitted in a similar manner as described above. For example, device 300 may receive another message from resident device 207, where device 300 may present the sister's announcement and information about the message within GUI 310. For example, a second ID 320 may indicate that the sender is "sister". In one implementation, the second ID 320 may also indicate the sender's location (e.g., area and / or room). Moreover, a third icon 330 may correspond to an image (or avatar, etc.) associated with the sister's profile. In this example, it should be noted that the second ID 320 and / or the second icon 322 may indicate the sender's identity. In one example, this may be because the user profile associated with the sister is an administrator or owner profile (e.g., not a shared user profile). Using the example of GUI 310, the second announcement 324 could be “I forgot to buy milk. Can someone buy milk for me?” When device 300 presents the announcement for display in GUI 310 (e.g., similar to what is described above), device 300 can further receive input from the son corresponding to a response message. For example, microphone button 340 could receive a tap from the son, at which point device 300 records a first user response 326 from the son (e.g., a record): “I will buy milk after school.” In some embodiments, the first user response 326 (e.g., a message) can be sent to any suitable one or more devices and / or locations associated with the residential environment (e.g., a zone). For example, in one embodiment, the first user response 326 can be sent only to the sender's device (e.g., the sister's user device and / or other resident devices that transmit the second announcement 324 to device 300 (e.g., resident device 207)). In another embodiment, the first user response 326 can be sent only to devices currently within the residential environment (e.g., residential environment 101), and thus the message is received via a LAN associated with the residential environment. In another embodiment, the first user response 326 may be sent to all associated devices within the residential environment. This may include both user devices and / or hosted devices, where the user devices (e.g., mobile devices) may be inside or outside the residential environment. In some embodiments, the first user response 326 may be automatically directed to a hosted device in a location close to where the message was sent (e.g., an area of the residential environment). In some embodiments, the destination of the first user response 326 may depend in part on a predefined time frame in which the first user response 326 is sent. For example, if the son responds to the sister's announcement within a short time frame (e.g., seconds, a minute), the first user response 326 may only be directed back to the sender's device (e.g., the sister's mobile phone).In some implementations, as described herein (e.g., see [link]). Figure 4 Device 300 may receive additional input (e.g., from a son) corresponding to any suitable instruction regarding the first user response 326. For example, device 300 may receive input that directs the first user response 325 to a specific location (e.g., area) within the residential environment.
[0059] It should be understood that, similar to what is described herein regarding the transmission of a response message from a sending device to one or more receiving devices, the specific network path of the response message (e.g., from the responding device to one or more devices for receiving the response message) may depend in part on the location of the responding device and / or the receiving device. For example, where the receiving device for the response message is outside a residential environment, a device server (e.g., associated with a resident device in the residential environment) may coordinate the routing of the message to the receiving device via a WAN. Where the receiving device is within a residential environment, a resident device (e.g., resident device 207) may route the message to one or more devices via a LAN.
[0060] Continuing with the above scenario, after device 300 transmits the first user response 326, the mother may send an announcement to the house, which can be received and / or presented by device 300, similar to what has been described above. For example, a third ID 328 may identify the sender as "Mom" and may include a third icon 330 corresponding to the icon associated with the mother's user profile. In this example, the third announcement 332 may correspond to "Dinner is ready." In one example, the third announcement 332 may be received in the afternoon after the son has returned home from school and device 300 is now within the residential environment (e.g., in the son's bedroom). The mother may have already made the announcement to a resident device in the kitchen (e.g., resident device 207), at which point the resident device then transmits the announcement record to device 300 via the residential environment LAN. In one example, devices currently within the residential environment may receive the message (e.g., via the LAN), and devices far from the residential environment may not receive the message (e.g., because the dinner announcement may be irrelevant to them). As described herein, it should be understood that any suitable device and / or location may be the declared suitable intended recipient.
[0061] In some implementations, announcements received by the device may persist on the device for a predefined period of time, after which the announcement (e.g., recorded and / or transcribed messages) disappears (or is archived). Figure 3In the depiction, a first countdown timer 334 indicates that a recent announcement from the mother has been received, and that the announcement will disappear after the first countdown timer 334 expires. When device 300 receives a third announcement 332, the son can reply with a second user response 336: "I'm on my way," which can be performed via microphone button 340 (which may include other suitable input mechanisms, including video, text, etc.), similar to what is described above. In this example, a second countdown timer 338 can also indicate on the son's device (e.g., and other devices receiving the second user response 336) that the son's second user response 336 will also disappear after the timer expires.
[0062] As described herein, in some embodiments, device 300 (e.g., via GUI 310) allows a user to configure one or more settings. In some embodiments, device 300 may be configured to block (or enable) notifications based on a determined location of device 300. For example, suppose that device 300 is currently away from the residential environment (e.g., at the son's school) when Mom has sent the third announcement 332, “Dinner is ready!”. Device 300 may have a setting that indicates that if device 300 receives a message from the residential environment while device 300 is away from the residential environment, device 300 will not present the announcement (and / or the notification of the announcement). In this example, device 300 may block the message upon receiving the third announcement 332. In another example, with the same settings, device 300 may present the announcement if device 300 is within the residential environment (e.g., residential environment 101) and receives the third announcement 332 via a LAN. Any suitable settings may be used to implement the embodiments disclosed herein (e.g., always block messages from the residential environment, never block, only block when away from the residential environment, etc.). It should be understood that in some implementations, settings regarding message transmission and message reception may be configurable on the sending device and / or the receiving device. For example, as described herein, instead of device 300 determining to block notification of third announcement 332, a resident device transmitting the message (e.g., resident device 207) may first determine not to transmit the message to device 300 if it detects that device 300 is not in a residential environment.
[0063] Figure 4 This is another simplified block diagram 400 illustrating, according to some embodiments, a method for transmitting messages to a specific user device to present at least some exemplary technologies announced. In Figure 400, a residential environment 402 and a vehicle 450 are depicted. In some embodiments, the residential environment 402 may be similar to... Figure 1Some aspects of the residential environment 101. Vehicle 450 may be outside the residential environment (e.g., depicted by vertical line separators in Figure 400), for example, en route to another destination (e.g., returning home after get off work, en route to the office, etc.). It should be understood that in some embodiments, vehicle 450 may alternatively represent any suitable location outside the residential environment 402.
[0064] Turning further to the elements of residential environment 402, several elements are depicted. Residential environment 402 comprises three distinct areas: area 404, area 406, and area 408. In some embodiments, each area may correspond to a different location within the residential environment. For example, area 404 may correspond to a living room, area 406 may correspond to a kitchen, and area 408 may correspond to a bedroom. Figure 4 As depicted, a dwell device 430 (e.g., a smart speaker) may be located within area 404 and associated with a living room. Similarly, a dwell device 410 (e.g., a smart speaker) may be located within area 406 and associated with a kitchen, and a dwell device 420 (e.g., a smart speaker) may be located within area 408 and associated with a bedroom. In some embodiments, one or more associations (e.g., between dwell devices and specific areas) may be stored by one or more dwell devices of the residential environment 402. In some embodiments, the associations may also be stored by a remote server device associated with a dwell device. The residential environment 402 also includes a user device 432 (e.g., a mobile phone), which may currently be located within area 404 at the end of the living room opposite to dwell device 430. Another user device 422 (e.g., another mobile phone) is currently located within area 408 (i.e., the bedroom). Figure 4 As described, the proximity of user equipment 422 to stationary equipment 420 in area 408 can be greater than the proximity of user equipment 432 to stationary equipment 430 in area 404.
[0065] Turning further to the components of vehicle 450, several components are depicted. For example, user device 452 (e.g., a tablet device) and user device 454 (e.g., a smartwatch) are located within vehicle 450 while en route. In this example, both user device 452 and user device 454 may be adjacent to each other (e.g., carried and / or worn by a user driving vehicle 450).
[0066] In some embodiments, any of the devices depicted in Figure 400 may transmit messages, including announcements, to one or more devices and / or locations (e.g., areas) associated with residential environment 402 for presentation. In some embodiments, the transmitting device may receive instructions corresponding to the selection of a specific set (e.g., a subset) of devices associated with residential environment 402 for receiving announcements. In some embodiments, the transmitting device may also (or alternatively) receive instructions corresponding to the selection of one or more locations (e.g., one or more areas) for receiving messages. As described herein, any of the resident devices (e.g., resident device 410, resident device 420, and / or resident device 430) may be used to transmit announcements to other devices and / or locations within residential environment 402. Moreover, in some embodiments, user devices (e.g., those associated with administrator or owner profiles) may be able to send announcements directly to other devices. For example, a user device may store user profiles of other users, associated devices, and / or other suitable associations operable for transmitting announcements to devices associated with the residential environment. In some implementations, server equipment associated with a resident device in a residential environment may also be configured to announce transmissions to one or more devices associated with the residential environment. Therefore, although the resident device may be primarily described in the implementations herein as announcing transmissions to other devices, the implementations should not be construed as limited to this (e.g., suitable user equipment and / or server equipment may also perform the operations described in the implementations herein).
[0067] In some implementations, a transmitting device (e.g., a resident device or a suitable user equipment) may be configured to announce transmissions to specific devices (e.g., a specific user equipment and / or a specific resident device) based on detected proximity between one or more devices. In some implementations, one or more devices associated with residential environment 402 may transmit location information (e.g., GPS coordinates, velocity and / or acceleration information, etc.) to resident devices in the residential environment. In some implementations, any suitable Real-Time Location Service (RTLS) may be used to determine the location information (e.g., location data) of the devices. Based on the location information determined relative to each device, the resident device may determine the location of each device and / or the relative proximity between devices. As further illustrated in the representative scenarios described below, this location and / or proximity information may be used to select specific one or more devices for transmission announcements.
[0068] Consider a first scenario where a dwell device 410 (e.g., in the kitchen corresponding to area 406) receives voice input from a user (e.g., the mother) corresponding to an announcement (e.g., “Son, dinner is ready”). In this scenario, as described herein, dwell device 410 may determine which device or more to transmit the message including the announcement to. In one example, dwell device 410 may determine, for example, that user device 422 is in the son’s bedroom (e.g., area 408) based on location information received from the son’s user device (e.g., user device 422). Dwell device 410 may also store data corresponding to the association between dwell device 420 and area 408 (e.g., based on the determined location of dwell device 420). In this example, dwell device 410 may determine that the announcement will be transmitted to dwell device 420 instead of user device 422 (or in any other way). For example, dwell device 410 may be configured such that when dwell device 410 determines that a particular user device is near another dwell device (e.g., dwell device 420) in the residential environment, dwell device 410 should transmit an announcement to the dwell device for presentation (e.g., via a speaker) instead of transmitting it to the neighboring user device. In some embodiments, this can reduce the possibility of a user being overwhelmed with notifications via multiple devices. In some embodiments, as described herein (e.g., regarding...), Figure 10 Further described, the stationary device 410 will transmit the announced message to both the stationary device 420 and the user device 422, wherein the respective receiving device determines whether to block or present the message based on verification of one or more conditions (e.g., proximity to other nearby devices, time of day, device location, etc.).
[0069] Consider a second scenario similar to the first scenario above. In this scenario, dwell device 410 receives input from a user (e.g., the mother) corresponding to an announcement (e.g., “Dad, can you come help me in the kitchen?”). In this scenario, assume the father is currently in the living room (e.g., area 404), while his user device (e.g., user device 432) is at one end of the living room. In this example, dwell device 410 can determine that although user device 432 may be in the same area 404 as dwell device 430, they are not adjacent to each other (e.g., based on a predefined distance threshold). Therefore, in this example, dwell device 410 may transmit the announcement to both dwell device 430 and user device 432 for presentation (e.g., via the speaker of dwell device 430 and on display and / or audio presentation on user device 432, respectively). Moreover, in this example, dwell device 410 may determine not to transmit the announcement to either dwell device 420 in area 408 (e.g., in the son’s bedroom) or the son’s user device 422.
[0070] Consider a third scenario where dwell device 410 receives input corresponding to the announcement “Announce to the son and father that dinner is ready.” In this scenario, dwell device 410 may determine a specific subset of one or more devices associated with residential environment 402 for transmitting the message including the announcement. For example, dwell device 410 may determine to transmit the announcement to dwell device 430, user device 432, and dwell device 420 for presentation by each device. In one example, these devices may be selected based on the determined locations of the son's user device and the father's user device within residential environment 402 relative to other devices in residential environment 402, respectively. In another example, the announcement could be “Announce to the living room and the son's bedroom that dinner is ready.” In this example, dwell device 410 may determine one or more receiving devices (e.g., dwell devices 430 and 420) based on the correlation between areas of residential environment 402 (e.g., areas 404 and 408) and the location of each dwell device.
[0071] Consider a fourth scenario where dwell device 410 receives input corresponding to the announcement "Announce to my son that I'll buy something on my way home from school." In this scenario, assume the son is currently away from the residential environment 402. For example, the son is currently driving home from school in vehicle 450. Furthermore, the son may be carrying user device 452 (e.g., a mobile phone) and wearing user device 454 (e.g., a smartwatch). In this example, dwell device 410 may determine that user device 452 is near user device 454. Dwell device 410 may be further configured to prioritize which device to send the announcement to if the device is near another device associated with the residential environment 402 (e.g., prioritizing the mobile phone over the smartwatch, or vice versa). Dwell device 410 may then transmit the announcement to the mobile phone for presentation (e.g., instead of the smartwatch).
[0072] It should be understood that the various scenarios described with reference to Figure 400 are representative. One or more aspects (e.g., variables) of each scenario may change, while still performing the implementation as described herein, including but not limited to a specific sending device, the location of the sending device, the location of other residing devices within the residential environment, the location of one or more candidate receiving devices (e.g., within or outside the residential environment), the user profile type of the receiving device, the type of the receiving device (e.g., a residing device or a user device), the settings of each device, etc. For example, in one implementation, there may be more than one residing device (e.g., multiple smart speakers) in a particular area. In this implementation, an announcement may be transmitted to multiple smart speakers, wherein the smart speakers can synchronize the audio presentation of the announcement within the particular area (e.g., based on the synchronization clock time between the residing devices). In another example, a particular area of the residential environment (e.g., a nursery) may be excluded from receiving and presenting announcements.
[0073] Figure 5 This is another simplified block diagram 500 illustrating an exemplary architecture of a system for transmitting messages to one or more devices to present an announcement, according to some implementations. Diagram 500 includes one or more user devices 502, one or more resident devices 504, a server device 508, one or more networks 510, and a representative resident device 506 (which may be one of the one or more resident devices 504). Figure 5 Each of the elements depicted herein may be similar to one or more elements depicted in other figures described herein. For example, user equipment 502 may be similar to any of the other user equipment described herein, and so on. In some embodiments, at least some (e.g., and / or all) of the elements of illustration 500 may be in a residential environment (e.g., Figure 1 Residential environment 101 Figure 4 Operating within the background of the residential environment (402).
[0074] Turning more specifically to each element, the user equipment in user equipment 502 can be any suitable computing device (e.g., mobile phone, tablet, personal computer (PC), smart glasses, smartwatch, etc.). In some embodiments, the user equipment can perform any one or more of the operations described herein. Depending on the type of user equipment and / or the location of the user equipment (e.g., within or outside a residential environment), the user equipment may be able to communicate via network 510 (e.g., including LAN and / or WAN) using one or more network protocols (e.g., Bluetooth connection, Thread connection, ZigBee connection, infrared connection, WiFi connection, etc.) and / or network paths, as further described herein. In some embodiments, the user equipment will connect to another device (e.g., a TV) through which the user equipment can provide data (e.g., notification messages, instructions, user interfaces) for presentation. As described herein, in some embodiments, the user equipment may be able to transmit messages to and / or receive messages from other devices in the residential environment. In some embodiments, the user equipment may determine whether to present an announcement (and / or a notification) or block its display based on one or more rules. These rules can indicate under them whether conditions will be presented (e.g., displayed) or prevented from being announced. Some non-limiting examples of conditions that can affect whether an announcement is presented may include the current location of the user device (e.g., inside or outside a residential environment), its relative location to other user devices (and / or resident devices), the time of day, current activity associated with the user account on the user device, user preferences stored on the user device, etc.
[0075] In some embodiments, server device 508 may be a computer system including at least one memory, one or more processing units (or processors), storage units, communication devices, and I / O devices. In some embodiments, server device 508 may perform any one or more of the operations of the server device described herein. In some embodiments, these elements may be implemented in a similar manner (or differently) to those described with similar elements of reference resident device 506. In some embodiments, the storage units of server device 508 may store data received from one or more devices of Figure 500. For example, the storage units may store a list of user profiles and / or a list of user devices for a residential environment. The storage units may also store one or more configuration settings (e.g., a priority list of devices to be contacted based on determined proximity between devices). In some embodiments, server device 508 may be used to route messages from the residential environment to other associated devices currently outside the residential environment / to the residential environment from these other associated devices.
[0076] In some implementations, dwell device 504 may correspond to any one or more dwell devices described herein. For example, dwell device 504 may correspond to Figure 4 One or more dwelling devices are present in the dwelling environment 402. Each dwelling device 504 can be any suitable computing device (e.g., mobile phone, tablet, smart speaker device, smart media player communicatively connected to a TV, etc.). In some embodiments, the dwelling devices may be located in a specific location (e.g., area) within the dwelling environment.
[0077] In some embodiments, one or more networks 510 may include a WAN (e.g., the Internet) and / or a LAN. As described herein, a residential environment may be associated with a LAN, where devices within the residential environment can communicate with each other via the LAN. As described herein, a WAN may be outside the residential environment. For example, a router associated with a LAN (and therefore with the residential environment) may enable traffic from the LAN to the WAN, and vice versa. In some embodiments, server device 508 may be outside the residential environment and therefore communicate with other devices via the WAN. In some embodiments, resident device 504 may typically reside within the residential environment and communicate with other devices in the residential environment via the LAN. In some embodiments, user equipment 502 may be transient. For example, as described herein, user equipment may be within the residential environment (e.g., and communicate via a LAN), while in another example, user equipment may be outside the residential environment and communicate via the Internet (or other suitable network).
[0078] As described herein, resident device 506 may represent one or more resident devices in resident device 504. In some embodiments, one or more features of resident device 506 may also be implemented by one or more user devices in server device 508 and / or user device 502. Resident device 506 has at least one memory 520, one or more processing units (or processors) 536, storage unit 538, communication interface 540, and input / output (I / O) device 542.
[0079] Turning further to each element of resident device 506 in more detail, processor 536 may be implemented, as appropriate, in hardware, computer-executable instructions, firmware, or a combination thereof. The specific implementation of the computer-executable instructions or firmware of processor 536 may include computer-executable instructions or machine-executable instructions written in any suitable programming language to perform the various functions described.
[0080] Memory 520 may store program instructions that can be loaded and executed on processor 536, as well as data generated during the execution of these programs. Depending on the configuration and type of resident device 506, memory 520 may be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM), flash memory, etc.). In some implementations, memory 520 may include various types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM. Resident device 506 may also include additional storage devices 538, such as removable or non-removable storage devices, including but not limited to magnetic storage devices, optical disc and / or magnetic tape storage devices. Disk drives and their associated computer-readable media may provide non-volatile storage devices for computer-readable instructions, data structures, program modules, and other data to the computing device. In some implementations, storage device 538 may be used to store data content received from one or more other devices (e.g., server device 508, other resident device 504, and / or user device 502). For example, storage device 538 may store user profiles associated with the residential environment. Storage device 538 may also store configuration settings, such as instructions for transmitting announcements to devices associated with the residential environment.
[0081] The residing device 506 may also include a communication interface 540 that allows the residing device 506 to communicate with a storage database, another computing device or server, user terminals, and / or other devices on the network 510. The residing device 506 may also include an I / O device 542 for connecting to a keyboard, mouse, pen, voice input device, touch input device, display, speaker, printer, etc. In some embodiments, the I / O device 542 may be used to output information related to announcements and / or notifications. This may include, but is not limited to, lights that illuminate in a specific manner (e.g., a specific color, flashing, etc.) when an announcement arrives, and audio, video, and / or text presented when an announcement arrives.
[0082] Turning more specifically to the contents of memory 520, memory 520 may include operating system 522 and one or more applications or services for implementing the features disclosed herein, including communication module 524, message analysis module 526, device identification module 528, presentation module 530, device location analysis module 532, and encryption / decryption module 534. In some embodiments, any one or more of the applications or services residing on device 506 (or any other features of the residing device described herein) may be used to implement Figure 1 The instant messaging service 130.
[0083] Communication module 524 may include code that enables processor 536 to generate messages, forward messages, reformat messages, and / or otherwise communicate with other entities. For example, as described herein, communication module 524 may transmit messages to and / or receive messages from other user equipment 502, other resident equipment 504, and / or server equipment 508. As described herein, communication module 524 may transmit messages via one or more network paths of network 510 (e.g., via a LAN and / or WAN associated with a residential environment).
[0084] The message analysis module 526 may include code that enables the processor 536 to receive and process a message including an announcement associated with the spoken announcement. In some embodiments, one or more operations of the message analysis module 526 may be similar to those described in the reference. Figure 2 The operations described in box 202. For example, message analysis module 526 can obtain an announced record from a message by using concatenated data to concatenate the original record. Message analysis module 526 can also determine from the message, for example, the sender's identity, the sender's location, and other appropriate information.
[0085] Device identification module 528 may include codes that enable processor 536 to identify one or more devices for receiving announcements. In some embodiments, one or more operations of device identification module 528 may be similar to those described in the references. Figure 2The operations described in box 204. For example, device identification module 528 may (e.g., from storage device 538) retrieve one or more user profiles and identify one or more devices associated with each user profile. In another example, device identification module 528 may further identify one or more candidate receiving devices based on device location and / or proximity data, as described below with respect to device location analysis module 532. In some embodiments, device identification module 528 may determine one or more user types associated with a residential environment (e.g., user accounts), such as administrator type, shared user type, etc. In some embodiments, user types may be associated with a specific profile that indicates a set of rules associated with receiving and / or transmitting messages from devices associated with a specific user type. As described herein, rules may indicate, for example, one or more privacy and / or security constraints. In one example, a device associated with a shared user type may be able to receive messages when located within a residential environment but may not receive announcements when located outside a residential environment. In another example, a device associated with a shared user type may be able to transmit announcements to other devices in the residential environment when located within a residential environment but may not transmit announcements to other devices when located outside a residential environment. In another example, a relay message including an announcement associated with an administrator-type account may be formatted to include a PII indicating the administrator user's identity (e.g., mom, dad, etc.), while a shared user-type account may not include a PII associated with the sender. In some implementations, the device identification module 528 may also identify one or more recipient user accounts (and / or associated devices) in part based on determining the sender user account (and / or sender user account type). It should be understood that any suitable rules can be used to determine the format of one or more devices for receiving relay messages and / or determining messages, including but not limited to sender account type, sender device type, sender account user identity, recipient user account type, recipient account user identity, recipient device type or location, etc.
[0086] The presentation module 530 may include code that causes the processor 536 to present the announcement. In some embodiments, the presentation of the announcement may resemble, as shown in the reference... Figure 3 As described herein. In some embodiments, the presentation of the announcement may be partly based on the type of the receiving device (e.g., mobile phone, smartwatch, smart speaker, etc.). In some embodiments, the announcement may also accompany the notification. In some embodiments, as described herein, the notification and / or announcement may be presented (or blocked) partly based on settings stored on the residing device 506 (and / or the receiving device's settings).
[0087] The device location analysis module 532 may include code that enables the processor 536 to determine the location of a specific device. In some embodiments, one or more operations of the device location analysis module 532 may be similar to those described in the reference. Figure 4 The operations described herein. For example, the device location analysis module 532 may receive location information from one or more user devices 502 and / or resident devices 504, which is used to determine the location of each device.
[0088] The encryption / decryption module 534 may include code that causes the processor 536 to encrypt and / or decrypt messages. For example, the encryption / decryption module 534 may transmit, in a message sent to server device 508, an announced encrypted record (e.g., received via a microphone of resident device 506). In one example, server device 508 may not have access to a cryptographic key operable for decrypting the encrypted message. Server device 508 may route the message to an appropriate receiving device that may be able to access (e.g., share with one or more devices associated with the residential environment) a cryptographic key and use the key to decrypt the record. Suitable data encryption algorithms may include DES, triple DES, AES, etc. In some implementations, server device 508 may also store cryptographic keys that can be used with such encryption algorithms. The encryption / decryption module 534 may utilize symmetric or asymmetric encryption techniques to encrypt and / or verify data.
[0089] Figure 6 This is a simplified flowchart illustrating an exemplary process 600 for transmitting a message to one or more devices to present an announcement, according to some embodiments. In some embodiments, process 600 ( Figure 7 The process 700 Figure 9 Process 900 and / or Figure 11Process 600 (process 1100) may be executed by a resident device, which may correspond to any one or more resident devices described herein. In some embodiments, process 600 (process 700, process 900, and / or process 1100) may also (or alternatively) be executed by a server device or a user device, which may correspond to either of the server devices or user devices described herein. In some embodiments, process 600 (process 700, process 900, and / or process 1100) may be executed in the context of a residential environment (and / or devices associated with a residential environment). Processes 600, 700, 900, and 1100 (described below) are each shown as logic flowcharts, each operation of which represents a series of operations that can be implemented by hardware, computer instructions, or combinations thereof. In the context of computer instructions, an operation represents computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the operation. Generally speaking, computer-executable instructions include routines, programs, objects, components, data structures, etc., that perform specific functions or implement specific data types. The order of operations described is not intended to be construed as limiting, and any number of the operations can be combined in any order and / or in parallel to implement the process.
[0090] Furthermore, some, any, or all of these processes can be executed under the control of one or more computer systems configured to have executable instructions, and can be implemented as code (e.g., executable instructions, one or more computer programs, or one or more application programs) that executes on one or more processors, by hardware, or a combination thereof. As described above, the code can be stored on a computer-readable storage medium, for example, in the form of a computer program comprising multiple instructions executable by one or more processors. The computer-readable storage medium is non-transitory.
[0091] At block 602, a dwelling device (e.g., in a residential environment) may receive a first message including an announcement. In some embodiments, the first message may include an audio recording, wherein the audio recording includes an announcement associated with the spoken words of the announcement. In some embodiments, one or more operations of block 602 may be similar to those described in the reference. Figure 2 Box 202 describes one or more operations.
[0092] At box 604, the resident device may determine the announcement from the first message. In some embodiments, the resident device may determine the announcement by utilizing an NLP model trained to analyze the recordings, as described herein. In some embodiments, the NLP model may be executed locally by the resident device. In some embodiments, the recordings may be transferred to a server device for executing the NLP model (e.g., Figure 5 (Server device 508). In some implementations, an NLP model can be used to determine splicing data that indicates the start and end points of the announcement within a record. The resident device can utilize the splicing data to splice the record to obtain the announcement.
[0093] At block 606, the residing device may identify one or more devices for receiving announcements, wherein the one or more devices are associated with the residing device and each has a specific device type. In some embodiments, one or more operations in the operation of block 606 may be similar to one or more operations described with reference to block 204. In some embodiments, the residing device may maintain one or more user profiles, each associated with a residential environment. Each user profile may be further associated with one or more devices (e.g., user devices and / or residing devices). The residing device may identify one or more devices for receiving announcements based on devices identified according to user profiles maintained (e.g., stored and / or retrieved) by the residing device. In some embodiments, each of the one or more devices may have a specific device type among a variety of different device types (e.g., mobile device type, residing device type, etc.).
[0094] At block 608, the resident device may transmit a second message to the one or more devices for presentation by the one or more devices respectively. In some embodiments, one or more operations in the operation of block 608 may be similar to one or more operations described with reference to block 206. In some embodiments, the network path for transmitting the second message to a particular device may depend in part on the location of the particular path. For example, the resident device may transmit the second message to a device located within the residential environment via a LAN associated with the residential environment. The resident device may also transmit the second message to a device associated with the residential environment that is currently located away from the residential environment via a WAN (e.g., the Internet).
[0095] Figure 7 This is another simplified flowchart illustrating an exemplary process for transmitting a message containing an announcement to a specific user device so that the announcement is presented on the specific user device. In some embodiments, one or more operations of process 700 may be similar to those described in the reference. Figure 4 The aforementioned operations.
[0096] At block 702, the residing device may receive a first message including an announcement, wherein the first message indicates a recipient user account for receiving the announcement. In some embodiments, one or more operations in the operation of block 702 may be similar to one or more operations described with reference to block 602. In block 702, the first message may also indicate a recipient user account, for example, based on elements within the announced record (e.g., a trigger mechanism). For example, an announcement “Son, come to the kitchen” may be identified as a “son” intended to be associated with the residential environment. The son may be associated with a user account in the residential environment (e.g., a user profile), wherein the user profile may indicate one or more devices associated with the son. In some embodiments, the first message may include other suitable information that can be used to identify the announced recipient and / or recipient device. For example, this information may indicate an intended location (e.g., area) within the residence, such as a specific room.
[0097] At block 704, the resident device can receive an announcement from the first message. In some embodiments, one or more operations in the operation of block 704 may be similar to one or more operations described with reference to block 604.
[0098] At block 706, the resident device can obtain the recipient user account associated with the first message, wherein the recipient user account is associated with one or more devices. In some embodiments, one or more operations in the operation of block 706 may be similar to one or more operations described with reference to block 606.
[0099] At box 708, the residing device may identify a specific user device among one or more devices associated with a recipient user account. In some embodiments, the residing device may identify the specific user device based on one or more factors. For example, the residing device may store instructions indicating a priority order for transmitting announcement messages to devices associated with the specific user account. In some embodiments, the priority order may indicate which device should be selected to receive the announcement based on which one or more devices associated with the user account are adjacent to each other. In some embodiments, specific location data of the devices may be associated with a confidence level. The confidence level may be one of the variables considered when determining whether devices are adjacent to each other and / or which device should be selected. For example, the residing device may detect the corresponding locations of the specific user device and a second user device among one or more devices associated with the recipient user account. The residing device may further detect that the second user device (e.g., a smartwatch) among one or more devices associated with the recipient user account is adjacent to the specific user device (e.g., a mobile phone) (e.g., in its vicinity, within its predefined distance threshold). The residing device can identify a mobile phone used to transmit announcements (e.g., with higher priority) and determine not to transmit the announcement to a smartwatch (e.g., to avoid overwhelming the user with notifications). In some implementations, the residing device can identify another residing device associated with the recipient user's account for receiving announcements. For example, the first message indicates a specific area (e.g., a room within a residence) for the transmitting device. In this example, the residing device can identify a smart speaker device in the recipient user's bedroom for transmitting announcements. As described herein, it should be understood that any suitable selection and / or combination of residing devices can be used to receive announcements and / or notifications.
[0100] At block 710, the resident device may transmit a second message to a specific user equipment for presentation by that specific user equipment. In some embodiments, one or more operations in the operation of block 710 may be similar to one or more operations described with reference to block 608.
[0101] Figure 8 This is another simplified flowchart illustrating an exemplary process for transmitting a message to one or more devices according to some embodiments. Process 800 is for a system (e.g., a resident device 807, which may be similar to) transmitting (e.g., relaying) a message including an announcement to one or more devices to present the announcement. Figure 1 An exemplary advanced process for the resident device 108. Similar to, see reference... Figure 2 As described, this process can be similar to Figure 1The process 101 is performed within the context of a residential environment (and / or devices associated with that residential environment). Figure 801 depicts an exemplary state corresponding to a block of process 800. Figure 801 may include similar elements to reference 101. Figure 1 The components of those components are described. For example, user 803 may be similar to... Figure 1 User 114 (e.g., outside a residential environment), user equipment 808 may be similar to user equipment 124, and user equipment 821 may be similar to... Figure 1 User equipment 120 and user equipment 823 may be similar to user equipment 122. In this example, user equipment 825 may correspond to another user equipment outside the residential environment. Furthermore, network 817 may include a LAN associated with the residential environment. Network 817 may also include a WAN (e.g., the Internet).
[0102] Turning further to process 800, at block 802, the system (e.g., resident device 807) may receive a first message including an announcement intended for the residential environment. For example, similar to that described herein, an announcement may be associated with uttering the voice of the announcement. Using illustration 801 for example, user 803 (e.g., a father) may want to announce to other members of the residential environment that dinner is ready. User 803 utters voice message 805: “Computer, announce I’m coming home.” User device 808 may receive voice message 805 as input, for example, via a microphone attached to user device 808, and then record and / or process voice message 805. In one example, user device 808 may then analyze voice message 805 (e.g., including performing NLP and / or other suitable voice recording processing operations) and then transmit a first message containing the processed voice message 805 to the system (e.g., resident device 807), whereby the system may then analyze the recorded message to determine (e.g., obtain) the announcement. In this example, user device 808 transmits the message from outside the residential environment. Therefore, in one example, the first message from user equipment 808 can be sent via a server device (e.g., Figure 5 The server device 508 transmits the first message to the resident device 807 via the WAN. The server device can relay the first message to the resident device 807 located within a LAN associated with the residential environment (e.g., connected to the LAN).
[0103] At box 804, the system can verify that the user type of the user who made the announcement is authorized to transmit the announcement to the residential environment. For example, continuing with Figure 801 for illustration, upon receiving a first message, the resident device 807 can analyze the first message to determine one or more elements. This can include, for example, performing NLP on the voice message 805 (e.g., obtained from the first message) to: determine the device identifier of the user device 808 that originally sent the message, determine the location of the user device 808 (e.g., outside the residential environment), determine the associated sender user type of the user account transmitting the announcement (e.g., an application running on user device 808), determine (e.g., confirm) the sender user identity, etc. The resident device 807 can then use one or more elements to verify that the user type of the user who made the announcement (e.g., user 803) is authorized to use the resident device 807 to relay the announcement to other devices in the residential environment.
[0104] In some implementations, the resident device 807 can perform verification by retrieving user account information associated with one or more user accounts (e.g., associated with the residential environment) from a table 827. For example, table 827 might indicate that the username 809 for the father's account is "Dad," the user identifier is "123ABC," and the user account type (e.g., user type) is "Administrator." Similarly, the username 811 for the mother's account could be "Mama," where the user type is "Administrator," the username 813 for the temporary babysitter's account could be "Temporary Babysitter," where the user type is "Shared User," and similarly, for the username 815 for the son's account, the user type could be "Shared User." Continuing this example, the resident device 807 can (e.g., perform NLP based on the metadata of voice message 805 and / or from the first message) determine that the announcement originated from the father and is therefore associated with the father's account type "Administrator." In this example, the resident device 807 can determine that the user account type "Administrator" is authorized to transmit announcements from outside the residential environment (e.g., via a WAN) to other devices within the residential environment. In this example, a "shared user" type may not be authorized to transmit announcements from outside the residential environment to the residential environment, but may be able to do so when inside the residential environment (e.g., connected to a LAN). Therefore, because the announcement is associated with Dad's account (e.g., Dad's voice and / or Dad's device), the resident device 807 may authorize broadcasting the message to other devices in the residential environment. In another example, if user 803 is a temporary caretaker (e.g., making an announcement from outside the residence as a shared user), the resident device 807 may block the broadcast announcement. In at least this way, the technology can improve security when relaying messages to devices in the residential environment.
[0105] Although this example performs verification on messages arriving from outside the residential environment, the implementation is not limited to this. For example, in another scenario, suppose a temporary caregiver transmits an announcement from within the residential environment (e.g., via their mobile phone device). In this example, the resident device 807 may first verify (e.g., with username 813) that the temporary caregiver is a shared user of the residential environment, and / or verify that a specific device is registered with username 813. This can be used to prevent other devices that can connect to the residential WiFi but do not otherwise contact the residential environment (e.g., have a registered account) from broadcasting announcements to the residential environment. In this example, upon verifying that the temporary caregiver has a registered account as a shared user and that the device is currently transmitting an announcement from within the residential environment, the resident device 807 may successfully verify that the temporary caregiver's device is authorized to transmit the announcement to the residential environment.
[0106] At box 806, the system may transmit a second message to one or more devices for presentation, the second message being formatted based on user type. Continuing the above example, upon verifying that a user type is authorized to transmit an announcement, the resident device 807 may determine one or more devices associated with the residential environment that will receive the announcement. As described herein, the resident device 807 may utilize any suitable method to determine which user types, user accounts, and / or devices will receive the announcement. For example, the resident device 807 may determine that a specific user type (e.g., "administrator") will receive the announcement. In another example, the resident device 807 may determine that a subset of user accounts associated with the residential environment (e.g., and / or devices associated with a subset of user accounts) will receive the message. In another example, the resident device 807 may determine that only those devices located within the residential environment (e.g., those with user accounts registered with the residential environment and / or currently connected to a LAN of the residential environment) will receive the message. In this example, the resident device 807 determines that all devices located within the residential environment (e.g., those with...) will receive the message. Figure 1 User equipment 821 and user equipment 823 (associated with user 112) will receive the second message (e.g., via LAN), while user equipment 825 (located outside the residential environment, communicating via WAN) will not receive the second message. In another example, both types of devices located inside and outside the residential environment (e.g., including user equipment 821, user equipment 823, and user equipment 825) will receive the second message.
[0107] In some implementations, the resident device 807 then generates a second message formatted based on the user type of the sender's account. For example, using the previous example where Dad announces he's coming home, the resident device 807 may generate a second message formatted based on determining that the "administrator" user type is transmitting the announcement. In some implementations, the formatting may be associated with the timing and / or manner in which the receiving device processes the message. For example, in some implementations, the formatting may indicate whether a PII associated with the sender's user account is included and / or presented by the receiving user device. In this case, the resident device 807 may determine that because the user type is "administrator," the PII (e.g., Dad's name, image, avatar, etc.) may be included in the second message and / or presented by the receiving device via a display (e.g., as referenced). Figure 3 (As described). In Figure 8 The text describes a scenario where, in addition to each user device displaying "I'm going home," the corresponding user device may also display an image of the father (819). In another example, where the sender can be of the "shared user" type (e.g., a temporary babysitter), the resident device (807) can determine to omit the PII associated with uttering the announcement (e.g., the sender). It should be understood that the second message can be formatted in any suitable manner and / or include rules that can be used to determine how and / or when the message is presented on a particular device. In some implementations, formatting may be associated with, for example, privacy controls, instructions for which elements are presented on the user device's display, rules (e.g., conditions) for displaying or blocking the announcement.
[0108] Figure 9 This is another simplified flowchart illustrating an exemplary process for transmitting messages to one or more devices according to some implementation schemes. Figure 9 In process 900, the resident device can verify that a specific user type is authorized to use the resident device as a relay device to transmit announcements to other devices in the residential environment. The announcement may be formatted in part based on the specific user type (e.g., including or excluding the sender's account's PII).
[0109] At box 902, a dwelling device associated with the residential environment receives a first message including an announcement, which is associated with uttering the announcement. In some embodiments, one or more operations of box 902 may be similar to those described in reference [reference needed]. Figure 8 As described in box 802. For example, the resident device may obtain a voice recording from a first message, including the announcement. The first message may have been transmitted from any suitable device (e.g., user equipment or resident device). Moreover, the first message may originate from any suitable location, for example, outside the residential environment (e.g., via a WAN) or from within the residential environment (e.g., via a LAN associated with the residential environment).
[0110] At box 904, the residing device determines that the spoken announcement is associated with a specific user type in a residential environment. In some embodiments, one or more operations of box 904 may be similar to those described in reference [reference needed]. Figure 8 As described in box 804. For example, a particular user type (e.g., user account type) may be one of several user types associated with a residential environment. This may include, for example, an administrator type and / or a shared user type. The residing device may analyze the first message, including the announcement (e.g., a voice recording), to obtain any suitable information, such as the identity information of the user who made the announcement. Based on this information, the residing device may determine the particular user type associated with the person's identity. For example, using a previous instance where the residing device determines that "Dad" made the announcement, the residing device may further determine that Dad is associated with the administrator type of the residential environment. It should be understood that the particular user type of the sender user account and / or the identity of the sender user account can then be used to determine the instructions used for relaying the announcement.
[0111] At box 906, the resident device verifies that a specific user type is authorized and will announce the transmission to the device associated with the residential environment. In some implementations, one or more operations of box 906 may be similar to those described in reference [reference needed]. Figure 8 As described in box 804. In some implementations, the residing device may also perform authentication in part based on the determined location of the sending device. Using the above example, suppose Dad is outside the residential environment. The residing device may determine that because Dad is associated with an administrator account type, Dad is authorized to send announcements to other devices in the residential environment. In another example, if a temporary babysitter (e.g., a shared user type) wants to attempt to send an announcement while outside the residential environment, the residing device may prevent (e.g., block) the message from being relayed to other devices. In some implementations, the residing device may perform authentication in part based on determining that the sender's voice is associated with a specific user account in the residential environment (e.g., Dad's user account, Mom's user account, etc.). The techniques described herein may perform any suitable procedures and / or combinations of procedures (e.g., rule verification) to perform authentication (e.g., based on time of day, device location, etc.) when relaying messages. In some implementations, this authentication may improve the security and / or privacy associated with the residential environment and / or associated devices. For example, a device may not receive unwanted announcements.
[0112] At box 908, the residing device determines that it will receive one or more devices announced in connection with the residential environment. In some embodiments, the operation of one or more devices at box 906 may be similar to that described in reference [reference needed]. Figure 8As described in box 806. For example, in one embodiment, the residing device may determine one or more receiver user accounts based on a specific sender user type. For example, suppose the sender corresponds to a user account of a temporary caregiver, which is associated with a shared user type (e.g., such as...). Figure 8 (As depicted in Table 827). In this example, the residing device may determine that the receiving user account will be an administrator (e.g., the mother's account and the father's account, as depicted in Table 827). The residing device may then determine one or more devices associated with the respective receiving user account. In some implementations, the residing device may determine one or more devices based on the identity of the sending user account. For example, the residing device may determine that messages from the temporary nanny user account (e.g., a shared user type) can be relayed to a set of user accounts (and / or devices), while messages from the butler's user account (e.g., also a shared user type) can be routed to a different set of user accounts (and / or devices).
[0113] At block 910, the resident device generates a second message, which is formatted at least in part based on a specific user type. In some embodiments, one or more operations of block 906 may be similar to those described in the reference. Figure 8 As described in box 806. For example, in some embodiments, the residing device may include or omit personally identifiable information associated with the spoken (e.g., uttered) voice of the announcement, in part based on the specific user type of the user account of the person making the announcement (e.g., shared user, administrator, etc.). As described herein, this can enhance privacy controls based on the user account and / or user type of the person sending the message. In some embodiments, the format of the second message may include any suitable information, such as rules for presenting the announcement, information about the sender's device and / or the sending area, etc.
[0114] At block 912, the resident device transmits a second message to one or more devices to present the announcement based at least in part on the format of the second message. In some embodiments, the operation of one or more devices at block 912 may be similar to that described in reference [reference]. Figure 8 box 806 or Figure 2 As described in box 206. For example, suppose the format of the second message includes the PII of the user's account that is being announced. In this example, the receiving device may present the PII of the user's account (e.g., the user's image or avatar) based on the format of the second message.
[0115] Figure 10 This is another block diagram illustrating exemplary techniques for transmitting messages to one or more devices according to some embodiments. Several elements are depicted in Figure 1000. For example, residential environment room A 1002 and residential environment room B 1022 may be the same residential environment (e.g., similar to...). Figure 1 A room within residential environment 101. User 1004 may reside in room A 1002 of the residential environment. User 1004 (e.g., a temporary caregiver) may be associated with user device 1008 (e.g., a mobile phone), wherein user device 1008 and / or the temporary caregiver's user account are registered with the residential environment. It should be understood that... Figure 10 Any one or more of the devices described herein (e.g., user devices and / or resident devices) may be associated with the residential environment (e.g., registered with the residential environment) (e.g., via association with a specific user account and / or with the residential environment). Residential environment room A 1002 may include resident device 1010, which may be closer to user 1004 than resident device 1012 (also located in residential environment room A 1002). Resident device 1010 (and / or another suitable resident device in the residence capable of operating as a relay center device) maintains table 1001. Table 1001 may include information associated with user accounts and / or user devices associated with (e.g., registered with the residential environment). For example, table 1001 may indicate that the user identifier for a temporary caregiver's account is "ABC123" and that the temporary caregiver's account is a shared user type. As further described herein, table 1001 may be used by resident device 1010 to determine how to relay messages among user accounts and / or associated devices in the residential environment.
[0116] Residential environment room B 1022 may include user 1027 (e.g., mother). User 1027 may be associated with user ID “456DEF” in Table 1001, where the user account is of the administrator type. User 1027 may be associated with user device 1026 (e.g., smartwatch) registered with the residential environment and associated with the mother's user account. Residential environment room B 1002 may also include resident device 1024, which is also registered with the residential environment.
[0117] Figure 1000 also depicts a workplace facility 1016 outside a residential environment. The workplace facility includes a room depicting a user 1019 (e.g., a father) holding a meeting with another person. The user 1019 may carry a user device 1018 (e.g., a mobile phone) and may also wear a smartwatch (e.g., user device 1020).
[0118] Additionally, vehicle 1014 is depicted in Figure 1000. The vehicle may also be outside the residential environment and en route to another destination (e.g., the residence or another location). Vehicle 1014 may include a computing device registered as a device associated with the son of the mother and father. The son (e.g., having a user ID "DEF456") may be registered as a shared user type.
[0119] In some implementations, devices associated with a residential environment may be communicatively connected via network 1013. As described herein, network 1013 may include any suitable one or more subnetworks (e.g., a LAN associated with the residential environment, and / or a WAN (e.g., the Internet)). For example, a message delivered by user equipment 1008 to stationary device 1024 (e.g., both located within the residential environment) may be delivered via the LAN, while another message delivered by user equipment 1008 to vehicle 1014 may be delivered via both the LAN and the WAN. For example, a message may be delivered by user equipment 1008 to stationary device 1010, and then stationary device 1010 may relay the message to vehicle 1014 via the Internet. In some implementations, stationary device 1010 may determine whether to relay a message in part based on determining (e.g., via the LAN of the residential environment, or via the Internet) the specific network path from which it received the initial message.
[0120] Turning further to the exemplary technology of Figure 1000, consider a scenario where a user 1004 (e.g., a temporary babysitter) speaks message 1006 to a resident device 1010: “Computer, announce that the baby has fallen asleep.” In this scenario, the resident device 1010 may determine how to process the message based on one or more rules.
[0121] In some implementations, the resident device 1010 may include rules for determining how to process messages based on the sender's user type. For example, a rule might instruct that messages from a shared user type will only be sent to an administrator user account type. In the example of Figure 1000, where the temporary babysitter account is a shared user type, message 1006 could be transmitted to one or more devices associated with Mom and Dad (e.g., both administrator accounts).
[0122] In some implementations, the resident device 1010 may include rules for determining how messages are processed based on identifiers of the sender's user account. For example, Table 1001 may indicate destination rule 932: messages sent from user ID "ABC 123" (e.g., the temporary nanny's account) will be automatically routed to the mother and father's accounts (e.g., devices associated with the mother and father's accounts). In another example, destination rule 928 may indicate: messages sent from the father's account will be routed to all user accounts in the residential environment. Similarly, destination rule 930 may route messages from the mother to all user accounts, and destination rule 934 may route messages from the son to all user accounts. Note that although the son and the temporary nanny are both shared user types in this example, the corresponding destination rules may differ based on the specific user account identifier. Therefore, in the above example, based on destination rule 932 with a specific sender user identifier, messages from the temporary nanny (e.g., user 1004) may be routed to the mother and father's user accounts.
[0123] In another example, the resident device 1010 may determine how to relay messages in part based on the device's location and / or the type of the recipient user account. For example, suppose a rule might indicate that a shared user may transmit (and / or receive) announcements when in a residential environment, but not when outside the residential environment. In the example above, based at least in part on the fact that the verification message 1006 was sent from a residential environment (e.g., where the resident device 1010 receives the message), user 1004 (e.g., a shared user type) may be verified to transmit the announcement of that message. Furthermore, the accounts of Mom and Dad (e.g., administrators) may receive relayed messages. In another example, where user 1004 is the son and vehicle 1014 is associated with the temporary babysitter, although destination rule 934 may indicate that messages can be relayed to all user accounts, the resident device 1010 may determine that because the temporary babysitter account is a shared user type, the resident device 1010 will not relay messages to the device (e.g., vehicle 1014) associated with the temporary babysitter's account as long as the device is located outside the residential environment (e.g., not connected to the residential environment's LAN).
[0124] As described herein, in some implementations, the receiving device may determine how to process a relayed message based on verification of one or more conditions. In a non-limiting example, the receiving device may block the message if it determines that the device is associated with the same user account of the person who delivered the message. For example, using Figure 1000 for illustration, the resident device 1010 may determine to relay message 1006 to the temporary caregiver's user device 1008. However, user device 1008 may determine, based on the message's format (e.g., data indicating an identifier of the sender), to block the presentation of message 1006 based on the determination that user device 1008 is associated with the sender. It should be understood that the message may still optionally be received and / or stored by user device 1008, but the announced notification may not be presented on user device 1008's display. In another example, the device may present or block the message based on the proximity of the device to another device also associated with the residential environment. For example, residing device 1012 may determine that because it is adjacent to residing device 1010 and / or user device 1008 (e.g., in the same room), it will block (e.g., not present) the announcement on the speaker of residing device 1012, even though it can still receive and / or store message 1006 from residing device 1010. In some embodiments, residing device 1012 may determine to present the message, for example, if the determined distance between the devices is greater than a predefined threshold distance. In some embodiments, the device receiving (e.g., recording) a message from a sender (e.g., residing device 1010 in this case) may also block the presentation of the announcement. Consider another case in which both residing device 1010 and residing device 1012 receive the announcement (e.g., from residing device 1024). In this case, depending on the configuration of the residing devices in the same room (e.g., residential environment room A 1002), the devices may synchronize the presentation of the audio of the message (e.g., present stereo playback on the speaker of the residing device).
[0125] In some implementations, a receiving device associated with another receiving user account (e.g., in addition to the sender's user account) may determine whether to present or block a message based on one or more other conditions. For example, as described herein, the receiving device may determine whether to present a message based on proximity to one or more other devices. Using Figure 100 for illustration, both a resident device 1024 and a user device 1026 (e.g., a smartwatch associated with the mother's user account) may receive message 1006. However, in one example, user device 1026 may determine to block message presentation when it determines that the resident device is nearby. Thus, resident device 1024 may present message 1006 via the resident device's speaker, while the smartwatch may block the message. It should be understood that any suitable arrangement for message presentation and / or blocking may be performed by each device. For example, in another scenario, the smartwatch may present a pop-up notification on the watch's display but may not cause the watch to vibrate upon receiving the message.
[0126] In some implementations, a device may determine whether to block a message based on conditions corresponding to a specific type of activity currently associated with the recipient user's account. For example, as depicted in Figure 1000, user 1019 (e.g., the father) may currently be participating in a meeting. In one example, both user device 1018 and user device 1020 have access to the father's electronic calendar and can determine that a meeting is in progress. Therefore, both devices may block the presentation of the message (and / or message notifications) on their respective displays. In another example, a combination of conditions and / or rules may be used to determine when and / or how a message is presented. For example, user device 1018 and user device 1020 may be adjacent to each other. In this example, when adjacent to a mobile device (e.g., user device 1018), a smartwatch (e.g., user device 1020) may have higher priority to display message 1006. Therefore, when the meeting ends, the smartwatch may display a notification for message 1006, while the mobile device may store the message but not present any notification. It should be understood that any suitable rules and / or conditions may be used to determine how and when messages are presented or blocked. For example, the dwell device 1010 and / or the personal user device may store user preferences associated with the presentation of messages and / or notifications. An exemplary user preference could be to not present any notifications within a certain time frame (e.g., when the user is sleeping), which could correspond to a "Do Not Disturb" period. In at least these ways, the technology can provide a better user experience by promptly alerting the user to announcements about the residential environment without overwhelming the user with too many messages on one or more devices.
[0127] Figure 11 This is another simplified flowchart illustrating an exemplary process for transmitting messages to one or more devices according to some implementation schemes.
[0128] At box 1102, a dwelling device associated with the residential environment receives a first message including an announcement, which is associated with uttering the announcement. In some embodiments, one or more operations of box 1102 may be similar to those described in reference [reference needed]. Figure 9 As described in box 902.
[0129] At box 1104, the residing device determines that the announced voice is associated with a specific user account for a specific user type in a residential environment. In some embodiments, one or more operations of box 1104 may be similar to those described in reference [reference missing]. Figure 9 As described in box 904.
[0130] At box 1106, the resident device determines one or more recipient user accounts for receiving announcements based on a specific user account or a specific user type. For example, as referenced... Figure 10 As described, the resident device can determine that the purpose of a message transmitted from a user device associated with a shared user type (e.g., from an application running on the user device) may be a subset of user account types (e.g., administrator only type) and / or a subset of user accounts (e.g., user account identifiers for "Mom" and "Dad").
[0131] At box 1108, the residing device identifies one or more devices associated with the residential environment to receive messages. In some embodiments, the device among one or more devices is selected for receiving messages based on the device's location or the type of the corresponding recipient user account in one or more recipient user accounts. In some embodiments, one or more operations at box 1108 may be similar to those described in reference [reference missing]. Figure 10 As described. For example, if it is determined that the current location of a device is outside the residential environment (e.g., not available via a residential LAN), devices associated with a shared user type can be excluded from receiving messages. It should be understood that any suitable method can be used to determine the receiving device. For example, in some implementations, only residential-resident devices can receive announcements. In another example, only user devices with a certain hardware configuration can receive announcements. In yet another example, only devices located in one or more specific areas of a residence can receive announcements.
[0132] At block 1110, the resident device transmits a second message to one or more devices to present an announcement, wherein one of the one or more devices presents the second message based on verification of one or more conditions. In some embodiments, the operation of one or more devices at block 1110 may be similar to that described in the reference. Figure 10As described. One or more conditions may correspond to any suitable conditions, including, for example, the current location of the user device (e.g., within or outside a residential environment), the proximity of the user device to other user devices (and / or hosted devices), the time of day, the current activity associated with the user account on the user device, user preferences stored on the user device, etc.
[0133] Other preferred and non-limiting embodiments or aspects will be set forth in the following numbered clauses: Clause 1: A method comprising: receiving, by a residing device, a first message including an announcement, the announcement being associated with the voice of speaking the announcement, the first message indicating a receiving user account for receiving the announcement; obtaining, by the residing device, the announcement from the first message; obtaining, by the residing device, the receiving user account associated with the first message, the receiving user account being associated with one or more devices; identifying, by the residing device, a specific user device among the one or more devices associated with the receiving user account; and transmitting, by the residing device, a second message to the specific user device for presenting the announcement on the specific user device.
[0134] Clause 2: The method according to Clause 1 further includes: the residing device detecting that a second user device among the one or more devices associated with the recipient user account is adjacent to the specific user device; and the residing device selecting the specific user device to present the announcement instead of selecting the second user device, based at least in part on the respective locations of the specific user device and the second user device with respect to the user corresponding to the recipient user account.
[0135] Clause 3: The method according to any one of Clauses 1-2, wherein the particular user equipment and the dwelling equipment are located within a residential environment, and wherein the second message is transmitted to the particular user equipment via a local area network associated with the residential environment.
[0136] Clause 4: The method according to any one of Clauses 1-3, wherein the resident device is located in a residential environment and the particular user device is located outside the residential environment, and wherein the second message is transmitted to the particular user device via a server device outside the residential environment.
[0137] Clause 5: The method according to any one of Clauses 1-4, wherein the stationed device is located in a residential environment comprising one or more areas, a user associated with the particular user device is identified as being located in a particular area of the residential environment, and wherein the second message is transmitted to the particular user device at least in part based on being located in that particular area.
[0138] Clause 6: The method according to any one of Clauses 1-5, wherein the second user equipment is also located in the specific area of the residential environment.
[0139] Clause 7: A method comprising: receiving, by a dwelling device associated with a residential environment, a first message including an announcement, the announcement being associated with a voice uttering the announcement; determining, by the dwelling device, that the voice uttering the announcement is associated with a specific user type of the residential environment; verifying, by the dwelling device, that the specific user type is authorized to transmit the announcement to a device associated with the residential environment; determining, by the dwelling device, one or more devices associated with the residential environment that will receive the announcement; generating, by the dwelling device, a second message, the second message being formatted at least in part based on the specific user type; and transmitting, by the dwelling device, the second message to the one or more devices to present the announcement at least in part based on the format of the second message.
[0140] Clause 8: The method described in Clause 7, wherein the particular user type is one of a plurality of user types associated with the residential environment, the plurality of user types including at least one of: (I) an administrator type, or (II) a shared user type.
[0141] Clause 9: The method according to any one of Clauses 7-8, wherein the first message is received from a user equipment that cannot access address data associated with the one or more devices respectively.
[0142] Clause 10: The method according to any one of Clauses 7-9, wherein the first message is received from a user device located outside the residential environment and associated with the particular user type, and wherein the particular user type and / or the user device is authorized to announce transmission to the one or more devices from outside the residential environment.
[0143] Clause 11: The method according to any one of Clauses 7-10, wherein the user equipment in the one or more devices is located outside the residential environment, and wherein the user equipment is associated with a second specific user type authorized to receive messages when located outside the residential environment.
[0144] Clause 12: The method according to any one of Clauses 7-11, wherein the particular user type corresponds to a shared user type, and wherein the second message is formatted to omit personally identifiable information (PII) associated with the voice that made the announcement.
[0145] Clause 13: The method according to any one of Clauses 7-12, wherein the particular user type corresponds to an administrator type, and wherein the second message is formatted to include personally identifiable information (PII) associated with the voice that made the announcement.
[0146] Clause 14: The method according to any one of Clauses 7-13, wherein the dwelling device is located in a first room of the residential environment, and wherein a second dwelling device of the residential environment prevents the presentation of the announcement at least in part based on also being located in the first room.
[0147] Clause 15: The method according to any one of Clauses 7-14, wherein the announcement is made to the dwelling device, and wherein the dwelling device prevents the announcement from being presented via the dwelling device.
[0148] Clause 16: The method according to any one of Clauses 7-15, wherein the voice that makes the announcement is associated with a specific user account of a specific user type, wherein the specific user account is associated with multiple user devices, and wherein the multiple user devices respectively block the presentation of the announcement.
[0149] Clause 17: The method according to any one of Clauses 7-16 further includes: determining, by the residing device, at least in part based on the particular user type, one or more recipient user accounts respectively associated with the residential environment, wherein the device in the one or more devices is associated with one of the one or more recipient user accounts.
[0150] Clause 18: The method described in Clause 17 further includes: determining, by the residing device, a sender user account of the particular user type associated with the voice that made the announcement; and determining, by the residing device, the one or more receiver user accounts based at least in part on the sender user account.
[0151] Clause 19: The method according to any one of Clauses 7-18, wherein determining the one or more devices further comprises: determining by the resident device a recipient user account associated with the residential environment; determining by the resident device a user device associated with the recipient user account; and determining by the resident device, at least in part, that the user device and the particular user account are authorized to receive the announcement based on at least one of: (I) the location of the user device, or (II) the type of the recipient user account.
[0152] Clause 20: The method described in Clause 19, wherein the user equipment prevents the presentation of the announcement based at least in part on the determination that the second device is adjacent to the user equipment.
[0153] Clause 21: The method described in Clause 20, wherein the second device corresponds to another resident device or another user device associated with the recipient user account.
[0154] Clause 22: The method described in Clause 19, wherein the user equipment presents the announcement based at least in part on detecting a specific type of activity currently associated with the recipient user account.
[0155] Clause 23: The method described in Clause 19, wherein the user equipment blocks the announcement at least in part based on detecting a specific type of activity currently associated with the recipient user account, until later.
[0156] Clause 24: The method according to any one of Clauses 7-23, wherein one of the one or more devices is associated with a specific area of the residential environment, and wherein the specific area is selected by the residing device for receiving the second message based at least in part on at least one of: (I) the specific user type, or (II) the sender user account associated with the voice that made the announcement.
[0157] Clause 25: The method according to any one of Clauses 7-24 further comprises: receiving a response message from one of the one or more devices by the dwelling device, wherein at least one device associated with the voice that made the announcement is adjacent to the dwelling device and also associated with the residential environment; and presenting the response message by the dwelling device, wherein the at least one device prevents the presentation of the response message.
[0158] Clause 26: The method according to any one of Clauses 7-25, wherein the resident device is further associated with a local area network (LAN) associated with the residential environment, and wherein determining the device among the one or more devices further includes determining that the device is at least one of: (I) connected to the LAN, or (II) authorized to receive the announcement when not connected to the LAN.
[0159] Clause 27: The method according to any one of Clauses 7-26, wherein the first message is received from a user equipment located outside the local area network, the user equipment being associated with the particular user type, and wherein verifying the particular user type further includes: determining that the particular user type is authorized to transmit the announcement to a device associated with the residential environment when located outside the local area network.
[0160] Other embodiments of this disclosure may be directed to a computer system comprising: a memory storing computer-executable instructions; and one or more processors configured to access the memory and execute the computer-executable instructions to implement the method according to any one of claims 1-27.
[0161] Other embodiments of this disclosure may be directed to a computer-readable medium storing computer-executable instructions for controlling one or more processors to perform the method according to any one of clauses 1-27.
[0162] The foregoing describes exemplary techniques for transmitting messages, including announcements, to one or more devices to present the announcement. Some or all of these techniques may be at least partially implemented through architectures such as those described above. Figures 1-11 The architectures shown herein can be used to implement, but are not required to implement, the techniques disclosed herein. While numerous implementations have been described above with reference to server devices, controller devices (e.g., resident devices), and user devices, it should be understood that other types of computing devices are suitable for performing the techniques disclosed herein. Furthermore, various non-limiting examples have been described in the foregoing description. For purposes of explanation, numerous specific configurations and details have been set forth to provide a thorough understanding of the examples. However, it will also be apparent to those skilled in the art that some examples can be implemented without these specific details. In addition, well-known features have sometimes been omitted or simplified to prevent confusion with the examples described herein.
[0163] Various implementation schemes can be implemented in a wide variety of operating environments, in some cases of which may include one or more user computers, computing devices, or processing devices that can be used to operate any of a number of applications. User devices or client devices may include any of many general-purpose personal computers, such as desktop or laptop computers running standard operating systems, and cellular, wireless, and handheld devices running mobile software and capable of supporting multiple networking and instant messaging protocols. The system may also include multiple workstations running any of a variety of commercially available operating systems and other known applications for purposes such as development and database management. These devices may also include other electronic devices, such as virtual terminals, thin clients, gaming systems, and other devices capable of communicating via a network.
[0164] Most implementations utilize at least one network familiar to those skilled in the art to support communication using any of the various commercial protocols such as TCP / IP, OSI, FTP, UPnP, NFS, CIFS, and AppleTalk. The network can be, for example, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), the Internet, an intranet, an extranet, the public switched telephone network (PSTN), an infrared network, a wireless network, or any combination thereof.
[0165] In implementations utilizing a web server, the web server can run any of a variety of server or middleware applications, including HTTP servers, FTP servers, CGI servers, data servers, Java servers, and business application servers. One or more servers may also be able to execute programs or scripts in response to requests from user devices, such as by executing one or more applications, which can be implemented in any programming language such as Java. ® One or more scripts or programs written in C, C#, or C++, or any scripting language such as Perl, Python, or TCL, and combinations thereof. One or more servers may also include a database server, including but not limited to those retrievable from Oracle. ® Microsoft ® Sybase ® and IBM ® Those obtained through commercial purchases.
[0166] The environment may include various data repositories and other storage media, as described above. These may reside in various locations, such as on storage media local to one or more computers or on storage media of any or all computers on a network (and / or reside within one or more computers). In a particular set of embodiments, information may reside in a storage area network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing functions belonging to a computer, server, or other network device may be stored locally and / or remotely as needed. When the system includes computerized devices, each such device may include hardware elements electrically coupled via a bus, including, for example, at least one central processing unit (CPU), at least one input device (e.g., mouse, keyboard, controller, touchscreen, or keypad), and at least one output device (e.g., display device, printer, or speaker). Such systems may also include one or more storage devices, such as disk drives, optical storage devices, and solid-state storage devices such as RAM or ROM, as well as removable media devices, memory cards, flash memory cards, and so on.
[0167] Such devices may also include computer-readable storage medium readers, communication devices (e.g., modems, network interface cards (wireless or wired), infrared communication devices, etc.), and working memory as described above. Computer-readable storage medium readers may be connected to or configured to receive non-transitory computer-readable storage media representing remote, local, fixed, and / or removable storage devices, as well as storage media for temporarily and / or more permanently containing, storing, transmitting, and retrieving computer-readable information. Systems and various devices will also typically include multiple software applications, modules, services, or other elements residing within at least one working memory device, including operating systems and applications such as client applications or browsers. It should be understood that alternative embodiments may have many variations as described above. For example, custom hardware may also be used, and / or specific elements may be implemented in hardware, software (including portable software such as applets), or both. Furthermore, connections to other computing devices such as network input / output devices may be used.
[0168] Non-transitory storage media and computer-readable storage media used for portions containing code may include any suitable media known or used in the art, such as, but not limited to, volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data), including RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, DVD or other optical memory, magnetic tape cassettes, magnetic tape, disk storage devices or other magnetic storage devices, or any other media that can be used to store the desired information and is accessible by system devices. Other ways and / or methods for implementing various embodiments will be recognized by those skilled in the art, at least in part, based on the disclosure and teachings provided herein. However, computer-readable storage media do not include transient media such as carrier waves.
[0169] Accordingly, the specification and drawings should be regarded as illustrative rather than restrictive. However, it will be apparent that various modifications and changes may be made thereto without departing from the broader spirit and scope of this disclosure as set forth in the claims.
[0170] Other variations are within the scope of this disclosure. Therefore, although the disclosed technology is susceptible to various modifications and alternative constructions, certain exemplary embodiments are shown in the accompanying drawings and have been described in detail above. However, it should be understood that this disclosure is not intended to be limited to the specific forms disclosed, but rather is intended to cover all modifications, alternative constructions, and equivalents falling within the scope and spirit of this disclosure as defined by the appended claims.
[0171] In the context of describing the disclosed embodiments (particularly in the context of the claims below), the terms “a,” “an,” and “the,” as well as similar indicator words, shall be interpreted to cover both singular and plural forms unless otherwise stated or clearly contradicted by the context. Unless otherwise stated, the terms “comprising,” “having,” “including,” and “containing” shall be interpreted as open-ended terms (i.e., meaning “including but not limited to”). The term “connected” is interpreted as being partially or wholly included, attached, or joined together, even if there is interference. The phrase “at least partially based on” shall be understood as open-ended and not in any way limiting, and is intended to be interpreted or otherwise understood as “at least partially based on” where appropriate. Unless otherwise stated herein, the description of numerical ranges herein is intended merely as a simple way of referring separately to each individual value falling within that range, and each individual value is incorporated into the specification as if separately referenced herein. All methods described herein can be performed in any suitable order unless otherwise stated or clearly contradicted by the context. Unless otherwise stated, the use of any and all examples or exemplary language (e.g., “such as”) provided herein is intended merely to better illustrate embodiments of this disclosure and does not limit the scope of this disclosure. No language in the specification should be construed as indicating that any unstated element is essential to the practice of this disclosure.
[0172] Unless otherwise specifically stated, parse languages such as the phrase “at least one of X, Y, or Z” are understood in the context to generally refer to items, terms, etc., which can be X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Therefore, such parse languages are generally not intended and should not imply that certain embodiments require the existence of at least one of X, at least one of Y, or at least one of Z. Additionally, unless otherwise specifically stated, union languages such as the phrase “at least one of X, Y, and Z” should also be understood to mean X, Y, Z, or any combination thereof, including “X, Y, and / or Z”.
[0173] This document describes preferred embodiments of the present disclosure, including the best modes known to the inventors for carrying out the present disclosure. Variations of those preferred embodiments will become apparent to those skilled in the art after reading the foregoing description. The inventors expect those skilled in the art to appropriately employ such variations, and the inventors intend to practice the present disclosure in ways different from those specifically described herein. Therefore, this disclosure includes all modifications and equivalents of the subject matter recited in the appended claims, as permitted by applicable law. Furthermore, unless otherwise indicated herein or clearly contradicted by the context, this disclosure encompasses any combination of all possible variations of the foregoing elements.
[0174] All references cited in this article, including publications, patent applications and patents, are incorporated herein by reference, as each reference is individually and specifically indicated to be incorporated by reference and elaborated in the entire text.
[0175] As described above, one aspect of this technology involves the collection and use of data (e.g., user profiles, user device information). This disclosure contemplates that, in some instances, this collected data may include personally identifiable information (PII) data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include demographic data, location-based data (e.g., GPS coordinates), telephone numbers, email addresses, Twitter IDs, home addresses, or any other identifying or personal information.
[0176] This disclosure recognizes that the use of such personal information data in the techniques of this invention can be used to benefit users. For example, personal information data can be used to transmit messages, including announcements, to specific user devices associated with the user.
[0177] This disclosure assumes that entities responsible for collecting, analyzing, disclosing, transmitting, storing, or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining the privacy and security of personal information data. Such policies should be easily accessible to users and should be updated as data collection and / or use change. Personal information from users should be collected for the entity's lawful and reasonable purposes and not shared or sold outside of these lawful uses. Furthermore, such collection / sharing should be conducted only after obtaining informed consent from users. In addition, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data and ensure that others with access to such personal information data comply with their privacy policies and processes. Additionally, such entities may be subject to third-party evaluations to demonstrate their compliance with widely accepted privacy policies and practices. Furthermore, policies and practices should be adapted to the specific types of personal information data collected and / or accessed, and to applicable laws and standards, including specific considerations regarding jurisdiction. For example, in the United States, the collection or acquisition of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); while in other countries, health data may be subject to other regulations and policies and should be handled accordingly. Therefore, different privacy practices should be maintained for different types of personal data in each country.
[0178] Regardless of the foregoing, this disclosure also contemplates implementation schemes for users to selectively block the use or access to personal information data. That is, this disclosure contemplates providing hardware and / or software components to prevent or block access to such personal information data. For example, with respect to services related to performing facial recognition, the inventive technology can be configured to allow users to opt-in or opt-out at any time during or after service registration to participate in the collection of personal information data. In addition to providing opt-in and opt-out options, this disclosure envisions providing notifications related to access to or use of personal information. For example, users may be notified when downloading an application that their personal information data will be accessed, and then reminded again just before the application accesses the personal information data.
[0179] Furthermore, the purpose of this disclosure is to manage and process personal information data to minimize the risk of unintentional or unauthorized access or use. Once data is no longer needed, this risk can be minimized by limiting data collection and deleting data. Additionally, and where applicable, including in certain health-related applications, data deidentification can be used to protect user privacy. Deidentification can be facilitated, where appropriate, by removing specific identifiers (e.g., date of birth, etc.), controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than the address level), controlling how data is stored (e.g., aggregating data among users), and / or other methods.
[0180] Therefore, while this disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, it is also contemplated that various embodiments can be implemented without access to such personal information data. That is, various embodiments of the present invention will not be unable to function properly due to the absence of all or part of such personal information data.
Claims
1. A method comprising: By resident equipment: Receive a first message including an announcement, wherein the announcement is associated with the spoken words of the announcement; The announcement is obtained from the first message; Identify one or more devices for receiving the announcement, wherein the one or more devices are associated with the resident device, and wherein each of the one or more devices has a specific device type among a plurality of different device types including at least mobile devices; Transmit a second message to the one or more devices to present the announcement; Receive a third message including the second announcement, wherein the third message indicates for receiving the recipient user account of the second announcement, and wherein the recipient user account is associated with a subset of the one or more devices; The second announcement is obtained from the third message; Identify a specific user equipment within the subset of the one or more devices; as well as A fourth message is transmitted to the specific user equipment for presenting the second announcement on the specific user equipment.
2. The method according to claim 1, further comprising: Maintain one or more user profiles, each associated with a residential environment, wherein: The dwelling equipment is also associated with the residential environment; The second device of the one or more devices is associated with a specific user profile in the one or more user profiles; and The second device is associated with the dwelling device at least in part because both devices are associated with the residential environment.
3. The method according to claim 1, wherein the residing device includes at least one of a central device, a tablet device, or a smart digital media player.
4. The method of claim 1, wherein the resident device is further associated with a local area network (LAN) that interconnects devices via at least one of Bluetooth, Thread, ZigBee, infrared, or WiFi connections.
5. The method of claim 4, wherein transmitting the second message to the one or more devices comprises: The second message is transmitted via the local area network.
6. The method according to claim 1, wherein: At least one of the one or more devices is a mobile device; The at least one device is located outside the residential environment associated with the residing device and is accessible via a wide area network (WAN); and Transmitting the second message to the at least one device includes transmitting the second message via the wide area network.
7. The method of claim 1, wherein the form of the announcement is presented is at least in part based on a specific device type for each device, and wherein the form includes at least one of text transcription, audio announcement, image, or video.
8. The method of claim 1, wherein the first message includes an audio file, wherein the audio file includes the announcement, and wherein determining the announcement from the first message further includes: A portion of the audio file is categorized as the announcement, wherein the portion has a start and an end point within the audio file, and wherein the categorization is based at least in part on a triggering mechanism that indicates the announcement within the audio file; and The audio file is spliced together at the starting point and the ending point.
9. The method of claim 8, wherein classifying the portion of the audio file for the announcement further comprises: The audio file is transmitted to a remote server, wherein the remote server is configured to classify the portion of the audio file as the announcement; as well as Receive spliced data from the remote server, including indications of the start point and the end point.
10. The method of claim 1, wherein the announcement is made by the voice directly to the dwelling device, and wherein the dwelling device is located within a residential environment.
11. The method of claim 1, wherein the announcement is made by the voice addressed to a user equipment associated with the residing device, and wherein the residing device receives the first message from the user equipment.
12. The method of claim 11, wherein the user equipment is a mobile device located outside or within the residential environment associated with the dwelling device.
13. The method of claim 1, wherein the dwelling device is associated with a residential environment, and wherein the second device of the one or more devices is also a dwelling device associated with a region of the residential environment.
14. The method of claim 1, wherein the dwelling device is associated with a residential environment, wherein the one or more devices comprise a subset of devices associated with the residential environment, wherein each of the one or more devices has been selected to receive the second message, and wherein the selection is indicated within the first message.
15. The method according to claim 1, further comprising: Detecting a second user device in a subset of the one or more devices associated with the recipient user account that is adjacent to the specific user device; as well as The specific user device is selected for presenting the announcement, rather than the second user device, based at least in part on the respective locations of the specific user device and the second user device with respect to the user corresponding to the recipient's user account.
16. The method of claim 1, wherein the specific user equipment and the dwelling equipment are located within a residential environment, and wherein the fourth message is transmitted to the specific user equipment via a local area network associated with the residential environment.
17. A computer system, comprising: The memory includes computer-executable instructions; and one or more processors, the one or more processors communicating with the memory and configured to access the memory and execute the computer-executable instructions to perform the method according to any one of claims 1-16.
18. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system, the one or more programs comprising instructions for performing the method according to any one of claims 1-16.