Techniques for relaying audio messages to devices

By introducing residing devices in residential environments and utilizing natural language processing and network protocols, messages can be identified and securely transmitted to associated devices, solving the challenges of message transmission between user devices. This enables efficient transmission and secure presentation across multiple devices, optimizing user experience and resource utilization.

CN115552869BActive Publication Date: 2025-12-16APPLE INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202180034208.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-04-22
Filing Date
2021-05-10
Publication Date
2025-12-16
Estimated Expiration
2041-05-10

AI Technical Summary

Technical Problem

Existing technologies present challenges when transmitting messages between user devices, especially when the sending device is unaware of the receiving device's information, making it difficult to effectively and securely transmit messages to multiple devices for presentation.

Method used

By introducing resident devices into the residential environment, the system identifies devices associated with users, utilizes natural language processing and network protocols to determine the recipient device of messages, and securely transmits and presents messages based on user profiles and privacy control rules.

Benefits of technology

It enables efficient message transmission across devices of various types and locations, improves privacy and security, reduces computational resource consumption, optimizes user experience, reduces network traffic, and controls message presentation based on conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115552869B_ABST
    Figure CN115552869B_ABST
Patent Text Reader

Abstract

Techniques for transmitting an announcement to one or more devices are disclosed. In one example, a first device receives a first message that includes an announcement, the announcement being associated with speech that spoke the announcement. The first device can determine the announcement from the first message and then identify one or more devices for receiving the announcement. The one or more devices can have a particular device type from among a plurality of different device types that includes at least mobile devices. The first device can then transmit a second message to the one or more devices to present the announcement by the one or more devices.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This application claims the benefit of and priority to 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 by reference herein in its entirety and for all purposes. BACKGROUND

[0003] Techniques exist for transmitting messages between user devices. Consider a scenario in which a first user speaks into a first device (e.g., a mobile phone). The first device records the message and then transmits the message to a second device (e.g., another mobile phone). The second device can receive the message and then present the message to a user of the second device (e.g., via a mobile phone speaker). However, at times, the process for transmitting a voice message from a device to one or more other devices can be challenging, for example, when the sending device can not know information about some of the recipient devices (e.g., user associations, device locations, etc.). SUMMARY

[0004] Figure 1 is a simplified block diagram of an example system in accordance with some embodiments;

[0005] Figure 2 is another simplified block diagram illustrating at least some example techniques for transmitting a message to one or more devices for presenting an announcement in accordance with some embodiments;

[0006] Figure 3 is another simplified block diagram illustrating a graphical user interface (GUI) of a user device for presenting an announcement in accordance with some embodiments;

[0007] Figure 4 is another simplified block diagram illustrating at least some example techniques for transmitting a message to a particular user device for presenting an announcement in accordance with some embodiments;

[0008] Figure 5 is another simplified block diagram illustrating an example architecture of a system for transmitting a message to one or more devices for presenting an announcement in accordance with some embodiments;

[0009] Figure 6 is a simplified flow diagram illustrating an example process for transmitting a message to one or more devices for presenting an announcement in accordance with some embodiments;

[0010] Figure 7FIG. 6 is another simplified flow diagram illustrating an exemplary process for transmitting a message to one or more devices, in accordance with some embodiments;

[0011] Figure 8 FIG. 7 is another simplified flow diagram illustrating an exemplary process for transmitting a message to one or more devices, in accordance with some embodiments;

[0012] Figure 9 FIG. 8 is another simplified flow diagram illustrating an exemplary process for transmitting a message to one or more devices, in accordance with some embodiments;

[0013] Figure 10 FIG. 9 is another block diagram illustrating an exemplary process for transmitting a message to one or more devices, in accordance with some embodiments; and

[0014] Figure 11 FIG. 10 is another simplified flow diagram illustrating an exemplary process for transmitting a message to one or more devices, in accordance with some embodiments. BRIEF DESCRIPTION OF DRAWINGS

[0015] In the following description, various examples will be described. For the purpose of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the examples. However, it will also be apparent to one skilled in the art that the examples can be practiced without these specific details. Furthermore, well-known features can be omitted or simplified in order not to obscure the examples being described.

