Inspiration
Most automated speech coaches rely on generative LLMs to review transcribed text. While helpful for grammar, this approach suffers from a fundamental blind spot: it evaluates what you wrote, not how you spoke.
Speakers who struggle with monotone delivery, erratic pauses, or trailing vocal energy are often told generic advice like "Speak with more confidence" or given arbitrary ratings like "7/10 for pacing." There is rarely any empirical proof behind these scores. We wanted to eliminate the guesswork and replace subjective grading with an objective, signal-level mirror—giving speakers exact, second-by-second acoustic evidence of their delivery without forcing them to rely on costly, black-box third-party APIs.
What it does
OratorIQ is an evidence-based speech evaluation engine that delivers deterministic acoustic feedback through an interactive Streamlit dashboard:
100-Point Objective Rubric: Calculates scores across pacing cadence, pitch inflection, vocal dynamic range, and fluency using transparent acoustic math.
Temporal Flaw Grounding: Flags exact timestamps where delivery breaks down (e.g., "Cadence stall between 00:14–00:17" or "Sudden energy collapse at 00:38") instead of offering vague, end-of-speech generalities.
Speaker-Agnostic Alignment: Uses Dynamic Time Warping (DTW) to align a speaker’s attempt against a golden reference track, allowing fair comparisons regardless of natural tempo variations or speaker characteristics.
100% Local & Cost-Free: Runs natively on CPU/local hardware with zero API dependencies, protecting user privacy and eliminating recurring usage fees.
How we built it
We designed OratorIQ as a modular signal-processing pipeline structured across isolated layers:[ Audio Input (.wav) ] ──> [ Acoustic Feature Extraction ] ──> [ Dynamic Time Warping ] ──> [ 100-Pt Rubric Engine ] ──> Streamlit Dashboard (Non-linear Alignment) (Deterministic Rules) (Temporal Plots & Cards) Core Language: Python 3.10+Signal Processing & Feature Extraction: librosa, scipy, and numpy to extract Root-Mean-Square (RMS) energy, fundamental frequency ($F_0$ pitch contours), and zero-crossing rates.Temporal Alignment: Dynamic Time Warping (DTW) to compute the minimal-distance warping path between multidimensional acoustic feature vectors.Frontend & Visualization: Streamlit integrated with Plotly and Matplotlib to render interactive alignment paths, contour overlays, and timeline flaw markers.Quality Assurance: pytest suites covering synthetic signal fixtures, edge-case durations, and feature extraction boundaries.
Challenges we ran into
The Pacing Discrepancy in DTW: Natural speech has variable stretch—one speaker might hold a vowel longer, while another pauses between words. Naive euclidean distance comparisons completely failed. Implementing multidimensional feature weighting (balancing pitch vs. energy vectors) in the DTW cost matrix was required to prevent false alignment warps.Pitch Detection in Noisy Audio: Tracking fundamental frequency ($F_0$) across different microphones led to octave jumps and unvoiced frame artifacts. We had to tune parabolic interpolation and frame-level harmonic filtering to keep pitch variance accurate across quiet home recordings.Streamlit Execution Bottlenecks: Audio processing and distance-matrix calculations are CPU-intensive. Initial builds suffered from UI re-render lag whenever users toggled views. We resolved this by caching extracted feature vectors and precomputed alignment paths using Streamlit's resource memoization.
Accomplishments that we're proud of
True Causal Explainability: Every deduction in our 100-point rubric directly traces back to an acoustic event (e.g., losing 3 points because an unvoiced silence exceeded 1.8 seconds, not because an algorithm guessed confidence).
Zero API Cost: We built a full-fledged speech analysis suite that runs locally on commodity hardware without sending private vocal data to cloud services or racking up token bills.
Production-Grade Project Scaffolding: Moving beyond a hackathon script, we instituted a modular folder structure (src/, tests/, config/) with automated test coverage that made edge-case debugging fast and predictable.
What we learned
Signal Processing > Black Boxes for Delivery: Raw acoustic features often communicate clarity, rhythm, and vocal authority much better than high-level embeddings—and they offer 100% inspectability.
The Nuance of Natural Speech: Human delivery cannot be judged against a rigid, metronome-like timer; true fluency allows for deliberate pauses and dynamic cadence shifts. Designing algorithms that reward intentional pacing while catching involuntary hesitation taught us the deep complexity of vocal dynamics.
Designing Actionable Dashboards: Showing raw acoustic graphs overwhelms non-technical users. Translating complex pitch contours and warping paths into clean, timestamped "moments to fix" was our biggest lesson in user experience design.
Log in or sign up for Devpost to join the conversation.