Skip to content

PaddleSpeech Server RESTful API

Hui Zhang edited this page Jan 10, 2023 · 34 revisions

PaddleSpeech语音服务接口定义

1. 服务使用说明

下述定义了几种语音任务的服务接口,包括语音识别服务,语音合成服务等。

1.1 请求方式

如无特殊声明,统一使用HTTP POST方法application/json格式;除附带请求字段说明,所有的请求字段均必有。

1.2 返回格式

正常情况下都会返回HTTP 200状态码,结果同样是application/json格式。

字段 必选 类型 说明
success bool 表示请求成功与否
code int 错误码。success=true 的时候,code 必然为 0。success=false 的时候,code 为具体的错误码。
message json 用来描述错误信息
requestId string 一次请求的唯一标识,作trace用
result json 具体的返回内容,在每个接口会详细阐述
{
    "success": true,
    "code": 0,
    "message": {"description": "everything is ok"},
    "requestId": "0543d7a8-87f2-451f-91b1-2b8d240170d6",
    "result": XXX // 具体返回内容,在每个接口会详细阐述。
}

2. ASR(语音识别)

2.1 获取ASR服务使用方式

  • url:GET /paddlespeech/asr/help

  • 返回固定 result 描述 (TODO)

{
    "success": true,
    "code": 0,
    "message": {"global": "success" },
    "result": {
	"description":"",
	"input": <wavfile>,
        "output": <results>
    }
}

2.2 语音识别

  • url:POST /paddlespeech/asr
  • 请求body参数
字段 必选 类型 说明
audio string 将音频文件进行 base64编码后得到的 string
audio_format string 合成音频文件格式,可选:pcm、wav,默认值:wav
sample_rate int 音频的采样率,值选择 [8000, 16000],默认与模型采样率一致
lang string 语种 zh_cn:中文; zh_tw: 台湾普通话; en_us:英文
punc bool 是否开启标点符号添加 true:开启 false:关闭(默认值)
  • 请求示例
{
    "audio": "exSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJf...",
    "audio_format": "wav",
    "sample_rate": 16000,
    "lang": "zh_cn",
    "punc": 0
}
  • 返回result描述
字段 必选 类型 说明
transcription string asr识别结果
  • 返回示例
{
    "success": true,
    "code": 0,
    "message": {"description": "success" }
    "result": {
	"transcription": "你好,飞桨"
    }
}

3. TTS(语音合成)

3.1 获取TTS服务使用方式

  • url:GET /paddlespeech/tts/help

  • 返回固定 result 描述

{
    "success": true,
    "code": 0,
    "message": {"global": "success" },
    "result": {
        "description":"",
        "input": <sentence to be synthesized>,
	"output": <wavfile>
    }
}

3.2 合成语音

  • url:POST /paddlespeech/tts

  • 请求body参数

字段 必选 类型 说明
text string 待合成文本
spk_id int 发音人id,未使用到,默认:0
speed float 合成音频的语速,值范围:(0,3],默认:1.0,windows 平台不支持变语速
volume float 合成音频的音量,值范围:(0,3],默认:1.0,值过大可能会存在截幅现象
sample_rate int 合成音频的采样率,只支持下采样,值选择 [0, 8000, 16000],默认:0,表示与模型采样率一致
save_path string 通过此参数,可以在合成完成后在本地保存一个音频文件,默认值:None,表示不保存音频,保存音频格式支持wav和pcm
  • 请求示例
{
    "text": "你好,欢迎使用百度飞桨深度学习框架!",
    "spk_id": 0,
    "speed": 1.0,
    "volume": 1.0,
    "sample_rate": 0,
    "save_path": "./tts.wav"
}
  • 返回result描述
字段 必选 类型 说明
lang string 待合成文本语言(zh or en)
spk_id int 发音人id
speed float 合成音频的语速,值范围:[0,3]
volume float 合成音频的音量,值范围:[0,3]
sample_rate int 合成音频的采样率
duration float 合成音频的时长,单位为秒
save_path string 保存的合成音频路径
audio string 合成音频的base64
  • 返回示例
{
    "success": true,
    "code": 0,
    "message": {"global": "success" }
    "result": {
	"lang": "zh",
	"spk_id": 0,
	"speed": 1.0,
	"volume": 1.0,
	"sample_rate": 24000,
        "duration": 3.6125,
	"save_path": "./tts.wav",
	"audio": "LTI1OTIuNjI1OTUwMzQsOTk2OS41NDk4..."
    }
}

3.3 使用http协议的流式语音合成

  • url:POST /paddlespeech/tts/streaming

  • 请求body参数

字段 必选 类型 说明
text string 待合成文本
spk_id int 发音人id,目前是单发音人模型,因此该参数未生效,默认:0
  • 请求示例
{
    "text": "你好,欢迎使用百度飞桨深度学习框架!",
    "spk_id": 0
}
  • 返回result描述

返回为音频经过 base64 编码的 string.

  • 返回示例
LTI1OTIuNjI1OTUwMzQsOTk2OS41NDk4...

4. CLS(声音分类)

4.1 获取CLS服务使用方式

  • url:GET /paddlespeech/cls/help

  • 返回固定 result 描述

{
    "success": true,
    "code": 0,
    "message": {"global": "success" },
    "result": {
        "description": "cls server",
	"input": "base64 string of wavfile",
	"output": "classification result"
    }
}

4.2 语音分类

  • url:POST /paddlespeech/cls
  • 请求body参数
字段 必选 类型 说明
audio string 将音频文件进行 base64编码后得到的 string
topk int 返回top k 个分类结果,默认为1
  • 请求示例
{
    "audio": "exSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJf...",
    "topk ": 2
}
  • 返回result描述
字段 必选 类型 说明
topk int top k 的数量
results List 分类结果数组,从高到低排序

results 字段说明

字段 必选 类型 说明
class_name string 类别
prob float 为该类别的概率
  • 返回示例
{
    "success": true,
    "code": 200,
    "message": {"description": "success" }
    "result": {
        topk: 2,
	results: [
	{
            "class_name":"Speech",
            "prob": 0.9027184844017029
        },
        {
            "class_name":"Narration, monologue",
            "prob": 0.17632535099983215
        }]
    }
}

5. ST(语音翻译(英-中))

TODO

6. Text(文本后处理)

6.1 获取Text服务使用方式

  • url:GET /paddlespeech/text/help

  • 返回固定 result 描述

{
    "success": true,
    "code": 0,
    "message": {"global": "success" },
    "result":{
            "punc_text":"The punctuation text content"
    }
}

6.2 文本后处理

  • url:POST /paddlespeech/text

  • 请求body参数

字段 必选 类型 说明
text string 需要进行处理的文本内容
  • 请求示例
{
    "text": "我认为跑步最重要的就是给我带来了身体健康",
}
  • 返回result描述
字段 必选 类型 说明
punc_text string 经过处理之后的文本
  • 返回示例
{
    "success": true,
    "code": 200,
    "message": {"description": "success" }
    "result": {
        "punc_text": "我认为跑步最重要的就是给我带来了身体健康。"
    }
}

错误码

待更新完善

code 类型类型 说明
200 int 服务正常
400 int 请求参数设置不正确
404 int 网址不正确
500 int 内部错误
502 int 内部网络IO异常
509 int 未知错误
Clone this wiki locally