[0016] Embodiments of the present disclosure can 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 residence. A user (e.g., Dad) can want to announce to other family members that dinner is ready. Dad can announce "dinner is ready" into a device (e.g., a mobile phone), and an audio recording of the announcement (e.g., an audio file) can be transmitted to a resident device (e.g., a hub device) of the residence (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 particular type (e.g., including a mobile device type). The resident device can then transmit the announcement to the one or more devices for presentation on each device.

[0017] In a second example, a dad can want to announce to his son that the son's laundry cycle is complete (e.g., "Son, your clothes are washed"). In this example, in addition to announcing the message into a mobile phone, the dad can also indicate an intended recipient (i.e., the dad's son). The dad's mobile device can transmit a message including at least the announcement and the intended recipient to a resident device of the home. The resident device can then identify a particular user device associated with the dad's son (e.g., the son's mobile phone) and then transmit the announcement to the son's mobile phone for presentation.

[0018] In a third example, a dad can want to announce (e.g., via his mobile phone) that he will be home soon from work. In this example, the dad's mobile phone can transmit the announcement from outside the home environment (e.g., over a wide area network (WAN)) to a resident device. The resident device can verify that the dad's user account type is authorized to utilize the resident device to relay messages to other devices associated with the home environment. Upon verification, the resident device can then generate a message formatted based in part on the dad's user account type (e.g., an administrator, as opposed to a shared user) (e.g., such that personal identifiable information (PII) is shown) and then relay the message to other devices associated with the home environment. In at least this way, the resident device can ensure a higher level of both privacy and security when relaying announcements to one or more devices associated with the home environment.

[0019] In a fourth example, a temporary babysitter of a household wants to relay a message that the baby has been put to sleep to the appropriate users of the home environment. Upon the temporary babysitter speaking the announcement, a resident device of the home environment determines that the announcement is intended for select members of the home environment (e.g., the mom and the dad, but not the housekeeper, etc.) based on determining the identity of the temporary babysitter. The resident device identifies one or more devices associated with the mom and the dad and then transmits the announcement to those devices. The one or more devices determine whether to present the announcement (e.g., or whether to block presentation) based in part on a verification of one or more conditions (e.g., proximity of the device to another device, a current location of the device, a time of day, a particular activity currently associated with the device (e.g., and / or an associated recipient user account), etc.), respectively.

[0020] In an illustrative example corresponding to the above first example, consider the context of a home environment corresponding to a home. The home environment can include one or more controller devices, which can be a resident device of the home (e.g., a smart speaker, a smart digital media player configured to control a television (TV), a mobile phone, etc.). The resident device can perform one or more tasks (e.g., relay announcements to users of the home environment on behalf of a user, announce reminders, access the Internet, control accessories, etc.).

[0021] A residential environment can be associated with one or more user profiles (e.g., user account profiles) of users associated with the residential environment. In some embodiments, the user profiles can be stored and maintained by at least one resident device of the residential environment. Each user account can be associated with one or more personal devices (also referred to as “user devices”). In a simplified example illustrating a residential context of a particular family, a mom, a dad, a son, a daughter, and a temporary babysitter can each have different user profiles. Even though the temporary babysitter can not be a member of the family itself, the temporary babysitter can be associated with the residential environment and can participate as a “shared user,” which is further described below. In one non-limiting example, the mom’s user profile can be associated with a personal device such as a smartwatch, the dad’s user profile can be associated with another personal device (e.g., the dad’s mobile phone), the son’s user profile can be associated with the son’s mobile phone and the son’s smartwatch, and so on. In some embodiments, a user profile can also be associated with one or more resident devices. In one example, the dad’s user profile can be associated with a resident device (e.g., a smart speaker) in the dad’s residential office. In another example, all user profiles of the residential environment can be associated with a common resident device (e.g., a smart speaker in the living room of the residence) located in a common area (e.g., zone) of the residential environment.

[0022] In some embodiments, there can be different types of user profiles of users, including, for example, owner profiles, administrator profiles, shared user profiles, and so on. In some embodiments, different types of profiles can be associated with different features, access rights for sending / receiving announcements, and / or privacy controls, respectively. For example, in some embodiments, owner profile types and / or administrator profile types can have access to data indicating what other user profiles and / or associated user devices are associated with the residential environment. In this example, a user device (e.g., a mobile device) associated with an administrator account profile can also have more access rights for sending and / or receiving messages to / from devices associated with the residential environment. For example, the user device can be able to send announcements to devices of the residential environment from any suitable location, including outside of the residential environment (e.g., via a wide area network (WAN) such as the Internet). Likewise, the administrator’s user device can be able to receive and / or present announcement messages of the residential environment at any suitable location. In some embodiments, announcements associated with administrator profiles can be formatted to include, for example, personally identifiable information (PII) of the corresponding administrator user (e.g., a facial image, a name) to identify the identity of the administrator making the announcement.

[0023] In another example, users of a shared user profile type can be associated with a different set of access permissions and / or privacy controls. For example, a shared user can be able to send messages to other devices associated with a residential environment, but can not have access to individual user profiles and / or details of user devices associated with the residential environment. In this example, when a user device associated with a shared user account (e.g., a smart watch) is outside of a local area network (LAN) associated with a residential environment, a resident device of the residence can not relay announcements to the user device. Also, in this example, when the user device is outside of the residential environment (e.g., when receiving a message from outside the LAN, e.g., via a WAN), the resident device can also not relay messages received from the user device to other devices of the residential environment. In some embodiments, announcements associated with a shared user account profile (e.g., including a guest user) can be formatted to not include PII of the guest user. Using the residential background described above for illustration, in one example, mom and dad can have administrator (or owner) profiles, while the son, daughter, and temporary babysitter can have shared user profiles. It should be appreciated that the embodiments described herein can be performed using any suitable combination of associations between user profiles (and / or user profile types) and devices. It should also be appreciated that any suitable access control and / or privacy control can be applied to different user accounts and / or account types. For example, an administrator account type can be configured to not include PII of a particular user when utilizing a resident device to relay announcements to other devices of a residential environment.

[0024] Continuing with the first example above, a user can speak an announcement to a device. For example, the user can say into the microphone of his mobile phone, "Announce to the house that dinner is ready." In this example, the announcement ("dinner is ready") can correspond to an element (e.g., portion) of an audio recording (e.g., which can record the entire spoken message). In some embodiments, 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 resident device of the home environment (e.g., a smart speaker in the kitchen). The resident device can then determine (e.g., obtain) the announcement from the recording. For example, the resident 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 embodiments, the resident device can transmit the recording to another device (e.g., a server device) for analysis of 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 stitching data including an indication of the start and end points back to the resident device. The resident device can then stitch the recording according to the stitching data and then proceed to further processing of the announcement, as further described herein. In some embodiments, the device that receives and records the voice recording including the announcement can correspond to any suitable device. For example, a resident device of the home environment (e.g., a smart speaker in the kitchen) can directly receive and record the announcement. In this example, the smart speaker can itself process the recording (e.g., stitch the announcement from the recording) without the need to transmit the recording to another device (e.g., another resident device and / or a 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 that receives, records, and / or processes the recording can be located in any suitable location (e.g., within or outside of the home environment). For example, using the example above, dad can have left the home environment and be located at another location (e.g., an office building) and can have forgotten to notify the household members that dinner is ready. Upon remembering, dad can announce to his phone that dinner is ready. In this example, the recording can be processed (e.g., analyzed) using dad's personal device, a resident device of the home environment, a server device in the cloud, and / or any suitable combination thereof to obtain the announcement.

[0025] After processing the recording to obtain the 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 of the residential environment (e.g., a smart speaker in the kitchen) can receive the recording from dad’s mobile phone and then stitch the recording 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 can also (and / or alternatively) be stored in the cloud (e.g., on a server device) and then retrieved by the resident device. Based on the list of retrieved 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 appreciated that the resident device (and / or the server device) can have access to data of 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 example above, the resident device can determine that mom’s user profile is associated with mom’s smartwatch, dad’s user profile is associated with dad’s mobile phone and another resident device (e.g., located in dad’s residential office), son’s user profile is associated with son’s mobile phone and son’s smartwatch, etc. The resident device can also identify other resident devices associated with the residential environment that are associated with multiple users (e.g., located in a common area of the residence). In some embodiments, each of these devices can be of a different type. For example, some of these devices can be personal devices, including devices that are of a mobile device type (e.g., mobile phones, tablets, smartwatches, and / or other wearable devices). In another example, some devices can be of a resident device type (e.g., a smart speaker in dad’s residential office). In one example, the resident device can identify all of these devices for receiving the announcement that dinner is ready. In another example, a subset of the devices (e.g., a subset that does not include personal devices associated with dad (the announcer), a subset that does not include devices that are not currently within the residential environment, etc.) can be identified for receiving the announcement.

[0026] It should be appreciated that each of these devices can be resident in the same location or different locations. For example, mom’s smartwatch can currently be located at a gym, son’s mobile phone and smartwatch can be located at school, the temporary babysitter’s mobile phone can be located in the living room of the residence, daughter’s mobile phone can also be located in the living room of the residence, etc. In some embodiments, the residential environment can also be divided into different areas. For example, the living room can correspond to one area, the kitchen can correspond to another area, dad’s residential office can correspond to yet another area, etc. In some embodiments, an area can be associated with one or more resident devices (e.g., a smart speaker in dad’s residential office).

[0027] Continuing the above example, the resident device that identified the recipient devices (e.g., the smart speaker in the kitchen) can then transmit a message including the announcement (e.g., including the spliced audio recording) to the identified one or more devices. For example, consider a case in which at least some of the devices are within a residential environment (e.g., the temporary babysitter and daughter’s mobile phones are within the living room, the smart speaker is within the family room, etc.). In some embodiments, the resident device can transmit the message to these devices over a local area network (LAN) of the residential environment. For example, the resident device can be connected to the LAN via a router (e.g., an edge router), and can transmit the message to these devices within the residential environment over the LAN via a WiFi connection. 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). Thus, 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 a smart speaker (and / or vice versa) and not necessarily using TCP / IP as used with WiFi in “traditional” LAN configurations. In another example, at least some of the devices can be outside of the residential environment (e.g., the mom’s smartwatch is at the gym, the son’s mobile phone and smartwatch are at school, etc.). In this example, the resident device can also be connected to a wide area network (WAN) (e.g., the Internet) via a router. The resident device can transmit the message to these devices over the WAN (e.g., via a server device associated with the resident device).

[0028] In some embodiments, as described above, the resident device can determine a subset of devices and / or user accounts associated with the residential environment to receive the message. For example, in some embodiments, the resident device can determine a particular user type (e.g., an administrator type or a shared user type) of a particular user account (e.g., a recipient user account) of the residential environment. The resident device can also determine devices associated with the particular user account (e.g., user devices). If the particular user type is not authorized to receive messages while located outside of the residential environment (e.g., outside of the LAN), the resident device can determine whether any of the devices associated with the particular user account are within the LAN. The resident device can then relay the message to only those devices that are within the LAN. If the particular user type is authorized to receive messages while located outside of the residential environment, the resident device can relay the message to a larger set (e.g., all) of the associated user devices of the particular user account. In some embodiments, for a given user account, the resident device can send the message to a subset of devices associated with the user account based on one or more determined conditions (e.g., proximity to the resident device or other user devices, location of the device, time of day, current activity currently associated with the user account, etc.). In some embodiments, the resident device can send the message to all devices associated with the user account (e.g., regardless of conditions), and one or more recipient devices can determine to block presentation of the message based on determining one or more conditions, as further described herein.

[0029] In another example of determining to which recipient user accounts and / or recipient devices to transmit a message, the resident device can determine the list based in part on determining a particular user type of the sender and / or an identity of the sender user account. For example, the resident device can be configured to store a list of rules corresponding to a list of recipients (e.g., including recipient devices) as a function of a particular sender account (and / or account type). In one example, the resident device can determine an identity of the sender based on voice recognition, as described herein. The resident device can determine that the identity of the sender is associated with an administrator account type (e.g., dad’s account). In this example, the resident device can then relay the message to a certain set of devices of the residential environment (e.g., all devices). In another example, the resident device can determine that the voice corresponds to a shared user account of a temporary babysitter, and can relay the message to a subset of user accounts and / or devices accordingly (e.g., only devices associated with mom and dad). It should be understood that any suitable rules can be utilized to determine to which user accounts and / or devices to route a message based on, for example, a determined identity and / or account type of the sender.

[0030] Continuing with the above example, upon each of the identified devices receiving the message from the resident device, the respective device can present the announcement on the device. In some embodiments, the form of presentation of the announcement can be based on the respective particular device type. In one example, using the above example where the device can be a resident device in a living room, the form of the announcement can be an audio announcement (e.g., "dinner is ready"). In another example, where the device can be a smart watch or mobile device, the device can first present a notification (e.g., a banner) that an announcement has been sent to the residence. Upon the user tapping the notification, the device can output the audio announcement. In some embodiments, the audio announcement can also be presented with a text-based announcement (e.g., a text transcript of the audio). In some embodiments, an image (e.g., an avatar and / or icon identifying the sender) can also be presented, e.g., in accordance with privacy control settings. In some embodiments, there can be no identification of the particular sender, but rather the recipient can be notified that there is an announcement from a user of the residential environment. In some embodiments, the sender can (or can not) be identified based in part on the type of user profile associated with the sender (e.g., administrator, owner, shared user), as further described herein. In yet another example, the audio recording can also be included within an audiovisual recording that is transmitted and presented on one or more of the devices in the residence. For example, where the recipient device is a resident device that is a smart digital media player configured to control a television (TV), the resident device can present the announcement via both audio and video (and / or text). In this example, the sender can also have recorded the announcement using a device equipped for audiovisual recording. It will be appreciated that the announcement can be presented using any suitable method.

[0031] As further described herein, a recipient device that receives a message (e.g., relayed from a resident device of a home environment) can then determine whether to present or block the message, e.g., based on determining one or more conditions. In one example, the recipient device can determine a condition corresponding to whether one or more devices (e.g., a user device and / or a resident device) are proximate to the recipient device. If proximate, the recipient device can determine whether to present the message (e.g., based on a rule). For example, the recipient device (e.g., a smart watch) can determine that another proximate device (e.g., a user's mobile phone) has a high priority to present the message (e.g., via a notification). It should be appreciated that although a message notification can not be displayed, the message (e.g., announcement and / or associated metadata) can be stored on the device. In another example, the recipient device can determine another condition corresponding to a particular activity type (e.g., sleeping, jogging, working, driving, etc.) associated with a recipient user account. Based on the activity type, the device can determine whether to present or block the message. For example, where the activity is sleeping, the user device infers a "do not disturb" indication and thus can determine to block the message. It should be appreciated that any suitable one or more conditions (e.g., regarding relative device locations of a user and / or a home environment, user device preferences, etc.) can be used to determine whether to present or block a relayed message (e.g., an announcement) relayed from a resident device.

[0032] As further described herein, conditions for determining by a resident device to which one or more devices to relay a reply (e.g., response) message (e.g., a reply to an original announcement) can also be applicable. For example, a resident device can determine to relay a reply message to only a device that originally sent the message. In another example, a reply message can be transmitted to multiple devices. Correspondingly, a device that receives a response message can also utilize one or more conditions to determine whether to present and / or suppress a message relayed from a resident device that is a reply to an announcement.

[0033] In a second illustrative example, consider a scenario in which a dad intends to announce a transmission to a particular user associated with a residential environment. For example, using the above prior example, assume that the dad wants to announce to his son that the son's laundry cycle is complete so that the son can retrieve the clothes from the laundry room. In this example, similar to as described above, the dad can speak the announcement into his mobile phone (e.g., "Son, your clothes are washed"). The dad's mobile phone can record the announcement and then transmit the recording via a message to a resident device of the residence (e.g., a smart speaker in the kitchen). In this case, the recording can also indicate the intended recipient (e.g., the dad's son), which can be used to identify the recipient from the recording. In some embodiments, the device that receives and records the recording of the announcement (e.g., the dad's mobile phone) can also receive additional types of input regarding the intended destination and / or intended recipient of the message. For example, the dad's mobile phone can receive input corresponding to a particular area of the residence. For example, assume that the dad knows that his son is currently in the son's bedroom (e.g., an area of the residential environment) that includes another resident device. The dad can select the son's bedroom as the intended destination, which can be transmitted by the dad's mobile phone to the resident device along with the recording of the announcement. In another example, the dad can not know exactly whose clothes are in the laundry room, but can know that they belong to one of a subset of people associated with the residential environment (e.g., excluding a temporary babysitter). In this example, the dad can select the subset of people for receiving the announcement.

[0034] Continuing the above example in which the dad wants to announce to his son that the clothes are washed, the resident device (e.g., the smart speaker in the kitchen) can first obtain the announcement from the recording (e.g., similar to as described herein). The resident device can then identify a particular user device of one or more devices associated with the son (e.g., the son's mobile phone) for receiving the announcement according to any suitable criteria. For example, as previously described, the resident device can retrieve the son's user profile and determine the devices associated with the son (e.g., a smart watch and a mobile phone). In some embodiments, the resident device can select a particular user device of the devices associated with the son (e.g., based on a predefined priority order). For example, based on a heuristic-based likelihood that the son sees the message, the resident device can select the son's mobile device over the son's smart watch for transmitting the message (or vice versa). In another example, the resident device can select both (e.g., all) of the devices associated with the son for receiving the message.

[0035] In some embodiments, a resident device (e.g., a smart speaker in the kitchen) can select a particular user device for receiving a message based on determined locations of one or more devices associated with a user. For example, using the above illustration, the resident device can receive location data (e.g., including global positioning system (GPS) coordinates) from each of the user devices associated with the son (e.g., the smart watch and the mobile phone). Upon determining that the two devices are proximate to one another (e.g., in close proximity), the resident device can determine to select the son’s mobile phone over the smart watch for transmitting the message. In another example, consider a situation in which the dad selects the son’s bedroom for receiving the message. In this example, the son’s bedroom can also have a resident device (e.g., a tablet). In this example, the smart speaker in the kitchen can receive GPS coordinates from both the tablet in the son’s bedroom and the son’s user devices. Upon determining that all three devices (e.g., the tablet, the mobile phone, and the smart watch) are likely in the same bedroom (e.g., the same area), the resident device can determine to select only one of the devices (or a subset) for receiving the message. In some embodiments, the resident device can determine the particular user device for receiving the message based in part on whether the user device is inside or outside of the residential environment, the type of user profile, and / or other suitable factors, as described herein. In some embodiments, and similar to the previous example, the resident device can transmit the message via a particular network path according to the location of the particular recipient user device. For example, in a situation in which the son is at school (e.g., with his mobile device and smart watch), the resident device can transmit the message (including the announcement recording) to the particular user device (e.g., the son’s mobile phone) over a WAN (e.g., via a server device). In another situation in which the particular recipient user device is within the residential environment, the resident device can transmit the message over a LAN associated with the residential environment. Upon receiving the message, the recipient user device can present the announcement.

[0036] In some embodiments, utilizing the above second example, the resident device can select the multiple devices (e.g., all devices) associated with the son's user account to receive the message. In this case, the multiple devices can each determine whether to block display of the message or present the message upon receiving the message from the resident device. For example, assume in the second example that the resident device transmits the message to the tablet in the son's bedroom (e.g., the resident device), the mobile phone, and the smartwatch. In this example, the mobile phone and the smartwatch can each determine that they are currently located within the son's bedroom, where the resident device is also located. They can also determine that the son is likely in the bedroom (e.g., based on activity detected via the smartwatch and / or the mobile phone). In this case, the mobile phone and the smartwatch can store the message upon receiving the message, but block presentation of the message. Meanwhile, the resident device in the bedroom can present the message via the speaker connected to the tablet. In some embodiments, similar to as described herein, each device can determine how to handle the message based in part on verifying whether one or more conditions are present.

[0037] Also, similar to as described above with respect to the first example, in some embodiments, the form (e.g., and / or format) of the presentation of the announcement can be based on any suitable factors, including but not limited to the respective particular recipient device type, the identity of the recipient user account, the sender user account type, the sending device type, etc. Also, 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, assume that the resident device transmits the message to the son's mobile phone. However, in one example, the son's mobile phone is away 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 devices of the residential environment when the phone is away from the residential environment. In this case, even though the mobile phone can receive (and / or detect) the message from the resident device, the mobile phone can not present (e.g., can block) the announcement. Any suitable settings of the recipient device can be used to perform embodiments of the present disclosure. In some embodiments, the recipient device can be able to reply to the announcement. For example, the reply can correspond to transmitting the message back to the original sending device to present on that device (e.g., the dad's mobile phone and / or the smart speaker in the kitchen).

[0038] Embodiments of the present disclosure provide several techniques that are advantageous over existing systems. In one example, embodiments of the present disclosure provide techniques for transmitting an announcement to one or more devices that are each associated with a residential environment. For instance, some conventional systems can enable a user device to transmit a message to announce on a resident device (e.g., a smart speaker) within a residential environment. However, embodiments of the present disclosure enable a device to transmit a message to announce on a variety of devices, which can be of different types (e.g., including mobile device types, resident device types, etc.). Additionally, the sending device and / or the receiving devices can each be in different locations (e.g., within the residential environment, outside of the residential environment, and / or any suitable combination thereof). Moreover, embodiments of the present disclosure enable a sending device to send a message to one or more devices (e.g., associated with one or more user profiles) even though the sending device can not have access to data regarding the recipient devices. For instance, a sending device that does not have access to data regarding other user profiles and / or other user devices can be associated with a shared user profile (e.g., as described above). In this case, the sending device can still be able to transmit an announcement to be presented on the other devices based on using a resident device of the residential environment as a relay device to transmit the announcement to the other devices. In at least these ways, embodiments of the present disclosure provide more efficient mechanisms for transmitting announcements. For instance, a user device (e.g., a mobile phone, a smart watch, etc.) can require less battery power and / or other computing resources to transmit an announcement at least because a resident device of the residential environment acts as a relay device for the user device (e.g., obtains the announcement, determines recipient user devices, transmits the message 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 techniques of the present disclosure provide additional privacy and / or security features when transmitting announcements within a residential environment. For instance, as a privacy feature, and as described above, a user device that is not associated with an administrator (or owner) profile (e.g., and thus does not have access to other devices associated with the residential environment) can be prevented from accessing address information of devices of the residential environment while still being able to make an announcement to the other devices, where the announcement is managed by a resident device of the residential environment (e.g., acting as a relay device). Moreover, as an example security feature, depending on the type of user account (e.g., shared and / or guest user types), a device can be prevented from transmitting a message to the residential environment via a resident device when the associated device is outside of the residential environment, but can be allowed to transmit the message (e.g., using a LAN of the residential environment) when the device is within the residential environment. Correspondingly, shared user account types can also (and / or alternatively) be blocked from receiving messages when located outside of the residential environment. As an additional security feature, in some cases, recipient user accounts and associated devices can be determined based in part on the identity of the sender account and / or the sender account type.For example, a resident device can be configured to automatically relay messages from a particular account type (e.g., a shared user type) to a subset of user accounts (and / or associated devices) of the residential environment.

[0039] In another example of a technical advantage, the techniques of the present disclosure can improve the user experience by enabling a user device to transmit an announcement to a particular user device associated with an intended recipient. For example, using the previous example, Dad can want to announce to his son that the clothes are ready. Instead of sending a message to every device associated with the residential environment, a targeted message can be sent to the device associated with the son. In some embodiments, this can reduce the number of messages transmitted, which can result in a significant aggregate network traffic reduction for a large number of announcements. Additionally, the techniques of the present disclosure enable the system to selectively transmit announcements to a device for presentation based on the location of the device relative to other devices. For example, using the above illustration, if the son's mobile device is within the same area of the residential environment (e.g., the son's bedroom) as another device (e.g., a resident device or another user device), the system can transmit the announcement to only the particular device (e.g., the resident device and not the mobile device, or vice versa) for presentation. This can improve the user experience by reducing the likelihood that the user feels overwhelmed by message notifications.

[0040] In yet another example of a technical advantage, the techniques described herein can enable a better user experience based in part on a sending device and / or a recipient device presenting a message based in part on a verification of one or more conditions. For example, a recipient device can present a message based in part on whether other devices are in close proximity. If so, the recipient device can block the message. In another non-limiting example, if a device determines that a user is currently engaged in a particular activity (e.g., sleeping), the recipient device can block the presentation of the message. Thus, the described techniques enable the determination of the best device (e.g., a resident device and / or a user device) of a residential environment to present a message to a user in a timely manner and without overwhelming the user with messages.

[0041] For the sake of clarity, it should be understood that while the techniques of the present disclosure primarily relate to transmitting messages to one or more devices for presenting an announcement in the context of a residential environment, implementations should not be construed as being limited thereto. For example, implementations can be performed in other suitable contexts (e.g., a school building, an office building, a gym, etc.). Moreover, it should be understood that any suitable device can be suitable for performing the implementations described herein. For example, some implementations herein primarily relate to a resident device of a residential environment identifying one or more user devices (or a particular user device) for transmitting an announcement. However, a server device (e.g., in the cloud) can also be used to perform one or more operations of these implementations. In another example, a user device (e.g., a mobile phone or tablet associated with an administrator or owner profile) can also perform one or more operations of these implementations described herein (e.g., identifying one or more user devices for receiving an announcement; transmitting an announcement message, etc.) that would otherwise typically be performed by a resident device and / or a server device.

[0042] Figure 1 is a simplified block diagram 100 of an example exemplary environment in accordance with some implementations. In Figure 1 , the depicted example exemplary environment includes a residential environment 101. The residential environment 101 can correspond to a defined (e.g., finite) area and / or structure (e.g., a living unit) with which one or more user profiles (e.g., of family members, roommates, etc.) have some association. Each user profile associated with the residential environment 101 can also be associated with one or more devices (e.g., a smart watch, a mobile phone, a tablet, etc.). For example, in Figure 1 , a user 112 can represent an associated user with a user profile that is associated with a user device 120 (e.g., a mobile phone) and also associated with another user device 122 (e.g., a smart watch). The user 112 is depicted in Figure 1 as being within a particular area 106 of the residential environment 101 (e.g., as demarked by a vertical partition line within the residential space). In one example, an area can correspond to a room or other suitable partition (e.g., a living room, a kitchen, a bedroom, an office, etc.). In some cases, a user profile associated with a residential environment can be associated with a user device that is currently located outside of the residential environment. For example, in Figure 1 , a user 114 can represent an associated user with a user profile that is associated with a user device 124, and where the user device 124 is currently outside of the residential environment 101 (e.g., at school, at an office, etc.).

[0043] Within the residential environment 101 can be one or more controller devices that typically operate as resident devices within the residential environment 101 (e.g., a tablet, a smart home controller, a smart digital media player, a home automation device, etc.). In some embodiments, each resident device in the residential environment can be configured to perform the techniques of the present disclosure. In some embodiments, one or more resident devices can perform operations to synchronize (e.g., and / or coordinate operations) with one another. For example, a particular resident device of the residential environment can be selected among other resident devices to perform the embodiments described herein. In this example, other resident devices (e.g., in different areas of the residential environment 101) can route messages to the selected resident device for performing these operations (e.g., identifying recipient devices, and / or relaying announcements to other devices of the residential environment).

[0044] In Figure 1 In the simplified residential environment 101, the resident device 108 (e.g., a smart speaker device) is depicted as a representative resident device suitable for performing the embodiments described herein. The resident device 108 can reside within another area 104 of the residential environment 101 that is different from the area 106. In one example, the area 104 can correspond to a common space (e.g., a kitchen, a living room, etc.) within the residential environment 101. In this case, as a resident device within the common space, the resident device 108 can be associated with more than one user profile. For example, in the case where the area 104 corresponds to a living room that is common to the residential environment 101, the resident device 108 can be associated with all associated users of the residential environment 101 (e.g., or a subset of the users). In this example, the user 110 can be one of the associated users of the residential environment 101 that is associated with the resident device 108. In some embodiments, a particular resident device can be associated with a particular user profile (e.g., a resident device in a bedroom associated with a particular user).

[0045] In some embodiments, as described herein, the resident device 108 is communicatively connected to one or more other devices, each of which is also associated with the residential environment 101. For example, the resident device 108 can be communicatively connected to one or more personal (e.g., user) devices and / or other resident devices. As described herein, in some embodiments, a user device (e.g., user device 120, which can be a mobile device) or other resident device can connect to the resident device 108 via a LAN when located within the residential environment 101. In some embodiments, a user device (e.g., user device 124, which can be another mobile device) can connect to the resident device 108 via a WAN when located outside of the residential environment 101. In some embodiments, the resident device 108 can connect to a router that is also included within the residential environment 101. The router can be communicatively connected (e.g., via a LAN, described herein) to one or more of the devices (e.g., user device 120, resident device 108, etc.) associated with the residential environment 101. The router can also connect to one or more external networks (e.g., WANs, such as the Internet) outside of the residential environment 101. In some embodiments, the router can operate as an edge (e.g., border) router that provides connectivity between a LAN (e.g., operating in the residential environment 101) and a WAN. For example, a server device can connect to the router via a WAN. In some embodiments, the server device can be associated with (e.g., as a service provider for) one or more of the resident devices of the residential environment 101 (e.g., resident device 108), and can perform one or more operations described herein. For example, the server device can receive a message from the resident device 108 via the WAN, and then relay the message to a device associated with the residential environment 101 that is currently outside of the residential environment 101. In another example, the server device can route a message received from a device outside of the residential environment 101 and destined for a device of the residential environment 101 to the resident device 108 of the residential environment 101.

[0046] In some embodiments, the resident device 108 can operate an instant message service 130. The instant message service 130 can perform one or more operations described herein in embodiments. In one example, the instant message service 130 of the resident device 108 can be configured to transmit a message containing an announcement to one or more devices associated with the residential environment 101. For example, the instant message service 130 can receive a message including an announcement. In one example, the resident device can receive and record a voice announcement received from a user 110 speaking into a microphone of the resident device 108 (e.g., "announce that dinner is ready"). The resident device 108 can then identify one or more user profiles (e.g., of a user account) associated with the residential environment 101, and a corresponding user device (and / or resident device) 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 the announcement, and then transmit the message including the announcement to each of the identified devices. As described above, the message can be transmitted using any suitable network path (e.g., a LAN of the residential environment 101, or an external WAN) depending, for example, on the location of the respective recipient devices. Upon receiving the message, the respective recipient devices can present (or block) the announcement depending, in part, on the type and / or configuration settings of each recipient device, and / or a verification of one or more conditions (e.g., location of the recipient device, proximity to other user devices, time of day, current activity, etc.). In another example, the instant message service 130 can be configured to transmit a message including an announcement to a particular user device for presentation. For example, the instant message service 130 can receive a message including an announcement. In one example, the user device 120 can receive and record a voice announcement received from a user 112 speaking into a microphone of the user device 120 (e.g., "tell son that his laundry is ready"). In some embodiments, the user device 120 can transmit a message containing the recording including the announcement to the resident device 108 as described above. In this example, the resident device 108 operating as a relay device can obtain the announcement from the message, and then identify a particular user device associated with the son for receiving the announcement. For example, if the user device 124 corresponds to a mobile phone of the son, the resident device can identify the user device 124 (e.g., by retrieving the user profile of the son), and then transmit another message including the announcement to the particular user device 124 for presentation to the user 114 (e.g., the son).

[0047] Figure 2 is another simplified block diagram depicting an exemplary process performed by a system according to some embodiments of the disclosure. The process 200 is a system (e.g., the system 100) that can transmit (e.g., relay) a message including an announcement to one or more devices for presentation of the announcement. Figure 1An exemplary high-level 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).

[0048] 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.

[0049] Turning further to process 200, at box 202, the system may receive a first message including an announcement. For example, using illustration 201, 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 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.

[0050] In some embodiments, a voice message can include one or more elements that can be determined and analyzed (e.g., classified) by the system to obtain an announcement from the first message. In some embodiments, the system can perform NLP on the voice message 205 to obtain the announcement based on the determined classification of one or more elements of the voice message 205. For example, using illustration 201 for illustration, the voice message can include a trigger element or phrase (e.g., “Computer,” “Announce”) that corresponds to one or more words that can signal to the system that the user is about to speak a message. The trigger element can also indicate a desired action that the system should perform upon receiving the message. The voice message can also include a domain element that can correspond to one or more words that indicate the domain of the message (e.g., “Food,” “Clothing,” “Sports,” etc.). In cases where the voice message includes an announcement, the announcement can correspond to one or more words (e.g., phrases) within the message. Using illustration 201 for illustration, the voice message 205 includes a trigger phrase (e.g., “Computer, announce”) that can signal to the system that an announcement will be spoken next. The voice message 205 also includes an announcement (e.g., “Dinner is ready”) as well as a domain element (e.g., “Dinner,” which indicates that the announcement is about food). In some embodiments, the system can 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 can use any suitable words and / or phrases to determine one or more elements of the voice message 205. Upon determining the announcement, the system can further determine the start and end points of the announcement within the recording of the voice message 205. In some embodiments, the system can further determine a text transcription of the one or more words that correspond to the announcement. In some embodiments, if the original announcement also includes a video (e.g., an audiovisual announcement), the start and end points can further correspond to respective frames of the video. Upon determining the start and end points of the voice message 205 (e.g., the start and end points can be referred to as stitching data), the system can stitch the recording of the voice message 205 to obtain the announcement as a stitched recording (e.g., “Dinner is ready”).

[0051] As described above, in some embodiments, the voice message can also indicate an intended recipient of the message (e.g., in cases where the message is an announcement). For example, the voice message 205 can alternatively be "Computer, announce to Bob that dinner is ready," in which case the intended recipient can be determined to be "Bob." In some embodiments, the system can infer and / or subsequently determine the intended recipient (e.g., every person associated with the residential environment, every person currently in the residential environment, etc.). In some embodiments, the intended recipient can be inferred based at least in part on one or more elements of the message (e.g., the determined domain, the sender, etc.). In the example of the illustration 201, since the domain relates to "dinner" or "food," it can be inferred that the purpose of the message is to the associated members of the residential environment that are currently present within the residential environment (e.g., that can participate in dinner). In some embodiments, the intended recipient can be determined based on one or more rules, as described further herein (e.g., with reference to Figure 10 ). For example, a particular user account (e.g., associated with the announcing party, i.e., the user 203) can be associated with a subset of user accounts of the residential environment. In this example, if it is determined that the voice recorded in the voice message 205 corresponds to the user account of the user 203, then the devices associated with the subset of user accounts can be selected as recipients of the message. It will be appreciated that the system can determine (e.g., infer) one or more intended recipients (or any suitable other information) according to any suitable method (e.g., machine learning algorithms (e.g., performing NLP) and / or heuristic-based algorithms, etc.).

[0052] Similarly, as described further herein (e.g., see Figure 4 ), in some embodiments, the system can also be able to infer one or more intended recipient locations. Using the above prior example, if the voice message 205 had instead been "Computer, announce to Bob's office that dinner is ready," then the system can determine the intended location (e.g., "Bob's office"). In the example of the illustration 201, the intended location can be inferred to correspond to any suitable location associated with the residential environment. In some embodiments, the location can not be inferred (e.g., in cases where the message is announced to every device associated with the residential environment regardless of the current location). In some embodiments, the system can later use the determined location (e.g., area) to transmit subsequent messages to a particular area, e.g., when a resident device of the residential environment is associated with a particular determined location (e.g., an area of the residence, such as the son's bedroom, the living room, etc.).

[0053] While diagram 201 depicts user 203 speaking directly into resident device 207, it should be understood that embodiments are not so limited. For example, in another embodiment, a user device of user 203 (e.g., a mobile phone) can receive voice message 205, record the message, and then transmit the recording of voice message 205 to resident device 207, where resident device 207 can act as a relay device. Also, as described herein, there can be multiple resident devices within a residential environment. In some embodiments, each resident device can be configured to perform process 200. In some embodiments, the resident devices can have synchronized to have a particular resident device (e.g., resident device 207) to coordinate receiving any announcements associated with the residential environment, processing the announcements, and then transmitting the announcements to appropriate user devices and / or other resident devices for presentation of the messages. Thus, in this example where a particular resident device is selected (e.g., or otherwise chosen) to perform process 200, voice message 205 can have been received and recorded by another resident device and transmitted to resident device 207 for further processing.

[0054] In some embodiments, as described herein, the system can be able to additionally determine an identity of the sender. For example, using diagram 201 for illustration, resident device 207 can perform voice analysis (e.g., via NLP) on the voice of user 203 to determine an identity of user 203. In another example, where user 203 speaks into a mobile phone that later transmits the recording to resident device 207, resident device 207 can determine the identity of the speaker based in part on identifier information of the mobile device (e.g., as associated with user 203). In some embodiments, the system can utilize any suitable technique to determine the identity of the person speaking the announcement.

[0055] As described herein, in some embodiments, one or more operations can be performed by another device. For example, in recording voice message 205, resident device 207 can later store the recording of voice message 205 and then transfer a copy of the recording to a server device (e.g., in the cloud). The server device can then analyze (e.g., classify) elements of the recording to determine stitching data. As described herein, the stitching data can indicate a start point and an end point within the recording. The server device can then transmit the stitching data back to resident device 207, at which point resident device 207 can then stitch the previously stored recording to obtain another recording that includes only the announcement portion (e.g., “dinner is ready”) of voice message 205. In some embodiments, the server device can also determine other elements, including but not limited to one or more intended recipients, a domain, an identity of the sender, etc. This one or more elements can also be transmitted to resident device 207 for further processing, as further described herein.

[0056] 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.

[0057] 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 in 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 in 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 manner, 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, such as regarding Figure 3To further illustrate, the identity of the sender can be indicated via a text format, an icon, or other suitable indicator.

[0058] At block 204, the system can identify one or more devices for receiving the announcement. Using illustration 201 for further illustration, the system (e.g., resident device 207) can first retrieve one or more user profiles associated with the residential environment. For example, as described above with respect to block 202, the system can have previously determined one or more intended recipients of the announcement. For example, the system can have inferred the intended recipients of the message based on the content of the message (e.g., the determined domain). In another example, the system can use NLP to determine recipient identities explicitly mentioned in the message (e.g., “son,” “temporary babysitter,” etc.). Based on the determined intended recipients, the system can retrieve an associated user profile for each intended recipient. In the example of illustration 201, at least two intended recipients are determined to each have a respective user profile (e.g., user profile 209 and user profile 211). In some embodiments, the user profiles can be 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 embodiments, the user profiles can alternatively be stored in the cloud and then temporarily retrieved by the resident device when process 200 is performed. In some embodiments, each resident device of the residential environment can store the user profiles. In some embodiments, any suitable mechanism can be used to maintain the user profiles.

[0059] In some embodiments, after retrieving the user profile for each intended recipient, the system can then determine one or more devices for receiving the announcement. For example, returning to illustration 201, the system can determine that user device 213 is associated with user profile 209, and that user devices 216 and 217 are associated with user profile 211. It should be understood that any suitable number of devices can be associated with a particular user profile. The system can identify each of these devices that should receive the announcement for presentation. It should also be understood that each of the identified recipient devices can have a particular device type among a plurality of different device types. The plurality of different device types can include any suitable types, including mobile devices. For example, as depicted in illustration 201, a mobile phone (e.g., user device 213) is depicted, and a smart watch (e.g., user device 215) is also depicted. Moreover, one or more of the recipient devices can correspond to a resident device associated with a residential environment. For example, as described herein, one resident device can be associated with multiple users of a residential environment (e.g., a smart speaker located in a living room and available for general use). In this example, both user profiles 209 and 211 can be associated with the resident device intended for general use, and the resident device can also be included in the list of recipient devices. Another resident device can be associated with a particular user and / or a particular area of the residential environment (e.g., user 203’s bedroom).

[0060] At block 206, the system can transmit the second message to the one or more recipient devices for presentation. Continuing with illustration 201 for illustration, the system (e.g., resident device 207) can transmit the message to each of the identified recipient devices over 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 can contain the announcement record (e.g., “dinner is ready”). The second message can also contain other information, including but not limited to the sender identity and / or related identifying information (e.g., profile image or icon), the sender’s current location, an identifier of the sending device (e.g., a resident device or a user device), a location of the sending device (e.g., an area of the residential environment), instructions on how to present the announcement (e.g., via both audio and transcribed text, a particular color code, a pop-up message, etc.). In some embodiments, as described further herein (e.g., see Figure 3), the recipient device can also determine whether and / or how to present the announcement based on, for example, the type of the recipient device, the location of the recipient device (e.g., a particular area in a residential environment), the proximity of the recipient device to other devices associated with the residential environment (further described herein), or other suitable settings. For example, a mobile phone (e.g., user device 213) can present the notification via text, pop-up banner, audio, and / or video, while a smart speaker resident device can present the announcement through audio. In another example, a smart watch (e.g., user device 215) can present the announcement via audio and / or text pop-up banner. A smart media player connected to a TV can additionally present an announcement recording corresponding to an audiovisual recording.

[0061] In some embodiments, as described herein, a particular network path through which a second message can be transmitted can be determined based at least in part on a location of a particular device (e.g., a sender device and / or a recipient device). For example, assume that user device 213 is associated with user 114 of Figure 1 residential environment 101. In this example, a second message can be transmitted by resident device 207 of residential environment 101 via the Internet (e.g., via a cellular signal). In another example, assume that user devices 215 and 217 are associated with users 115 and 116 of Figure 1associated with a particular user type of the home environment (e.g., a shared user type) will not receive the relayed message. Assume, in one example, that the user profile 209 is associated with a shared user type, and that the user device 213 is associated with the user profile 209. In this example, the resident device 207 first detects that the user device 213 is not within the home environment (e.g., due to not receiving a ping response from the user device 213 over the LAN). The resident device 207 can then determine not to transmit the message to the user device 213. In another example, if the user profile 209 is instead associated with an administrator type, the resident device 207 can determine to relay the message to the user device 213, even if the user device can currently be away from the home environment. In this way, the technology can enable core members of the home to receive messages at any suitable location (e.g., within or outside of the home), while guest members (e.g., including shared users such as a housekeeper or temporary babysitter) can only receive announcements when within the home. In accordance with this background, this can enhance privacy and / or security features by ensuring that only authorized user accounts (and / or devices) can send or receive announcements.

[0062] In some embodiments, the particular network path can also depend on the location of the sender user device. For example, where the sender device is outside of the residential environment 101 (e.g., at school), the server device (e.g., associated with the resident device 207) can coordinate routing the message to the appropriate recipient devices (e.g., within the residential environment 101 and / or outside of the residential environment). Where at least one of the recipient devices is within the residential environment, the server device can route the message to the resident device 207, which in turn can route the message to the user devices via the LAN of the residential environment 101. In some embodiments, for example, where the entire household (e.g., all associated users) is determined to be the intended recipient, the system can determine that the devices associated with the sender user profile (e.g., the user devices and / or the resident device) should be excluded from receiving the second message. In some embodiments, one or more of the sender's devices can receive the second message, but each device can still determine whether and / or how to present the message. For example, another user device of the sender can determine not to pop-up (e.g., block) a notification upon determining that the second message contains an announcement from the sender (but the announcement can still be received, stored, and / or otherwise processed by other user devices). It will be appreciated that the system can utilize any suitable settings and / or rules to determine which devices should receive the second message.

[0063] In some embodiments, upon transmission of the second message including the announcement, the resident device 207 can determine whether the announcement should be deleted from the resident device 207, stored for future record keeping, or otherwise handled by the resident device 207. Likewise, where a remote server participates in processing the initial record, the remote server can also be configured to delete (or otherwise archive) the record (e.g., after a predefined period of time).

[0064] Figure 3 An exemplary graphical user interface (GUI) 310 of a device 300 (e.g., a mobile phone) that receives a message that can be operated on by the device 300 for presentation is shown. In some embodiments, the device 300 can be similar to one or more of the other mobile devices described herein (e.g., the user device 213 of FIG. 1, Figure 2 the user device 124 of FIG. 1, Figure 1 etc.). It will be appreciated that although the GUI 310 is described with respect to a display of a mobile phone, the GUI 310 can be displayed on any suitable device (e.g., a computer monitor, a television, etc.). Figure 3GUI 310, but embodiments should not be construed as being limited thereto. For example, one or more of the features described with respect to device 300 can also be implemented by another type of device (e.g., another type of mobile device, such as a smart watch, a tablet, smart glasses, etc.). In another example, a resident device (e.g., a smart speaker, a smart media player connected to a TV, etc.) can also be configured to implement one or more of the features described with respect to device 300 (e.g., a smart speaker can render audio sounds of the announcement, a smart media player can display a similar GUI for display on the connected TV, etc.).

[0065] Turning in further detail to GUI 310, a number of 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 can also be displayed, including but not limited to a settings icon (e.g., for adjusting settings).

[0066] For illustrative clarity, consider a scenario in which device 300 is associated with an associated user of residential environment 101. Figure 1 For example, the associated user can be a son (e.g., in a family). Other associated users of the residential environment can include a sister, a mother, a housekeeper, etc. In this scenario, the son can take device 300 to school (e.g., outside of the residential environment). At some point in the day, the housekeeper can arrive at the residence and pick up the family’s mail. In picking up the mail, the housekeeper can speak the information: “Computer, announce that the mail has been delivered.” In one embodiment, the announcement can be communicated to resident devices (e.g., a smart speaker, a smart media player connected to a TV, etc.) of residential environment 101. Figure 2residence environment, as described herein. In one example, the message can be recorded by a user device of the butler (e.g., a mobile phone), then transmitted to the resident device 207 for further processing, as described herein. The resident device 207 can identify the announcement (e.g., "mail has been delivered") from the message, as described herein. The resident device 207 can also identify the sender as the butler. In one example, the resident device 207 can identify the sender via voice recognition when spoken directly to the resident device 207 (a smart speaker). In another example, the resident device 207 can 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 residence environment. In one example, the butler can be associated with a shared user profile. The resident device 207 can identify the device 300 (e.g., among one or more other devices) for receiving the announcement, then can transmit the message containing the announcement (e.g., a recording and / or transcription of the announcement) to the device 300. As described herein, the network path via which the message is transmitted can depend in part on the location of the sender device and / or the recipient device. In the above example, the resident device 207 can transmit the message from the residence environment to the recipient device 300 over a WAN (e.g., the Internet) (e.g., via a server device associated with the resident device 207).

[0067] At the time the announcement is received by device 300, an application (e.g., and / or service) executing on device 300 can present the announcement within GUI 310 along with information about the message. For example, as depicted within GUI 310, first ID 314 can indicate that the announcement was sent from a “residence” (e.g., residential environment 101) and that the sender was a shared user. Note that in this case, because the sender was a housekeeper (which can have a shared user profile), the identity of the housekeeper can not be revealed. As described herein, this can enable better support for privacy controls at the time announcements are transmitted via the techniques of the present disclosure. It will be appreciated that any suitable type and / or range of privacy controls can be supported. GUI 310 can also display first icon 316, which can correspond to an icon (e.g., image, logo, or other suitable identifier) associated with the sender. In this case, the icon can be a generic icon to preserve anonymity of the sender (e.g., prevent visibility to other shared users). GUI 310 can also display first announcement 318 (e.g., “mail has been delivered”). In this example, a transcription of the text is also presented within a text field. In one embodiment, a user of device 300 can tap on the text field (or other suitable GUI element), whereby device 300 can present an audio (and / or video) recording of the announcement. It will be appreciated that as depicted in GUI 310, a chronological list of announcements is displayed from top to bottom. Thus, at the time first announcement 318 is presented, other announcements and / or responses (e.g., second announcement 324, first user response 326, etc.) can not have been presented. In some embodiments, in addition to (and / or alternatively from) displaying GUI 310, one or more other suitable notifications of first announcement 318 can be presented. For example, a banner notification can be popped up on the screen, whereupon upon receiving a tap on the banner from the user, GUI 310 can be presented. In another example, where device 300 is a different kind of device (e.g., a smart speaker), a unique light can be lit up on the smart speaker, indicating that the announcement is ready to be presented. In some embodiments, the announcement can be automatically presented as soon as it is received by device 300. It will be appreciated that any suitable form of notification and / or presentation of announcements can be implemented in accordance with the techniques of the present disclosure.

[0068] Continuing with the example based on the above scenario, at a time subsequent to receiving the message containing the first announcement 318, the son's sister (e.g., also associated with the residential environment) can also want to send an announcement to members of the residential environment. In some embodiments, this announcement can be transmitted according to a similar method as described above. For example, the device 300 can receive another message from the resident device 207, where the device 300 can present the sister's announcement within the GUI 310 along with information about the message. For example, a second ID 320 can indicate that the sender is "Sister." In one embodiment, the second ID 320 can also indicate the sender's location (e.g., area and / or room). Also, a third icon 330 can correspond to an image (or avatar, etc.) associated with the sister's profile. In this example, note that the second ID 320 and / or the second icon 322 can indicate the identity of the sender. In one example, this can 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 the GUI 310, the second announcement 324 can be "I forgot to buy milk. Can someone please pick up milk for me?" At the time the device 300 presents the announcement for display in the GUI 310 (e.g., similar to as described above), the device 300 can further receive an input from the son corresponding to a response message. For example, the microphone button 340 can receive a tap from the son, at which time the device 300 records a first user reply 326 (e.g., records) from the son: "I will pick up milk after school." In some embodiments, the first user reply 326 (e.g., message) can be sent to any suitable device and / or location (e.g., area) associated with the residential environment. For example, in one embodiment, the first user reply 326 can be sent only to the sender's device (e.g., the sister's user device and / or other resident device (e.g., the resident device 207) that transmitted the second announcement 324 to the device 300). In another embodiment, the first user reply 326 can be sent only to devices that are currently within the residential environment (e.g., the residential environment 101), and thus receive messages over the LAN associated with the residential environment. In another embodiment, the first user reply 326 can be sent to all associated devices of the residential environment. This can include both user devices and / or resident devices, where the user devices (e.g., mobile devices) can be within or outside of the residential environment. In some embodiments, the first user reply 326 can be automatically directed to resident devices in the location (e.g., area of the residential environment) proximate to where the message was sent. In some embodiments, the destination of the first user reply 326 can depend in part on a pre-defined time frame in which the first user reply 326 is sent. For example, if the son replies to the sister's announcement within a short time frame (e.g., seconds, a minute), the first user reply 326 can be directed back only to the sender's device (e.g., the sister's mobile phone).In some embodiments, device 300 can receive other input (e.g., from the son) corresponding to any suitable instruction regarding the first user response 326, as described herein (e.g., see Figure 4

[0069] It will be appreciated that similar to as described herein with respect to transmitting an announcement from a sender device to one or more recipient devices, the particular network path of a response message (e.g., from the responder device to one or more devices for receiving the response message) can depend in part on the location of the responder device and / or the recipient device. For example, in instances in which the recipient device of the response message is outside of the residential environment, a device server (e.g., associated with a resident device of the residential environment) can coordinate routing of the message to the recipient device via a WAN. In instances in which the recipient device is within the residential environment, a resident device (e.g., resident device 207) can route the message to one or more devices via a LAN.

[0070] Continuing with the illustration of the above scenario, at a time subsequent to device 300 transmitting the first user response 326, the mom can send an announcement to the house, which can be received and / or presented by device 300, similar to as described above. For example, the third ID 328 can identify the sender as "Mom," and can include a third icon 330 corresponding to an icon associated with the user profile of the mom. In this example, the third announcement 332 can correspond to "Dinner is ready." In one example, this third announcement 332 is received after the son has returned to the residence from school and device 300 is now within the residential environment (e.g., in the son's bedroom) in the afternoon. The mom can have spoken the announcement into a resident device (e.g., resident device 207) in the kitchen, which at that time, in turn, transmits the announcement recording to device 300 over the residential environment LAN. In one example, devices that are currently within the residential environment can receive the message (e.g., via the LAN), and devices that are away from the residential environment can not receive the message (e.g., because the dinner announcement can not be relevant to them). As described herein, it will be appreciated that any suitable device and / or location can be a suitable intended recipient of an announcement.

[0071] In some embodiments, an announcement received by a device can only persist on the device for a predefined period of time, after which the announcement (e.g., the recorded and / or transcribed message) disappears (or is archived). In Figure 3 ​In the depiction, the first countdown timer 334 indicates that the most recently received announcement from Mom will disappear after the first countdown timer 334 expires. Upon the device 300 receiving the third announcement 332, the son can reply with a second user response 336: "I'm on my way," which can be performed via a microphone button 340 (which can include other suitable input mechanisms, including video, text, etc.), similar to as described above. In this example, a second countdown timer 338 can also indicate on the son's device (e.g., and other devices that receive the second user response 336) that the son's second user response 336 will also disappear after the timer expires.

[0072] As described herein, in some embodiments, the device 300 (e.g., via the GUI 310) can enable a user to configure one or more settings. In some embodiments, the device 300 can be configured to block (or enable) notifications based on a determined location of the device 300. For example, assume that the 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!" The device 300 can have a setting that indicates that if the device 300 receives a message from the residential environment while the device 300 is away from the residential environment, the device 300 will not present the announcement (and / or a notification of the announcement). In this example, upon receiving the third announcement 332, the device 300 can block the message. In another example, with the same setting, if the device 300 is within the residential environment (e.g., the residential environment 101) and receives the third announcement 332 over a LAN, the device 300 can present the announcement. Any suitable settings can be utilized to perform the embodiments disclosed herein (e.g., always block messages from the residential environment, never block, block only when away from the residential, etc.). It should be appreciated that, in some embodiments, settings regarding message transmission and message reception can be configurable on a sender device and / or a recipient device. For example, instead of the device 300 determining to block a notification of the third announcement 332, a resident device (e.g., the resident device 207) that transmits the message can first determine not to transmit the message to the device 300 upon detecting that the device 300 is not within the residential environment, as described herein.

[0073] Figure 4 is another simplified block diagram 400 illustrating at least some example techniques for transmitting a message to a particular user device for presenting an announcement, according to some embodiments. In the illustration 400, a residential environment 402 and a vehicle 450 are depicted. In some embodiments, the residential environment 402 can be similar to the residential environment 101, as described above. In this example, the vehicle 450 is a car that is currently away from the residential environment 402 (e.g., the vehicle 450 is currently on a highway). The vehicle 450 can be configured to receive messages from the residential environment 402 (e.g., via a LAN, a cellular network, etc.). In some embodiments, the vehicle 450 can be configured to present an announcement (e.g., via a GUI 404) based on a received message. In some embodiments, the vehicle 450 can be configured to block a notification of the announcement based on a determined location of the vehicle 450. For example, assume that the vehicle 450 is currently away from the residential environment 402 (e.g., on a highway). The vehicle 450 can have a setting that indicates that if the vehicle 450 receives a message from the residential environment 402 while the vehicle 450 is away from the residential environment 402, the vehicle 450 will not present the announcement (and / or a notification of the announcement). In this example, upon receiving a message from the residential environment 402, the vehicle 450 can block the message. In another example, with the same setting, if the vehicle 450 is within the residential environment 402 (e.g., in the garage), the vehicle 450 can present the announcement. Any suitable settings can be utilized to perform the embodiments disclosed herein (e.g., always block messages from the residential environment, never block, block only when away from the residential, etc.). It should be appreciated that, in some embodiments, settings regarding message transmission and message reception can be configurable on a sender device and / or a recipient device. For example, instead of the vehicle 450 determining to block a notification of the announcement, a resident device (e.g., the resident device 207) that transmits the message can first determine not to transmit the message to the vehicle 450 upon detecting that the vehicle 450 is not within the residential environment 402, as described herein. Figure 1some aspects of the residential environment 101. The vehicle 450 can be outside of the residential environment (e.g., depicted via the vertical line divider in the diagram 400), for example, on the way to another destination (e.g., returning home from work, on the way to the office, etc.). It should be appreciated that in some embodiments, the vehicle 450 can instead represent any suitable location outside of the residential environment 402.

[0074] Turning in further detail to the elements of the residential environment 402, a number of elements are depicted. The residential environment 402 includes three different areas: area 404, area 406, and area 408. In some embodiments, each area can correspond to a different location within the residential environment. For example, the area 404 can correspond to a living room, the area 406 can correspond to a kitchen, and the area 408 can correspond to a bedroom. As Figure 4 As depicted in the diagram, the resident device 430 (e.g., a smart speaker) can be positioned within the area 404 and can be associated with the living room. Similarly, the resident device 410 (e.g., a smart speaker) can be positioned within the area 406 and associated with the kitchen, and the resident device 420 (e.g., a smart speaker) can be positioned within the area 408 and associated with the bedroom. In some embodiments, one or more associations (e.g., between a resident device and a particular area) can be stored by one or more resident devices of the residential environment 402. In some embodiments, the associations can also be stored by a remote server device associated with the resident devices. Also included within the residential environment 402 is a user device 432 (e.g., a mobile phone), which can currently be located within the area 404 at an opposite end of the living room from the resident device 430. Another user device 422 (e.g., another mobile phone) is currently located within the area 408 (i.e., the bedroom). As Figure 4 As depicted in the diagram, the user device 422 can be in closer proximity to the resident device 420 within the area 408 than the user device 432 is to the resident device 430 within the area 404.

[0075] Turning in further detail to the elements of the vehicle 450, a number of elements are depicted. For example, a user device 452 (e.g., a tablet device) and a user device 454 (e.g., a smart watch) are located within the vehicle 450 on the way. In this example, the user device 452 and the user device 454 can both be in close proximity to one another (e.g., carried and / or worn by the user driving the vehicle 450).

[0076] In some embodiments, any of the devices depicted in diagram 400 can transmit a message including the announcement to one or more devices and / or locations (e.g., areas) associated with the residential environment 402 for presentation. In some embodiments, the sending device can receive instructions corresponding to a selection of a particular set (e.g., subset) of devices associated with the residential environment 402 for receiving the announcement. In some embodiments, the sending device can also (or alternatively) receive instructions corresponding to a selection of a particular one or more locations (e.g., one or more areas) for receiving the message. As described herein, any of the resident devices (e.g., resident device 410, resident device 420, and / or resident device 430) can be used to transmit the announcement to other devices and / or locations within the residential environment 402. Also, in some embodiments, a user device (e.g., associated with an administrator or owner profile) can be able to send the announcement directly to other devices. For example, a user device can store user profiles of other users, associated devices, and / or other suitable associations operable to transmit the announcement to devices associated with the residential environment. In some embodiments, a server device associated with a resident device of the residential environment can also be configured to transmit the announcement to one or more devices associated with the residential environment. Thus, although the resident devices can be primarily described in embodiments herein as transmitting the announcement to other devices, embodiments should not be interpreted as being so limited (e.g., suitable user devices and / or server devices can also perform the operations of the embodiments described herein).

[0077] In some embodiments, a sending device (e.g., a resident device or a suitable user device) can be configured to transmit the announcement to a particular device (e.g., a particular user device and / or a particular resident device) based on detected proximity between one or more devices. In some embodiments, one or more devices associated with the residential environment 402 can transmit location information (e.g., GPS coordinates, velocity and / or acceleration information, etc.) to a resident device of the residential environment. In some embodiments, any suitable real-time location service (RTLS) can be used to determine location information (e.g., location data) of a device. Based on the location information determined with respect to each device, the resident device can determine a location of each device and / or relative proximity between the devices. As further exemplified in representative scenarios described below, this location and / or proximity information can be used to select a particular one or more devices for transmitting the announcement.

[0078] Consider a first scenario in which the resident device 410 (e.g., in the kitchen corresponding to the area 406) receives a voice input from a user (e.g., the mom) corresponding to an announcement (e.g., "Son, dinner is ready"). In this scenario, as described herein, the resident device 410 can determine which device(s) to transmit the announcement message to. In one example, the resident device 410 can determine that the user device 422 is in the son's bedroom (e.g., area 408), e.g., based on location information received from the son's user device (e.g., user device 422). The resident device 410 can also store data corresponding to an association between the resident device 420 and the area 408 (e.g., based on a determined location of the resident device 420). In this example, the resident device 410 can determine to transmit the announcement to the resident device 420 instead of (or in addition to) the user device 422. For example, the resident device 410 can be configured with settings such that when the resident device 410 determines that a particular user device is proximate to another resident device (e.g., resident device 420) in the home environment, the resident device 410 should transmit the announcement to the resident device for presentation (e.g., via a speaker) instead of to the proximate user device. In some embodiments, this can reduce the likelihood of a user being inundated with notifications via multiple devices. In some embodiments, as described further herein (e.g., with respect to FIG. 5), the resident device 410 transmits the announcement message to both the resident device 420 and the user device 422, where the respective recipient devices determine whether to block or present the message based on a verification of one or more conditions (e.g., proximity to other nearby devices, time of day, location of the device, etc.). Figure 10 ) further described herein, the resident device 410 transmits the announcement message to both the resident device 420 and the user device 422, where the respective recipient devices determine whether to block or present the message based on a verification of one or more conditions (e.g., proximity to other nearby devices, time of day, location of the device, etc.).

[0079] Consider a second scenario similar to the first scenario above. In this scenario, the resident device 410 receives input from a user (e.g., the mom) corresponding to an announcement (e.g., "Dad, can you come to the kitchen to help me?"). In this scenario, assume that the dad is currently within 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, the resident device 410 can determine that while the user device 432 can be within the same area 404 as the resident device 430, they are not proximate to one another (e.g., based on a predefined distance threshold). Accordingly, in this example, the resident device 410 can transmit the announcement to both the resident device 430 and the user device 432 for presentation (e.g., via a speaker of the resident device 430 and display and / or audio presentation on the user device 432, respectively). Also, in this example, the resident device 410 can determine not to transmit the announcement to either resident device 420 of the area 408 (e.g., in the son's bedroom) or the son's user device 422.

[0080] Consider a third scenario in which the resident device 410 receives input corresponding to an announcement "Announce to son and dad that dinner is ready." In this scenario, the resident device 410 can determine a particular subset of one or more devices associated with the residential environment 402 for transmission of a message including the announcement. For example, the resident device 410 can determine to transmit the announcement to the resident device 430, the user device 432, and the resident device 420 for presentation by each device. In one example, these devices can be selected based on the determined locations of the son's user device and the dad's user device within the residential environment 402 relative to other devices in the residential environment 402. In another example, the announcement can be "Announce to the living room and the son's bedroom that dinner is ready." In this example, the resident device 410 can determine one or more recipient devices (e.g., the resident device 430 and the resident device 420) based on the association between the areas of the residential environment 402 (e.g., area 404 and area 408) and the location of each resident device.

[0081] Consider a fourth scenario in which the resident device 410 receives input corresponding to an announcement "Announce to son to stop by the store on the way home from school." In this scenario, assume that the son is currently away from the residential environment 402. For example, the son is currently driving the vehicle 450 from school back home. Also, the son can be carrying the user device 452 (e.g., a mobile phone) and can be wearing the user device 454 (e.g., a smart watch). In this example, the resident device 410 can determine that the user device 452 is proximate to the user device 454. The resident device 410 can be further configured to prioritize which device to send the announcement to in the event that the devices are proximate to one another (e.g., prioritize the mobile phone over the smart watch, or vice versa), to the user device 452. The resident device 410 can then transmit the announcement to the mobile phone for presentation (e.g., and not the smart watch).

[0082] It should be appreciated that the various scenarios described with reference to diagram 400 are representative. One or more aspects (e.g., variables) of each scenario can change and still perform embodiments as described herein, including but not limited to a particular sender device, a sender device location, a location of other resident devices within a region of a residential environment, a location of one or more candidate recipient devices (e.g., within or outside of a residential environment), a user profile type of a recipient, a type of a recipient device (e.g., a resident device or a user device), settings of each device, etc. For example, in one embodiment, there can be more than one resident device (e.g., multiple smart speakers) in a particular region. In that embodiment, the announcement can be transmitted to multiple smart speakers, where the smart speakers can synchronize the audio rendering of the announcement within the particular region (e.g., based on a synchronized clock time between the resident devices). In another example, a particular region of a residential environment (e.g., a nursery) can be excluded from receiving and rendering the announcement.

[0083] Figure 5 is another simplified block diagram 500 illustrating an example architecture of a system for transmitting a message to one or more devices for rendering an announcement, in accordance with some embodiments. 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 can be one of the one or more resident devices 504). Figure 5 Each of the elements depicted in diagram 500 can be similar to one or more elements depicted in other figures described herein. For example, user devices 502 can be similar to any of the other user devices described herein, etc. In some embodiments, at least some (e.g., and / or all) of the elements of diagram 500 can operate within the context of a residential environment (e.g., residential environment 101 of FIG. 1, Figure 1 diagram 400, Figure 4 diagram 400,

[0084] Turning in more detail to each element, the user devices in user devices 502 can be any suitable computing device (e.g., a mobile phone, a tablet, a personal computer (PC), smart glasses, a smart watch, etc.). In some embodiments, the user devices can perform any one or more of the operations of a user device described herein. Depending on the type of user device and / or the location of the user device (e.g., within or outside of a residential environment), the user device can be able to communicate using one or more network protocols (e.g., a Bluetooth connection, a Thread connection, a ZigBee connection, an infrared connection, a WiFi connection, etc.) and / or network paths over network 510 (e.g., including a LAN and / or a WAN), which is further described herein. In some embodiments, the user device will be connected to another device (e.g., a TV) through which the user device can provide data (e.g., notification messages, instructions, user interfaces) to be presented. As described herein, in some embodiments, the user device can be able to transmit messages to and / or receive messages from other devices of the residential environment. In some embodiments, the user device can determine whether to present an announcement (and / or a notification of an announcement) or block its display based on one or more rules. These rules can indicate conditions under which an announcement will be presented (e.g., displayed) or blocked. Some non-limiting examples of conditions that can affect whether an announcement is presented can include the current location of the user device (e.g., inside or outside of the residential environment), relative locations to other user devices (and / or resident devices), time of day, current activities associated with a user account of the user device, user preferences stored on the user device, etc.

[0085] In some embodiments, server device 508 can be a computer system including at least one memory, one or more processing units (or processors), a storage unit, a communication device, and an I / O device. In some embodiments, server device 508 can perform any one or more of the operations of a server device described herein. In some embodiments, these elements can be implemented in a similar manner (or differently) as described with reference to similar elements of resident device 506. In some embodiments, the storage unit of server device 508 can store data received from one or more devices of illustration 500. For example, the storage unit can store a list of user profiles of a residential environment and / or a list of user devices. The storage unit can also store one or more configuration settings (e.g., a prioritized list of devices to contact based on determined proximity between devices). In some embodiments, server device 508 can be used to route messages from a residential environment to other associated devices that are currently outside of the residential environment / route messages from these other associated devices to the residential environment.

[0086] In some embodiments, the resident devices 504 can correspond to any one or more of the resident devices described herein. For example, the resident devices 504 can correspond to one or more of the resident devices of the residential environment 402 described below. Figure 4 Each of the resident devices 504 can be any suitable computing device (e.g., a mobile phone, a tablet, a smart speaker device, a smart media player communicatively connected to a TV, etc.). In some embodiments, the resident devices can be positioned in a particular location (e.g., area) of the residential environment.

[0087] In some embodiments, the one or more networks 510 can include a WAN (e.g., the Internet) and / or a LAN. As described herein, a residential environment can be associated with a LAN, where devices within the residential environment can communicate with each other over the LAN. As described herein, a WAN can be external to the residential environment. For example, a router associated with the LAN (and thus the residential environment) can enable the transmission of traffic from the LAN to the WAN, and vice versa. In some embodiments, the server device 508 can be external to the residential environment, and thus communicate with other devices over the WAN. In some embodiments, the resident devices 504 can generally reside within the residential environment and communicate with other devices of the residential environment over the LAN. In some embodiments, the user devices 502 can be transient. For example, as described herein, a user device can be within the residential environment (e.g., and communicate over the LAN), while in another example, a user device can be external to the residential environment and communicate over the Internet (or other suitable network).

[0088] As described herein, the resident device 506 can represent one or more of the resident devices 504. In some embodiments, one or more features of the resident device 506 can also be implemented by one or more of the server device 508 and / or the user devices 502. The resident device 506 has at least one memory 520, one or more processing units (or processors) 536, a storage unit 538, a communication interface 540, and an input / output (I / O) device 542.

[0089] Turning in further detail to each element of the resident device 506, the processor 536 can be implemented in hardware, computer-executable instructions, firmware, or a combination thereof. Computer-executable instructions or firmware implementations of the processor 536 can include computer-executable instructions or machine-executable instructions written in any suitable programming language to perform the various functions described.

[0090] The memory 520 can store program instructions that are loadable and executable on the processor 536, as well as data generated during the execution of these programs. The memory 520 can be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM), flash memory, etc.), depending on the configuration and type of the resident device 506. In some implementations, the memory 520 can include multiple different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM. The resident device 506 can also include additional storage 538, such as removable storage or non-removable storage including, but not limited to, magnetic storage, optical discs, and / or tape storage. The disk drives and their associated computer-readable media can provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the computing devices. In some embodiments, the storage 538 can be used to store data content received from one or more other devices (e.g., the server device 508, other resident devices 504, and / or user devices 502). For example, the storage 538 can store a user profile of a user associated with a residential environment. The storage 538 can also store configuration settings, e.g., instructions indicating for transmitting an announcement to devices associated with a residential environment.

[0091] The resident device 506 can also include a communication interface 540 that allows the resident device 506 to communicate on the network 510 with a storage database, another computing device or server, a user terminal, and / or other devices. The resident device 506 can also include I / O devices 542, such as for implementing connections with a keyboard, a mouse, a pen, a voice input device, a touch input device, a display, a speaker, a printer, etc. In some embodiments, the I / O devices 542 can be used to output information related to an announcement and / or notifications of an announcement. This can include, but is not limited to, a light that turns on in a particular manner (e.g., a particular color, flashing, etc.) when an announcement arrives, audio, video, and / or text that is presented when an announcement arrives, etc.

[0092] Turning in more detail to the contents of the memory 520, the memory 520 can include an operating system 522 and one or more application programs or services for implementing the features disclosed herein, including a communication module 524, a message analysis module 526, a device identification module 528, a presentation module 530, a device location analysis module 532, and an encryption / decryption module 534. In some embodiments, any one or more of the application programs or services of the resident device 506 (or any other feature of a resident device described herein) can be used to implement the instant messaging service 130 of FIG. 1. Figure 1

[0093] ​The communication module 524 can include code that causes the processor 536 to generate messages, forward messages, reformat messages, and / or otherwise communicate with other entities. For example, as described herein, the communication module 524 can transmit and / or receive messages to and / or from other user devices 502, other resident devices 504, and / or server devices 508. As described herein, the communication module 524 can transmit messages via one or more network paths of the network 510 (e.g., via a LAN and / or a WAN associated with a residential environment).

[0094] The message analysis module 526 can include code that causes the processor 536 to receive and process messages that include an announcement associated with a spoken announcement. In some embodiments, one or more of the operations of the message analysis module 526 can be similar to those described with reference to block 202 of FIG. 2. For example, the message analysis module 526 can obtain an announcement record from a message by splicing an original record using splicing data. The message analysis module 526 can also determine, from a message, an identity of a sender, a location of the sender, and other suitable information, for example. Figure 2

[0095] The device identification module 528 can include code that causes the processor 536 to identify one or more devices for receiving an announcement. In some embodiments, one or more of the operations of the device identification module 528 can be similar to those described with reference to block 204 of FIG. 2. For example, the device identification module 528 can identify a device for receiving an announcement based on a location of the device, a location of a sender of the announcement, and / or other suitable information. Figure 2 ​The 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 yet 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 may 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.

[0096] 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 recipient 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) in part based on settings stored on the residing device 506 (and / or the recipient device's settings).

[0097] The device location analysis module 532 can include code that causes the processor 536 to determine the location of a particular device. In some embodiments, one or more of the operations of the device location analysis module 532 can be similar to those described with reference to the Figure 4 The described operations. For example, the device location analysis module 532 can receive location information from one or more of the user devices 502 and / or the resident device 504 that is used to determine the location of each device.

[0098] The encryption / decryption module 534 can include code that causes the processor 536 to encrypt and / or decrypt messages. For example, the encryption / decryption module 534 can transmit an encrypted record of an announcement (e.g., received via a microphone of the resident device 506) in a message sent to the server device 508. In one example, the server device 508 can not have access to a cryptographic key that can be operable to decrypt the encrypted message. The server device 508 can route the message to an appropriate recipient device that can have access to a cryptographic key (e.g., shared with one or more devices associated with the residential environment) and use the key to decrypt the record. Suitable data encryption algorithms can include DES, triple DES, AES, etc. In some embodiments, the server device 508 can also store cryptographic keys that can be used with such encryption algorithms. The encryption / decryption module 534 can utilize symmetric or asymmetric encryption techniques to encrypt and / or verify data.

[0099] Figure 6 is a simplified flowchart illustrating an example process 600 for transmitting a message to one or more devices for presenting an announcement, in accordance with some embodiments. In some embodiments, the process 600 can be performed by the server device 508 of FIG. 5. Figure 7 the process 700 of FIG. 6, Figure 9 the process 900 of FIG. 8, and / or Figure 11The processes 600 (processes 700, processes 900, and / or processes 1100) can be performed by a resident device, which can correspond to any one or more of the resident devices described herein. In some embodiments, the processes 600 (processes 700, processes 900, and / or processes 1100) can also (or alternatively) be performed by a server device or a user device, which can correspond to any of the server devices or user devices described herein, respectively. In some embodiments, the processes 600 (processes 700, processes 900, and / or processes 1100) can be performed in the context of (and / or in association with devices of) a home environment. The processes 600, 700, 900, and 1100 (described below) are each illustrated as logical flow graphs, each operation of which can represent a series of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored, for example, on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or in parallel to implement the processes.

[0100] Additionally, some, any, or all of the processes can be performed under the control of one or more computer systems configured with executable instructions to perform the process, and can be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executing collectively on one or more processing units, a

[0101] At block 602, a resident device (e.g., of a home environment) can receive a first message including an announcement. In some embodiments, the first message can include an audio recording, where the audio recording includes an announcement associated with a voice speaking the announcement. In some embodiments, one or more of the operations of block 602 can be similar to one or more operations described with reference to block 202 of FIG. 2. Figure 2

[0102] At block 604, the resident device can determine the announcement from the first message. In some embodiments, the resident device can determine the announcement by utilizing an NLP model trained to analyze the recording, as described herein. In some embodiments, the NLP model can be executed locally by the resident device. In some embodiments, the recording can be transmitted to a server device for execution of the NLP model (e.g.,​Figure 5 The NLP model can be used to determine stitching data that indicates a start point and an end point of the announcement within the recording. The resident device can utilize the stitching data to stitch the recording to obtain the announcement.

[0103] At block 606, the resident device can identify one or more devices for receiving the announcement, where the one or more devices are associated with the resident device and have a particular device type, respectively. In some embodiments, one or more of the operations of block 606 can be similar to one or more operations described with reference to block 204. In some embodiments, the resident device can maintain one or more user profiles that are respectively associated with the residential environment. Each user profile can be further associated with one or more devices (e.g., user devices and / or the resident device). The resident device can identify the one or more devices for receiving the announcement based on the devices identified according to the user profiles maintained (e.g., stored and / or retrieved) by the resident device. In some embodiments, each of the one or more devices can have a particular device type of a plurality of different device types (e.g., mobile device types, resident device types, etc.).

[0104] At block 608, the resident device can transmit the second message to the one or more devices for presenting the announcement by the one or more devices, respectively. In some embodiments, one or more of the operations of block 608 can be similar to one or more operations described with reference to block 206. In some embodiments, a network path for transmitting the second message to a particular device can depend in part on a location of the particular path. For example, the resident device can transmit the second message to a device located within the residential environment through a LAN associated with the residential environment. The resident device can also transmit the second message to a device associated with the residential environment that is currently away from the residential environment through a WAN (e.g., the Internet).

[0105] Figure 7 is another simplified flow diagram illustrating an example process for transmitting a message containing an announcement to a particular user device for presenting the announcement on the particular user device. In some embodiments, one or more of the operations of process 700 can be similar to operations described with reference to process 600. Figure 4

[0106] ​At block 702, the resident device can receive a first message including the announcement, where the first message indicates a recipient user account for receiving the announcement. In some embodiments, one or more of the operations of block 702 can be similar to one or more operations described with reference to block 602. In block 702, the first message can also indicate the recipient user account, for example, based on an element (e.g., a trigger mechanism) within a record of the announcement. For example, the announcement "son, come to the kitchen" can be determined to be directed to a "son" associated with the residential environment. The son can be associated with a user account (e.g., a user profile) of the residential environment, where the user profile can indicate one or more devices associated with the son. In some embodiments, other suitable information can be included within the first message that can be used to determine the recipient of the announcement and / or the recipient device. For example, the information can indicate an intended location (e.g., an area) within the residence, such as a particular room.

[0107] At block 704, the resident device can obtain the announcement from the first message. In some embodiments, one or more of the operations of block 704 can be similar to one or more operations described with reference to block 604.

[0108] At block 706, the resident device can obtain a recipient user account associated with the first message, where the recipient user account is associated with one or more devices. In some embodiments, one or more of the operations of block 706 can be similar to one or more operations described with reference to block 606.

[0109] At block 708, the resident device can identify a particular user device of the one or more devices associated with the recipient user account. In some embodiments, the resident device can identify the particular user device based on one or more factors. For example, the resident device can store instructions indicating a priority order for transmitting the announcement message to devices associated with the particular user account. In some embodiments, the priority order can indicate which device should be selected for receiving the announcement based on identifying which one or more devices associated with the user account are proximate to one another. In some embodiments, the particular location data of the devices can be associated with a confidence level. The confidence level can be one of the variables considered when determining whether the devices are proximate to one another and / or which device should be selected. For example, the resident device can detect respective locations of the particular user device and a second user device of the one or more devices associated with the recipient user account. The resident device can further detect that the second user device (e.g., a smart watch) of the one or more devices associated with the recipient user account is proximate (e.g., in the vicinity of, within a predefined distance threshold of) the particular user device (e.g., a mobile phone). The resident device can identify the mobile phone for transmitting the announcement (e.g., with a higher priority) and determine not to transmit the announcement to the smart watch (e.g., to avoid inundating the user with notifications). In some embodiments, the resident device can identify another resident device associated with the recipient user account for receiving the announcement. For example, the first message indicates a particular area for transmitting the device (e.g., a room within a residence). In this example, the resident device can identify a smart speaker device in the recipient user’s bedroom for transmitting the announcement. As described herein, it should be understood that any suitable selection and / or combination of recipient devices can be identified for receiving the announcement and / or notification.

[0110] At block 710, the resident device can transmit the second message to the particular user device for presenting the announcement by the particular user device. In some embodiments, one or more of the operations of block 710 can be similar to one or more operations described with reference to block 608.

[0111] Figure 8 is another simplified flow diagram illustrating an example process for transmitting a message to one or more devices, in accordance with some embodiments. Process 800 is an example high-level process for a system (e.g., a resident device 807, which can be similar to Figure 1 resident device 108 of FIG. 1) that can transmit (e.g., relay) a message including an announcement to one or more devices for presenting the announcement, in accordance with some embodiments. Similar to as described with reference to Figure 2 process 600, this process can be performed by a system that can be similar to Figure 1the residential environment 101 (and / or devices associated with the residential environment). The diagram 801 depicts exemplary states corresponding to the blocks of the process 800. The diagram 801 can include elements similar to those depicted with reference to the diagram 701. For example, the user 803 can be similar to the user 114 (e.g., outside of the residential environment), the user device 808 can be similar to the user device 124, the user device 821 can be similar to the user device 120, and the user device 823 can be similar to the user device 122. In this example, the user device 825 can correspond to another user device that is outside of the residential environment. Also, the network 817 can include a LAN associated with the residential environment. The network 817 can also include a WAN (e.g., the Internet). Figure 1 Figure 1 Figure 1

[0112] Turning in further detail to the process 800, at block 802, the system (e.g., the resident device 807) can receive a first message that includes an announcement directed to the residential environment. For example, similar to as described herein, the announcement can be associated with a voice that speaks the announcement. Using the diagram 801 for illustration, the user 803 (e.g., Dad) can wish to announce to other members of the residential environment that dinner is ready. The user 803 speaks the voice message 805: "Computer, announce that I am coming home." The user device 808 can receive the voice message 805 as input, for example, via a microphone attached to the user device 808, and then record and / or process the voice message 805. In one example, the user device 808 can then analyze the 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., the resident device 807), where the system can then analyze the recorded message to determine (e.g., obtain) the announcement. In this example, the user device 808 transmits the message from outside of the residential environment. Thus, in one example, the first message from the user device 808 can be transmitted to the resident device 807 via a server device (e.g., the server device 508) over a WAN, which can relay the first message to the resident device 807 that is located within (e.g., connected to) a LAN associated with the residential environment. Figure 5

[0113] ​​​​At block 804, the system can verify that the user type of the user speaking the announcement is authorized to transmit the announcement to the residential environment. For example, continuing the illustration 801 for purposes of example, upon receiving the first message, the resident device 807 can analyze the first message to determine one or more elements. This can include, for example, based on performing NLP on the voice message 805 (e.g., obtained from the first message): determining a device identifier of the user device 808 that initially sent the message, determining a location of the user device 808 (e.g., outside of the residential environment), determining an associated sender user type of the user account (e.g., of the application executing on the user device 808) that transmitted the announcement, determining (e.g., confirming) a sender user identity, etc. The resident device 807 can then utilize the one or more elements to verify that the user type of the user speaking the announcement (e.g., the user 803) is authorized to use the resident device 807 to relay the announcement to other devices of the residential environment.

[0114] In some embodiments, the resident device 807 can perform the verification by retrieving user account information associated with one or more user accounts (e.g., associated with the residential environment) from the table 827. For example, the table 827 can indicate that the username 809 of the dad’s account is “Dad,” the user identifier is “123ABC,” and the user account type (e.g., user type) is “Administrator.” Similarly, the username 811 of the mom account can be “Mom,” with the user type being “Administrator,” the username 813 of the temporary babysitter’s account can be “Temporary Babysitter,” with the user type being “Shared User,” and similarly, the username 815 of the son’s account, the user type can be “Shared User.” Continuing this example, the resident device 807 can determine (e.g., based on performing NLP on the voice message 805 and / or metadata from the first message) that the announcement is from Dad, and is thus associated with the dad’s account type of “Administrator.” In this example, the resident device 807 can determine that the user account type of “Administrator” is authorized to transmit the announcement from outside of the residential environment (e.g., over the WAN) to other devices of the residential environment. In this example, the “Shared User” type can not be authorized to transmit the announcement from outside of the residential environment to the residential environment, but can be able to do so when inside the residential environment (e.g., connected to the LAN). Thus, because the announcement is associated with the dad’s account (e.g., Dad’s voice and / or Dad’s device), the resident device 807 can authorize the broadcast of the message to other devices of the residential environment. In another example, if the user 803 is the temporary babysitter (e.g., making the announcement from outside of the residence as a shared user), the resident device 807 can block the broadcast of the announcement. In at least this way, the techniques can improve security in relaying messages to devices of the residential environment.

[0115] Although in this example, verification is performed on a message arriving from outside the residential environment, implementations are not so limited. For example, in another scenario, assume that a temporary babysitter transmits an announcement from within the residential environment (e.g., via their mobile phone device). In this example, the resident device 807 can first verify that the temporary babysitter (e.g., with the username 813) is a shared user of the residential environment, and / or verify that the particular device is registered with the username 813. This can be used to prevent other devices that can connect to the WiFi of the residence but are not otherwise connected to the residential environment (e.g., have a registered account) from broadcasting announcements to the residence. In this example, upon verifying that the temporary babysitter has a registered account as a shared user and that the device is currently transmitting the announcement from within the residential environment, the resident device 807 can successfully verify that the temporary babysitter's device is authorized to transmit the announcement to the residential environment.

[0116] At block 806, the system can transmit a second message to one or more devices for presentation, the second message formatted based on the user type. Continuing the above illustration, upon verifying that the user type is authorized to transmit the announcement, the resident device 807 can determine one or more devices associated with the residential environment that will receive the announcement. As described herein, the resident device 807 can utilize any suitable method to determine which user types, user accounts, and / or devices will receive the announcement. For example, the resident device 807 can determine that a particular user type (e.g., "Administrators") will receive the announcement. In another example, the resident device 807 can determine that a subset of user accounts associated with the residential environment (e.g., and / or the associated devices of the subset of user accounts) will receive the message. In another example, the resident device 807 can determine that only those devices located within the residential environment (e.g., with a user account registered with the residential environment and / or currently connected to the LAN of the residential environment) will receive the message. In this example, the resident device 807 determines that both user devices 821 and 823 (e.g., associated with users 112 of the residential environment) located within the residential environment will receive the second message (e.g., via the LAN), while user device 825 (e.g., located outside of the residential environment communicating over a WAN) will not receive the second message. In another example, both devices located within and outside of the residential environment (e.g., including user devices 821, 823, and 825) will receive the second message. Figure 1

[0117] ​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). 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.

[0118] 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).

[0119] 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).

