问题描述
我希望使用 wit.ai 进行语音识别。这是我用来发布音频文件的发布方法。
Future<http.Response> post(
String path,File file,) async {
final client = http.Client();
try {
final uri = Uri.parse('https://api.wit.ai/$path');
final len = file.lengthSync();
final request = http.StreamedRequest('POST',uri)
..headers.addAll({
'Authorization': 'Bearer $api_key','Content-Type': 'audio/wav','transfer-encoding': 'chunked'
})
..contentLength = len;
file.openRead().listen((chunk) {
request.sink.add(chunk);
},onDone: () {
print('done');
request.sink.close();
});
final res = await request.send().then(http.Response.fromStream);
return res;
} catch (e) {
rethrow;
} finally {
client.close();
}
}
Wit.ai 似乎将音频长度限制为 20 秒。因此,我尝试发送分块请求。我以前从未处理过分块请求,我希望它发送较小的块并分别获得每个块的响应流。但似乎请求只发送一次,我仍然收到超出音频长度的错误。 我做错了什么,是否有可能从机智语音 api 获取长度超过 20 秒的音频文本?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)