ManySpeech.WenetAsr 1.0.1

dotnet add package ManySpeech.WenetAsr --version 1.0.1
                    
NuGet\Install-Package ManySpeech.WenetAsr -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ManySpeech.WenetAsr" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ManySpeech.WenetAsr" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="ManySpeech.WenetAsr" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ManySpeech.WenetAsr --version 1.0.1
                    
#r "nuget: ManySpeech.WenetAsr, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ManySpeech.WenetAsr@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ManySpeech.WenetAsr&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=ManySpeech.WenetAsr&version=1.0.1
                    
Install as a Cake Tool

WenetAsr

A C# library for decoding the Wenet ASR ONNX model

Overview

This is a C# library designed for decoding Wenet ASR (Automatic Speech Recognition) ONNX models. Written in C#, it supports multiple environments including net461+, net60+, netcoreapp3.1, and netstandard2.0+. It enables cross-platform compilation and AOT (Ahead-of-Time) compilation, with a simple and user-friendly API.

You can quickly build multi-platform applications using MAUI or Uno frameworks.

Differences Between WenetAsr and WenetAsr2 in the Project

1. Common Features

  • Identical functionality and invocation methods.
  • Both support decoding of streaming and non-streaming (offline) models.

2. Key Differences

Library Module for Loading Streaming/Non-Streaming Models Model & Extensibility
WenetAsr Combined into one module 1. Loads ONNX models officially exported by Wenet. <br> 2. Concise code structure.
WenetAsr2 Separate modules (one for streaming, one for non-streaming) 1. Loads ONNX models officially exported by Wenet. <br> 2. Easy to extend: If your custom-exported streaming/non-streaming ONNX models have different configuration parameters, you can adjust each module independently without mutual interference.

Recommendation: If you have no secondary development needs and want to directly use Wenet’s officially exported ONNX models, WenetAsr is preferred.

Supported Models (ONNX)

Model Name Type Supported Language Download Link
wenet-u2pp-conformer-aishell-onnx-online-20210601 Streaming Chinese modelscope
wenet-u2pp-conformer-aishell-onnx-offline-20210601 Offline Chinese modelscope
wenet-u2pp-conformer-wenetspeech-onnx-online-20220506 Streaming Chinese modelscope
wenet-u2pp-conformer-wenetspeech-onnx-offline-20220506 Offline Chinese modelscope
wenet-u2pp-conformer-gigaspeech-onnx-online-20210728 Streaming English modelscope
wenet-u2pp-conformer-gigaspeech-onnx-offline-20210728 Offline English modelscope

Invocation Method for Offline (Non-Streaming) Models

1. Add Project Reference

using WenetAsr;

2. Model Initialization and Configuration

// Load model files (get the base directory of the application)
string applicationBase = AppDomain.CurrentDomain.BaseDirectory;
string modelName = "wenet-u2pp-conformer-wenetspeech-onnx-offline-20220506";

// Paths to model components and token file
string encoderFilePath = Path.Combine(applicationBase, modelName, "encoder.int8.onnx");
string decoderFilePath = Path.Combine(applicationBase, modelName, "decoder.int8.onnx");
string ctcFilePath = Path.Combine(applicationBase, modelName, "ctc.int8.onnx");
string tokensFilePath = Path.Combine(applicationBase, modelName, "tokens.txt");

// Initialize the offline recognizer
WenetAsr.OfflineRecognizer offlineRecognizer = new WenetAsr.OfflineRecognizer(
    encoderFilePath, 
    decoderFilePath, 
    ctcFilePath, 
    tokensFilePath
);

3. Invocation

// Note: Audio file-to-sample conversion is omitted here. 
// For details, refer to `test_WenetAsrOfflineRecognizer` in the `examples` directory.

// Create an offline stream
WenetAsr.OfflineStream stream = offlineRecognizer.CreateOfflineStream();

// Add audio samples to the stream
stream.AddSamples(sample);

// Get recognition results
WenetAsr.Model.OfflineRecognizerResultEntity result = offlineRecognizer.GetResult(stream);

// Print the result
Console.WriteLine(result.Text);

4. Output Results

Chinese (using model: wenet-u2pp-conformer-wenetspeech-onnx-offline-20220506)
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义

啊这是第一种第二种叫嗯与欧维斯欧维斯什么意思

蒋永伯被拍到带着女儿出游