[0120] 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.

[0121] 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.

[0122] 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).

[0123] 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.

[0124] 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.

[0125] 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 1002. User 1004 (e.g., a temporary babysitter) can be associated with user device 1008 (e.g., a mobile phone), where user device 1008 and / or the temporary babysitter's user account is registered with the home environment. It will be appreciated that, Figure 10 Any one or more of the devices (e.g., user devices and / or resident devices) described within the home environment can be associated with (e.g., registered with) the home environment (e.g., via an association with a particular user account and / or with the home environment). Home environment room A 1002 can include resident device 1010, which can be closer to user 1004 than resident device 1012 (also located in home environment room A 1002). Resident device 1010 (and / or another other suitable resident device of the home capable of operating as a hub device) maintains table 1001. Table 1001 can include information associated with user accounts and / or user devices that are associated with (e.g., registered with) the home environment. For example, table 1001 can indicate that the user identifier for the temporary babysitter's account is "ABC123" and that the temporary babysitter account is a shared user type. As described further herein, table 1001 can be used by resident device 1010 to determine how to relay messages among user accounts and / or associated devices of the home environment.

[0126] Home environment room B 1022 can include user 1027 (e.g., mom). User 1027 can be associated with the user ID "456DEF" in table 1001, where the user account is an administrator type. User 1027 can be associated with user device 1026 (e.g., a smart watch) that is associated with mom's user account that is registered with the home environment. Home environment room B 1002 can also include resident device 1024 that is also registered with the home environment.

