Add C# API for FireRedAsr Model (#1875)
This commit is contained in:
4
.github/scripts/test-dot-net.sh
vendored
4
.github/scripts/test-dot-net.sh
vendored
@@ -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-*
|
||||
|
||||
|
||||
@@ -34,6 +34,14 @@ class OfflineDecodeFiles
|
||||
[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;
|
||||
|
||||
@@ -252,6 +260,11 @@ to download pre-trained Tdnn models.
|
||||
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");
|
||||
|
||||
17
dotnet-examples/offline-decode-files/run-fire-red-asr.sh
Executable file
17
dotnet-examples/offline-decode-files/run-fire-red-asr.sh
Executable file
@@ -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
scripts/dotnet/OfflineFireRedAsrModelConfig.cs
Normal file
21
scripts/dotnet/OfflineFireRedAsrModelConfig.cs
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ namespace SherpaOnnx
|
||||
TeleSpeechCtc = "";
|
||||
SenseVoice = new OfflineSenseVoiceModelConfig();
|
||||
Moonshine = new OfflineMoonshineModelConfig();
|
||||
FireRedAsr = new OfflineFireRedAsrModelConfig();
|
||||
}
|
||||
public OfflineTransducerModelConfig Transducer;
|
||||
public OfflineParaformerModelConfig Paraformer;
|
||||
@@ -56,5 +57,6 @@ namespace SherpaOnnx
|
||||
|
||||
public OfflineSenseVoiceModelConfig SenseVoice;
|
||||
public OfflineMoonshineModelConfig Moonshine;
|
||||
public OfflineFireRedAsrModelConfig FireRedAsr;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user