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
- 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?
- CallerBună! Nu mai pot să intru în app de la ultimul update.Hi! I can't get into the app since the last update.
- 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.
- CallerCodul este 7XK-492-QPA.The code is 7XK-492-QPA.
- 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.
- 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.
- 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.
For calls that have to go right.
Where a misheard word or a misread code costs money.
Banking
A call center that reads codes right
Amounts and dates in words, IBANs and codes one character at a time.
Read moreInsurance
Claims lines that answer in Romanian
Jackrabbit writes each call down as cased, punctuated Romanian, ready for the claim file.
Read morePublic sector
Citizens who call in Romanian
Both models run on a CPU, inside your network, with no connection out.
Read moreAny team
A phone number for an agent
Phone is one of the nine channels in Surogate, with the agent's skills and approvals behind it.
Read more
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.
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 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.
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.wavListen
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.