Adapting a playback of a recording to optimize comprehension

Each of segment of a recording is analyzed for complexity specifying a rate of speech at a normal playback speech. A target rate is selected at which to playback the recording, the target rate specifying a fastest optimal speed at which a particular user listening to the recording is able to comprehend the playback. During playback of the recording, a separate adjusted playback rate is selected for each of the segments to adjust the playback rate of speech from the rate of speech at the normal playback speed to the target rate.

BACKGROUND

1. Technical Field

This invention relates in general to digital recording and more particularly to adapting a playback of a recording to optimize comprehension for a particular user.

2. Description of the Related Art

When playing back an audio or video recording, a user may select a playback speed that is faster than the speed at which the recording was made, to reduce the amount of time required to listen to the playback of the recording.

BRIEF SUMMARY

When a user selects to playback a recording at a faster speed than the recording speed, one or more parts of the recording may be difficult to comprehend when played at the faster playback speed. In view of the foregoing, there is a need for a method, system, and program product for adapting a playback speed of a recording to optimize comprehension for the particular user of the recording during playback.

In one embodiment, a method is directed to analyzing, by a computer, a single instance of a recording using natural language processing to translate one or more spoken words in the single instance of the recording into textual language. The method is directed to identifying, by the computer, a separate complexity of each translation of each of the one or more spoken words to reflect a rate of speech at a normal playback speed and to reflect a difficulty performing natural language processing to detect each spoken word within the single instance of the recording and translate each spoken word in the single instance of the recording into textual language, each separate complexity specifying a different speed. The method is directed to analyzing, by the computer, the single instance of a recording to identify a plurality of segments of the recording for each separate complexity, each of the plurality of segments set to a separate length for a separate continuous portion of the one or more spoken words of a same complexity. The method is directed to selecting, by the computer, a target rate at which to playback the single instance of the recording for access by a particular user from among a plurality of users, the target rate specifying a fastest optimal speed at which the particular user listening to the single instance of the recording is able to comprehend the playback. The method is directed, during playback of the single instance of the recording, modifying, by the computer, playback of the single instance of the recording in an interface accessible to the particular user to contiguously be at the target rate, wherein a separate adjusted playback rate is applied to each of the plurality of segments to adjust the playback rate of speech from the separate complexity of the rate of speech at the normal playback speed to the target rate.

In another embodiment, a computer system comprises one or more processors, one or more computer-readable memories, one or more computer-readable storage devices, and program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories. The stored program instructions comprise program instructions to analyze a single instance of a recording using natural language processing to translate one or more spoken words in the single instance of the recording into textual language. The stored program instructions comprise program instructions to identify a separate complexity of each translation of each of the one or more spoken words to reflect a rate of speech at a normal playback speed and to reflect a difficulty performing natural language processing to detect each spoken word within the single instance of the recording and translate each spoken word in the single instance of the recording into textual language, each separate complexity specifying a different speed. The stored program instructions comprise program instructions to analyze the single instance of the recording to identify a plurality of segments of the recording for each separate complexity, each of the plurality of segments set to a separate length for a separate continuous portion of the one or more spoken words of a same complexity. The stored program instructions comprise program instructions to select a target rate at which to playback the single instance of the recording for access by a particular user from among a plurality of users, the target rate specifying a fastest optimal speed at which the particular user listening to the single instance of the recording is able to comprehend the playback. The stored program instructions comprise program instructions to, during playback of the single instance of the recording, modify playback of the single instance of the recording in an interface accessible to the particular user to contiguously be at the target rate, wherein a separate adjusted playback rate is applied to each of the plurality of segments to adjust the playback rate of speech from the separate complexity of the rate of speech at the normal playback speed to the target rate.

In another embodiment, a computer program product comprises one or more computer-readable storage devices and program instructions, stored on at least one of the one or more storage devices. The stored program instructions comprise program instructions to analyze a single instance of a recording using natural language processing to translate one or more spoken words in the single instance of the recording into textual language. The stored program instructions comprise program instructions to identify a separate complexity of each translation of each of the one or more spoken words to reflect a rate of speech at a normal playback speed and to reflect a difficulty performing natural language processing to detect each spoken word within the single instance of the recording and translate each spoken word in the single instance of the recording into textual language, each separate complexity specifying a different speed. The stored program instructions comprise program instructions to analyze the single instance of the recording to identify a plurality of segments of the recording for each separate complexity, each of the plurality of segments set to a separate length for a separate continuous portion of the one or more spoken words of a same complexity. The stored program instructions comprise program instructions to select a target rate at which to playback the single instance of the recording for access by a particular user from among a plurality of users, the target rate specifying a fastest optimal speed at which the particular user listening to the single instance of the recording is able to comprehend the playback. The stored program instructions comprise program instructions to, during playback of the single instance of the recording, modify playback of the single instance of the recording in an interface accessible to the particular user to contiguously be at the target rate, wherein a separate adjusted playback rate is applied to each of the plurality of segments to adjust the playback rate of speech from the separate complexity of the rate of speech at the normal playback speed to the target rate.

DETAILED DESCRIPTION

In addition, in the following description, for purposes of explanation, numerous systems are described. It is important to note, and it will be apparent to one skilled in the art, that the present invention may execute in a variety of systems, including a variety of computer systems and electronic devices operating any number of different types of operating systems.

FIG. 1illustrates one example of a block diagram of an playback system for adapting a playback of a recording to optimize comprehension for a particular user.

In one example, a playback system100includes one or more components for managing playback of a recording102as adjusted recording output144.

Playback system100adapts a playback speed of recording102to optimize comprehension for one or more particular users and outputs the recording at the adapted playback speed and with only relevant sections, as adjusted recording output144. In additional or alternate examples, playback system100may include additional or alternate components from the controllers and interfaces illustrated inFIG. 1.

