Audio8-ASR-Infinite Speech Recognition Model: 12GB+ VRAM, File List

November 8, 2026

Audio8-ASR-Infinite Speech Recognition Model: 12GB+ VRAM, File List

Sample outputs are available on the model card.

At a Glance

Item Value
Repository Edge0/Audio8-ASR-Infinite
Published 2026-09-22
License apache-2.0
Formats safetensors
Source type Primary source (the publisher itself)

Values determined by this site’s code when the information was collected. Dates are JST.

Overview

Edge0 has released Audio8-ASR-Infinite, a native streaming speech recognition model designed for maximum responsiveness. This model is an Automatic Speech Recognition (ASR) model that converts audio input into text in real time, supporting bilingual Chinese and English.

Specifications

  • Architecture: Inherits Voxtral realtime audio architecture and DSM-style streaming
  • Audio tower: 32 layers, hidden 1280, 128 mel bins, sliding window 750 – Text decoder: 36 layers, hidden 2048, 16 query heads / 2 KV heads – Projector: max frame len 8 → projection size 10240, gelu
  • Output specification: Chinese and English text
  • Streaming settings:
  • Selectable audio clock: 80ms / 120ms / 160ms – Configurable transcription delay (target_delay_ms): 240ms to 560ms (varies by clock setting)
  • Recommended operating conditions (optimized points):
  • At 80ms clock: frame_len 4, target_delay_ms 240 / 320 / 480 / 560 – At 120ms clock: frame_len 6, target_delay_ms 240 / 480 – At 160ms clock: frame_len 8, target_delay_ms 320 / 480
  • License: Apache 2.0

Performance

Evaluation results at 480 ms Delay, 80ms frame length (Greedy decode, EOS suppressed) are as follows:

→ Scroll horizontally to see all columns

test set metric Audio8 ASR Infinite Voxtral-Mini-4B-Realtime-2602 nemotron-3.5-asr-streaming-0.6b
aishell1/test CER 1.750 16.795 12.927@560ms
aishell4/test CER 2.893 16.456 14.677@560ms
librispeech test.clean WER 3.042 2.210 3.353@560ms
librispeech test.other WER 6.808 5.552 7.140@560ms
average 3.623 10.253 (2 sets) 9.524

Audio8 ASR Infinite records significantly lower (better) CER (Character Error Rate) figures on aishell1/test and aishell4/test compared to the comparison models. On the other hand, for WER (Word Error Rate) on librispeech test.clean and test.other, it trails Voxtral-Mini-4B-Realtime-2602. In terms of the overall average, Audio8 ASR Infinite shows the best score.

Strengths and Use Cases

This model specializes in real-time speech transcription with top priority on responsiveness. It adopts a native streaming architecture, achieving extremely high response by decoding 12.5 times per second. Furthermore, by using Rolling KV Cache, it enables 24/7 continuous operation (unlimited-length transcription) while keeping memory usage and latency constant.

Main use cases and features include:

  • Bilingual Support: Supports Chinese and English transcription.
  • Flexible Streaming Control: Allows selection of audio clock (80/120/160 ms) and transcription delay (target_delay_ms), enabling adjustment of the balance between recognition granularity and resource cost.
  • Semantic VAD: Capable of distinguishing between thinking pauses, stuttering, and actual speech endings, which is difficult with conventional acoustic VAD (Voice Activity Detection).
  • Use Cases: Real-time subtitle generation, always-on voice interfaces, etc.

It is currently a preview release providing base streaming transcription functionality. The roadmap lists implementing frame-level semantic recognition features using the same frame grid and acoustic forward path in the future.

Hardware Requirements

Estimated requirements (calculated by Local Model Watch) — 4.1B parameters

Your VRAM Quantization File size Est. memory needed
12GB (RTX 4070 / 3060 12GB, etc.) BF16 7.6GB 9.1GB

