https://github.com/mpirescarvalho/audio-splitter
Simple package to split a merged audio track to parts by silence analysis 🎶
https://github.com/mpirescarvalho/audio-splitter
audio audio-split audio-splitter ffmpeg merged merged-audio song-splitter songs split tracks
Last synced: 5 months ago
JSON representation
Simple package to split a merged audio track to parts by silence analysis 🎶
- Host: GitHub
- URL: https://github.com/mpirescarvalho/audio-splitter
- Owner: mpirescarvalho
- Created: 2021-05-15T20:35:30.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-17T00:38:06.000Z (almost 2 years ago)
- Last Synced: 2025-04-23T07:03:01.708Z (6 months ago)
- Topics: audio, audio-split, audio-splitter, ffmpeg, merged, merged-audio, song-splitter, songs, split, tracks
- Language: TypeScript
- Homepage:
- Size: 68.4 KB
- Stars: 8
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Audio Splitter
Simple package to split a merged audio track to parts by silence analysis.
## Prerequisites
To use this project, you need to have a local installation of FFmpeg present on your system. You can download it from https://www.ffmpeg.org/download.html
# Installation
```sh
$ npm i audio-splitter
```# Example
## Auto split
```js
const { splitAudio } = require("audio-splitter");splitAudio({
mergedTrack: "path/to/file.mp3",
outputDir: "path/to/outdir/",
});
```# API
## splitAudio(params)
Automatically split audio based on silence analysis.
```typescript
// split audio params
type SplitAudioParams = {
mergedTrack: string; // source track
outputDir: string; // directory, where to put the tracks (with all the required slashes)
ffmpegPath?: string; // path to ffmpeg.exe
artist?: string; // meta info, optional
album?: string; // meta info, optional
trackNames?: string[]; // meta info, optional
maxNoiseLevel?: number; // silence is defined below this dB value
minSilenceLength?: number; // (sec) we are searching for silence intervals at least of this lenght
minSongLength?: number; // (sec) if a track is sorter than this, we merge it to the previous track
fastStart?: boolean; // optional flag for faststart
};
```## extractAudio(params)
Manually extract a track
```typescript
// extract audio params
type ExtractAudioParams = {
ffmpegPath: string; // path to ffmpeg.exe
inputTrack: string; // source track
start: number | string; // start seconds in the source
length: number; // duration to extract
artist?: string; // meta info, optional
album?: string; // meta info, optional
outputTrack: string; // output track
fastStart?: boolean; // optional flag for faststart
};
```## Contributing
1. Fork it ()
2. Create your feature branch (`git checkout -b feature/awesome`)
3. Commit your changes (`git commit -am 'Add awesome feature'`)
4. Push to the branch (`git push origin feature/awesome`)
5. Create a new Pull Request## Contact