Files
FunASR/docs/benchmark/vllm_official_native_20260907.json

625 lines
25 KiB
JSON

{
"schema_version": 1,
"verified": "2026-09-07",
"time_zone": "Asia/Shanghai (HTTP Date headers are UTC on 2026-09-06)",
"model": "FunAudioLLM/Fun-ASR-Nano-2512-vllm",
"revision": "a4362c943d48951f98ca2a62181cc028970270c5",
"files": [
{
"path": ".gitattributes",
"size": 2161,
"git_blob": "0bb08f0d1369b2604a2de018bd9468aa0f7bb527",
"lfs_sha256": null,
"sha256": "c6391bc5513b1407e95e1b5567f11dd7f71616ee294f85b133d397afe72d5e2d"
},
{
"path": "LICENSE",
"size": 11358,
"git_blob": "d645695673349e3947e8e5ae42332d0ac3164cd7",
"lfs_sha256": null,
"sha256": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"
},
{
"path": "MODEL_PROVENANCE.json",
"size": 1501,
"git_blob": "7d9d3b3eaa59d42b22be085a8fb7e4d0776b3eac",
"lfs_sha256": null,
"sha256": "eba0b6a9b2a9baf53392160df38bc1d99299eb5fced854803e475303c54a1f60"
},
{
"path": "README.md",
"size": 3584,
"git_blob": "cae88395a68155067dfe0d8c28d03b591e233e31",
"lfs_sha256": null,
"sha256": "c6cfac1332d8fdf7a63db6c148a8898b7eab63b128ef9682b95ada07ef50ae18"
},
{
"path": "README_zh.md",
"size": 3330,
"git_blob": "1120b18a3831e64df88ee6fd88d73ed791a5a5b6",
"lfs_sha256": null,
"sha256": "30d462f6914cf0c83df6ee9da0a55c9ec917d3fdf5c90325dde5efb74ed095fa"
},
{
"path": "config.json",
"size": 1395,
"git_blob": "9502ac38fe453e076402a673987a181060a1402e",
"lfs_sha256": null,
"sha256": "5e72ae4baf304d65bfdf0e779be19817a71f7d65441b096f1dcff377c63ed0e5"
},
{
"path": "config.yaml",
"size": 3140,
"git_blob": "1fb7aa3cff4496048cc80d1906c82e0ca5572ac1",
"lfs_sha256": null,
"sha256": "daed38ea6484f5650fb32cbd9069b9aa13880acaf2bcb1f0bf4be2712837917c"
},
{
"path": "configuration.json",
"size": 398,
"git_blob": "2529b01f4be6622337b88ae0a24cb92c6e28dc70",
"lfs_sha256": null,
"sha256": "b64a3a55d35bcbe2cf4d31f2d3ef25a423d3ba2ebff203298c27fa055f3c7612"
},
{
"path": "convert_from_official.py",
"size": 2156,
"git_blob": "f560dbb5748e06bb44822ac4168d1bd8bce45afa",
"lfs_sha256": null,
"sha256": "1b2242ae6da997d4d3d70310cc5e1226c83ca82988555be82a03464442ce4b50"
},
{
"path": "example/en.mp3",
"size": 57441,
"git_blob": "325005e60db535f24f5b3d9504b209704031bdb4",
"lfs_sha256": null,
"sha256": "f10378336a4e584f3f63799e62f99d5add3c2a401b51d3abe7d3a3a82f255ada"
},
{
"path": "example/ja.mp3",
"size": 57837,
"git_blob": "b3056dd92c8a0210eb8f786662a4528e31b44942",
"lfs_sha256": null,
"sha256": "496dbc43b289e1d0d0cb916df9737450bca56acd8aaca046a7a2472363b1be53"
},
{
"path": "example/ko.mp3",
"size": 27909,
"git_blob": "3e67ab481230742d41e27adb63f5091cec39a7db",
"lfs_sha256": null,
"sha256": "8612f62db8319a6cb4ab4b1d2039bfc32f174f89611889ddafdeb5c0a6070b5f"
},
{
"path": "example/yue.mp3",
"size": 31246,
"git_blob": "a67e8f862132e61d867854dd5e6e4d28af57b55a",
"lfs_sha256": null,
"sha256": "5098eebc13530a66e4eac1f30d3246e65c9cfc4e096665f9d395aca8eff0d181"
},
{
"path": "example/zh.mp3",
"size": 44973,
"git_blob": "1ae2c89b29112ee5e23bcebc353ea6687c38e6bd",
"lfs_sha256": null,
"sha256": "0e64de19e4ff9a02e682955c9112f32d2317cfdbb5bc2f3504664044c993f195"
},
{
"path": "generation_config.json",
"size": 239,
"git_blob": "20a8a9156fc8c3f25295ca067f61fdf120d517c5",
"lfs_sha256": null,
"sha256": "2325da0f15bb848e018c5ae071b7943332e9f871d6b60e2ed22ca97d4cb993d2"
},
{
"path": "merges.txt",
"size": 1671853,
"git_blob": "31349551d90c7606f325fe0f11bbb8bd5fa0d7c7",
"lfs_sha256": null,
"sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5"
},
{
"path": "model.safetensors",
"size": 1970899072,
"git_blob": "7e1ee59c4a9517d8b9f4dec52a8555fc5367c184",
"lfs_sha256": "96dfbec48282dd24d3334369a01e9e909f321ee39a1b0003c528c5379f68c1a6",
"sha256": "96dfbec48282dd24d3334369a01e9e909f321ee39a1b0003c528c5379f68c1a6"
},
{
"path": "multilingual.tiktoken",
"size": 907395,
"git_blob": "ac47fe685d24565030965a94c0d98e00e0331eaa",
"lfs_sha256": null,
"sha256": "747979631e813193436aabcff7c1c235d37de8097b71c563ec8b63b7a515c718"
},
{
"path": "preprocessor_config.json",
"size": 553,
"git_blob": "b8db96b12744ebd1c9da7e70c42ae71a8ecbd9ac",
"lfs_sha256": null,
"sha256": "007aac6d52b5ecf5e75052330489138a6a8940d68cf3e9723c502e8093ab1b38"
},
{
"path": "tests/test_conversion.py",
"size": 993,
"git_blob": "f1a1e2095b6a81a49b28b424ec98cc1b9480a231",
"lfs_sha256": null,
"sha256": "262eda8e83e17b5f11c3e6e3b050327ad488688d8a4883da183bcb04332c4713"
},
{
"path": "tokenizer.json",
"size": 11422654,
"git_blob": "cd71f61a15a522601badb3dc960d800d9cb3766c",
"lfs_sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4",
"sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4"
},
{
"path": "tokenizer_config.json",
"size": 9965,
"git_blob": "4a31bcc54d80aaa3c6602b70979fc874957bc8e1",
"lfs_sha256": null,
"sha256": "906ee1fc8a1ffbeb04417b1fd61ea8b04debe1ae7bf6e70f7b4475712144870d"
},
{
"path": "vocab.json",
"size": 2776833,
"git_blob": "4783fe10ac3adce15ac8f358ef5462739852c569",
"lfs_sha256": null,
"sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910"
}
],
"audio": {
"zh": {
"path": "example/zh.mp3",
"sha256": "0e64de19e4ff9a02e682955c9112f32d2317cfdbb5bc2f3504664044c993f195",
"duration_seconds": 5.616,
"sample_rate": 48000,
"channels": 1
},
"en": {
"path": "example/en.mp3",
"sha256": "f10378336a4e584f3f63799e62f99d5add3c2a401b51d3abe7d3a3a82f255ada",
"duration_seconds": 7.176,
"sample_rate": 48000,
"channels": 1
},
"ja": {
"path": "example/ja.mp3",
"sha256": "496dbc43b289e1d0d0cb916df9737450bca56acd8aaca046a7a2472363b1be53",
"duration_seconds": 7.224,
"sample_rate": 48000,
"channels": 1
}
},
"environment": {
"python": "3.12.3",
"cuda_runtime": "12.9",
"gpu": "NVIDIA H100 80GB HBM3",
"driver": "550.127.08",
"packages": {
"z3-solver": "4.15.4.0",
"nvidia-nccl-cu12": "2.29.7",
"torchvision": "0.28.0+cu129",
"nvidia-cusparse-cu12": "12.5.10.65",
"loguru": "0.7.3",
"ninja": "1.13.0",
"requests": "2.34.2",
"mdurl": "0.1.2",
"dnspython": "2.8.0",
"tokenizers": "0.22.2",
"rpds-py": "2026.6.3",
"attrs": "26.1.0",
"soxr": "1.1.0",
"vllm": "0.27.1+cu129",
"typer": "0.27.1",
"detect-installer": "0.1.0",
"email-validator": "2.3.0",
"numpy": "2.3.5",
"setproctitle": "1.3.7",
"openai": "2.54.0",
"truststore": "0.10.4",
"fastapi-cli": "0.0.32",
"nvidia-cublas-cu12": "12.9.1.4",
"opentelemetry-exporter-otlp": "1.44.0",
"jsonschema-specifications": "2025.9.1",
"opentelemetry-exporter-otlp-proto-common": "1.44.0",
"prometheus_client": "0.26.0",
"partial-json-parser": "0.2.1.1.post7",
"astor": "0.8.1",
"aiohappyeyeballs": "2.7.1",
"depyf": "0.20.0",
"sympy": "1.14.0",
"nvidia-cuda-runtime-cu12": "12.9.79",
"nvidia-cutlass-dsl-libs-base": "4.6.0",
"anthropic": "0.121.0",
"opentelemetry-sdk": "1.44.0",
"nvidia-cutlass-dsl-libs-core": "4.6.0",
"humming-kernels": "0.1.10",
"rich": "15.0.0",
"pybase64": "1.5.0",
"ijson": "3.5.1",
"apache-tvm-ffi": "0.1.11",
"PyYAML": "6.0.3",
"pyzmq": "27.1.0",
"frozenlist": "1.8.0",
"multidict": "6.7.1",
"jmespath": "1.1.0",
"opentelemetry-semantic-conventions-ai": "0.5.1",
"nvidia-ml-py": "13.610.43",
"nvidia-cuda-nvdisasm": "13.3.73",
"docstring_parser": "0.18.0",
"lm-format-enforcer": "0.11.3",
"mcp": "2.0.0",
"urllib3": "2.7.0",
"huggingface_hub": "1.27.0",
"torchcodec": "0.15.0+cu129",
"anyio": "4.14.2",
"nvidia-cutlass-dsl-libs-cu12": "4.6.0",
"typing_extensions": "4.16.0",
"setuptools": "80.10.2",
"cffi": "2.1.1",
"mcp-types": "2.0.0",
"aiosignal": "1.4.0",
"jiter": "0.16.0",
"python-dotenv": "1.2.2",
"fastar": "0.11.0",
"cuda-toolkit": "12.9.1",
"six": "1.17.0",
"tqdm": "4.70.0",
"sniffio": "1.3.1",
"cuda-bindings": "12.9.7",
"sentry-sdk": "2.67.1",
"MarkupSafe": "3.0.3",
"nvidia-cudnn-frontend": "1.27.0",
"PyJWT": "2.13.0",
"llguidance": "1.7.6",
"fastsafetensors": "0.3.3",
"nccl4py": "0.4.1",
"referencing": "0.37.0",
"nvidia-cusparselt-cu12": "0.8.1",
"numba": "0.65.0",
"lark": "1.2.2",
"rignore": "0.8.1",
"fastapi-cloud-cli": "0.23.0",
"propcache": "0.5.2",
"pip": "24.0",
"torch": "2.13.0+cu129",
"cuda-core": "1.1.1",
"certifi": "2026.7.22",
"psutil": "7.2.2",
"pycparser": "3.0",
"triton": "3.7.1",
"starlette": "1.6.0",
"cryptography": "50.0.0",
"nvidia-curand-cu12": "10.3.10.19",
"python-multipart": "0.0.32",
"tabulate": "0.10.0",
"Pygments": "2.20.0",
"outlines_core": "0.2.14",
"cuda-python": "12.9.7",
"pillow": "12.3.0",
"shellingham": "1.5.4",
"httptools": "0.8.0",
"pynvvideocodec": "2.0.4",
"transformers": "5.15.0",
"msgspec": "0.21.1",
"httpx2": "2.10.0",
"dill": "0.4.1",
"nvidia-cuda-crt": "13.3.73",
"packaging": "26.0",
"regex": "2026.7.19",
"nvidia-nvshmem-cu12": "3.4.5",
"uvicorn": "0.52.1",
"cuda-tile": "1.5.0",
"nvidia-cuda-nvrtc": "13.3.33",
"pydantic-extra-types": "2.11.1",
"ml_dtypes": "0.5.4",
"prometheus-fastapi-instrumentator": "8.1.0",
"opentelemetry-api": "1.44.0",
"pydantic": "2.13.4",
"Jinja2": "3.1.6",
"pycountry": "26.2.16",
"filelock": "3.32.2",
"opencv-python-headless": "5.0.0.93",
"tokenspeed-triton": "3.8.10.post20260721",
"sse-starlette": "3.4.8",
"torchaudio": "2.11.0+cu129",
"nvidia-cutlass-dsl-libs-cu13": "4.6.0",
"protobuf": "6.33.6",
"cbor2": "6.1.4",
"pydantic_core": "2.46.4",
"flashinfer-python": "0.6.16.post3",
"googleapis-common-protos": "1.75.1",
"nvidia-nvvm": "13.3.73",
"hf-xet": "1.6.0",
"nvidia-cudnn-cu12": "9.20.0.48",
"nvidia-nvjitlink-cu12": "12.9.86",
"yarl": "1.24.5",
"nvidia-cuda-cccl": "13.3.3.4.1",
"charset-normalizer": "3.5.0",
"interegular": "0.3.3",
"h11": "0.16.0",
"xgrammar": "0.2.3",
"nvidia-cutlass-dsl": "4.6.0",
"quack-kernels": "0.6.1",
"nvidia-cuda-nvcc": "13.3.73",
"opentelemetry-proto": "1.44.0",
"httpcore": "1.0.9",
"annotated-types": "0.8.0",
"nvidia-cusolver-cu12": "11.7.5.82",
"rich-toolkit": "0.20.3",
"mistral_common": "1.11.7",
"nvtx": "0.2.15",
"distro": "1.9.0",
"tokenspeed-mla": "0.1.8",
"supervisor": "4.3.0",
"nvidia-nvtx-cu12": "12.9.79",
"grpcio": "1.83.0",
"nvidia-cufft-cu12": "11.4.1.4",
"model-hosting-container-standards": "0.1.16",
"av": "18.1.0",
"pydantic-settings": "2.15.0",
"uvloop": "0.22.1",
"httpx": "0.28.1",
"nvidia-cufile-cu12": "1.14.1.1",
"opentelemetry-semantic-conventions": "0.65b0",
"opentelemetry-exporter-otlp-proto-grpc": "1.44.0",
"typing-inspection": "0.4.4",
"markdown-it-py": "4.2.0",
"tiktoken": "0.13.0",
"python-json-logger": "4.1.0",
"nvidia-cuda-runtime": "13.3.29",
"websockets": "17.0.1",
"httpcore2": "2.10.0",
"torch_c_dlpack_ext": "0.1.5",
"opentelemetry-exporter-otlp-proto-http": "1.44.0",
"cloudpickle": "3.1.2",
"safetensors": "0.8.0",
"tilelang": "0.1.12",
"compressed-tensors": "0.17.0",
"nvidia-cuda-cupti-cu12": "12.9.79",
"soundfile": "0.14.0",
"einops": "0.8.2",
"fastapi": "0.136.3",
"cuda-pathfinder": "1.6.0",
"aiohttp": "3.14.3",
"networkx": "3.6.1",
"fsspec": "2026.7.0",
"watchfiles": "1.2.0",
"llvmlite": "0.47.0",
"annotated-doc": "0.0.5",
"pyelftools": "0.33",
"py-cpuinfo": "9.0.0",
"openai-harmony": "0.0.8",
"mpmath": "1.3.0",
"blake3": "1.0.9",
"sentencepiece": "0.2.2",
"click": "8.4.2",
"nvidia-cuda-nvrtc-cu12": "12.9.86",
"scipy": "1.18.0",
"jsonschema": "4.26.0",
"cachetools": "7.1.7",
"idna": "3.18",
"more-itertools": "10.8.0",
"importlib_metadata": "8.7.1",
"jaraco.text": "4.0.0",
"wheel": "0.46.3",
"tomli": "2.4.0",
"platformdirs": "4.4.0",
"zipp": "3.23.0",
"jaraco.functools": "4.4.0",
"jaraco.context": "6.1.0",
"backports.tarfile": "1.2.0",
"autocommand": "2.2.2"
},
"native_source": "vllm/model_executor/models/funasr.py",
"native_source_sha256": "0cc059845327614a82259c0fe7bd5a1f868565e7e011c113b24c18a47f79c5c7"
},
"serving": {
"model_directory": "$MODEL_DIR",
"served_model": "fun-asr-nano-official-a4362c94",
"host": "127.0.0.1",
"port": 57185,
"dtype": "float32",
"gpu_memory_utilization": 0.4,
"enforce_eager": true,
"resolved_max_model_len": 40960
},
"commands": {
"install": [
"export VLLM_PYTHON=\"$PWD/.venv/bin/python\"\nexport VALIDATION_DIR=\"$PWD/.official-native-validation\"\nexport MODEL_DIR=\"$VALIDATION_DIR/official-model/a4362c943d48951f98ca2a62181cc028970270c5\"",
"\"$VLLM_PYTHON\" - <<'PY'\nimport importlib.metadata as metadata\nimport torch\nimport vllm.model_executor.models.funasr\n\nfor name, expected in {\"vllm\": \"0.27.1+cu129\", \"torch\": \"2.13.0+cu129\",\n \"transformers\": \"5.15.0\"}.items():\n assert metadata.version(name) == expected, (name, metadata.version(name))\nassert torch.version.cuda == \"12.9\" and torch.cuda.is_available()\nPY",
"HF_HUB_DISABLE_TELEMETRY=1 HF_XET_CACHE=\"$VALIDATION_DIR/isolated-xet-cache\" \"$VLLM_PYTHON\" - <<'PY'\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nfrom huggingface_hub import HfApi, snapshot_download\n\nmodel_id = \"FunAudioLLM/Fun-ASR-Nano-2512-vllm\"\nrevision = \"a4362c943d48951f98ca2a62181cc028970270c5\"\nroot = Path(os.environ[\"MODEL_DIR\"])\ninfo = HfApi().model_info(model_id, revision=revision, files_metadata=True)\nassert info.sha == revision and len(info.siblings) == 23\nsnapshot_download(model_id, revision=revision, local_dir=str(root),\n cache_dir=str(Path(os.environ[\"VALIDATION_DIR\"]) / \"isolated-hf-cache\"),\n max_workers=4)\nfiles = []\nfor item in info.siblings:\n content = (root / item.rfilename).read_bytes()\n digest = hashlib.sha256(content).hexdigest()\n assert len(content) == item.size, item.rfilename\n if item.lfs:\n assert digest == item.lfs.sha256, item.rfilename\n else:\n assert hashlib.sha1(f\"blob {len(content)}\\0\".encode() + content).hexdigest() == item.blob_id\n files.append({\"path\": item.rfilename, \"size\": len(content), \"sha256\": digest})\nassert json.loads((root / \"config.json\").read_text())[\"architectures\"] == [\"FunASRForConditionalGeneration\"]\n(root.parent / \"download-manifest.json\").write_text(json.dumps(files, indent=2) + \"\\n\")\nPY"
],
"launch": [
"CUDA_VISIBLE_DEVICES=0 PYTHONDONTWRITEBYTECODE=1 \\\nHF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 \\\nHF_HUB_DISABLE_IMPLICIT_TOKEN=1 HF_HUB_DISABLE_TELEMETRY=1 VLLM_NO_USAGE_STATS=1 \\\nVLLM_CACHE_ROOT=\"$VALIDATION_DIR/runtime-cache\" TRITON_CACHE_DIR=\"$VALIDATION_DIR/triton-cache\" \\\n\"$VLLM_PYTHON\" -B -m vllm.entrypoints.openai.api_server \\\n --model \"$MODEL_DIR\" --served-model-name fun-asr-nano-official-a4362c94 \\\n --host 127.0.0.1 --port 57185 --dtype float32 \\\n --gpu-memory-utilization 0.40 --enforce-eager"
],
"health": [
"curl --max-time 15 -fsS http://127.0.0.1:57185/health",
"curl --max-time 15 -fsS http://127.0.0.1:57185/v1/models"
],
"smoke": [
"curl --max-time 45 -fsS http://127.0.0.1:57185/v1/audio/transcriptions -F \"file=@$MODEL_DIR/example/zh.mp3;type=audio/mpeg\" -F model=fun-asr-nano-official-a4362c94 -F language=zh -F response_format=json",
"curl --max-time 45 -fsS http://127.0.0.1:57185/v1/audio/transcriptions -F \"file=@$MODEL_DIR/example/en.mp3;type=audio/mpeg\" -F model=fun-asr-nano-official-a4362c94 -F language=en -F response_format=json",
"curl --max-time 45 -fsS http://127.0.0.1:57185/v1/audio/transcriptions -F \"file=@$MODEL_DIR/example/ja.mp3;type=audio/mpeg\" -F model=fun-asr-nano-official-a4362c94 -F language=ja -F response_format=json",
"curl --max-time 45 -fsS http://127.0.0.1:57185/v1/audio/transcriptions -F \"file=@$MODEL_DIR/example/zh.mp3;type=audio/mpeg\" -F model=fun-asr-nano-official-a4362c94 -F language=zh -F 'hotwords=开放时间,开放时间,开放时间' -F response_format=json"
]
},
"http": {
"seconds_to_health": 84.12324620783329,
"requests": [
{
"method": "GET",
"path": "/health",
"request_fields": null,
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:28 GMT",
"server": "uvicorn",
"content-length": "0"
},
"seconds": 0.001022782176733017,
"response_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"body_file": "health.body",
"raw_body_utf8": ""
},
{
"method": "GET",
"path": "/v1/models",
"request_fields": null,
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:28 GMT",
"server": "uvicorn",
"content-length": "571",
"content-type": "application/json"
},
"seconds": 0.0025825612246990204,
"response_sha256": "8b4d500ad70f80251bc5d7535f3b037fb2001ba13a44a1d1e0bfa82918a6f9b7",
"body_file": "models.body"
},
{
"method": "POST",
"path": "/v1/audio/transcriptions",
"request_fields": {
"model": "fun-asr-nano-official-a4362c94",
"language": "zh",
"response_format": "json"
},
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:28 GMT",
"server": "uvicorn",
"content-length": "93",
"content-type": "application/json"
},
"seconds": 0.8895468302071095,
"response_sha256": "a81ea2be2bf7b823ecf880d8c66c67ce6b1c6d12542cd4529008a07e2c40c22e",
"body_file": "transcription-zh.body",
"text": "开饭时间早上九点至下午五点。",
"raw_body_utf8": "{\"text\":\"开饭时间早上九点至下午五点。\",\"usage\":{\"type\":\"duration\",\"seconds\":6}}"
},
{
"method": "POST",
"path": "/v1/audio/transcriptions",
"request_fields": {
"model": "fun-asr-nano-official-a4362c94",
"language": "en",
"response_format": "json"
},
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:29 GMT",
"server": "uvicorn",
"content-length": "136",
"content-type": "application/json"
},
"seconds": 0.3863455504179001,
"response_sha256": "4530a812ce88e903ee6196469cef1ffba991d035e6272b145cb487edf12a8bcb",
"body_file": "transcription-en.body",
"text": "The tribal chieftain called for the boy, and presented him with fifty pieces of gold.",
"raw_body_utf8": "{\"text\":\"The tribal chieftain called for the boy, and presented him with fifty pieces of gold.\",\"usage\":{\"type\":\"duration\",\"seconds\":8}}"
},
{
"method": "POST",
"path": "/v1/audio/transcriptions",
"request_fields": {
"model": "fun-asr-nano-official-a4362c94",
"language": "ja",
"response_format": "json"
},
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:29 GMT",
"server": "uvicorn",
"content-length": "162",
"content-type": "application/json"
},
"seconds": 0.47393732890486717,
"response_sha256": "d5c3f6c5ccbc5d026cbfcd00839b2ec8b5bc2a296fda877595c8ed27f831fd6c",
"body_file": "transcription-ja.body",
"text": "うちの中学は弁当制で、持っていけない場合は、五十円の学校販売のパンを買う。",
"raw_body_utf8": "{\"text\":\"うちの中学は弁当制で、持っていけない場合は、五十円の学校販売のパンを買う。\",\"usage\":{\"type\":\"duration\",\"seconds\":8}}"
},
{
"method": "POST",
"path": "/v1/audio/transcriptions",
"request_fields": {
"model": "fun-asr-nano-official-a4362c94",
"language": "zh",
"response_format": "json",
"hotwords": "开放时间,开放时间,开放时间"
},
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:30 GMT",
"server": "uvicorn",
"content-length": "93",
"content-type": "application/json"
},
"seconds": 0.19060998782515526,
"response_sha256": "972701daeae831b0fe97b4ace846c3cee997cdaab7c31d79e89e2c3dd0856a94",
"body_file": "transcription-zh-hotwords.body",
"text": "开放时间早上九点至下午五点。",
"raw_body_utf8": "{\"text\":\"开放时间早上九点至下午五点。\",\"usage\":{\"type\":\"duration\",\"seconds\":6}}"
},
{
"method": "POST",
"path": "/v1/audio/transcriptions",
"request_fields": {
"model": "fun-asr-nano-official-a4362c94",
"language": "en",
"response_format": "json"
},
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:30 GMT",
"server": "uvicorn",
"content-length": "136",
"content-type": "application/json"
},
"seconds": 0.7999004796147346,
"response_sha256": "4530a812ce88e903ee6196469cef1ffba991d035e6272b145cb487edf12a8bcb",
"body_file": "concurrent-en.body",
"text": "The tribal chieftain called for the boy, and presented him with fifty pieces of gold.",
"raw_body_utf8": "{\"text\":\"The tribal chieftain called for the boy, and presented him with fifty pieces of gold.\",\"usage\":{\"type\":\"duration\",\"seconds\":8}}"
},
{
"method": "POST",
"path": "/v1/audio/transcriptions",
"request_fields": {
"model": "fun-asr-nano-official-a4362c94",
"language": "ja",
"response_format": "json"
},
"status": 200,
"headers": {
"date": "Sun, 06 Sep 2026 21:05:30 GMT",
"server": "uvicorn",
"content-length": "162",
"content-type": "application/json"
},
"seconds": 0.9049098119139671,
"response_sha256": "d5c3f6c5ccbc5d026cbfcd00839b2ec8b5bc2a296fda877595c8ed27f831fd6c",
"body_file": "concurrent-ja.body",
"text": "うちの中学は弁当制で、持っていけない場合は、五十円の学校販売のパンを買う。",
"raw_body_utf8": "{\"text\":\"うちの中学は弁当制で、持っていけない場合は、五十円の学校販売のパンを買う。\",\"usage\":{\"type\":\"duration\",\"seconds\":8}}"
}
],
"two_request_wall_seconds": 0.9112209342420101
},
"clean_install_validated": false,
"first_chinese_request_warmed": false,
"guard_failure_before_server_spawn": true,
"guard_correction": "Match native vLLM import context before package inventory comparison; no dependency changes; first actual server launch succeeded.",
"cleanup": {
"all_owned_exited": true,
"server_exit_code": 0,
"loopback_port_closed": true,
"no_gpu_compute_processes": true,
"packages_unchanged": true,
"native_source_unchanged": true
},
"redactions": "Private host, user paths, GPU UUID and PIDs omitted. HTTP response_sha256 values hash original raw bytes; models.body contains a private local root and is retained privately, not embedded. Public commands substitute portable directory variables for original absolute paths; they are not an independently tested clean installer.",
"limitations": "Short functional compatibility probe only. First sequential Chinese call is not warmed. No accuracy, production capacity, or historical-benchmark equivalence claim."
}