/ Модель

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

Лицензия
CC BY-SA 4.0
Библиотека
onnx
Опубликована
7 окт 2026

mozhi-chevi

Классификация аудиоАудио → label

Mozhi Chevi — компактная ONNX-модель для определения характеристик подачи, оценки качества и создания описаний речи на малаяламском языке.

0скачиваний за 30 дней0лайковвеса обновлены7 окт 2026

Бенчмарки

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

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

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

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

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

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

Mozhi Chevi — компактная модель для анализа звучания речи на малаяламском языке, разработанная автором репозитория. Она принимает аудио с частотой 16 кГц и предсказывает характеристики подачи: голосовой диапазон и гендерную метку, темп, выразительность, качество записи и эмоцию. Модель также формирует текстовое описание в стиле подписей обучающего набора, оценивает акустические показатели без чистого эталона и выдаёт 128-мерный вектор стиля для поиска похожих по подаче фрагментов.

Архитектура включает фиксированный log-mel спектрограф, дилатированный TDNN с остаточными блоками, пулинг по среднему и стандартному отклонению, а также классификационные и регрессионную головы. Модель содержит 0,30 млн параметров и опубликована в формате ONNX; для трёхсекундного аудио заявлено около 5 мс на одном потоке CPU. Она обучена на 26,2 часах размеченной речи 124 говорящих из набора Mozhi Malayalam Speech.

Chevi подходит для описания записей, фильтрации аудиоданных, сравнения вариантов синтеза речи без эталонной записи и поиска сходной манеры произношения. По оценке на тестовой выборке качество заметно различается между задачами; например, точность определения темпа составила 45,1%. Результаты для невиданных при обучении голосов также неоднородны: определение высоты тона не обобщилось на эту выборку. Модель ориентирована на читаемую речь на малаяламском при 16 кГц; оценки качества являются относительными, а эмоции и другие метки наследуют ошибки автоматической разметки набора. Лицензия — CC BY-SA 4.0.

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

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

Ограничения

Модель обучена на читаемой речи на малаяламском при 16 кГц; другие языки, пение и громкая музыка находятся вне обучающего распределения. Оценки качества относительные, эмоции зависят от шумной автоматической разметки, а определение высоты тона плохо обобщилось на проверенных невиданных говорящих.

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

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

Открыть на Hugging Face

ചെവി Mozhi Chevi

Mozhi Chevi

Chevi (ചെവി) means ear. This is a single 1.94 MB ONNX model that listens to Malayalam speech and tells you how it is spoken:

  • style tags: gender, pitch, speaking rate, expressiveness, recording quality, emotion
  • a caption built from those tags, in the same style as the dataset's prompt-TTS captions
  • measurements: Median F0, F0 variability, Syllables / s, PESQ, STOI, SI-SDR, where PESQ / STOI / SI-SDR are estimated without a clean reference
  • a 128-d style embedding: clips with similar delivery land close together

It takes raw 16 kHz audio (the spectrogram is part of the graph), runs in about 5 ms for 3 s of audio on one CPU thread, and was trained on a CPU in 26 minutes.

Take Demo here - https://huggingface.co/spaces/nuhmanpk/mozhi-chevi-demo

What it hears

ClipChevi saysDataset annotation
imasc_f6a35ad0109541A male speaker with a very high-pitch voice reads in a calm, neutral tone, speaking slightly slowly. The delivery is monotone, and the recording is clean.In a calm, neutral tone, a male speaker with a very high-pitch voice reads slightly slowly, sounding slightly expressive and animated. Recording quality: slightly noisy.
imasc_7ff8c733a85d3fA female speaker with a very high-pitch voice reads in a calm, neutral tone, speaking fast. The delivery is very expressive and animated, and the recording is noisy.A female speaker with a very high-pitch voice reads in a cheerful tone, speaking fast. The delivery is expressive and animated, and the recording is slightly clean.
imasc_f800c369e0dd73A male speaker with a high-pitch voice reads in a calm, neutral tone, speaking at a moderate speed. The delivery is monotone, and the recording is very clean.In a calm, neutral tone, a male speaker with a high-pitch voice reads at a moderate speed, sounding very monotone. Recording quality: slightly noisy.
imasc_7a36e882ea1d32A male speaker with a slightly high-pitch voice reads in a calm, neutral tone, speaking at a moderate speed. The delivery is monotone, and the recording is clean.A male speaker speaks slightly fast in a calm, neutral tone. His slightly high-pitch voice sounds monotone; the recording is clean.