[0127] Also depicted in diagram 1000 is a workplace facility 1016 that is outside of the home environment. The workplace facility includes a room in which user 1019 (e.g., dad) is holding a meeting with another individual. User 1019 can be carrying user device 1018 (e.g., a mobile phone) and can also be wearing a smart watch (e.g., user device 1020).

[0128] Additionally, depicted in diagram 1000 is a vehicle 1014. The vehicle can also be outside of the home environment and can be on the way to another destination (e.g., the home or another location). Vehicle 1014 can include a computing device that is registered as a device associated with the son of mom and dad. The son (e.g., having user ID "DEF456") can be registered as a shared user type.

[0129] In some embodiments, devices associated with the residential environment can be communicatively connected via network 1013. As described herein, network 1013 can include any suitable one or more sub-networks (e.g., a LAN associated with the residential environment, and / or a WAN (e.g., the Internet)). For example, a message communicated by user device 1008 to resident device 1024 (e.g., both located within the residential environment) can be conveyed over the LAN, while another message communicated by user device 1008 to vehicle 1014 can be conveyed via both the LAN and the WAN. For example, a message can be communicated by user device 1008 to resident device 1010, which can then relay the message to vehicle 1014 over the Internet. In some embodiments, resident device 1010 can determine whether to relay a message based in part on a determination (e.g., via the LAN of the residential environment, or via the Internet) of a particular network path from which the initiating message was received.

