You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PaddleSpeech/demos/speech_web/API.md

6.8 KiB

接口文档

开启服务后可参照:

http://0.0.0.0:8010/docs

ASR

【POST】/asr/offline

说明:上传 16k, 16bit wav 文件,返回 offline 语音识别模型识别结果

返回: JSON

前端接口: ASR-端到端识别,音频文件识别;语音指令-录音上传

示例:

{
  "code": 0,
  "result": "你也喜欢这个天气吗",
  "message": "ok"
}

【POST】/asr/offlinefile

说明上传16k,16bit wav文件返回 offline 语音识别模型识别结果 + wav 数据的 base64

返回: JSON

前端接口: 音频文件识别(播放这段base64还原后记得添加 wav 头,采样率 16k, int16添加后才能播放)

示例:

{
  "code": 0,
  "result": {
    "asr_result": "今天天气真好",
    "wav_base64": "///+//3//f/8/////v/////////////////+/wAA//8AAAEAAQACAAIAAQABAP"
    },
  "message": "ok"
}

【POST】/asr/collectEnv

说明: 通过采集环境噪音,上传 16k, int16 wav 文件,来生成后台 VAD 的能量阈值, 返回阈值结果

前端接口ASR-环境采样

返回: JSON

{
  "code": 0,
  "result": 3624.93505859375,
  "message": "采集环境噪音成功"
}

【GET】/asr/stopRecord

说明:通过 GET 请求 /asr/stopRecord, 后台停止接收 offlineStream 中通过 WS 协议 上传的数据

前端接口:语音聊天-暂停录音(获取 NLP播放 TTS 时暂停)

返回: JSON

{
  "code": 0,
  "result": null,
  "message": "停止成功"
}

【GET】/asr/resumeRecord

说明:通过 GET 请求 /asr/resumeRecord, 后台停止接收 offlineStream 中通过 WS 协议 上传的数据

前端接口:语音聊天-恢复录音( TTS 播放完毕时,告诉后台恢复录音)

返回: JSON

{
  "code": 0,
  "result": null,
  "message": "Online录音恢复"
}

【Websocket】/ws/asr/offlineStream

说明:通过 WS 协议,将前端音频持续上传到后台,前端采集 16kInt16 类型的PCM片段持续上传到后端

前端接口:语音聊天-开始录音,持续将麦克风语音传给后端,后端推送语音识别结果

返回后端返回识别结果offline 模型识别结果, 由WS推送

【Websocket】/ws/asr/onlineStream

说明:通过 WS 协议,将前端音频持续上传到后台,前端采集 16kInt16 类型的 PCM 片段,持续上传到后端

前端接口ASR-流式识别开始录音,持续将麦克风语音传给后端,后端推送语音识别结果

返回后端返回识别结果online 模型识别结果, 由 WS 推送

NLP

【POST】/nlp/chat

说明:返回闲聊对话的结果

前端接口:语音聊天-获取到ASR识别结果后向后端获取闲聊文本

上传示例:

{
  "chat": "天气非常棒"
}

返回示例:

{
  "code": 0,
  "result": "是的,我也挺喜欢的",
  "message": "ok"
}

【POST】/nlp/ie

说明:返回信息抽取结果

前端接口:语音指令-向后端获取信息抽取结果

上传示例:

{
  "chat": "今天我从马来西亚出发去香港花了五十万元"
}

返回示例:

{
  "code": 0,
  "result": [
    {
      "时间": [
        {
          "text": "今天",
          "start": 0,
          "end": 2,
          "probability": 0.9817976247505698
        }
      ],
      "出发地": [
        {
          "text": "马来西亚",
          "start": 4,
          "end": 8,
          "probability": 0.974892389414169
        }
      ],
      "目的地": [
        {
          "text": "马来西亚",
          "start": 4,
          "end": 8,
          "probability": 0.7347504438136951
        }
      ],
      "费用": [
        {
          "text": "五十万元",
          "start": 15,
          "end": 19,
          "probability": 0.9679076530644402
        }
      ]
    }
  ],
  "message": "ok"
}

TTS

【POST】/tts/offline

说明:获取 TTS 离线模型音频

前端接口TTS-端到端合成

上传示例:

{
  "text": "天气非常棒"
}

返回示例:对应音频对应的 base64 编码

{
  "code": 0,
  "result": "UklGRrzQAABXQVZFZm10IBAAAAABAAEAwF0AAIC7AAACABAAZGF0YZjQAAADAP7/BAADAAAA...",
  "message": "ok"
}

【POST】/tts/online

说明:流式获取语音合成音频

前端接口:流式合成

上传示例:

{
  "text": "天气非常棒"
}

返回示例:

二进制PCM片段16k Int 16类型

VPR

【POST】/vpr/enroll

说明:声纹注册,通过表单上传 spk_id字符串非空, 与 audio (文件)

前端接口:声纹识别-声纹注册

上传示例:

curl -X 'POST' \
  'http://0.0.0.0:8010/vpr/enroll' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'spk_id=啦啦啦啦' \
  -F 'audio=@demo_16k.wav;type=audio/wav'

返回示例:

{
  "status": true,
  "msg": "Successfully enroll data!"
}

【POST】/vpr/recog

说明:声纹识别,识别文件,提取文件的声纹信息做比对 音频 16k, int 16 wav 格式

前端接口:声纹识别-上传音频,返回声纹识别结果

上传示例:

curl -X 'POST' \
  'http://0.0.0.0:8010/vpr/recog' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'audio=@demo_16k.wav;type=audio/wav'

返回示例:

[
  [
    "啦啦啦啦",
    [
      "",
      100
    ]
  ],
  [
    "test1",
    [
      "",
      11.64
    ]
  ],
  [
    "test2",
    [
      "",
      6.09
    ]
  ]
]

【POST】/vpr/del

说明: 根据 spk_id 删除用户数据

前端接口:声纹识别-删除用户数据

上传示例:

{
 "spk_id":"啦啦啦啦"
}

返回示例

{
  "status": true,
  "msg": "Successfully delete data!"
}

【GET】/vpr/list

说明:查询用户列表数据,无需参数,返回 spk_id 与 vpr_id

前端接口:声纹识别-获取声纹数据列表

返回示例:

[
  [
    "test1",
    "test2"
  ],
  [
    9,
    10
  ]
]

【GET】/vpr/data

说明: 根据 vpr_id 获取用户vpr时使用的音频

前端接口:声纹识别-获取vpr对应的音频

访问示例:

curl -X 'GET' \
  'http://0.0.0.0:8010/vpr/data?vprId=9' \
  -H 'accept: application/json'

返回示例:

对应音频文件

【GET】/vpr/database64

说明: 根据 vpr_id 获取用户 vpr 时注册使用音频转换成 16k, int16 类型的数组,返回 base64 编码

前端接口:声纹识别-获取 vpr 对应的音频(注意:播放时需要添加 wav头16k,int16, 可参考 tts 播放时添加 wav 的方式,注意更改采样率)

访问示例:

curl -X 'GET' \
  'http://localhost:8010/vpr/database64?vprId=12' \
  -H 'accept: application/json'

返回示例:

{
  "code": 0,
  "result":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "message": "ok"