All systems operationalAI Agent Automation Platform
English
Language简体中文EnglishSelected

Choose your language

Fun-ASR-Nano-2512-GGUF

HaujetZhao/Fun-ASR-Nano-2512-GGUF

PublisherHaujetZhao

Download access requirementsModelScope source

将 Fun-ASR-Nano 模型转换为可以在本地高效运行的格式,实现准确、快速的离线语音识别,可直接转录长音频生成 SRT。主要依赖了 llama.cpp 对 LLM Decoder 的加速推理。 ✅ 纯本地运行 - 无需网络,数据不外传 ✅ 速度快 - 混合推理架构,支持 GPU 加速 (CUDA, Vulkan, Metal)

Speech & Audio
Model details

模型介绍

中文整理

Fun-ASR-GGUF

将 Fun-ASR-Nano 模型转换为可以在本地高效运行的格式,实现**准确、快速的离线语音识别**,可直接转录长音频生成 SRT。主要依赖了 llama.cpp 对 LLM Decoder 的加速推理。

核心特性

✅ **纯本地运行** - 无需网络,数据不外传

✅ **速度快** - 混合推理架构,支持 GPU 加速 (CUDA, Vulkan, Metal)

✅ **准确率高** - Encoder 保持 FP32 精度

✅ **内存占用小** - CTC Decoder 和 LLM Decoder 使用 INT8 量化

✅ **上下文增强** - 可提供上下文信息,进一步提升识别准确率

✅ **支持热词** - 通过 CTC 预识别,基于音素提取热词,提高专业领域识别准确率,实时监控热词文件

✅ **时间戳精确** - 字符级时间戳对齐

✅ **较长音频支持** - 单次可识别长达 60 秒的音频,超长音频自动分段,智能对齐

✅ **SRT 导出** - 支持自动生成美化后的 SRT 字幕

转录速度视频演示(RTX5050)

Quick start

  • 安装依赖

推理需要:

pydub 用于音频格式转换,需要系统安装 ffmpeg

从 llama.cpp Releases 下载预编译二进制文件,将动态库放入 fun asr gguf/bin/ 文件夹:

平台 下载文件

  • ----- ----------
  • *Windows** llama-bXXXX-bin-win-vulkan-x64.zip
  • *Linux** llama-bXXXX-bin-ubuntu-x64.zip
  • *macOS** llama-bXXXX-bin-macos-arm64.zip

Linux 和 macOS 尚未经过完整测试,欢迎反馈

  • 下载模型(可选,如已有导出模型可跳过)

下载原始模型

导出模型

  • 运行识别

就这么简单!

单段音频长度在60秒内可准确识别,过长会自动分段

工作原理

为什么这样做?

  • **CTC 预识别** 提供两样东西:
  • 粗识别结果(用于筛选热词,提供给LLM)
  • 时间戳信息(为LLM的文本输出赋予时间戳)
  • **混合架构** 各取所长:
  • ONNX Runtime:运行 Encoder 和 CTC,稳定可靠
  • llama.cpp:运行 LLM,支持 GPU 加速(Vulkan, Metal),速度超快
  • **精度策略**:
  • **Encoder 用 FP32** - 保证识别准确率(INT8 影响大)
  • **CTC 和 LLM 用 INT8** - 节省内存,速度提升,准确率影响小

内存占用

  • **Encoder**(约 200M 参数)
  • FP32:~800MB 内存
  • INT8:~200MB 内存(但不推荐,准确率下降明显)
  • **CTC Decoder**:内存占用可忽略(几十 MB)
  • **LLM Decoder**(约 600M 参数)
  • INT8:~1.2GB 内存或显存(显卡内会用fp16进行计算,但比原生fp16要快)
  • FP16:~1.2GB 内存或显存
  • *总内存占用**(推荐 FP32 Encoder + INT8 Decoder):约 **2GB**(CPU 内存或 GPU 显存)

使用示例

基础用法

热词配置

