How I Added Voice-Based AI Personalization Two Days Before Launch

Dev.to / 3/29/2026

📰 NewsDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

Key Points

  • TAMSIV added voice-based AI personalization by introducing a “Configure my AI” onboarding screen where users speak context (e.g., family, tasks, preferences), which is then stored and passed to an LLM via a system prompt on every turn.
  • The personalization maps natural references in conversations (like “the little one” or “Tuesday’s site”) to user-specific meaning, improving how the assistant understands who the user is and what they’re referring to.
  • The app also added a voice-selection feature with 6 OpenAI TTS voices and live previews, reusing the same WebSocket pipeline as the main dictaphone for the preview playback.
  • A significant bug (a ~3-hour WebSocket conflict) occurred because voice previews triggered dictaphone callbacks; it was fixed by implementing an “active owner” approach to ensure exclusive WebSocket ownership during setup.
  • Personalization is positioned as a paid feature gate (Pro/Team plans), influencing pricing and the website, ahead of TAMSIV’s Play Store public launch.

Since October, TAMSIV's voice AI understood commands perfectly. "Create a task", "add a memo", "check my schedule" — all worked. But the AI didn't know the user.

Say "remind me about the thing for the kids" and it had no idea you had kids.

Two days before public launch, I shipped voice-based AI personalization.

Configure Your AI by Talking to It

A new screen: "Configure my AI". You tap, you talk:

"I'm a parent of 3, I manage a cleaning crew of 4, and I forget everything after 30 seconds."

The AI listens, summarizes your context, stores it. From that point on, every response is tailored. "The little one" means your son. "Tuesday's site" means your field intervention.

The implementation: the custom context is sent as part of the system prompt to OpenRouter. The LLM sees it on every conversation turn. Simple, but the UX around it — the onboarding flow, the voice recording, the save/edit/delete — that's where the 1,800 lines went.

6 TTS Voices with Live Preview

Voice is personal. The same robotic voice 50 times a day gets old.

I added a voice selector: 6 OpenAI TTS voices, each with a live preview button. Tap → hear "Hello, I'm your TAMSIV assistant" in that voice → choose. Saved to the user profile, used for all responses.

The tricky part: the preview uses the same WebSocket pipeline as the main dictaphone. Which led to...

The 3-Hour WebSocket Bug

The AI setup screen and the dictaphone share one WebSocket connection. When you preview a voice in setup, the dictaphone's callbacks also fired — processing audio meant for the setup screen.

Fix: an "active owner" pattern. When setup opens, it claims exclusive WebSocket ownership. The dictaphone's callbacks become no-ops until setup closes. Clean in theory, 3 hours of debugging because the conflict only appeared on specific Android models with aggressive garbage collection.

Personalization as a Feature Gate

AI personalization is now part of the Pro/Team plans in the pricing. Free users get basic context, paid users get full customization + voice selection. Added to the pricing page on the website too.

730+ Commits, Monday Is Launch Day

This was the last feature. The app now knows who it's talking to.

Monday, TAMSIV goes public on the Play Store. 6 months of solo development, and the AI finally has context.

TAMSIV is a voice-powered task and memo manager with AI. Try it on Android or visit tamsiv.com.