This repository has been archived on 2025-08-26. You can view files and clone it, but cannot push or open issues or pull requests.
Files
enginex-mr_series-sherpa-onnx/sherpa-onnx/flutter/example/lib/vad_test.dart
2024-05-22 21:56:21 +08:00

63 lines
1.6 KiB
Dart

// Copyright (c) 2024 Xiaomi Corporation
import 'dart:typed_data';
import 'package:sherpa_onnx/sherpa_onnx.dart' as sherpa_onnx;
import './utils.dart';
Future<void> testVad() async {
final src = 'assets/silero_vad.onnx';
final modelPath = await copyAssetFile(src: src, dst: 'silero_vad.onnx');
final sileroVadConfig = sherpa_onnx.SileroVadModelConfig(model: modelPath);
final config = sherpa_onnx.VadModelConfig(
sileroVad: sileroVadConfig,
numThreads: 1,
debug: true,
);
final vad = sherpa_onnx.VoiceActivityDetector(
config: config, bufferSizeInSeconds: 10);
print('before vad.free(): ${vad.ptr}');
vad.free();
print('after vad.free(): ${vad.ptr}');
final buffer = sherpa_onnx.CircularBuffer(capacity: 16000 * 2);
final d = Float32List.fromList([0, 10, 20, 30]);
buffer.push(d);
assert(d.length == buffer.size, '${d.length} vs ${buffer.size}');
final f = Float32List.fromList([-5, 100.25, 599]);
buffer.push(f);
assert(buffer.size == d.length + f.length);
final g = buffer.get(startIndex: 0, n: 5);
assert(g.length == 5);
assert(g[0] == 0);
assert(g[1] == 10);
assert(g[2] == 20);
assert(g[3] == 30);
assert(g[4] == -5);
assert(buffer.size == d.length + f.length);
buffer.pop(3);
assert(buffer.size == d.length + f.length - 3);
final h = buffer.get(startIndex: buffer.head, n: 4);
assert(h.length == 4);
assert(h[0] == 30);
assert(h[1] == -5);
assert(h[2] == 100.25);
assert(h[3] == 599);
buffer.reset();
assert(buffer.size == 0);
assert(buffer.head == 0);
print('before free: ${buffer.ptr}');
buffer.free();
print('after free: ${buffer.ptr}');
}