Blogging—the act of posting information to a weblog or blog—is growing in popularity. The unusual name, blog, was derived from the last four letters of the word weblog, which is log or chronicle maintained on the web or Internet. Blogs allow people to share their news, thoughts, photos and other content. However, starting and maintaining a blog is a somewhat technical task, which may be above the capability of many people, particularly those who do not have sufficient time to devote to the project. Accordingly, while blogging has grown rapidly in popularity, its growth is limited by the somewhat technical nature of blog design and blog entry preparation.
Techniques for the design and operation of a blogging tool for automated blog creation and upload to a server are described herein. The techniques describe the automated assembly of images and other content into an appropriate template. Additional techniques describe a simplified interface that allows the user to upload a blog entry to a server, such as by operation of a single button or verbal command.
An image capturing process may obtain a plurality of images according to direction of a user, who may operate an image-capture device. The images may be annotated with metadata or with a legend of text derived from verbal content provided by the user. A template may be selected in either an automated or user-controlled manner. In one example, a current template is evaluated in an iterative manner, such as after capture of each of the plurality of images. Each evaluation provides an indication of whether a different template, such as from a template library, might provide a better fit to the plurality of images. If indicated, a different template is selected, which replaces the previous template. The template may be assembled to include the plurality of images, the metadata and the text, to thereby create a blog entry. The blog entry may be uploaded to append onto a blog hosted by a server. In one example, the uploading may be triggered in response to a single command, or a simple sequence of commands, from the user.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The term “techniques,” for instance, may refer to device(s), system(s), method(s) and/or computer-readable instructions as permitted by the context above and throughout the document.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components. Moreover, the figures are intended to illustrate general concepts, and not to indicate required and/or necessary elements.
The disclosure describes techniques for providing a blogging tool for automated blog entry creation and automated uploading of the blog entry to a server. The blogging tool may combine multimedia content, organize the content within an appropriate template, and upload a blog entry in a seamless and automated manner. An example illustrating some of the techniques discussed herein—not to be considered a full or comprehensive discussion—may assist the reader.
An image capturing process may obtain a plurality of images according to direction of a user, who may operate an image-capture device. Throughout this document, the term “images” is used to indicate at least still images, e.g., “pictures,” and moving images, e.g., “video.” One or more images may be annotated with metadata, such as location or date of the image. Additionally, one or more image(s) may be annotated with a legend of text, which may be derived from verbal content provided by the user.
A template may be selected in either an automated or user-controlled manner. In one example, a current template is evaluated in an iterative manner, such as after capture of each of the plurality of images. Each evaluation provides an indication of whether a different template, such as from a template library, might provide a better fit to the plurality of images. If indicated, the different template is selected, and becomes the current template. The current template may be assembled to include the plurality of images, the metadata and the text, to thereby create a blog entry.
The blog entry may be uploaded to a server and appended to a blog hosted by the server. In one example, the uploading may be triggered in response to a single command given by the user, such as by operation of a button or by spoken command.
The discussion herein includes several sections. Each section is intended to be non-limiting; more particularly, this entire description is intended to illustrate components which may be utilized to implement and operate an automated blogging tool, but not components which are necessarily required. The discussion begins with a section entitled “Example Automated Blogging Tool Architecture,” which describes one environment that may implement the techniques described herein. This section depicts and describes a high-level architecture as well as example components configured to provide automated blogging. Next, a section entitled “Example Automated Blogging Device User Interface” illustrates and describes aspects that can be used to provide a user interface that provides user control over an automated blogging system and method. A further section, entitled “Example Flow Diagrams” illustrates and describes techniques that may be used to provide an automated blogging tool to combine multimedia content within an appropriate template, and to upload a resultant blog entry in an automated manner. A further section, entitled “Multimedia Blogging Example” illustrates a specific example of multimedia blogging. Finally, the discussion ends with a brief conclusion.
This brief introduction, including section titles and corresponding summaries, is provided for the reader's convenience and is not intended to limit the scope of the claims or any section of this disclosure sections.
Referring to
The user 104 controls operation of the blogging tool 102. For example, the user provides commands to the blogging tool, such as to capture an image, to begin and end capture of a video, to assembly a blog entry and/or to upload the blog entry. The blogging tool 102 also communicates to the user 104. For example, the blogging tool 102 provides the user with information and copies of the images captured and available for a blog entry, an indication of a proposed or selected template, and a preview of the blog entry as it is created.
A blog template library 106 may include a plurality of templates. The blog template library 106 may be located on memory internal or external to the blogging tool 102. As an example, the blog template library 106 of
The environment 120 provides a source of content for image capture. That is, the world around the user 104 may be photographed, or otherwise recorded, to create content for the blog entry. Thus, the user's home, family, school, vacation, city are all part of the environment 120, and provide a fertile source of content for image capture and for recording.
Additionally, metadata sources 122 may be captured. Metadata sources 122 can include data to associate with images, text or other content. For example, metadata can include day and date, time of day, location, maps showing the location, street-view images of the location or surrounding location. Such metadata may be attached to images captured (such as images of the environment 120).
In some instances, the metadata 122 may separated from the content image with which it is associated. In such an instance, the metadata may be located in a region in the template that is separate from a region in the template occupied by the associated content image. For example, if metadata 122 includes an image of a map or street-view image of a location, then that image may be added to a region that is separate from the region containing the image associated with the metadata.
A template (e.g. template 114), may be configured with content (e.g., images obtained from the blogging tool 102) to form a blog entry 124. The blog entry 124 may be located on memory internal or external to the blogging tool 102. The blog entry 124, once finished and user-approved, may be appended to a blog. The blog may be a website configured as a blog, operated by the user 104 and “hosted” by a server/host 128. The server 128 may be a computer with appropriate network connectivity (e.g., Internet connectivity) configured to serve the blog 130 in response to requests, such as from friends of the user 104 and/or from other users. The blog 130 may be thought of as a list, catalog or inventory of one or more blog entries, generally with the newest blog entry located on top (i.e., in a location seen at the top of a webpage loaded into a viewer's browser).
The memory device 204 can be a random access device (RAM) or other device and/or technology, as indicated by the needs of a particular application. The memory device may include or contain an operating system 212 and one or more programs 214 and/or procedures 216-224. Such programs and/or procedures can result in the reading, storing and execution of computer-readable and/or processor-readable statements, which when executed by the processor 202, result in execution of one or more methods, such as methods of performing automated blog creation and upload.
A template selection procedure 216 is configured to select an appropriate template for a blog entry. A template includes a plurality of regions, each region being adapted to contain and position content, such as an image or text. The correct template for a particular blog entry depends on a comparison of each the template's configuration, and factors such as how many content objects there are (in the blog entry), their relative sizes and preferred locations. In the example of
A content-to-region assignment procedure 218 assigns each content file (e.g., an image or text) to specific regions within a template. The assignment may be made using input from the user and from examination of the content itself. For example, if an image file has been characterized (e.g., by the user) as an “initial” image it may be located in an upper region within the template. Content that is “intermediate” and “concluding” may be located in later regions within the template. Content that is “featured” or “larger” may be located in a larger or more prominent region within the template. Accordingly, the content-to-region assignment procedure 216 may utilize input from the user to assign content to specific regions within the template. However, in the absence of specific instructions from a user, the content-to-region assignment procedure 224 logically assigns content to specific regions within a template, based on factors including image sizes, number and other data.
A voice command procedure 220 is configured to recognize voice commands. For example, a voice command may be used to label an image as an “initial image” or a “supplemental image.” A voice command, e.g., “upload blog entry,” may be used to invoke a process to upload a blog entry to a server, where it is appended to a blog hosted by the server. In general, many commands supported by the user interface may be activated by voice, if desired, and recognized by the voice command procedure 220. The technology supporting the voice command procedure may be located on the blogging tool 102 or remotely, as appropriate.
A voice to text procedure 222 may be used as an alternative, or supplement to, a keyboard device (e.g., conventional keyboard or “virtual” touch screen keyboard). The voice to text procedure 222 may be used, for example, to allow the user to input text to accompany an image, that is, to provide a “legend” to the image. The legend may be located adjacent to the image—such as below the image—and explain or enhance the image.
A blog entry upload procedure 224 may be used to provide automated support to the user to upload a blog entry 124 to the server 128 (see
An authoring tool 236 may be used to coordinate the creation of the blog entry 124. The authoring tool 236 may be separate from, or may include one or more of the template selection procedure 216, the content-to-region assignment procedure 218, the voice command procedure 220, the voice-to-text procedure 222 and the blog entry upload procedure 224.
The storage device 206 may be based any desired technology, such as disk drive and solid state technologies. In the example of
The content 226 may include one or more images, text, video, sound or other content from any source. The sound recordings may be part of a video file, or may be stand-alone files that may be incorporated into a blog entry 124. The content 226 may be referred to, for example, as “images” or “text”; however, the content may alternatively be understood to be data files within a file system, wherein each data file may contains an “image” or “text.”
The blog entry 124 may be fully formed or may be under construction. The blog entry 124 may include a template having one or more regions. The region(s) are associated with, or are available for association with, content. Thus, as content become available, regions of the template are filled. When a blog entry is finalized, it may be appended to the blog 130.
The input/output system or user interface 208 is configured to provide a user 104 (shown in
A user interface may be included within, or displayed by, the automated blogging device 102 (
The selected template 118 provides five regions 402, etc., within which content may be located. The regions are not all the same size or shape, and are differently located relative to each other, and therefore provide diversity which encourages and supports inclusion of differently sized images, which may be conducive to an attractively laid-out blog entry. One of the five regions has been selected, such as by operation of controls 234 or a touch screen, and is indicated by a highlight 404 of the region. This provides the user with one way in which to isolate the region at highlight 404, and to assign an image to that region. For example, by highlighting the region, and then taking a picture or otherwise capturing content, the user is able to insert content into region at highlight 404 of the template 118.
Thus, the touch screen buttons 504-508 allow the user to characterize the image 502. Button 504 allows the user to characterize the content as being an “initial image,” which is typically an image that should be located at the top or top left of a template. That is, the user may feel that the image may be closely associated with a beginning of a story that the user is telling with a particular blog entry. Similarly, buttons 506 and 508 allow the user to characterize the content as being an “intermediate” or “concluding” image, indicating that an algorithm or automated procedure should locate the image in a middle or concluding portion of the template. Further, button 510 allows the user to characterize the image 502 as being a “legend,” such as text associated with another image. The legend may be created by operation of a voice-to-text algorithm (e.g., algorithm 222 of
Each process described herein is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks may represent computer-executable instructions stored 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 abstract 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 blocks can be combined in any order and/or in parallel to implement the process. The above discussion applies equally to other processes described herein.
At operation 602, a plurality of images is captured according to direction of a user. The images may include still images (e.g., “pictures”) or moving images (e.g., “video”). In one example, a user may operate a device such as a camera, video camera and/or voice recorder to capture content. Further, the user may determine desired people, scenes or objects to be included in the content, and may take pictures or video as desired. Accordingly, the user may control the capture of content including images at least as provided by known cameras, video cameras and recording devices. Referring to the example of
Operations 604-606 describe alternative and/or supplemental operations to the image capture of operation 602. At operation 604, the user may indicate that the image is a “featured image” or a “supplemental image.” Thus, when capturing images according to operation 602, the user may emphasize the importance of such a captured image by indicating that it is a “featured image,” or the user may somewhat downplay the importance of the image by indicating that it is a “supplemental image.” For example, such information may be added by operation of the user interface of
By adding this information to the captured image, the image may be more appropriately positioned within the template, in a region befitting its importance relative to other images. For example, the content to region procedure 218 of
Operations 608-610 describe additional alternative and/or supplemental operations to the image capture of operation 602. These operations may be performed using an interface similar to that seen in
At operation 612, at least one of the plurality of images is annotated with metadata. Referring to the example of
Operations 614-616 describe additional alternative and/or supplemental operations to the annotation operation 612. At operation 614, at least one image may be supplemented with a map. The map may provide information about the at least one image, such as the location at which the image was taken and/or captured. The map may be a street view, satellite view, conventional map or other drawing or illustration. The map may be associated with the image by a legend indicating the association, or the map may be located in an inset within the image with which it is associated. At operation 616, the map itself may be annotated, such as to indicate where the image was created.
At operation 618, verbal input from the user is processed, to recognize and distinguish verbal content or verbal commands. Verbal content may include verbal text, such as a legend for an image or other text, such as stand-along regions of text, to be added to the blog entry. Verbal commands may include verbal directions to the automated blogging tool, which indicate aspects of how the user would like a blog entry to be created and/or uploaded to the server. Verbal commands may be recognized and performed by the voice command procedure 222 of
Operations 620-622 describe additional alternative and/or supplemental operations to the distinguishing operation 618. At operation 620, a command is recognized, and the action indicated by the command is performed. For example, at operation 622, the user may issue a verbal command, such as “speech to text.” Such a command may be recognized, such as by the voice command procedure 220 of
At operation 624, at least one of the plurality of images is annotated with a legend of text. In one example, the text may be derived from the voice to text procedure 222 of
Operations 626-628 describe additional alternative and/or supplemental operations to the annotating operation 624. At operation 626, verbal input not recognized as a verbal command may be processed as verbal content. Thus, verbal commands may include keywords, which if not present, allow the verbal input to be processed as verbal content. Verbal content may include a text legend to annotate an image, or a text region that is part of the blog entry. At operation 628, a text version of the user's verbal content may be linked to an image. For example, the metadata of the image may be annotated to include the text. Alternatively, text may be linked to a region within a template of a blog entry.
At operation 630, a template is selected as a framework for the images, text legends associated with images, text, metadata and other content. The template may also be selected for adaptation to contain data associated with audio recordings, including voice and non-voice sounds. The template may be selected initially, before capture of any content, and appropriate kinds and amounts of content captured to fill the template. Alternatively, the template may be selected at a later time, after some or all of the content has been selected, when the nature of the required template, including numbers and relative sizes of the included regions, is known.
Operations 632-634 describe additional alternative and/or supplemental operations to the template selection operation 630. At operation 632, a current template may be evaluated in an iterative manner after capture of each of a plurality of images for inclusion within a blog entry. Accordingly, the process may be automated, and is in contrast to the user-selection described with respect to
Thus, at operation 638, the plurality of images, the metadata and the text is assembled into the current template to create a blog entry. The software data structures and/or objects that are associated with the creation of the blog entry are similarly created. Operations 640-642 describe additional alternative and/or supplemental operations to the assembly operation 638. At operation 640, the blog entry may be displayed to the user, and at operation 642 the user may be prompted to approve the blog entry. Alternatively, the user may substitute a preferred template and/or alter the content associated with the current template.
The above operations may be repeated as indicated or required, in an iterative manner to create the blog entry.
At operation 644, the blog entry may be uploaded to a server in response to receipt of a command given by the user. The command may be a verbal or manual interaction with a user interface, such as the user interface seen in
A further example of selecting a template as a framework for the content (e.g., images, metadata and text) is seen at blocks 708-714. At operation 708, user input selecting a preferred template may be received by the blogging tool. At operation 710, the current template may be replaced with the user-selected or preferred template in response to the user input. The user interface of
In one example, the user interface of
The unstructured media data 902 may be used as input by an authoring module 236 or a blogging device (e.g., the blogging device 102 of
A micro-blog entry 904 may be appended to an existing micro blog 906, sent directly to an audience (e.g., the family and friends of the author), and/or may be posted on a social networking website. In the event that the micro-blog entry 904 is appended to an existing micro-blog 906, it may be downloaded by members of the audience at their convenience. In the event that the micro-blog entry 904 is sent directly to the audience, it may appear on their cellular phones and/or computers or other devices in an automated fashion.
The micro-blog entry 904 may include text and/or automated speech recognition (ASR) 912, and/or a picture/video or other content 914. Accordingly, the micro-blog entry 904 may provide the audience with a limited multimedia experience.
The macro-blog entry 908 may include more content or content diversity than the micro-blog entry 904. Accordingly, the macro-blog is a well-developed content-rich type of blog that is typically associated with blogging. Blog entry 908 may be constructed by segmenting the unstructured media content 902 based on timestamp, location or any other desired parameter(s). Accordingly, one or more events may be created. Four such events are seen within the macro-blog entry 908 of
Each event may be associated with a template, which contains that data. For example, templates 916-920 are associated with Event #1 through Event #3, respectively. Each template 916-920 includes content that was grouped together due to closeness in time and/or location. Accordingly, a template (e.g., one of templates 916-920) comprising one or more data files, objects or “snippets” of content, may be created for each event.
Because data collected at a particular location (e.g., a GPS-determined location) or period of time tends to be related, it can reliably be grouped as an “event.” Such a grouping—based on time and/or location—can thereby be used to create one or more events, such as the four events seen in
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.