In one example, playback system100may include a speech analysis controller110for receiving recording102. Speech analysis controller110may analyze recording102prior to playback of recording102or in real-time as playback is occurring.

In one example, speech analysis controller110may implement a complexity controller112for analyzing recording102and for calculating one or more complexity characteristics of recording102. In one example, complexity controller112may implement one or more types of speech recognition to analyze recording102and calculate a complexity characteristic of a rate of speech within recording102at a normal playback speed. In another example, complexity controller112may implement one or more types of natural language processing controllers enabled to analyze recording102and calculate a complexity characteristic identifying a language being spoken and a difficulty of processing the speech.

In addition, speech analysis controller110may implement a relevance controller114for analyzing recording102and calculating one or more portions of recording102that are not relevant. In one example, relevance controller114may detect portions of recording102that are not relevant by detecting portions of recording102that do not include any speech. In one example, portions of recording102that do not include any speech may be identified from portions where a recording starts before the speaker starts speaking, technical difficulties with equipment that lead to recordings not including speech, or long pauses in speech. In one example, relevance controller114may detect portions of recording102that are not relevant by buffering a selection of frames, calculating an audio energy content per frame, marking frames for possible deletion based on the relative energy content, performing further analysis of the energy content of the frames in relation to other frames, and marking those frames with low energy content as irrelevant. In another example, relevance controller114may also detect portions of recordings that are not relevant by detecting portions of recording102that are not relevant to a topic selected by a user. In one example, relevance controller114may perform a natural language analysis of recording102to translate recording language into textual language, analyze the textual language to determine relevance to a particular topic selected by a user, and mark those frames with language that is not relevant to the particular topic as not relevant. In additional or alternate examples, relevance controller114may implement additional or alternate methods of identify and mark portions of recording102that are not relevant.

In one example, speech analysis controller110may select to segment recording102into one or more segments, where each segment may identify a separate complexity identifier, if complexity controller112detects one or more complexity identifiers for a continuous portion of the recording, and may include a separate block identifier, if relevance controller114identifies a continuous portion of the recording as not relevant. In one example, speech analysis controller110may identify a segment120from recording120, with a complexity identifier122, and a segment126from recording120, with a blocking identifier130. In additional or alternate examples, speech analysis controller110may identify additional segments within recording102. In addition, in additional or alternate examples, speech analysis controller110may identify a complexity identifier and a blocking identifier for a same segment of recording102. In one example, each of the segments of a recording may be different lengths or set to a same length.

In one example, playback system100may include a playback adjustment controller140. In one example, playback adjustment controller140controls playback of recording102. In one example, playback adjustment controller140may receive recording102from speech analysis controller110or may receive recording102directly, and adjust playback of recording102according to inputs from speech analysis controller110.

In one example, playback adjustment controller140may adjust playback of one or more segments of recording102marked with a block identifier, such as segment126with blocking identifier130, to skip replaying the segment marked with the block identifier. In one example, playback adjustment controller140may adjust playback of one or more segments of recording102marked with a complexity identifier, such as segment120with complexity identifier122, to replay the segment at an adjusted playback rate142calculated for the segment to optimize comprehension during playback for one or more users, such as a user164.

In one example, for each segment, playback adjustment controller140may adjust a playback rate for the segment at adjusted playback rate142to meet a target rate152. In one example, target rate152is selected as a target playback rate for optimizing comprehension by one or more particular users during playback of a recording. In one example, playback adjustment controller140may determine a rate of speech of segment120from complexity identifier122and adjust the playback of segment120, to meet target rate152, from the rate of speech of the segment at a normal rate to an adjusted playback rate142.

In one example, a target rate identifier150may dynamically select target rate152for one or more particular users according to settings in one or more user profiles associated with the one or more particular user. In one example, the listeners to recording102may include one or more users, such as a user164and a user166. In one example, target rate identifier150may access one or more user profiles, such as a user profile154, that may be associated with user164, and a user profile156, that may be associated with user166. In one example, each of user profile154and user profile156may include listening history and selections for a particular user that enable target rate identifier150to specify target rate152to optimize comprehension of recording102during playback for the user associated with the user profile. For example, a user profile may include a listening history and selections that indicates a user's capacity for listening to a recording, such as a maximum word per minute rate that the user has selected or is indicated in the listening history for the user and an average word per minute rate that the user has selected or is indicated in the listening history for the user. For example, a user profile may further specify the user's maximum and average word per minute rates according to the types of speech or types of content of the speech included in a recording.

In one example, target rate identifier150may also dynamically select target rate152for one or more particular users according to the responses by the one or more users during playback. In one example, a user response detection interface160may include one or more interfaces selected to detect one or more types of responses by one or more users, such as user164and user166, during playback of recording102. In one example, user response detection interface160may analyze responses by one or more of user164and user166during playback of recording102, to detect a type of response, and generate user response162, indicating one or more of the type of a response and a recommended action to change the type of response. Target rate identifier150may receive user response162and analyze user response162to determine whether to dynamically adjust target rate152based on one or more of the type of response and a recommended action to change the type of response. In one example, a user profile accessed by target rate identifier150may also specify the type of action to take in response to particular types of user responses reported by user response detection interfaces160.

In one example, in selecting a type of action to take in response to particular types of user responses reported by user response detection interface160, target rate identifier150may select to adjust a target rate to attempt to modify a comprehension level170representing a user's comprehension of playback of recording102. In one example, user responses may be categorized as indicating one of three levels within comprehension level170illustrated as an additional capacity172, optimal capacity174, and over capacity176. In one example, optimal capacity174may represent a fastest playback for a particular user during which the user is able to optimally comprehend adjusted recording output144for the user's required purposes. In one example, one user may be able to optimally comprehend recording102played back at an adjusted playback rate142twice the normal speed, however, another user may be able to comprehend recording102played back at an adjusted playback rate142three times the normal speed, which indicates that a target rate yielding optimal capacity174for a same recording may vary from one user to another user. In one example, additional capacity172may represent a comprehension level at which the user could listen to the recording at a higher speed and continue to comprehend recording102. In one example, over capacity176may represent a comprehension level at which the user is struggling to comprehend the recording at the current speed.

