vue+cli 里面如何用axios提交wav流到wit.ai post/speech?

vue+cli 里面用binary提交方式怎么提交wav数据?
第一次见到这种提交方式,在axios里面怎么写?
blob:http://localhost:8080/40570440-1402-4cd6-ac86-98aca0be75f8这是我录音返回的wav,不知道怎么用binary提交。。。

clipboard.png
这张图是wit.ai post/speech请求的要求格式,实在是看不懂怎么写请求

阅读 4.4k
4 个回答

只要:

import {encodeWAV} from 'recorderx';
var pcm = this.rc.getRecord();
const blob = encodeWAV(pcm,16,44100)

axios({
  url: 'https://api.wit.ai/speech?v=20171010',
  method: "post",
  data:blob,
  headers: {
    'Content-Type': 'audio/wav',
    'Authorization': 'Bearer xxxx(这是token)',
  }
}).then(function(res) {
  rc.close();
})

就行了
通过向recorderx的作者提问,终于解决了我的问题,非常感谢他

转成blob再提交

网上的例子是下面这样的,你可以尝试一下

axios({
  method: 'post',
  url: 'https://upload.qiniup.com/putb64/-1',
  headers: {
    'Content-Type': 'application/octet-stream' // 注意这里的content-type
  },
  data: imgSrc.split('base64,')[1] // 直接传递内容 在你这里 就把wav数据转换成base64格式
})

blob 是二进制对象。

const formData = new FormData()
formData.append('file', blob)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题