TrackSplit -- A Simple wave file track splitter

What Is:

Tracksplit is a simple command line utility that takes a audio WAV file as input and locates the track breaks based on silence in the audio. Tracksplit then produces a separate wave file for each track. Optionally, tracksplit will convert a mono audio file to a 2-channel stereo audio file by simply duplicating the mono track to both sides of the stereo track.

There are other track splitting programs in the free domain, such as gramofile. Tracksplit differs from gramofile in that tracksplit was designed with spoken audio in mind, instead of music. Music audio tends to be very consistent for the duration of a piece. The only silence on a large recording are actual splits between musical pieces. Speech is different in that most speakers pause frequently for 2-4 seconds to gather the next thought. Musical track splitters see each pause as a new track. Therefore, a 45 minute speech ends up having 99 tracks (with the 99th being very long because of the limits of cd audio discs).

Tracksplit addresses this problem by allowing the user to specify the minimum silence period to mark as a track divider. And, more importantly, allows the user to specify a minimum length of a track. So, if a user specifies that a track must be at least 4 minutes long, tracksplit will ignore all silence gaps in the music for the first 4 minutes of each track, then the next sufficiently long period of silence triggers a new track file.


Tracksplit can be found at sourceforge project page.

tracksplit --minimum-track seconds
-m seconds
Specify the minimum number of seconds that a track can be. The default value is 300
--file output file mask
-f output file mask
Sets an output mask to use for the created track files. The default mask is Track%02d.wav.
--gap-length seconds
-g seconds
Specifies the minimum number of seconds of silence which indicates a track gap in the audio. The default value is 3.
--threshold amplitude value
-t amplitude value
This is the crudest part of the program. This value is an amplitude value within a WAV file. I've found that 1000 works pretty well, and that is the default.
--input input file
-i input file
Gives the file name of the input file. If this option is missing standard input is used.
If specified turns mono input into stereo output.
Give a usage statement.

Tracksplit came out of my efforts to develop the web site Please feel free to use tnd improve he tracksplit program.


Jack Cox