# Fun-ASR-Nano-API
**Repository Path**: lukeewin/Fun-ASR-Nano-API
## Basic Information
- **Project Name**: Fun-ASR-Nano-API
- **Description**: 这是一个使用Fun-ASR-Nano-2512模型转写的API接口,可私有化部署,无需联网,支持国内外多种语言,中文包括7种方言(吴语、粤语、闽语、客家话、赣语、湘语、晋语)和26种地方口音(河南、山西、湖北、四川、重庆、云南、贵州、广东、广西及其他20多个地区)英文和日文涵盖多种地方口音。此外还支持歌词识别和说唱语音识别。
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-01-11
- **Last Updated**: 2026-01-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Fun-ASR-Nano-API使用说明
# 1. API介绍
该项目使用阿里开源的`Fun-ASR-Nano-2512`模型。支持多种国内外语音识别,更具体内容可以点击[这里](https://modelscope.cn/models/FunAudioLLM/Fun-ASR-Nano-2512)。
一共有三个接口,一个同步接口,一个异步接口,一个获取异步转写结果接口。
默认占用`9090`端口,如果该端口已经被占用,可以修改使用其它端口。
```markdown
同步接口 /asr
异步接口 /asr/async
获取结果接口 /asr/result/{task_id}
```
## 1.1 同步接口
适合对短音频转写,比如一句话识别。
发送POST请求,form-data形式。
```shell
curl -X POST -F "file=@your_audio" http://localhost:9090/asr
```
接口响应如下:
```json
{"code":200,"status":"success","message":"请求成功","data":"现在我来录制十秒钟的音频,来测试一下一句话识别,看看识别的速度怎么样。"}
```
也支持音频`URL`方式转写。
```shell
curl -X POST -F "audio_url=https://modelscope.cn/models/FunAudioLLM/Fun-ASR-Nano-2512/resolve/master/example/zh.mp3" http://localhost:9090/asr
```
## 1.2 异步接口
适合长音频转写。
发送POST请求,form-data形式。
```shell
curl -X POST -F "file=@your_audio" http://localhost:9090/asr/async
```
接口会响应如下。
```json
{
"code": 200,
"status": "success",
"message": "请求成功",
"data": {
"task_id": "0a621df553ad421e98fca42684298630"
}
}
```
## 1.3 获取结果接口
上面的异步接口中返回的`task_id`,这个接口中需要使用。
该接口发送GET请求,把`task_id`放到请求路径中。
```shell
http://localhost:9090/asr/result/0a621df553ad421e98fca42684298630
```
接口返回的code=201表示正在转写中,返回200表示转写完成,其它状态码均为异常。
```json
{
"code": 201,
"status": "success",
"message": "正在转写中",
"data": {
"task_id": "21e73fe9d069493c9b5d1e398e3dc616"
}
}
```
```json
{
"code": 200,
"status": "success",
"message": "请求成功",
"data": {
"text": "我是第一个说话人,现在我录制一段声音来测试一下。 直接跑路了,我连传达的机会都没有。 我现在回到我车上,我想了一下,我明天 他24小时失联才能报警吗?我明天下午。 的时候我就去报警,但是我很庆幸的是我 今天30号。 来店里面了,如果我今天不来,他房租到期了之后,东西都搬空了,那个时候来也没有意义了,幸好。 这个是第二个人的一个声音,然后这段音频中包含了两个人的声音,一个是我自己的一个声音,然后另外一个是我播放啊,另外一个啊视频里面的一个声音。然后现在我们啊来试一下啊,现在有一分钟的一个音频了,我们试一下吧。"
}
}
```
```json
{
"code": 300,
"status": "success",
"message": "转写任务不存在",
"data": {
"task_id": "21e73fe9d069493c9b5d1e398e3dc618"
}
}
```
# 2. 安装依赖
```shell
pip install funasr fastapi ffmpeg-python uvicorn transformers zhconv torch torchaudio
```
同时还需要确保你的服务器中安装`ffmpeg`并且配置了系统环境变量,以及还需要安装`MySQL`数据库,并且导入项目中的`sql`代码。
# 3. 其它
视频演示以及代码讲解,[点击这里跳转B站](https://www.bilibili.com/video/BV1x26UB2E6Y/)。
博客:https://blog.lukeewin.top
公众号:编程分享录
如果觉得这个项目对你有用,记得在右上角点击一下`Star`,非常感谢你。
如果不会部署,可微信添加`lukeewin01`,进行有偿部署,添加时需要备注来自哪个平台,为啥添加,否则不给通过。