[0130] Turning further in detail to the example techniques of diagram 1000, consider a scenario in which user 1004 (e.g., a temporary babysitter) speaks a message 1006 into resident device 1010: "Computer, announce that the baby has been put to sleep." In this scenario, resident device 1010 can determine how to handle the message based on one or more rules.

[0131] In some embodiments, resident device 1010 can include rules that determine how to handle a message based on a type of user of the sender. For example, one rule can instruct that messages from a shared user type are to go only to an administrator user account type. In the example of diagram 1000, in which the temporary babysitter account is a shared user type, message 1006 can be transmitted to one or more devices associated with the mom and dad (e.g., both of which are administrator accounts).

[0132] In some embodiments, the resident device 1010 can include rules that determine how to handle messages based on an identifier of a sender's user account. For example, the table 1001 can indicate a destination rule 932 that messages sent from the user ID "ABC 123" (e.g., the temporary sitter's account) are to be automatically routed to the mom and dad's accounts (e.g., devices associated with the mom and dad's accounts). In another example, a destination rule 928 can indicate that messages sent from the dad's account are to be routed to all user accounts of the residential environment. Similarly, a destination rule 930 can route messages from the mom to all user accounts, and a destination rule 934 can route messages from the son to all user accounts. Note that although in this example, the son and the temporary sitter are both shared user types, the respective destination rules can differ based on the particular user account identifier. Thus, in the above example, based on the destination rule 932 for the particular sender user identifier, messages from the temporary sitter (e.g., user 1004) can be routed to the mom and dad's user accounts.

