Skip to main content

fasr logo

fasr

fasr 是一个面向生产场景的 Python 语音推理框架,重点提供插件化模型生态、 高效离线流水线,以及可高并发部署的实时语音识别服务能力。

📖 英文文档地址: README_EN.md

主要特征

  • 插件化模型生态与自由组合:VAD、ASR、降噪、标点、语种识别等能力都以插件包提供,通过统一 registry 按需安装、按需加载、按需组合,同一套框架可以快速切换不同模型搭配。
  • 异步执行组件,离线识别效率高:流水线组件以独立线程和队列协同执行,适合离线批量转写、预处理和多阶段推理,能够更高效地利用 CPU / GPU 资源完成长音频处理。
  • 实时语音识别支持高并发:realtime service 基于 WebSocket 和异步处理链路构建,适合多会话并发接入,并且可以组合流式 VAD、流式 ASR 与实时降噪模型完成在线识别。
  • 统一的批量与流式抽象:核心数据结构和模型接口同时覆盖 offline / streaming / service 场景,便于从本地推理平滑扩展到服务部署。

快速开始

先判断你的场景:

  • 如果你要处理麦克风、会议、电话等实时音频流,请看下面的 实时语音识别服务
  • 如果你要处理本地录音、远程音频文件或批量转写任务,请看下面的 离线语音识别服务

快速开始优先使用扁平 CLI 参数,先把服务跑起来;如果后续需要细调模型参数, 再切换到 cfg 模式。示例里的模型组合只是一个可直接验证链路的起点,你也可以 替换成下方“支持的模型插件”里任意支持同类能力的模型。

实时语音识别服务

realtime service 至少需要一个支持 streaming 的 VAD 模型和一个支持 streaming 的 ASR 模型,以及一个支持 streaming 的 enhance 模型。 如果觉得降噪后人声被削薄、太闷,或者有一点金属感,可以在 service 层把 enhancement_strength 调低一些,把部分原音混回来。

  1. 安装服务和对应的流式模型插件:
pip install fasr-service-realtime fasr-vad-fsmn fasr-asr-paraformer fasr-enhancement-deepfilternet
  1. 一行命令启动带有实时降噪的语音识别服务:
fasr-service-realtime serve \
  --vad fsmn_online \
  --asr paraformer_online \
  --enhance deepfilternet \
  --host 0.0.0.0 \
  --port 8000

服务启动后,你可以直接打开 http://127.0.0.1:8000/demo 使用内置网页 demo。 这个 demo 现在既支持上传音频文件测试 /enhance,也支持在 realtime 页直接用 本地音频文件走 WebSocket 实时识别链路,并调节 VAD 参数和 enhancement_strength

  1. 如果需要详细控制模型参数,再生成配置文件:
fasr-service-realtime init \
  --cfg realtime.cfg \
  --vad silero \
  --asr paraformer_online \
  --enhance deepfilternet
fasr-service-realtime serve --cfg realtime.cfg

init 默认会按 silero / paraformer_online / deepfilternet 生成配置, 并把 service 默认配置和所选模型的默认参数写入 realtime.cfg。如果要替换模型 或调节模型细项,请直接编辑这个配置文件。realtime service 的 [service.enhancement_model] 中的 enhancement_strength 默认是 1.0,表示使用纯增强输出。

离线语音识别服务

transcribe service 至少需要 VADASRpuncenhance 都是可选的, 可以按场景叠加到同一条离线流水线里。

  1. 安装服务和对应的离线模型插件:
pip install fasr-service-transcribe fasr-vad-marblenet fasr-asr-paraformer fasr-punc-ct-transformer
  1. 一行命令启动离线语音识别服务:
fasr-service-transcribe serve \
  --vad marblenet \
  --asr paraformer \
  --punc ct_transformer \
  --host 0.0.0.0 \
  --port 8000

服务启动后,会暴露 POST /transcribePOST /inference 接口;你也可以直接 打开 http://127.0.0.1:8000/demo 使用内置网页 demo 测试转写链路。

  1. 如果需要详细控制模型参数,再生成配置文件:
fasr-service-transcribe init \
  --cfg transcribe.cfg \
  --vad marblenet \
  --asr paraformer \
  --enhance deepfilternet \
  --punc ct_transformer
fasr-service-transcribe serve --cfg transcribe.cfg

init 会把 service 默认配置和所选模型的默认参数写入 transcribe.cfg。如果 要替换模型或调整模型参数,请直接编辑这个配置文件。--punc--enhance 都不是必选项,只有在你需要标点恢复或转写前增强时才需要传。

