Add API to get version information (#2309)

This commit is contained in:
Fangjun Kuang
2025-06-25 00:22:21 +08:00
committed by GitHub
parent 7f2145539d
commit bda427f4b2
169 changed files with 1480 additions and 12 deletions

View File

@@ -17,6 +17,7 @@ export 'src/online_stream.dart';
export 'src/speaker_identification.dart';
export 'src/tts.dart';
export 'src/vad.dart';
export 'src/version.dart';
export 'src/wave_reader.dart';
export 'src/wave_writer.dart';

View File

@@ -1250,6 +1250,15 @@ typedef SherpaOnnxFreeWaveNative = Void Function(Pointer<SherpaOnnxWave>);
typedef SherpaOnnxFreeWave = void Function(Pointer<SherpaOnnxWave>);
typedef SherpaOnnxGetVersionStr = Pointer<Utf8> Function();
typedef SherpaOnnxGetVersionStrNative = SherpaOnnxGetVersionStr;
typedef SherpaOnnxGetGitSha1Native = Pointer<Utf8> Function();
typedef SherpaOnnxGetGitSha1 = SherpaOnnxGetGitSha1Native;
typedef SherpaOnnxGetGitDateNative = Pointer<Utf8> Function();
typedef SherpaOnnxGetGitDate = SherpaOnnxGetGitDateNative;
class SherpaOnnxBindings {
static SherpaOnnxCreateOfflineSpeechDenoiser?
sherpaOnnxCreateOfflineSpeechDenoiser;
@@ -1459,6 +1468,10 @@ class SherpaOnnxBindings {
static SherpaOnnxFreeWave? freeWave;
static SherpaOnnxGetVersionStr? getVersionStr;
static SherpaOnnxGetGitSha1? getGitSha1;
static SherpaOnnxGetGitDate? getGitDate;
static void init(DynamicLibrary dynamicLibrary) {
sherpaOnnxCreateOfflineSpeechDenoiser ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxCreateOfflineSpeechDenoiserNative>>(
@@ -2050,5 +2063,20 @@ class SherpaOnnxBindings {
freeWave ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxFreeWaveNative>>('SherpaOnnxFreeWave')
.asFunction();
getVersionStr ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxGetVersionStrNative>>(
'SherpaOnnxGetVersionStr')
.asFunction();
getGitSha1 ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxGetGitSha1Native>>(
'SherpaOnnxGetGitSha1')
.asFunction();
getGitDate ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxGetGitDateNative>>(
'SherpaOnnxGetGitDate')
.asFunction();
}
}

View File

@@ -0,0 +1,31 @@
// Copyright (c) 2025 Xiaomi Corporation
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import './sherpa_onnx_bindings.dart';
String getVersion() {
Pointer<Utf8> version = SherpaOnnxBindings.getVersionStr?.call() ?? nullptr;
if (version == nullptr) {
return '';
}
return version.toDartString();
}
String getGitSha1() {
Pointer<Utf8> gitSha1 = SherpaOnnxBindings.getGitSha1?.call() ?? nullptr;
if (gitSha1 == nullptr) {
return '';
}
return gitSha1.toDartString();
}
String getGitDate() {
Pointer<Utf8> gitDate = SherpaOnnxBindings.getGitDate?.call() ?? nullptr;
if (gitDate == nullptr) {
return '';
}
return gitDate.toDartString();
}