「Audio8-ASR-Infinite」音声認識モデル:必要VRAM 12GB〜・配布ファイル一覧

作例は配布元のモデルカードで公開されています。
基本情報
| 項目 | 内容 |
|---|---|
| リポジトリ | Edge0/Audio8-ASR-Infinite |
| 公開日 | 2026-09-22 |
| ライセンス | apache-2.0 |
| 配布形式 | safetensors |
| 出典の種類 | 公開元の一次情報(Hugging Faceの公式モデルページが一次情報として存在する) |
情報を集めた時点で、当サイトのコードが確定させた値です。日付はJSTで表示しています。
概要
Edge0は、応答性を極限まで高めるために設計されたネイティブ・ストリーミング音声認識モデル「Audio8-ASR-Infinite」を公開しました。このモデルは、音声入力をリアルタイムでテキストに変換する音声認識(ASR)モデルであり、中国語と英語のバイリンガルに対応しています。
スペック
- アーキテクチャ: Voxtral realtime audio architectureおよび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
- 出力仕様: 中国語および英語のテキスト
- ストリーミング設定:
- 選択可能なオーディオクロック: 80ms / 120ms / 160ms – 設定可能な書き起こし遅延 (target_delay_ms): 240ms〜560ms (クロック設定により異なる)
- 推奨動作条件(最適化されたポイント):
- 80msクロック時: frame_len 4, target_delay_ms 240 / 320 / 480 / 560 – 120msクロック時: frame_len 6, target_delay_ms 240 / 480 – 160msクロック時: frame_len 8, target_delay_ms 320 / 480
- ライセンス: Apache 2.0
性能・品質
480 ms Delay, 80ms frame length(Greedy decode, EOS suppressed)における評価結果は以下の通りです。
→ 横にスクロールできます
| 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は、aishell1/testおよびaishell4/testのCER(文字単位の誤り率)において、比較対象のモデルよりも大幅に低い(優れた)数値を記録しています。一方で、librispeechのtest.cleanおよびtest.otherにおけるWER(単語単位の誤り率)については、Voxtral-Mini-4B-Realtime-2602に劣る結果となっています。全体的な平均値では、Audio8 ASR Infiniteが最も優れたスコアを示しています。
得意なこと・想定用途
本モデルは、応答性を最優先したリアルタイムの音声書き起こしに特化しています。ネイティブなストリーミングアーキテクチャを採用しており、1秒間に12.5回のデコードを行うことで、極めて高いレスポンスを実現しています。また、Rolling KV Cacheを用いることで、メモリ使用量とレイテンシを一定に保ったまま、24時間365日の連続稼働(unlimited-length transcription)が可能です。
主な用途や特徴は以下の通りです。
- バイリンガル対応: 中国語と英語の書き起こしに対応しています。
- 柔軟なストリーミング制御: オーディオクロック(80/120/160 ms)と書き起こし遅延(target_delay_ms)を選択でき、認識の粒度とリソースコストのバランスを調整できます。
- Semantic VAD: 従来の音響的なVAD(発話区間検出)では困難だった、思考によるポーズ、吃音、および実際の発話終了の区別が可能です。
- 用途: リアルタイムの字幕生成、常時稼働型の音声インターフェースなど。
現在はプレビューリリース版であり、ストリーミング書き起こしのベース機能を提供しています。今後は、同じフレームグリッドと音響フォワードパスを用いた、フレームレベルのセマンティック認識機能の実装がロードマップとして掲げられています。
動作環境
動作環境の目安(Local Model Watch 算出) — パラメータ数 4.1B
| 手持ちのVRAM | 選べる量子化 | ファイルサイズ | 必要メモリの目安 |
|---|---|---|---|
| RTX 4070 / 3060 12GB など 12GB | BF16 | 7.6GB | 9.1GB |
推論エンジンの対応状況(各プロジェクトのソースにあるモデル登録表とアーキテクチャ名を当サイトが機械的に照合。2026-11-08 時点): llama.cpp: 未登録、vLLM: 未登録、MLX (mlx-lm): 未登録。「未登録」はその時点の登録表に名前が無いという意味で、動かないことの断定ではありません。
必要メモリは配布ファイルの実サイズに実行時のオーバーヘッド(KVキャッシュ等)を20%見込んだ概算で、文脈長・バッチサイズ・推論エンジンによって増減します。公開元の公称値ではなく、当サイトがファイルサイズから機械的に算出した値です。 他のモデルとの比較はVRAM別の早見表を参照してください。 量子化の名前の読み方は用語集にあります。
手元で動かせるか
公開元の配布形式は safetensors です。
ライセンス apache-2.0(商用利用可): 商用利用を含めて自由に利用・改変・再配布できます。再配布時にライセンス文と変更点の告知が必要で、特許の許諾条項があります。
配布形式とライセンス表記から当サイトのコードが組み立てた判定です。ライセンスの要約は法的助言ではないため、実際の利用にあたっては公開元の原文を確認してください。
当サイトでの実測
モデルカードの記載ではなく、当サイトが測った結果です。ファイルの中身は当サイトのサーバー(GPUなし)で読み込んで確かめ、モデルはクラウドの GPU を借りて動かしました(条件は下記)。測り方と全モデルの一覧は観測データにまとめています。
当サイトが作った英語の音声の文字起こし(クラウドのGPU)
Edge0/Audio8-ASR-Infinite を BF16 のまま、配布元のストリーミング用のデコード処理(Edge0-AI/Audio8-ASR-Infinite のコミット c8ba8ee)で、クラウドの GPU を借りて動かしました。この配布元のコードは、ネットワークを遮断したクラウドのコンテナの中だけで実行しています。読ませた音声は他所の録音ではなく、当サイトが固定の英文3つを音声合成(en_US-ljspeech-medium・MIT(音声モデルの配布)・学習データ LJ Speech はパブリックドメイン)で読み上げて作ったもので、1つずつ1回だけ文字起こしさせました。選別や加工はしておらず、聞き間違いも含めて1回目の出力をそのまま載せています。このモデルの対応言語は中国語と英語だけなので、英語だけを試しており、日本語についてはなにも測っていません。
読ませた音声(4.7秒)と、読み上げた文:
It had been raining since the morning, but it gradually cleared up in the afternoon.
モデルの文字起こし(原文のまま。単語誤り率 0.0%:15語中0語の誤り・文字起こしにかかった時間 6.49秒):
It had been raining since the morning, but it gradually cleared up in the afternoon.
読ませた音声(4.7秒)と、読み上げた文:
The next meeting will be held from 2 p.m. on March 15 in meeting room B.
モデルの文字起こし(原文のまま。単語誤り率 0.0%:16語中0語の誤り・文字起こしにかかった時間 6.5秒):
The next meeting will be held from 2 p.m. on March 15 in Meeting Room B.
読ませた音声(3.61秒)と、読み上げた文:
Oh, it’s already finished? That was much quicker than I expected.
モデルの文字起こし(原文のまま。単語誤り率 0.0%:11語中0語の誤り・文字起こしにかかった時間 5.36秒):
Oh, it's already finished. That was much quicker than I expected.
| 項目 | 結果 |
|---|---|
| 3つの音声を通した単語誤り率 | 0.0%(42語中0語の誤り) |
| 重みを読み込んだ直後のVRAM(BF16) | 7.7GB |
| 文字起こし中の最大のVRAM | 7.8GB |
条件: Modal の NVIDIA L4(VRAM 22GB)・transformers 5.13.0・PyTorch 2.13.0+cu130・重みの版 7476824bc2・BF16・貪欲デコード(クロック80ms・遅延480ms)・2026-10-01に測定しました。
単語誤り率は、当サイトのコードが小文字にして句読点を除いたうえで数えています。数字の表記は揃えないので、「2 p.m.」と「two p.m.」は別の語として数えます。合成音声1種の短い3つの音声では、実際の録音・訛り・雑音での精度は分かりません。ここで使ったデコード処理は音声を1回でストリームのように流し直すもので、実時間の遅延は測っていません。
環境構築・ダウンロード・実行の手順(当サイトで実行したもの)
当サイトでは、ダウンロードと実行を Modal の2つのコンテナに分けました。どちらも Debian(slim)・Python 3.12 のイメージです。ダウンロードのコンテナは、Hugging Face から重みを、GitHub から配布元のデコード処理(コミット固定)を取ってくるだけで、どちらも実行しません。配布元のコードを実行するコンテナはネットワークを遮断しています。入れたパッケージは次のとおりです。
# 1. ダウンロード用の実行環境を作る(GPU なし)
python -m pip install huggingface_hub
# 2. 実行用の実行環境を作る(GPU あり・ネットワークなし)
python -m pip install 'torch>=2.13,<2.14' 'transformers==5.13.0' 'numpy>=2.1' 'safetensors>=0.8' 'accelerate'
そのうえで、次のスクリプト(asr_remote.py、当サイトが書いたもの。全文)の download(job) をダウンロードのコンテナで、run(job) を実行のコンテナで呼びました。ファイルの置き場所は /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))
download に渡した job(実際に使った値):
{
"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"
}
}
run に渡した job(実際に使った値。音声は base64 で渡し、ここでは 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
}
}
取り出した配布元のコードのファイル(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
実行のコンテナに入っていたパッケージの版(全文)
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
ダウンロードのコンテナに入っていたパッケージの版(全文)
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
配布ファイル
Edge0/Audio8-ASR-Infinite で配布されている重みファイルを、Hugging FaceのAPIから当サイトが並べたものです。サイズは実ファイルの値です。
| ファイル | サイズ |
|---|---|
model.safetensors |
8.17GB |
semantic_vad_heads.safetensors |
0MB |
入手方法
- 配布形式: safetensors
- リポジトリ: Edge0/Audio8-ASR-Infinite
- 対応ツール:
transformersライブラリ(trust_remote_code=Trueが必要) –vLLMを用いた24/7推論(Docker Composeによるデプロイが推奨されています) –torchによるシミュレーション・ストリーミング・デコード
なお、本モデルはアダプター形式や部分的に変換された重みには対応しておらず、フルマージされた重みディレクトリのみがサポートされています。
関連記事
次に読むなら
- GPUのVRAMから探す(このモデルは12GBの階層から動きます) → 12GBのGPUで動くほかのモデル
- このモデルを入手できる形式を調べる → Safetensors形式の解説と対応モデル
- 同じ用途の他のモデルを探す → 音声のモデル一覧
- 記事に出てくる CER・WER の読み方を知る → ベンチマーク用語集
出典
更新履歴
- 2026-09-24: 記事の組み立てを更新しました: 「手元で動かせるか」の判定(配布形式・変換版・推論エンジンの登録表・ライセンス・実測の圧縮率)を追加
- 2026-09-25: タイトルを、記事で分かる内容(必要VRAM・配布ファイル等)を示す形に変更しました。
- 2026-10-01: 当サイトでの実測(当サイトが作った英語の音声の文字起こし)を追加しました。

