Surogate Voice

Voice agents that sound local.

Romanian speech we train ourselves: a recognizer that listens and a voice that speaks. On our cloud, or inside your call center.

A support call, both sides Amami

  1. AgentBună ziua, ați sunat la suportul Băncii Livada. Cu ce vă pot ajuta?Good afternoon, you have reached Banca Livada support. How can I help?
  2. CallerBună! Nu mai pot să intru în app de la ultimul update.Hi! I can't get into the app since the last update.
  3. AgentVă trimit acum un cod prin SMS. Vă rog să mi-l citiți.I'm sending you a code by SMS now. Please read it to me.
  4. CallerCodul este 7XK-492-QPA.The code is 7XK-492-QPA.
  5. AgentMulțumesc, v-am verificat. Am resetat accesul, iar plata de 249,90 lei către Raftul apare ca finalizată.Thank you, you're verified. I've reset your access, and the 249.90 lei payment to Raftul shows as completed.
  6. CallerSuper, mersi! Mai am un call la zece, așa că închid.Great, thanks! I have another call at ten, so I'll hang up.
  7. AgentCu plăcere! O zi frumoasă și spor la meeting!You're welcome! Have a good day, and good luck with the meeting.

A scripted call, not a customer's. Seven lines in two voices, each generated by Amami on a CPU.

Three small models, one job each.

Jackrabbit to listen and Amami to speak, open on Hugging Face.

  • Listens

    Jackrabbit ASR

    Writes cased, punctuated Romanian text from recordings. 116M parameters, comfortable on a CPU.

    5.69% WER

    word error rate on the FLEURS Romanian test, CTC decoding with a 4-gram language model, Open ASR Leaderboard runner

  • Listens live

    Jackrabbit Streaming ASR

    Shows words as you speak, then a final sentence when you pause, over HTTP or WebSocket.

    0.72 s to text

    from the moment you stop talking to the final sentence, on one RTX 5090, including 640 ms to detect the pause

  • Speaks

    Amami TTS

    Stress where native speakers put it, the English words Romanians use at work said the English way, and codes dictated one character at a time.

    2.83% WER

    word error rate on a set of ordinary Romanian sentences, transcribed back by the Surogate Romanian speech recognizer

Hear it read what agents read.

Greetings, appointments, IBANs, codes, the news and the English words of an office. Each clip is one take from the model.

More samples in Research

  • Voice agent

    Bună ziua! Sunt asistentul virtual al băncii. Cu ce vă pot ajuta astăzi?

  • Voice agent

    Programarea dumneavoastră la cardiologie este pe 1 decembrie, la ora nouă și jumătate. Vă rog să veniți cu cincisprezece minute mai devreme.

  • Codes and IDs

    IBAN-ul dumneavoastră este RO49 AAAA 1B31 0075 9384 0000.

  • Codes and IDs

    Codul de verificare este 7XK-492-QPA.

  • News and numbers

    Bună seara! Inflația a scăzut la 4,2%, iar cursul euro a ajuns la 4,97 lei. La Cluj sunt 18 grade și cer senin.

  • Romanian + English

    Am un meeting pe Teams la zece, apoi un call cu project managerul despre update-ul de software.

Smaller, and more accurate.

Measured, and every transcript published.

word error rate for Jackrabbit on the FLEURS Romanian test
5.69%
word error rate for Jackrabbit on the FLEURS Romanian test
from the end of speech to the final sentence, streaming, on one RTX 5090
0.72 s
from the end of speech to the final sentence, streaming, on one RTX 5090
run Amami about 2.7 times faster than real time, no GPU
2 CPU cores
run Amami about 2.7 times faster than real time, no GPU

Word error rate over all 883 FLEURS Romanian test clips. Lower is better.

  • Jackrabbit, 116M parameters5.69%
  • A 1B-parameter recognizer5.95%
  • A 1.55B-parameter recognizer8.42%

Jackrabbit with CTC decoding and a 4-gram language model; each model through the same evaluation code. Every transcript is in the evaluation dataset. Recordings: FLEURS by Google, CC BY 4.0.

Then give an agent a phone number.

The same models answer calls for a Surogate agent, with its skills and approvals behind them.

A tutoring school gives its agent a number and a Romanian greeting. Filmed on a demo business, with a made-up number.
A school office behind the voice, how to say BAC, and callers remembered. Filmed on a demo business, with a made-up number.
  • A number per agent

    An admin adds numbers to a pool, and each agent takes one. Calls come in over SIP.

  • Romanian built in

    Jackrabbit hears callers and Amami answers them, included with the agent.

  • English and more, your provider

    For other languages, connect ElevenLabs, Cartesia, Deepgram, OpenAI, Gradium, Fish Audio or your own server.

  • Calls out, from a program

    A step in a program can ring a customer from the agent's number. Quiet hours apply.

  • A room behind the voice

    Background sound such as a school office or a clinic desk, pronunciations for your names, and call limits.

  • Callers remembered, if you choose

    The agent can keep what a caller said for their next call. It never treats a number as proof of who called.

Inside your call center.

Both models are served by the Surogate engine, on your own servers, so recordings stay in your network.

Enterprise pricing

Speak

hf download surogate/amami-110m-ro --local-dir amami-110m-ro
SUROGATE_TTS_PYTHON=/path/to/venv/bin/python surogate serve --tts amami-110m-ro --port 8080

curl localhost:8080/v1/audio/speech -H "Content-Type: application/json" \
  -d '{"input": "Bună ziua! Codul de confirmare este 4B7X9.", "voice": "male"}' -o out.wav

Listen

docker run --gpus all -p 8000:8000 ghcr.io/invergent-ai/surogate:1.5.4 \
  serve --stt surogate/jackrabbit-110m-ro-streaming --host 0.0.0.0 --port 8000

curl http://localhost:8000/v1/audio/transcriptions -F [email protected]

Questions

Which languages?

Romanian today: Jackrabbit listens and Amami speaks. Amami also says the English words Romanians use at work (meeting, call, update, backup) the English way. Surogate Speech ships language by language.

How accurate is the recognizer?

Jackrabbit scores 5.69% word error rate over all 883 FLEURS Romanian test clips, against 5.95% for a 1B-parameter recognizer and 8.42% for a 1.55B one, each run through the same evaluation code. Every transcript is in the published evaluation dataset.

Will it read a code or an IBAN wrong?

Amami dictates codes, IBANs and phone numbers one character at a time, from recorded clips, so a voice agent reads them the same way every time.

Does it need a GPU?

Amami runs about 2.7 times faster than real time on two CPU threads, with first audio after about 120 ms. Jackrabbit runs comfortably on a CPU; the 0.72 s streaming figure was measured on one RTX 5090.

Can it run inside our call center?

Yes. Both models are served by the Surogate engine, on your servers or on our cloud.

How is it licensed?

Weights under CC-BY-NC-4.0 for research and non-commercial use; commercial licences through Invergent.

Put a local voice on your line.

Tell us about your calls. We will set up a pilot on our cloud or on your servers.