[0133] In another example, the resident device 1010 can determine how to relay a message based in part on a location of the device and / or a type of recipient user account. For example, assume a rule can indicate that shared users can transmit (and / or receive announcements) while in the residential environment, but can not transmit (or receive announcements) while outside the residential environment. In the above example, based at least in part on verifying that the message 1006 was sent from the residential environment (e.g., where the resident device 1010 received the message), the user 1004 (e.g., a shared user type) can be verified to transmit an announcement of the message. Also, the mom and dad's accounts (e.g., administrators) can receive the relayed message. In another example, where the user 1004 is the son and the vehicle 1014 is associated with the temporary sitter, although the destination rule 934 can indicate that the message can be relayed to all user accounts, the resident device 1010 can determine that because the temporary sitter account is a shared user type, the resident device 1010 will not relay the message to the device associated with the temporary sitter's account (e.g., the vehicle 1014) as long as the location of the vehicle 1014 is outside the residential environment (e.g., not connected to the LAN of the residential environment).

[0134] As described herein, in some embodiments, a recipient device can determine how to handle a relayed message based on a verification of one or more conditions. In one non-limiting example, a recipient device can block a message upon determining that the device is associated with the same user account as the person who spoke the message. For instance, using the illustration 1000 for example, the resident device 1010 can determine to relay the message 1006 to the user device 1008 of the temporary babysitter. However, the user device 1008 can determine to block presentation of the announcement of the message 1006 based on a format of the message (e.g., data indicating an identifier of the sender) based on determining that the user device 1008 is associated with the sender. It should be appreciated that the message can still be optionally received and / or stored by the user device 1008, but the announcement can not be presented on a display of the user device 1008. In another example, a device can present or block a message depending on a proximity of the device to another device that is also associated with the residential environment. For instance, the resident device 1012 can determine that because it is in close proximity to the resident device 1010 and / or the user device 1008 (e.g., in the same room), it will block (e.g., not present) the announcement on a speaker of the resident device 1012, even though it can still receive and / or store the message 1006 from the resident device 1010. In some embodiments, the resident device 1012 can determine to present the message, for instance, in the case that a determined distance between the devices is greater than a predefined threshold distance. In some embodiments, a device that receives (e.g., records) a message from a sender (e.g., in this case, the resident device 1010) can also block presentation of the announcement. Consider another scenario in which both the resident device 1010 and the resident device 1012 receive an announcement (e.g., from the resident device 1024). In this case, depending on a configuration of the resident devices in the same room (e.g., the residential environment room A 1002), the devices can synchronize presentation of audio of the message (e.g., present a stereo playback on the speakers of the resident devices).

