Condenser – A Passive Immersion Tool

Condenser makes it very easy to extract speech audio from video files based on subtitle timings. You drag a video or a folder that has videos to Condenser and it creates an audio file for each video, consisting of only audio that correspond to subtitles, optionally with some padding, and discards the rest.

This is mainly supposed to be used for passive immersion, where you are listening to the audio of something you have already watched as a part of language learning. By omitting the audio outside of speech, it increases the language per second that you are getting exposed to-i.e., the audio’s “language density”. It also saves disk space.

Condenser in the directly runnable binary form is currently available for Windows: Download Condenser v1.3.1 for Windows

If you would like to use it on different operating systems, you can directly get the source code and run it via python.

How to use – Simple

How to use – Detailed


You can change some settings in config.json:

“padding” is the amount of time that is added to the beginning and end of each subtitle period before extraction. The default is 500 ms and it works pretty well. Too short of a padding may slow down processing since the program merges overlapping periods before extracting audio. Also it may cause you to miss some pieces of speech if the subs aren’t well timed. Too long of a padding can reduce the time you gain by condensing, but it won’t affect the long no-talking scenes.

“ask_when_multiple_srt” is False by default, which means it will pick the default (first) subtitle in a video file if it has multiple subtitles embedded. This is normally not a problem since the subtitles are only used for their timings, but some videos may have strange subtitles embedded as the first one, such as “commentary” or “songs only”. In this case, change this option to True and the program will ask which subtitle to use.

“filtered_characters” is a set of characters to filter. If a subtitle line consists only of these characters, that line is ignored in the output.

“filter_parentheses” is True by default, which means it ignores subtitle lines that are completely enclosed in parentheses (including brackets and curly braces)

Update history








The source code of this project is available under the GPL v3 licence: