【问题标题】:API VoiceBase and upload audioAPI VoiceBase 和上传音频
【发布时间】:2017-07-20 02:14:08
【问题描述】:

美好的一天 我打算实现Voicebase不知何故我已经得到了我上传测试的音频数据,下一步是通过表单上传音频,这个过程是通过AJAX完成的。

<form id="formFile">
  <div class="form-group">
    <label for="vb-file">Agregar Archivo:</label>
    <input type="file" class="form-control" id="media" name="media">
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>

而ajax代码如下

$('#formFile').submit(function(e) {

    var access_token = 'eyJ0eXAiOiJKV1QiLCJh';

    var formData = new FormData(document.getElementById('formFile'));
    formData.append('dato', 'valor');

    $.ajax({
        url: 'https://apis.voicebase.com/v2-beta/media',
        type: 'POST',
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        beforeSend: function(xhr) {
             xhr.setRequestHeader( 'Authorization', 'Bearer ' + access_token );
        },
        success: function(result) {
            console.log(result);
        },
    });


    e.preventDefault();
});

我需要替换下面的代码并将其作为ajax,尤其是语言的一部分,因为文件已经上升,没有我提到的问题。

curl https://apis.voicebase.com/v2-beta/media  \
    --form media=@recording.mp3 \
    --form 'configuration={
      "configuration": {
        "language": "es-LA",
        "keywords": {
          "semantic": false
        },
        "topics": {
          "semantic": false
        }
      }
    }' \
    --header "Authorization: Bearer ${TOKEN}"

【问题讨论】:

  • 您的表单需要一个提交按钮
  • 对不起,谢谢,我补充说不写是一个错误,但这不是主要问题。
  • 如果您使用 Chrome,请启用您的“开发者工具”(Mozilla Firefox 也有类似功能)。然后,您可以在 HTTP 请求中查看您正在发送和接收的内容

标签: php jquery ajax curl speech-recognition


【解决方案1】:

这里的问题是您的请求中缺少配置 JSON 文件。在 cURL 请求中,有一个开头的元素:'configuration={ "configuration ..."' 这个配置是 v2-beta 了解如何处理您正在上传的媒体文件所必需的。 您可以创建一个 config.json 文件并将其上传到标题中的媒体文件之外,方法是在 formData 中创建另一个名为“configuration”的元素并附加 configuration.json。

你想要这样的东西:

var formData = new FormData();
formData.append("media", "my_media_file.mp3");
formData.append("configuration", "configuration.json");

var settings = {
  "url": "https://apis.voicebase.com/v2-beta/media",
  "method": "POST",
  "headers": {
    "accept": "application/json",
    "authorization": "Bearer access_token"
  },
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": formData
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

您的 configuration.json 文件应该包含:

configuration={
  "configuration": {
    "language": "es-LA",
    "keywords": {
      "semantic": false
    },
    "topics": {
      "semantic": false
    }
  }
}

顺便说一句:感谢您没有发布您的完整访问令牌!访问令牌应被视为用户名和密码的等价物 - 不应共享。

【讨论】:

  • 谢谢 Daniel O'Rorke,我会试试的。
猜你喜欢
  • 1970-01-01
  • 2017-05-26
  • 2015-08-17
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多