Install
| Product | Versions |
|---|---|
| .NET |
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.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.