Add Kotlin and Java API for online punctuation models (#1936)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
// Copyright 2024 Xiaomi Corporation
|
||||
|
||||
package com.k2fsa.sherpa.onnx;
|
||||
|
||||
public class OnlinePunctuation {
|
||||
static {
|
||||
System.loadLibrary("sherpa-onnx-jni");
|
||||
}
|
||||
|
||||
private long ptr = 0;
|
||||
|
||||
public OnlinePunctuation(OnlinePunctuationConfig config) {
|
||||
ptr = newFromFile(config);
|
||||
}
|
||||
|
||||
public String addPunctuation(String text) {
|
||||
return addPunctuation(ptr, text);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void finalize() throws Throwable {
|
||||
release();
|
||||
}
|
||||
|
||||
// You'd better call it manually if it is not used anymore
|
||||
public void release() {
|
||||
if (this.ptr == 0) {
|
||||
return;
|
||||
}
|
||||
delete(this.ptr);
|
||||
this.ptr = 0;
|
||||
}
|
||||
|
||||
private native void delete(long ptr);
|
||||
|
||||
private native long newFromFile(OnlinePunctuationConfig config);
|
||||
|
||||
private native String addPunctuation(long ptr, String text);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Copyright 2024 Xiaomi Corporation
|
||||
|
||||
package com.k2fsa.sherpa.onnx;
|
||||
|
||||
public class OnlinePunctuationConfig {
|
||||
private final OnlinePunctuationModelConfig model;
|
||||
|
||||
private OnlinePunctuationConfig(Builder builder) {
|
||||
this.model = builder.model;
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
public OnlinePunctuationModelConfig getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
public static class Builder {
|
||||
private OnlinePunctuationModelConfig model = OnlinePunctuationModelConfig.builder().build();
|
||||
|
||||
public OnlinePunctuationConfig build() {
|
||||
return new OnlinePunctuationConfig(this);
|
||||
}
|
||||
|
||||
public Builder setModel(OnlinePunctuationModelConfig model) {
|
||||
this.model = model;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
// Copyright 2024 Xiaomi Corporation
|
||||
|
||||
package com.k2fsa.sherpa.onnx;
|
||||
|
||||
public class OnlinePunctuationModelConfig {
|
||||
private final String cnnBilstm;
|
||||
private final String bpeVocab;
|
||||
private final int numThreads;
|
||||
private final boolean debug;
|
||||
private final String provider;
|
||||
|
||||
private OnlinePunctuationModelConfig(Builder builder) {
|
||||
this.cnnBilstm = builder.cnnBilstm;
|
||||
this.bpeVocab = builder.bpeVocab;
|
||||
this.numThreads = builder.numThreads;
|
||||
this.debug = builder.debug;
|
||||
this.provider = builder.provider;
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
public String getCnnBilstm() {
|
||||
return cnnBilstm;
|
||||
}
|
||||
|
||||
public String getBpeVocab() {
|
||||
return bpeVocab;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
private String cnnBilstm = "";
|
||||
private String bpeVocab = "";
|
||||
private int numThreads = 1;
|
||||
private boolean debug = true;
|
||||
private String provider = "cpu";
|
||||
|
||||
public OnlinePunctuationModelConfig build() {
|
||||
return new OnlinePunctuationModelConfig(this);
|
||||
}
|
||||
|
||||
public Builder setCnnBilstm(String cnnBilstm) {
|
||||
this.cnnBilstm = cnnBilstm;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBpeVocab(String bpeVocab) {
|
||||
this.bpeVocab = bpeVocab;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNumThreads(int numThreads) {
|
||||
this.numThreads = numThreads;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDebug(boolean debug) {
|
||||
this.debug = debug;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setProvider(String provider) {
|
||||
this.provider = provider;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user