13. A non-transitory computer-readable storage medium containing instructions, that when executed, control a computer system to be configured for: determining a video including ad slots inserted within the video; generating a caption curve for a caption file of captions for the video based on start times and stop times for caption segments in the caption file, wherein the caption segments in the caption file were generated for the video without including ad slots; determining a speech velocity of characters per a time unit using a set of caption files that include captions for a set of videos, wherein the speech velocity is used to estimate how fast speech occurs for caption segments in the set of videos; detecting when the start time or the stop time of one or more caption segments should be adjusted based on the speech velocity, a number of characters in caption segments in the caption file, and a duration between the start time and the stop time; revising the start time or the stop time for the one or more caption segments associated with the caption curve based on the detecting; determining a speech probability curve based on audio of the video, wherein the speech probability curve indicates a probability of speech occurring in the video; and correlating the speech probability curve to the revised caption curve to align the caption segments of the caption file with speech of the video.
17. The non-transitory computer-readable storage medium of claim 13 , wherein revising the caption curve comprises: estimating a time duration of each caption segment based on the number of characters in the caption segment and the speech velcoity; and revising the caption curve for the caption segment based on the time duration.