音频审核
<h3>接口描述</h3>
<ul>
<li>在社交软件中有大量音频内容,可对音频内容的合规性进行审核,包括色情、违禁等。</li>
</ul>
<h3>请求地址</h3>
<p><code>https://api.jumdata.com/voice/review</code></p>
<h3>请求方式</h3>
<ul>
<li>POST</li>
</ul>
<h3>请求格式</h3>
<ul>
<li>x-www-form-urlencoded</li>
</ul>
<h3>请求参数</h3>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>String</td>
<td>是</td>
<td>服务商分配的唯一标识</td>
</tr>
<tr>
<td>timestamp</td>
<td>Long</td>
<td>是</td>
<td>当前时间的毫秒数</td>
</tr>
<tr>
<td>sign</td>
<td>String</td>
<td>是</td>
<td>签名,见签名算法说明</td>
</tr>
<tr>
<td>file</td>
<td>File</td>
<td>否</td>
<td>音频文件,file、url 必须提供一个</td>
</tr>
<tr>
<td>url</td>
<td>String</td>
<td>否</td>
<td>音频url链接,url链接长度不超过1024字节,请注意关闭URL防盗链,file、url 必须提供一个</td>
</tr>
<tr>
<td>fmt</td>
<td>String</td>
<td>是</td>
<td>音频文件的格式,pcm、wav、amr、m4a,推荐pcm格式</td>
</tr>
<tr>
<td>rate</td>
<td>String</td>
<td>是</td>
<td>音频采样率[16000]</td>
</tr>
<tr>
<td>split</td>
<td>String</td>
<td>否</td>
<td>rawText是否拆句,true:拆句;false:不拆句返回整段文本 默认为true</td>
</tr>
<tr>
<td>audioId</td>
<td>String</td>
<td>否</td>
<td>音频信息标识,限长128位字符长度</td>
</tr>
</tbody>
</table>
<h3>签名算法说明</h3>
<pre><code>sign = sha256( appId + appSecret + timestamp)</code></pre>
<p>用服务商分配的 appId、服务商分配的 appSecret,当前时间毫秒数 timestamp,按上述顺序拼接成字符串,再进行 sha256 哈希得到。如下:</p>
<pre><code class="language-java">String appId = &quot;xyzxy2121zxyz&quot;;
String timestamp = &quot;1555378976238&quot;;
String appSecret = &quot;efcefcef1121cefcefc1212121&quot;;
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h3>正确返回样例</h3>
<pre><code class="language-json">{
&quot;code&quot;: 200,//返回code
&quot;msg&quot;: &quot;成功&quot;,//code对应的说明描述
&quot;taskNo&quot;: &quot;312621316209352993582654&quot;,//本次请求号
&quot;charge&quot;: true,//计费标志,true 计费,false 不计费
&quot;data&quot;: {
&quot;resultMsg&quot;: &quot;不合规&quot;,//音频任务审核结果描述:合规、不合规、疑似、审核失败
&quot;result&quot;: 2,//音频任务审核结果值:1 合规,2 不合规,3 疑似,4 审核失败
&quot;data&quot;: [
{
&quot;auditData&quot;: [],//文本审核结果详情
&quot;conclusion&quot;: &quot;合规&quot;,//文本审核结果,可取值:合规、不合规、疑似、审核失败
&quot;conclusionType&quot;: 1,//文本审核结果类型,可取值1.合规,2.不合规,3.疑似,4.审核失败
&quot;endTime&quot;: 7400,//文本对应音频文件的终止时间
&quot;startTime&quot;: 1200,//文本对应音频文件的起始时间
&quot;text&quot;: &quot;能不能帮我打个电话给张三呀?&quot; //分段文本结果
},
{
&quot;auditData&quot;: [
{
&quot;hits&quot;: [//命中信息
{
&quot;probability&quot;: 1,//不合规项置信度
&quot;words&quot;: [] //命中关键词
}
],
&quot;msg&quot;: &quot;存在违禁不合规&quot;,//不合规项描述信息
&quot;subType&quot;: 1,//审核子类型,此字段需参照type主类型字段决定其含义,当type=11时subType取值含义:0:默认违禁词库,当type=12时subType取值含义:0:低质灌水、2:文本色情、4:恶意推广、5:低俗辱骂、7:隐私信息,当type=13时subType取值含义:0:自定义文本黑名单,当type=14时subType取值含义:0:自定义文本白名单,
&quot;type&quot;: 12 //审核主类型,11:违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 20:存在娇喘内容
}
],
&quot;conclusion&quot;: &quot;不合规&quot;,
&quot;conclusionType&quot;: 2,
&quot;endTime&quot;: 29580,
&quot;startTime&quot;: 26220,
&quot;text&quot;: &quot;你知道哪里有卖大麻么?&quot;
}
],
&quot;rawText&quot;: [//语音识别文本结果,字符串数组,若不拆句,则为整段文本
&quot;能不能帮我打个电话给张三呀?&quot;,
&quot;你知道哪里有卖大麻么?&quot;
]
}
}
</code></pre>
<h3>错误返回样例</h3>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;音频文件的格式不能为空&quot;,
&quot;code&quot;: 400
}</code></pre>
<h3>返回字段说明</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>返回码,详见code返回码说明</td>
</tr>
<tr>
<td>msg</td>
<td>code对应的描述</td>
</tr>
<tr>
<td>charge</td>
<td>是否计费</td>
</tr>
<tr>
<td>taskNo</td>
<td>本次请求号</td>
</tr>
<tr>
<td>data</td>
<td>返回具体结果,object类型,详见成功返回体</td>
</tr>
</tbody>
</table>
<h3>code返回码说明</h3>
<table>
<thead>
<tr>
<th>code</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>成功 (计费)</td>
</tr>
<tr>
<td>201</td>
<td>音频质量过差</td>
</tr>
<tr>
<td>202</td>
<td>音频过长,音频时长不超过60s,请将音频时长截取为60s以下</td>
</tr>
<tr>
<td>203</td>
<td>音频数据问题,服务端无法将音频转为pcm格式,可能是长度问题,音频格式问题等</td>
</tr>
<tr>
<td>204</td>
<td>音频文件过大</td>
</tr>
<tr>
<td>205</td>
<td>音频长度过短</td>
</tr>
<tr>
<td>206</td>
<td>音频转为pcm失败,请使用pcm格式,或者确认wav和amr的采样率16000,单声道。wav是否是pcm编码</td>
</tr>
<tr>
<td>400</td>
<td>参数错误</td>
</tr>
<tr>
<td>404</td>
<td>接口地址不正确</td>
</tr>
<tr>
<td>500</td>
<td>系统维护,请稍候再试</td>
</tr>
<tr>
<td>501</td>
<td>语音服务器后端问题</td>
</tr>
<tr>
<td>601</td>
<td>接口未开通</td>
</tr>
<tr>
<td>602</td>
<td>账号停用</td>
</tr>
<tr>
<td>603</td>
<td>余额不足请充值</td>
</tr>
<tr>
<td>604</td>
<td>接口停用</td>
</tr>
<tr>
<td>606</td>
<td>调用超限,请稍候再试</td>
</tr>
<tr>
<td>607</td>
<td>ip不在白名单</td>
</tr>
<tr>
<td>609</td>
<td>请求过于频繁,请稍候再试</td>
</tr>
<tr>
<td>610</td>
<td>请求超时</td>
</tr>
<tr>
<td>999</td>
<td>其他,以实际返回为准</td>
</tr>
</tbody>
</table>