Inference engine support (architecture name matched against each project’s own model registry in its source code, checked 2026-11-08): llama.cpp: not registered, vLLM: not registered, MLX (mlx-lm): not registered. “Not registered" means the name is absent from that registry today, not that the model cannot run.

Memory estimates add a 20% runtime overhead (KV cache, etc.) to the actual size of the distributed files. Actual usage varies with context length, batch size and inference engine. These figures are computed by this site from file sizes, not published by the model’s authors. Compare with other models in our VRAM quick reference. What the quantization names mean: glossary.

Can You Run It Locally?

The publisher distributes this model as safetensors.

License — apache-2.0 (Commercial use allowed): Permits commercial use, modification and redistribution. Redistribution requires including the license and stating changes; includes a patent grant.

Compiled by this site’s code from the published formats and the license field. License summaries are not legal advice — check the publisher’s original terms before relying on them.

Our Own Measurements

Values we measured ourselves — not figures copied from the model card. We read this model’s files on our own server (no GPU) and ran the model on a rented cloud GPU (conditions below). How we measure, and the results for every model: Our Measurements.

Transcribing English Audio We Made (Cloud GPU)

We ran Edge0/Audio8-ASR-Infinite in BF16 with the publisher’s own streaming decoder (Edge0-AI/Audio8-ASR-Infinite, commit c8ba8ee) on a rented cloud GPU. That code ran only inside a cloud container with its network cut off. The audio is not a recording from elsewhere: we read three fixed English sentences with a text-to-speech voice (en_US-ljspeech-medium, MIT(音声モデルの配布)・学習データ LJ Speech はパブリックドメイン) and let the model transcribe each clip once. Nothing was selected or edited; these are the first outputs, misrecognitions included. This model supports Chinese and English only, so we tested English only and make no claim about Japanese.

Input audio (4.7 s), the sentence we read out:

It had been raining since the morning, but it gradually cleared up in the afternoon.

The model’s transcript, verbatim (word error rate 0.0%: 0 errors in 15 words; transcribed in 6.49 s):

It had been raining since the morning, but it gradually cleared up in the afternoon.

Input audio (4.7 s), the sentence we read out:

The next meeting will be held from 2 p.m. on March 15 in meeting room B.

The model’s transcript, verbatim (word error rate 0.0%: 0 errors in 16 words; transcribed in 6.5 s):

The next meeting will be held from 2 p.m. on March 15 in Meeting Room B.

Input audio (3.61 s), the sentence we read out:

Oh, it’s already finished? That was much quicker than I expected.

The model’s transcript, verbatim (word error rate 0.0%: 0 errors in 11 words; transcribed in 5.36 s):

Oh, it's already finished. That was much quicker than I expected.
Item Result
Word error rate over all three clips 0.0% (0 errors in 42 words)
VRAM right after loading the weights (BF16) 7.7GB
Peak VRAM while transcribing 7.8GB

Conditions: NVIDIA L4 (VRAM 22GB) on Modal, transformers 5.13.0, PyTorch 2.13.0+cu130, weights at revision 7476824bc2, BF16, greedy decoding with a 80 ms clock and 480 ms delay, measured 2026-10-01 (JST).

The word error rate is counted by our code after lowercasing and removing punctuation; numerals are not converted, so “2 p.m." and “two p.m." count as different words. Three short clips of one synthetic voice say nothing about accuracy on real recordings, accents or noise. The decoder here replays the audio as a stream in one pass and does not measure real-time latency.

Setup, Download and Run Steps (What We Actually Ran)

We split the work into two containers on Modal, both built from the Debian (slim) image with Python 3.12. The downloading container fetches the weights from Hugging Face and the publisher’s decoding code from GitHub (a pinned commit) and never runs either; the container that runs the code has no network access. These are the packages we installed:

# 1. Environment for downloading (no GPU)
python -m pip install huggingface_hub

