侧边栏壁纸
  • 累计撰写 61 篇文章
  • 累计收到 10 条评论

云知声口语评测Api接口对接,踩坑。对接是http协议。python/go语言版本

2024-3-11 / 0 评论 / 809 阅读
温馨提示:
本文最后更新于 2024-3-11,已超过半年没有更新,若内容或图片失效,请留言反馈。

文档地址:https://ai.unisound.com/doc/sacalleval/http.html
云知声的口语评测有一定的免费量。文档使用简单。对比其他我觉得云知声比较好用
错误码说明:https://gitee.com/unisound_sh/eval-oral-ws/wikis/ErrorCodeList#sever
参考官网的javaDemo改成如下;python版本
对接文档操作,一直返回53249。说数据格式问题

 headers={ 'Content-Type':'multipart/form-data;charset=UTF-8', 'appkey':'********', 'session-id':str(uuid.uuid4()), 'device-id': 'userid', } dict_con={ 'mode':'A', 'text':'apple', } files = {'voice': open("apple.mp3", 'rb')} response=requests.post('http://edu.hivoice.cn:8085/eval/mp3',headers=headers,data=dict_con,files=files).text print(response)

后面改成如下就没问题了。
删除这个类型'Content-Type':'multipart/form-data;charset=UTF-8'就行了

go版本

package mainimport ( "bytes" "fmt" "github.com/google/uuid" "io" "io/ioutil" "mime/multipart" "net/http" "os")func main() { // 读取文件内容 file, err := os.Open("E:\\project_master\\脚本\\语音评测\\apple.mp3") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() // 创建一个 buffer 用于构建 multipart/form-data 请求体 body := &bytes.Buffer{} writer := multipart.NewWriter(body) // 写入其它字段 writer.WriteField("mode", "A") writer.WriteField("text", "apple") // 写入文件 part, err := writer.CreateFormFile("voice", "apple.mp3") if err != nil { fmt.Println("Error creating form file:", err) return } part.Write([]byte("\r\n")) _, err = io.Copy(part, file) if err != nil { fmt.Println("Error copying file:", err) return } // 完成请求体的构建 writer.Close() // 创建 HTTP 请求 req, err := http.NewRequest("POST", "http://edu.hivoice.cn:8085/eval/mp3", body) if err != nil { fmt.Println("Error creating request:", err) return } req.Header.Set("Content-Type", writer.FormDataContentType()) req.Header.Set("appkey", "XXXXX") req.Header.Set("session-id", uuid.New().String()) req.Header.Set("device-id", "userid") // 发送请求 client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println("Error sending request:", err) return } defer resp.Body.Close() // 读取响应内容 respBody, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Error reading response:", err) return } // 打印响应内容 fmt.Println(string(respBody))}

go的就是参数顺序要对。要不就一定提示说没有传送文件

评论一下?

OωO
取消