Inspiration: knowing the words isn’t the same as being understood
I wanted to approach someone for a networking conversation. I knew what I wanted to say, but I also knew what could happen: filler words, rambling, restarting sentences, and losing the point halfway through.
What I wanted wasn’t simply “better English.” I wanted to sound clear and direct while remaining approachable. I wanted to keep the confidence in my voice and improve the habits that made my message harder to follow.
That distinction became Yoro.
The same sentence can welcome someone, reassure them, or push them away depending on its delivery. Yet advice like “sound more confident” rarely explains what to change or gives you a way to practice it.
I built Yoro to close the gap between what you mean and how you come across.
What is Yoro?
Yoro is Duolingo-inspired learning for speaking with intention: wording, delivery, expression, and exploration of different speaking styles.
Instead of starting with a blank prompt or a list of emotion settings, it starts with a human goal:
- “I want to introduce myself confidently without sounding rehearsed.”
- “I want to disagree clearly while making the other person feel heard.”
- “I want to present my idea with the simplicity and anticipation that make Steve Jobs compelling.”
Yoro turns that intention into a practice journey: set a goal, hear an example, try it, understand the feedback, and try again.
The Listener, my lavender coaching companion, gives that journey a welcoming face. Underneath it is a system combining signal processing, timestamp-based analysis, multimodal AI, and persistent learning state.
What makes it different?
The target is your intention
A lower filler count does not automatically make a better speaker. A pause might be hesitation, or it might be the moment that makes an idea land. Faster speech might lose a listener, but it can also communicate excitement.
I designed Yoro to interpret observations in the context of the user’s goal. It helps people work toward clarity, warmth, curiosity, or assertiveness while preserving the character they already like in their voice.
Feedback becomes a learning loop
Yoro doesn’t stop at generating a critique.
It creates a four-stage preparation plan: find your opening, build your message, handle a harder moment, and make it your own. Challenges grow in complexity while staying connected to the same real situation.
Progression requires a recorded attempt, a recorded retry, and the learner’s reflection. Completing a step represents participation in that practice cycle rather than an unsupported claim that the AI has certified mastery.
You can hear an example in your own voice
“Pause here” is useful. Hearing how that change could sound in a voice resembling your own makes the instruction more concrete.
With explicit consent, Yoro uses ElevenLabs to create a personal voice clone and generate practice examples. The user auditions and accepts the voice before using it. Generated examples are labeled and serve as references to practice toward.
This connects a future possibility to a familiar voice.
Inspiration becomes something you can practice
People admire powerful speakers, but admiration alone doesn’t explain how to learn from them.
Yoro’s Voices library offers technique-focused profiles for Steve Jobs, Oprah Winfrey, and Malala Yousafzai. It helps users explore how word choice, structure, emphasis, and delivery can shape their own message, with explanations and practice challenges.
These are style-inspired exercises, not impersonations or cloned celebrity voices.
The prototype also offers American and British English voice examples. My broader goal is to support exploration of dialect and delivery without treating someone’s natural accent as a defect.
The algorithms I built
I built a hybrid coaching pipeline because neither a transcript nor an unrestricted AI response was enough.
1. A deterministic delivery-analysis engine
Using word-level transcription timestamps, I implemented calculations for:
- Overall speaking rate and filler frequency per 100 recognized words.
- Local pace using fixed five-second windows, avoiding misleading speed estimates from tiny phrases.
- English filled-pause candidates such as “um” and “uh.”
- Exact repeated sequences of one to three words.
- Inter-word gaps, including sensitivity checks at multiple thresholds.
The engine validates timestamps before calculating results. When the timing is inconsistent or the sample is too short, it withholds measurements instead of producing plausible-looking numbers.
It also preserves an important distinction: a gap between recognized words is not necessarily silence, and repetition is not automatically a mistake.
2. An acoustic feature-extraction layer
I implemented a YIN-style pitch estimator, adapting an established signal-processing approach rather than claiming to invent pitch detection.
The pipeline processes mono PCM audio, analyzes overlapping frames, applies cumulative normalized difference calculations, and refines candidate pitch estimates.
From those estimates, it calculates median pitch, pitch variation in semitones, recorded-level variation, clipping, and a time-based contour. Percentile-based ranges reduce the influence of isolated extremes.
Quality gates suppress unreliable summaries when the recording clips excessively or contains too little stable pitched audio.
These measurements describe the recording. They do not diagnose emotion, personality, or speaking ability.
3. Evidence-checked comparison between attempts
I wanted Yoro to notice genuine progress without automatically praising the second recording.
I built comparison logic that checks whether attempts belong to compatible practice contexts and requires supporting excerpts from both transcripts.
For supported comparisons, an additional AI listening pass receives the recordings in reversed order with neutral labels. The reconciliation algorithm checks whether the two assessments agree. If they disagree, lack usable evidence, or the verification is unavailable, Yoro returns uncertainty.
This is a consistency safeguard, not proof of objective accuracy. It makes the system more accountable than accepting the first comparison a model produces.
4. Goal-linked drill selection and progression
My drill-selection rules connect observed patterns to the learner’s stated intention. For example, repeated fillers or restarts can lead to a “one thought, then a pause” exercise when the user is working on clarity or directness.
The lesson validator checks stage lengths, distinct challenges, and whether emphasis and pause instructions actually match the supplied sentence.
The result is a structured loop:
Intention → recording → measurements and contextual interpretation → focused practice → comparison → reflection.
My contribution is the application-specific analysis, validation, and progression system around the models. I did not train a new foundation model or a validated emotion/dialect classifier.
How I used the sponsor technologies
ElevenLabs: making the lesson audible
ElevenLabs powers word-timed transcription, expressive spoken examples, and consent-based personal voice cloning.
Its role goes beyond reading feedback aloud: it supplies timing data for analysis and lets the learner hear the delivery being taught, including examples in their own accepted personal voice.
Gemini API: connecting evidence to intention
Gemini combines audio, transcripts, the user’s goals, and practice context to generate coaching, progressive lesson plans, wording suggestions, and speaker-inspired exercises.
I constrain its outputs with schemas, evidence checks, and comparison rules. The model supplies contextual interpretation; my application decides whether that interpretation meets the requirements to be shown.
MongoDB Atlas: preserving the learning journey
Atlas stores profiles, attempts, plans, comparisons, and private audio. I added recording expiration, session-scoped access, and database-backed locks to protect updates across serverless instances.
For longer voice-enrollment samples, I implemented bounded chunk uploads and lossless reassembly so the recording can reach the voice provider without exceeding the hosting platform’s request-size limit.
Backboard: user-confirmed coaching preferences
I integrated Backboard to store user-confirmed coaching preferences. Profile changes replace the stored assistant rather than leaving removed preferences behind. Practice history and progression remain managed by Yoro in Atlas.
.Tech: a working destination
I deployed the project at yoroai.tech so people can open it and begin practicing through a browser.
Challenges I faced
The hardest product challenge was simplification.
Early versions exposed too many choices: forms, dropdowns, emotion selectors, and separate practice paths. The technology worked, but the user had to drive everything. I rebuilt the experience around goals, conversation, and a clear next action.
The hardest technical challenge was trustworthy feedback. I had to distinguish measurement from interpretation, avoid presenting every pause as a weakness, and prevent a retry from becoming an automatic “improvement.”
Deployment also meant solving persistent audio storage, serverless concurrency, upload limits, and provider failures while keeping a solo-built demo usable.
What I learned and what I’m proud of
I learned that personalization is more than remembering a name or changing a prompt. It means connecting someone’s intention, strengths, recordings, and next exercise into a coherent experience.
I’m proud of building that experience as a solo hacker, using Codex as my primary coding assistant while iterating on the product and its technical safeguards.
I added automated coverage for analysis and validation logic, alongside cloud-storage integration checks for ownership, expiration, sample reassembly, and concurrency.
Most of all, I’m proud that Yoro can recognize a strength worth keeping instead of simply producing another correction.
What’s next
I want to evaluate the coaching across more speakers, accents, languages, and recording conditions; validate comparisons against human judgments; and deepen long-term practice and return habits.
Dialect-specific learning needs particular care: it should offer meaningful choices without turning one way of speaking into a universal standard.
Yoro’s goal is to make intentional communication something people can practice a little every day.
Same you. Braver conversations.
Log in or sign up for Devpost to join the conversation.