# 2. Environment for running (GPU, network blocked)
python -m pip install 'torch>=2.13,<2.14' 'transformers==5.13.0' 'numpy>=2.1' 'safetensors>=0.8' 'accelerate'

We then called download(job) in the first container and run(job) in the second one from the script below (asr_remote.py, written by us; full text). Files go under /models/<dir>:

"""
Modal のコンテナの中で動く、音声認識モデルの実測(2026-09-30、ユーザーの判断)。lmw/lab/gpu_modal.py の
asr_download / asr_run から呼ばれる。**標準ライブラリだけを先頭で読み**、huggingface_hub・torch・transformers は
各関数の中で読む(コンテナごとに入っているものが違う)。

【2つのコンテナに分ける】(lmw/lab/remote_code_remote.py と同じ)
- download: GPU の無いコンテナ・ネットワークあり。Hugging Face から重みと設定を、GitHub から配布元の
  デコード処理(audio8_asr_infinite の Python ファイル)を **コミットを固定して** 落とすだけで、どちらも実行しない。
  重みは safetensors だけ。GitHub のファイルは、決まったフォルダの .py だけを通常のファイルとして取り出す。
- run: GPU のコンテナ・**ネットワーク遮断**・Modal の機能も使えない・Volume は読み取り専用。
  ここでだけ配布元のデコード処理を実行する(Hugging Face のリポジトリのコードを読み込む設定は使わない。モデルの定義もデコードの処理も、
  落としておいた固定コミットのパッケージから読む。Hugging Face のリポジトリのモデル定義とファイルが一致することは確認済み)。

記事執筆用の LLM は呼ばない。文字起こしの誤りの数え方はホスト側のコード(lmw/lab/asr.py)が決める。
"""
import base64
import hashlib
import io
import json
import os
import platform
import posixpath
import tarfile
import time
import urllib.request
import wave
from dataclasses import dataclass
from datetime import datetime, timezone

MOUNT = "/models"
PYTHON_VERSION = "3.12"
DOWNLOAD_PACKAGES = ("huggingface_hub",)
# 配布元の pyproject.toml の依存(torch>=2.13,<2.14・transformers==5.13.0・numpy>=2.1・safetensors>=0.8)に合わせる
RUN_PACKAGES = ("torch>=2.13,<2.14", "transformers==5.13.0", "numpy>=2.1", "safetensors>=0.8", "accelerate")
# GitHub から取り出すのは、このフォルダの .py だけ(モデル・デコード・設定。vLLM 用のサーバーや例は取らない)
CODE_PACKAGE = "audio8_asr_infinite"
CODE_SKIP_DIRS = ("vllm_serve", "examples")
_MAX_CODE_BYTES = 2 * 1024 * 1024
_MAX_TARBALL_BYTES = 64 * 1024 * 1024

def installed_packages() -> list[str]:
    from importlib import metadata
    seen = {}
    for dist in metadata.distributions():
        name = dist.metadata["Name"]
        if name and name.lower() not in seen:
            seen[name.lower()] = f"{name}=={dist.version}"
    return sorted(seen.values(), key=str.lower)

def _log(t0: float, message: str) -> None:
    print(f"[asr {time.time() - t0:6.0f}s] {message}", flush=True)

def extract_code(tar_bytes: bytes, target: str) -> dict[str, str]:
    """
    GitHub のコミットの tar.gz から、CODE_PACKAGE の .py だけを通常のファイルとして取り出す(リンク・デバイスは
    無視する。パスに .. や絶対パスがあれば断る)。戻り値: {パッケージからの相対パス: sha256}。
    """
    written: dict[str, str] = {}
    with tarfile.open(fileobj=io.BytesIO(tar_bytes), mode="r:gz") as tar:
        for member in tar.getmembers():
            if not member.isfile():
                continue
            parts = member.name.split("/")[1:]  # 先頭は <リポジトリ>-<コミット>/
            if not parts or parts[0] != CODE_PACKAGE or not member.name.endswith(".py"):
                continue
            rel = posixpath.join(*parts)
            if ".." in parts or posixpath.isabs(rel) or any(p in CODE_SKIP_DIRS for p in parts[1:-1]):
                continue
            if member.size > _MAX_CODE_BYTES:
                raise ValueError(f"大きすぎるファイルです: {rel}")
            raw = tar.extractfile(member).read()
            dest = os.path.join(target, *parts)
            os.makedirs(os.path.dirname(dest), exist_ok=True)
            with open(dest, "wb") as f:
                f.write(raw)
            written[posixpath.join(*parts[1:])] = hashlib.sha256(raw).hexdigest()
    return written

