2026 · Case study
SyncPhonic
An iOS app that turns vocal stress into a signal you can see and feel.
Problem
Public speaking anxiety shows up in the voice first: pitch climbs, pacing accelerates, hedging language creeps in, long before a speaker notices it themselves. Most practice tools record a session for review afterward or bolt on a generic teleprompter. Almost none turn live vocal signal into something a speaker can act on in the moment.
Solution
SyncPhonic listens through the microphone during a live speaking session and turns pitch, pacing, and stress into an ambient, glanceable instrument: a pulsing orb that breathes with vocal stress in real time, paired with haptic feedback so the signal can be felt without looking at the screen. After a session, it surfaces a stress-signature curve, a rule-based coaching note, and a running vocal-signature history.
Architecture
- PitchTelemetryEngine: AVAudioEngine tap → 24kHz mono conversion → a real YIN pitch tracker (70 to 436 Hz) running on a dedicated analysis queue
- A live stress model blends F0 elevation above a rolling session baseline, pitch instability, and vocal energy into a single signal
- SpeechPacingEngine: SFSpeechRecognizer drives articulation WPM, held-pause detection, hedge-word detection, and lexical diversity
- HapticPulseEngine drives CoreHaptics transients in sync with the live stress signal, so feedback can be felt, not just seen
- SwiftData persists a rolling session history and lifetime aggregates that survive pruning
- A widget extension powers a Live Activity, keeping a session visible from the Lock Screen and Dynamic Island
Outcome
- Full pipeline (pitch tracking, pacing, speech recognition, haptics) verified running continuously in the background during a live session
- Built entirely on native frameworks (AVFoundation, Speech, CoreHaptics, SwiftData) with zero third-party dependencies
- Shipped an adaptive light/dark theme, full accessibility labels, and a privacy manifest ahead of App Store submission
Lessons
- “A number on a screen doesn't change behavior mid-sentence. A felt haptic pulse does.”
- “iOS simulators can lie about on-device speech recognition. Always verify on hardware or a known-good runtime before trusting a result.”
- “Native-only was a constraint worth keeping. It forced real understanding of AVAudioEngine and CoreHaptics instead of outsourcing it to a library.”
Stack
- Swift 6
- SwiftUI
- AVFoundation
- Speech
- CoreHaptics
- SwiftData
- WidgetKit