In one example, by target rate identifier150dynamically selecting and adjusting target rate152for playback of recording102for a particular one or more users, such as one or more of user164and user166, adjusted recording output144is optimized for comprehension by the particular one or more user164and user166. In one example, by target rate identifier150receiving user response162from user response detection interface160while the particular one or more users are listening to adjusted recording output144, target rate identifier150may dynamically adjust target rate152and may also monitor user responses after adjusting target rate152to determine if further adjustments are needed or whether a user's comprehension reaches optimal capacity174.

In one example, in addition to playback adjustment controller140adjusting the playback of recording102at an adjusted playback rate142, playback adjustment controller140may adjust additional aspects of recording102during playback as adjusted recording output144. For example, playback adjustment controller140may detect the position of user164or user166in relation to a selection of speakers and adjust the volume and selection of speakers from which to output adjusted recording output144to optimize the volume and audio aspects of the recording. In another example, playback adjustment controller140may detect the bandwidth available for streaming adjusted recording output144and adjust one or more aspects of the play of adjusted recording output144to optimize the output based on the bitrate available for the current bandwidth. In another example, playback adjustment controller140may detect visually similar frames of video within recording102, such as multiple redundant advertisements inserted into a video stream or redundant opening or closing credits across multiple episodes, and edit out the visually similar frames, and accompanying audio, to remove redundant advertisements or redundant credits, to minimize the playback time of recording102.

FIG. 2illustrates one example of a block diagram of a playback of a recording separately adapted for different users to optimize comprehension for each of the users.

In one example, a playback service200controls playback of a recording202to one or more users. In one example, playback service200may control playback of recording202through a separate interface accessible by each user, such as through a user A interface220, accessible by a first selection of one or more particular users, or a user B interface240, accessible by a second selection of one or more particular users. For example, user A interface220and user B interface240may each represent one or more types of interfaces including, but not limited to, a browser interface, an application interface, and a physical input/output (I/O) interface. In one example, one or more components of playback system100are integrated into playback service200. In another example, one or more components of playback system100are integrated into user A interface220and user B interface240. In additional or alternate examples, playback service200may control playback of recording202to one or more users through additional or alternate interfaces.

In one example, recording202may include multiple types of recorded content including, but not limited to, audible speech, music, graphical images, video images, and other recordable media. In one example, recording202may include a single speaker, speaking in a particular language, with a particular dialect and one or more paces. In another example, recording202may include multiple speakers, speaking in one or more languages or in one or more dialects, at one or more paces.

In one example, playback service200or one or more of user A interface220and user B interface240may implement one or more instances of speech analysis controller110, as illustrated by speech analysis controller204, to analyze recording200and selectively segment recording200into two or more segments, such as a segment (seg) A210, a segment B212, a segment C214, and a segment D216.

In one example, speech analysis controller204, in selectively segmenting recording202, may determine one or more of a complexity identifier and a blocking identifier for each segment. In one example, speech analysis controller204identifies seg A210and seg C214as not containing relevant speech and sets a blocking identifier for each of seg A210and sec C214to irrelevant (IRR). In one example, speech analysis controller204identifies segment B212and segment D216as containing relevant speech and sets a complexity identifier for each segment to an average words per minute at normal playback speed for each segment. For example, segment B212includes a complexity identifier of 180 words per minute (WPM) and segment D216includes a complexity identifier of 140 WPM. In one example, the normal playback speed may match the same speed at which the content was recorded.

In one example, playback adjustment controller218, representing one or more instances of playback adjustment controller218, may adjust the playback of recording202within user A interface220by determining an adjusted playback rate based on a target rate specified for user A interface220. In one example, during playback, as illustrated at reference numeral222, a target rate for user A interface220is initially set to 160 WPM. In one example, as illustrated at reference numeral224, for playback of segment B, playback adjustment controller218decreases the playback speed, at the adjusted playback rate, from 180 WPM to 160 WPM. In one example, during playback of segment B, user response detection interface160detects a response by one or more users accessing user A interface220to access the playback of recording202. In one example, as illustrated at reference numeral226, user response detection interface160detects a user response of “distracted”, which indicates there is additional capacity for the target rate to be increased and the user continue to comprehend the playback. In one example, in response to the user response of additional capacity detected at reference numeral226, playback adjustment controller218selects to dynamically adjust the target rate for user A interface220from 160 WPM to 170 WPM, as illustrated at reference numeral228. In one example, the increment by which the target rate is increased may be set based on one or more of a user profile and an intensity of the user response. In one example, as illustrated at reference numeral230, the user selects to continue playback to segment D, and playback adjustment controller218increases the playback speed from 140 WPM to 170 WPM. In one example, as illustrated at reference numeral232, during playback of segment D, user response detection interface160detects a user response indicating the user's response is not struggling or distracted, which may indicate that the playback rate is currently at a speed for optimal comprehension. In the example, the playback of recording202through user A interface220includes a dynamic adjustment of the target rate based on user response to playback and includes dynamic adjustment of the playback rate of multiple segments to reach a playback rate matching the target rate.

