/ Модель

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

Лицензия
Apache 2.0
Базовая модель
Fun-CosyVoice3-0.5B-2512
Опубликована
9 сен 2026

nepali-call-center-cosyvoice-experimental

Синтез речиТекст → аудио3 профессии

Экспериментальная дообученная CosyVoice 3 озвучивает короткие непальские реплики, в том числе в стиле оператора колл-центра, используя заданный при запуске аудиопример для тембра голоса.

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

Бенчмарки

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

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

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

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

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

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

Экспериментальная модель синтеза речи на непальском языке, созданная автором репозитория elitexp путём дообучения FunAudioLLM/Fun-CosyVoice3-0.5B-2512. Она предназначена для озвучивания непальского текста с произношением и просодией в стиле оператора колл-центра. Архитектура CosyVoice 3 включает LLM, Flow и вокодер HiFT; изменён только файл LLM, а Flow и вокодер сохранены без изменений и работают на частоте 24 кГц. Репозиторий содержит форматы ONNX и safetensors.

Тембр задаётся аудиоклипом-примером, который подаётся при запуске: сама дообученная модель не задаёт отдельный голос. Для коротких реплик измеренная частота ошибок символов при проверке через телефонный кодек G.711 8 кГц составила 0,294; автор отмечает, что это соответствует измерительному пределу теста. Модель также меняет темп и диапазон высоты голоса в сторону более brisk и выразительной подачи.

Модель экспериментальная и не проверена для производственного применения. Структура пауз освоена слабо: речь может звучать торопливо и недостаточно разбиваться пунктуацией. Перед синтезом рекомендуется заменять знак danda точкой, удалять ZWJ/ZWNJ, записывать последовательности цифр словами и делить длинный текст на короткие фразы. Лицензия указана как Apache-2.0, унаследованная от базовых весов.

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

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

Ограничения

Модель экспериментальная и не валидирована для промышленного применения; она слабо расставляет паузы, поэтому длинный текст может звучать торопливо и слитно. Для корректного чтения непальского текста требуется нормализация символов и чисел, а тембр зависит от предоставленного аудиоклипа.

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

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

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

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

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

Открыть на Hugging Face

Nepali Call Centre Tone — Experimental

A fine-tune of FunAudioLLM/Fun-CosyVoice3-0.5B-2512.

Experimental. Published to share a working Nepali adaptation and an honest record of what did and did not transfer. Pronunciation is solid; the call-centre register is partial — see What it is good at, and what it is not. Not validated for production use.

The base model covers nine languages; Nepali is not one of them, and the released weights read Nepali text poorly. This fine-tune trains the LLM on Nepali speech so that it does.

Only llm.pt differs from the base. Flow and the HiFT vocoder are unchanged and frozen at 24 kHz — which means voice timbre comes from the prompt clip you supply at inference, not from these weights. This is a language and prosody fine-tune, not a voice.

Quick start

A one-file generator is included:

git clone https://github.com/FunAudioLLM/CosyVoice.git
pip install -r CosyVoice/requirements.txt

./generate.py --prompt samples/prompt.wav \
              --text "नमस्कार, हाम्रो सेवामा हजुरलाई स्वागत छ।" \
              --out output.wav          # or output.mp3

samples/prompt.wav can be as short as an 8.5 s reference clip. Swap in any 5-10 s recording of a different voice and the output follows that voice instead — the weights carry the language, not the speaker.

generate.py defaults to the call-centre style tag — the register this checkpoint was fine-tuned for. Pass --neutral for the plain tag, or --instruct "...<|endofprompt|>" for your own.

It also normalises the text (see below), reads long digit runs out digit-by-digit, and synthesises sentence by sentence. Those are not conveniences; skipping them produces audibly wrong output with no error.

First run downloads ~48 MB of text-frontend resources from ModelScope, so it needs network once.

Usage

Load it exactly like the base model:

from cosyvoice.cli.cosyvoice import CosyVoice3

