/ Модель

Характеристики

Контекст
131 072 токена
Параметры
3,3 млрд
Размер весов
6,6 ГБ
Лицензия
Apache 2.0
Архитектура
llama · dense
Базовая модель
orpheus-3b-0.1-pretrained
Библиотека
transformers
Опубликована
11 июн 2026

orpheus-3b-turkish-tts-v2

Генерация текстаТекст → текст3 профессии

Дообученная на турецких записях модель Orpheus-3B синтезирует турецкую речь из текста с помощью аудиотокенов SNAC.

89скачиваний за 30 дней2лайкавеса обновлены11 июн 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

AbDhumal выпустил дообученную модель Orpheus-3B Turkish TTS v2 для синтеза турецкой речи. Это плотная причинная языковая модель на архитектуре Llama с 3,3 млрд параметров, дообученная с помощью LoRA на 20 000 турецких аудиозаписей с расшифровками. Модель преобразует текст и управляющие токены в последовательность аудиотокенов SNAC, из которых декодируется речь с частотой 24 кГц.

Модель предназначена прежде всего для турецких объявлений в стиле авиакомпаний; её также можно применять для озвучивания коротких фраз, инструкций и сообщений на турецком языке. В описанном тесте дообученная версия показала более низкие WER и CER, чем англоязычная базовая модель на турецких фразах, при близком времени генерации. Репозиторий содержит полные веса после слияния адаптера, а не только LoRA-адаптер. Лицензия — Apache-2.0.

Сценарии применения

  • озвучивание объявлений для авиапассажиров на турецком языке
  • синтез турецких голосовых инструкций и указаний
  • озвучивание коротких информационных сообщений на турецком языке
  • создание турецких аудиоверсий новостных вступлений
  • генерация речи для простых вопросов и бытовых фраз на турецком языке

Ограничения

Модель обучена на турецком языке и ориентирована на короткие фразы и объявления; результаты для других языков и более широких сценариев не описаны. В приведённом тесте показатели WER и CER на некоторых фразах оставались заметными.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Orpheus-3B Turkish TTS (v2)

Fine-tuned unsloth/orpheus-3b-0.1-pretrained for Turkish text-to-speech using LoRA on a SNAC 24 kHz audio-token vocabulary. Trained on Red Hat OpenShift AI with Kubeflow Trainer v2 (TrainJob) · RHOAIENG-62326.

Use case: airline-style Turkish announcements where general-purpose TTS lacks Turkish phonology.

Base modelunsloth/orpheus-3b-0.1-pretrained (Llama-3 backbone + SNAC codec tokens)
Fine-tuningLoRA r=32, α=64 on attention + MLP projections
Training dataafkfatih/turkish-tts-combined-raw — 20,000 samples
Merged weightsLoRA from checkpoint-8800 (best eval_loss)
Audio codechubertsiuzdak/snac_24khz @ 24 kHz

Model hierarchy & specs

unsloth/orpheus-3b-0.1-pretrained     # English-biased Orpheus base (frozen)
        └── LoRA adapters (r=32, α=64)  # ~185M trainable params
                └── merged → this repo  # full weights, Turkish TTS
ArchitectureLlama-3 3B causal LM + SNAC audio token head
Parameters~3B total; ~185M trainable during LoRA fine-tune
Vocab128,256 text + SNAC codec tokens from offset 128,266
AudioSNAC 24 kHz · 7 tokens/frame · 3 codebooks
Precisionbfloat16 + Flash Attention 2
LoRAr=32, α=64, dropout 0.05
Target modulesq/k/v/o_proj, gate/up/down_proj

Orpheus frames TTS as causal LM over SNAC audio tokens: Turkish text → control tokens → autoregressive codec tokens → 24 kHz waveform.

Dataset specs

Sourceafkfatih/turkish-tts-combined-raw
Samples used20,000 (of ~81k available)
FormatWAV + Turkish transcript
PreprocessingResample 24 kHz mono → SNAC encode → token sequence
Seq lengthmax 4,096 tokens
Split95% train / 5% eval (from preprocessed pool)
Platform2× NVIDIA A100 80GB DDP · Kubeflow TrainJob · 8 epochs · 9,504 steps

Training stack

LayerComponentVersion / notes
PlatformRed Hat OpenShift AIManaged MLflow, GPU queues (Kueue)
OrchestrationKubeflow Trainer v2 TrainJobtorch-distributed-cuda130-torch210-py312 runtime
Distributedtorchrun DDP2 nodes × 1× NVIDIA A100 80GB
FrameworkPyTorch 2.10 · Transformers · PEFTbfloat16 + Flash Attention 2
CodecSNAC 24 kHz7 tokens/frame · 3 codebooks
ASR (eval)OpenAI Whisper-smallWER/CER via jiwer
TrackingMLflowMetrics, audio artifacts, traces
StoragePVC orpheus-tts-storageCheckpoints, preprocessed shards, eval WAVs

