<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Franta Mráz</title>
    <description>The latest articles on DEV Community by Franta Mráz (@franta_mrz_52bb656bb832c).</description>
    <link>https://dev.to/franta_mrz_52bb656bb832c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4241893%2F5e435ac5-62e1-4611-928b-5a38e1f4851e.jpg</url>
      <title>DEV Community: Franta Mráz</title>
      <link>https://dev.to/franta_mrz_52bb656bb832c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/franta_mrz_52bb656bb832c"/>
    <language>en</language>
    <item>
      <title>Building an AI voice roleplay coach for sales calls: what we learned</title>
      <dc:creator>Franta Mráz</dc:creator>
      <pubDate>Thu, 12 Nov 2026 23:02:06 +0000</pubDate>
      <link>https://dev.to/franta_mrz_52bb656bb832c/building-an-ai-voice-roleplay-coach-for-sales-calls-what-we-learned-4m2a</link>
      <guid>https://dev.to/franta_mrz_52bb656bb832c/building-an-ai-voice-roleplay-coach-for-sales-calls-what-we-learned-4m2a</guid>
      <description>&lt;p&gt;Practising a sales call on your own is awkward. Practising with a colleague is better, but it needs a second person, and colleagues tend to go easy on each other. We build DIRI AI, a voice roleplay coach where you talk to an AI "client" and get a report afterwards. Here are the engineering and product lessons that mattered most. They are opinions from building it, not benchmarks.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. A voice loop is a latency budget, not a model choice
&lt;/h2&gt;

&lt;p&gt;A text chatbot can take two seconds to answer and nobody minds. In a spoken call, a long silence reads as hesitation, disinterest or a dropped line, and the learner starts to fill it. That changes the training itself.&lt;/p&gt;

&lt;p&gt;The pipeline is speech-to-text, a language model, then text-to-speech. Each stage adds delay, so we treat the total as one budget and look at the whole path instead of tuning the model alone. Things that helped in general:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stream everything. Start speaking the first sentence of the reply before the model has finished the second.&lt;/li&gt;
&lt;li&gt;Keep the AI's turns short. Short replies are cheaper, faster and closer to how real prospects talk.&lt;/li&gt;
&lt;li&gt;Measure end-to-end from "user stopped speaking" to "first audio out", not per-component averages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Turn-taking is where it feels fake
&lt;/h2&gt;

&lt;p&gt;Most of the "this feels like a robot" moments came from turn-taking, not from the words. Two failures show up quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The AI cuts in while the learner is still thinking mid-sentence.&lt;/li&gt;
&lt;li&gt;The AI keeps talking when the learner interrupts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real prospects interrupt, trail off and say "hm". We had to treat barge-in (the learner talks over the AI) as a normal event: stop playback, drop the rest of the planned reply, and listen. We also learned that end-of-speech detection is a trade-off. Wait too long and the call drags. Cut too early and you break people off mid-thought. There is no perfect threshold, so we keep it a tunable setting instead of a constant buried in code.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The persona prompt is the product
&lt;/h2&gt;

&lt;p&gt;For a coach, the quality of the practice depends on the quality of the simulated client. Generic "be a difficult customer" prompts produce clients who are either pushovers or random jerks. What works better is a small structured scenario:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who the client is and what they already know,&lt;/li&gt;
&lt;li&gt;one concrete need and one concrete objection,&lt;/li&gt;
&lt;li&gt;what would make them say yes, and what would make them end the call,&lt;/li&gt;
&lt;li&gt;a rule to stay in character and not help the learner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last one matters. Language models want to be helpful, so an unconstrained AI client will quietly guide you to the right answer. A real client will not. We keep the "client" and the "coach" as separate roles: the client plays the scenario during the call, and the feedback only appears in the report afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Scoring: be specific, or it is just a number
&lt;/h2&gt;

&lt;p&gt;A single score out of 100 feels objective and teaches nothing. What helped learners was feedback tied to something they actually said. A rubric with a few named criteria (for example opening, discovery questions, handling objections, next step) gives the model something concrete to check, and gives the learner something concrete to repeat.&lt;/p&gt;

&lt;p&gt;Two cautions from our own testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Language-model scoring is not perfectly consistent. The same call can land a few points apart on two runs. We would rather show a short list of observations than imply false precision.&lt;/li&gt;
&lt;li&gt;A report is only useful if the learner can act on it. One clear next thing to try beats ten generic tips, which is why a basic report on the free tier is a score plus one tip.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Languages are not a translation layer
&lt;/h2&gt;

&lt;p&gt;We support 11 languages (English, Czech, Slovak, Polish, German, Spanish, Portuguese, Italian, French, Romanian and Hungarian). The lesson: do not translate English scenarios and call it done. Politeness conventions, how direct a salesperson may be, how formal the address is, and even how a phone call opens vary by market. We write scenarios and rubric wording per language, and we have to be honest that quality in some languages needs native review before we are fully comfortable with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Make the first call cost nothing and take a minute
&lt;/h2&gt;

&lt;p&gt;For a practice tool, the biggest drop-off is before the first call. People will not read documentation, create a team, or enter a card to find out whether it is useful. We let a new account use the full individual plan for 7 days with no card (capped at 5 calls or 30 minutes of voice, whichever comes first). After that there is a Free plan: 3 calls per month, up to 5 minutes each, with a basic report. Paid individual plans are Start (€19.90), Plus (€49.90) and Pro (€99.90, 480 minutes per month), and there are team plans for companies.&lt;/p&gt;

&lt;p&gt;Capping by calls and minutes (not just by days) also protects us: voice minutes are the real cost, and a hard cap lets us offer a no-card trial honestly.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Privacy and consent are design constraints
&lt;/h2&gt;

&lt;p&gt;Recording and analysing someone's voice raises questions that a text app does not. Our rules of thumb: tell people plainly what is processed, keep each customer's data separate, and do not publish social proof (names, quotes, numbers) until it is real and consented. We have no testimonials on the site yet because we do not have enough consented ones, and we would rather show nothing than invent anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we would tell someone starting this
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Get a rough voice loop working end-to-end first, then measure the latency from the learner's point of view.&lt;/li&gt;
&lt;li&gt;Spend your time on the scenario prompt and on turn-taking, not on a fancier model.&lt;/li&gt;
&lt;li&gt;Separate the in-call "client" from the post-call "coach".&lt;/li&gt;
&lt;li&gt;Give feedback anchored in what was said, and keep it short.&lt;/li&gt;
&lt;li&gt;Treat every language as its own content project.&lt;/li&gt;
&lt;li&gt;Cap free usage by the thing that actually costs money.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where we are
&lt;/h2&gt;

&lt;p&gt;DIRI AI is young, and there is plenty we have not solved: consistent scoring across languages, handling very noisy audio, and making scenarios feel less scripted. If you work on voice agents, I would like to hear how you handle barge-in and end-of-speech detection.&lt;/p&gt;

&lt;p&gt;If you want to see how it plays out in practice, you can try a call at &lt;a href="https://diriai.com?utm_source=devto" rel="noopener noreferrer"&gt;diriai.com&lt;/a&gt;. The 7-day trial needs no card.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>voice</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
