
如何不用 FunASR 工具包用 Transformers 5.17.0 跑通 Fun-ASR-Nano 的第一段转写【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR如果你的目标是在 Python 里得到 Fun-ASR-Nano 模型的第一段语音转写文本但不想安装 FunASR 工具包、不想克隆任何源码仓库Transformers 5.17.0 这条路径可以满足正式发布的 5.17.0 wheel 已包含 Fun-ASR-Nano 原生支持直接通过AutoProcessor和AutoModelForSpeechSeq2Seq加载模型即可不需要执行模型仓库自带的远程 Python 代码trust_remote_codeFalse。本文对应的已验证环境是 Linux x86-64、Python 3.12、CPU float32不需要 GPU。依据来自仓库中的 docs/transformers_native_zh.md英文对照见 docs/transformers_native.md。注意两点前提必须使用独立环境不要在已有的 FunASR 或 vLLM 服务环境里就地升级torch 与 torchaudio 版本必须匹配因为原生特征提取器依赖torchaudio.compliance.kaldi.fbank。安装固定版本的依赖在独立目录中按文档执行以下命令。第一条命令用 Python 3.12 创建虚拟环境第二条安装 CPU 版的 torch 2.10.0 与 torchaudio 2.10.0第三条固定安装 transformers 5.17.0 及配套的 numpy、librosa、soundfile、huggingface-hub、tokenizers最后用pip check检查依赖一致性python3.12 -m venv .venv-funasr-native . .venv-funasr-native/bin/activate python -m pip install --index-url https://download.pytorch.org/whl/cpu \ torch2.10.0cpu torchaudio2.10.0cpu python -m pip install transformers5.17.0 numpy1.26.4 \ librosa0.11.0 soundfile0.13.1 \ huggingface-hub1.30.0 tokenizers0.23.2 python -m pip check版本必须精确到文档给定的值文档明确指出 5.16.1 不包含 Fun-ASR-Nano 模型在旧版本里加载会失败新环境应直接安装上面的 5.17.0 正式包而不是走旧版文档中的源码安装方式。运行第一段转写下面的示例是文档给出的最短路径加载固定 revision 的模型转写一段固定的官方英文样例音频。首次运行会从 Hugging Face 下载约 1.66 GB 的模型权重model.safetensors大小为 1,659,773,320 字节SHA256 为1bbb6dcc5d8b75084a399d48c4d4b0f3aa1d3f09f2616ae40ed2c4fba03d89c9之后走本地缓存。import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor torch.set_num_threads(4) model_id FunAudioLLM/Fun-ASR-Nano-2512-hf revision d93b302ee7fd505e1b3576120fc142fc6f7820e1 audio https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/272c57b82523ada6fd87095e955f8e29100979ab/example/en.mp3 processor AutoProcessor.from_pretrained( model_id, revisionrevision, trust_remote_codeFalse, tokenFalse ) model AutoModelForSpeechSeq2Seq.from_pretrained( model_id, revisionrevision, trust_remote_codeFalse, tokenFalse, dtypetorch.float32, ).to(cpu).eval() inputs processor.apply_transcription_request( audioaudio, languageen, processor_kwargs{ return_tensors: pt, audio_kwargs: {sampling_rate: 16000}, text_kwargs: {padding: True}, }, ) with torch.inference_mode(): generated model.generate(**inputs, max_new_tokens128, do_sampleFalse) new_tokens generated[:, inputs.input_ids.shape[1]:] print(processor.batch_decode(new_tokens, skip_special_tokensTrue)[0])几个决定能否跑通的细节模型 ID 必须带-hf后缀FunAudioLLM/Fun-ASR-Nano-2512-hf并固定文档给出的 revisiond93b302ee7fd505e1b3576120fc142fc6f7820e1。该 revision 解析到FunAsrNanoForConditionalGeneration可以配合trust_remote_codeFalse使用。audio也可以换成本地音频路径或支持的 URL但原始波形必须使用真实采样率不能把 48 kHz 的数组标成 16 kHz语言参数取zh、en或ja。模型的generate输出同时包含输入提示和生成结果所以解码前要用inputs.input_ids.shape[1]把完整输入宽度截掉否则打印出的文本会带上提示部分。max_new_tokens128是短样例的生成上限do_sampleFalse保证结果确定。判断结果是否成功跑通的标准是print出一段非空转写文本。文档中记录的实测原始输出示例结果不是每次运行的固定预期也不构成质量承诺为“The tribal chieftain called for the boy, and presented him with fifty pieces of gold.”关于生成完成度文档给出的判断口径是没有 EOS 可能意味着被 128 token 上限截断单纯提高上限并不能证明长录音被完整覆盖出现 EOS 也不代表每个字都识别正确。如果你后续换用自己的录音做验证可以参照后文命令行示例的reached_eos报告方式。加载失败时先检查什么文档给出的排查顺序是不需要加载模型权重即可执行确认当前激活的解释器是否就是新建的虚拟环境检查transformers.__version__是否为 5.17.05.16.1 不含此模型确认模型 ID 是-hf版本、revision 与文档一致原生类位于transformers.models.fun_asr_nano可据此确认加载路径。文档还提供一个可选的合成静音预处理检查只下载 processor、不下载模型权重用一段np.zeros(16000, dtypenp.float32)的静音波形走一遍apply_transcription_request打印各输入张量形状用于区分“processor 层没装好”和“模型加载失败”。注意文档明确提醒预处理成功不代表准确率或容量验证。这条路径的能力边界在决定用原生 Transformers 而不是其他接入方式之前先确认你的需求不超出它的范围。文档列出的限制原生 Transformers 支持不自动提供 HTTP 服务、请求队列、流式协议、字级时间戳或说话人身份该原生导出不包含 CTC 时间戳分支。基础 Nano checkpoint 覆盖中、英、日以及中文方言/口音31 语言的 MLT 版本是独立的 checkpoint不能只替换模型 ID。keywords参数只是词汇提示、prompt是上下文都不是强制词典也不是 FunASR 工具库的hotword参数。文档给出的实测案例中文样例加入开放时间后原始输出仍为开饭时间提示词没有纠正它。如果目标需要转写加匿名说话人和片段时间戳文档指向第三方 OpenMOSS 的 MOSS 指南仓库内 docs/moss_transcribe_diarize.md需要 FunASR 流水线和 HTTP 适配器时应改用FunAudioLLM/Fun-ASR-Nano-2512配funasr.AutoModel这些是不同的工件接口不互换。GPU 场景下的 dtype、attention 后端、显存和并发都需要在实际目标硬件上另行验证本文的验证记录只覆盖上述 CPU float32 环境。下一步需要转写自己的录音、做批量或加入输入校验时文档指向 QwenAudio/Fun-ASR 代码仓库注意是代码仓库不是 HF 权重仓库中的命令行示例examples/transformers/transcribe.py用法形如python examples/transformers/transcribe.py recording.wav --language zh --keywords 开放时间 python examples/transformers/transcribe.py chinese.wav english.wav --language zh en该示例会把多声道取均值为单声道并用soxr_hq重采样到 16 kHz不覆盖原始文件接受 1-4 个文件、总时长最多 60 秒过长、空输入和非有限采样值会被拒绝而不是静默截断CLI 会输出reached_eos缺少 EOS 或文本为空时以非零状态退出。评估应用时建议保留版本号、输入摘要和原始结果便于对照复查。【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考