def download(job: dict) -> dict:
    """
    job: {"repo", "revision", "files", "dir", "code": {"repo", "commit"}}。
    戻り値: {"bytes", "seconds", "packages", "code_files"}。
    """
    from huggingface_hub import hf_hub_download
    t0 = time.time()
    base = os.path.join(MOUNT, job["dir"])
    model_dir = os.path.join(base, "model")
    os.makedirs(model_dir, exist_ok=True)
    total = 0
    for name in job["files"]:
        path = hf_hub_download(job["repo"], name, revision=job["revision"], local_dir=model_dir)
        total += os.path.getsize(path)
    code = job["code"]
    url = f"https://codeload.github.com/{code['repo']}/tar.gz/{code['commit']}"
    with urllib.request.urlopen(url, timeout=300) as r:
        tar_bytes = r.read(_MAX_TARBALL_BYTES + 1)
    if len(tar_bytes) > _MAX_TARBALL_BYTES:
        raise ValueError("GitHub のアーカイブが大きすぎます")
    code_files = extract_code(tar_bytes, os.path.join(base, "code"))
    if not code_files:
        raise ValueError("GitHub のアーカイブから配布元のコードを取り出せませんでした")
    seconds = round(time.time() - t0)
    _log(t0, f"ダウンロード {total / 1024 ** 3:.1f}GB・配布元のコード {len(code_files)}ファイル・{seconds}秒")
    return {"bytes": int(total), "seconds": int(seconds), "packages": installed_packages(),
            "code_files": code_files}

@dataclass(frozen=True)
class StreamingConfig:
    """デコード処理が読む設定(配布元の examples/torch_streaming_decode.py の StreamingDecodeConfig と同じ形)。"""
    transcription_delay_ms: int = 480
    token_period_ms: int = 80
    sampling_rate: int = 16000
    left_pad_tokens: int = 18
    right_pad_text_tokens: int = 10
    max_new_tokens: int = 512

    @property
    def num_delay_tokens(self) -> int:
        return self.transcription_delay_ms // self.token_period_ms

    @property
    def raw_audio_samples_per_token(self) -> int:
        return self.sampling_rate * self.token_period_ms // 1000

    @property
    def streaming_n_left_pad_tokens(self) -> int:
        return self.left_pad_tokens

def merge_vad_heads(src: str, dest: str) -> str:
    """
    重みが model.safetensors と semantic_vad_heads.safetensors に分かれている。transformers 5.13.0 は、フォルダに
    model.safetensors があると索引(model.safetensors.index.json)を見ず、後者を読まずに「重みが足りない」と断る。
    そこで2つのテンソルをそのまま(変換せず)1つの safetensors に束ねた作業用のフォルダを作る(2026-09-30)。
    """
    from safetensors.torch import load_file, save_file
    os.makedirs(dest, exist_ok=True)
    for name in os.listdir(src):
        if name not in ("model.safetensors", "semantic_vad_heads.safetensors", "model.safetensors.index.json"):
            os.symlink(os.path.join(src, name), os.path.join(dest, name))
    tensors = load_file(os.path.join(src, "model.safetensors"))
    heads = load_file(os.path.join(src, "semantic_vad_heads.safetensors"))
    if set(tensors) & set(heads):
        raise ValueError("2つの重みのファイルに同じ名前のテンソルがあります")
    tensors.update(heads)
    save_file(tensors, os.path.join(dest, "model.safetensors"), metadata={"format": "pt"})
    return dest

