/ Модель

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

Лицензия
Apache 2.0
Библиотека
neucodec
Опубликована
26 авг 2026

WideCodec

Обработка аудиоАудио → аудио

WideCodec — дообученный аудиокодек на базе NeuCodec для компактного кодирования и восстановления речи 44,1 кГц с битрейтом около 0,8 кбит/с.

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

Бенчмарки

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

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

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

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

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

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

WideCodec — аудиокодек с дообученным декодером на базе neuphonic/neucodec, опубликованный пользователем puterijessica. Модель кодирует и восстанавливает речь с частотой 44,1 кГц, используя один FSQ-кодбук и 50 токенов в секунду; заявленный битрейт составляет около 0,8 кбит/с. Для загрузки весов декодера требуется глубина decoder_depth=20.

Модель предназначена для компактного представления и восстановления широкополосной речи, в том числе в сценариях хранения, передачи и обработки аудио при ограниченном битрейте. В README приведены оценки на многоязычном наборе из 9 291 клипа и отдельном отложенном наборе; это результаты авторского офлайн-бенчмарка. Обучение включает этап дообучения на чистых записях с частотой не ниже 44,1 кГц, а кодбук описан как языконезависимый.

Вход и выход — аудио. Модель не является распознавателем речи или генератором текста: её основная задача — аудио-аудио кодирование/декодирование. Репозиторий распространяется по лицензии Apache-2.0. Результаты качества заявлены авторами и зависят от использованных данных и метрик; конкретные языки или гарантии качества для отдельных языков не перечислены.

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

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

Ограничения

README приводит авторские офлайн-бенчмарки; результаты не гарантируют такое же качество на любых аудиозаписях. Для корректной загрузки требуется decoder_depth=20.

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

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

Открыть на Hugging Face

WideCodec — 44.1 kHz decoder

A SOTA 0.8 kbps, 44.1 kHz audio tokenizer.

WideCodec is a 44.1 kHz decoder finetune of neuphonic/neucodec.

  • Sample rate: 44 100 Hz · hop: 882 · 50 tokens/sec

Inference (self-contained)

Everything needed to run inference is in this repo — the neucodec/ package and infer_widecodec.py. No other source code required.

pip install torch transformers huggingface_hub local-attention einops librosa soundfile
huggingface-cli login          # if this repo is private (or export HF_TOKEN=hf_...)

huggingface-cli download Scicom-intl/WideCodec --local-dir WideCodec
cd WideCodec
python infer_widecodec.py --input my.wav --out-dir out      # one file
python infer_widecodec.py --input folder/  --out-dir out    # a directory

Or load it directly in Python:

import sys; sys.path.insert(0, "WideCodec")   # the downloaded repo dir
import torch, librosa
from neucodec import NeuCodec

model = NeuCodec._from_pretrained(model_id="Scicom-intl/WideCodec", decoder_depth=20).eval().cuda()
wav16, _ = librosa.load("my.wav", sr=16000, mono=True)   # encoder ingests 16 kHz mono
x = torch.from_numpy(wav16).float().view(1, 1, -1).cuda()
with torch.no_grad():
    codes  = model.encode_code(x)      # frozen FSQ codes — 0.8 kbps, 50 tok/s
    wav44  = model.decode_code(codes)  # 44.1 kHz reconstruction

Files

filewhat
pytorch_model.bindecoder weights for inference (load with NeuCodec._from_pretrained(..., decoder_depth=20))
last.ckptfull PyTorch-Lightning checkpoint with optimizer states + LR schedulers for resuming training

How WideCodec compares (44 kHz-class, by bitrate)

Offline benchmark on a heavily multilingual 9,291-clip wideband set (50 clips × 188 clean ≥44.1 kHz datasets, 400+ language/dialect tags), faster-UTMOSv2 + spectral vs ground truth.

bitrate vs UTMOSv2

WideCodec release progression

codecnative SRtokens/scodebooks~bitrateUTMOSv2mel-L1 ↓HF≥11krolloff
ground truth————2.822—0.002448263
nvidia nemo44k44.1k~86RVQ (many)~6–9 kbps2.9030.3790.001968372
WideCodec (ours, 2026-08-16)44.1k501~0.8 kbps2.9190.5710.002239011
WideCodec (previous, 2026-07-21)44.1k501~0.8 kbps2.7880.5710.002239011
dac44.1k869~8 kbps2.6720.3410.001568185
snac44k44.1kmulti-scale3–4~2.6 kbps2.3400.4930.001588402
encodec48k48k150RVQ24 kbps2.0420.4580.001698800

