Expose dither for JNI (#2215)

This commit is contained in:
esavin
2025-05-14 18:38:25 +03:00
committed by GitHub
parent 2e9e0b4e9e
commit aeb311db50
5 changed files with 21 additions and 0 deletions

View File

@@ -6,10 +6,12 @@ package com.k2fsa.sherpa.onnx;
public class FeatureConfig { public class FeatureConfig {
private final int sampleRate; private final int sampleRate;
private final int featureDim; private final int featureDim;
private final float dither;
private FeatureConfig(Builder builder) { private FeatureConfig(Builder builder) {
this.sampleRate = builder.sampleRate; this.sampleRate = builder.sampleRate;
this.featureDim = builder.featureDim; this.featureDim = builder.featureDim;
this.dither = builder.dither;
} }
public static Builder builder() { public static Builder builder() {
@@ -24,9 +26,14 @@ public class FeatureConfig {
return featureDim; return featureDim;
} }
public float getDither() {
return dither;
}
public static class Builder { public static class Builder {
private int sampleRate = 16000; private int sampleRate = 16000;
private int featureDim = 80; private int featureDim = 80;
private float dither = 0.0f;
public FeatureConfig build() { public FeatureConfig build() {
return new FeatureConfig(this); return new FeatureConfig(this);
@@ -41,5 +48,9 @@ public class FeatureConfig {
this.featureDim = featureDim; this.featureDim = featureDim;
return this; return this;
} }
public Builder setDither(float dither) {
this.dither = dither;
return this;
}
} }
} }

View File

@@ -49,6 +49,9 @@ static KeywordSpotterConfig GetKwsConfig(JNIEnv *env, jobject config) {
fid = env->GetFieldID(feat_config_cls, "featureDim", "I"); fid = env->GetFieldID(feat_config_cls, "featureDim", "I");
ans.feat_config.feature_dim = env->GetIntField(feat_config, fid); ans.feat_config.feature_dim = env->GetIntField(feat_config, fid);
fid = env->GetFieldID(feat_config_cls, "dither", "F");
ans.feat_config.dither = env->GetFloatField(feat_config, fid);
//---------- model config ---------- //---------- model config ----------
fid = env->GetFieldID(cls, "modelConfig", fid = env->GetFieldID(cls, "modelConfig",
"Lcom/k2fsa/sherpa/onnx/OnlineModelConfig;"); "Lcom/k2fsa/sherpa/onnx/OnlineModelConfig;");

View File

@@ -62,6 +62,9 @@ static OfflineRecognizerConfig GetOfflineConfig(JNIEnv *env, jobject config) {
fid = env->GetFieldID(feat_config_cls, "featureDim", "I"); fid = env->GetFieldID(feat_config_cls, "featureDim", "I");
ans.feat_config.feature_dim = env->GetIntField(feat_config, fid); ans.feat_config.feature_dim = env->GetIntField(feat_config, fid);
fid = env->GetFieldID(feat_config_cls, "dither", "F");
ans.feat_config.dither = env->GetFloatField(feat_config, fid);
//---------- model config ---------- //---------- model config ----------
fid = env->GetFieldID(cls, "modelConfig", fid = env->GetFieldID(cls, "modelConfig",
"Lcom/k2fsa/sherpa/onnx/OfflineModelConfig;"); "Lcom/k2fsa/sherpa/onnx/OfflineModelConfig;");

View File

@@ -65,6 +65,9 @@ static OnlineRecognizerConfig GetConfig(JNIEnv *env, jobject config) {
fid = env->GetFieldID(feat_config_cls, "featureDim", "I"); fid = env->GetFieldID(feat_config_cls, "featureDim", "I");
ans.feat_config.feature_dim = env->GetIntField(feat_config, fid); ans.feat_config.feature_dim = env->GetIntField(feat_config, fid);
fid = env->GetFieldID(feat_config_cls, "dither", "F");
ans.feat_config.dither = env->GetFloatField(feat_config, fid);
//---------- enable endpoint ---------- //---------- enable endpoint ----------
fid = env->GetFieldID(cls, "enableEndpoint", "Z"); fid = env->GetFieldID(cls, "enableEndpoint", "Z");
ans.enable_endpoint = env->GetBooleanField(config, fid); ans.enable_endpoint = env->GetBooleanField(config, fid);

View File

@@ -3,6 +3,7 @@ package com.k2fsa.sherpa.onnx
data class FeatureConfig( data class FeatureConfig(
var sampleRate: Int = 16000, var sampleRate: Int = 16000,
var featureDim: Int = 80, var featureDim: Int = 80,
var dither: Float = 0.0f
) )
fun getFeatureConfig(sampleRate: Int, featureDim: Int): FeatureConfig { fun getFeatureConfig(sampleRate: Int, featureDim: Int): FeatureConfig {