Skip to content

Commit

Permalink
Add C# API for FireRedAsr Model (#1875)
Browse files Browse the repository at this point in the history
  • Loading branch information
csukuangfj authored Feb 17, 2025
1 parent 7ad44bc commit d95d431
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/scripts/test-dot-net.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ rm -fv *.wav
rm -rfv sherpa-onnx-pyannote-*

cd ../offline-decode-files

./run-fire-red-asr.sh
rm -rf sherpa-onnx-fire-red-asr-*

./run-moonshine.sh
rm -rf sherpa-onnx-*

Expand Down
13 changes: 13 additions & 0 deletions dotnet-examples/offline-decode-files/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ class Options
[Option("model-type", Required = false, Default = "", HelpText = "model type")]
public string ModelType { get; set; } = string.Empty;

[Option("fire-red-asr-encoder", Required = false, Default = "", HelpText = "Path to FireRedAsr encoder.int8.onnx. Used only for FireRedAsr models")]
public string FireRedAsrEncoder { get; set; } = string.Empty;


[Option("fire-red-asr-decoder", Required = false, Default = "", HelpText = "Path to FireRedAsr decoder.int8.onnx. Used only for FireRedAsr models")]
public string FireRedAsrDecoder { get; set; } = string.Empty;


[Option("whisper-encoder", Required = false, Default = "", HelpText = "Path to whisper encoder.onnx. Used only for whisper models")]
public string WhisperEncoder { get; set; } = string.Empty;

Expand Down Expand Up @@ -252,6 +260,11 @@ private static void Run(Options options)
config.ModelConfig.Moonshine.UncachedDecoder = options.MoonshineUncachedDecoder;
config.ModelConfig.Moonshine.CachedDecoder = options.MoonshineCachedDecoder;
}
else if (!string.IsNullOrEmpty(options.FireRedAsrEncoder))
{
config.ModelConfig.FireRedAsr.Encoder = options.FireRedAsrEncoder;
config.ModelConfig.FireRedAsr.Decoder = options.FireRedAsrDecoder;
}
else
{
Console.WriteLine("Please provide a model");
Expand Down
17 changes: 17 additions & 0 deletions dotnet-examples/offline-decode-files/run-fire-red-asr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env bash

set -ex

if [ ! -f ./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/encoder.int8.onnx ]; then
curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16.tar.bz2
tar xvf sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16.tar.bz2
rm sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16.tar.bz2
ls -lh sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16
fi

dotnet run \
--num-threads=2 \
--fire-red-asr-encoder=./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/encoder.int8.onnx \
--fire-red-asr-decoder=./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/decoder.int8.onnx \
--tokens=./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/tokens.txt \
--files ./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/test_wavs/0.wav
21 changes: 21 additions & 0 deletions scripts/dotnet/OfflineFireRedAsrModelConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/// Copyright (c) 2025 Xiaomi Corporation (authors: Fangjun Kuang)

using System.Runtime.InteropServices;

namespace SherpaOnnx
{
[StructLayout(LayoutKind.Sequential)]
public struct OfflineFireRedAsrModelConfig
{
public OfflineFireRedAsrModelConfig()
{
Encoder = "";
Decoder = "";
}
[MarshalAs(UnmanagedType.LPStr)]
public string Encoder;

[MarshalAs(UnmanagedType.LPStr)]
public string Decoder;
}
}
2 changes: 2 additions & 0 deletions scripts/dotnet/OfflineModelConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public OfflineModelConfig()
TeleSpeechCtc = "";
SenseVoice = new OfflineSenseVoiceModelConfig();
Moonshine = new OfflineMoonshineModelConfig();
FireRedAsr = new OfflineFireRedAsrModelConfig();
}
public OfflineTransducerModelConfig Transducer;
public OfflineParaformerModelConfig Paraformer;
Expand Down Expand Up @@ -56,5 +57,6 @@ public OfflineModelConfig()

public OfflineSenseVoiceModelConfig SenseVoice;
public OfflineMoonshineModelConfig Moonshine;
public OfflineFireRedAsrModelConfig FireRedAsr;
}
}

0 comments on commit d95d431

Please sign in to comment.