Bitrate = frame-rate × Σ log₂(codebook size). WideCodec's FSQ is levels=[4]×8, num_quantizers=1 → 8·log₂4 = 16 bits/frame × 50 frames/s = 800 bps = 0.8 kbps (vs DAC's 9 codebooks × 10 bits × 86 fps ≈ 8 kbps).

The 2026-08-16 release reaches UTMOSv2 2.919 on the 9,291-clip set — above ground truth (2.822) and level with NVIDIA NeMo-44k (2.903), at ~1/10 of NeMo's bitrate. It gained +0.131 UTMOSv2 over the previous release at unchanged content accuracy: CV22 macro CER is 7.70% for both (micro 7.09%), well inside the measured run-to-run spread of ±0.25 pt.

Same architecture, same losses, same 50 tokens/s and single codebook — only the training corpus changed, to clean DNSMOS-gated ≥44.1 kHz audio. The gain is not an artifact of the benchmark pool: on a held-out set of 1,330 clips from 138 sources absent from training, it scores 2.807 vs the previous release's 2.654 (+0.153, paired t=+14.2), and reference-based PESQ-WB also improves (+0.017, t=+7.5) — so naturalness and fidelity moved together rather than trading off. Full report: evaluation/REPORT_44k_class_codecs.md.

Training stages / which revision to pull

This model is trained in two stages. main always points at the latest stage.

stagedatahow to load
Stage 1 — noisy mix (steps 0→1.58M, epoch=9-step=1580000)8 base corpora + scale44k (~6,500 h, mostly noisy crowdsourced/podcast)pin revision d2c612f4319c1c1e0c65a9431a7d6db1b7955ce0
Stage 2 — clean finetune (from 1.58M, clean ≥44.1 kHz only; in progress)TTS-Clean44k + Clean-Podcast + clean-teacher pool + EARS/Expressomain (default)
# the `neucodec/` package is bundled in this repo (see 'Inference (self-contained)')
from neucodec import NeuCodec

# Stage 1 (first-stage noisy training) — pin the exact revision:
model = NeuCodec._from_pretrained(
    model_id="Scicom-intl/WideCodec",
    decoder_depth=20,
    revision="d2c612f4319c1c1e0c65a9431a7d6db1b7955ce0",
)

Training data

Diverse, predominantly high-sample-rate human speech (no synthetic TTS). The scale-up group is SR-verified ≥ 44 kHz (probed before inclusion); the base corpora are long-form conversational, expressive and anechoic speech. Two groups:

Base corpora (Malaysia-AI + expressive/anechoic speech)

datasetcontent
malaysia-ai/malaysian-podcast-youtubeMalay long-form conversational podcasts (~2,234 h)
malaysia-ai/singaporean-podcast-youtubeSingaporean English podcasts (~1,255 h)
malaysia-ai/Multilingual-TTSCommonVoice-sidon multilingual short clips
malaysia-ai/malaysian-cartoons-youtube48 kHz cartoon dialogue (subset)
malaysia-ai/malaysian-movie-youtube48 kHz Malay movie dialogue
ylacombe/expresso48 kHz expressive read speech
nytopop/expresso-conversational48 kHz improvised dialogue
EARS48 kHz anechoic fullband (emotional / conversational / reading)

Scale-up: 336 verified ≥ 44 kHz datasets

To maximise acoustic diversity for the decoder (language-agnostic — the codebook is frozen), training is scaled with 336 additional datasets (162 at 48 kHz, 174 at 44.1 kHz), mirrored as <name>*audio.zip in malaysia-ai/Multilingual-TTS and SR-verified ≥ 44 kHz. Original sources:

Usage

See the canonical Load from Hugging Face section in the source repo. decoder_depth=20 is required — the weights are a depth-20 decoder, so loading with any other depth mismatches the architecture.

import soundfile as sf

# the `neucodec/` package is bundled in this repo (see 'Inference (self-contained)')
from neucodec import NeuCodec

# decoder_depth=20 MUST match this repo; pass token=... (or hf login) for access
model = NeuCodec._from_pretrained(model_id="Scicom-intl/WideCodec", decoder_depth=20)
model = model.eval().cuda()

# encode (16 kHz path, frozen) -> codes -> decode (44.1 kHz, this finetune)
codes = model.encode_code("input.wav")                   # [1, 1, T], identical to base NeuCodec
recon_44k = model.decode_code(codes).squeeze().cpu().numpy()
sf.write("recon.wav", recon_44k, model.sample_rate)      # 44100

The discrete codes are identical to base neuphonic/neucodec — only the reconstruction sample rate and fidelity differ.

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

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

GPU в ailist

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

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

Обработка «аудио → аудио» пока не поддерживается.

Ревизия весов
6b882c1

0 моделей