How this model was trained

End-to-end pipeline (reproducible from GitHub manifests):

StepWhatConfig / script
1Preprocess — resample 24 kHz, SNAC-encode, build token sequencestrain_orpheus.py · PREPROCESS_SAMPLES=20000
2Train — LoRA fine-tune with audio-only loss maskingmanifests/trainjob-orpheus.yaml · scripts/train_orpheus.py
3Monitor — eval_loss every 200 steps; audio+WER every 400 stepsMLflow experiment orpheus-turkish-tts
4Checkpoint — save every 800 steps (save_total_limit=3)Best eval_loss @ step 8,800
5Merge — LoRA → full weightsscripts/save_final_orpheus.py → final/
6Evaluate — 10-sentence benchmark + curated HF uploadmanifests/trainjob-orpheus-eval.yaml · scripts/evaluate_orpheus.py

Hyperparameters (v2 run)

ParameterValue
LoRA rank / alpha / dropout32 / 64 / 0.05
Target modulesq_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
Learning rate2e-5
Epochs8
Global steps9,504
Per-device batch2
Grad accumulation4
Effective batch2 nodes × 2 GPU × 4 accum = 16
Max sequence length4,096
Warmup ratio0.1
Precisionbfloat16 + Flash Attention 2
EVAL_STEPS200
AUDIO_LOG_STEPS400
SAVE_STEPS800

Training approach

TTS is next-token prediction on interleaved text + SNAC audio tokens. Only audio tokens contribute to loss.

1. Prompt format — Orpheus control tokens wrap Turkish text:

ids = tokenizer.encode(text, add_special_tokens=False) + [TOK_EOT]
prompt = [TOK_SOH] + ids + [TOK_EOH, TOK_SOA, TOK_SOS]
# model autoregressively predicts SNAC tokens until TOK_EOA

2. Audio-only loss masking — prompt positions excluded from cross-entropy:

sos_idx = input_ids.index(TOK_SOS)
labels = [-100] * (sos_idx + 1) + input_ids[sos_idx + 1:]

3. LoRA on frozen backbone:

lora_cfg = LoraConfig(
    task_type=TaskType.CAUSAL_LM, r=32, lora_alpha=64, lora_dropout=0.05,
    target_modules=["q_proj","k_proj","v_proj","o_proj",
                    "gate_proj","up_proj","down_proj"],
)
model = get_peft_model(model, lora_cfg)

4. Distributed TrainJob — env-driven config from trainjob-orpheus.yaml:

# manifests/trainjob-orpheus.yaml (excerpt)
runtimeRef: torch-distributed-cuda130-torch210-py312
numNodes: 2
numProcPerNode: gpu
LEARNING_RATE: "2e-5"
NUM_EPOCHS: "8"
MAX_TRAIN_SAMPLES: "20000"
BATCH_SIZE: "2"
GRAD_ACCUM: "4"
LORA_R: "32"
LORA_ALPHA: "64"

MLflow tracking

