美文网首页
2018-07-17

2018-07-17

作者: PONPON__ | 来源:发表于2019-07-12 14:00 被阅读0次

简介

快商通声纹识别通过 REST API 的方式给开发者提供一个通用的 HTTP 接口。

声纹识别

快商通声纹识别提供3种文本类型模型。

文本无关(ti: text-independent): 声纹注册、声纹验证、声纹辨认,语音内容所读文本不同。

文本相关(td: text-dependent): 声纹注册、声纹验证、声纹辨认,语音内容所读文本一致(例如注册与验证,辨认所用语音文本皆为“芝麻开门”)。

随机动态口令(rd: random-digit):声纹注册、声纹验证、声纹辨认,语音内容所读文本为8位随机数字串。

文本无关

文本无关(ti: text-independent):声纹注册、声纹验证、声纹辨认,语音内容所读文本不同。文本无关对语音有时长要求,在注册场景,需要有效时长大于30秒的语音,而且验证和辨认场景,需要有效时长大于15秒的语音。文本无关适用于交谈对话,或按照一定范文朗读产生的长语音。

文本相关

文本相关(td: text-dependent): 声纹注册、声纹验证、声纹辨认,语音内容所读文本一致(例如注册与验证,辨认所用语音文本皆为“芝麻开门”)。在注册场景需要朗读3遍以上相同文本内容的语音用来注册声纹模型。

随机动态口令

随机动态口令(rd: random-digit):声纹注册、声纹验证、声纹辨认,语音内容所读文本为8位随机数字串。在注册场景需要朗读3遍以上8位随机数字串文本内容的语音用来注册声纹模型。

语音格式

格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、mp3(压缩格式)。推荐wav。采样率 :8000或16000 固定值。 编码:16bit 位深。

接口说明

快商通声纹识别接口url为:https://vpr.kuaishang.cn,在调用 /kst/enroll 注册声纹模型前,需先调用 /kst/upload 上传N段语音(N>=1)。

上传注册语音

<a id=上传注册语音> </a>

基本信息

Path: /kst/upload

Method: POST

接口描述:

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type multipart/form-data

Query

参数名称 是否必须 示例 备注
type ti 文本类型: ti 文本无关,td 文本相关,rd 随机动态口令
node icbc 一个声纹库节点,即一组说话人集合
spkid 56789 一个声纹库节点中的说话人模型标识id
wavtype wav 上传的语音文件格式,支持 wav, mp3, pcm
channel 0 表示待处理的声道 0:左声道;1:右声道。如果单声道语音文件,则必须取0
replaydetect true 是否开启防录音冒充检测功能
snrdetect false 是否开启信噪比检测功能
asrdetect false 是否开启随机数字串文本内容识别
step 1 注册语音需多条语音上传, step表示上传的第step条语音, step >=1
text 12345678 当前上传语音文件的随机数字串文本内容

Body

参数名称 参数类型 是否必须 示例 备注
file file

返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> asr_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">内容识别结果是否通过</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码,不为0代表上传注册语音失败</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr><tr key=0-3><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> replay_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">防录音冒充检测结果是否通过</span></td><td key=5></td></tr><tr key=0-4><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> replay_score</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">防录音冒充检测得分</span></td><td key=5></td></tr><tr key=0-5><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> asr</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">内容语音识别</span></td><td key=5></td></tr><tr key=0-6><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> snr</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">信噪比检测得分</span></td><td key=5></td></tr><tr key=0-7><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> snr_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">信噪比检测结果是否通过</span></td><td key=5></td></tr><tr key=0-8><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> aid</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">本条操作音频id(可忽略)</span></td><td key=5></td></tr>
</tbody>
</table>

声纹注册

<a id=声纹注册> </a>

基本信息

Path: /kst/enroll

Method: POST

接口描述:

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type multipart/form-data

Query

参数名称 是否必须 示例 备注
type ti 文本类型: ti 文本无关,td 文本相关,rd 随机动态口令
node icbc 一个声纹库节点,即一组说话人集合
spkid 56789 一个声纹库节点中的说话人模型标识id
wavtype wav mp3
channel 0 表示待处理的声道 0:左声道;1:右声道。如果单声道语音文件,则必须取0
asrdetect true 是否开启文本内容识别(仅文本相关引擎有效)
replaydetect false 是否开启防录音冒充检测功能
text 您好中国工商银行 语音文本内容(用于文本相关语音文本内容识别的结果判断)

Body

参数名称 参数类型 是否必须 示例 备注
file file

返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> aid</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">本次注册所用音频id(可忽略)</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码,不为0代表注册失败</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr>
</tbody>
</table>

1:1声纹验证

<a id=1:1声纹验证> </a>

基本信息

Path: /kst/verify

Method: POST

接口描述:

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type multipart/form-data

Query

