Committed by
GitHub
Fixed the C api calls and created the TTS project file (#1324)
Co-authored-by: Michael Twohey <mtwohey@americanambulance.com>
正在显示
6 个修改的文件
包含
54 行增加
和
8 行删除
| @@ -14,9 +14,13 @@ internal class Program | @@ -14,9 +14,13 @@ internal class Program | ||
| 14 | provider = "cpu", | 14 | provider = "cpu", |
| 15 | vits = new SherpaOnnxOfflineTtsVitsModelConfig | 15 | vits = new SherpaOnnxOfflineTtsVitsModelConfig |
| 16 | { | 16 | { |
| 17 | - lexicon = "vits-zh-aishell3/lexicon.txt", | ||
| 18 | - model = "vits-zh-aishell3/vits-aishell3.onnx", | ||
| 19 | - tokens = "vits-zh-aishell3/tokens.txt", | 17 | + //lexicon = "vits-zh-aishell3/lexicon.txt", |
| 18 | + //model = "vits-zh-aishell3/vits-aishell3.onnx", | ||
| 19 | + //tokens = "vits-zh-aishell3/tokens.txt", | ||
| 20 | + model = @"C:\Services\Sherpa\model.onnx", | ||
| 21 | + lexicon = "", | ||
| 22 | + tokens = @"C:\Services\Sherpa\tokens.txt", | ||
| 23 | + data_dir = @"C:\Services\Sherpa\espeak-ng-data", | ||
| 20 | 24 | ||
| 21 | noise_scale = 0.667f, | 25 | noise_scale = 0.667f, |
| 22 | noise_scale_w = 0.8f, | 26 | noise_scale_w = 0.8f, |
| @@ -6,5 +6,13 @@ namespace TTS.Struct | @@ -6,5 +6,13 @@ namespace TTS.Struct | ||
| 6 | public struct SherpaOnnxOfflineTtsConfig | 6 | public struct SherpaOnnxOfflineTtsConfig |
| 7 | { | 7 | { |
| 8 | public SherpaOnnxOfflineTtsModelConfig model; | 8 | public SherpaOnnxOfflineTtsModelConfig model; |
| 9 | + | ||
| 10 | + [MarshalAs(UnmanagedType.LPStr)] | ||
| 11 | + public string rule_fsts; | ||
| 12 | + | ||
| 13 | + public int max_num_sentences; | ||
| 14 | + | ||
| 15 | + [MarshalAs(UnmanagedType.LPStr)] | ||
| 16 | + public string rule_fars; | ||
| 9 | } | 17 | } |
| 10 | } | 18 | } |
| @@ -21,6 +21,9 @@ namespace TTS.Struct | @@ -21,6 +21,9 @@ namespace TTS.Struct | ||
| 21 | [MarshalAs(UnmanagedType.LPStr)] | 21 | [MarshalAs(UnmanagedType.LPStr)] |
| 22 | public string tokens; | 22 | public string tokens; |
| 23 | 23 | ||
| 24 | + [MarshalAs(UnmanagedType.LPStr)] | ||
| 25 | + public string data_dir; | ||
| 26 | + | ||
| 24 | /// <summary> | 27 | /// <summary> |
| 25 | /// VITS模型的noise_scale (float,默认值= 0.667) | 28 | /// VITS模型的noise_scale (float,默认值= 0.667) |
| 26 | /// </summary> | 29 | /// </summary> |
| @@ -34,6 +37,9 @@ namespace TTS.Struct | @@ -34,6 +37,9 @@ namespace TTS.Struct | ||
| 34 | /// </summary> | 37 | /// </summary> |
| 35 | public float length_scale = 1f; | 38 | public float length_scale = 1f; |
| 36 | 39 | ||
| 40 | + [MarshalAs(UnmanagedType.LPStr)] | ||
| 41 | + public string dict_dir; | ||
| 42 | + | ||
| 37 | public SherpaOnnxOfflineTtsVitsModelConfig() | 43 | public SherpaOnnxOfflineTtsVitsModelConfig() |
| 38 | { | 44 | { |
| 39 | noise_scale = 0.667f; | 45 | noise_scale = 0.667f; |
| @@ -43,6 +49,8 @@ namespace TTS.Struct | @@ -43,6 +49,8 @@ namespace TTS.Struct | ||
| 43 | model = "vits-zh-aishell3/vits-aishell3.onnx"; | 49 | model = "vits-zh-aishell3/vits-aishell3.onnx"; |
| 44 | lexicon = "vits-zh-aishell3/lexicon.txt"; | 50 | lexicon = "vits-zh-aishell3/lexicon.txt"; |
| 45 | tokens = "vits-zh-aishell3/tokens.txt"; | 51 | tokens = "vits-zh-aishell3/tokens.txt"; |
| 52 | + data_dir = ""; | ||
| 53 | + dict_dir = ""; | ||
| 46 | } | 54 | } |
| 47 | } | 55 | } |
| 48 | } | 56 | } |
dotnet-examples/TTS/TTS.csproj
0 → 100644
| 1 | +<Project Sdk="Microsoft.NET.Sdk"> | ||
| 2 | + | ||
| 3 | + <PropertyGroup> | ||
| 4 | + <OutputType>Exe</OutputType> | ||
| 5 | + <TargetFramework>net6.0</TargetFramework> | ||
| 6 | + <ImplicitUsings>enable</ImplicitUsings> | ||
| 7 | + <Nullable>enable</Nullable> | ||
| 8 | + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
| 9 | + </PropertyGroup> | ||
| 10 | + <ItemGroup> | ||
| 11 | + <PackageReference Include="NAudio" Version="2.2.1" /> | ||
| 12 | + <PackageReference Include="org.k2fsa.sherpa.onnx" Version="1.10.23" /> | ||
| 13 | + </ItemGroup> | ||
| 14 | + | ||
| 15 | +</Project> |
| @@ -7,7 +7,7 @@ namespace TTS | @@ -7,7 +7,7 @@ namespace TTS | ||
| 7 | { | 7 | { |
| 8 | public const string Filename = "sherpa-onnx-c-api"; | 8 | public const string Filename = "sherpa-onnx-c-api"; |
| 9 | 9 | ||
| 10 | - [DllImport(Filename)] | 10 | + [DllImport(Filename, CallingConvention = CallingConvention.Cdecl)] |
| 11 | private static extern IntPtr SherpaOnnxCreateOfflineTts(SherpaOnnxOfflineTtsConfig handle); | 11 | private static extern IntPtr SherpaOnnxCreateOfflineTts(SherpaOnnxOfflineTtsConfig handle); |
| 12 | 12 | ||
| 13 | [DllImport(Filename)] | 13 | [DllImport(Filename)] |
| @@ -23,7 +23,12 @@ namespace TTS | @@ -23,7 +23,12 @@ namespace TTS | ||
| 23 | 23 | ||
| 24 | public TTSCore(SherpaOnnxOfflineTtsConfig modelConfig) | 24 | public TTSCore(SherpaOnnxOfflineTtsConfig modelConfig) |
| 25 | { | 25 | { |
| 26 | - thisHandle = SherpaOnnxCreateOfflineTts(modelConfig); | 26 | + IntPtr ttsHandle = SherpaOnnxCreateOfflineTts(modelConfig); |
| 27 | + if (ttsHandle == IntPtr.Zero) | ||
| 28 | + { | ||
| 29 | + throw new InvalidOperationException("Failed to create SherpaOnnx TTS engine."); | ||
| 30 | + } | ||
| 31 | + thisHandle = ttsHandle; | ||
| 27 | } | 32 | } |
| 28 | 33 | ||
| 29 | /// <summary> | 34 | /// <summary> |
| @@ -23,11 +23,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "offline-punctuation", "offl | @@ -23,11 +23,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "offline-punctuation", "offl | ||
| 23 | EndProject | 23 | EndProject |
| 24 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "vad-non-streaming-asr-paraformer", "vad-non-streaming-asr-paraformer\vad-non-streaming-asr-paraformer.csproj", "{8CD6B7E5-F59F-47B3-BB87-2B2E3678924D}" | 24 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "vad-non-streaming-asr-paraformer", "vad-non-streaming-asr-paraformer\vad-non-streaming-asr-paraformer.csproj", "{8CD6B7E5-F59F-47B3-BB87-2B2E3678924D}" |
| 25 | EndProject | 25 | EndProject |
| 26 | -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{401E963F-E25A-43CE-987D-8DB2D4715756}" | 26 | +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "Common\Common.csproj", "{401E963F-E25A-43CE-987D-8DB2D4715756}" |
| 27 | EndProject | 27 | EndProject |
| 28 | -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "keyword-spotting-from-files", "keyword-spotting-from-files\keyword-spotting-from-files.csproj", "{A87EDD31-D654-4C9F-AED7-F6F2825659BD}" | 28 | +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "keyword-spotting-from-files", "keyword-spotting-from-files\keyword-spotting-from-files.csproj", "{A87EDD31-D654-4C9F-AED7-F6F2825659BD}" |
| 29 | EndProject | 29 | EndProject |
| 30 | -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "keyword-spotting-from-microphone", "keyword-spotting-from-microphone\keyword-spotting-from-microphone.csproj", "{AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}" | 30 | +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "keyword-spotting-from-microphone", "keyword-spotting-from-microphone\keyword-spotting-from-microphone.csproj", "{AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}" |
| 31 | +EndProject | ||
| 32 | +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TTS", "TTS\TTS.csproj", "{DACE4A18-4FC8-4437-92BF-5A90BA81286C}" | ||
| 31 | EndProject | 33 | EndProject |
| 32 | Global | 34 | Global |
| 33 | GlobalSection(SolutionConfigurationPlatforms) = preSolution | 35 | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| @@ -87,6 +89,10 @@ Global | @@ -87,6 +89,10 @@ Global | ||
| 87 | {AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}.Debug|Any CPU.Build.0 = Debug|Any CPU | 89 | {AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| 88 | {AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}.Release|Any CPU.ActiveCfg = Release|Any CPU | 90 | {AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| 89 | {AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}.Release|Any CPU.Build.0 = Release|Any CPU | 91 | {AEE0ED2B-C86F-4952-863C-EAD3219CB4EC}.Release|Any CPU.Build.0 = Release|Any CPU |
| 92 | + {DACE4A18-4FC8-4437-92BF-5A90BA81286C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| 93 | + {DACE4A18-4FC8-4437-92BF-5A90BA81286C}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| 94 | + {DACE4A18-4FC8-4437-92BF-5A90BA81286C}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| 95 | + {DACE4A18-4FC8-4437-92BF-5A90BA81286C}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| 90 | EndGlobalSection | 96 | EndGlobalSection |
| 91 | GlobalSection(SolutionProperties) = preSolution | 97 | GlobalSection(SolutionProperties) = preSolution |
| 92 | HideSolutionNode = FALSE | 98 | HideSolutionNode = FALSE |
-
请 注册 或 登录 后发表评论