Media request system, media request method and machine-readable storage medium
Through the media request system, users can generate and configure media requests, select request icons and media filters, receive responses and generate composite media content, solving the problem of lack of innovative media sharing methods in existing social messaging applications and achieving a richer media interaction experience.
Patent Information
- Application Number
- CN202180037401.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-27
- Filing Date
- 2021-05-26
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2041-05-26
AI Technical Summary
Existing social messaging applications lack innovative ways to enable users to share and distribute media content, and users seek new ways of interacting.
Through the media request system, users can generate and configure media requests, including selecting request icons and media filters, receiving responses and generating composite media content, and sharing them with multiple users.
New ways to enable users to generate and distribute composite media content by selecting request icons and media filters, enhancing the depth and width of media sharing to meet users' interaction needs.
Smart Images

Figure CN115699702B_ABST
Abstract
Description
[0001] Priority claim
[0002] This application claims priority to U.S. patent application Ser. No. 16 / 885,007, filed May 27, 2020, which is incorporated herein by reference in its entirety. Technical Field
[0003] Implementations of the present disclosure relate generally to mobile computing technology and, more particularly, but not by way of limitation, to a system for generating a media folder based on messages received at a client device. Background Art
[0004] Social messaging applications are platforms that enable sharing and distribution of various forms of media content. Users of social messaging applications can send and receive messages containing multimedia, which may include images, videos, or other content. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] To easily identify the discussion of any particular element or action, the highest digit or digits in a reference number refer to the figure number in which the element is first introduced.
[0006] Figure 1 is a block diagram illustrating an example messaging system for exchanging data (eg, messages and related content) over a network, including a media request system, according to some implementations.
[0007] Figure 2 is a block diagram showing additional details regarding a messaging system according to an example embodiment.
[0008] Figure 3 is a block diagram illustrating various modules of a media request system according to certain example implementations.
[0009] Figure 4 is a flow chart depicting a method of receiving a response to a request for media content at a client device, according to certain example embodiments.
[0010] Figure 5 is a flow chart depicting a method of generating a request for media content at a client device, according to certain example implementations.
[0011] Figure 6 is a flow chart depicting a method of generating composite media based on a response to a request, according to certain example embodiments.
[0012] Figure 7 is an interface flow diagram depicting an interface presented by a media request system according to certain example embodiments.
[0013] Figure 8 is an interface diagram depicting a graphical user interface for accessing media folders according to certain example embodiments.
[0014] Figure 9 is an interface diagram depicting a graphical user interface for displaying a collection of media content according to certain example embodiments.
[0015] Figure 10 is an interface diagram depicting composite media generated by a media request system according to certain example embodiments.
[0016] Figure 11 is a block diagram illustrating a representative software architecture that may be used in conjunction with the various hardware architectures described herein and that may be used to implement the various embodiments.
[0017] Figure 12 is a block diagram illustrating components of a machine capable of reading instructions from a machine-readable medium (eg, a machine-readable storage medium) and performing any one or more of the methodologies discussed herein, according to some example embodiments. DETAILED DESCRIPTION
[0018] As discussed above, social messaging applications enable users to share and distribute various forms of media content. For example, users of social messaging applications can send and receive messages to each other that include multimedia, where the multimedia may include images, videos, or other content. While existing messaging applications provide users with the ability to share media with each other via messages, users are always looking for new and different ways to share content with each other.
[0019] Thus, the disclosed system attempts to provide users with new and unique ways to interact with each other by creating and sharing content. In certain example embodiments, the media request system is configured to perform operations comprising: receiving a response to a request at a client device, the response comprising media content; adding the media content from the response to a collection of media content within a media folder associated with the request at the client device; in response to receiving the response to the request, causing a notification to be displayed at the client device, the notification comprising an identification of the request; receiving input selecting the notification; and according to certain example embodiments, in response to the input selecting the notification, causing a presentation of the collection of media content to be displayed, the presentation of the collection of media content comprising the media content from the response.
[0020] A user can generate a request to distribute media to one or more users simultaneously. For example, the media request system can cause a graphical user interface (GUI) to be displayed to configure the request, wherein the GUI includes the presentation of a set of icons, and the set of icons includes a "request icon". According to such an embodiment, by selecting the request icon, the user can generate and configure the request, and then the request can be distributed to one or more users. In some embodiments, the request icon can include a "sticker". A sticker is an illustration or graphic icon that can be placed or added at a user-defined position on media (such as a message, image, or video). In its simplest form, it can be described as an emoticon, developed to add more expression depth and width than conventional punctuation or message content may add. Therefore, the user can provide an input of selecting the request icon and moving it to a position on the media presented in the GUI at the client device to generate a request.
[0021] In some example embodiments, a user-generated request may include request data defining a set of media attributes, and wherein a response to the request may be based on the set of media attributes. For example, the request may include a selection of a media filter or lens. The recipient of the request may generate media content to be applied to the response to the request based on the selection of the media filter or lens in the request.
[0022] In response to receiving a response to the request, the user may select media content from the response to generate and distribute composite media, where the composite media includes the media content from the response.
[0023] Consider an illustrative example from a user's perspective. A user can access a media request system at a client device through a specially configured GUI. The media request system presents a GUI that includes a display of a set of stickers, where a sticker in the set is a "request icon" that the user can move to a location within the media presented in the GUI. In some embodiments, the user can additionally select lenses or media filters to be distributed with the request. The media request system can then generate and distribute user-configured requests to multiple client devices, where the request includes a display of media, such as an image, including a request icon at a user-defined location within the image.
[0024] The recipient of the request (i.e., the user's social network connection) can provide input to interact with the request in order to generate a response. For example, the recipient of the request can provide input to select a request icon displayed within the media content. In response to receiving the input selecting the request icon, the media request system can present a GUI to generate media based on the selected lens or media filter from the request. The recipient of the request can then send back a response to the request, the response including the media content generated based on the selected lens or media filter.
[0025] The media request system can present responses to a request to a user who generated the request in a public media folder on the user's client device. The user can then browse the media folder to view responses to the request. In some embodiments, the user can select media content from the media folder to generate composite media based on the responses. For example, the composite media can include media received in the request as well as new media generated by the user. The user can then share the composite media with multiple user connections.
[0026] Figure 1 1 is a block diagram illustrating an example messaging system 100 for exchanging data (e.g., messages and associated content) over a network. Messaging system 100 includes one or more client devices 102 hosting multiple applications including messaging client applications 104. Each messaging client application 104 is communicatively coupled to other instances of messaging client applications 104 and messaging server systems 108 via a network 106 (e.g., the Internet).
[0027] Thus, each messaging client application 104 is able to communicate and exchange data with another messaging client application 104 and with the messaging server system 108 via the network 106. The data exchanged between the messaging client applications 104 and between the messaging client applications 104 and the messaging server system 108 includes functions (e.g., commands to invoke functions) and payload data (e.g., text, audio, video, or other multimedia data).
[0028] The messaging server system 108 provides server-side functionality to particular messaging client applications 104 via the network 106. Although certain functionality of the messaging system 100 is described herein as being performed by either the messaging client application 104 or the messaging server system 108, it should be understood that the location of certain functionality within the messaging client application 104 or within the messaging server system 108 is a design choice. For example, it may be technically preferable to initially deploy certain technologies and functionality within the messaging server system 108, provided the client device 102 has sufficient processing power, but to later migrate such technologies and functionality to the messaging client application 104.
[0029] The messaging server system 108 supports various services and operations provided to the messaging client applications 104. Such operations include sending data to the messaging client applications 104, receiving data from the messaging client applications 104, and processing data generated by the messaging client applications 104. In some embodiments, this data includes, by way of example, message content, client device information, geolocation information, media annotations and overlays, message content persistence conditions, social network information, and live event information. In other embodiments, other data is used. Data exchange within the messaging system 100 is invoked and controlled through functionality available via the GUI of the messaging client applications 104.
[0030] Specifically, turning now to messaging server system 108, an application program interface (API) server 110 is coupled to and provides a programming interface to application server 112. Application server 112 is communicatively coupled to database server 118, which facilitates access to a database 120 having stored therein data associated with messages processed by application server 112.
[0031] Specifically discussing an application program interface (API) server 110, the server receives and sends message data (e.g., commands and message payloads) between the client device 102 and the application server 112. In particular, the application program interface (API) server 110 provides a set of interfaces (e.g., routines and protocols) that the messaging client application 104 can call or query to invoke functionality of the application server 112. The application program interface (API) server 110 exposes various functions supported by the application server 112, including: account registration, login functionality, sending messages from a particular messaging client application 104 to another messaging client application 104 via the application server 112, sending media files (e.g., images or videos) from a messaging client application 104 to a messaging server application 114 and possible access by another messaging client application 104, setting collections of media data (e.g., stories), retrieving a friend list of a user of a client device 102, retrieving such collections, retrieving messages and content, adding friends to and removing friends from a social graph, locating friends within a social graph, and opening and applying events (e.g., related to the messaging client application 104).
[0032] The application server 112 hosts a plurality of applications and subsystems, including a messaging server application 114, an image processing system 116, a social networking system 122, and a media request system 124. In some embodiments, the media request system 124 is configured to perform operations comprising: receiving a response to a request at a client device, the response comprising media content; adding the media content from the response to a collection of media content within a media folder associated with the request at the client device; in response to receiving the response to the request, causing a notification to be displayed at the client device, the notification comprising an identification of the request; receiving input selecting the notification; and in response to the input selecting the notification, causing a presentation of the collection of media content to be displayed, the presentation of the collection of media content comprising the media content from the response. Additional details of the media request system 124 may be found below. Figure 3 Found in.
[0033] The messaging server application 114 implements a number of message processing techniques and functions, particularly relating to the aggregation and other processing of content (e.g., text and multimedia content) included in messages received from multiple instances of the messaging client application 104. As will be described in further detail, text and media content from multiple sources can be aggregated into content collections (e.g., referred to as stories or galleries). The messaging server application 114 then makes these collections available to the messaging client application 104. Given the hardware requirements for other processor- and memory-intensive processing of data, such processing can also be performed on the server side by the messaging server application 114.
[0034] The application server 112 also includes an image processing system 116 that is dedicated to performing various image processing operations, typically on images or videos received within the payload of messages at the messaging server application 114 .
[0035] The social networking system 122 supports various social networking functionalities and services and makes these functionalities and services available to the messaging server application 114. To do so, the social networking system 122 maintains and accesses an entity graph 304 within the database 120. Examples of functionalities and services supported by the social networking system 122 include identifying other users in the messaging system 100 who have a relationship with or are "following" a particular user, and also identifying other entities and interests of a particular user.
[0036] The application server 112 is communicatively coupled to a database server 118 , which facilitates access to a database 120 in which data associated with messages processed by the messaging server application 114 is stored.
[0037] Figure 2 is a block diagram illustrating additional details regarding messaging system 100 according to an example embodiment. Specifically, messaging system 100 is shown as including messaging client application 104 and application server 112, which in turn contain several subsystems, namely, transient timer system 202, collection management system 204, and annotation system 206.
[0038] The transient timer system 202 is responsible for implementing temporary access to content granted by the messaging client application 104 and the messaging server application 114. To this end, the transient timer system 202 includes a plurality of timers that, based on duration and display parameters associated with the message, message collection (e.g., media collection), or graphical element, selectively display and enable access to messages and associated content via the messaging client application 104. Additional details regarding the operation of the transient timer system 202 are provided below.
[0039] The collection management system 204 is responsible for managing collections of media (e.g., collections of text, image video, and audio data). In some examples, collections of content (e.g., messages, including images, videos, text, and audio) can be organized into "event galleries" or "event stories." Such collections can be made available for a specified time period, such as the duration of the event to which the content relates. For example, content related to a concert can be made available as a "story" for the duration of the concert. The collection management system 204 can also be responsible for publishing an icon to the user interface of the messaging client application 104 that provides notification of the existence of a particular collection.
[0040] The collection management system 204 also includes a curation interface 208 that enables collection managers to manage and curate specific content collections. For example, the curation interface 208 enables event organizers to curate content collections related to a specific event (e.g., removing inappropriate content or redundant messages). In addition, the collection management system 204 uses machine vision (or image recognition technology) and content rules to automatically curate content collections. In some embodiments, users can be paid compensation to include user-generated content in a collection. In such cases, the curation interface 208 operates to automatically pay such users for the use of their content.
[0041] The annotation system 206 provides various functions that enable users to annotate media content associated with a message or otherwise modify or edit the media content associated with the message. For example, the annotation system 206 provides functions related to generating and publishing media overlays for messages processed by the messaging system 100. The annotation system 206 is operable to provide media overlays (e.g., filters, lenses) to the messaging client application 104 based on the geographic location of the client device 102. In another example, the annotation system 206 is operable to provide media overlays to the messaging client application 104 based on other information, such as social network information of the user of the client device 102. Media overlays can include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations and sound effects, and animated facial models. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos or videos) at the client device 102. For example, a media overlay includes text that can be superimposed on a photo generated by capturing the photo by the client device 102. In another example, the media overlay includes a location identification overlay (e.g., Venice Beach), the name of a live event, or a business name overlay (e.g., Beach Cafe). In another example, the annotation system 206 uses the geographic location of the client device 102 to identify a media overlay that includes the name of a business at the geographic location of the client device 102. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 120 and accessed through the database server 118.
[0042] In one example embodiment, the annotation system 206 provides a user-based publishing platform that enables a user to select a geographic location on a map and upload content associated with the selected geographic location. The user can also specify the circumstances under which a particular media overlay should be provided to other users. The annotation system 206 generates a media overlay including the uploaded content and associates the uploaded content with the selected geographic location.
[0043] In another example embodiment, the annotation system 206 provides a merchant-based publishing platform that enables merchants to select specific media overlays associated with a geographic location through a bidding process. For example, the annotation system 206 associates the highest-bidding merchant's media overlay with the corresponding geographic location for a predefined amount of time.
[0044] Figure 3 is a block diagram illustrating components of the media request system 124 that configure the media request system 124 to perform operations for generating media requests at the client device 102, according to certain example implementations.
[0045] The media request system 124 is shown as including a request module 302, a media module 304, and a presentation module 306, all of which are configured to communicate with each other (e.g., via a bus, shared memory, or switch). Any one or more of these modules can be implemented using one or more processors 308 (e.g., by configuring such one or more processors to perform the functions described for that module) and can therefore include one or more processors 308. In some embodiments, the media request system 124 can include or have access to a database 120, wherein the database 120 can include a collection of media content indexed based on user attributes and astrological symbols.
[0046] Any one or more of the described modules may be implemented using hardware alone (e.g., one or more processors 308 of a machine) or a combination of hardware and software. For example, any module of the described media request system 124 may physically include an arrangement of one or more processors 308 (e.g., a subset of one or more processors of a machine or processing within one or more processors of a machine) configured to perform the operations described herein for that module. As another example, any module of the media request system 124 may include software, hardware, or both software and hardware that configures an arrangement of one or more processors 308 (e.g., within one or more processors of a machine) to perform the operations described herein for that module. Thus, different modules of the media request system 124 may include and configure different arrangements of such processors 308 or a single arrangement of such processors 308 at different points in time. Furthermore, any two or more modules of the media request system 124 may be combined into a single module, and the functionality described herein for a single module may be subdivided between multiple modules. Furthermore, according to various example embodiments, modules described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices.
[0047] Figure 4 is a flow chart depicting a method 400 for receiving a response to a request for media content at a client device 102 according to certain example embodiments. The operations of the method 400 may be as described above with reference to Figure 3 The module described is executed. Figure 4 As shown, method 400 includes one or more operations 402 , 404 , 406 , and 408 .
[0048] At operation 402, the client device 102 receives a response to a request generated by a user of the client device 102, wherein the response includes media content. In some implementations, the user of the client device 102 may generate a request for media content that includes a selection of one or more media elements, such as a lens or a media filter, and wherein the media content of the response to the request is based on the selection of the one or more media elements of the request.
[0049] At operation 404, the media module 304 adds the media content received in response to the request to the collection of media content within the media folder associated with the request. For example, in some embodiments, in response to a user generating a request at the client device 102, the media module 304 can create a folder corresponding to the request. In some embodiments, the folder can be provided locally at the client device 102 or at the database 120.
[0050] At operation 406, the presentation module 306 presents a notification at the client device 102 in response to receiving a response to the request generated by the user at the client device 102. The notification may include, for example, an identification of the request.
[0051] At operation 408, the presentation module 306 causes display of a presentation of the media content in response to the input selecting the notification at the client device 102. In some implementations, in response to receiving the input selecting the notification, the presentation module 306 may access a media folder associated with the request to cause display of a presentation of the collection of media content from the media folder.
[0052] Figure 5 is a flow chart depicting a method 500 for generating a request for media content at a client device 102 according to certain example embodiments. The operations of the method 500 may be as described above with reference to Figure 3 The module described is executed. Figure 5 As shown, method 500 includes one or more operations 502 , 504 , 506 , 508 , and 510 , which may be performed as part of operation 402 of method 400 (ie, a subroutine).
[0053] At operation 502, the presentation module 306 causes a GUI including a set of icons to be displayed. Figure 7As seen in the interface flow diagram 700 of FIG, the presentation module 306 can generate a GUI (e.g., GUI 705) and cause the GUI to be displayed for configuring media content to be distributed in a message from a user to multiple recipients. Thus, the set of icons presented within the GUI 705 can include stickers that the user of the client device 102 can select and position within the media content (i.e., image 715) displayed within the GUI 705.
[0054] At operation 504, the media module 304 receives input selecting a first icon from a set of icons presented within a GUI (i.e., GUI 705) generated by the presentation module 306, wherein the first icon comprises a "request icon." According to some embodiments, including the request icon in the message may cause the media request system 124 to perform the operations discussed in method 400, including generating a media folder corresponding to the request.
[0055] At operation 506, the request module 302 receives one or more user identifiers. For example, the user of the client device 102 may provide input selecting one or more user identifiers from a list of user identifiers (i.e., a user connection list), or in some implementations, the user of the client device 102 may provide input selecting or otherwise specifying a user distribution group, where the user distribution group includes a list of one or more user identifiers.
[0056] At operation 508, the request module 302 generates a request based on input received from the user of the client device 102, including selection of a request icon, one or more user identifiers, and media content presented within the GUI 705. For example, as in Figure 7 As seen in interface flow diagram 700 of , requests generated based on user input may include request 720. According to some embodiments, at operation 510, media request system 124 may distribute request 720 based on one or more user identifiers selected by the user.
[0057] Figure 6 is a flowchart depicting a method 600 for generating composite media based on a response to a request according to certain example embodiments. The operations of the method 600 may be as described above with reference to Figure 3 The module described is executed. Figure 6 As shown, method 600 includes one or more operations 602 , 604 , and 606 .
[0058] According to some embodiments, a user of the media request system 124 can share media received in response to a request. For example, a user can add media to a story or media collection associated with a corresponding user profile. Thus, in such embodiments, at operation 602, the media module 304 receives a selection of media content received in response to the request from a presentation of a collection of media content within a media folder associated with the request. Figure 9 Interface diagram 900 shows an exemplary media folder 905 corresponding to a request generated by a user of the media request system 124 .
[0059] For example, a user of the media request system 124 may provide input to display the media collection of the media folder 905, and in response, the presentation module 306 accesses the media collection of the media folder 905 and causes a presentation of the media collection to be displayed, as seen in the interface diagram 900.
[0060] At operation 604, in response to receiving a selection of media content from the presentation of the collection of media content in the media folder, the media module 304 generates composite media based on the selected media content. In some embodiments, a user of the media request system 124 can provide one or more inputs for configuring the composite media content. For example, as in Figure 10 , composite media content 1005 may include a display of selected media content 1010 at a location within an image 1015 generated or selected by a user of the media request system 124. The user of the media request system 124 may apply text or other graphics to the composite media, such as text 1020.
[0061] At operation 606, the media module 304 generates a message including the composite media. A user of the media request system can distribute the composite media to one or more users by providing input that selects or otherwise identifies one or more users or a distribution group including one or more users. In another embodiment, a user of the media request system 124 can send a message to a story or media collection associated with a corresponding user profile, so that the user's social network connections can access and view the composite media by accessing the user profile.
[0062] Figure 7 700 is an interface flow diagram depicting an interface presented by the media request system 124 to generate a media request, according to certain example embodiments. A request for media content may be generated by a user of the media request system 124 via the GUI 705.
[0063] As seen in GUI 705, icon 710 (i.e., a media request icon) may be presented along with media (e.g., image 715) in a set of graphical icons within GUI 705. A user of the media request system may provide input 725 that selects icon 710 and moves icon 710 to a location within image 715. As seen in interface flow diagram 700, media request system 124 may generate a request 720 based on the input received from the user of media request system 124 via GUI 705. Request 720 may be distributed to one or more users.
[0064] Figure 8 8 is an interface diagram 800 depicting a GUI 805 for accessing a media folder 810 according to certain example embodiments. As seen in interface diagram 800, GUI 805 may include a display of a list 815 of users that have received or otherwise accessed a request generated by the user and an indication 820 of the number of responses to the requests received.
[0065] Figure 9 9 is an interface diagram 900 depicting a GUI 905 for displaying a collection of media content 910 according to certain example embodiments. As discussed above, the collection of media content 910 may be associated with a media folder such as Figure 8 810 is associated with the media folder depicted in FIG. Figure 10 As depicted in , a user of the media request system 124 may provide input to select media content from the collection of media content 910 to generate composite media.
[0066] Figure 10 is an interface diagram 1000 depicting composite media 1005 generated by the media request system 124 according to certain example implementations. As seen in the interface diagram 1000, the composite media 1005 may include media content 1010, an image 1015, and text 1020.
[0067] For example, according to certain example embodiments, a user of the media request system 124 may provide input from a collection of media content associated with the request (e.g., Figure 9 900) for selecting display of media content 1010. The media request system 124 may provide one or more interfaces to the user to generate composite media 1005 by providing input for selecting an image 1015 and defining text 1020. Thus, the composite media 1005 may be distributed to multiple users via a message generated by the media request system 124 or by adding the composite media 1005 to a story associated with the user profile of the user.
[0068] Software Architecture
[0069] Figure 11 is a block diagram illustrating an example software architecture 1106 that can be used in conjunction with the various hardware architectures described herein. Figure 11 is a non-limiting example of a software architecture, and it should be understood that many other architectures can be implemented to facilitate the functionality described herein. The software architecture 1206 can be implemented in hardware such as Figure 12 The hardware includes a processor 1204, a memory 1214, an I / O component 1218, etc. A representative hardware layer 1152 is shown and may represent, for example, Figure 11 1100. A representative hardware layer 1152 includes a processing unit 1154 having associated executable instructions 1104. Executable instructions 1104 represent executable instructions of a software architecture 1106, including implementations of the methods, components, and the like described herein. Hardware layer 1152 also includes memory and / or storage modules, i.e., memory / storage 1156, also having executable instructions 1104. Hardware layer 1152 may also include other hardware 1158.
[0070] exist Figure 11 In the example architecture of , software architecture 1106 can be conceptualized as a stack of layers, where each layer provides specific functionality. For example, software architecture 1106 may include layers such as operating system 1102, library 1120, application 1116, and presentation layer 1114. In operation, applications 1116 and / or other components within a layer can call application programming interfaces (APIs) API calls 1108 through the software stack and receive responses in response to API calls 1108. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile operating systems or dedicated operating systems may not provide framework / middleware 1118, while other operating systems may provide such a layer. Other software architectures may include additional layers or different layers.
[0071] The operating system 1102 can manage hardware resources and provide common services. The operating system 1102 may include, for example, a kernel 1122, services 1124, and drivers 1126. The kernel 1122 may act as an abstraction layer between the hardware and other software layers. For example, the kernel 1122 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. The services 1124 may provide other common services to other software layers. The drivers 1126 are responsible for controlling or interfacing with the underlying hardware. For example, depending on the hardware configuration, the drivers 1126 may include a display driver, a camera driver, drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0072] Libraries 1120 provide common infrastructure used by applications 1116 and / or other components and / or layers. Libraries 1120 provide functionality that allows other software components to perform tasks more easily than by directly interfacing with the functionality of the underlying operating system 1102 (e.g., kernel 1122, services 1124, and / or drivers 1126). Libraries 1120 may include system libraries 1144 (e.g., the C standard library), which may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, libraries 1120 may include API libraries 1146, such as media libraries (e.g., libraries that support rendering and manipulation of various media formats such as MPREG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., the OpenGL framework that can be used to render 2D and 3D graphical content on a display), databases (e.g., SQLite that can provide various relational database functions), networking libraries (e.g., WebKit that can provide web browsing functionality), and the like. The library 1120 may also include various other libraries 1148 to provide numerous other APIs to the applications 1116 and other software components / modules.
[0073] The framework / middleware 1118 (sometimes also referred to as middleware) provides a higher-level common infrastructure that can be used by applications 1116 and / or other software components / modules. For example, the framework / middleware 1118 can provide various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. The framework / middleware 1118 can provide a wide range of other APIs that can be used by applications 1116 and / or other software components / modules, some of which can be specific to a particular operating system 1102 or platform.
[0074] Applications 1116 include built-in applications 1138 and / or third-party applications 1140. Examples of representative built-in applications 1138 may include, but are not limited to, contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 1140 may include applications that are run by entities other than the vendor of a particular platform using Android. TM or IOS TM Software Development Kit (SDK) for developing applications and can be used on platforms such as IOS TM ANDROID TM 、 Mobile software running on the mobile operating system of the Phone or other mobile operating systems. The third-party application 1140 can call API calls 1108 provided by the mobile operating system (e.g., operating system 1102) to facilitate the functions described herein.
[0075] Applications 1116 may create user interfaces to interface with users of the system using built-in operating system functionality (e.g., kernel 1122, services 1124, and / or drivers 1126), libraries 1120, and framework / middleware 1118. Alternatively, or in addition, in some systems, interfacing with users may be done through a presentation layer, such as presentation layer 1114. In such systems, application / component "logic" may be separated from aspects of the application / component that interact with the user.
[0076] Figure 12 is a block diagram illustrating components of a machine 1200 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methodologies discussed herein, according to some example embodiments. Specifically, Figure 12A diagrammatic representation of a machine 1200 in the example form of a computer system is shown within which instructions 1210 (e.g., software, programs, applications, applet, app, or other executable code) may be executed for causing the machine 1200 to perform any one or more of the methodologies discussed herein. Thus, the instructions 1210 may be used to implement the modules or components described herein. The instructions 1210 transform a general-purpose, unprogrammed machine 1200 into a specific machine 1200 programmed to perform the functions described and illustrated in the manner described. In alternative embodiments, the machine 1200 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1200 may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1200 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart home appliance), other smart devices, a network appliance (web appliance), a network router, a network switch, a network bridge, or any machine capable of executing, sequentially or otherwise, the instructions 1210 specifying actions to be taken by the machine 1200. Furthermore, while only a single machine 1200 is shown, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute the instructions 1210 to perform any one or more of the methodologies discussed herein.
[0077] The machine 1200 may include a processor 1204, memory / storage 1206, and I / O components 1218, which may be configured to communicate with each other, for example, via a bus 1202. The memory / storage 1206 may include a memory 1214, such as a main memory or other storage device, and a storage unit 1216, both of which are accessible to the processor 1204, for example, via the bus 1202. The storage unit 1216 and the memory 1214 store instructions 1210 that embody any one or more of the methods or functions described herein. The instructions 1210 may also reside, completely or partially, within the memory 1214, within the storage unit 1216, within at least one of the processors 1204 (e.g., within a cache memory of the processor), or within any suitable combination thereof during execution thereof by the machine 1200. Thus, the memory 1214, the storage unit 1216, and the memory of the processor 1204 are examples of machine-readable media.
[0078] The I / O components 1218 may include various components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurements, etc. The specific I / O components 1218 included in a particular machine 1200 will depend on the type of machine. For example, a portable machine such as a mobile phone will likely include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It will be understood that the I / O components 1218 may include Figure 12 Many other components are not shown. The I / O components 1218 are grouped according to function for the sole purpose of simplifying the following discussion and are by no means limiting. In various example embodiments, the I / O components 1218 may include output components 1226 and input components 1228. The output components 1226 may include visual components (e.g., displays such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, and the like. The input components 1228 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), pointing-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide location and / or force of touches or touch gestures), audio input components (e.g., microphones), and the like.
[0079] In other example embodiments, the I / O component 1218 may include a biometric component 1230, a motion component 1234, an environmental component 1236, or a positioning component 1238, as well as various other components. For example, the biometric component 1230 may include components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. The motion component 1234 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environment component 1236 may include, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), a sound sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor for detecting concentrations of hazardous gases to ensure safety or for measuring pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The positioning component 1238 may include a position sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure from which altitude can be derived), an orientation sensor component (e.g., a magnetometer), etc.
[0080] Various technologies can be used to implement communications. I / O components 1218 may include communications components 1240 operable to couple machine 1200 to network 1232 or device 1220 via coupling 1222 and coupling 1224, respectively. For example, communications components 1240 may include a network interface component or other suitable device to interface with network 1232. In other examples, communications components 1240 may include wired communications components, wireless communications components, cellular communications components, near field communications (NFC) components, Components (e.g. ), Device 1220 may be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via a universal serial bus (USB)).
[0081] In addition, the communication component 1240 can detect the identifier or can include a component that is operable to detect the identifier. For example, the communication component 1240 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional bar codes such as Universal Product Code (UPC) bar codes, multi-dimensional bar codes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar codes, and other optical codes) or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be obtained via the communication component 1240, such as location via Internet Protocol (IP), geolocation via Internet Protocol (IP), location information ... Signal triangulation to obtain location, location obtained by detecting NFC beacon signals that can indicate a specific location, etc.
[0082] Glossary
[0083] "Carrier signal" in this context refers to any intangible medium capable of storing, encoding, or carrying instructions for execution by a machine, and includes digital or analog communication signals or other intangible media that facilitate communication of such instructions. Instructions may be sent or received over a network via a network interface device using a transmission medium and using any of a number of well-known transmission protocols.
[0084] A "client device" in this context refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smartphone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronics product, a game console, a set-top box, or any other communication device that a user can use to access a network.
[0085] A "communication network" in this context refers to one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a part of the Internet, a part of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, The network, other types of networks, or a combination of two or more such networks. For example, the network or a portion of the network may include a wireless network or a cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards setting organizations, other long range protocols, or other data transmission technologies.
[0086] In this context, a "transient message" is a message that can be accessed for a limited duration. Transient messages can be text, images, videos, and more. The access period for a transient message can be set by the sender of the message. Alternatively, the access period can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is transient.
[0087] "Machine-readable medium" in this context refers to a component, device, or other tangible medium that is capable of storing instructions and data, either temporarily or permanently, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "machine-readable medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database or associated cache memory and servers) that can store instructions. The term "machine-readable medium" should also be taken to include any medium or combination of multiple media that can store instructions (e.g., code) executed by a machine, such that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methods described herein. Thus, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network that includes multiple storage devices or devices. The term "machine-readable medium" does not include the signal itself.
[0088] "Component" in this context refers to a device, physical entity or logic with boundaries defined by function or subroutine calls, branch points, application program interfaces (APIs) or other technologies that provide partitioning or modularization of specific processing or control functions. A component can be combined with other components via its interface to perform machine processing. A component can be a packaged functional hardware unit designed for use with other components and can be part of a program that generally performs a specific function in related functions. A component can constitute a software component (e.g., a code embodied on a machine-readable medium) or a hardware component. A "hardware component" is a tangible unit that can perform certain operations and can be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a stand-alone computer system, a client computer system or a server computer system) or one or more hardware components (e.g., a processor or a processor group) of a computer system can be configured to operate to perform certain operations described herein by software (e.g., an application or an application portion). Hardware components can also be implemented mechanically, electronically or in any suitable combination thereof. For example, a hardware component can include a dedicated circuit or logic that is permanently configured to perform certain operations. The hardware component can be a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). The hardware component can also include a programmable logic or circuit that is temporarily configured to perform certain operations by software. For example, the hardware component can include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or specific component of a machine) that is uniquely customized to perform the configured function, rather than a general-purpose processor. It will be understood that it can be decided to mechanically implement the hardware component in a circuit that is dedicated and permanently configured or in a circuit that is temporarily configured (for example, configured by software) for cost and time considerations. Accordingly, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, that is, an entity that is physically constructed, permanently configured (for example, hardwired) or temporarily configured (for example, programmed) to operate in some way or perform certain operations described herein. Considering that the hardware component is temporarily configured (for example, programmed), it is not necessary to configure or instantiate each hardware component in the hardware component at any one time. For example, in the case where a hardware component includes a general-purpose processor that is configured by software to become a special-purpose processor, the general-purpose processor can be configured as different special-purpose processors (e.g., including different hardware components) at different times. The software configures one or more specific processors accordingly to constitute a specific hardware component at one time and to constitute different hardware components at different times. Hardware components can provide information to other hardware components and receive information from other hardware components. Therefore, the described hardware components can be considered to be communicatively coupled.In the case of multiple hardware components being present at the same time, communication can be achieved by (for example, by appropriate circuits and buses) performing signal transmission between or among two or more hardware components. In an embodiment in which multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing information in a memory structure accessed by multiple hardware components and retrieving information in the memory structure. For example, a hardware component can perform an operation, and the output of the operation is stored in a memory device coupled to its communication ground. Then, other hardware components can access the memory device at a subsequent time to retrieve the stored output and process it. The hardware component can also initiate communication with an input device or an output device, and can operate on resources (for example, the collection of information). The various operations of the example methods described herein can be performed at least in part by one or more processors that are temporarily configured or permanently configured to perform related operations (for example, by software). Whether it is temporarily configured or permanently configured, such a processor can constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, a "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the method described herein can be implemented at least in part by a processor, wherein specific one or more processors are examples of hardware. For example, at least some of the operations of the method can be performed by one or more processors or the components implemented by the processor. In addition, one or more processors can also operate to support the execution of related operations in a "cloud computing" environment or as a "software as a service" (SaaS) operation. For example, at least some of the operations in the operation can be performed by a group of computers (as an example of a machine including a processor), wherein these operations can be accessed via a network (for example, the Internet) and via one or more appropriate interfaces (for example, application program interface (API)). The execution of certain operations in the operation can be distributed between processors, not only can reside in a single machine, but also can be deployed across multiple machines. In some example embodiments, a processor or the components implemented by the processor can be located in a single geographical location (for example, in a home environment, an office environment or a server cluster). In other example embodiments, a processor or the components implemented by the processor can be distributed across multiple geographical locations.
[0089] A "processor" in this context refers to any circuit or virtual circuit (a physical circuit simulated by logic executed on an actual processor) that manipulates data values according to control signals (e.g., "commands," "opcodes," "machine code," etc.) and produces corresponding output signals that are applied to operate a machine. For example, a processor may be a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any combination thereof. A processor may also be a multi-core processor having two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously.
[0090] A "timestamp" in this context refers to a sequence of characters or encoded information that identifies when some event occurred, for example, giving a date and time of day, sometimes accurate to a fraction of a second.
[0091] "LIFT" in this context is a measure of the performance of a targeted model in predicting or classifying cases as having an enhanced response (relative to the entire population), measured against a random selection of targeted models.
[0092] In this context, phoneme alignment refers to the unit of speech that distinguishes one word from another. A phoneme can consist of a sequence of closures, bursts, and aspirations; or, a diphthong can transition from a back vowel to a front vowel. Therefore, a speech signal can be described not only by the phonemes it contains, but also by the positions of the phonemes. Therefore, phoneme alignment can be described as the "time alignment" of phonemes in a waveform to determine the proper sequence and position of each phoneme in the speech signal.
[0093] "Audio-to-visual conversion" in this context refers to converting an audible speech signal into visual speech, where the visual speech may include mouth shapes representing the audible speech signal.
[0094] In this context, a “Time Delay Neural Network (TDNN)” is an artificial neural network architecture whose primary purpose is to process sequential data. An example is converting continuous audio into a stream of categorical phoneme labels for speech recognition.
[0095] In this context, "Bidirectional Long Short-Term Memory (BLSTM)" refers to a recurrent neural network (RNN) architecture that memorizes values over arbitrary intervals. The stored values are not modified as learning progresses. RNNs allow for both forward and backward connections between neurons. BLSTM is well-suited for time series classification, processing, and forecasting, given unknown time lags and durations between events.
Claims
1. A media request method, comprising: generating, at a client device, a request comprising a selection of one or more media elements; In response to the request, providing a media folder; receiving, at the client device, a response to the request, the response comprising media content based on a selection of the one or more media elements; adding the media content from the response to a collection of media content within a media folder associated with the request; in response to receiving a response to the request, causing a notification to be displayed at the client device, the notification including an identification of the request; receiving input selecting the notification; as well as In response to the input selecting the notification, a presentation of the set of media content is caused to be displayed, the presentation of the set of media content including media content from the response.
2. The method according to claim 1, wherein Generating the request includes: presenting a set of icons at the client device, the set of icons including a first icon; receiving the selection of the one or more media elements, wherein the selection selects the first icon; receiving one or more user identifiers; generating the request based on selection of the first icon; and The requests are distributed based on the one or more user identifiers.
3. The method according to claim 2, wherein: Receiving a selection of the first icon includes: receiving user input to place the first icon at a location within an image presented at the client device, and The request includes the image.
4. The method according to claim 2, wherein Receiving a selection of the first icon further includes: in response to receiving selection of the first icon, causing display of a text entry field; receiving a text string from the client device via the text input field; and The text string is assigned to a media category.
5. The method according to claim 1, wherein The response to the request includes a user identifier, and the presentation of the collection of media content includes displaying the user identifier.
6. The method according to claim 5, wherein: The user identifier includes a graphical avatar.
7. The method according to claim 1, wherein The request includes a corresponding image, and causing presentation of the set of media content to be displayed includes: A presentation of the collection of media content is overlaid on a display of the image from the request.
8. The method according to claim 1, wherein The request includes request data defining a set of media attributes, and wherein the media content of the response is based on the set of media attributes of the request.
9. The method according to claim 1, wherein: The method further comprises: receiving input selecting media content from the response from the presentation of the collection of media content; and In response to a selection of the media content, composite media content is generated based on the media content.
10. The method according to claim 9, wherein: The method further comprises: One or more messages including the composite media content are generated.
11. A media request system, comprising: Memory; as well as at least one hardware processor coupled to the memory and comprising instructions for causing the system to perform operations comprising: generating, at a client device, a request comprising a selection of one or more media elements; providing a media folder in response to the request; receiving, at the client device, a response to the request, the response comprising media content based on a selection of the one or more media elements; adding the media content from the response to a collection of media content within a media folder associated with the request; in response to receiving a response to the request, causing a notification to be displayed at the client device, the notification including an identification of the request; receiving input selecting the notification; and In response to the input selecting the notification, a presentation of the set of media content is caused to be displayed, the presentation of the set of media content including media content from the response.
12. The system according to claim 11, wherein Generating the request includes: presenting a set of icons at the client device, the set of icons including a first icon; receiving an input selecting the first icon; receiving one or more user identifiers; generating the request based on selection of the first icon; and The requests are distributed based on the one or more user identifiers.
13. The system according to claim 12, wherein: Receiving a selection of the first icon includes: receiving user input to place the first icon at a location within an image presented at the client device, and The request includes the image.
14. The system according to claim 12, wherein: Receiving a selection of the first icon further includes: in response to receiving selection of the first icon, causing display of a text entry field; receiving a text string from the client device via the text input field; and The text string is assigned to a media category.
15. The system according to claim 11, wherein The response to the request includes a user identifier, and the presentation of the collection of media content includes displaying the user identifier.
16. The system according to claim 15, wherein: The user identifier includes a graphical avatar.
17. The system according to claim 11, wherein: The request includes a corresponding image, and causing presentation of the set of media content to be displayed includes: A presentation of the collection of media content is overlaid on a display of the image from the request.
18. The system according to claim 11, wherein: The request includes request data defining a set of media attributes, and wherein the media content of the response is based on the set of media attributes of the request.
19. The system according to claim 11, wherein: The operations further include: receiving input selecting media content from the response from the presentation of the collection of media content; and In response to a selection of the media content, composite media content is generated based on the media content.
20. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising: generating, at a client device, a request comprising a selection of one or more media elements; In response to the request, providing a media folder; receiving, at the client device, a response to the request, the response comprising media content based on a selection of the one or more media elements; adding the media content from the response to a collection of media content within a media folder associated with the request; in response to receiving a response to the request, causing a notification to be displayed at the client device, the notification including an identification of the request; receiving input selecting the notification; as well as In response to the input selecting the notification, a presentation of the set of media content is caused to be displayed, the presentation of the set of media content including media content from the response.
Citation Information
Patent Citations
Systems and methods for managing electronic requests for photographs and multimedia content, and enabling electronic social sharing thereof
US20160323219A1