def _waveform(b64: str, sampling_rate: int):
    """16bit PCM・モノラルの WAV(base64)を、-1〜1 の float32 の配列にする。"""
    import numpy as np
    with wave.open(io.BytesIO(base64.b64decode(b64)), "rb") as r:
        if (r.getframerate(), r.getnchannels(), r.getsampwidth()) != (sampling_rate, 1, 2):
            raise ValueError("16kHz・モノラル・16bit の WAV ではありません")
        pcm = r.readframes(r.getnframes())
    return np.frombuffer(pcm, dtype=np.int16).astype(np.float32) / 32768.0

def run(job: dict) -> dict:
    """
    job: {"dir", "inputs": [{"id", "language", "wav_b64"}], "decoding": {StreamingConfig の値}}。
    戻り値は記録の一部(文字起こしの原文・秒数・VRAM)。誤りの数え方はホスト側。
    """
    import sys

    import torch
    import transformers
    os.environ["HF_HUB_OFFLINE"] = "1"
    os.environ["TRANSFORMERS_OFFLINE"] = "1"
    t0 = time.time()
    base = os.path.join(MOUNT, job["dir"])
    sys.path.insert(0, os.path.join(base, "code"))
    from audio8_asr_infinite.modeling.modeling_audio8_asr_infinite import (
        Audio8ASRInfiniteForConditionalGeneration, resolve_qwen_language_token_id,
        resolve_qwen_streaming_special_token_ids)
    from audio8_asr_infinite.streaming_inference import simulated_streaming_greedy_decode_batch
    from transformers import AutoFeatureExtractor, AutoTokenizer

    gpu = torch.cuda.get_device_name(0)
    _log(t0, f"GPU: {gpu}・transformers {transformers.__version__}・torch {torch.__version__}")
    record = {"gpu": gpu, "vram_total": int(torch.cuda.get_device_properties(0).total_memory),
              "transformers": str(transformers.__version__), "torch": str(torch.__version__), "dtype": "bfloat16",
              "packages": installed_packages(), "python": platform.python_version(),
              "measured_at": datetime.now(timezone.utc).isoformat()}
    path = merge_vad_heads(os.path.join(base, "model"), os.path.join("/tmp", "asr-model"))
    record["merged_vad_heads"] = True
    config = StreamingConfig(**job["decoding"])
    tokenizer = AutoTokenizer.from_pretrained(path, local_files_only=True)
    feature_extractor = AutoFeatureExtractor.from_pretrained(path, local_files_only=True)
    model = Audio8ASRInfiniteForConditionalGeneration.from_pretrained(
        path, local_files_only=True, use_safetensors=True, dtype=torch.bfloat16)
    model.to(device="cuda")
    model.eval()
    model.config.use_cache = True
    torch.cuda.synchronize()
    record["vram_loaded"] = int(torch.cuda.memory_allocated())
    record["load_sec"] = round(time.time() - t0)
    _log(t0, f"読み込み: VRAM {record['vram_loaded'] / 1024 ** 3:.1f}GB・{record['load_sec']}秒")
    special_ids = resolve_qwen_streaming_special_token_ids(tokenizer)

    def decode(item: dict) -> tuple[str, float, float]:
        waveform = _waveform(item["wav_b64"], config.sampling_rate)
        started = time.time()
        result = simulated_streaming_greedy_decode_batch(
            model=model, tokenizer=tokenizer, feature_extractor=feature_extractor, waveforms=[waveform],
            language_token_ids=[resolve_qwen_language_token_id(tokenizer, item["language"])],
            special_ids=special_ids, audio_config=config, num_delay_tokens=[config.num_delay_tokens],
            right_pad_text_tokens=config.right_pad_text_tokens, dtype=torch.bfloat16,
            device=next(model.parameters()).device, max_new_tokens=config.max_new_tokens)
        torch.cuda.synchronize()
        return result[0].get("final_text", ""), time.time() - started, waveform.size / config.sampling_rate

    decode(job["inputs"][0])  # 最初の1回は初期化の時間が入るので、測らずに流す
    torch.cuda.reset_peak_memory_stats()
    outputs = []
    for item in job["inputs"]:
        text, seconds, audio_seconds = decode(item)
        outputs.append({"id": item["id"], "language": item["language"], "hypothesis": text,
                        "decode_sec": round(seconds, 2), "audio_sec": round(audio_seconds, 2)})
        _log(t0, f"{item['id']}: {audio_seconds:.1f}秒の音声を {seconds:.1f}秒で文字起こし")
    record["vram_peak"] = int(torch.cuda.max_memory_allocated())
    record["outputs"] = outputs
    return plain(record)