In one example, playback adjustment controller218may adjust the playback of recording202within user B interface240by determining an adjusted playback rate based on a target rate specified for user B interface240. In one example, during playback, as illustrated at reference numeral242, a target rate for user B interface240is initially set to 250 WPM. In one example, as illustrated at reference numeral244, for playback of segment B, playback adjustment controller218increases the playback speed, at the adjusted playback rate, from 180 WPM to 250 WPM. In one example, during playback of segment B, user response detection interface160detects a response by one or more users accessing user B interface240to access the playback of recording202. In one example, as illustrated at reference numeral246, user response detection interface160detects a user response indicating the user is struggling to comprehend the playback at the current target rate, indicating a comprehension level of over capacity, therefore the current target rate needs to be decreased. In one example, in response to the user response of struggling detected at reference numeral246, playback adjustment controller218selects to dynamically adjust the target rate for user B interface240from 250 WPM to 200 WPM, as illustrated at reference numeral248. In one example, the increment by which the target rate is decreased, from 250 WPM to 200 WPM, may be set based on one or more of a user profile and an intensity of the user response. In one example, as illustrated at reference numeral250, the user selects to continue playback to segment D, and playback adjustment controller218increases the playback speed from 140 WPM to 200 WPM. In one example, as illustrated at reference numeral252, during playback of segment D, user response detection interface160detects a user response of “distracted” indicating the user's response has additional capacity for comprehension, which indicates that the target rate may be increased. In one example, in response to the user response of additional capacity detected at reference numeral252, playback adjustment controller218selects to dynamically adjust the target rate for user B interface240from 200 WPM to 225 WPM, as illustrated at reference numeral254. In one example, the increment by which the target rate is increased, from 200 WPM to 225 WPM, may be set based on one or more of a user profile and an intensity of the user response. In one example, as illustrated at reference numeral256, the user selects to either continue playback within segment D or replay segment D, and playback adjustment controller218increases the playback speed from 140 WPM to 225 WPM. In one example, as illustrated at reference numeral258, during playback of segment D, user response detection interface160detects a user response indicating the user's response is normalized, which indicates that the playback rate is currently at a speed for a compression level of optimal capacity. In the example, the playback of recording202through user B interface240includes a dynamic adjustment of the target rate based on user response to playback and includes dynamic adjustment of the playback rate of multiple segments to reach a playback rate matching the target rate.

In one example, recording202may represent a recording of a two-hour lecture by a professor. In the example, students may access recording202to listen to the lecture. Students accessing recording202may want to optimize their time by minimizing the time it requires to watch the two hour lecture, while still maintaining optimal comprehension of the recording during playback. In one example, by identifying seg A210and sec C214, which are segments that do not include relevant speech, with block identifiers of IRR, during playback of recording202, students may select for playback adjustment controller218to automatically skip segments marked as IRR and reduce the playback time of recording202by the time of each of the skipped segments. In addition, while many playback systems may include an option for a user to select to increase the speed of playback by a fixed amount, such as 2 times or 2.5 times, if the rate of speech of the speaker is not consistent, increasing the speed of playback by a fixed amount may yield a playback that is too fast when the speaker's speech speeds up, or too slow when the speaker's speech slows down. In the example illustrated, by identifying the complexity identifier of each segment, including the words per minute at normal speed, if a professor speaks slowly in some portions and speaks quickly in others, during playback of recoding202, students may select for playback adjustment controller218to automatically adjust the playback of each segment to a target rate, which requires adjusting the current playback rate to a rate that adjusts the original WPM in the segment to the WPM set in the target rate. In one example, by adjusting playback of segments to a target rate, when the professor's speech speeds up, such as in segment B212, playback adjustment controller218may automatically decrease the playback speed to meet a WPM setting of a target rate, however, if the professor's speech slows down, such as in segment D216, playback adjustment controller218may automatically increase the playback speed to meet the WPM setting of the target rate. In one example, in examples where a student may have difficulty comprehending the speech in recording202at the rate at which the speech is recorded, for example where the student is in the process of the learning the language primarily used in the speech or where the dialect spoken in the speech is difficult for the student to understand, the target rate for playback may also be set to a rate lower than the recorded words per minute at a normal playback rate, and the speech slowed at playback to meet the target rate, to allow for optimal comprehension without reducing the target rate any lower than necessary. Further, by monitoring the response of each student listening to recording202and dynamically adjusting a target rate, individually, for each student during playback, the playback of recording202may be adjusted to minimize the total playback time for each student, individually, while also dynamically adjusting the target rate to optimize capacity of comprehension for each student.

In another example, recording202may represent a recording of a public meeting that includes many different speakers. In the example, the public may access recording202to listen to the meeting. In the example, speech analysis controller204, in addition to identifying the words per minute of segments for different speakers, may also identify other complexity identifiers through natural language processing analysis, such as distinguishing between different languages spoken or identifying speech that is muffled, based on the difficulty of translating the speech into recognizable textual words. In one example, speech analysis controller204may adjust the recorded words per minute set in a complexity identifier for a segment to reflect different languages or to reflect the difficulty of understanding the speech. In another example, speech analysis controller204may set indicators of the difficulty of understanding the speech with the recorded words per minute, such that playback adjustment controller218may adjust the playback rate from the words per minute of the original speech reflect the difficulty of understanding the speech. By distinguishing between differences in language and difficulty of understanding speech within the complexity identifier for a segment, finer levels of adjustment may be managed when marking segments for adjusted playback.

FIG. 3illustrates one example of a block diagram of one or more user response detection interfaces accessed by a target rate identifier.

In one example, a target rate identifier150may include one or more analyzer components for analyzing one or more types of information accessed from one or more interfaces. In one example, target rate identifier150may interface with one or more additional or alternate types of interfaces and may include one or more additional or alternate analyzer components.

