AudioClean Pro - Audio & Video Noise Removal SaaS
A professional micro SaaS application for removing noise and enhancing audio/video quality using AI-powered processing.
π Features
- AI-Powered Enhancement: Uses AssemblyAI for professional-grade audio processing
- Free Processing Option: FFmpeg-based processing for cost-effective solutions
- Multi-Format Support: Handles MP3, WAV, MP4, AVI, MOV, WMV, FLV files
- Real-time Processing: Live progress tracking and status updates
- Secure & Private: Automatic file cleanup after processing
- Responsive Design: Beautiful, mobile-friendly interface
- Rate Limiting: Built-in protection against abuse
π οΈ Technology Stack
- Backend: Node.js, Express.js
- Frontend: Vanilla JavaScript, HTML5, CSS3
- Audio Processing: AssemblyAI API, FFmpeg
- Video Processing: FFmpeg with custom filters
- Security: Helmet, CORS, Rate Limiting
- File Handling: Multer, fs-extra
π Prerequisites
- Node.js (v14 or higher)
- FFmpeg installed on your system
- AssemblyAI API key (optional, for professional processing)
π§ Installation
- Clone the repository
git clone <repository-url>
cd audio-noise-cleanup-saas
- Install dependencies
-
Install FFmpeg
macOS (using Homebrew):
Ubuntu/Debian:
sudo apt update
sudo apt install ffmpeg
Windows:
Download from FFmpeg official website
- Set up environment variables
Edit .env
file and add your API keys:
PORT=3000
ASSEMBLYAI_API_KEY=your_assemblyai_api_key_here
- Start the application
For development with auto-restart:
- Access the application
Open your browser and navigate to
http://localhost:3000
π API Keys Setup
AssemblyAI (Recommended)
- Sign up at AssemblyAI
- Get your free API key from the dashboard
- Add it to your
.env
file
Free Processing (FFmpeg)
- No API key required
- Uses local FFmpeg installation
- Good quality for basic noise removal
π Usage
Web Interface
- Upload File: Drag and drop or click to browse
- Choose Settings:
- Enhancement Level: Low, Medium, High
- Processing Mode: Professional (AssemblyAI) or Free (FFmpeg)
- Process: Click βStart Processingβ
- Download: Get your enhanced file
API Endpoints
Process Audio/Video
POST /api/process
Content-Type: multipart/form-data
Parameters:
- file: Audio/video file (max 100MB)
- enhancementLevel: "low" | "medium" | "high"
- useFreeProcessing: "true" | "false"
Response:
{
"success": true,
"message": "File processed successfully",
"downloadUrl": "/api/download/enhanced-file.wav",
"filename": "enhanced-file.wav",
"processingTime": 5000,
"originalSize": 1048576,
"processedSize": 2097152
}
Download Processed File
GET /api/download/{filename}
Health Check
ποΈ Processing Options
Enhancement Levels
Low Enhancement
- Basic noise reduction
- Light compression
- Minimal EQ adjustments
- Fastest processing
Medium Enhancement (Default)
- Enhanced noise reduction
- Spectral noise gate
- Voice-optimized EQ
- Balanced quality/speed
High Enhancement
- Advanced noise reduction
- Multi-band compression
- Comprehensive EQ
- Maximum quality
Processing Modes
Professional (AssemblyAI)
- Pros: Best quality, AI-powered
- Cons: API costs, requires internet
- Best for: Production use, high-quality requirements
Free (FFmpeg)
- Pros: No costs, works offline
- Cons: Lower quality than AI
- Best for: Testing, basic enhancement
π Security Features
- Rate Limiting: 10 requests per 15 minutes per IP
- File Type Validation: Only audio/video files allowed
- File Size Limits: 100MB maximum
- Automatic Cleanup: Files deleted after processing
- CORS Protection: Configurable cross-origin requests
- Helmet Security: HTTP headers protection
π Project Structure
audio-noise-cleanup-saas/
βββ server.js # Main Express server
βββ package.json # Dependencies and scripts
βββ env.example # Environment variables template
βββ README.md # This file
βββ services/
β βββ audioProcessor.js # Audio processing logic
β βββ videoProcessor.js # Video processing logic
βββ public/
β βββ index.html # Main web interface
β βββ styles.css # Styling
β βββ script.js # Frontend JavaScript
βββ uploads/ # Temporary upload directory
βββ processed/ # Temporary processed files
π Deployment
Heroku
- Create a Heroku app
- Add FFmpeg buildpack:
heroku buildpacks:add https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
- Set environment variables
- Deploy
Docker
FROM node:16-alpine
RUN apk add --no-cache ffmpeg
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
VPS/Cloud
- Install Node.js and FFmpeg
- Clone repository
- Set up environment variables
- Use PM2 for process management:
npm install -g pm2
pm2 start server.js --name "audioclean"
π° Pricing & Costs
AssemblyAI Costs
- Free Tier: 3 hours of audio processing per month
- Paid: $0.25 per hour of audio
- Video: Audio portion only (video processing is free)
Free Processing
- Cost: $0
- Quality: Good for basic enhancement
- Limitations: No AI-powered features
π§ Configuration
Environment Variables
Variable |
Description |
Default |
PORT |
Server port |
3000 |
ASSEMBLYAI_API_KEY |
AssemblyAI API key |
- |
NODE_ENV |
Environment mode |
development |
Rate Limiting
// In server.js
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 10 // 10 requests per window
});
File Upload Limits
// In server.js
const upload = multer({
limits: {
fileSize: 100 * 1024 * 1024 // 100MB
}
});
π Troubleshooting
Common Issues
- FFmpeg not found
# Check if FFmpeg is installed
ffmpeg -version
- AssemblyAI API errors
- Verify API key is correct
- Check API quota/limits
- Ensure internet connection
- File upload fails
- Check file size (max 100MB)
- Verify file type is supported
- Ensure upload directory has write permissions
- Processing fails
- Check server logs
- Verify FFmpeg installation
- Ensure sufficient disk space
Logs
Enable debug logging by setting:
LOG_LEVEL=debug
π€ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
π Support
For support and questions:
- Create an issue on GitHub
- Check the troubleshooting section
- Review the API documentation
Made with β€οΈ for audio enthusiasts and content creators