def plain(value):
    """JSON に通して、標準の型だけにする(ホストには torch も transformers も無い)。"""
    return json.loads(json.dumps(value, default=str))

The job passed to download (as used):

{
  "repo": "Edge0/Audio8-ASR-Infinite",
  "revision": "7476824bc222e4ad509d286e8cae8b8d3f371129",
  "files": [
    "config.json",
    "preprocessor_config.json",
    "generation_config.json",
    "tokenizer.json",
    "tokenizer_config.json",
    "chat_template.jinja",
    "model.safetensors",
    "model.safetensors.index.json",
    "semantic_vad_heads.safetensors"
  ],
  "dir": "asr-1790805644",
  "code": {
    "repo": "Edge0-AI/Audio8-ASR-Infinite",
    "commit": "c8ba8eea829be0339e8d7757f8ca52dac06e1e32"
  }
}

The job passed to run (as used; the audio is passed as base64 and shown here by its SHA-256):

{
  "dir": "asr-1790805644",
  "inputs": [
    {
      "id": "weather",
      "language": "en",
      "wav_sha256": "1258dcd9f83234db2601a928bd8facddc1c0c2751d7a90765375cc9197dc0651"
    },
    {
      "id": "numbers",
      "language": "en",
      "wav_sha256": "ce0b8d12768dd1d9f5fdbf5fd0a0a98c35b5f5b7c522b814c5da01579812f430"
    },
    {
      "id": "surprise",
      "language": "en",
      "wav_sha256": "fcd7c8d3f8cce918a56d959071a298d3a994d29c78586a2868b2a0a0c7c56e40"
    }
  ],
  "decoding": {
    "transcription_delay_ms": 480,
    "token_period_ms": 80,
    "left_pad_tokens": 18,
    "right_pad_text_tokens": 10,
    "max_new_tokens": 512
  }
}
The publisher's code files we extracted (SHA-256)
14f8e8ea73d8e441bceb85f0fafa7d443e37178cab135994204117b9bd5d3319  __init__.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  modeling/__init__.py 36cb2c25d456cd4692a01a801cf1608f49377ce78353b48561554e715d9f9012  modeling/configuration_audio8_asr_infinite.py fed33565b9ed307353aa7cd9565886c592b2ee3969c913cbe0bfa9dda9f7a469  modeling/modeling_audio8_asr_infinite.py 0aff961fe05f587862079ae01382eaaa57332be5e4fe0f114a8ac99578805c72  simulated_streaming_audio.py 37e7ba1ba9ff26ce1baea8c1af7aac0db017b6e372c236fb23068d66f6f9d38d  streaming_inference.py
Package versions in the running container (full list)
accelerate==1.15.0 aiohappyeyeballs==2.6.1 aiohttp==3.12.7 aiosignal==1.3.2 annotated-doc==0.0.5 anyio==4.15.1 attrs==25.3.0 cbor2==5.7.0 certifi==2026.7.22 click==8.5.0 cuda-bindings==13.4.3 cuda-pathfinder==1.8.2 cuda-toolkit==13.0.3.0 filelock==4.0.7 frozenlist==1.6.0 fsspec==2026.9.0 grpclib==0.4.8 h11==0.16.0 h2==4.2.0 hf-xet==1.6.0 hpack==4.1.0 httpcore==1.0.9 httpx==0.28.1 huggingface_hub==1.33.0 hyperframe==6.1.0 idna==3.20 Jinja2==3.1.6 markdown-it-py==4.2.0 MarkupSafe==3.0.3 mdurl==0.1.2 mpmath==1.3.0 multidict==6.4.4 networkx==3.7 numpy==2.5.3 nvidia-cublas==13.1.1.3 nvidia-cuda-cupti==13.0.85 nvidia-cuda-nvrtc==13.0.88 nvidia-cuda-runtime==13.0.96 nvidia-cudnn-cu13==9.20.0.48 nvidia-cufft==12.0.0.61 nvidia-cufile==1.15.1.6 nvidia-curand==10.4.0.35 nvidia-cusolver==12.0.4.66 nvidia-cusparse==12.6.3.3 nvidia-cusparselt-cu13==0.8.1 nvidia-nccl-cu13==2.29.7 nvidia-nvjitlink==13.4.92 nvidia-nvshmem-cu13==3.4.5 nvidia-nvtx==13.0.85 packaging==26.3 pip==25.1.1 propcache==0.3.1 protobuf==6.31.1 psutil==7.2.2 Pygments==2.21.0 PyYAML==6.0.3 regex==2026.9.29 rich==15.0.0 safetensors==0.8.0 setuptools==84.0.0 shellingham==1.5.4 sympy==1.14.0 tokenizers==0.22.2 torch==2.13.0 tqdm==4.70.1 transformers==5.13.0 triton==3.7.1 typer==0.27.2 typing_extensions==4.16.0 uv==0.7.19 wheel==0.45.1 yarl==1.20.0
Package versions in the downloading container (full list)
aiohappyeyeballs==2.6.1 aiohttp==3.12.7 aiosignal==1.3.2 anyio==4.15.1 attrs==25.3.0 cbor2==5.7.0 certifi==2025.4.26 click==8.5.0 filelock==4.0.7 frozenlist==1.6.0 fsspec==2026.9.0 grpclib==0.4.8 h11==0.16.0 h2==4.2.0 hf-xet==1.6.0 hpack==4.1.0 httpcore2==2.13.1 httpx2==2.13.1 huggingface_hub==2.0.0 hyperframe==6.1.0 idna==3.20 multidict==6.4.4 packaging==26.3 pip==25.1.1 propcache==0.3.1 protobuf==6.31.1 PyYAML==6.0.3 tqdm==4.70.1 truststore==0.10.4 typing_extensions==4.16.0 uv==0.7.19 wheel==0.45.1 yarl==1.20.0

Distributed Files

Weight files published in Edge0/Audio8-ASR-Infinite, listed by this site from the Hugging Face API. Sizes are the actual file sizes.

File Size
model.safetensors 8.17GB
semantic_vad_heads.safetensors 0MB

How to Get It

  • Distribution format: safetensors
  • Repository: Edge0/Audio8-ASR-Infinite
  • Supported tools:
  • transformers library (requires trust_remote_code=True) – 24/7 inference using vLLM (Docker Compose deployment is recommended) – Simulation streaming decoding via torch

Note that this model does not support adapter formats or partially converted weights; only fully merged weight directories are supported.

Related Articles

What to Read Next

Sources

Update History

  • 2026-09-24: Rebuilt the article: Added a “can you run it locally?" verdict from the distribution formats, converted builds, engine registries, license terms and measured compression
  • 2026-09-25: Changed the title to show what the article covers (VRAM requirements, file list, etc.).
  • 2026-10-01: Added our own measurements: transcripts of English audio we made.