参数名称 是否必须 示例 备注
type ti 文本类型: ti 文本无关,td 文本相关,rd 随机动态口令
node icbc 一个声纹库节点,即一组说话人集合
spkid 56789 一个声纹库节点中的说话人模型标识id
wavtype wav 上传的语音文件格式,支持 wav, mp3, pcm
channel 0 表示待处理的声道 0:左声道;1:右声道。如果单声道语音文件,则必须取0
replaydetect true 是否开启防录音冒充检测功能
snrdetect false 是否开启信噪比检测功能
asrdetect false 是否开启文本内容识别(仅文本相关引擎有效)
text 您好中国工商银行 语音文本内容(用于文本相关语音文本内容识别的结果判断)

Body

参数名称 参数类型 是否必须 示例 备注
file file

返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> asr_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">语音识别内容结果是否通过</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> asr</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">语音识别内容</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码,不为0代表1:1验证失败</span></td><td key=5></td></tr><tr key=0-3><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr><tr key=0-4><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> replay_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">防录音冒充检测结果是否通过</span></td><td key=5></td></tr><tr key=0-5><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> replay_score</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">防录音冒充检测得分</span></td><td key=5></td></tr><tr key=0-6><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">声纹验证结果是否通过</span></td><td key=5></td></tr><tr key=0-7><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> score</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">声纹验证得分</span></td><td key=5></td></tr><tr key=0-8><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> nscore</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">声纹验证归一化得分</span></td><td key=5></td></tr><tr key=0-9><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> snr</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">信噪比检测得分</span></td><td key=5></td></tr><tr key=0-10><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> snr_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">信噪比检测结果是否通过</span></td><td key=5></td></tr><tr key=0-11><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> aid</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">本次操作音频id(可忽略)</span></td><td key=5></td></tr>
</tbody>
</table>

1:N声纹辨认

<a id=1:N声纹辨认> </a>

基本信息

Path: /kst/identify

Method: POST

接口描述:

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type multipart/form-data

Query

参数名称 是否必须 示例 备注
type ti 文本类型: ti 文本无关,td 文本相关,rd 随机动态口令
node icbc 一个声纹库节点,即一组说话人集合
topn 1 1:N声纹辨认返回top N结果
wavtype wav 上传的语音文件格式,支持 wav, mp3, pcm
channel 0 表示待处理的声道 0:左声道;1:右声道。如果单声道语音文件,则必须取0
replaydetect true 是否开启防录音冒充检测功能
snrdetect false 是否开启信噪比检测功能
asrdetect false 是否开启文本内容识别(仅文本相关引擎有效)
text 您好中国工商银行 语音文本内容(用于文本相关语音文本内容识别的结果判断)

Body

参数名称 参数类型 是否必须 示例 备注
file file

返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> asr_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">语音识别内容结果是否通过</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> asr</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">语音识别内容</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> candidates</span></td><td key=1><span>object []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">topN候选人列表, 根据得分从高到低排序</span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-2-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> node</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">声纹库节点</span></td><td key=5></td></tr><tr key=0-2-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> spkid</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">说话人唯一标识id</span></td><td key=5></td></tr><tr key=0-2-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> score</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">1:N声纹辨认得分</span></td><td key=5></td></tr><tr key=0-2-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> nscore</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">1:N声纹辨认归一化得分</span></td><td key=5></td></tr><tr key=0-2-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">1:N声纹辨认结果是否通过</span></td><td key=5></td></tr><tr key=0-3><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码,不为0代表1:N辨认失败</span></td><td key=5></td></tr><tr key=0-4><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr><tr key=0-5><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> replay_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">防录音冒充检测结果是否通过</span></td><td key=5></td></tr><tr key=0-6><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> replay_score</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">防录音冒充检测得分</span></td><td key=5></td></tr><tr key=0-7><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> snr</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">信噪比检测得分</span></td><td key=5></td></tr><tr key=0-8><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> snr_result</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">信噪比检测结果是否通过</span></td><td key=5></td></tr><tr key=0-9><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> aid</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">本次操作音频id(可忽略)</span></td><td key=5></td></tr>
</tbody>
</table>
<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> aid</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">本次注册所用音频id(可忽略)</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码,不为0代表注册失败</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr>
</tbody>
</table>

声纹删除

<a id=声纹删除> </a>

基本信息

Path: /kst/delete

Method: POST

接口描述:

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/x-www-form-urlencoded

Query

参数名称 是否必须 示例 备注
node icbc 一个声纹库节点,即一组说话人集合
spkid 56789 一个声纹库节点中的说话人模型标识id
type ti 文本类型: ti 文本无关,td 文本相关,rd 随机动态口令

返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码,不为0代表删除失败</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr>
</tbody>
</table>

生成8位随机动态口令

<a id=生成8位随机动态口令> </a>

基本信息

Path: /kst/rd/text

Method: GET

接口描述:

请求参数

返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> code</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误码</span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> msg</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">错误信息</span></td><td key=5></td></tr><tr key=0-2><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> text</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">8位随机数字串</span></td><td key=5></td></tr>
</tbody>
</table>

相关文章

网友评论

      本文标题:2018-07-17

      本文链接:https://www.haomeiwen.com/subject/ertnpftx.html