Dart API for adding punctuations to text (#1182)

This commit is contained in:
Fangjun Kuang
2024-07-29 12:41:52 +08:00
committed by GitHub
parent cd1fedaa49
commit 646f99c870
30 changed files with 327 additions and 22 deletions

View File

@@ -2,6 +2,22 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
final class SherpaOnnxOfflinePunctuationModelConfig extends Struct {
external Pointer<Utf8> ctTransformer;
@Int32()
external int numThreads;
@Int32()
external int debug;
external Pointer<Utf8> provider;
}
final class SherpaOnnxOfflinePunctuationConfig extends Struct {
external SherpaOnnxOfflinePunctuationModelConfig model;
}
final class SherpaOnnxOfflineZipformerAudioTaggingModelConfig extends Struct {
external Pointer<Utf8> model;
}
@@ -338,6 +354,8 @@ final class SherpaOnnxKeywordSpotterConfig extends Struct {
external Pointer<Utf8> keywordsFile;
}
final class SherpaOnnxOfflinePunctuation extends Opaque {}
final class SherpaOnnxAudioTagging extends Opaque {}
final class SherpaOnnxKeywordSpotter extends Opaque {}
@@ -360,6 +378,29 @@ final class SherpaOnnxSpeakerEmbeddingExtractor extends Opaque {}
final class SherpaOnnxSpeakerEmbeddingManager extends Opaque {}
typedef SherpaOnnxCreateOfflinePunctuationNative
= Pointer<SherpaOnnxOfflinePunctuation> Function(
Pointer<SherpaOnnxOfflinePunctuationConfig>);
typedef SherpaOnnxCreateOfflinePunctuation
= SherpaOnnxCreateOfflinePunctuationNative;
typedef SherpaOnnxDestroyOfflinePunctuationNative = Void Function(
Pointer<SherpaOnnxOfflinePunctuation>);
typedef SherpaOnnxDestroyOfflinePunctuation = void Function(
Pointer<SherpaOnnxOfflinePunctuation>);
typedef SherpaOfflinePunctuationAddPunctNative = Pointer<Utf8> Function(
Pointer<SherpaOnnxOfflinePunctuation>, Pointer<Utf8>);
typedef SherpaOfflinePunctuationAddPunct
= SherpaOfflinePunctuationAddPunctNative;
typedef SherpaOfflinePunctuationFreeTextNative = Void Function(Pointer<Utf8>);
typedef SherpaOfflinePunctuationFreeText = void Function(Pointer<Utf8>);
typedef SherpaOnnxCreateAudioTaggingNative = Pointer<SherpaOnnxAudioTagging>
Function(Pointer<SherpaOnnxAudioTaggingConfig>);
@@ -875,6 +916,12 @@ typedef SherpaOnnxFreeWaveNative = Void Function(Pointer<SherpaOnnxWave>);
typedef SherpaOnnxFreeWave = void Function(Pointer<SherpaOnnxWave>);
class SherpaOnnxBindings {
static SherpaOnnxCreateOfflinePunctuation? sherpaOnnxCreateOfflinePunctuation;
static SherpaOnnxDestroyOfflinePunctuation?
sherpaOnnxDestroyOfflinePunctuation;
static SherpaOfflinePunctuationAddPunct? sherpaOfflinePunctuationAddPunct;
static SherpaOfflinePunctuationFreeText? sherpaOfflinePunctuationFreeText;
static SherpaOnnxCreateAudioTagging? sherpaOnnxCreateAudioTagging;
static SherpaOnnxDestroyAudioTagging? sherpaOnnxDestroyAudioTagging;
static SherpaOnnxAudioTaggingCreateOfflineStream?
@@ -1036,6 +1083,26 @@ class SherpaOnnxBindings {
static SherpaOnnxFreeWave? freeWave;
static void init(DynamicLibrary dynamicLibrary) {
sherpaOnnxCreateOfflinePunctuation ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxCreateOfflinePunctuationNative>>(
'SherpaOnnxCreateOfflinePunctuation')
.asFunction();
sherpaOnnxDestroyOfflinePunctuation ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxDestroyOfflinePunctuationNative>>(
'SherpaOnnxDestroyOfflinePunctuation')
.asFunction();
sherpaOfflinePunctuationAddPunct ??= dynamicLibrary
.lookup<NativeFunction<SherpaOfflinePunctuationAddPunctNative>>(
'SherpaOfflinePunctuationAddPunct')
.asFunction();
sherpaOfflinePunctuationFreeText ??= dynamicLibrary
.lookup<NativeFunction<SherpaOfflinePunctuationFreeTextNative>>(
'SherpaOfflinePunctuationFreeText')
.asFunction();
sherpaOnnxCreateAudioTagging ??= dynamicLibrary
.lookup<NativeFunction<SherpaOnnxCreateAudioTaggingNative>>(
'SherpaOnnxCreateAudioTagging')