Skip to main content
net10.0-windows7.0

silk v3 codec NAudio extensions, support WeChat and QQ

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

Install

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.

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.