In one example, a user302listens to playback of a recording, such as adjusted recording output144from playback adjustment controller140, from a playback speaker310. In one example, user response detection interface160may include a proximity detector312that detects a proximity of user302to playback speaker310. In one example, proximity detector312may detect a proximity of user302to playback speaker310indicating a proximity of user302holding playback speaker310up to the user's ear. In one example, playback speaker310may be integrated into a portable communication device, where a user may press playback speaker310closer to the user's ear if the playback is not easily comprehendible. In one example, proximity detector312may represent a gyroscope within the portable communication device that is able to detect the proximity of playback speaker310to a user's ear based on the tilt and rotation of the portable communication device in relation to a position that is generally indicative of a user's ear. In one example, proximity detector312detects an indicator of the proximity of an ear of user302to playback speaker310and provides the proximity indicator to a proximity analyzer of target rate identifier150.

In one example, proximity analyzer314may apply one or more criteria for analyzing the proximity indicator received from proximity detector312. For example, proximity analyzer314may access positions indicating over capacity316, such as positions of playback speaker310within a close proximity to a user's ear for triggering proximity analyzer314to decrease a target rate, along with intensity settings for each position to indicate the amount of an increment to decrease the target rate. For example, proximity analyzer314may access positions indicating additional capacity of a user to comprehend a playback at higher speeds, along with intensity settings for each position to indicate the amount of an increment to increase the target rate. If proximity analyzer314detects that user302is pressing playback speaker310against the user's ear, proximity analyzer314may determine that the position of playback speaker310in relation to user302indicates a struggle to comprehend, which is included in positions indicating over capacity316. In addition, proximity analyzer314may access positions indicating additional capacity316, such as a user's proximity to playback speaker310indicating the user is not holding playback speaker310, indicating user302may have additional capacity to comprehend the playback of the recording at a faster speed.

In one example, as user302listens to playback of a recording, such as adjusted recording output144from playback adjustment controller140, an image capture device320may capture an image. In one example, user response detection interface160may include an image analyzer322that analyzes the image captured by image capture device320to determine a type of image captured. In one example, image capture device320may be integrated in a portable communication device that controls playback of adjusted recording output144. In one example, image capture device320may capture an image of user302. In another example, depending on the angle that the user is holding the portable communication device, image capture device302may capture images of an environment around user302. In one example, image analyzer322may implement a facial recognition controller for analyzing an image captured by image capture device320, if the image is an image of user302, to identify a type of expression.

In one example, image analyzer322may apply one or more criteria for analyzing the image identified by image analyzer322. For example, image analyzer322may access one or more types of expressions indicating over capacity, as illustrated at reference numeral326, to decrease a target rate, along with intensity settings for each type of expression to indicate the amount of an increment to decrease the target rate. In one example, if a user's facial expression indicates confusion, furrowed brows, or a straining to read lips, these types of expressions may indicate a struggle to comprehend, indicating the current comprehension level is over capacity. For example, image analyzer322may access one or more types of expressions indicating additional capacity328, along with intensity settings for each type of expression to indicate the amount of an increment to increase the target rate. In one example, if a user's facial expression indicates the user is yawning or the user's eye gaze is not directed to the video playback, these types of expressions may indicate that a user is not fully paying attention and that the user may continue to comprehend the playback at a faster rate.

In one example, as user302listens to playback of a recording, such as adjusted recording output144from playback adjustment controller140, a user may listen to the playback through one or more output interfaces, in addition to or alternatively to playback speaker310. For example, user302may listen to playback of a recording from headphones330, for audio output, and from a display device332, for playback of a video recording. In one example, output type analyzer334may analyze the types of output interfaces accessed by user302during playback of a recording and direct proximity analyzer314or image analyzer322to integrate the types of outputs into determining a target rate. In one example, if user302listens to a playback of a recording via headphone330, image analyzer322may further analyze images captured by image capture device320for images indicating that a user is pressing headphones closer to the user's ears or cupping hands over the headphones, as indicators that the user is struggling to comprehend the playback. In another example, if user302watches playback of a recording via display device332, image analyzer322may further analyze images captured by image capture device320for images indicating that a user is not paying attention to the output via display device332, as an indicator that there is additional capacity for the speed of a playback to be increased and the user to continue to comprehend the playback.

In one example, as user302listens to playback of a recording, user302may selectively adjust a volume of the playback of the recording. In one example, volumes setting interface340may represent an interface through which a user may select inputs to adjust a volume of a playback of a recording. In one example, a volume level analyzer342analyzes a volume setting and changes by user302to the volume through volume setting interface340. In one example, volume level analyzer342may trigger proximity analyzer314or image analyzer322to set an intensity based on the combination of a user placing playback speaker310in proximity to the user's ear and adjusting a volume or based on the combination of a user's facial expression with a volume adjustment. In one example, if user302is pressing playback speaker310against the user's ear and increasing the volume, the user's response may indicate a drop in volume in the recording that makes comprehension difficult, therefore proximity analyzer314may increase the increment by which a target rate is decreased. In another example, if user302is detected as actively watching display device332, but decreasing the volume of the playback, the user's response may indicate the user has additional capacity, therefore image analyzer322may increment the target rate by small increments to increase the speed of the playback. In one example, in setting the target rate with a rate of speech, volume level analyzer342may also detect volume changes and target rate identifier150may include volume level targets, to normalize the volume of output of a recording, so that a user does not need to manually adjust the volume to compensate for changes in the level of volume of one or more speakers within a recording.

In one example, as user302listens to playback of a recording, user302may selectively rewind or forward the recording through a rewind/forward interface350. In one example, rewind/forward interface350passes indicators when a recording is rewound or forwarded to a rewind/forward analyzer352. Rewind/forward analyzer352may analyze a frequency and length of each rewind or forward action. In one example, rewind/forward analyzer352may apply one or more criteria for analyzing the frequency and length of each rewind or forward action during playback of the recording. For example, rewind/forward analyzer352may access criteria illustrated at reference numeral356, for decreasing a target rate, based on rewind frequency and length settings indicating over capacity, such as settings that indicate a struggle to comprehend. In one example, the criteria illustrated at reference numeral356may specify that if a user rewinds a same portion of a recording two times, to slow the target rate by a 5% increment, and if a user rewinds the same portion of the recording three times, to slow the target rate by a 10% increment. For example, rewind/forward analyzer352may access criteria illustrated at reference numeral358, for increasing a target rate, based on forward frequency and length settings that indicate additional capacity. In one example, the criteria illustrated at reference numeral358may specify that if a user forwards through two portions of a same segment, to increase the target rate by a 10% increment.

