Vocalis is a high-performance spectral analysis engine designed to classify vowel sounds in real-time directly within the browser.
Unlike traditional ML approaches that rely on heavy server-side processing or opaque neural networks, Vocalis leverages Digital Signal Processing (DSP) fundamentals—FFT, MFCCs, and Formant Analysis—implemented in Rust and compiled to WebAssembly (WASM) for near-native performance.
The project features a stunning, minimalist frontend built with Astro and Konpo Design principles, ensuring that the visualization of physics is as beautiful as the math behind it.
- 🦀 Rust Core: DSP algorithms (FFT, Mel Filterbanks, DCT) written in Rust for safety and speed.
-
🕸️ WebAssembly: Zero-latency client-side execution using
wasm-bindgen. - 📊 Real-time Visualization: Canvas-based spectrograms and waveform rendering.
-
🧠 SVM Inference: Support Vector Machine logic for precise vowel classification (
$F_1$ vs$F_2$ formants). - 🎨 Konpo Design: A "Blueprint" aesthetic with dark/light modes, interactive grids, and fluid animations.
The project is structured as a monorepo:
vocalis_core/: The Rust crate containing the DSP pipeline and inference logic.vocalis/: The Astro web application (Frontend).
- Rust & Cargo: Latest stable version.
- Node.js: v18+
- wasm-pack: For building the Rust crate.
-
Clone the repository
git clone https://github.com/eddndev/vocalis.git cd vocalis -
Build the WASM Core
cd vocalis_core wasm-pack build --target web -
Install Frontend Dependencies
cd ../vocalis npm install -
Run Development Server
npm run dev
- Core: Rust, Wasm-bindgen, Nalgebra (Linear Algebra).
- Frontend: Astro, Vanilla JS (Canvas API), Tailwind CSS v4.
- Animation: GSAP (GreenSock), Lenis (Smooth Scroll).
- Design System: Konpo / Blueprint.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feat/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feat/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built with precision by @eddndev and @achronyme.