[0135] In some embodiments, a recipient device associated with another recipient user account (e.g., in addition to the sender's user account) can determine to present or block the message according to one or more other conditions. For example, as described herein, a recipient device can determine whether to present a message based on proximity to another device or devices. Using the illustration 100 for example, both the resident device 1024 and the user device 1026 (e.g., a smart watch associated with mom's user account) can receive the message 1006. However, in one example, the user device 1026 can determine to block presentation of the message upon determining that the resident device is nearby. Thus, the resident device 1024 can present the message 1006 via the resident device's speaker, while the smart watch can block the message. It should be appreciated that any suitable arrangement of presentation and / or blocking of the message can be performed by each device. For example, in another scenario, the smart watch can present a pop-up notification on the watch's display, but can not vibrate the watch upon receiving the message.

[0136] In some embodiments, a device can determine whether to block a message based on a condition corresponding to detecting a particular type of activity currently associated with the recipient user account. For example, as depicted in the illustration 1000, the user 1019 (e.g., dad) can currently be participating in a meeting. In one example, both the user device 1018 and the user device 1020 can have access to dad's electronic calendar and can determine that the meeting is in progress. Thus, both devices can block presentation of the message (and / or a notification of the message) on each device's respective display. In another example, a combination of conditions and / or rules can be utilized to determine when and / or how to present a message. For example, both the user device 1018 and the user device 1020 can be in close proximity to each other. In this example, the smart watch (e.g., user device 1020) can have a higher priority to display the message 1006 when in close proximity to the mobile device (e.g., user device 1018). Thus, when the meeting is complete, the smart watch can display a notification of the message 1006, while the mobile device can store the message but not present any notification. It should be appreciated that any suitable rules and / or conditions can be utilized to determine how and when to present or block a message. For example, the resident device 1010 and / or the personal user device can store user preferences associated with presenting messages and / or notifications of messages. One example user preference can be to not present any notifications for a certain time range (e.g., when the user is sleeping), which can correspond to a "do not disturb" time period. In at least these ways, the technology can provide a better user experience of providing alerts to users in a timely manner of an announcement of a residential environment, while not overwhelming the user with excessive messages on one or more devices.

[0137] Figure 11 FIG. 12 is another simplified flow diagram illustrating an example process for transmitting a message to one or more devices, in accordance with some embodiments.

[0138] At block 1102, a resident device associated with the home environment receives a first message including an announcement, the announcement associated with speech uttering the announcement. In some embodiments, one or more operations of block 1102 can be similar to as described with reference to block 902 of FIG. 9. Figure 9

[0139] At block 1104, the resident device determines that the speech uttering the announcement is associated with a particular user account of a particular user type of the home environment. In some embodiments, one or more operations of block 1104 can be similar to as described with reference to block 904 of FIG. 9. Figure 9

[0140] At block 1106, the resident device determines one or more recipient user accounts for receiving the announcement based on the particular user account or the particular user type. For example, as described with reference to FIG. 9, the resident device can determine that a message transmitted from a user device associated with a shared user type (e.g., from an application executing on the user device) can be intended for a subset of user account types (e.g., only administrator types) and / or a subset of user accounts (e.g., user account identifiers of "Mom" and "Dad"). Figure 10

[0141] At block 1108, the resident device determines one or more devices associated with the home environment to receive the message. In some embodiments, a device of the one or more devices is selected for receiving the message based on a location of the device or a type of a respective recipient user account of the one or more recipient user accounts. In some embodiments, one or more operations of block 1108 can be similar to as described with reference to FIG. 9. For example, a device associated with a shared user type can be excluded from receiving the message if it is determined that a current location of the device is outside of the home environment (e.g., not available via the residential LAN). It should be understood that any suitable method can be utilized to determine recipient devices. For example, in some embodiments, only resident devices of a home can receive announcements. In another example, only user devices having a certain hardware configuration can receive announcements. In yet another example, only devices located within a particular area or areas of a home can receive announcements. Figure 10

[0142] At block 1110, the resident device transmits a second message to the one or more devices for presenting the announcement, wherein a device of the one or more devices presents the second message based on a verification of one or more conditions. In some embodiments, one or more operations of block 1110 can be similar to as described with reference to FIG. 9. Figure 10 ​​​​One or more conditions can correspond to any suitable condition, including, for example, a current location of the user device (e.g., within or outside of a residential environment), a proximate location to other user devices (and / or resident devices), a time of day, a current activity associated with a user account of the user device, a user preference stored on the user device, etc.

[0143] Other preferred and non-limiting embodiments or aspects will be set forth in the following numbered clauses:

[0144] Clause 1 : A method comprising: receiving, by a resident device, a first message comprising an announcement, the announcement being associated with a voice utterance that spoke the announcement, the first message indicating a recipient user account for receiving the announcement; obtaining, by the resident device, the announcement from the first message; obtaining, by the resident device, the recipient user account associated with the first message, the recipient user account being associated with one or more devices; identifying, by the resident device, a particular user device of the one or more devices associated with the recipient user account; and transmitting, by the resident device, a second message to the particular user device for presentation of the announcement on the particular user device.

[0145] Clause 2: The method of clause 1, further comprising: detecting, by the resident device, a second user device of the one or more devices associated with the recipient user account is proximate to the particular user device; and selecting, by the resident device, the particular user device to present the announcement instead of the second user device based at least in part on respective locations of the particular user device and the second user device with respect to a user corresponding to the recipient user account.

[0146] Clause 3: The method of any of clauses 1-2, wherein the particular user device and the resident device are located within a residential environment, and wherein the second message is transmitted to the particular user device over a local area network associated with the residential environment.

[0147] Clause 4: The method of any of clauses 1-3, wherein the resident device is located in a residential environment and the particular user device is located outside of the residential environment, and wherein the second message is transmitted to the particular user device via a server device that is outside of the residential environment.

[0148] Clause 5: The method of any of clauses 1-4, wherein the resident device is located within a residential environment comprising one or more zones, a user associated with the particular user device is determined to be in a particular zone of the residential environment, and wherein the second message is transmitted to the particular user device based at least in part on being located within the particular zone.

[0149] Clause 6: The method of any of clauses 1-5, wherein the second user device is also located within the particular zone of the residential environment.

[0150] Clause 7: A method comprising: receiving, by a resident device associated with a residential environment, a first message comprising an announcement, the announcement being associated with a voice uttering the announcement; determining, by the resident device, that the voice uttering the announcement is associated with a particular user type of the residential environment; verifying, by the resident device, that the particular user type is authorized to transmit the announcement to devices associated with the residential environment; determining, by the resident device, one or more devices associated with the residential environment that are to receive the announcement; generating, by the resident device, a second message formatted based at least in part on the particular user type; and transmitting, by the resident device, the second message to the one or more devices to present the announcement based at least in part on the format of the second message.

[0151] Clause 8: The method of 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 comprising at least one of: (I) an administrator type, or (II) a shared user type.

[0152] Clause 9: The method of any of clauses 7-8, wherein the first message is received from a user device that does not have access to address data respectively associated with the one or more devices.

[0153] Clause 10: The method of any of clauses 7-9, wherein the first message is received from a user device located outside of the residential environment and associated with the particular user type, and wherein the particular user type and / or the user device is authorized to transmit announcements to the one or more devices from outside of the residential environment.

[0154] Clause 11: The method of any of clauses 7-10, wherein a user device of the one or more devices is located outside of the residential environment, and wherein the user device is associated with a second particular user type that is authorized to receive messages while located outside of the residential environment.

[0155] Clause 12: The method of any 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 uttering the announcement.

[0156] Clause 13: The method of any 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 uttering the announcement.

[0157] Clause 14: The method of any of clauses 7-13, wherein the resident device is located within a first room of the residential environment, and wherein a second resident device of the residential environment prevents presentation of the announcement based at least in part on also being located within the first room.

[0158] Clause 15: The method of any of clauses 7-14, wherein the announcement is spoken into the resident device, and wherein the resident device prevents presentation of the announcement via the resident device.

[0159] Clause 16: The method of any of clauses 7-15, wherein the voice speaking the announcement is associated with a particular user account of the particular user type, wherein the particular user account is associated with a plurality of user devices, and wherein the plurality of user devices respectively prevent presentation of the announcement.

[0160] Clause 17: The method of any of clauses 7-16, further comprising: determining, by the resident device, one or more recipient user accounts respectively associated with the residential environment based at least in part on the particular user type, wherein a device of the one or more devices is associated with a recipient user account of the one or more recipient user accounts.

[0161] Clause 18: The method of clause 17, further comprising: determining, by the resident device, a sender user account of the particular user type, the sender user account being associated with the voice speaking the announcement; and determining, by the resident device, the one or more recipient user accounts based at least in part on the sender user account.

[0162] Clause 19: The method of any 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, that the user device and the particular user account are authorized to receive the announcement based at least in part on at least one of: (I) a location of the user device, or (II) a type of the recipient user account.

[0163] Clause 20: The method of clause 19, wherein the user device prevents presentation of the announcement based at least in part on determining that a second device is proximate to the user device.

[0164] Clause 21: The method of clause 20, wherein the second device corresponds to another resident device or another user device associated with the recipient user account.

[0165] Clause 22: The method of clause 19, wherein the user device presents the announcement based at least in part on detecting a particular activity type currently associated with the recipient user account.

[0166] Clause 23: The method of clause 19, wherein the user device suppresses the announcement based at least in part on detecting a particular activity type currently associated with the recipient user account until a later time.

[0167] Clause 24: The method of any of clauses 7-23, wherein one of the one or more devices is associated with a particular area of the residential environment, and wherein the particular area is selected by the resident device for receiving the second message based at least in part on at least one of: (I) the particular user type, or (II) a sender user account associated with the speech that spoke the announcement.

[0168] Clause 25: The method of any of clauses 7-24, further comprising: receiving, by the resident device, a response message from one of the one or more devices, wherein at least one device associated with the speech that spoke the announcement is proximate to the resident device and is also associated with the residential environment; and presenting, by the resident device, the response message, wherein the at least one device suppresses presentation of the response message.

[0169] Clause 26: The method of any 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 a device of the one or more devices further comprises: determining that the device is at least one of: (I) connected to the local area network, or (II) authorized to receive the announcement when not connected to the local area network.

[0170] Clause 27: The method of any of clauses 7-26, wherein the first message is received from a user device located outside of the local area network, the user device being associated with the particular user type, and wherein verifying the particular user type further comprises: determining that the particular user type is authorized to transmit the announcement to a device associated with the residential environment when located outside of the local area network.

[0171] Other embodiments of the disclosure can 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 a method according to any of clauses 1-27.

[0172] Other embodiments of the present disclosure can be directed to a computer readable medium storing computer executable instructions for controlling one or more processors to perform a method according to any of clauses 1-27.

[0173] The above describes illustrative techniques for transmitting a message including an announcement to one or more devices for presenting the announcement. Some or all of these techniques can be implemented, at least in part, by architectures such as those shown at least in the above Figures 1-11 descriptions, many implementations are described with reference to server devices, controller devices (e.g., resident devices), and user devices. It should be understood, however, that other types of computing devices can be suitable for performing the techniques disclosed herein. In addition, various non-limiting examples are described in the foregoing description. For purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the examples. It should be apparent, however, that certain embodiments can be practiced in the absence of these specific details. Furthermore, sometimes

[0174] Various embodiments can also be implemented in a wide variety of operating environments, which in some cases can include one or more user computers, computing devices or processing devices which can be used to operate any of a number of applications. User or client devices can include any of a number of general purpose personal computers, such as desktop or laptop computers running a variety of

[0175] Most embodiments utilize at least one network to facilitate communications between various hardware components. The network can be, for example, an intranet, the Internet, a spinet, a local area network, a wide area network, a virtual private network, an extranet, a public switched telephone network, cobranet, infrared network, wireless network, or any combination thereof. The network can also be secured through a variety of methods, such as through virtual private networks, secure socket layer technology, secure hypertext transfer protocol, encryption technology, firewalls, and password protection techniques, among others.

[0176] In embodiments utilizing a network server, the network server can run any of a variety of server or mid-tier applications, including HTTP servers, FTP servers, CGI servers, data servers, Java servers, and business application servers. One or more server(s) can also be capable of executing programs or scripts in response to requests from user devices, such as by executing one or more applications that can be implemented as one or more scripts in any programming language, such as C, C# or C++, or any scripting language, such as Perl, Python, or TCL, as well as combinations of any of the above, including extensions, modifications, versions, and derivations thereof. The server(s) also can include database servers, including without limitation those available from Oracle®, Microsoft®, Sybase®, and SQL Server®, or any other server capable of executing portions of one or more applications, processes, or scripts comprising steps or functions, as appropriate.

[0177] The environment can include a variety of data stores and other memory and storage media as discussed above. These can reside in a variety of locations, such as on a storage medium local to (and / or resident to) one or more of the computers or remote from any or all of the computers across the network. In a particular set of embodiments, the information can reside in a storage-area network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers, servers, or other network devices can be stored locally and / or remotely, as appropriate. Where a system includes computers in the form of servers or other network devices, each such device can include hardware sufficient to operate as attributed to the devices in the system, including aspects for receiving, transmitting, processing, storing, and communicating data and information for the system. Users and / or users' devices are adapted, for example, to interact with or perform tasks utilizing the system.

[0178] Such devices also can include a computer-readable storage media reader, a communications device (e.g., a modem, a network card (wireless or wired), an infrared communication device, etc.), and working memory as described above. The computer- readable storage media reader can be connected with, or configured to receive, a non-transitory computer-readable storage medium, such as a removable storage unit, and / or a storage device, as described above. The system and various devices also typically will include a number of software applications, modules, services, or other elements located within at least one working memory device, including an operating system and application programs, such as a client application or browser. It should be appreciated that alternate embodiments can have numerous variations from that described and / or illustrated herein. For example, customized hardware might also be used and / or particular elements might be implemented in hardware, software (including portable software, such as applets) or both. Further, connection to other computing devices such as network input / output devices can be employed.

[0179] Non-transitory storage media and computer-readable storage media for containing code or portions of code can include any appropriate media known or used in the art, such as but not limited to, any type of disk including floppy disks, optical discs, DVDs, CD-ROMs, gas storage media, and / or other storage media. Such media can also include, but is not limited to, portable storage devices, hard drives, or diskettes, as well as other storage media. In some embodiments, the storage media can be encoded with one or more software applications, such as an application for detecting and / or correcting errors in a data stream. In other embodiments, the storage media can be encoded with one or more software applications specific to the operation of the system, such as an application for detecting and / or correcting errors in a data stream. Based at least in part on the disclosure and teachings provided herein, a person of ordinary skill in the art will appreciate other ways and / or methods to implement various embodiments. However, computer-readable storage media do not include transitory media such as modulated data signals and / or carrier waves.

