Fix passing C# string to C++ (#1055)
This commit is contained in:
4
.github/workflows/linux-jni.yaml
vendored
4
.github/workflows/linux-jni.yaml
vendored
@@ -71,7 +71,7 @@ jobs:
|
|||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
cmake -DSHERPA_ONNX_ENABLE_TTS=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -D BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -DSHERPA_ONNX_ENABLE_JNI=ON ..
|
cmake -DSHERPA_ONNX_ENABLE_TTS=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -DSHERPA_ONNX_ENABLE_JNI=ON ..
|
||||||
|
|
||||||
make -j2
|
make -j2
|
||||||
make install
|
make install
|
||||||
@@ -153,7 +153,7 @@ jobs:
|
|||||||
git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-libs main
|
git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-libs main
|
||||||
|
|
||||||
- name: Release pre-compiled binaries and libs for linux x64
|
- name: Release pre-compiled binaries and libs for linux x64
|
||||||
if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/') && matrix.build_type == 'Release'
|
if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/')
|
||||||
uses: svenstaro/upload-release-action@v2
|
uses: svenstaro/upload-release-action@v2
|
||||||
with:
|
with:
|
||||||
file_glob: true
|
file_glob: true
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ project(sherpa-onnx)
|
|||||||
# ./nodejs-addon-examples
|
# ./nodejs-addon-examples
|
||||||
# ./dart-api-examples/
|
# ./dart-api-examples/
|
||||||
# ./sherpa-onnx/flutter/CHANGELOG.md
|
# ./sherpa-onnx/flutter/CHANGELOG.md
|
||||||
set(SHERPA_ONNX_VERSION "1.10.1")
|
set(SHERPA_ONNX_VERSION "1.10.2")
|
||||||
|
|
||||||
# Disable warning about
|
# Disable warning about
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ environment:
|
|||||||
|
|
||||||
# Add regular dependencies here.
|
# Add regular dependencies here.
|
||||||
dependencies:
|
dependencies:
|
||||||
sherpa_onnx: ^1.10.1
|
sherpa_onnx: ^1.10.2
|
||||||
path: ^1.9.0
|
path: ^1.9.0
|
||||||
args: ^2.5.0
|
args: ^2.5.0
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ environment:
|
|||||||
|
|
||||||
# Add regular dependencies here.
|
# Add regular dependencies here.
|
||||||
dependencies:
|
dependencies:
|
||||||
sherpa_onnx: ^1.10.1
|
sherpa_onnx: ^1.10.2
|
||||||
path: ^1.9.0
|
path: ^1.9.0
|
||||||
args: ^2.5.0
|
args: ^2.5.0
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ environment:
|
|||||||
|
|
||||||
# Add regular dependencies here.
|
# Add regular dependencies here.
|
||||||
dependencies:
|
dependencies:
|
||||||
sherpa_onnx: ^1.10.1
|
sherpa_onnx: ^1.10.2
|
||||||
path: ^1.9.0
|
path: ^1.9.0
|
||||||
args: ^2.5.0
|
args: ^2.5.0
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ environment:
|
|||||||
sdk: ^3.4.0
|
sdk: ^3.4.0
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
sherpa_onnx: ^1.10.1
|
sherpa_onnx: ^1.10.2
|
||||||
path: ^1.9.0
|
path: ^1.9.0
|
||||||
args: ^2.5.0
|
args: ^2.5.0
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="CommandLineParser" Version="2.9.1" />
|
<PackageReference Include="CommandLineParser" Version="2.9.1" />
|
||||||
<PackageReference Include="org.k2fsa.sherpa.onnx" Version="1.10.1" />
|
<PackageReference Include="org.k2fsa.sherpa.onnx" Version="*" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
0
dotnet-examples/offline-punctuation/run.sh
Normal file → Executable file
0
dotnet-examples/offline-punctuation/run.sh
Normal file → Executable file
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"sherpa-onnx-node": "^1.10.1"
|
"sherpa-onnx-node": "^1.10.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
scripts/dotnet/.gitignore
vendored
3
scripts/dotnet/.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
all
|
all
|
||||||
macos
|
macos-arm64
|
||||||
|
macos-x64
|
||||||
linux
|
linux
|
||||||
windows
|
windows
|
||||||
windows-x64
|
windows-x64
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ namespace SherpaOnnx
|
|||||||
|
|
||||||
public String AddPunct(String text)
|
public String AddPunct(String text)
|
||||||
{
|
{
|
||||||
IntPtr p = SherpaOfflinePunctuationAddPunct(_handle.Handle, text);
|
byte[] utf8Bytes = Encoding.UTF8.GetBytes(text);
|
||||||
|
|
||||||
|
IntPtr p = SherpaOfflinePunctuationAddPunct(_handle.Handle, utf8Bytes);
|
||||||
|
|
||||||
string s = "";
|
string s = "";
|
||||||
int length = 0;
|
int length = 0;
|
||||||
@@ -77,7 +79,7 @@ namespace SherpaOnnx
|
|||||||
private static extern void SherpaOnnxDestroyOfflinePunctuation(IntPtr handle);
|
private static extern void SherpaOnnxDestroyOfflinePunctuation(IntPtr handle);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern IntPtr SherpaOfflinePunctuationAddPunct(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string text);
|
private static extern IntPtr SherpaOfflinePunctuationAddPunct(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Text);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern void SherpaOfflinePunctuationFreeText(IntPtr p);
|
private static extern void SherpaOfflinePunctuationFreeText(IntPtr p);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/// Copyright (c) 2024.5 by 东风破
|
/// Copyright (c) 2024.5 by 东风破
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace SherpaOnnx
|
namespace SherpaOnnx
|
||||||
{
|
{
|
||||||
@@ -17,13 +18,15 @@ namespace SherpaOnnx
|
|||||||
|
|
||||||
public OfflineTtsGeneratedAudio Generate(String text, float speed, int speakerId)
|
public OfflineTtsGeneratedAudio Generate(String text, float speed, int speakerId)
|
||||||
{
|
{
|
||||||
IntPtr p = SherpaOnnxOfflineTtsGenerate(_handle.Handle, text, speakerId, speed);
|
byte[] utf8Bytes = Encoding.UTF8.GetBytes(text);
|
||||||
|
IntPtr p = SherpaOnnxOfflineTtsGenerate(_handle.Handle, utf8Bytes, speakerId, speed);
|
||||||
return new OfflineTtsGeneratedAudio(p);
|
return new OfflineTtsGeneratedAudio(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
public OfflineTtsGeneratedAudio GenerateWithCallback(String text, float speed, int speakerId, OfflineTtsCallback callback)
|
public OfflineTtsGeneratedAudio GenerateWithCallback(String text, float speed, int speakerId, OfflineTtsCallback callback)
|
||||||
{
|
{
|
||||||
IntPtr p = SherpaOnnxOfflineTtsGenerateWithCallback(_handle.Handle, text, speakerId, speed, callback);
|
byte[] utf8Bytes = Encoding.UTF8.GetBytes(text);
|
||||||
|
IntPtr p = SherpaOnnxOfflineTtsGenerateWithCallback(_handle.Handle, utf8Bytes, speakerId, speed, callback);
|
||||||
return new OfflineTtsGeneratedAudio(p);
|
return new OfflineTtsGeneratedAudio(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,9 +82,9 @@ namespace SherpaOnnx
|
|||||||
private static extern int SherpaOnnxOfflineTtsNumSpeakers(IntPtr handle);
|
private static extern int SherpaOnnxOfflineTtsNumSpeakers(IntPtr handle);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern IntPtr SherpaOnnxOfflineTtsGenerate(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string text, int sid, float speed);
|
private static extern IntPtr SherpaOnnxOfflineTtsGenerate(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Text, int sid, float speed);
|
||||||
|
|
||||||
[DllImport(Dll.Filename, CallingConvention = CallingConvention.Cdecl)]
|
[DllImport(Dll.Filename, CallingConvention = CallingConvention.Cdecl)]
|
||||||
private static extern IntPtr SherpaOnnxOfflineTtsGenerateWithCallback(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string text, int sid, float speed, OfflineTtsCallback callback);
|
private static extern IntPtr SherpaOnnxOfflineTtsGenerateWithCallback(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Text, int sid, float speed, OfflineTtsCallback callback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/// Copyright (c) 2024.5 by 东风破
|
/// Copyright (c) 2024.5 by 东风破
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace SherpaOnnx
|
namespace SherpaOnnx
|
||||||
{
|
{
|
||||||
@@ -14,7 +15,8 @@ namespace SherpaOnnx
|
|||||||
public bool SaveToWaveFile(String filename)
|
public bool SaveToWaveFile(String filename)
|
||||||
{
|
{
|
||||||
Impl impl = (Impl)Marshal.PtrToStructure(Handle, typeof(Impl));
|
Impl impl = (Impl)Marshal.PtrToStructure(Handle, typeof(Impl));
|
||||||
int status = SherpaOnnxWriteWave(impl.Samples, impl.NumSamples, impl.SampleRate, filename);
|
byte[] utf8Filename = Encoding.UTF8.GetBytes(filename);
|
||||||
|
int status = SherpaOnnxWriteWave(impl.Samples, impl.NumSamples, impl.SampleRate, utf8Filename);
|
||||||
return status == 1;
|
return status == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,6 +86,6 @@ namespace SherpaOnnx
|
|||||||
private static extern void SherpaOnnxDestroyOfflineTtsGeneratedAudio(IntPtr handle);
|
private static extern void SherpaOnnxDestroyOfflineTtsGeneratedAudio(IntPtr handle);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxWriteWave(IntPtr samples, int n, int sample_rate, [MarshalAs(UnmanagedType.LPStr)] string filename);
|
private static extern int SherpaOnnxWriteWave(IntPtr samples, int n, int sample_rate, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ namespace SherpaOnnx
|
|||||||
|
|
||||||
public bool Add(string name, float[] v)
|
public bool Add(string name, float[] v)
|
||||||
{
|
{
|
||||||
return SherpaOnnxSpeakerEmbeddingManagerAdd(_handle.Handle, name, v) == 1;
|
byte[] utf8Name = Encoding.UTF8.GetBytes(name);
|
||||||
|
return SherpaOnnxSpeakerEmbeddingManagerAdd(_handle.Handle, utf8Name, v) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Add(string name, ICollection<float[]> v_list)
|
public bool Add(string name, ICollection<float[]> v_list)
|
||||||
@@ -31,12 +32,14 @@ namespace SherpaOnnx
|
|||||||
i += _dim;
|
i += _dim;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SherpaOnnxSpeakerEmbeddingManagerAddListFlattened(_handle.Handle, name, v, n) == 1;
|
byte[] utf8Name = Encoding.UTF8.GetBytes(name);
|
||||||
|
return SherpaOnnxSpeakerEmbeddingManagerAddListFlattened(_handle.Handle, utf8Name, v, n) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Remove(string name)
|
public bool Remove(string name)
|
||||||
{
|
{
|
||||||
return SherpaOnnxSpeakerEmbeddingManagerRemove(_handle.Handle, name) == 1;
|
byte[] utf8Name = Encoding.UTF8.GetBytes(name);
|
||||||
|
return SherpaOnnxSpeakerEmbeddingManagerRemove(_handle.Handle, utf8Name) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Search(float[] v, float threshold)
|
public string Search(float[] v, float threshold)
|
||||||
@@ -73,12 +76,14 @@ namespace SherpaOnnx
|
|||||||
|
|
||||||
public bool Verify(string name, float[] v, float threshold)
|
public bool Verify(string name, float[] v, float threshold)
|
||||||
{
|
{
|
||||||
return SherpaOnnxSpeakerEmbeddingManagerVerify(_handle.Handle, name, v, threshold) == 1;
|
byte[] utf8Name = Encoding.UTF8.GetBytes(name);
|
||||||
|
return SherpaOnnxSpeakerEmbeddingManagerVerify(_handle.Handle, utf8Name, v, threshold) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Contains(string name)
|
public bool Contains(string name)
|
||||||
{
|
{
|
||||||
return SherpaOnnxSpeakerEmbeddingManagerContains(_handle.Handle, name) == 1;
|
byte[] utf8Name = Encoding.UTF8.GetBytes(name);
|
||||||
|
return SherpaOnnxSpeakerEmbeddingManagerContains(_handle.Handle, utf8Name) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string[] GetAllSpeakers()
|
public string[] GetAllSpeakers()
|
||||||
@@ -155,13 +160,13 @@ namespace SherpaOnnx
|
|||||||
private static extern void SherpaOnnxDestroySpeakerEmbeddingManager(IntPtr handle);
|
private static extern void SherpaOnnxDestroySpeakerEmbeddingManager(IntPtr handle);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxSpeakerEmbeddingManagerAdd(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string name, float[] v);
|
private static extern int SherpaOnnxSpeakerEmbeddingManagerAdd(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Name, float[] v);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxSpeakerEmbeddingManagerAddListFlattened(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string name, float[] v, int n);
|
private static extern int SherpaOnnxSpeakerEmbeddingManagerAddListFlattened(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Name, float[] v, int n);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxSpeakerEmbeddingManagerRemove(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string name);
|
private static extern int SherpaOnnxSpeakerEmbeddingManagerRemove(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Name);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern IntPtr SherpaOnnxSpeakerEmbeddingManagerSearch(IntPtr handle, float[] v, float threshold);
|
private static extern IntPtr SherpaOnnxSpeakerEmbeddingManagerSearch(IntPtr handle, float[] v, float threshold);
|
||||||
@@ -170,10 +175,10 @@ namespace SherpaOnnx
|
|||||||
private static extern void SherpaOnnxSpeakerEmbeddingManagerFreeSearch(IntPtr p);
|
private static extern void SherpaOnnxSpeakerEmbeddingManagerFreeSearch(IntPtr p);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxSpeakerEmbeddingManagerVerify(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string name, float[] v, float threshold);
|
private static extern int SherpaOnnxSpeakerEmbeddingManagerVerify(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Name, float[] v, float threshold);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxSpeakerEmbeddingManagerContains(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] string name);
|
private static extern int SherpaOnnxSpeakerEmbeddingManagerContains(IntPtr handle, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1)] byte[] utf8Name);
|
||||||
|
|
||||||
[DllImport(Dll.Filename)]
|
[DllImport(Dll.Filename)]
|
||||||
private static extern int SherpaOnnxSpeakerEmbeddingManagerNumSpeakers(IntPtr handle);
|
private static extern int SherpaOnnxSpeakerEmbeddingManagerNumSpeakers(IntPtr handle);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="CommandLineParser" Version="2.9.1" />
|
<PackageReference Include="CommandLineParser" Version="2.9.1" />
|
||||||
<PackageReference Include="org.k2fsa.sherpa.onnx" Version="1.10.1" />
|
<PackageReference Include="org.k2fsa.sherpa.onnx" Version="*" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.10.2
|
||||||
|
|
||||||
|
* Fix passing C# string to C++
|
||||||
|
|
||||||
## 1.10.1
|
## 1.10.1
|
||||||
|
|
||||||
* Enable to stop TTS generation
|
* Enable to stop TTS generation
|
||||||
|
|||||||
Reference in New Issue
Block a user