美好的一天 我打算以某种方式实现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}"
答案 0 :(得分:0)
此处的问题是您在请求中缺少配置JSON文件。在cURL请求中,有一个元素开始:&#39; configuration = {&#34; configuration ...&#34;&#39; v2-beta必须使用此配置才能了解如何处理要上载的媒体文件。 您可以创建一个config.json文件,并在标题中通过在formData中创建另一个名为&#39; configuration&#39;并附上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
}
}
}
顺便说一下:感谢您没有发布完整的访问令牌!访问令牌应该被视为用户名和密码的等价物 - 并且不应该被共享。