For the complete documentation index, see llms.txt. This page is also available as Markdown.

Setup Voice Verification

Uploading Api details to matches enrolled user's audio files with target user's audio file

try {
      final directory = await getApplicationDocumentsDirectory();
      var uri = Uri.parse("Your API");
      var request = http.MultipartRequest("POST", uri);

      // Input Source One .wav formate
      var sourceOnePath = '${directory.path}/${widget.username}_0.wav';
      var sourceOneFile = File(sourceOnePath);
      if (!await sourceOneFile.exists()) {
        throw Exception('Source one recording not found');
      }
      // var sourceOneWav = await _convertToWav(sourceOnePath, 0);
      request.files.add(await http.MultipartFile.fromPath(
        'sourceone',
        sourceOneFile.path,
        contentType: MediaType("audio", "wav"),
        filename: 'sourceone.wav',
      ));

      // Input Source Two .wav formate
      var sourceTwoPath = '${directory.path}/${widget.username}_1.wav';
      var sourceTwoFile = File(sourceTwoPath);
      if (!await sourceTwoFile.exists()) {
        throw Exception('Source two recording not found');
      }
      // var sourceTwoWav = await _convertToWav(sourceTwoPath, 1);
      request.files.add(await http.MultipartFile.fromPath(
        'sourcetwo',
        sourceTwoFile.path,
        contentType: MediaType("audio", "wav"),
        filename: 'sourcetwo.wav',
      ));

      // Input Source Three .wav formate
      var sourceThreePath = '${directory.path}/${widget.username}_2.wav';
      var sourceThreeFile = File(sourceThreePath);
      if (!await sourceThreeFile.exists()) {
        throw Exception('Source three recording not found');
      }
      // var sourceThreeWav = await _convertToWav(sourceThreePath, 2);
      request.files.add(await http.MultipartFile.fromPath(
        'sourcethree',
        sourceThreeFile.path,
        contentType: MediaType("audio", "wav"),
        filename: 'sourcethree.wav',
      ));

      // Input Source Four .wav formate
      File verifyFile;
      if (audioFiles.isNotEmpty) {
        verifyFile = audioFiles[0];
      } else {
        final verifyPath = '${directory.path}/${widget.username}_3.wav';
        verifyFile = File(verifyPath);
        if (!await verifyFile.exists()) {
          throw Exception('Verification recording not found');
        }
      }
      // var verifyWav = await _convertToWav(verifyFile.path, 3);
      request.files.add(await http.MultipartFile.fromPath(
        'target',
        verifyFile.path,
        contentType: MediaType("audio", "wav"),
        filename: 'target.wav',
      ));

      // Send request
      var response = await request.send();
      if (response.statusCode == 200) {
        var responseBody = await response.stream.bytesToString();
        final Map<String, dynamic> parsedResponse = jsonDecode(responseBody);
        final String score = parsedResponse['score'];
        print('Matching Score: $score');
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('Matching Score: $score')),
        );
      } else {
        throw Exception('Upload failed with status ${response.statusCode}');
      }
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Error during upload: $e')),
      );
    }

Last updated