Skip to content
Anton GoncharovAI systems developer

Web app · call in the browser · speech recognition and synthesis

Voice delivery operator

At peak hours a restaurant host can’t pick up every call, and every missed call is a lost order. The voice operator answers immediately and on any number of calls: it takes dishes, the address, the phone number and payment, calculates the total and delivery itself, and asks again when something is unclear. Here everything runs on your device: Whisper recognizes speech in the browser, the device itself synthesizes the voice, and the audio goes nowhere. Every answer shows how long it took.

Scenario: “Pech” is a fictional restaurant in Yekaterinburg, the same as on the demo site: 22 dishes from the menu, three delivery zones with a minimum order and a delivery fee, streets by zone, delivery from 12:00 to 22:30.

Demo screenshot: Voice delivery operator

Open the demo

The speech recognition neural network loads on the first call — about 141 MB once, then from the browser cache. Without a microphone, you can type to the operator.

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

What the demo shows

  • A call in the browser: the operator greets you, listens and answers by voice; the end of a phrase is detected by a pause

  • Whisper recognition on the device — no servers, no keys and no audio sent to Google

  • The whole order: dishes and quantities, swaps (“lemonade instead of mors”), price questions, address, phone and payment method

  • The address is checked against zones: delivery time, minimum order, delivery fee and the free delivery threshold

  • The operator reads back the order and the total before confirming and gives the order number

  • Voice barge-in, asking again on an unclear phrase, handing the call to a person on the third time or on request

  • The delay of every answer by parts: pause, recognition, logic, voice start

How to try it

  1. Call

    Press “Call” and allow the microphone. On the first call the recognition model loads, then the operator greets you.

  2. Order by voice

    Say what you want in Russian: “две маргариты и морс” (two margheritas and a mors). You can ask the price, swap or remove a dish, then “это всё” (that’s all).

  3. Give the address, phone and payment

    The street and house, the number — best digit by digit, payment — by card to the courier, cash or SBP (Russia’s Faster Payments System). The order on the right fills in as you talk.

  4. Confirm the order

    The operator reads back the order and the total. Say “да, всё верно” (yes, that’s right) and get the order number. Without a microphone, the same phrases can be clicked or typed.

What to write

  • Две маргариты и морс
  • Сколько стоит рибай?
  • Вместо морса лимонад
  • Улица Малышева, дом 5, квартира 12
  • Картой курьеру

No paid neural networks

Recognition is real: the open Whisper model runs in your browser, and your device synthesizes the operator’s voice — if there is no local Russian voice, the replies come as text. Here rules drive the dialog using the restaurant’s menu and zones, so the demo runs without a server. In a production project the call comes to a regular number via IP telephony, Whisper on your own GPU server recognizes speech — in tenths of a second — and a local language model leads the conversation with the same menu and rules.

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

  • A call to a regular number: Asterisk and a SIP provider, the operator answers any number of lines
  • Whisper on your own GPU server, Silero or Piper speech synthesis — no cloud services
  • A local language model via Ollama or vLLM leads the conversation, while code calculates the total and the zone
  • The order goes to iiko, r_keeper or the kitchen’s Telegram, with a text message to the customer containing a payment link

Stack

  • React 19
  • TypeScript
  • Whisper
  • Transformers.js
  • Web Workers
  • Web Audio
  • Web Speech Synthesis
  • Zustand
  • Vite

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 · speech recognition · sales team quality control

    live

    Call speech analytics

    A sales call becomes a transcript by role, a score against the script and a completed deal card: customer, contacts, interest, the quoted price, the next step and a task for the manager. Speech is recognized by Whisper right in the browser.

    • 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