从 dart 向 wit.ai 发送分块音频请求

问题描述

我希望使用 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 (将#修改为@)