cv = CosyVoice3("path/to/this/repo")

# The style tag is the only channel register has into the model. This
# checkpoint was fine-tuned with the call-centre tag on ~4,700 utterances;
# the neutral tag ("You are a helpful assistant.<|endofprompt|>") leaves most
# of that unused.
instruct = ("You are a helpful assistant. Speak like a friendly Nepali "
            "call-centre agent: warm, brisk, natural phrasing.<|endofprompt|>")
text     = "नमस्कार, हजुरलाई कसरी सहयोग गर्न सक्छु?"

for out in cv.inference_instruct2(text, instruct, "your_prompt.wav",
                                  stream=False, text_frontend=False):
    audio = out["tts_speech"]      # 24 kHz mono

your_prompt.wav is a few seconds of the voice you want. Anything from ~5–10 s of clean speech works.

Normalise your text first

Two rules, both learned the hard way:

  • Map danda to a period. Training text contains no । at all, so an untouched danda reaches the tokenizer as a byte sequence the model has never seen and gets voiced — it comes out as a spoken "s", not a pause.
  • Strip ZWJ/ZWNJ (U+200D, U+200C). Same reason. पुर्‍याउन typed with the joiner matches nothing; the corpus only ever contains पुर्याउन.
def normalize(s):
    for a, b in (("॥", "."), ("।", ".")):
        s = s.replace(a, b)
    return s.replace("‍", "").replace("‌", "")

Spell digit runs out in words too — phone numbers and amounts are otherwise read as one enormous cardinal.

Keep utterances short

Trained on clips averaging ~3.5 s. Hand it a long paragraph and it produces a rushed run-on. Split on sentence boundaries and synthesise piece by piece.

Style tags

tagwhen
`You are a helpful assistant. Speak like a friendly Nepali call-centre agent: warm, brisk, natural phrasing.<endofprompt
`You are a helpful assistant.<endofprompt

The tag must end in <|endofprompt|>. Timbre is unaffected by it — that comes from the prompt clip. What the tag moves is rate, pitch range and phrasing.

What it is good at, and what it is not

Good: Nepali pronunciation. Measured character error rate of 0.294 when generated speech is transcribed back through a telephony codec — against a 0.307 floor measured by putting human speech through the same pipeline. It is at the measurement floor, not merely close to it.

Limited: prosody control. The model was also trained toward a warm call-centre register via an instruct tag. Speaking rate and pitch variation moved usefully (+16% rate, F0 spread 2.73 semitones against a 2.92 reference), but breath-pause structure did not — the training clips were single short sentences with almost no internal pauses, so the model never learned to place them. Expect brisk, expressive, under-punctuated speech.

Evaluation

metricthis modelreference
CER through G.711 8 kHz0.2940.307 (human speech, same ASR)
speaking rate, tag on vs off+16%—
F0 spread2.73 st2.92 st (target)
pause densitydid not transfer0.343 /s (target)

Provenance

Exactly one file differs from the base model: llm.pt. flow.pt, hift.pt, the ONNX front end and cosyvoice3.yaml are byte-identical to FunAudioLLM/Fun-CosyVoice3-0.5B-2512. Only the LLM is trained in this pipeline.

Checkpoint: stageV:epoch_4_whole — epoch 4 of a 5-epoch run. Note that epoch 4 was not that run's validation minimum (epoch 2 was); it was chosen as the most strongly adapted checkpoint.

Training data: Nepali ASR corpora, plus call-centre style speech from several sources, both recorded and synthetic. The apache-2.0 tag is inherited from the base weights.

No prompt or reference clips are included. Timbre comes entirely from the clip you supply, and the clips used in development are recordings of identifiable people.

Citation

Base model:

@article{cosyvoice3,
  title={CosyVoice 3: Towards In-the-wild Speech Generation via Scaling-up and Post-training},
  journal={arXiv preprint arXiv:2505.17589},
  year={2025}
}

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

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

GPU в ailist

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

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

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
3ef5c7e

0 моделей