Personal performance feedback relative to workout community
Patent Information
- Application Number
- JP2024204099
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-08-20
- Filing Date
- 2024-11-22
- Publication Date
- 2025-03-11
- Estimated Expiration
- 2041-08-23
Smart Images

Figure 2025032145000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to providing feedback to a user during exercise. [Background technology]
[0002] Many modern computing devices are configured to provide feedback during exercise to encourage a user to reach their athletic goals. Fitness trackers often provide estimates of steps taken, distance traveled, time elapsed, and / or calories burned. Summary of the Invention
[0003] In some implementations, the computing system can provide individual performance feedback to a workout community during a workout. For example, a wearable device worn by a user while performing a workout can provide user activity data describing the user's activity during the workout to a playback device presenting the workout. The playback device can obtain community statistics describing the performance of a community of users who have previously completed the workout. The playback device can present information comparing the user's performance during the workout to the community's past performance during the workout.
[0004] Certain implementations provide at least the following advantages: A playback device presenting a workout being performed by a user can provide real-time or near real-time user feedback comparing the user's performance in the workout with other users who performed the same workout. A wearable device worn by the user can cooperate with the playback device presenting the workout to provide real-time or near real-time user performance data.
[0005] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and potential advantages will become apparent from the description and drawings, and from the claims. [Brief description of the drawings]
[0006] [Figure 1] FIG. 1 is a block diagram of an example system for individual performance feedback to a workout community.
[0007] [Diagram 2] FIG. 1 is a block diagram of an example system for transferring workouts between playback devices.
[0008] [Diagram 3] FIG. 1 is an exemplary system interaction diagram illustrating interactions between devices of a system for presenting workouts.
[0009] [Figure 4] FIG. 13 is an exemplary system interaction diagram illustrating interactions between devices of a system for updating a community statistics timeline associated with a workout.
[0010] [Diagram 5] 1A-1C are diagrams of various workout timelines used to provide user feedback during a workout.
[0011] [Figure 6] 1 illustrates an exemplary graphical user interface for presenting a user's workout performance to a community of users who performed the current workout.
[0012] [Figure 7] FIG. 1 illustrates exemplary percentile ranges and user performance feedback for a community of users who performed the same workout.
[0013] [Figure 8] FIG. 11 is a flow diagram of an example process for presenting individual performance feedback to a community.
[0014] [Figure 9] FIG. 11 is a flow diagram of an example process for providing user activity data associated with a workout.
[0015] [Figure 10] FIG. 1 is a flow diagram of an example process for providing workout content from a server device.
[0016] [Figure 11] FIG. 11 is a flow diagram of an example process for updating community statistics corresponding to a workout.
[0017] [Figure 12] FIG. 12 is a block diagram of an example computing device capable of implementing the functions and processes of FIGS. 1-11.
[0018] Like reference symbols in the various drawings indicate like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] FIG. 1 is a block diagram of an example system 100 for personal performance feedback to a workout community. For example, a user may wear a smartwatch (e.g., a wearable device) configured with sensors that measure movement, heart rate, steps, etc. When the user performs a workout presented by a set-top box (e.g., a playback device) via a television, the smartwatch may calculate calories burned during the workout based on the sensor data and transmit the calories burned and / or other biometric data to the set-top box. The set-top box may present feedback to the user on the television indicating the number of calories burned by the user during various points (e.g., moments) of the workout relative to the number of calories burned by a community of users who previously performed the workout. Thus, the user may be prompted to continue or increase the user's effort during the workout to improve the user's fitness.
[0020] In some implementations, the system 100 can include a server device 110. For example, the server 110 can be a networked computing device configured to host a workout service 112. For example, the workout service 112 can be configured to provide various types of workouts to a playback device for presentation to a user who wishes to perform a workout. The workouts can be audio and / or video media items (e.g., a video of a fitness instructor performing and / or guiding a workout). The workouts can include metadata that describes the workout. For example, the workout metadata can include a workout title, an instructor name, a type of workout (e.g., cardio, calisthenics, strength training, flexibility training, etc.), and / or other descriptive data that may be described herein.
[0021] The metadata may include a community statistics timeline that includes community performance statistics (e.g., ranges of calories burned, percentiles of calories burned, etc.) at intervals during the workout (e.g., every 3 seconds, every 5 seconds, etc.). The community performance statistics may be normalized so that the community performance statistics can be compared to a particular user's performance (e.g., calories burned) while performing the workout. For example, the community performance statistics may be normalized and / or stored as MET (e.g., metabolic equivalent of task) values. When presented to a particular user, the community performance statistics may be tailored to the particular user. For example, a community MET (e.g., 1 MET = 1 calorie / 1 kg body weight / 1 hour exercise) value for exercise may be multiplied by the user's weight and the duration the user exercised to estimate an equivalent community calorie burned statistic for the particular user. After the community MET statistics have been tailored to a particular user to generate community calorie burned values, these community calorie burned values may be compared to the particular user's calorie burned values to provide feedback to the user, as described further below.
[0022] In some implementations, the server device 110 can include a workout database 114. For example, the workout database 114 can store many different workouts that can be provided to a playback device to guide a user through the workout. The workout database 114 can store audio / video content of the workouts and corresponding metadata for the workouts, as described herein. For example, a community statistics timeline for each workout can be stored in association with the individual workouts in the workout database 114.
[0023] In some implementations, the workout database 114 can be downloaded, in whole or in part, to the playback device 120. For example, if the workout database 114 is downloaded and stored on the playback device 120, the playback device 120 can present the workout data (e.g., workout content, workout metadata, workout statistics, etc.) stored in the workout database 114 to the user without having to request the workout data from the workout service 112 as each workout is selected and / or performed, as described further below.
[0024] In some implementations, the community statistics stored for each interval (e.g., moment) of a particular workout can be stored and updated without storing all of the workout data (e.g., observations, performance data, calories burned, etc.) reported by users of the workout community (e.g., users who participated in a particular workout). For example, the server device 110 can receive workout data (e.g., user workout timelines) from various users and / or user devices in the community of users who performed a particular workout. The workout data for each user in the community can indicate the user's MET value (or other normalized calorie value) at the interval during which the particular workout was performed. The server device 110 can temporarily store the received community workout data and periodically (e.g., every 24 hours, every two days, once a week) update the community statistics associated with the interval of the particular workout using any known algorithm, such as "P2 Algorithm for Dynamic Calculation of Quantiles and Histograms without Storing Observations" by Raj Jain and Imrich Chlamtac. After updating the community statistics with the received community workout data for the current time period, the server device 110 may delete the received community workout data such that workout data for individual users within the community is not stored for more than the community statistics update interval.
[0025] In some implementations, the system 100 can include a playback device 110. For example, the playback device 110 can be a computing device such as a set-top box, a smart speaker, a tablet computer, a smartphone, etc. The playback device 110 can be connected to, for example, a display device and / or a speaker and is configured to present audio and / or video data or other media associated with a workout.
[0026] In some implementations, the playback device 120 may include a workout application 122. For example, the workout application 122 may be a client application of the workout service 112. The workout application 122 on the playback device 120 may communicate with the workout service 112 on the server device 110 over a network 150 (e.g., the Internet, a wide area network, a local area network, a wireless network, a cellular data network, a Bluetooth network, a direct peer-to-peer network, etc.) to obtain information related to workouts provided by the workout service 112. For example, a user may interact with a graphical user interface (GUI) of the workout application 122 to browse, search, or otherwise navigate through various workouts available via and / or provided by the workout service 112 and stored in the workout database 114. A user may select a workout via the GUI of workout application 122 to have the workout (e.g., audio and / or video presenting the workout) presented by playback device 120 via a display and / or speakers of playback device 120. For example, a workout may include audio and video content, video content only, or audio content only. A workout may include a video of an instructor demonstrating and / or leading the user through various exercises and / or a series of exercises. A workout may include a scenic video simulating an environment in which the user is performing various exercises and / or a series of exercises. A workout may include an instructor's voice explaining the exercises and / or providing encouragement to the user performing the workout.Thus, the workout can be presented by the workout application 122 on an audio / video playback device via the GUI of the workout application 122, on a video-only playback device via the GUI of the workout application 122, or on an audio-only playback device (e.g., a smart speaker) via the speakers of the playback device 120.
[0027] In some implementations, the system 100 may include a wearable device 130. For example, the wearable device 130 may be a smart watch, smart glasses, smart clothing, or other wearable computing device. For simplicity, the wearable device 130 may be referred to herein as a smart watch 130.
[0028] In some implementations, the wearable device 130 may include a workout application 132. For example, the workout application 132 may be a client or companion application of the workout application 122 on the playback device 120. The workout application 132 on the wearable device 130 and the workout application 122 on the playback device 120 may cooperate over the network 150 to present workouts and corresponding feedback to a user of the wearable device 130 and / or playback device 120. For example, a user may interact with the workout application 130 to browse and / or select workouts. However, because the wearable device 130 may have a small display and / or minimal speakers, the wearable device 130 may have a selected workout presented by the workout application 122 on the playback device 120. For example, a user may select a particular workout by interacting with the wearable device 130. The workout application 132 on the wearable device 130 can communicate with the workout service 112 over the network 150 to obtain workout descriptions and / or identifiers of various workouts from the workout service 112. A user can provide input to the wearable device 130 to select one of the workouts offered by the workout service 112. After receiving the user's workout selection, the workout application 132 on the wearable device 130 can send the workout identifier to the workout application 122 on the playback device 120 such that the workout application 122 can obtain the selected workout from the workout service 112 using the workout identifier.
[0029] In some implementations, a user of the wearable device 130 can directly interact with the playback device 120 using a remote control or other input device associated with the playback device 120. A workout application 122 on the playback device 120 can communicate with the workout service 112 to obtain workout descriptions and / or identifiers of various workouts from the workout service 112. A user can provide input to the playback device 120 to select one of the workouts provided by the workout service 112 and presented on a GUI of the workout application 122. After receiving the user's workout selection, the workout application 122 can obtain a workout identifier for the selected workout such that the workout application 122 can request the selected workout from the workout service 112 using the workout identifier.
[0030] After receiving the workout identifier for the selected workout, the workout application 122 may retrieve the identified workout along with the corresponding workout metadata from the workout service 112 on the server device 110. The workout application 122 may then present the workout (e.g., audio and / or video) using the display and / or speakers of the playback device 120. For example, a user may select a play or start graphical object (e.g., a button) to cause the workout application 122 to begin presenting the selected workout.
[0031] In some implementations, upon receiving an input to initiate presentation of the selected workout, the workout application 122 on the playback device 120 can send a message to the workout application 132 on the wearable device 130 to initiate monitoring of user activity associated with the selected workout. For example, the wearable device 130 (e.g., a smart watch) can include a sensor 134. The sensor 134 can include a motion sensor, a heart rate sensor, and / or other sensors that collect biometrics associated with a user of the wearable device 130. The workout application 132 or the wearable device 130 can be configured to calculate various biometric data (e.g., calories burned, heart rate, steps, MET value, etc.) during a workout based on the sensor data. The workout application 132 can obtain or calculate this biometric data and report the biometric data to the workout application 122 on the playback device 120 during a workout. For example, the workout application 132 may report the biometric data according to a time interval (e.g., every 3 seconds, every 5 seconds, every 6 seconds, etc.) that matches the community statistics timeline data interval of the selected workout. The wearable device 130 may also report the user's weight (e.g., previously configured by the user and stored by the wearable device 130) when reporting the biometric data to the playback device 122, so that the workout application 122 on the playback device 120 can convert the community MET value statistics into a calorie value according to the user's weight so that a direct comparison can be made between the user's calories burned and the workout community's calorie burned statistics.
[0032] In some implementations, when the user's biometric data is received during a workout, the workout application 122 can generate and present feedback to the user regarding the current workout. For example, the workout application 122 can generate graphics and / or other information describing the user's current workout effort (e.g., calories, heart rate, etc.) compared to a community of users who have previously performed the same workout, as described further below. When the workout ends (e.g., either by reaching an end of the workout or by user input to the wearable device 130 or playback device 120), the playback device 120 can send a message to the wearable device 130 to stop presenting the selected workout and cease user activity monitoring related to the current workout. Upon receiving the workout end message, the wearable device 130 can stop monitoring user activity related to the workout and stop sending biometric data to the playback device 120.
[0033] In some implementations, once a workout is completed, the wearable device 130 can transmit a user workout timeline including the biometric data collected over the duration of the workout to the workout service 112 on the server device 110. For example, the timeline can correspond to the duration of the workout and can include snapshots of the user's biometric data (e.g., calories burned, MET values, heart rate, etc.) at moments (e.g., time indexes) along the timeline that correspond to time intervals defined by the workout or predefined in the configuration of the workout application 132. Thus, the user's workout timeline transmitted to the workout service 112 on the server device 110 can include the duration the user participated in the workout and a time-indexed sequence of the biometric values (e.g., calories burned, MET values, heart rate, etc.). For example, the wearable device 130 can convert calories burned at various moments in the user's workout timeline into MET values before transmitting the user's workout timeline to the server device 110. If the wearable device 130 transmits calories burned instead of MET values, the user's workout timeline may include the user's weight so that the workout service 112 on the server device 110 can normalize the calories burned value according to the user's weight and / or generate a MET value for the user's biometric data. The workout service 112 may then store the user's workout timeline, including the corresponding MET values, until it is time to update the community statistics timeline for the workout.
[0034] In some implementations, the workout service 112 can validate a user's workout timeline data before using the user's workout timeline to update a community statistics timeline corresponding to a workout. For example, the workout service 112 on the server device 110 can filter out (e.g., delete) a received user workout timeline if the user has not completed more than a threshold amount (e.g., 80%, 70%, 90%, etc.) of the corresponding workout. For example, if the threshold is 80% complete, the workout is 60 minutes long, and the user's workout timeline indicates a workout duration of 40 minutes, the user's workout timeline for the workout (e.g., the user's biometric data) is deemed invalid, deleted, and not used to update the community statistics for the workout.
[0035] As another example, if the user's biometric data in the user's workout timeline exceeds human capabilities (e.g., the user exercises and burns more calories than is humanly possible), the user's workout timeline (e.g., the user's biometric data) for the workout is deemed invalid, deleted, and not used to update the community statistics for the workout. For example, the workout service 112 may compare the user's reported biometrics to a database of known (e.g., empirically determined) human limits of calories burned for various exercises to determine when the user's reported biometric data for an exercise exceeds the human limits for that exercise.
[0036] After collecting user workout timelines associated with a workout from various users over a period of time (e.g., one day, two days, 12 hours, etc.), the workout service 112 can update a community statistics timeline associated with the workout based on the received user workout timelines. For example, after validating and / or deleting invalid user workout timelines, the workout service 112 can update the community statistics timeline of the workout using the biometrics in the collected user workout timelines. The updated community statistics timeline of the workout can then be delivered with the workout to provide user feedback the next time the workout is performed by the user.
[0037] FIG. 2 is a block diagram of an exemplary system 200 for transferring workouts between playback devices. For example, the system 200 can correspond to the system 100 described above. However, the system 200 includes an additional playback device 220. For example, a user may initiate a workout using the playback device 120, as described above. The playback device 120 may be, for example, a smartphone or a tablet computer. The user may determine that a large TV may be more convenient for performing the workout and provide input to the playback device 120 or the wearable device 130 to transfer the workout to the playback device 220 (e.g., a set-top box connected to a large screen TV). In response to the user input, the playback device 120 may send an identifier of the workout currently being presented by the playback device 120 and a current position (e.g., a time index) in the current workout to a workout application 222 on the playback device 220. The workout application 222 can retrieve the workout, including the metadata corresponding to the workout identifier, from the workout service 112 and begin presenting the workout at the current location indicated by the playback device 120 (e.g., the workout application 122).
[0038] However, because the workout was originally presented by the playback device 120, the playback device 120 has already generated a connection between the workout application 132 on the wearable device 130 and the workout application 122 on the playback device 120 to obtain user biometric data associated with the workout. Thus, in some implementations, the workout application 122 on the playback device 120 may remain involved in the workout by forwarding the biometric data received from the wearable device 130 to the playback device 220, so that the biometric data flow remains uninterrupted. For example, generating a new workout connection between the wearable device 130 and the playback device 220 may cause delays that may prevent a smooth transition between playback devices during a workout. Thus, the playback device 120 (e.g., the original playback device) may act as a pass-through for communicating biometric data and / or other messages between the playback device 220 and the wearable device 130.
[0039] 3 is an example system interaction diagram 300 illustrating interactions between devices of system 100 for presenting a workout. In some implementations, playback device 120, wearable device 130, and server device 110 can be configured to present real-time user feedback to a user participating in a workout presented by playback device 120 based on user activity data (e.g., workout data) provided by server device 110 and provided by wearable device 130 during the workout.
[0040] At block 302, the playback device 120 may select a workout. For example, the playback device 120 may receive user input selecting a particular workout from various workouts presented by the playback device 120. The playback device 120 may present a GUI that allows the user to browse, search, or otherwise navigate the various available workouts provided by the server device 110. The user may provide input to select the particular workout via a remote control device associated with the playback device 120. In some implementations, the remote control device may be the wearable device 130.
[0041] In block 306, the playback device 120 may request workout metadata for the selected workout. For example, the playback device 120 may send an identifier of the selected workout to the server device 110 in the request for workout metadata.
[0042] At block 308, the server device 110 may send metadata for the selected workout to the playback device 120. The workout metadata may include a title for the workout, the name of the workout instructor featured in the workout, the duration of the workout, the type or category of the workout (e.g., cardio, calisthenics, strength training, flexibility training, mobility training, etc.), and / or other information describing the workout. The workout metadata may include a community statistical timeline for the workout so that the playback device 120 can provide the user with performance feedback relative to a community of users who have previously performed the workout.
[0043] At block 310, the playback device 120 may start the workout. For example, the playback device 120 may automatically start the workout in response to receiving the workout metadata in step 308. The playback device 120 may start the workout in response to receiving user input via an input device (e.g., a remote control device) connected to the playback device 120.
[0044] In block 312, the playback device 120 may send a message to the wearable device 130 to start user activity monitoring. For example, the playback device 120 may send a message to a smartwatch worn by the user to monitor user activity related to the selected workout. After receiving the message, the wearable device 130 may send user activity data (e.g., sensor data, calories burned, MET value, steps, heart rate, etc.) to the playback device 120 according to an interval specified for the selected workout. For example, the interval may be every 3 seconds, every 5 seconds, every 6 seconds, etc. For example, the interval may be specified in the message to start user activity monitoring.
[0045] At block 314, the playback device 120 may request workout content from the server device 110. For example, the playback device 120 may request audio and / or video data for a workout from the server device 110. The playback device 120 may transmit a workout identifier in the content request.
[0046] At block 316, the server device 110 may transmit the requested workout content to the playback device 120. For example, the server device 110 may use the workout identifier in the content request to find the corresponding workout content in the workout database 114. The server device 110 may then transmit the workout content to the playback device 120. The server device 110 may stream the workout content over time. The server device 110 may transmit the workout content as a downloadable object that may be downloaded in its entirety to the playback device 120.
[0047] At block 318, playback device 120 may present the workout content. For example, playback device 120 may present the workout content as it is streamed from server device 110 by playback device 120. Playback device 120 may present workout content that has been fully downloaded to playback device 120.
[0048] At block 320, the wearable device 130 may transmit user activity data 320 to the playback device 120. For example, when the playback device 120 is presenting a selected workout, the wearable device may monitor user activity related to the workout and transmit user activity data to the playback device 120. The user activity data may include sensor data, calories burned, MET values, steps, heart rate, etc. The user activity data may include the user's weight. As described above, the wearable device 130 may transmit the user activity data according to a time interval configured for the workout or for a workout application on the wearable device 130 and / or playback device 120.
[0049] At block 322, playback device 120 may present user activity data and / or community statistics. For example, while a workout is being presented by playback device 120, playback device 120 may present real-time or near real-time user activity data and / or community statistics representative of the performance of the workout community at points in time (e.g., moments) as the workout progresses. These points in time or moments may correspond and / or coincide with the user activity reporting intervals described above.
[0050] In some implementations, the playback device 120 can be configured to convert the community statistics of a workout into calories adjusted according to the user's weight. For example, the community statistics of a workout (e.g., a community statistics timeline) may be stored using normalized energy expenditure values (e.g., MET values). Each moment in the community statistics timeline can have a corresponding MET value that defines a range of MET values observed in user-reported activity data (e.g., a user workout timeline) from many different users, and a marker that represents a percentile position and MET value in the range of observations. The MET statistics of each moment in the community statistics timeline can be converted into a calorie value that can be compared to the user's calories burned by multiplying the statistical MET value of each moment by the user's weight received from the wearable device 130 and the duration of the workout performed up to the current time. Thus, once the wearable device 130 reports the user's calorie burn up to the current time (or a particular time) to the playback device 120, the playback device 120 can present information comparing the user's calorie burn up to the current moment in the current workout with the workout community's historical calorie burn statistics up to the current moment in the workout. Because the community's calorie burn is adjusted for the user's weight, the community's calorie burn provides a suitable value for the user to compare their performance against.
[0051] At block 324, the playback device 120 may end the workout. For example, the playback device 120 may end the workout when the playback device 120 has presented all of the content associated with the workout. The playback device 120 may end the workout in response to receiving user input indicating that the user wants to end the workout. For example, the user input may be received via an input device associated with the playback device 120 (e.g., a remote control, the wearable device 130, etc.).
[0052] The playback device may terminate the workout in response to detecting that the user is no longer participating in the workout. For example, the playback device 120 may determine that the user is no longer participating in the workout when the connection between the wearable device 130 and the playback device 120 is terminated. The playback device 120 may determine that the user is no longer participating in the workout if the user activity data does not match expected activity during the current workout. For example, the playback device 120 may terminate the workout if the user's calorie consumption does not increase at a rate consistent with the workout. The playback device 120 may terminate the workout if the user activity data received by the playback device 120 indicates that the user is no longer moving consistent with the current workout (e.g., the user is stationary for an extended period of time).
[0053] In block 326, the playback device 120 may send a message to the wearable device 130 to end the workout. For example, if the wearable device 130 is still connected to the playback device 120, the playback device 120 may send a message to the wearable device 130 to end the current workout. In response to receiving the end message, the wearable device 130 may stop monitoring and reporting user activity to the playback device 120.
[0054] In some implementations, the wearable device 130 may present a notification to the user of the wearable device 130 asking the user if the user wants to end the workout. When the user provides input to the wearable device 130 to continue the workout, the wearable device 130 may send a message to the playback device 120 to continue the current workout, and the playback device 120 may continue to present the workout at block 318 and present the user activity data at block 322. When the user provides input to the wearable device 130 to end the workout, the wearable device 130 may stop monitoring and reporting user activity to the playback device 120.
[0055] At block 328, the playback device 120 may send a message to the server device 110 to terminate the current workout content. For example, if the workout ends before the presentation of the workout content is completed and the server device 110 is streaming the workout content, the playback device 120 may send a message to the server device 110 to terminate streaming of the workout content. Upon receiving the termination message, the server device 110 terminates the workout content stream.
[0056] In block 330, the wearable device 130 can transmit user activity data of the workout to the server device 110. For example, the user activity data can include a user workout timeline having user biometric data associated with a series of moments in the workout. The biometric data can include calories burned up to the corresponding moment, a MET value calculated for the corresponding moment, a heart rate at the corresponding moment, steps taken up to the moment, and / or other biometric data. The timeline can include a duration of the user's activity (e.g., the time the user performed the workout). The user activity data can include a workout identifier for the workout performed by the user. The server device 110 can update community statistics associated with the performed workout using the user activity data received from the wearable device 130.
[0057] 4 is an example system interaction diagram 400 illustrating interactions between devices of system 100 for updating a community statistics timeline associated with a workout. For example, server device 110 can update community statistics associated with a particular workout based on user activity data received from a variety of different user devices associated with many different users. Server device 110 can update the community statistics without having to store individual user activity data after the community statistics are updated, thereby reducing the amount of data storage required to maintain and update the community workout statistics.
[0058] In block 402, the wearable device 130 can transmit user activity data of the workout to the server device 110. For example, block 402 can correspond to block 330 of FIG. 3. The user activity data can include an identifier of the workout performed by the user, the user's weight, and a user workout timeline generated for the workout. For example, the user workout timeline can include the duration of the workout performed by the user (e.g., the actual duration of the work done by the user as opposed to the duration of the workout content) and the user biometric data recorded at time intervals (e.g., moments) during the workout. For example, each instance of the recorded biometric data (e.g., calories burned, MET value, number of steps, heart rate, etc.) can be associated with a time index in the user's workout timeline that can be used to identify community statistics at the corresponding time index in the community statistics timeline.
[0059] In block 404, the server device 110 may validate the received user activity data. For example, the server device 110 may determine whether the user completed more than a threshold amount (e.g., percentage, duration, etc.) of the workout. If the user did not complete more than the threshold amount, the server device 110 may determine that the user activity data is invalid and delete the user activity data. As another example, the server device 110 may determine whether the user activity data includes biometric data that indicates a level of effort during the workout that exceeds human capabilities. If the user activity data indicates an unrealistic level of performance, the server device may determine that the user activity data is invalid and delete the user activity data.
[0060] In block 406, the server device 110 may store the user activity data. For example, the server device 110 may temporarily store the valid user activity data until the next community statistics update for the workouts identified in the user activity data. For example, the community statistics for various workouts may be updated periodically (e.g., every night, every 36 hours, once a week, etc.).
[0061] In block 408, the server device 110 may obtain workout metadata. For example, the server device 110 may obtain a community statistics timeline for workouts identified in the user activity data.
[0062] In block 410, the server device 110 may update the community statistics timeline for the workout. For example, for each time index (e.g., time interval, moment, entry, etc.) in the user workout timeline that has user biometric data, there is a corresponding time index in the community statistics timeline for the workout. The server device 110 may update the community statistics timeline statistics for a particular time index based on the biometric data associated with the corresponding time index in the user workout timeline. The server device 110 may perform these updates for each time index in the timeline until all time indexes in the community statistics timeline have been updated.
[0063] In block 412, the server device 110 may delete (412) the stored user activity data. For example, after updating the community statistical timeline for a particular workout based on a particular user activity data submission, the server device 110 may delete the particular user activity data submission. Thus, each instance of user activity data received from various user devices may be deleted from storage after the user activity data has been processed and used to update the community statistical timeline for the corresponding workout.
[0064] At block 414, the playback device 120 may request the workout metadata. For example, block 414 may correspond to block 306 of FIG. 3, and the playback device 120 may request the workout metadata, including the community statistics timeline, in response to user input selecting a particular workout to perform.
[0065] At block 416, the server device 110 may send the updated workout metadata to the playback device 120. For example, block 416 may correspond to block 308, and the server device 110 may send to the playback device 120 the workout metadata including an updated community statistics timeline based on user activity data received from many different wearable devices that previously participated in the requested workout.
[0066] FIG. 5 is an illustration of various workout timelines 500 used to provide user feedback during a workout. As described above, the playback device 120 can receive the community statistics timeline as metadata for a selected workout. The community statistics timeline can include indexes (e.g., moments) at regular intervals (e.g., every 3 seconds, every 4 seconds, every 5 seconds, etc.) over the duration of the workout. Thus, if the duration of the workout (e.g., duration of the workout content) is 30 minutes and the intervals are 3 seconds, the community statistics timeline 510 can include 600 indexes spaced at 3-second intervals over the duration of the 30 minutes. A user workout timeline associated with a workout will have the same number of indexes at the same intervals as the community statistics timeline for the same workout. In the following description, timeline 510, timeline 520, and timeline 530 all correspond to the same workout, although timeline 510 and timeline 530 may include data from different performances of the same workout by different users (e.g., users who performed a particular workout) in the workout community.
[0067] In some implementations, the community statistics timeline 510 may include community statistics for a selected workout that corresponds to each time index (e.g., indexes 512, 514, 516, 518, etc.) on the community statistics timeline 510. For example, the community statistics at a particular time index (e.g., index 514) may describe the MET values (e.g., calories burned, steps taken, heart rate, etc.) reported by a community of users who performed the same workout, calculated from the start of the workout to the particular time index on the timeline 510. The community statistics for each index may include maximum and minimum MET values and percentile markers (e.g., 10%, 36%, 68%, 90%, etc.) that define a range of MET values that the playback device 120 can use to determine where the user's workout performance falls within the range of community MET values for the particular time index (e.g., index 514).
[0068] In some implementations, the user workout timeline 520 can include individual user MET values (e.g., calories burned, steps, heart rate, etc.) reported by the wearable device 130 of each individual user during the performance of the workout, calculated from the start of the workout to a particular time index (e.g., indexes 522, 524, 526, 528, etc.) on the user workout timeline 520. During the performance of the workout, the wearable device 130 can report the user's MET values or calories burned when each time index is reached or each time interval has elapsed as the workout progresses. The playback device 120 can receive the user's MET values or calories burned and compare the user's reported MET values or calories burned to the community statistics at the corresponding time index in the community statistics timeline. For example, when playback device 120 receives a MET value or calories burned at time index 524, playback device 120 can compare the MET value to the community statistics MET values stored at the corresponding time index 514 in community statistics timeline 510 to determine which percentile or between which percentiles the user's performance fits. Playback device 120 can then generate a graphical user interface to present the user's performance data in relation to the community statistics associated with time index 514 / 524.
[0069] In some implementations, the wearable device 130 can store the user workout timeline 520 and the MET values corresponding to each index until the end of the workout. At the end of the workout, the wearable device 130 can transmit the user workout timeline 520 (e.g., user activity data) to the server device 110 so that the server device 110 can update the community statistics associated with the community statistics timeline 510 based on the MET values generated for the user statistics timeline 520 during the user's performance of the workout.
[0070] In some implementations, the server device 110 can generate an updated community statistics timeline 530 based on the community statistics timeline 510 and the user workout timeline 520. For example, the server device 110 can use the MET value at each index of the user workout timeline 520 to update the community statistics associated with the corresponding index of the community statistics timeline 510 and generate an index (e.g., indexes 532, 534, 536, 538, etc.) of the updated community statistics timeline 530. For example, if a time index 518 of the community statistics timeline 510 corresponds to a time index 528 of the user workout timeline 520 and a time index 538 of the updated community statistics timeline 530, the server device 110 can use the MET value stored at the time index 528 of the user workout timeline and the community statistics stored at the time index 518 of the community statistics timeline 510 to calculate an updated community statistic (e.g., a MET range, a percentile, etc.) stored in association with the index 538 of the updated community statistics timeline 530. The updated community statistics timeline 530 can then be delivered to a playback device when the corresponding workout is subsequently selected by a user, as described above.
[0071] 6 illustrates an example graphical user interface 600 for presenting a user's workout performance relative to a community of users who performed a current workout. For example, GUI 600 may be presented on a display of playback device 120 (or playback device 220) by workout application 122. GUI 600 may present workout content and / or feedback describing the user's performance in the workout and / or relative to a community of users who previously performed a selected workout.
[0072] In some implementations, the GUI 600 may include a title 602 of the selected workout and a display area 604 for presenting video content corresponding to the selected workout. The GUI 600 may include an area 606 for presenting descriptive metadata of the selected workout (e.g., type of workout, instructor name, duration, etc.).
[0073] In some implementations, the GUI 600 may include a graphical object 608 for presenting user performance feedback. As described above, when performing a workout, the wearable device 130 may report to the playback device 120 the user's weight and the number of calories burned or a MET value to the current time in the workout. If the wearable device 130 reports a MET value, the playback device 120 may use the user's weight to convert the MET value to calories burned to the current time or location in the workout. A numerical value representing the user's calories burned during the workout to the current time (e.g., "37 calories") may be presented in the graphical object 608.
[0074] In some implementations, the graphical object 608 can present graphical objects 610 and 612 that represent the user's performance relative to a community of users who previously performed the current workout. For example, the graphical object 610 can represent a range of calories burned or MET values that represent the range of the community's performance in the workout. The graphical object 612 can represent the user's performance in the current workout. The graphical object 612 can be positioned on the graphical object 610 at a location within the community's performance range that represents the user's performance (e.g., calories burned, MET value, etc.) relative to the community. The graphical objects 610 and 612 can represent the user's performance at the current time. For example, five minutes into performing a workout, the graphical object 610 can represent community statistics from the community statistics timeline at a time index on the community statistics timeline that is closest to the five minutes from the start of the workout. The graphical object 612 can represent the user's performance up to the five minute mark in the workout. Thus, the user can receive feedback regarding the user's performance at the five minute mark and compare the user's performance at the five minute mark in the workout to the performance of other users.
[0075] In some implementations, the graphical objects 610 and 612 can be dynamically adjusted as the workout progresses. For example, as the workout progresses over time, the graphical object 610 can be adjusted based on the community statistics associated with each subsequent time index in the community statistics timeline to reflect the community statistics at the time or location in the workout where the graphical object 610 is currently being presented. Similarly, the graphical object 612 and its position relative to the graphical object 610 can be dynamically adjusted as the workout progresses. For example, as the workout progresses, the user may increase or decrease the user's effort, and thus the user's calorie burn or MET value may increase or decrease. A change in the user's effort or a change in the community statistics at a particular time index can cause the graphical object 612 to change its position relative to the graphical object 610. Thus, graphical object 612 representing the user's effort (e.g., calories burned, MET value, etc.) may move higher or lower (e.g., to the right or left relative to graphical object 610) within the range of the community value (e.g., calories, MET value, etc.) represented by graphical object 610.
[0076] In some implementations, the graphical objects 610 and 612 can be presented using calories burned as a unit of measurement. If calories are used or presented, the playback device 120 can convert the MET value in the community statistics timeline to a calorie value suitable for comparison with the user's performance by multiplying the MET value by the user's weight (e.g., in kilograms) and the duration of the workout up to the current time (e.g., in hours) (e.g., calories = MET value * weight * time). In some implementations, the graphical objects 610 and 612 can be presented using MET values. For example, the wearable device 130 can calculate the MET value at regular intervals during the workout and report the MET value to the playback device 130. The playback device 130 can then use only the MET value as a unit of measurement when presenting the graphical objects 610 and 612.
[0077] In some implementations, the GUI 600 can present performance status notifications 614 to the user as the workout progresses. For example, the playback device 120 can present notifications (e.g., audio, video, text, etc.) that verbally inform the user of the user's current performance relative to a community of users who have previously performed the current workout. These notifications can be presented to provide motivation to the user to increase the user's performance or effort, or to maintain a high level of performance. These notifications are further described below with reference to FIG. 7.
[0078] 7 is a diagram 700 illustrating example percentile ranges and user performance feedback for a community of users who performed the same workout. For example, graphical object 702 may correspond to graphical object 612 of FIG. 6. Graphical object 710 may correspond to graphical object 610 of FIG. 6.
[0079] In some implementations, the graphical object 710 can represent community statistics for a particular (e.g., current) time index in the workout. The community statistics timeline corresponds to a workout timeline or duration, so that a time index in the community statistics timeline has a corresponding time index in the workout (e.g., a location, a position, etc.). As described above, the community statistics at any time index can include a range of MET values (e.g., minimum, maximum) and percentile markers indicating MET values corresponding to percentile boundaries within the range of MET values. In the example of FIG. 7, the percentile markers are located at 0%, 10%, 36%, 68%, 90%, and 100%. Each percentile marker can have a corresponding MET value within the range of MET values corresponding to the percentile boundaries. By comparing the MET value (or calorie value) corresponding to the percentile marker to the user's current MET value, the playback device 120 can determine where the user's performance falls within the range of community MET values. The playback device 120 may then place the graphical object 702 representing the user's current performance at a location on the graphical object 710 representing the community range of the MET value that corresponds to the user's current performance. For example, if the user's current MET value or calories burned is between the 10th and 36th percentile markers, the playback device 120 may place the graphical object 702 at a location on the graphical object 710 between the 10th and 36th percentile markers.
[0080] In some implementations, percentile ranges of MET values or calories burned can be used by playback device 120 to present a status notification. For example, the ranges of MET values or calories burned correspond to a range of values 0% to 10% 712, a range 10% to 36% 714, a range 36% to 68% 716, a range 68% to 90% 718, and a range 90% to 100% 720. Although specific percentile boundaries are described, these percentile boundaries are merely examples and may be adjusted, more percentile boundaries may be added, or some percentile boundaries may be removed.
[0081] In some implementations, each range of MET values or calories burned can have a corresponding description that represents or describes the range of values in relation to other MET values or calories burned in the community statistics at a particular time index in the workout. For example, range 712 corresponds to the lowest MET values, so the corresponding description can indicate that MET values within this range are at the bottom of the range of values. For example, using a race metaphor, the description can indicate that MET values or calories values within this range represent an effort or performance during a workout that is "behind the pack." Meanwhile, range 720 corresponds to the highest MET values, so the corresponding description can indicate that MET values within this range are at the top of the range of values. For example, again using the race metaphor, the description can indicate that MET values or calories values within this range represent an effort or performance during a workout that is "in front of the pack." Similarly, range 714 near the low-middle of the total range can be described as "in the pack." Range 716 in the middle of the total range can be described as "middle of the pack." Range 718 in the high-middle of the total range can be described as "leader of the pack."
[0082] In some implementations, the performance range descriptions described above can be used to generate a performance status notification that describes the user's workout performance and / or encourages the user. For example, the playback device 120 can use the performance range descriptions to generate the status notification 614 of FIG. 6. For example, the playback device 120 can receive the user's current MET value or calories burned from the wearable device 130. The playback device 120 can obtain community statistics for the current time index of the current workout to determine which performance range (e.g., ranges 712, 714, 716, 718, 720, etc.) the user's MET value or calories burned corresponds to. The playback device 120 can then generate and present a status notification based on the performance range description associated with the corresponding performance range. For example, if the user's MET value corresponds to performance range 718, the playback device 120 can present the status notification 614 indicating that the user is a "leader of the pack." Example Process
[0083] To allow the reader to obtain a clear understanding of the technical concepts described herein, the following processes describe certain steps performed in a specific order. However, one or more of the steps of a particular process may be rearranged and / or omitted while remaining within the contemplated scope of the technology disclosed herein. Furthermore, different processes and / or steps thereof may be combined, recombined, rearranged, omitted, and / or performed in parallel to create different process flows that are also within the contemplated scope of the technology disclosed herein. In addition, the following processes may omit or briefly summarize some of the details of the technology disclosed herein for clarity, but the details described in the above paragraphs may be combined with the process steps described below to obtain a more complete and comprehensive understanding of these processes and technologies disclosed herein.
[0084] 8 is a flow diagram of an example process 800 for presenting personal performance feedback to a community. For example, process 800 can be performed by playback device 120 to present feedback describing a user's personal performance during a workout to a community of users who have previously performed the same workout.
[0085] At step 802, the playback device 120 may receive a selection of a workout. For example, the playback device 120 may receive user input via an input device (e.g., a remote control, the wearable device 130, etc.) selecting a particular workout that the user wants to perform from among many different workouts.
[0086] At step 804, the playback device 120 may obtain the workout data from the server device 110. For example, the playback device 120 may send an identifier of the selected workout to the workout service 112 on the server device 110. The workout service 112 may obtain workout data (e.g., workout content, workout metadata, etc.) for the workout corresponding to the workout identifier from the workout database 114 and send the workout data to the playback device 120.
[0087] At step 806, the playback device 120 may initiate user activity monitoring at the wearable device 130. For example, the playback device 120 may send a message to the wearable device 130 indicating that a workout presentation is about to begin. In response to receiving the message, the wearable device 130 may begin monitoring user activity related to the workout and periodically transmit user activity data according to a defined time interval, as described above.
[0088] At step 808, playback device 120 may present the workout content. For example, playback device 120 may present audio and / or video data of the workout. The audio and / or video data may provide workout instructions and / or guide the user through the workout.
[0089] At step 810, the playback device 120 may receive user activity data. For example, the playback device 120 may periodically receive user activity data including biometric data and / or other information describing the user's activity as the workout progresses. The user activity data may indicate calories burned, a MET value, number of steps, heart rate, and / or other user activity data. The user activity data may indicate the user's weight, which may be used by the playback device 120 to convert a MET value (e.g., a community MET value, a user MET value, etc.) into a number of calories appropriate for the user's weight.
[0090] At step 812, the playback device 120 may present a graphical element indicative of the user's performance relative to a community of users who have previously performed the same workout. For example, the playback device 120 may present graphical objects 608, 610, 612, and / or 614 described above with reference to FIG. 6. The playback device 120 may present graphical objects 702 and / or 710 described above with reference to FIG. 7. Although the description herein focuses on presenting information related to a user's energy expenditure during a workout (e.g., calories burned, MET value, etc.), similar techniques may be used to present other user activity data related to the workout (e.g., heart rate, number of steps, etc.) in conjunction with corresponding community workout statistics.
[0091] At step 814, playback device 120 may end the workout. For example, playback device 120 may end the workout when presentation of the workout content is completed. Playback device 120 may end the workout when the user provides input to end the workout. Playback device 120 may end the workout when playback device 120 detects that the user is no longer participating in the workout, as described above.
[0092] 9 is a flow diagram of an example process 900 for providing user activity data associated with a workout. For example, process 900 can be performed by wearable device 130 to provide user activity data to playback device 120 during a workout, such that playback device 120 can present individual performance feedback to a community of users who have previously performed the same workout.
[0093] At step 902, wearable device 130 may receive a request to begin user activity monitoring related to a workout. For example, wearable device 120 may receive a message from playback device 120 indicating that a workout is about to begin and that wearable device 130 should begin monitoring and reporting user activity related to the workout.
[0094] In step 904, the wearable device 130 can transmit user data to the playback device 120. For example, the wearable device 130 can transmit the user's weight to the playback device 120, so that the playback device 120 can convert a MET value (e.g., a community MET value, a user MET value, etc.) into calories burned when presenting feedback to the user.
[0095] In step 906, the wearable device 130 may periodically transmit data indicative of user activity to the playback device 120. For example, the user activity data may include MET values, calories burned, steps, heart rate, etc., representative of the user's activity during a workout.
[0096] At step 908, the wearable device 130 may receive a workout end message. For example, the wearable device 130 may receive a workout end message from the playback device 120 indicating that the current workout has ended. In response to receiving the end message, the wearable device 130 may stop monitoring and reporting user activity related to the workout.
[0097] At step 910, the wearable device 130 may transmit a user activity timeline associated with the completed workout to the server device 110. For example, the wearable device 130 may transmit a user activity timeline to the server device 110 that includes user activity data associated with periodic time indexes that progress over the duration of the user's participation in the workout, as described above.
[0098] 10 is a flow diagram of an example process 1000 for providing workout content from a server device. For example, the process 1000 may be performed by the server device 110 to provide workout content to the playback device 120.
[0099] In step 1002, the server device 110 may receive a request for workout data from the playback device 120. For example, the workout service 112 may receive the workout request that includes an identifier of a workout selected by a user of the wearable device 130.
[0100] At step 1004, the server device 110 may retrieve workout data. For example, the workout service 112 may retrieve workout data for the workout corresponding to the workout identifier from the workout database 114. The workout data may include workout content (e.g., audio and / or video data) and workout metadata (e.g., information describing the workout, community statistics timeline, etc.).
[0101] At step 1006, the server device 110 may transmit the workout data to the playback device 120. For example, if the server device 110 is configured to download workout content to the playback device 120, the server device 110 may transmit the workout content and workout metadata to the playback device 120. However, if the server device 110 is configured to stream workout content, the server device 110 may transmit the workout metadata, including the community statistics timeline, to the playback device 120 and stream the workout content to the playback device 120 at step 1008.
[0102] At step 1008, the server device 110 may stream workout content corresponding to the workout identifier to the playback device 120. For example, the workout service 112 may receive a message from the playback device 120 indicating that the workout service 112 should begin streaming the workout content. The playback device 120 may send the message in response to receiving user input indicating that the user wants to begin a workout. In response to receiving the message from the playback device 120, the workout service 112 may stream the workout content to the playback device 120 for presentation to the user.
[0103] 11 is a flow diagram of an example process 1100 for updating community statistics corresponding to a workout. For example, the process 1100 can be performed by the server device 110 to update community statistics corresponding to a workout (e.g., a community statistics timeline) based on individual user activity data associated with the workout (e.g., a user workout timeline).
[0104] In step 1102, the server device 110 may receive a user activity timeline associated with a workout from the wearable device 130. For example, the wearable device 130 may transmit the user activity timeline to the server device 110 upon completion of the workout. The user activity timeline may include an identifier of the workout performed by the user that corresponds to the user activity timeline.
[0105] In step 1104, the server device 110 may validate the user activity timeline. For example, the workout service 112 on the server device 110 may filter out (e.g., delete) a received user workout timeline if the user has not completed more than a threshold amount (e.g., 80%, 70%, 90%, etc.) of the corresponding workout. For example, if the threshold is 80% complete, the workout is 60 minutes long, and the user's workout timeline indicates a workout duration of 40 minutes, the user's workout timeline for the workout (e.g., the user's biometric data) is deemed invalid, deleted, and not used to update community statistics for the workout.
[0106] As another example, if the user's biometric data in the user's workout timeline exceeds human capabilities (e.g., the user exercises and burns more calories than is humanly possible), the user's workout timeline (e.g., the user's biometric data) for the workout is deemed invalid, deleted, and not used to update the community statistics for the workout. For example, the workout service 112 may compare the user's reported biometrics to a database of known (e.g., empirically determined) human limits of calories burned for various exercises to determine when the user's reported biometric data for an exercise exceeds the human limits for the exercise.
[0107] In step 1106, the server device 110 may retrieve a community statistics timeline corresponding to the workout. For example, the workout service 112 may use the workout identifier received with the user activity timeline to retrieve workout metadata for the workout corresponding to the workout identifier from the workout database 114.
[0108] In step 1108, the server device 110 may update the community statistics timeline based on the user activity timeline. For example, the workout service 112 may update the community statistics at each time index of the community statistics timeline based on user activity data associated with the corresponding time index of the user activity timeline, e.g., as described above with reference to FIG.
[0109] In step 1110, the server device 110 may store the updated community statistics timeline as metadata for the workout. For example, the workout service 112 may replace the community statistics timeline associated with the identified workout with the updated community statistics timeline in the workout database 114. Graphical User Interface
[0110] The disclosure above describes various graphical user interfaces (GUIs) for implementing various functions, processes, or workflows. These GUIs can be presented on a variety of electronic devices, including, but not limited to, laptop computers, desktop computers, computer terminals, television systems, tablet computers, e-readers, smartphones, smart watches, wearable devices, and / or other computing devices. One or more of these electronic devices may include a touch-sensitive surface. The touch-sensitive surface can process multiple simultaneous input points, including processing data related to the pressure, degree, or location of each input point. Such processing can facilitate multi-finger gestures, such as pinching and swiping.
[0111] When this disclosure refers to "selecting" or "selecting" a user interface element in a GUI, these terms are understood to include clicking or "hovering" over the user interface element with a mouse or other input device, or touching, tapping, or gesturing over the user interface element with one or more fingers or a stylus. A user interface element may be a virtual button, menu, selector, switch, slider, scrubber, knob, thumbnail, link, icon, radio button, checkbox, and any other mechanism for receiving input from or providing feedback to a user. privacy
[0112] As mentioned above, one aspect of the present technology is to collect and use data available from various sources to improve user feedback when performing a workout. The present disclosure contemplates that in some cases, this collected data may include personal information data that uniquely identifies a particular person or that can be used to contact or locate a particular person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, Twitter IDs, home addresses, data or records regarding the user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), birth date, or any other identifying or personal information.
[0113] This disclosure recognizes that the use of such personal information data in the present technology may be for the benefit of the user. For example, the personal information data may be used to prompt the user to enhance their performance during a workout to improve their health. Additionally, other uses of the personal information data that benefit the user are also contemplated by this disclosure. For example, health and fitness data may be used to provide insight into the overall wellness of the user, or may be used as proactive feedback to individuals using the technology in pursuit of wellness goals.
[0114] This disclosure contemplates that entities involved in the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will adhere to robust privacy policies and / or privacy practices. Specifically, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or government requirements for keeping personal information data confidential and secure. Such policies should be easily accessible by users and should be updated as data collection and / or use changes. Personal information from users should be collected for the entity's lawful and legitimate uses and should not be shared or sold except for those lawful uses. Furthermore, such collection / sharing should be carried out after informing and obtaining consent from the user. Moreover, such entities should consider taking all necessary measures to protect and secure access to such personal information data and ensure that others who have access to the personal information data adhere to their privacy policies and procedures. Furthermore, such entities may subject themselves to third-party assessments to attest to their adherence to widely accepted privacy policies and practices. Moreover, policies and practices should be adapted to the specific types of personal information data collected and / or accessed, and should conform to applicable laws and standards, including jurisdiction-specific considerations. For example, in the United States, collection of or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be addressed accordingly. Therefore, different privacy practices should be maintained with respect to different types of personal data in each country.
[0115] Notwithstanding the foregoing, the present disclosure also contemplates embodiments in which a user selectively blocks use of or access to personal information data. That is, the present disclosure contemplates that hardware and / or software elements may be provided to prevent or block access to such personal information data. For example, personal performance feedback during a workout, the present technology may be configured to allow a user to select to "opt-in" or "opt-out" of participating in the collection of personal information data during registration for the service or at any time thereafter. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notice regarding access or use of personal information. For example, the user may be notified upon download of an app that will access the user's personal information data, and then again immediately prior to the personal information data being accessed by the app.
[0116] Moreover, it is the intent of this disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Risk can be minimized by limiting the collection of data and deleting it when it is no longer needed. Additionally, and where applicable in certain health-related applications, anonymization of data can be used to protect user privacy. De-identification can be facilitated by removing certain identifiers (e.g., date of birth, etc.) where appropriate, controlling the amount or specificity of data stored (e.g., collecting location data at a city level rather than an address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods.
[0117] Thus, while this disclosure broadly encompasses the use of personal information data to implement one or more of the various disclosed embodiments, this disclosure also contemplates that the various embodiments may be implemented without requiring access to such personal information data. That is, the various embodiments of the present technology are not rendered inoperable by the absence of all or a portion of such personal information data. For example, encouragement during a workout may be provided based only on a minimal amount of non-personal information or personal information, such as content requested by a device associated with the user, other non-personal information available on the workout service, or publicly available information. Exemplary System Architecture
[0118] Figure 12 is a block diagram of an exemplary computing device 1200 capable of implementing the functions and processes of Figures 1-11. The computing device 1200 may include a memory interface 1202, one or more data processors, image processors and / or central processing units 1204, and a peripherals interface 1206. The memory interface 1202, the one or more processors 1204, and / or the peripherals interface 1206 may be separate components or may be integrated within one or more integrated circuits. The various components of the computing device 1200 may be coupled by one or more communication buses or signal lines.
[0119] Sensors, devices, and subsystems can be coupled to the peripherals interface 1206 to facilitate multiple functions. For example, a motion sensor 1210, a light sensor 1212, and a proximity sensor 1214 can be coupled to the peripherals interface 1206 to facilitate orientation, lighting, and proximity functions. Other sensors 1216, such as a global navigation satellite system (GNSS) (e.g., a GPS receiver), temperature sensors, biosensors, magnetometers, or other sensing devices, can also be coupled to the peripherals interface 1206 to facilitate related functions.
[0120] A camera subsystem 1220 and an optical sensor 1222 (e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor) may be utilized to facilitate camera functions such as recording of pictures and video clips. The camera subsystem 1220 and the optical sensor 1222 may be used to collect an image of a user that is used during authentication of the user, for example, by performing facial recognition analysis.
[0121] Communication functions may be facilitated via one or more wireless communication subsystems 1224, which may include radio frequency receivers and transmitters and / or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the communication subsystem 1224 may depend on the communication network(s) over which the computing device 1200 is intended to operate. For example, the computing device 1200 may include a communication subsystem 1224 designed to operate on a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a Bluetooth™ network. In particular, the wireless communication subsystem 1224 may include a hosting protocol such that the device 100 may be configured as a base station for other wireless devices.
[0122] The audio subsystem 1226 may be coupled to a speaker 1228 and a microphone 1230 to facilitate voice-enabled functions such as speaker recognition, voice duplication, digital recording, and telephony functions. The audio subsystem 1226 may be configured to facilitate processing of voice commands, voiceprints, and voice authentication, for example.
[0123] The I / O subsystem 1240 can include a touch surface controller 1242 and / or other input controller(s) 1244. The touch surface controller 1242 can be coupled to a touch surface 1246. The touch surface 1246 and touch surface controller 1242 can detect contact and movement or interruptions thereto using, for example, any of a number of touch sensitivity technologies, including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch surface 1246.
[0124] Other input controller(s) 1244 may be coupled to other input / control devices 1248, such as one or more buttons, rocker switches, thumb wheels, an infrared port, a USB port, and / or a pointer device such as a stylus. The one or more buttons (not shown) may include up / down buttons for volume control of the speaker 1228 and / or microphone 1230.
[0125] In one implementation, pressing the button for a first duration can unlock the touch surface 1246, and pressing the button for a second duration longer than the first duration can turn power on / off to the computing device 1200. Pressing the button for a third duration can activate a voice control, or voice command, module that allows a user to speak commands into the microphone 1230 to cause the device to execute spoken commands. A user can customize the functionality of one or more buttons. The touch surface 1246 can also be used to implement, for example, virtual or soft buttons and / or a keyboard.
[0126] In some implementations, the computing device 1200 can present recorded audio and / or video files, such as MP3 files, AAC files, and MPEG files. In some implementations, the computing device 1200 can include the functionality of an MP3 player, such as an iPod®.
[0127] The memory interface 1202 can be coupled to memory 1250. The memory 1250 can include high-speed random access memory and / or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and / or flash memory (e.g., NAND, NOR). The memory 1250 can store an operating system 1252, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system, such as VxWorks.
[0128] The operating system 1252 may include instructions to handle basic system services and perform hardware dependent tasks. In some implementations, the operating system 1252 may be a kernel (e.g., a UNIX kernel). In some implementations, the operating system 1252 may include instructions to perform personal performance feedback during a workout. For example, the operating system 1252 may implement the personal performance feedback functionality described with reference to FIGS. 1-11.
[0129] Memory 1250 may also store communications instructions 1254 to facilitate communications with one or more additional devices, one or more computers, and / or one or more servers. Memory 1250 may include graphical user interface instructions 1256 to facilitate graphical user interface processing, sensor processing instructions 1258 to facilitate sensor-related processing and functions, telephony instructions 1260 to facilitate telephony-related processing and functions, electronic messaging instructions 1262 to facilitate electronic messaging-related processing and functions, web browsing instructions 1264 to facilitate web browsing-related processing and functions, media processing instructions 1266 to facilitate media processing-related processing and functions, GNSS / navigation instructions 1268 to facilitate GNSS and navigation-related processing and instructions, and / or camera instructions 1270 to facilitate camera-related processing and functions.
[0130] The memory 1250 may store software instructions 1272 that facilitate other processes and functions, such as the individual performance feedback processes and functions described with reference to FIGS. 1-11.
[0131] The memory 1250 may also store other software instructions 1274, such as web video instructions to facilitate web video related processes and functions, and / or web shopping instructions to facilitate web shopping related processes and functions. In some implementations, the media processing instructions 1266 are divided into audio processing instructions to facilitate audio processing related processes and functions, and video processing instructions to facilitate video processing related processes and functions, respectively.
[0132] Each of the instructions and applications identified above may correspond to a set of instructions that perform one or more of the functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory 1250 may include additional instructions or fewer instructions. Furthermore, various functions of computing device 1200 may be implemented in hardware and / or software, including one or more signal processing circuits and / or application specific integrated circuits.
[0133] In order to assist the Patent Office, and any reader of any patent that may issue on this application, in interpreting the claims appended to this application, Applicants wish to note that they do not intend to invoke 35 U.S.C. 112(f) with respect to any of the appended claims or claim elements, unless the words "means for" or "step for" are expressly used in a particular claim.
Claims
1. obtaining, by a playback device, a workout from a server device, the workout including workout content and community statistics for the workout; presenting the workout content by the playback device; While presenting the workout content, receiving, by the playback device, user activity data related to the workout from a wearable device worn by a user performing the workout; generating, by the playback device, workout feedback that compares the user activity data to community statistics for the workout, the community statistics describing user activity data of a community of users who previously performed the workout; presenting the workout feedback via the playback device; and A method comprising:
2. the user activity data includes individual user data describing a first number of calories burned by the user while performing the workout, and the community statistics includes community data describing statistics related to a second number of calories burned by a community of users who have previously performed the workout; generating the workout feedback comparing the first number of calories burned to the community statistics related to a second number of calories burned; The method of claim 1 further comprising:
3. receiving, by the playback device, information from the wearable device describing a weight of the user; adjusting the community statistic related to a second number of calories burned based on a weight of the user; The method of claim 2 further comprising:
4. determining, by the playback device, a time index corresponding to a current position in the presentation of the workout, the community statistics including a community statistics timeline, the community statistics timeline including a plurality of time indexes corresponding to the duration of the workout content and having corresponding time-indexed community statistics for the workout; generating, by the playback device, the workout feedback based on a particular community statistic associated with the community statistics timeline that corresponds to the time index; The method of claim 1 further comprising:
5. the user activity data is received periodically during the presentation of the workout content; determining, by the playback device, a time index in a community statistics timeline associated with the workout that corresponds to a first time that the user activity data was received; generating, by the playback device, the workout feedback based on the user activity data received at the first time and the community statistics corresponding to the time index; The method of claim 1 further comprising:
6. obtaining, by the playback device, a range of values from the community statistics corresponding to the time index, the range of values representing the range of energy expenditure of the community of users who have previously performed the workout; obtaining, by the playback device, a current energy expenditure value of the user performing the workout based on the user activity data corresponding to the first time; determining, by the playback device, a location within the range of values based on the current energy expenditure value of the user; generating, by the playback device, a performance status notification describing the position relative to the range of values; presenting, by the playback device, the performance status notification; The method of claim 5 further comprising:
7. The method of claim 5 , wherein the performance status notification is a verbal audio notification.
8. A non-transitory computer-readable medium comprising one or more sequences of instructions, the one or more sequences of instructions, when executed by one or more processors, causing the processors to: obtaining, by a playback device, a workout from a server device, the workout including workout content and community statistics for the workout; presenting the workout content by the playback device; While presenting the workout content, receiving, by the playback device, user activity data related to the workout from a wearable device worn by a user performing the workout; generating, by the playback device, workout feedback that compares the user activity data to community statistics for the workout, the community statistics describing user activity data of a community of users who previously performed the workout; presenting the workout feedback via the playback device; and A non-transitory computer-readable medium for causing a computer to perform operations including:
9. The user activity data includes individual user data describing a first number of calories burned by the user while performing the workout, and the community statistics includes community data describing statistics related to a second number of calories burned by a community of users who have previously performed the workout, and the instructions cause the processor to:
10. The non-transitory computer readable medium of claim 8, further comprising: generating the workout feedback that compares the first number of calories burned to the community statistics related to a second number of calories burned.
10. The instructions cause the processor to: receiving, by the playback device, information from the wearable device describing a weight of the user; adjusting the community statistic related to a second number of calories burned based on a weight of the user; 10. The non-transitory computer-readable medium of claim 9, configured to cause operations including:
11. The community statistics include a community statistics timeline, the community statistics timeline including a plurality of time indexes corresponding to the duration of the workout content and having corresponding time-indexed community statistics for the workout, the instructions causing the processor to: determining, by the playback device, a time index corresponding to a current position in the presentation of the workout; generating, by the playback device, the workout feedback based on a particular community statistic associated with the community statistics timeline that corresponds to the time index; 10. The non-transitory computer-readable medium of claim 8, configured to cause execution of operations including:
12. The user activity data is received periodically during the presentation of the workout content, and the instructions direct the processor to: determining, by the playback device, a time index in a community statistics timeline associated with the workout that corresponds to a first time that the user activity data was received; generating, by the playback device, the workout feedback based on the user activity data received at the first time and the community statistics corresponding to the time index; 10. The non-transitory computer-readable medium of claim 8, configured to cause execution of operations including:
13. The instructions cause the processor to: obtaining, by the playback device, a range of values from the community statistics corresponding to the time index, the range of values representing the range of energy expenditure of the community of users who have previously performed the workout; obtaining, by the playback device, a current energy expenditure value of the user performing the workout based on the user activity data corresponding to the first time; determining, by the playback device, a location within the range of values based on the current energy expenditure value of the user; generating, by the playback device, a performance status notification describing the position relative to the range of values; presenting, by the playback device, the performance status notification; 13. The non-transitory computer-readable medium of claim 12, configured to cause execution of operations including:
14. The non-transitory computer-readable medium of claim 12 , wherein the performance status notification is a verbal audio notification.
15. one or more processors; 1. A non-transitory computer-readable medium comprising one or more sequences of instructions, the one or more sequences of instructions, when executed by one or more processors, causing the processors to: obtaining, by a playback device, a workout from a server device, the workout including workout content and community statistics for the workout; presenting the workout content by the playback device; While presenting the workout content, receiving, by the playback device, user activity data related to the workout from a wearable device worn by a user performing the workout; generating, by the playback device, workout feedback that compares the user activity data to community statistics for the workout, the community statistics describing user activity data of a community of users who previously performed the workout; presenting the workout feedback via the playback device; and A non-transitory computer-readable medium for causing the computer to perform operations including: A system comprising:
16. The user activity data includes individual user data describing a first number of calories burned by the user while performing the workout, and the community statistics includes community data describing statistics related to a second number of calories burned by a community of users who have previously performed the workout, and the instructions cause the processor to: generating the workout feedback comparing the first number of calories burned to the community statistics related to a second number of calories burned; The system of claim 15 , further comprising:
17. The instructions cause the processor to: receiving, by the playback device, information from the wearable device describing a weight of the user; adjusting the community statistic related to a second number of calories burned based on a weight of the user; The system of claim 16 , further comprising:
18. The community statistics include a community statistics timeline, the community statistics timeline including a plurality of time indexes corresponding to the duration of the workout content and having corresponding time-indexed community statistics for the workout, the instructions causing the processor to: determining, by the playback device, a time index corresponding to a current position in the presentation of the workout; generating, by the playback device, the workout feedback based on a particular community statistic associated with the community statistics timeline that corresponds to the time index; The system of claim 15 , further comprising:
19. The user activity data is received periodically during the presentation of the workout content, and the instructions direct the processor to: determining, by the playback device, a time index in a community statistics timeline associated with the workout that corresponds to a first time that the user activity data was received; generating, by the playback device, the workout feedback based on the user activity data received at the first time and the community statistics corresponding to the time index; The system of claim 15 , further comprising:
20. The instructions cause the processor to: obtaining, by the playback device, a range of values from the community statistics corresponding to the time index, the range of values representing the range of energy expenditure of the community of users who have previously performed the workout; obtaining, by the playback device, a current energy expenditure value of the user performing the workout based on the user activity data corresponding to the first time; determining, by the playback device, a location within the range of values based on the current energy expenditure value of the user; generating, by the playback device, a performance status notification describing the position relative to the range of values; presenting, by the playback device, the performance status notification; 20. The system of claim 19, further comprising:
Citation Information
Patent Citations
Sports electronic training system, and applications thereof
JP2009078134A
Device, system and program for outputting travel information
JP2014182063A