From 50b53295729209587db2e256f975737bc8cdbf94 Mon Sep 17 00:00:00 2001 From: Fangjun Kuang Date: Tue, 29 Apr 2025 21:36:38 +0800 Subject: [PATCH] Add C# API for homophone replacer (#2165) --- scripts/dotnet/HomophoneReplacerConfig.cs | 26 +++++++++++++++++++++++ scripts/dotnet/OfflineRecognizerConfig.cs | 3 +++ scripts/dotnet/OnlineRecognizerConfig.cs | 3 +++ 3 files changed, 32 insertions(+) create mode 100644 scripts/dotnet/HomophoneReplacerConfig.cs diff --git a/scripts/dotnet/HomophoneReplacerConfig.cs b/scripts/dotnet/HomophoneReplacerConfig.cs new file mode 100644 index 00000000..d6ee0372 --- /dev/null +++ b/scripts/dotnet/HomophoneReplacerConfig.cs @@ -0,0 +1,26 @@ +/// Copyright (c) 2025 Xiaomi Corporation (authors: Fangjun Kuang) + +using System.Runtime.InteropServices; + +namespace SherpaOnnx +{ + [StructLayout(LayoutKind.Sequential)] + public struct HomophoneReplacerConfig + { + public HomophoneReplacerConfig() + { + DictDir = ""; + Lexicon = ""; + RuleFsts = ""; + } + + [MarshalAs(UnmanagedType.LPStr)] + public string DictDir; + + [MarshalAs(UnmanagedType.LPStr)] + public string Lexicon; + + [MarshalAs(UnmanagedType.LPStr)] + public string RuleFsts; + } +} diff --git a/scripts/dotnet/OfflineRecognizerConfig.cs b/scripts/dotnet/OfflineRecognizerConfig.cs index 012ae1ea..fd1fd773 100644 --- a/scripts/dotnet/OfflineRecognizerConfig.cs +++ b/scripts/dotnet/OfflineRecognizerConfig.cs @@ -20,6 +20,7 @@ namespace SherpaOnnx RuleFsts = ""; RuleFars = ""; BlankPenalty = 0.0F; + Hr = new HomophoneReplacerConfig(); } public FeatureConfig FeatConfig; public OfflineModelConfig ModelConfig; @@ -42,5 +43,7 @@ namespace SherpaOnnx public string RuleFars; public float BlankPenalty; + + public HomophoneReplacerConfig Hr; } } diff --git a/scripts/dotnet/OnlineRecognizerConfig.cs b/scripts/dotnet/OnlineRecognizerConfig.cs index bd55a109..329e910e 100644 --- a/scripts/dotnet/OnlineRecognizerConfig.cs +++ b/scripts/dotnet/OnlineRecognizerConfig.cs @@ -28,6 +28,7 @@ namespace SherpaOnnx BlankPenalty = 0.0F; HotwordsBuf = ""; HotwordsBufSize = 0; + Hr = new HomophoneReplacerConfig(); } public FeatureConfig FeatConfig; public OnlineModelConfig ModelConfig; @@ -79,5 +80,7 @@ namespace SherpaOnnx public string HotwordsBuf; public int HotwordsBufSize; + + public HomophoneReplacerConfig Hr; } }