
benchmarks
we evaluate expressive delivery, vocalization adherence, and transcription accuracy separately. indicEmo measures how well a requested delivery is sustained through code-switched speech; NoVA tests whether an inline vocalization occurs at the requested position. WER and CER assess the correspondence between the synthesized speech and its input text.
indicEmo
we introduce indicEmo to evaluate expressive delivery in code-switched speech. its 100 prompts combine two to five languages drawn from english, hindi, telugu, tamil, kannada, bengali, and punjabi, with equal coverage of happy, sad, angry, excited, and professional delivery.
three automated judges rate anonymized recordings on a five-point rubric covering tone, dynamics, phrasing, and sustained expression. results use the 98-prompt intersection with valid ratings from all judges, aggregating the median rating per recording into category means. rumik-oss-1 scores 2.92/5 overall and 3.03/5 on the four emotion categories.

NoVA
NoVA evaluates adherence to inline laughter, chuckle, and sigh requests in english speech. each of its 149 prompts places a single vocalization at a specified word position. seven systems are evaluated over three synthesis runs using provider-specific prompting.
silk-asr, scribe v2, and a gemini verifier assess position-correct rendering. laugh and chuckle are pooled into one category; the final score averages laughter and sigh rendering rates across detectors, with unsupported categories contributing zero. rumik-oss-1 achieves a 0.884 rendering score.
(we also show WER and CER benchmarks in the post-training section)


text base choice. for saving us the hassle of multilingual text pre-training, we wanted to build upon a prior which has a good multilingual understanding such that our entire focus shifts to audio pre-training and post-training. we also wanted a simple design that :
is scalable and easy to serve
has a robust multilingual text distribution
follows the standard next token prediction objective

with a limited audio and compute budget, the first question was which public data would give us the best speech foundation.
speech pre-training. we first train the model for text-to-speech over 75,000 updates, using only emilia’s english subset, which contains roughly 40,000 hours of speech. we use a warmup–stable–decay learning rate schedule with a peak of 1e-4 and a global batch size of 96.
multilingual and voice adaptation. for the next 30,000 updates, we introduce indian-language speech from indicvoices, indicvoices-r, and rasa. indicvoices has 7,348 published hours. indicvoices-r provides 1,704 hours drawn from indicvoices and prepared specifically for tts, while rasa contributes another roughly 1,145 hours.
speaker adaptation and description following. we use the remaining quality proprietary audio to introduce natural-language control over style, accent, and pace; alternative categorical-affect control; and temporally localized non-verbal events. the supervision is applied through supervised fine-tuning and is interleaved with multilingual, named-voice, and ordinary text-conditioned speech replay to limit interference with pronunciation and speaker identity.
so the gist is that we first train the text base to predict english audio tokens, and progressively shift to multilingual data followed by clean and rich speaker's data, and finally add description following.

the training objective is standard next token prediction for speech tokens using cross entropy loss, just like it is the case for a decoder only transformer.
given textual context x and flattened acoustic sequence y, the model factorizes the conditional likelihood as :

let m_i ∈ {0, 1} select valid acoustic targets after prefix and padding masks are applied. the autoregressive objective is :

only acoustic positions contribute to the loss; textual and conditioning tokens are observed context rather than reconstruction targets. for binary frame-boundary target s_t and predicted termination probability ŝ_t, the complete supervised objective is :

the transformer and termination head are optimized jointly, while the mimi encoder and decoder remain fixed throughout training.


hmm; not bad (manageable; maybe?)
but no the story doesn't end here; what if i wanna do mid sentence switching ? can we add different ASR judges per language ? can we add inline emotion tags too please ?

but but but how do you select the domains for the prompts ? (tongue twisters ? financial data ? telephony ? casual convos ?)
what about infra? handling training-inference mismatch? hyperprams? LR tuning? LoRA or full weight updates? optimizer sync to the rollout engine? phased GRPO with SFT update or only GRPO? and probably infinite many other things.
our reaction :

jokes aside; for post training we use GRPO to optimize for different rewards; this naturally fits the transformer regime for enhancing or redistributing probability masses in the distribution of decoder only models for our specific targets; the base being a transformer predicting discretized audio tokens (mimi) fits this naturally.
on GRPO or rather what it becomes based on our algorithmic choices:

we do not use any value network; the base generates the groups; so the simple pipeline is basically take a prompt, roll out G completions, and judge each against its siblings as per the rewards.
for a simple starting recipe, we use word error rate (wer), character error rate (cer) and a length penalty term.
word error rate. according to wikipedia, we use the standard wer definition.


length penalty. CER and WER are computed on a transcript, and a transcript has no duration. we define penalty as follows :
t_gen is how long the generated audio actually is, and t_exp is how long the text should take to say, which for the hand built sets is the character count divided by a per language characters per second rate:

so the penalty terms comes out to be :

calculating advantages (A), mean and variance follow the standard recipe :

the full objective with the PPO ratio and KL anchor is :






we find sets (by domains) where the base underperforms and synthetically generate more targeted sets for RL.
note that the our focus has been on improving consistency and speaker preservation for the released models, hence the RL prompt sets are targeted by domains (hard prompts, digits, financial data, conversational data etc.) and language distribution. we'll soon be releasing upgraded checkpoints where we've made emotion descriptions consistent across the model (to let you in on a secret, phased grpo rollouts with dpo updates work!).





with the individual scores collected from the sections above:

note that for building the softmax distribution over the rollouts we only build it over the audio tokens and drop the text tokens, although the model was pre-trained with an up projection over the entire vocabulary.


character error rate measured on selected languages against proprietary models.

go and play with the model weights on huggingface. and let us know what you think. we will very soon be following up with a detailed technical report and our training code (yes you heard that right!) as we want this to be truly open source. also stay tuned for updates on more post training for decoder only transformer models. happy hacking!
reach out to us at research@rumik.ai for more consulting about data, training recipes, or if you're building/experimenting on top of rumik-oss, we'd love to chat!
