Spaces:
Running
Running
File size: 5,404 Bytes
f91199b 6272580 f91199b 6272580 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | ---
title: README
emoji: π£
colorFrom: indigo
colorTo: pink
sdk: static
pinned: false
---
# TinyAya β Turkish β Hindi Speech-to-Speech Translation
Can a **text-pretrained multilingual model** be taught to translate *speech to
speech* β for a language pair with almost no parallel speech data?
That is what this organization holds: a LoRA-adapted **Cohere2** backbone driving
a **frozen Moshi depth decoder** over **Mimi** audio codes, with a text
"inner-monologue" running alongside the audio stream. Everything is here β the
text corpus, the synthetic speech, the encoded tokens, the model, and every
training checkpoint.
## What v0.3 actually achieved
The full-corpus run covered **76,250 steps / 2.07 epochs** on a Cloud TPU v6e-16,
reaching a best validation composite of **2.8199** at step 76,000. Read honestly,
capability arrived in a clear order β **language identity β text translation β
audio synthesis** β and the run bought the first two:
| what we measured (`@best`, 500 held-out rows, greedy) | hiβtr | trβhi |
|---|---|---|
| free-run **text** chrF++ β the inner-monologue | **25.7** | **25.1** |
| generated-audio **ASR-chrF++** | 3.7 | 9.6 |
| **ground-truth-audio ceiling** for the same pipeline | 92.1 | 86.6 |
| BLASER-2.0 QE (ASR-free speech semantics, 1β5) | 2.53 | 2.49 |
**The model learns the translation mapping; intelligible audio synthesis is the
frontier.** The gap between 3.7/9.6 and the 92/87 ceiling is not a broken
pipeline β that ceiling was measured through the same codec and ASR β it is the
frozen depth decoder. BLASER-2.0 sees more meaning in the generated speech than
a transcript recovers, which says the audio carries real signal that is simply
not yet intelligible.
We publish the number next to its ceiling every time. A low score with no ceiling
beside it is unreadable.
## Start here
| | |
|---|---|
| π§ **Model** | [`tr-hi-s2st-v0.3`](https://huggingface.co/tiny-aya-translate/tr-hi-s2st-v0.3) β ~89-checkpoint suite + playable audio |
| π **Full results** | [v0.3 evaluation report](https://github.com/tiny-aya-simultaneous-translation/model/blob/main/docs/v0.3-eval-report.md) |
| π **Training corpus** | [`tr-hi-mimi-encoded`](https://huggingface.co/datasets/tiny-aya-translate/tr-hi-mimi-encoded) |
| π» **Code** | [github.com/tiny-aya-simultaneous-translation](https://github.com/tiny-aya-simultaneous-translation) |
| βοΈ **Write-up** | [Adapting Moshi for Low-Resource Speech Translation](https://labscommunity.cohere.com/blog/2026/adapting-moshi-low-resource-speech-translation/) |
| π **Training run** | [W&B `xzcb60bl`](https://wandb.ai/cataluna84/tinyaya-stage2-tpu/runs/xzcb60bl) Β· [emergence report](https://wandb.ai/cataluna84/tinyaya-stage2-tpu/reports/TinyAya-v0.3-Emergence-and-Data-Efficiency--VmlldzoxNzU1OTU1NQ==) |
## How the data becomes the model
```
tr-hi-parallel-text text triples (en pivot -> tr / hi)
| TTS
tr-hi-parallel-speech-v2 synthetic speech + round-trip ASR quality signals
| Mimi encode
tr-hi-mimi-encoded 8 codebooks @ 12.5 Hz + word-level alignments
| Stage-2 training
tr-hi-s2st-v0.3 the released model
```
## Also in this organization
- **Model history** β [`v0.1`](https://huggingface.co/tiny-aya-translate/tr-hi-s2st-v0.1)
and [`v0.2`](https://huggingface.co/tiny-aya-translate/tr-hi-s2st-v0.2) are kept
as honest history, including the disclosed mistakes: v0.2 trained on the wrong
dataset via a launcher default, and both trained audio-only because a filename
check wrongly concluded the corpus had no text alignments. It ships 840,426 of
them.
- **Evaluation sets** β [`fleurs-tr-hi-mimi-encoded`](https://huggingface.co/datasets/tiny-aya-translate/fleurs-tr-hi-mimi-encoded)
(real human speech; **acoustic shift only** β its texts overlap training and it
must never be called held-out text),
[`lahaja-eval`](https://huggingface.co/datasets/tiny-aya-translate/lahaja-eval) (Hindi, dialect-labelled),
[`cv-tr-eval`](https://huggingface.co/datasets/tiny-aya-translate/cv-tr-eval) (Turkish).
- **Codec research** β [`dualcodec-hindi-25hz`](https://huggingface.co/tiny-aya-translate/dualcodec-hindi-25hz)
and [`dualcodec-turkish-25hz`](https://huggingface.co/tiny-aya-translate/dualcodec-turkish-25hz):
can a neural codec fine-tuned on a low-resource language beat the stock
multilingual one? Directly relevant, since codec quality is what caps v0.3.
## Caveats worth knowing before you use this
Training speech is **entirely synthetic TTS**, and the model is measurably
distribution-bound β on real human speech the text score collapses from ~25 to
~8 chrF++. Translation references are machine-translated, so they carry their own
ceiling. This is a **research artifact** for low-resource S2ST, not a production
translator.
## Licensing
Released **weights are CC-BY-NC-4.0** β non-commercial, inherited from
[`CohereLabs/tiny-aya-base`](https://huggingface.co/CohereLabs/tiny-aya-base).
The training and evaluation **code is Apache-2.0**. Moshi/Mimi components are
CC-BY-4.0. Corpus text derives from FLORES (**CC BY-SA 4.0 β share-alike
propagates**), OPUS-100 and TTS output; check each dataset card before
redistributing.
Compute for the v0.3 run was provided by **[Google's TPU Research Cloud (TRC)](https://sites.research.google/trc/)**.
|