LoggedDetail
Metricstrain/loss, eval/loss, wer/*, cer/*, rtf/* per step
ArtifactsStep audio WAVs + spectrograms (4 airline prompts during training)
Tracesorpheus_tts_pipeline → tokenise → model_generate → snac_decode
Train run6804b44335f347849f26da2736aa73df
Eval-v4 run50c177d696164b4a83169292b2109b4e

Results & MLflow

Post-train benchmark (eval-v4): pretrained base vs merged final/ · Whisper-small · temp=0.3, top_p=0.9, rep_penalty=1.15 · finetuned uses length-scaled min_new_tokens; baseline capped at max_new_tokens=400 (English pretrained rarely emits end-of-audio on Turkish).

MetricBaselineFinetunedΔ
WER mean1.5760.723−0.854
CER mean1.2240.410−0.814
RTF mean2.12.2+0.1
eval_loss (training)9.50 →4.35@ step 8,800

MLflow: orpheus-turkish-tts · train 6804b44335f347849f26da2736aa73df · eval-v4 50c177d696164b4a83169292b2109b4e

Baseline comparison: Audio labeled B is unsloth/orpheus-3b-0.1-pretrained (English-pretrained) given the same Turkish text and generation settings. F is this checkpoint. Baseline WER/CER vs Turkish references are included for completeness — listen to the pairs below for perceptual comparison.

MLflow UI (training run)

Traces — per-inference span breakdown (tokenise → model_generate → snac_decode) with RTF and duration:

Artifacts — step-indexed WAV + spectrograms browsable in the MLflow UI (example: flight_announce @ step 8800):

Exported metric charts

ChartDescription
ui_traces_pipelineMLflow Traces — pipeline spans + RTF
ui_artifacts_audioMLflow Artifacts — in-train audio browser
dashboardTraining loss + in-train WER/CER + eval summary
eval_wer_cer_barsPer-sentence WER/CER
training_losstrain/eval loss curve

Per-sentence benchmark (eval/eval_results.json) — eval-v4:

PhraseB-WERF-WERB-CERF-CERΔ CER
news_intro1.750.381.490.15+1.34
directions2.000.501.560.22+1.33
flight_announce1.430.290.880.19+0.69
farewell1.000.600.780.29+0.49
welcome3.330.672.790.13+2.67
weather1.000.860.890.28+0.62
tech1.000.670.900.43+0.47
emergency1.000.860.830.61+0.22
question2.250.751.240.51+0.73
safety————excluded (ΔCER < 0)

Audio samples

9 curated phrases (ΔCER ≥ 5pp, finetuned CER ≤ 0.85, duration ≥ 1.5s). Excluded: safety only. B = baseline (unsloth/orpheus-3b-0.1-pretrained, English-only) · F = finetuned. Baseline clips use capped generation (max_new_tokens=400) because the pretrained model rarely emits end-of-audio on OOD Turkish and would otherwise ramble for 10–15s of unrelated speech.

Welcome — istanbul'a hoş geldiniz. · F-CER 0.13

B

F

Flight — sayın yolcularımız, uçuşumuz yaklaşık iki saat sürecektir. · F-CER 0.19

B

F

Directions — düz gidin, sonra sağa dönün ve köprüyü geçin. · F-CER 0.22

B

F

News intro — ana haberlere geçmeden önce önemli bir duyurumuz var. · F-CER 0.15

B

F

Farewell — teşekkür ederiz, iyi yolculuklar dileriz. · F-CER 0.29

B

F

Weather — bugün istanbul'da hava bulutlu ve serin olacak. · F-CER 0.28

B

F

Question — yarın toplantıya katılabilir misiniz? · F-CER 0.51

B

F

Tech — yapay zeka teknolojisi her geçen gün gelişmeye devam ediyor. · F-CER 0.43

B

F

Emergency — acil durum! lütfen binayı derhal tahliye edin. · F-CER 0.61

B

F

Quick Start

pip install torch transformers peft soundfile librosa snac
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from snac import SNAC

MODEL = "AbDhumal/orpheus-3b-turkish-tts-v2"
V = 128_256
TOK_SOH, TOK_EOH, TOK_SOA, TOK_SOS, TOK_EOA, TOK_EOT = V+3, V+4, V+5, V+1, V+6, V+9

tokenizer = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForCausalLM.from_pretrained(MODEL, torch_dtype=torch.bfloat16).eval().cuda()
snac = SNAC.from_pretrained("hubertsiuzdak/snac_24khz").eval().cuda()

text = "istanbul'a hoş geldiniz."
ids = tokenizer.encode(text, add_special_tokens=False) + [TOK_EOT]
prompt = [TOK_SOH] + ids + [TOK_EOH, TOK_SOA, TOK_SOS]
min_new = max(80, len(text) * 7)  # match evaluate_orpheus.py
out = model.generate(torch.tensor([prompt]).cuda(), max_new_tokens=1500, min_new_tokens=min_new,
    do_sample=True, temperature=0.3, top_p=0.9, repetition_penalty=1.15, eos_token_id=TOK_EOA)
# SNAC decode → 24 kHz WAV (see scripts/evaluate_orpheus.py)

Reproduction

git clone https://github.com/abhijeet-dhumal/oai-tts-finetuning.git
cd oai-tts-finetuning/orpheus-tts

# ConfigMap (scripts) + PVC
oc kustomize . | oc apply -f - -n <namespace>

# Train (v2 hyperparameters)
oc apply -f manifests/trainjob-orpheus.yaml

# After training — merge best LoRA checkpoint
python scripts/save_final_orpheus.py   # or run on cluster PVC

# Post-train eval
oc apply -f manifests/trainjob-orpheus-eval.yaml
FilePurpose
manifests/trainjob-orpheus.yaml2-node TrainJob — all hyperparameters as env vars
manifests/trainjob-orpheus-eval.yamlPost-train WER/CER + audio benchmark
manifests/job-hf-upload.yamlHF publish (UPLOAD_MODE=eval|full|readme)
scripts/train_orpheus.pyPreprocess + LoRA training loop
scripts/evaluate_orpheus.pyEval harness (Whisper WER/CER, SNAC decode)
scripts/save_final_orpheus.pyMerge LoRA → final/ weights
scripts/stage_hf_samples.pyCurated HF audio staging (quality gates)
kustomization.yamlPVC + orpheus-tts-scripts ConfigMap
ArtifactLink
Eval metricseval/eval_results.json
Curated audio indexeval/samples_manifest.json
MLflow exportseval/mlflow/

Limitations: PoC · English base cannot speak Turkish · Whisper metrics noisy · Not production-certified.

License: unsloth/orpheus-3b-0.1-pretrained

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
582ed42

0 моделей