Free open source audio processing ecosystem — audiotools.dev
Privacy-first audio tools that run entirely in your browser. No uploads, no accounts, no usage limits.
| Tool | URL | Technology |
|---|---|---|
| Audio Converter | /converter/ | Mediabunny (WebCodecs + WASM encoders) |
| Voice to Text | /voice-to-text/ | Web Speech API + Whisper (Transformers.js) |
| Text to Speech | /text-to-speech/ | Web Speech Synthesis API |
| Audio Trimmer | /audio-trimmer/ | Web Audio API |
| Speed Changer | /audio-speed-changer/ | WSOLA time-stretching |
| Volume Booster | /volume-booster/ | Web Audio API, soft limiter |
| Audio Joiner | /audio-joiner/ | Web Audio API, crossfade |
| Audio Compressor | /audio-compressor/ | Web Audio API + Mediabunny MP3 |
Chinese pages: /zh/, /zh/converter/, and /zh/ versions of Volume Booster, Text to Speech, Audio Joiner and Audio Compressor.
audiotools.dev/
├── index.html, zh/ ← Home page (EN, ZH) with the tool helper
├── <tool>/index.html ← One folder per tool; tool-specific styles inline
├── style.css ← Shared look: tokens, nav, footer, tool header and panel, sections
├── assistant.js ← Home helper + "continue with this file" hand-off between tools
├── media.js ← Shared decoding/encoding on Mediabunny: convertFile (streams, video in), encodeBuffer
├── vendor/mediabunny/ ← Self-hosted Mediabunny + MP3/FLAC/AAC encoder bundles (MPL-2.0)
├── batch.js ← Several files at once: per-file list + ZIP download (Converter, Compressor)
├── audio-export.js ← MP3 (192 kbps) or WAV download for edited audio
├── support.js ← GA4 events + support line after a successful result
├── voice-to-text/whisper-worker.js ← Whisper in a Web Worker
├── about/, changelog/, privacy/, terms/, 404.html
├── sitemap.xml, robots.txt, llms.txt
└── CNAME
- Decoding: Web Audio API (WAV, MP3, FLAC, OGG, AAC, M4A, WebM, or anything else the browser can decode)
- WAV encoding: custom JS encoder (lossless)
- Converter: Mediabunny reads audio and video containers in pieces and decodes with WebCodecs; output MP3, M4A (AAC), WAV or FLAC. Browsers without WebCodecs fall back to Web Audio decoding.
- MP3 / FLAC / AAC encoding: Mediabunny encoder extensions (LAME and FLAC in WebAssembly, in a worker; AAC only where the browser has no encoder)
- The other tools save MP3 or WAV. Nothing is uploaded; there is no server.
- Live dictation uses the browser's built-in Web Speech Recognition API (Chrome/Safari may process audio on the vendor's servers).
- Private mode transcribes audio files and microphone recordings with Whisper (tiny/base, q8) via Transformers.js in a Web Worker (
voice-to-text/whisper-worker.js). Audio is decoded and resampled to 16 kHz mono in the browser; only the model weights are downloaded from Hugging Face and cached.
python3 scripts/seo_sync.pyrewrites the FAQPage JSON-LD on every page from the FAQ that is visible on that page, and refreshes<lastmod>insitemap.xmlfrom git. Run it after editing a FAQ or a page (needsbeautifulsoup4).- CI (
.github/workflows/seo-check.yml) runsscripts/seo_sync.py --checkand fails if the markup and the visible FAQ drift apart. python3 scripts/build_zh.pyrebuilds the Chinese tool pages (volume booster, text to speech, joiner, compressor) from the English ones with the translation tables in the script, and keeps hreflang, the 中文/EN switch and the Chinese navigation in step. It stops if an English string it translates has changed, and runsscripts/seo_sync.pyat the end.python3 scripts/build_landing.pyrebuilds the format pages (/mp4-to-mp3/,/video-to-mp3/,/mp3-to-wav/,/wav-to-mp3/and their/zh/versions) from the converter pages: same code, own copy and FAQ, output format preselected via<body data-default-format>. Run it after changing a converter page; it also refreshes the "Popular conversions" links on the converters and runsseo_sync.py.- Social preview images live in
og/(1200×630, one per tool).
The site is static HTML — deploy to GitHub Pages:
git add .
git commit -m "Update audiotools.dev"
git push origin mainGitHub Pages serves from the main branch. The CNAME file points to audiotools.dev.
This site is the hub for the audio tools ecosystem:
| Project | Language | Description |
|---|---|---|
| go-audio-converter | Go | Pure Go audio converter — no FFmpeg, custom FLAC encoder |
| voice-to-text | Python | Bulk voice transcription — Whisper, faster-whisper, OpenAI, Groq |
| music_recognition | Python | Bulk music identification via Shazam + auto ID3 tagging |
| audiobook-cleaner | Python | AI noise removal — MDX-Net, VR, Roformer models |
- Frontend: Vanilla HTML/CSS/JS (no frameworks, fast loading)
- Audio Processing: Web Audio API, Mediabunny, Transformers.js (Whisper)
- Hosting: GitHub Pages
- SEO: JSON-LD structured data, Open Graph, semantic HTML
MIT — Roman Gordienko