In another example, target rate identifier150may include a group analyzer362that accesses a group interface360. In one example, group analyzer362analyzes the target rate settings by target rate identifier150and sends the target rate settings, with user profile information, to group interface360. Group interface360may aggregate the target rate settings and user profile information for a particular recording and identify an average target rate for one or more types of group settings. Group interface360may generate target rates set by group identifier364, which may include target rate settings, by segment of a recording, and by group characteristics. Group interface360may provide target rates set by group identifiers364to group analyzer362, for a particular recording, during playback. Group analyzer362may analyze target rates set by group identifiers364to determine one or more group characteristics specified in a user profile and identify the target rates from among target rates set by group identifier364with group characteristics matching the user profile group characteristics. Target rate identifier150may initially set a target rate for a segment for playback based on one or more of the target rates from among target rates set by group identifier364with group characteristics matching the user profile group characteristics.

FIG. 4illustrates one example of a block diagram of a network environment in which a playback system and playback interface are implemented. One of ordinary skill in the art will appreciate that environment400is illustrative of one type of network environment that may support clients, servers and other components of a broadcast system and communication system. In addition, one of ordinary skill in the art will appreciate that the distribution of systems within network environment400is illustrative of a distribution of systems, however, other distributions of systems within a network environment may be implemented.

As illustrated, multiple systems within network environment400may be communicatively connected via network402, which is the medium used to provide communications links between various devices and computer systems communicatively connected. Network402may include permanent connections such as wire or fiber optics cables and temporary connections made through telephone connections and wireless transmission connections, for example, and may include routers, switches, gateways and other hardware to enable a communication channel between the systems connected via network402. Network402may represent one or more of broadcast television networks, including cable, satellite, and internet based television networks across which programs are transmitted, packet-switching based networks, telephony based networks, local area and wire area networks, public networks, and private networks. Network environment400may implement multiple types of network architectures.

Network402and the systems communicatively connected within network environment400via network402may implement one or more layers of one or more types of network protocol stacks which may include one or more of a physical layer, a link layer, a network layer, a transport layer, a presentation layer, and an application layer. For example, network402may implement one or more of the Transmission Control Protocol/Internet Protocol (TCP/IP) protocol stack or an Open Systems Interconnection (OSI) protocol stack. In addition, for example, network402may represent the worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another.

In the embodiment, as illustrated, a client system440and a client system550are communicatively connected via network402to one or more of a server system410, a server system420, and a server system430. Each of client system440, client system450, server system410, server system420, and server system430may represent one or more computer systems, such as computer system600ofFIG. 6, to be described below.

In one example, client system440hosts a playback interface442and client system450hosts a playback interface454, where playback interface442and playback interface454each represent instances of user A interface220or user B interface240through which adjusted recording output144is accessed, for one or more users. In one example, each of playback interface442and playback interface454may output adjusted recording output. In one example, playback interface442of client system440may receive adjusted recording output from one or more server systems, such as from the adjusted recording output from a playback system412hosted on server system410or from a playback server422hosted on server system420. In one example, playback interface454may receive adjusted recording output from one of server system410and server system420, or from playback system452, hosted on client system450. In one example, playback system452may playback one or more recordings stored in client system450.

In one example, server system410may host playback system412, where playback system412may represent an instance of playback system100, for controlling playback of one or more recordings from a recording database414hosted by server system410. In one example, server system420may host playback service422, which may represent an instance of one or more of the components of playback system100, provided as a service, for playback of one or more recordings from one or more sources, including, but not limited to, recording database414and a recording database432. In one example, server system430may host one or more recordings in a recording database432, for playback by playback service422to one or more playback interfaces on client systems.

In one example, client system440may include playback interface422for receiving the adjusted recording output from playback system412or playback server422, and a user response detection interface444for detecting one or more user responses to the adjusted recording output and sending the one or more user responses to playback system412or playback server422. In one example, client system450may include playback system452, which incorporates a user response detection interface.

In one example, playback system412may simultaneously stream a recording from recording database414to different users at different client systems, with each recording streamed as a separate adjusted recording output specified for optimized comprehension by the users at the different client systems. In one example, recordings in recording database414, recording database432, or on one or more of client system440and client system450may be provided as live streams, on-demand streams, on-demand downloads, scheduled downloads, viewable media, program playback and other recordable and viewable sources of recorded media.

In one example, client system440and client system450, executing playback interface442and playback interface454, respectively, may represent stand-alone recording playback devices. In another example, client system440and client system450may represent general computer systems executing playback interface442and playback interface454, respectively, through a browser or other interface, running as functions of the browser or other interface, as plug-ins, as stand-alone functions, or as other executable components of the computer system. In one example, client system440and client system450may represent portable communication devices. In one example, each of server system410, server system420, and server system430may represent a networked environment including multiple server systems.

In one example, one or more server systems may include a group interface, such as group interface416, which may represent an instance of group interface360. In one example, group interface416may detect target rate settings and user responses to adjusted recording output from one or more client systems, such as client system440and client system450. Group interface416may access user profiles for one or more users access client system440and client system450, either from a database hosted by server system410or from client system440or client system450, and detect one or more characteristics of each of the users. Group interface416may accumulate target rate settings and user responses to a recording from users with the same characteristics, as group identifiers. In addition, group interface416may provide the target rate settings by group identifiers to one or more of playback system412, playback server422, or playback system452for use in determining target rates for segments of the recording based on group identifiers.

