A simple yet powerful desktop application for merging audio files, with advanced features like silence removal and AI-powered log standardization. Built with Python, PyQt5, and Pydub.
- Merge Audio Files: Combine multiple MP3 and WAV audio files into a single output file.
- Intuitive File Management:
- Drag-and-drop support for easily adding files.
- Reorder tracks by dragging them within the list.
- Shuffle tracks randomly.
- Pin specific tracks to keep them in their position during shuffling.
- Configurable Silence Removal: Automatically detect and remove silent segments from audio tracks during the merging process, with adjustable silence threshold and chunk size.
- AI-Powered Log Standardization:
- Use OpenAI-compatible or Anthropic-compatible APIs to standardize and clean up track lists or log files.
- Supports official APIs, custom compatible Base URLs, model discovery, manual model names, custom removal keywords, and advanced prompts.
- Python 3.8+
pip(Python package installer)venv(Python virtual environment module)
- Clone the repository:
git clone https://github.com/realldz/Audio-Merger.git cd Audio-Merger - Create and activate a virtual environment:
python -m venv .venv # On Windows: .venv\Scripts\activate # On macOS/Linux: source .venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Run the application:
python main.py
- Add Audio Files: Drag and drop MP3/WAV files onto the application window, or use the "Add Files" button.
- Manage Tracks: Reorder, remove, shuffle, or pin tracks as needed.
- Configure Output: Specify the output folder and desired output file name.
- Silence Removal: Adjust "Silence Threshold" and "Chunk Size" in the settings section if you want to remove silence.
- AI Standardization (Optional):
- Select the OpenAI-compatible or Anthropic-compatible API standard.
- Enter the API key and Base URL. The official Base URL is filled in automatically by default.
- Select a model after refreshing the list, or enter a model name manually if the server does not expose
/models. - Provide a log file name (from the "Output" section).
- Use "Custom keywords to remove" for simple cleaning or enable "Advanced prompt editing mode" for a custom AI prompt.
- Click "Standardize Log with AI 💎" to process the log file. The standardized log will open automatically.
- Merge Audio: Click the "Merge Audio" button to start the merging process.
Logging settings are managed via the settings.json file in the application's root directory. If the file doesn't exist, default settings will be used.
Example settings.json for logging to a file:
{
"log": {
"level": "INFO",
"handler": "file",
"file_name": "audio_merger.log",
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
}
}Example settings.json for logging to console (stdout):
{
"log": {
"level": "DEBUG",
"handler": "stdout",
"format": "%(asctime)s - %(levelname)s - %(message)s"
}
}Set "level": "NONE" to disable logging.
You can create a standalone executable using PyInstaller.
- Install PyInstaller:
pip install pyinstaller
- Build the executable:
pyinstaller --noconfirm --onefile --windowed --name "AudioMerger" main.py--noconfirm: Overwrite existingdistandbuildfolders without asking.--onefile: Create a single executable file.--windowed: Create a windowed application (no console window).--name "AudioMerger": Name the executableAudioMerger.exe.
- Find the executable: The executable will be located in the
dist/folder.
This project utilizes the following open-source libraries:
- Pydub
- PyQt5
- music-tag
- Requests
This project is licensed under the MIT License - see the LICENSE file for details.