支持的模型插件

fasr 通过模型插件发现并加载模型。当前仓库内置的模型插件如下:

能力 插件包 配置写法 模式 设备 说明
语音活动检测(VAD) fasr-vad-marblenet @vad_models = "marblenet" Batch CPU only CPU 友好的 ONNX VAD
语音活动检测(VAD) fasr-vad-fsmn @vad_models = "fsmn" Batch CPU / GPU 离线 FSMN VAD
语音活动检测(VAD) fasr-vad-fsmn @vad_models = "fsmn_online" Streaming CPU / GPU 实时 FSMN VAD
语音活动检测(VAD) fasr-vad-firered @vad_models = "firered" Batch CPU / GPU FireRed 离线 VAD
语音活动检测(VAD) fasr-vad-silero @vad_models = "silero" Batch + streaming CPU / GPU 本地内置 TorchScript 权重的 Silero VAD
语音增强(Enhancement) fasr-enhancement-rnnoise @enhancement_models = "rnnoise" Batch + streaming CPU only 轻量 RNNoise 降噪
语音增强(Enhancement) fasr-enhancement-deepfilternet @enhancement_models = "deepfilternet" Batch + streaming CPU only Rust 后端 DeepFilterNet 降噪
语音增强(Enhancement) fasr-enhancement-gtcrn @enhancement_models = "gtcrn" Batch + streaming CPU only GTCRN 降噪
语音增强(Enhancement) fasr-enhancement-dtln @enhancement_models = "dtln" Batch + streaming CPU only 内置双 ONNX 的 DTLN 降噪
语音识别(ASR) fasr-asr-paraformer @asr_models = "paraformer" Batch CPU / GPU 离线 paraformer
语音识别(ASR) fasr-asr-paraformer @asr_models = "seaco_paraformer" Batch CPU / GPU paraformer热词模型
语音识别(ASR) fasr-asr-paraformer @asr_models = "paraformer_online" Streaming CPU / GPU 实时 paraformer
语音识别(ASR) fasr-asr-qwen3asr @asr_models = "qwen3asr" Batch + streaming GPU only Qwen3-ASR 统一入口,可在插件配置中选择 0.6B1.7B 尺寸
语音识别(ASR) fasr-asr-mega @asr_models = "mega_asr" Batch GPU only Mega-ASR 官方离线推理接口适配
语音识别(ASR) fasr-asr-firered @asr_models = "firered_aed" / @asr_models = "firered_llm" Batch CPU / GPU FireRed ASR 变体
语音识别(ASR) fasr-asr-funasr @asr_models = "fun_asr_nano" Batch CPU / GPU FunASR Nano
标点恢复(Punc) fasr-punc-ct-transformer @punc_models = "ct_transformer" Batch CPU / GPU 中文标点恢复
语种识别(LID) fasr-lid-firered @lid_models = "firered" Batch CPU / GPU FireRed 语种识别

接口文档

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fasr-0.5.8.tar.gz (98.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fasr-0.5.8-py3-none-any.whl (4.4 MB view details)

Uploaded Python 3

File details

Details for the file fasr-0.5.8.tar.gz.

File metadata

  • Download URL: fasr-0.5.8.tar.gz
  • Upload date:
  • Size: 98.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fasr-0.5.8.tar.gz
Algorithm Hash digest
SHA256 a031b073b27d8d56b3f14f216a0a668a9c1d67378d41aff1045a067880dd22fc
MD5 bc9186e723e28b95b687074bc3a2555e
BLAKE2b-256 ba5f8af8eca4c3429c3ad63846fe1456262750492516de90ed20cc6250e218f9

See more details on using hashes here.

File details

Details for the file fasr-0.5.8-py3-none-any.whl.

File metadata

  • Download URL: fasr-0.5.8-py3-none-any.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fasr-0.5.8-py3-none-any.whl
Algorithm Hash digest
SHA256 579e78571e757be366bf3866a25f55a18e1e247d195f18705a586419207eb78a
MD5 ff36d11432a4e50022f996b2bf17c723
BLAKE2b-256 eb2751c0273cdd24110776ee2b9fc50ca5911abcf5294f045de12e4117b75c4f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.8 This release

2 files

0.5.7

1 file

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0.post0

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.9

2 files

0.3.7.post2

2 files

0.3.7.post1

2 files

0.3.7.post0

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.0

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page