[0180] Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. It will be apparent to those skilled in the art that various modifications and changes can be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the claims that follow. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.

[0181] Other variations are within the spirit of the present disclosure. Thus, while the disclosed technology is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the disclosure to the specific form or forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the disclosure, as defined in the appended claims.

[0182] The use of the terms “a” and “an” and “the” and similar referents in the context of describing the disclosed embodiments (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. The term “connected” is to be construed as partly or fully inclusive, unless otherwise indicated herein or clearly contradicted by context. The phrase “based on” is to be construed as meaning “based, at least in part, on,” unless otherwise indicated herein or clearly contradicted by context. Unless otherwise stated herein, recitation of a range of values herein is merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, and each separate value is incorporated in the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate embodiments of the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.

[0183] Unless specifically stated otherwise, the use of certain language or terminology, for example, the phrase “at least one of’ the list “X, Y, and Z,” in the context of describing the disclosed embodiments (especially in the context of the following claims) is to be construed in the manner set forth in the immediately preceding paragraph (i.e., as meaning “one or more of X, Y, and / or Z”). Thus, for example, the phrase “at least one of’ the list “X, Y, and Z” is to be interpreted as meaning “one or more of X, Y, and / or Z.” Additionally, unless specifically stated otherwise, the use of certain language or terminology, for example, the phrase “at least one of’ the list “X, Y, and Z,” in the context of describing the disclosed embodiments (especially in the context of the following claims) is also to be construed in the manner set forth in the immediately preceding paragraph (i.e., as meaning “one or more of X, Y, and / or Z”).

[0184] Preferred embodiments of the present disclosure are described herein, including the best mode known to the inventors for carrying out the present disclosure. Variations of those preferred embodiments can become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventors expect skilled artisans to employ such variations as appropriate, and the inventors intend for the present disclosure to be practiced with all modifications that can come within the scope of the claims attached hereto. To the extent such variations are within the scope of the claims attached hereto, then they are intended to be encompassed by the claims. Accordingly, no limitation is placed on the scope of the present disclosure by the description set forth above. All or a portion of the disclosure can therefore be put into practice without departing from the scope or spirit of the present disclosure. The present disclosure includes any alterations and further modifications in the conceptual scope of the related art based on the described embodiments and / or attached claims. Thus, the scope of the present disclosure should not be limited to the specific illustrative described herein, but only by the claims that issue herewith. To the extent that there is a plurality of claims, these are intended to address different embodiments of the present disclosure. To the extent that there are multiple dependent claims, these are intended to address different embodiments of the present disclosure.

[0185] All references cited herein, including publications, patent applications, and patents, are hereby incorporated by reference to the same extent as if each reference were individually and specifically incorporated by reference and were being presented in its entirety herein.

[0186] As described above, one aspect of the present technology is the collection and use of data (e.g., user profiles, user device information). The present disclosure contemplates that, in some instances, such collected data can include personal identifiable information (PII) data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data can include demographic data, location-based data, telephone numbers, email addresses, twitter ID’s, home addresses, or any other identifying or personal information.

[0187] The present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of the user. For example, the personal information data can be used to transmit messages including announcements to a particular user device of an associated user.

[0188] The present disclosure contemplates that the entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and / or privacy practices. In particular, such entities should implement and consistently use 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 by users, and should be updated as the collection and / or use of data changes. Personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Further, such collection / sharing should occur after receiving the informed consent of the users. Additionally, such entities should consider taking any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices. In addition, policies and practices should be adapted for the specific type of personal information data being collected and / or accessed and adapted to specific legal and industry standards and requirements. For example, in the US, collection or sharing of some health data can be governed by the Health Insurance Portability and Accountability Act (HIPAA); while in the European Union the collection and sharing of such information can be governed by the General Data Protection Regulation (GDPR). Similarly, in the US, the Family Educational Rights and Privacy Act (FERPA) can govern the collection, use, and sharing of student educational data, while the Children’s Online Privacy Act (COPPA) can add an extra layer of privacy concerns for the collection of data from younger users. Therefore, depending on the type of data being collected and used, the policies and practices of the entity should be adapted to qualify for and adhere to the requirements and practices of whatever regulatory bodies or industry standards that apply.

[0189] Regardless of the foregoing, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and / or software elements can be provided to prevent or block access to such personal information data. For example, in the case of service related to facial recognition, the present technology can be configured to allow users to "opt in" or "opt out" of participation in the collection of personal information data during registration for services or anytime thereafter. In addition to providing the "opt in" and "opt out" options, the present disclosure contemplates providing notifications relating to the access or use of personal information. For instance, a user can be notified upon download of an application that their personal information data will be accessed. Then, subsequent to the application accessing the personal information data, the user can be given the opportunity to review the access.

[0190] Moreover, it is the intent of the present disclosure that personal information data should be managed and handled in a manner that minimizes risks of unintentional or unauthorized access or use. Risk can be minimized by limiting the collection of data and deleting data once it is no longer needed. In addition, and when applicable, data de-identification can be used to protect a user's privacy. De-identification can be facilitated, when appropriate, through removal of certain identifiers (e.g., date of birth, etc.), control of the amount or specificity of data stored (e.g., collecting location data at a city level rather than at a

[0191] Thus, while the present disclosure has been broadly categorized and described above as using personal information data to implement one or more various disclosed embodiments, the present disclosure also contemplates that various embodiments can also be implemented without the need for access to such personal information data. That is, various embodiments of the present technology can function without the use of, or access to, all or some of this personal information data.

Claims

1. A method for transmitting a message, comprising: receiving, by a first device associated with a residential environment, a first message including an announcement, the announcement associated with a voice uttering the announcement; determining, by the first device, the announcement from the first message; identifying, by the first device, one or more devices for receiving the announcement, the one or more devices associated with the first device, each of the one or more devices having a particular device type from a plurality of different device types including at least a mobile device; maintaining one or more user profiles respectively associated with the residential environment, a second device of the one or more devices associated with a particular user profile of the one or more user profiles; determining, by the first device, a network path for transmitting a second message based at least in part on a location of the second device of the one or more devices; in accordance with a determination that the second device is within a local area network associated with the residential environment, transmitting, by the first device, the second message to the second device over the local area network associated with the residential environment for presenting the announcement by the second device, the second message including the announcement; in accordance with a determination that the second device is remote from the local area network associated with the residential environment and the second device is associated with a shared user profile, determining not to transmit the second message to the second device; and in accordance with a determination that the second device is remote from the local area network associated with the residential environment and the second device is associated with a different type of user profile than the shared user profile, transmitting, by the first device, the second message to the second device over a wide area network for presenting the announcement by the second device.

2. The method of claim 1, wherein: the second device is associated with the first device based at least in part on both devices being associated with the residential environment.

3. The method of any of claims 1-2, wherein the first device corresponds to a server device or a resident device.

4. The method of any of claims 1-2, wherein the first device is further associated with a local area network (LAN) that interconnects devices via at least one of a Bluetooth connection, a Thread connection, a ZigBee connection, an infrared connection, or a WiFi connection.

5. The method of any of claims 1-2, wherein a form of presenting the announcement is based at least in part on a respective particular device type of each device, the form including at least one of a text transcript, an audio announcement, an image, or a video.

6. The method of any of claims 1-2, wherein the first message includes an audio file, the audio file including the announcement, and wherein determining the announcement from the first message further comprises: classifying a portion of the audio file as the announcement, the portion having a start point and an end point within the audio file, the classifying based at least in part on a trigger mechanism indicating the announcement within the audio file; and ​ ​ stitching, by the first device, the audio file at the start point and the end point.

7. The method of claim 6, wherein classifying the portion of the audio file as the announcement further comprises: transmitting, by the first device, the audio file to a remote server, wherein the remote server is configured to classify the portion of the audio file as the announcement; and receiving, by the first device from the remote server, stitching data including an indication of the start point and the end point.

8. The method of any of claims 1-2, wherein the announcement is spoken by the voice directly to the first device, the first device being a resident device located within the residential environment.

9. The method of any of claims 1-2, wherein the announcement is spoken by the voice to a user device associated with the first device, the first device receiving the first message from the user device.

10. The method of claim 9, wherein the user device is a mobile device located outside or within the residential environment associated with the first device.

11. The method of claim 2, wherein the second device is also a resident device associated with a zone of the residential environment.

12. The method of claim 2, wherein the first message includes a selection of a particular one or more zones of the residential environment to which the second message should be transmitted.

13. The method of claim 2, further comprising transmitting, by the first device, the second message to the one or more devices for presentation of the announcement by the one or more devices, respectively, wherein the one or more devices include a subset of devices associated with the residential environment, the one or more devices each having been selected for receiving the second message, and the selection is indicated within the first message.

14. A device comprising: a memory including computer-executable instructions; and one or more processors in communication with the memory and configured to access the memory and execute the computer-executable instructions to perform the method of any of claims 1-13.

15. One or more computer-readable storage media comprising computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any of claims 1-13.

16. A method for transmitting a message comprising: receiving, by a resident device associated with a residential environment, a first message including an announcement, the announcement being associated with a voice that spoke the announcement, the first message indicating a recipient user account for receiving the announcement; obtaining, by the resident device, the announcement from the first message; obtaining, by the resident device, the recipient user account associated with the first message, the recipient user account being associated with one or more devices; transmitting, by the resident device, the announcement to the one or more devices associated with the recipient user account; and receiving, by the resident device, a second message from the one or more devices, the second message including a selection of a particular one or more zones of the residential environment to which the announcement should be transmitted. identifying, by the resident device, a particular user device of the one or more devices associated with the recipient user account; and transmitting, by the resident device, a second message to the particular user device for presentation of the announcement on the particular user device, wherein the second message is formatted based at least in part on a particular user type associated with the voice speaking the announcement, wherein when the particular user type corresponds to a shared user type, the second message is formatted to omit personally identifiable information (PII) associated with the voice speaking the announcement.

17. The method of claim 16, further comprising: detecting, by the resident device, a second user device of the one or more devices associated with the recipient user account is proximate to the particular user device; and selecting, by the resident device, the particular user device for presentation of the announcement over the second user device based at least in part on respective locations of the particular user device and the second user device with respect to a user corresponding to the recipient user account.

18. The method of any of claims 16-17, wherein the particular user device and the resident device are located within a residential environment, and wherein the second message is transmitted to the particular user device over a local area network associated with the residential environment.

19. The method of any of claims 16-17, wherein the resident device is located in a residential environment and the particular user device is located outside of the residential environment, and wherein the second message is transmitted to the particular user device via a server device outside of the residential environment.

20. The method of any of claims 16-17, wherein the resident device is located within a residential environment comprising one or more zones, a user associated with the particular user device is determined to be in a particular zone of the residential environment, and wherein the second message is transmitted to the particular user device based at least in part on the particular user device being located within the particular zone.

21. The method of claim 20, wherein the second user device is also located within the particular zone of the residential environment.

22. A device comprising: a memory comprising computer-executable instructions; and one or more processors in communication with the memory and configured to access the memory and execute the computer-executable instructions to perform the method of any of claims 16-21.

23. One or more computer-readable storage media comprising computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any of claims 16-21.

24. A method for transmitting a message comprising: receiving, by a resident device associated with a residential environment, a first message comprising an announcement, the announcement associated with a voice speaking the announcement; determining, by the resident device, that the voice uttering the announcement is associated with a particular user type of the residential environment; verifying, by the resident device, that the particular user type is authorized to transmit the announcement to devices associated with the residential environment, wherein the particular user type is a shared user type or an administrator user type; determining, by the resident device, one or more devices associated with the residential environment that are to receive the announcement; generating, by the resident device, a second message formatted based at least in part on the particular user type; and transmitting, by the resident device, the second message to the one or more devices to present the announcement based at least in part on the format of the second message, wherein when the particular user type is a shared user type, the second message is formatted to omit personally identifiable information (PII) associated with the voice uttering the announcement.

25. The method of claim 24, wherein the particular user type is one of a plurality of user types associated with the residential environment.

26. The method of any of claims 24-25, wherein the first message is received from a user device that does not have access to address data respectively associated with the one or more devices.

27. The method of any of claims 24-25, wherein the first message is received from a user device located outside of the residential environment and associated with the particular user type, and wherein the particular user type and / or the user device is authorized to transmit announcements from outside of the residential environment to the one or more devices.

28. The method of any of claims 24-25, wherein a user device of the one or more devices is located outside of the residential environment, and wherein the user device is associated with a second particular user type that is authorized to receive messages while located outside of the residential environment.

29. The method of any of claims 24-25, wherein when the particular user type corresponds to an administrator user type, the second message is formatted to include personally identifiable information (PII) associated with the voice uttering the announcement.

30. The method of any of claims 24-25, wherein the resident device is located within a first room of the residential environment, and wherein a second resident device of the residential environment prevents presentation of the announcement based at least in part on also being located within the first room.

31. The method of any of claims 24-25, wherein the announcement is uttered into the resident device, and wherein the resident device prevents presentation of the announcement via the resident device.

32. The method of any of claims 24-25, wherein the voice uttering the announcement is associated with a particular user account of the particular user type, wherein the particular user account is associated with a plurality of user devices, and wherein the plurality of user devices respectively prevent presentation of the announcement.

33. The method of any of claims 24-25, further comprising: determining, by the resident device, one or more recipient user accounts respectively associated with the residential environment based at least in part on the particular user type, wherein a device of the one or more devices is associated with a recipient user account of the one or more recipient user accounts.

34. The method of claim 33, further comprising: determining, by the resident device, a sender user account of the particular user type associated with the utterance of the announcement; and determining, by the resident device, the one or more recipient user accounts based at least in part on the sender user account.

35. The method of any of claims 24-25, 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, that the user device and a particular user account of the particular user type are authorized to receive the announcement based at least in part on at least one of (I) a location of the user device, or (II) a type of the recipient user account.

36. The method of claim 35, wherein the user device refrains from presenting the announcement based at least in part on determining that a second device is proximate to the user device.

37. The method of claim 36, wherein the second device corresponds to another resident device or another user device associated with the recipient user account.

38. The method of claim 35, wherein the user device presents the announcement based at least in part on detecting a particular activity type currently associated with the recipient user account.

39. The method of claim 35, wherein the user device refrains from the announcement based at least in part on detecting a particular activity type currently associated with the recipient user account until a later time.

40. The method of any of claims 24-25, wherein a device of the one or more devices is associated with a particular region of the residential environment, and wherein the particular region is selected by the resident device for receiving the second message based at least in part on at least one of (I) the particular user type, or (II) a sender user account associated with the utterance of the announcement.

41. The method of any of claims 24-25, further comprising: receiving, by the resident device, a response message from a device of the one or more devices, wherein at least one device associated with the utterance of the announcement is proximate to the resident device and is also associated with the residential environment; and presenting, by the resident device, the response message, wherein the at least one device refrains from presenting the response message.

42. The method of any of claims 24-25, wherein the resident device is further associated with a local area network (LAN) associated with the residential environment, and wherein determining a device of the one or more devices further comprises: determining that the device is at least one of (I) connected to the local network, or (II) authorized to receive the announcement when not connected to the local network.

43. The method of claim 42, wherein the first message is received from a user device located outside the local area network, the user device being associated with the particular user type, and wherein verifying the particular user type further comprises: determining that the particular user type is authorized to transmit the announcement to a device associated with the home environment when located outside of the local network.

44. A device comprising: memory comprising computer-executable instructions; and one or more processors in communication with the memory and configured to access the memory and execute the computer-executable instructions to perform the method of any of claims 24-43.

45. One or more computer-readable storage media comprising computer-executable instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any of claims 24-43.

Citation Information

Patent Citations

  • Electronic device for outputting message and method for controlling the same

    CN107637025A

  • Event triggered messaging

    US20170245125A1

  • Audio message extraction

    US20180182380A1