周望君就落实控物价

每当新年的钟声敲响的时候我总会闭起眼睛静静地许愿有时也会给自己定下新年的奋斗目标还有时听到新年的终身时我的心里会有一种遗憾的感觉感慨时光过的如此匆匆而自己往年的愿 望还没达成尽管如此经过岁月的洗礼我已长大成熟学会了勇敢的面对现实的一切

elapsed_milliseconds:6729.828125
total_duration:57944.0625
rtf:0.11614353282530027
end!
English (using model: wenet-u2pp-conformer-gigaspeech-onnx-offline-20210728)
after early nightfall the yellow lamps would light up here and there the squalid quarter of the brothels

god as a direct consequence of the sin which man thus punished had given her a lovely child whose place was on that same dishonored bosom to connect her parent for ever with the race and descent of mortals and to be finally a blessed soul in heaven

elapsed_milliseconds:2639.1171875
total_duration:23340
rtf:0.11307271583119109
end!

Invocation Method for Real-Time (Streaming) Models

1. Add Project Reference

using WenetAsr;

2. Model Initialization and Configuration

// Load model files (get the base directory of the application)
string applicationBase = AppDomain.CurrentDomain.BaseDirectory;
string modelName = "wenet-u2pp-conformer-wenetspeech-onnx-online-20220506";

// Paths to model components and token file
string encoderFilePath = Path.Combine(applicationBase, modelName, "encoder.int8.onnx");
string decoderFilePath = Path.Combine(applicationBase, modelName, "decoder.int8.onnx");
string ctcFilePath = Path.Combine(applicationBase, modelName, "ctc.int8.onnx");
string tokensFilePath = Path.Combine(applicationBase, modelName, "tokens.txt");

// Initialize the online recognizer
WenetAsr.OnlineRecognizer onlineRecognizer = new WenetAsr.OnlineRecognizer(
    encoderFilePath, 
    decoderFilePath, 
    ctcFilePath, 
    tokensFilePath
);

3. Invocation

// Note: Audio file-to-sample conversion (or audio input from a microphone) is omitted here. 
// For details, refer to `test_WenetAsrOnlineRecognizer` in the `examples` directory.

// Create an online stream
WenetAsr.OnlineStream stream = onlineRecognizer.CreateOnlineStream();

while (true)
{
    // Note: This is a simplified decoding example. 
    // For a complete and robust workflow, refer to the `examples` directory.
    
    // Get audio samples (from audio files or microphone)
    // sample = audio samples from input source
    
    // Add samples to the stream
    stream.AddSamples(sample);
    
    // Get real-time recognition results
    WenetAsr.Model.OnlineRecognizerResultEntity result = onlineRecognizer.GetResult(stream);
    
    // Print the incremental result
    Console.WriteLine(result.Text);
}

4. Output Results

正是因为
正是因为
正是因为
正是因为
正是因为
正是因为
正是因为
正是因为
正是因为
正是因为
正是因为
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义
正是因为存在绝对正义所以我们接受现实的相对正议但是不要因为现实的相对正义我们就认为这个世界没有正义因为如果当你认为这个世界没有正义

elapsed_milliseconds:2148.8515625
total_duration:13052
rtf:0.16463772314587802
end!
  1. Voice Activity Detection (VAD)
    Solves the problem of reasonable segmentation of long audio.
    Project URL: AliFsmnVad

  2. Text Punctuation Prediction
    Solves the problem of missing punctuation in recognition results.
    Project URL: AliCTTransformerPunc

Additional Notes

  • Test Cases: Refer to WenetAsr.Examples for complete usage examples.
  • Test CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz 2.59 GHz
  • Supported Platforms:
    • Windows 7 SP1 or later
    • macOS 10.13 (High Sierra) or later, iOS
    • Linux distributions (specific dependencies required; see the list of Linux distributions supported by .NET 6)
    • Android (Android 5.0 (API 21) or later)
  • Audio Sample Conversion: The NAudio library is used for audio sample processing in the examples.

References

[1] https://github.com/wenet-e2e/wenet

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-android34.0 is compatible.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-ios18.0 is compatible.  net8.0-maccatalyst was computed.  net8.0-maccatalyst18.0 is compatible.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net8.0-windows10.0.19041 is compatible.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 is compatible. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 153 9/1/2025
1.0.0 140 9/1/2025