Skip to content
Anton GoncharovAI systems developer

Web app · speech recognition · sales team quality control

Call speech analytics

A head of sales physically can’t listen to every call, and managers fill in the CRM after a conversation any old way. Here every call is analyzed automatically: the phone system records it in stereo, a voice activity detector cuts the channels into lines, Whisper recognizes them, and rules check the script — did the manager greet the customer, find out the need, handle “too expensive”, agree on the next step. The result is a score with evidence, conversation metrics and a card for the CRM.

Scenario: Teply Dom — a fictional company: PVC windows and balcony glazing. Four calls in a day: an exemplary one, “too expensive”, a customer who left to think it over and a complaint.

Demo screenshot: Call speech analytics

Open the demo

“Analyze” shows the result immediately from a ready transcript. For “Recognize recording” the neural network loads once — about 141 MB, then from cache; analyzing a call takes about a minute.

The app runs in your browser: nothing is sent to a server.

What the demo shows

  • Stereo from the phone system: manager and customer on separate channels — roles and timing of each line without an extra model

  • Voice activity detection per channel and Whisper per line right in the browser; for mono recordings, roles alternate by line

  • A script checklist with weights and a link to the evidence line, plus stop phrases with a penalty

  • A separate checklist for complaints: apologized, offered a solution, agreed on a new time

  • Metrics: the manager’s share of talk time, pauses, interruptions, questions, customer mood at the start and at the end

  • A deal card: customer, phone, email, address, interest, price, next step, task and tags — editable, with JSON export

  • “Team today”: all calls with a score and outcome, averages by manager

How to try it

  1. Analyze an exemplary call

    “Analyze” on “Measurement booked” — 100 points, and the card has the name, phone, address and a measurement visit on Saturday.

  2. Compare it with a failed one

    “Customer left to think”: no greeting, no questions and no next step, three stop phrases — 0 points and a task to call back.

  3. Recognize a recording

    “Recognize recording” on any call: lines appear one by one, and the score and card are built from what Whisper heard.

  4. Correct and verify

    Press “line” in the checklist — the recording jumps to the evidence. Correct a line or change its role and everything is recalculated.

No paid neural networks

Recognition is real: the open Whisper model runs in your browser. The calls are voiced by the Piper speech synthesizer, so Whisper errs on some words more than on good-quality live speech. The checklist, mood and card fields are calculated by keyword rules — they know only these scenarios. In a production project this step is done by a language model using the company’s checklist and the card’s JSON schema.

The demo runs without OpenAI, YandexGPT or GigaChat API keys. Wherever a production system calls a model, there’s a local stub with the same interface — so the demo is free, always available and never makes things up.

What a production project adds

  • Recordings are fetched from the phone system (Mango Office, Beeline, Asterisk) via API or a webhook after each call
  • Whisper or cloud recognition on your own server — depending on recording storage requirements
  • A language model (GPT, Claude, YandexGPT or GigaChat) scores the call against the company’s checklist and fills in the card with a JSON schema
  • The deal, task and score go to amoCRM or Bitrix24, with an evening digest to the head of sales in Telegram

Stack

  • React 19
  • TypeScript
  • Whisper
  • Transformers.js
  • Web Workers
  • Web Audio
  • Piper TTS
  • Zustand
  • Vite

Developer’s comment

Anton Goncharov

AI systems developer · Python

For business

  • The head of sales sees a score for every call without listening to them: who is losing customers and at which script step.
  • The deal card and task fill themselves — managers don’t spend time on the CRM after a call.
  • Complaints and “churn risk” surface the same day, while the customer can still be kept.

For developers

  • A stereo recording is split into channels, an energy-based voice activity detector cuts them into lines, and adjacent pieces of one channel are merged.
  • Whisper base via Transformers.js in a Web Worker recognizes lines one at a time — with role and timing, without a diarization model.
  • The checklist, metrics and card are pure functions tested on reference transcripts and on text as speech recognition actually writes it.