Results

Test split of nuhmanpk/mozhi-malayalam-speech, 767 clips. Two baselines keep this honest: overall majority always answers the most common label, and per-voice majority knows who is speaking and answers that speaker's usual label. Beating the per-voice baseline means the model hears the clip, not just the voice.

TagAccuracyMacro F1Within one stepPer-voice majorityOverall majority
Gender100.0%1.000-100.0%49.0%
Pitch100.0%1.000100.0%100.0%67.9%
Speaking rate45.1%0.44183.2%29.9%14.1%
Expressiveness39.4%0.38778.1%25.6%19.0%
Recording quality34.8%0.34669.9%31.3%13.3%
Emotion73.0%0.472-69.2%65.0%
MeasurementMAEPearson rr within a voiceMAE, per-voice meanMAE, overall mean
Median F06.452 Hz0.9930.49511.12658.639
F0 variability3.480 Hz0.8670.4484.5399.198
Syllables / s0.266 syl/s0.8950.6140.4420.605
PESQ0.1780.8180.4090.1970.345
STOI0.0040.8660.1930.0050.010
SI-SDR2.040 dB0.6930.3672.4823.239

Tags

Measures

Voices it has never heard

A second copy was trained with 3 voices removed (mlf_04310, mlm_03993, WnrwjCDN1PgNuCK4IrstUpDLJB93) and tested on 172 of their clips. This is the number that matters for new speakers or TTS output.

Accuracy (unseen voices)Overall majority
Gender97.7%32.6%
Pitch0.0%0.0%
Speaking rate81.4%32.6%
Expressiveness30.2%27.3%
Recording quality55.8%55.8%
Emotion44.8%65.1%
MAE (unseen voices)Pearson rMAE, overall mean
Median F012.5390.95252.548
F0 variability7.0990.86522.645
Syllables / s0.5790.9251.539
PESQ0.3080.5190.722
STOI0.0140.5770.015
SI-SDR2.9540.5373.138

Confusion

Embedding

Use it

Everything needed to read the outputs (label lists, units, caption template) is stored inside the .onnx file as metadata under the key mozhi_chevi.

Python

import json, numpy as np, onnxruntime as ort, soundfile as sf, librosa
from huggingface_hub import hf_hub_download

sess = ort.InferenceSession(hf_hub_download("nuhmanpk/mozhi-chevi", "mozhi_chevi.onnx"))
spec = json.loads(sess.get_modelmeta().custom_metadata_map["mozhi_chevi"])

audio, sr = sf.read("clip.wav", dtype="float32", always_2d=True)
audio = librosa.resample(audio.mean(1), orig_sr=sr, target_sr=16000)
out = dict(zip([o.name for o in sess.get_outputs()], sess.run(None, {"audio": audio[None]})))

tags = {k: v[int(out[k][0].argmax())] for k, v in spec["tags"].items()}
measures = {k: float(out[k][0]) for k in spec["measures"]}
print(tags)
print(measures)   # f0_median Hz, syl_per_sec, pesq, stoi, si_sdr dB ...

Browser (onnxruntime-web), live from a microphone or a file

