微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决从 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 举报,一经查实,本站将立刻删除。