创建 hot.txt 文件(每行一个热词):

特性:**

  • **实时更新**:识别程序运行期间,你可以随时修改 hot.txt 并保存,程序会通过 watchdog 自动更新内存中的热词库,无需重启。
  • **模糊召回**:热词可以有几千条、上万条,程序会根据 CTC 的粗识别结果进行音素级别的模糊匹配,找出相似度在 similar threshold 以上的热词,并取前 max hotwords 条(默认10条)作为上下文提供给 LLM Decoder 从而得到更准确的输出。

性能参考

以下是在小新Pro16GT(U9-258H + RTX5050)笔记本上的效果,60秒的睡前消息音频,转录用时2.59秒。

需要注意的是,**LLM Decoder 所需时间取决于吐出文字的数量,不适合用 RTF 描述**,睡前消息音频的文字密度非常高,短短60秒就有350个字,但这段音频的速度可以作为下限参考,即 RTF 最慢也不会慢过 0.04

在文字密度更低的音频上,识别速度还能更快。

同一段音频,纯 CPU 推理速度:

长音频推理输出示例:

Frequently Asked Questions

Q: Encoder 为什么不用 INT8?**

测试发现 Encoder 用 INT8 会有可观察到的准确率下降,建议保持 FP32,延迟上也就差个100毫秒左右。

Q: 如何选择量化级别?**

  • *Encoder**:尽量 FP32,保证精度
  • *CTC Decoder 和 LLM Decoder**:推荐 Q8 0(INT8),速度快且准确率影响小

Q: 支持哪些语言?**

Fun-ASR-Nano-2512 支持中文、英文、日文。

Fun-ASR-MLT-Nano-2512 还支持更多语言(粤语、韩文、越南语等)。

Q: 如何提高识别准确率?**

配置 hot.txt 添加领域热词

使用 context 参数提供上下文信息

Q: 输出全是「!!!!!!!!!!」怎么办?**

Intel 集成显卡的 fp16 矩阵求和计算没有使用 fp32 做临时变量,溢出为 NaN,产生了如此问题,解决办法是通过设置环境变量禁用 fp32 ,或禁用 vulkan。取决于 CPU 更快,还是集显的 fp32 更快。

文件说明

项目结构

01-Export-Encoder-Adaptor-CTC.py - 导出 Encoder 和 CTC Decoder

02-Export-Decoder-GGUF.py - 导出 LLM Decoder

03-Inference.py - 完整的使用示例

fun asr gguf/

  • core/ - 核心逻辑(资源管理、解码、编排)
  • bin/ - 存放 DLL 和二进制可执行文件
  • asr engine.py - Facade 入口类
  • srt utils.py - 字幕生成工具
  • text merge.py - 滑动窗口文本合并算法

导出的模型

技术细节

架构设计

  • *Encoder**:ONNX 格式,FP32,提取音频特征
  • *CTC Decoder**:ONNX 格式,INT8 量化,用于时间戳和热词候选
  • *LLM Decoder**:GGUF 格式,INT8 量化,llama.cpp 推理

致谢

Fun-ASR - 原始模型

llama.cpp - GGUF 推理引擎

优先采用原作者提供的中文模型卡片;仅有英文说明时由闲社AI翻译整理。重要参数、许可证和商用范围请以原文为准。

你将获得什么

完整仓库方式包含该固定版本中的权重、配置、分词器及说明文件;指定版本方式只下载所选文件或整组分片。多模态模型的投影文件、配置等依赖,请按作者说明配齐。

完整仓库可能包含多个权重格式,因此需要的磁盘空间可能大于单一格式的模型大小。下载文件不等于完成模型部署。

使用前须知

运行环境

运行模型需要的设备、工具与依赖,以原作者说明为准。

授权范围

是否允许商用、修改和分发,请查看模型许可证。

闲社提供资料与镜像下载方法,不代表已运行模型或完成安全审计。下载的代码应先检查,再执行。

Back to top