FIG. 5illustrates one example of a block diagram of a user profile for specifying an adjusted playback of a recording for optimized comprehension by a user.

In one example, a user profile500represents an instance of one or more of user profile154and user profile156. In one example, target rate identifier150may update information stored in user profile500. In one example, a user may update information stored in user profile500. In another example, one or more additional services or components may update information stored in user profile500. In one example, one or more elements of user profile500may be distributed in multiple records stored among one or more systems.

In one example, user profile500may include user characteristics502. User characteristics502may include one or more characteristics of a user that may impact the user's ability to comprehend different types of speech. In one example, user characteristics502may include one or more particular languages or particular dialects understood by a user. In one example, user characteristics502may include specifications of a user's comprehension level for different types of output interfaces.

In one example, user profile500may include user response analysis rule settings504. In one example, user response analysis rule settings504may include one or more settings for application by one or more of the analyzer components of target rate identifier150, such as, but not limited to, proximity analyzer314, image analyzer322, output type analyzer334, volume level analyzer342, rewind/forward analyzer352, and group analyzer362. In one example, user response analysis rule settings504may be further classified according to available capacity indicators506, over capacity indicators508, and optimal capacity indicators510. In one example, available capacity indicators506specify settings that indicate a particular user has additional capacity to comprehend a playback at a higher speed. In one example, over capacity indicators508specify settings that indicate a particular user is struggling to comprehend a playback of a recording and a target rate needs to be decreased. In one example, optimal capacity indicators510specify settings that indicate that the user is actively listening to and comprehending the playback at the current target rate. User response analysis rule settings504may also specify intensity settings for setting the increments by which target rules are adjusted.

In one example, user profile500may include optimal capacity target rate settings by type of recording512. In one example, optimal capacity target rate settings by type of recording512may specify one or more target rates, each specified according to a type of recording, at which playback of the recording may be optimized. In one example, a type of recording may include the type of media of the recording, the quality of the recording, the number of speakers on the recording, and other information that may be provided in the metadata of a recording or detectable by analyzing the recording contents. In one example, optimal capacity target rate settings by type of recoding512may specify a starting target rate for a user, to be adjusted by target rate identifier150based on user responses and other information.

In one example, user profile500may include target rate setting log514. In one example, as target rate identifier150dynamically adjusts the target rate for a recording, the target rate adjustments are recorded in target rate setting log514. In addition, the one or more user responses detected by target rate identifier150triggering adjustment to a target rate may be recorded in target rate setting log514. If a target rate is adjusted for a user response indicating capacity available to result in a user response indicating optimal capacity, the target rate at which a user response indicating optimal capacity is reached is recorded in target rate setting log514. In one example, based on target rate setting log514, target rate identifier150may analyze target rate settings that yield a user response indicating a comprehension level of optimal capacity and adjust optimal capacity target rate settings by type of recording512to reflect the current target rate settings that yield a user response indicating a comprehension level of optimal capacity for a particular type of recording.

FIG. 6illustrates a block diagram of one example of a computer system in which one embodiment of the invention may be implemented. The present invention may be performed in a variety of systems and combinations of systems, made up of functional components, such as the functional components described with reference to a computer system600and may be communicatively connected to a network, such as network602.

Computer system600includes a bus622or other communication device for communicating information within computer system600, and at least one hardware processing device, such as processor612, coupled to bus622for processing information. Bus622preferably includes low-latency and higher latency paths that are connected by bridges and adapters and controlled within computer system600by multiple bus controllers. When implemented as a server or node, computer system600may include multiple processors designed to improve network servicing power.

Processor612may be at least one general-purpose processor that, during normal operation, processes data under the control of software650, which may include at least one of application software, an operating system, middleware, and other code and computer executable programs accessible from a dynamic storage device such as random access memory (RAM)614, a static storage device such as Read Only Memory (ROM)616, a data storage device, such as mass storage device618, or other data storage medium. Software650may include, but is not limited to, code, applications, protocols, interfaces, and processes for controlling one or more systems within a network including, but not limited to, an adapter, a switch, a server, a cluster system, and a grid environment.

Computer system600may communicate with a remote computer, such as server640, or a remote client. In one example, server640may be connected to computer system600through any type of network, such as network602, through a communication interface, such as network interface632, or over a network link that may be connected, for example, to network602.

In the example, multiple systems within a network environment may be communicatively connected via network602, which is the medium used to provide communications links between various devices and computer systems communicatively connected. Network602may include permanent connections such as wire or fiber optics cables and temporary connections made through telephone connections and wireless transmission connections, for example, and may include routers, switches, gateways and other hardware to enable a communication channel between the systems connected via network602. Network602may represent one or more of packet-switching based networks, telephony based networks, broadcast television networks, local area and wire area networks, public networks, and restricted networks.

Network602and the systems communicatively connected to computer600via network602may implement one or more layers of one or more types of network protocol stacks which may include one or more of a physical layer, a link layer, a network layer, a transport layer, a presentation layer, and an application layer. For example, network602may implement one or more of the Transmission Control Protocol/Internet Protocol (TCP/IP) protocol stack or an Open Systems Interconnection (OSI) protocol stack. In addition, for example, network602may represent the worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. Network602may implement a secure HTTP protocol layer or other security protocol for securing communications between systems.

In the example, network interface632includes an adapter634for connecting computer system600to network602through a link and for communicatively connecting computer system600to server640or other computing systems via network602. Although not depicted, network interface632may include additional software, such as device drivers, additional hardware and other controllers that enable communication.

When implemented as a server, computer system600may include multiple communication interfaces accessible via multiple peripheral component interconnect (PCI) bus bridges connected to an input/output controller, for example. In this manner, computer system600allows connections to multiple clients via multiple separate ports and each port may also support multiple connections to multiple clients.

