Sabitlenmiş Tweet

I’ve been working on something for the past few weeks -
a real-time AI voice assistant called Aurix 🎙️
🔗 Live: aurix.swarupdas.dev
💡 What is Aurix?
Aurix is a browser-based AI voice assistant where you can talk naturally with AI in real time - no text input.
Your voice streams → AI processes → responds instantly with audio + transcript.
⚙️ Tech Stack
Next.js, React, Zustand, Web Audio API (AudioWorklet),
Gemini Live API (WebSocket), PostgreSQL + Prisma, NextAuth, Three.js
🧠 What I learned
1. Real-time audio streaming in the browser
2. Raw PCM (16-bit) handling
3. WebSocket lifecycle & latency issues
4. Interrupt (barge-in) logic
5. Structuring complex systems with managers + global state
🛠️ What I built
Started simple - just sending mic audio to AI.
But step by step, it turned into:
🎤 real-time audio streaming engine
🔁 full-duplex conversation (talk + listen together)
⛔ interrupt AI mid-response
📜 live transcript system
🔐 secure token-based connection
Then I added context + UX:
1. customizable language, topic, tone
2. dual transcription (preview + final)
3. auto-restart listening for seamless flow
4. audio visualizations + conversation history
🧨 What I broke (and fixed)
A lot 😅
-> SSR crashes, hydration errors
-> audio glitches & buffering issues
-> WebSocket reconnect loops
-> mic permission edge cases
🙏 Final thoughts
Not perfect yet, but this is the first project where I truly learned how audio works in the browser - how frequency and sound behave, how the Web Audio API works, how to handle mic permissions, and especially how to fix Next.js SSR hydration issues.
Would love your feedback if you try it 🙌
@codersGyan
#buildinpublic #webdev #ai #nextjs #learning #realtime #javascript #llm #gemini #langgraph #langchain

English
