Tips

  • Tip 01

    Turn on stereo recording in your phone system: separating voices by channel is more reliable and cheaper than any diarization.

  • Tip 02

    Show an evidence line for every point of the score — otherwise managers argue with the number instead of learning.

Want the same for your business?

Tell me about your task — I’ll tell you what from the demo fits, how long it will take and what I’ll need from you.

Other demos in this section

All demos
  • Web app · speech recognition · neural network in the browser

    live

    Voice request

    A customer dictates a request by voice, and the manager gets a ready card: name, company, phone, budget, timeline, task and a score — hot lead or not. Speech is recognized by Whisper right in the browser.

    • React
    • TypeScript
    • In-browser neural network
  • Web app · call in the browser · speech recognition and synthesis

    live

    Voice delivery operator

    A robot takes phone orders instead of the host: it listens, asks again, checks the address against delivery zones, totals the order and reads it back before confirming. The call runs right in the browser — a “Call” button, no phone number.

    • React
    • TypeScript
    • In-browser neural network
  • Web app · documents · DOCX and PDF

    live

    Proposal and contract generator

    A manager fills in a deal form — buyer, products, discount, VAT — and the commercial proposal, supply contract and invoice are assembled on an A4 page before their eyes. The output is Word, PDF or JSON.

    • React
    • TypeScript
  • Web app · B2B · proposal in PDF

    live

    Price configurator

    A manager builds an order for all the windows in an apartment: type, size, sashes on a diagram, profile, glazing unit and color. Production rules are checked instantly, discounts and installments are calculated automatically, and a numbered proposal goes out as a PDF.

    • React
    • TypeScript
  • Web app · finance · comparison

    live

    Mortgage calculator

    Five bank programs on one screen: which suit the client and why the others don’t. A developer-subsidized rate, differentiated payments, early repayment, debt-to-income ratio and the tax deduction.

    • React
    • TypeScript
  • Web app · estimate · PDF

    live

    Renovation estimate calculator

    Room dimensions turn into floor, wall and ceiling areas, and those into work by stage. Labor and materials separately, the timeline based on crew output, a payment schedule and estimate versions for negotiating with the client.

    • React
    • TypeScript
  • Web app · storefront · checkout · orders

    live

    React SPA catalog

    A whole store in the browser: search with suggestions and keyboard layout correction, facets with live counters, links to any filter, favorites, a cart with a promo code and checkout with a delivery slot. Orders are visible in “My orders” with statuses and can be repeated or cancelled.

    • React
    • TypeScript
  • Machine learning in Python · runs in the browser

    live

    Marketplace review analytics

    Reviews from Wildberries, Ozon and Yandex Market via the seller API: scikit-learn models determine sentiment and what buyers write about, an alert fires in the first week of a complaint spike, new topics are discovered automatically, and replies go back through the marketplace API. The models train right in the browser.

    • Python
    • React
    • TypeScript
  • Website widget · vanilla JS · one line

    live

    AI consultant widget

    A consultant for any website, installed with a single line: it answers from a knowledge base with a link to the source, collects requests and calls an operator. Written in plain JavaScript without frameworks — the whole widget is 21 KB gzipped.

    • Vanilla JS
  • Website widget · vanilla JS · leads

    live

    Quiz lead form

    A quiz instead of a long form: six questions with branching and a price estimate at the end. The manager gets a lead rated “hot / warm / cold” with its ad source, and the “Analytics” tab shows at which step people leave.

    • Vanilla JS
  • Python backend · webhooks → amoCRM and Bitrix24

    live

    Lead integration hub

    Leads from the website, ads, calls, email and bots arrive at webhooks, are normalized, checked for duplicates, routed to managers and delivered to amoCRM and Bitrix24 — with retries when the CRM is unavailable.

    • Python
    • React
    • TypeScript