In one embodiment, the operations performed by processor612may control the operations of flowchart ofFIGS. 7-14and other operations described herein. Operations performed by processor612may be requested by software650or other code or the steps of one embodiment of the invention might be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components. In one embodiment, one or more components of computer system600, or other components, which may be integrated into one or more components of computer system600, may contain hardwired logic for performing the operations of flowcharts inFIGS. 7-14.

In addition, computer system600may include multiple peripheral components that facilitate input and output. These peripheral components are connected to multiple controllers, adapters, and expansion slots, such as input/output (I/O) interface626, coupled to one of the multiple levels of bus622. For example, input device624may include, for example, a microphone, a video capture device, an image scanning system, a keyboard, a mouse, or other input peripheral device, communicatively enabled on bus622via I/O interface626controlling inputs. In addition, for example, output device620communicatively enabled on bus622via I/O interface626for controlling outputs may include, for example, one or more graphical display devices, audio speakers, and tactile detectable output interfaces, but may also include other output interfaces. In alternate embodiments of the present invention, additional or alternate input and output peripheral components may be added.

Those of ordinary skill in the art will appreciate that the hardware depicted inFIG. 6may vary. Furthermore, those of ordinary skill in the art will appreciate that the depicted example is not meant to imply architectural limitations with respect to the present invention.

FIG. 7illustrates a high level logic flowchart of a process and computer program for adapting a playback of a recording to optimize comprehension.

In one example, the process and computer program start at block700and thereafter proceeds to block702. Block702illustrates analyzing a recording for complexity and relevancy. In one example, analyzing a recording for complexity and relevancy may include the process passing to block720. Block720illustrates analyzing a recording for complexity by calculating a rate of speech at a normal playback speed. Next, block722illustrates analyzing a recording for relevancy by analyzing the recording to identify one or more portions of the recording without any speech. Next, block724illustrates marking the one or more segments that do no include speed as segments that are not relevant, and the process passes to block704.

Next, block704illustrates segmenting the recording into multiple segments identified by different complexity and relevance characteristics. Thereafter, block706illustrates accessing one or more user profiles for an audience for receiving a playback of the recording. Next, block708illustrates selecting a target rate that is an optimum speed for the audience based on the one or more user profiles and the complexity of the recording. Thereafter, block710illustrates, during playback, dynamically selecting an adjusted playback rate to adjust the rate of speech for each segment to a target rate of speech according to the complexity of the segment. Next, block712illustrates, during playback, editing out one or more segments that are not relevant.

FIG. 8illustrates a high level logic flowchart of a process and computer program for dynamically adjusting a playback speed of a recording based on one or more responses by one or more users listening to the recording.

In one example, the process and computer program starts at block800and thereafter proceeds to block802. Block802illustrates a determination of whether playback of a recording is ongoing. In one example, playback of a recording may be detected as ongoing if a recording is being played, reversed, or forwarded. In one example, playback of a recording may be detected as ongoing within a particular window of time after a recording is stopped. In one example, playback of a recording may be detected while a user has a recoding ready to be selected for playback within an interface. At block802, if a playback of a recording is detected as ongoing, then the process passes to block804.

Block804illustrates monitoring for one or more responses of a user listening to the playback of the recording through one or more interfaces. Next, block806illustrates evaluating each of the one or more responses to determine whether a user comprehension level is available capacity, optimal capacity, or over capacity. Thereafter, block808illustrates a determination whether a user comprehension level is evaluated as available capacity. At block808, if a user comprehension level is evaluated as available capacity, then the process passes to block810. Block810illustrates dynamically decreasing the target rate by an increment selected according to a type and intensity of response, and the process returns to block802.

Returning to block808, if a user comprehension level is evaluated as not available capacity, then the process passes to block812. Block812illustrates a determination whether a user comprehension level is evaluated as over capacity. At block812, if the user comprehension level is evaluated as over capacity, then the process passes to block814. Block814illustrates dynamically increasing the target rate by an increment selected according to a type and intensity of response, and the process returns to block802.

Returning to block812, if block812if a user comprehension level is evaluated as not over capacity, then the process passes to block816. Block816illustrates a determination whether a user compression level reaches optimal capacity after a target rate is dynamically changed based on the one or more responses. At block816, if a user comprehension level reaches optimal capacity after a target rate is dynamically changed based on the one or more responses, then the process passes to block818. Block818illustrates marking a record of the target rate within a playback log as dynamically adjusted to optimal capacity comprehension, and the process returns to block802. At block816, if a user comprehension level does not reach optimal capacity after a target rate is dynamically changed based on the one or more responses, then the process returns to block802.

FIG. 9illustrates a high level logic flowchart of a process and computer program for tracking target rate adjustments for a particular user in a user profile. In one example, the process and computer program start at block900and thereafter proceed to block902. Block902illustrates a determination whether a playback of a recording is ongoing. At block902, if a playback of a recording is ongoing, then the process passes to block904. Block904illustrates, for each segment during playback, the process passes to block906. Block906illustrates identifying a current segment by a segment identifier. Next, block908illustrates identifying the complexity calculation for the current segment. Thereafter, block910illustrates identifying an adjusted playback rate, such as the adjusted words per minute, based on a current target rate. Next, block912illustrates identifying one or more responses monitored for the user. Thereafter, block914illustrates storing the segment identifier, complexity calculation, current target rate, adjusted playback rate, and one or more responses in playback log for recording information about the ongoing recording playback. Next, block916illustrates dynamically estimating an optimal target rate for the user for segments with a same complexity as the current segment based on the current segment record and previous playback history, and the process ends for the segment, and continues for a next segment if the playback of the recording is ongoing for a next segment.

While the invention has been particularly shown and described with reference to one or more embodiments, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.