Skip to main content

silk v3 codec NAudio extensions, support WeChat and QQ

Total Downloads
101
101
Published
Aug 26, 2026
1mo ago

Get Started

dotnet add package DrAbc.SilkCodec.NAudio --version 1.0.0
ProductVersions
.NET
net10.0-windows7.0

README

SilkCodec.NET.NAudio

NAudio extensions for SilkCodec.NET. Convert any NAudio-readable audio format to Silk v3, and decode Silk v3 to WAV, PCM, MP3, AAC/M4A, WMA or FLAC.

Windows only (net10.0-windows). Compressed formats use Media Foundation.

Install

dotnet add package SilkCodec.NET.NAudio

Encode

using SilkCodec.NET;
using SilkCodec.NET.NAudio;
using NAudio.Wave;

var encoder = new SilkEncoder(new SilkEncoderOptions
{
    SampleRate = 24000,
    BitRate = 25000,
    Tencent = true
});

byte[] silk = encoder.EncodeFile("voice.mp3");
encoder.EncodeFile("voice.wav", "voice.silk");

using var reader = new AudioFileReader("voice.m4a");
byte[] fromReader = encoder.Encode(reader);
byte[] fromProvider = ((IWaveProvider)reader).ToSilk(encoder.Options);

.pcm, .raw and .s16le files are treated as signed 16-bit little-endian mono at encoder.Options.SampleRate.

Decode

var decoder = new SilkDecoder(new SilkDecoderOptions { SampleRate = 24000 });

decoder.DecodeFile("voice.silk", "voice.wav");
decoder.DecodeFile("voice.silk", "voice.mp3");
byte[] wav = decoder.DecodeToWav(File.ReadAllBytes("voice.silk"));

using RawSourceWaveStream wave = decoder.DecodeToWaveStream(File.ReadAllBytes("voice.silk"));

Output format is inferred from the file extension: .wav, .pcm/.raw/.s16le, .mp3, .m4a/.aac/.mp4, .wma, .flac.

MP3, AAC and WMA encoding may resample to 44.1 kHz because Windows Media Foundation often rejects 24 kHz mono.

License

MIT (Expat), see the repository LICENSE.

Downloads by Version

Not enough data for chart

Similar & Alternative Packages

Hand-picked matching NuGet libraries based on tags & ecosystem

Depended On By

Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.