import * as ort from "onnxruntime-web";
const s = await ort.InferenceSession.create("https://huggingface.co/nuhmanpk/mozhi-chevi/resolve/main/mozhi_chevi.onnx");
// samples: Float32Array, mono 16 kHz (decode + resample with an OfflineAudioContext)
const out = await s.run({ audio: new ort.Tensor("float32", samples, [1, samples.length]) });
const argmax = a => a.indexOf(Math.max(...a));
const TAGS = {"gender": ["male", "female", "unknown"], "pitch": ["very low-pitch", "low-pitch", "slightly low-pitch", "slightly high-pitch", "moderate pitch", "high-pitch", "very high-pitch"], "speaking_rate": ["very slowly", "slowly", "slightly slowly", "at a moderate speed", "slightly fast", "fast", "very fast"], "expressiveness": ["very monotone", "monotone", "slightly expressive and animated", "expressive and animated", "very expressive and animated"], "recording_quality": ["very noisy", "noisy", "slightly noisy", "balanced in clarity", "slightly clean", "clean", "very clean"], "emotion_label": ["neutral", "happy", "sad", "disgusted", "surprised", "angry"]};
const tags = Object.fromEntries(Object.entries(TAGS).map(([k, v]) => [k, v[argmax([...out[k].data])]]));
const pesq = out.pesq?.data[0], rate = out.syl_per_sec?.data[0];

Ideas

  • Judge a TTS model without references. Run Chevi on synthesised speech: estimated PESQ/STOI/SI-SDR, pace and pitch tell you whether a checkpoint got better, and whether the speed control really changes syllables per second.
  • Caption new recordings for prompt-based TTS training, in the same vocabulary as this dataset.
  • Filter data: drop clips Chevi rates as noisy or low-PESQ before training anything.
  • Live feedback in a browser page: a reading-practice meter that shows pace, pitch range and recording quality as someone speaks.
  • Search by delivery: nearest neighbours in the style embedding find clips spoken the same way.

How it was made

  • Data: 17444 train / 754 validation / 767 test clips (26.2 h, 124 speakers, sources imasc, openslr63, smc_msc), using the dataset's own splits. Training clips are capped per speaker.
  • Targets: the dataset's per-clip annotations. Tags rarer than 30 training clips are ignored; ordered tags (pitch, rate, expressiveness, quality) are sorted by their underlying measurement.
  • Model: fixed-DFT log-mel front end (80 bands) → dilated TDNN with residual blocks → mean+std pooling → 128-d style vector → one softmax per tag + one regression layer. 0.30 M parameters.
  • Training: CPU only (Intel(R) Xeon(R) CPU @ 2.20GHz, 2 threads), 20 epochs × 150 steps, batch 64, random 2 to 5 s crops, time masking, AdamW + one-cycle LR (0.003), class-balanced cross-entropy + Smooth-L1. Best epoch by validation: 20.
  • ONNX check: outputs match PyTorch to a relative difference of 3.43e-06.

Training

Limits

  • Chevi imitates the dataset's automatic annotations. Where those are noisy (emotion especially, which is mostly neutral), so is Chevi.
  • Quality numbers are estimates learned from studio read speech; treat them as relative scores, not lab-grade PESQ or STOI.
  • Tags such as pitch partly follow the speaker; the unseen-voice table above shows how far it carries to new voices.
  • Built for Malayalam read speech at 16 kHz. Other languages, singing, or heavy music will be outside what it has heard.

License and citation

Trained on nuhmanpk/mozhi-malayalam-speech (licenses in the training data: CC-BY-SA-4.0); this model follows the same terms. The IMaSC recordings come from:

@article{gopinath2022imasc,
  title   = {IMaSC -- ICFOSS Malayalam Speech Corpus},
  author  = {Gopinath, Deepa P and D K, Thennal and Nair, Vrinda V and K S, Swaraj and G, Sachin},
  journal = {arXiv preprint arXiv:2211.12796},
  year    = {2022}
}

Card generated 2026-10-07.

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

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

GPU в ailist

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

Нельзя запустить

В репозитории нет весов в формате PyTorch/safetensors.

Ревизия весов
43efdb8

0 моделей