💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
#### 接口路径:https://temp1.lingju.ai/httpapi/AudioChat.do <table style="width:100%"> <tbody> <tr height="28" style="font-weight:bold;"> <td height="28" width="130px" >名称</td> <td colspan="3" >聊天接口</td> </tr> <tr height="28" style="font-weight:bold;"> <td height="28" >接口路径</td> <td colspan="3" >https://temp1.lingju.ai/httpapi/AudioChat.do (请注意:体验环境,请勿用于生产环境。)</td> </tr> <tr height="28" style="font-weight:bold;"> <td height="28" >请求方式</td> <td colspan="3" >post</td> </tr> </tbody> </table> #### http post请求示例: ~~~ post https://temp1.lingju.ai/httpapi/AudioChat.do json格式串行化post上传,注意请求的header需添加 'Content-Type':'application/json;charset=UTF-8' { "accessToken":"xxxxxxxxxxxxxxxxxxxxxx", "encodeData":"xxxxxxxxxx", "voiceType":"xxxxxxxxxx", "voiceFormat":"raw", "speex_size":"61", "needTTS":"false", "lat":"23.12635", "lng":"113.38776", "city":"广州", "position":"广东广州", "data":[ { "target":ID, "list":[] } ] } ~~~ #### 请求参数说明: <table style="width:100%"> <thead> <tr height="28"> <th width="130px">参数</th> <th width="100px">数据类型</th> <th width="130px">可需</th> <th colspan="2" >描述</th> </tr> </thead> <tbody> <tr height="23" style="height:17.25pt"> <td height="23" >accessToken</td> <td >String</td> <td>必填</td> <td colspan="2" >分配给开发者的专属appkey,请妥善保管</td> </tr> <tr > <td>encodeData</td> <td>String</td> <td>必填</td> <td colspan="2">语音数据,要使用 base64 编码(采用 Python 语言时注意读取文件应该为 string 而不是 byte,以 byte 格式读取后要 decode()。编码后的数据不可带有回车换行符)。音频数据要小于600KB。</td> </tr> <tr > <td>voiceType</td> <td>String</td> <td>必填</td> <td colspan="2">识别音频的采样率,只支持8k和16k</td> </tr> <tr > <td>voiceFormat</td> <td>String</td> <td>必填</td> <td colspan="2">音频数据格式 raw:原生音频(支持单声道的pcm和wav) speex:speex压缩后的音频(8k) speex-wb:speex压缩后的音频(16k)<br请注意压缩前也必须是采样率16k或8k单声道的pcm。 </td> </tr> <tr > <td>speex_size</td> <td>int</td> <td>否</td> <td colspan="2">speex音频帧率,仅在speex音频时使用 1.由于服务端解压speex需要额外耗时,如果没有带宽等限制建议使用pcm格式。 2.请注意压缩前的原始音频文件,必须为采样率16K、16bits、单声道的PCM或WAV格式。 3.具体数值参考下方speex库压缩等级(quantity)关系表。</td> </tr> <tr > <td>needTTS</td> <td>boolean</td> <td>否</td> <td colspan="2">是否需要返回合成语音URL(true:返回 false:不返回)</td> </tr> <tr > <td>speed</td> <td>int</td> <td>否</td> <td colspan="2">语速:设置播放的语速,在0~9之间(支持浮点值),不传时默认为5</td> </tr> <tr > <td>volume</td> <td>int</td> <td>否</td> <td colspan="2">音量:设置语音的音量,在0~9之间(只支持整型值),不传时默认值为5</td> </tr> <tr > <td>pitch</td> <td>int</td> <td>否</td> <td colspan="2">音调:设置语音的音调,取值0-9,不传时默认为5中语调</td> </tr> <tr > <td>audiotype</td> <td>int</td> <td>否</td> <td colspan="2">音频种类:可不填,不填时默认为3,表示mp3格式 audiotype=4 :返回16K采样率的pcm格式 audiotype=5 :返回8K采样率的pcm格式 audiotype=6 :返回16K采样率的wav格式 audiotype=6&rate=1 :返回8K的wav格式 audiotype=7 :返回8k8bit的alaw格式文件 audiotype=8 :返回8k8bit的ulaw格式文件</td> </tr> <tr > <td>voiceName</td> <td>int</td> <td>否</td> <td colspan="2">发音人:1=标准女生;2=标准男生;3=女童;4=男童</td> </tr> <tr> <td>city</td> <td>String</td> <td>否</td> <td colspan="2">城市(该字段如果有参数,必须跟“lat”以及“lng”一起传才有效)</td> </tr> <tr> <td>lat</td> <td>double</td> <td>否</td> <td colspan="2">纬度</td> </tr> <tr> <td>lng</td> <td>double</td> <td>否</td> <td colspan="2">经度</td> </tr> <tr> <td>position</td> <td>String</td> <td>否</td> <td colspan="2">具体位置</td> </tr> <tr> <td rowspan="3">data</td> <td rowspan="3">JsonArray</td> <td rowspan="3">否</td> <td colspan="2">附带的JSON数据</td> </tr> <tr> <td>target</td> <td>目标对象id,int类型</td> </tr> <tr> <td>list</td> <td>目标对象集合,Json,json<a href="http://doc.lingju.ai/@ljsdk/android_sdk" target="_blank">结构请参照</a></td> </tr> </tbody> </table> #### speex库压缩等级(quantity)关系表: <table style="width:100%"> <thead> <tr height="28"> <th width="160px">quantity(压缩等级)</th> <th width="40px">0</th> <th width="40px">1</th> <th width="40px">2</th> <th width="40px">3</th> <th width="40px">4</th> <th width="40px">5</th> <th width="40px">6</th> <th width="40px">7</th> <th width="40px">8</th> <th width="40px">9</th> <th width="40px">10</th> </tr> </thead> <tbody> <tr height="23" style="height:17.25pt"> <td height="23" >speex</td> <td >7</td> <td>11</td> <td>16</td> <td>21</td> <td>21</td> <td>29</td> <td>29</td> <td>39</td> <td>39</td> <td>47</td> <td>63</td> </tr> <tr height="23" style="height:17.25pt"> <td height="23" >speex-wb</td> <td >11</td> <td>16</td> <td>21</td> <td>26</td> <td>33</td> <td>43</td> <td>53</td> <td>61</td> <td>71</td> <td>87</td> <td>107</td> </tr> </tbody> </table> #### 接口返回JSON示例: ~~~ 普通回复: { "answer":"广州今天天气预报说“大雨”,出门最好带上伞。", "status":0 } 带指令的回复: { "answer":"{\"rtext\":\"好的\",\"outc\":0, \"actions\":[{\"action\":\"QUERY\", \"target\":{\"recyle\":0,\"id\":100,\"singer\":[\"周杰伦\"],\"release\":0,\"type\":\"歌曲\"}, \"hints\":{ \"success\":{\"text\":\"好的,为您播放周杰伦的歌\"}, \"failure\":{\"text\":\"抱歉,我找不到周杰伦的歌\"}, \"notsupport\":{\"text\":\"抱歉,我没办法播放歌曲\"} } }, {\"action\":\"SET\", \"target\":{\"id\":300,\"origin\":\"QUERY\",\"control\":\"PLAY\",\"type\":\"AUDIO\"}}]}", "status":0 } 带合成音的回复: { "answer":"{\"rtext\":\"好的\",\"outc\":0, \"actions\":[{\"action\":\"QUERY\", \"target\":{\"recyle\":0,\"id\":100,\"singer\":[\"周杰伦\"],\"release\":0,\"type\":\"歌曲\"}, \"hints\":{ \"success\":{\"text\":\"好的,为您播放周杰伦的歌\"}, \"failure\":{\"text\":\"抱歉,我找不到周杰伦的歌\"}, \"notsupport\":{\"text\":\"抱歉,我没办法播放歌曲\"} } }, {\"action\":\"SET\", \"target\":{\"id\":300,\"origin\":\"QUERY\",\"control\":\"PLAY\",\"type\":\"AUDIO\"}}]}", "audioURL":"https://xxxxxxxxxxxx", "status":0 } ~~~ #### 接口返回说明: ~~~ Content-Type:application/json;charset=UTF-8 ~~~ <table style="width:100%"> <thead> <tr height="28" > <th height="28" width="130px">属性名</th> <th width="100px">数据类型</th> <th>描述</th> </tr> </thead> <tbody> <tr height="23"> <td height="23" >status</td> <td>int</td> <td>状态码,0=成功,其它值则为错误码,请参考错误码表</td> </tr> <tr height="23"> <td height="23" >description</td> <td >String</td> <td>通常为空,出错时会有错误信息</td> </tr> <tr height="23"> <td height="23" >audioURL</td> <td >String</td> <td>合成语音数据播放链接</td> </tr> <tr > <td>answer</td> <td >String</td> <td>普遍的回复文本或json结构的字符串文本,若为json文本,请参考<a href="http://doc.lingju.ai/@ljsdk/android_sdk">指令说明文档</a>解析,若仅用于普通聊天,建议忽略json文本,以"暂不知道该功能"作为回复。</td> </tr> </tbody></table>