Tesserae.Lauschwerk 26.10.72899

dotnet add package Tesserae.Lauschwerk --version 26.10.72899
                    
NuGet\Install-Package Tesserae.Lauschwerk -Version 26.10.72899
                    
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="Tesserae.Lauschwerk" Version="26.10.72899" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tesserae.Lauschwerk" Version="26.10.72899" />
                    
Directory.Packages.props
<PackageReference Include="Tesserae.Lauschwerk" />
                    
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 Tesserae.Lauschwerk --version 26.10.72899
                    
#r "nuget: Tesserae.Lauschwerk, 26.10.72899"
                    
#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 Tesserae.Lauschwerk@26.10.72899
                    
#: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=Tesserae.Lauschwerk&version=26.10.72899
                    
Install as a Cake Addin
#tool nuget:?package=Tesserae.Lauschwerk&version=26.10.72899
                    
Install as a Cake Tool

Tesserae.Lauschwerk

On-device voice input for Tesserae applications: keep the user's voice and drop the rest, tell when someone speaks, hear any typed wake word, recognize a voice. Typed C# (Transpose) over the Lauschwerk web SDK - a Rust engine compiled to WebAssembly, which the package carries - plus ready-made Tesserae components. Everything runs in the browser - no server, no key, no telemetry.

Preview (0.x). Apache-2.0, code and weights. Where it comes from: the repository's README.

Install

<PackageReference Include="Tesserae.Lauschwerk" Version="..." />

The build copies the SDK into your site at assets/js/lauschwerk/ (about 620 KB, the engine included). Nothing is fetched until something needs it.

The models ship in the package (7.5 MB for all five, sha256-checked at build) and the build copies them to assets/js/lauschwerk/models/, where the SDK loads them from by default: nothing is downloaded from a third party, and no user sends anyone their IP. To serve them from somewhere else (a CDN):

LauschwerkJs.ModelBaseUrl = "https://models.example.com/lauschwerk";   // once, before the first input

A call (WebRTC)

using Tesserae.Lauschwerk;

var input = await LauschwerkJs.CreateCallInputAsync(new CallInputSettings { Learn = true, FarEnd = remoteTrack });
pc.addTrack(input.Track);             // only the user's voice goes out
input.Bind(pc.getSenders()[0]);
input.VoiceprintLearned += print => localStorage.setItem("print", print.ToJson());

A voice agent

var input = await LauschwerkJs.CreateAgentInputAsync(new AgentInputSettings { FarEndManual = true, Format = PcmFormat.Int16, SampleRate = 24000 });
input.Audio += pcm => socket.send(pcm);           // continuous 32 ms packets
input.Utterance += u => Transcribe(u.Pcm);        // one per sentence, 300 ms pre-roll
input.FarEndActive(true);                         // the agent starts speaking

A wake word

var word = await LauschwerkJs.CompileWordAsync("Hey Nova", SpeechLanguage.English);   // any word, 7 languages
var wake = await LauschwerkJs.CreateWakeListenerAsync(new WakeListenerSettings(word));
wake.Wake += e => StartListening(e.Audio);

Files

var r = await LauschwerkJs.ProcessAsync(file, new ProcessSettings { Focus = true, Cue = true });
r.Audio;   // AudioClip, 16 kHz, processed
r.Speech;  // where speech is
r.ToWav(); // Blob

Components

using static Tesserae.Lauschwerk.LauschwerkUI;

Factory What it is
CallInputPanel() / AgentInputPanel() start/stop, mode, speaking, latency, microphone and output meters, learn progress
WakeWordPanel("Hey Nova") type a word, pick a language, listen; live closeness and a list of wakes
WordEnrollmentPanel("Hey Nova") the user says the word three times: a calibrated word and a voiceprint
VoiceprintEnrollment() read a text aloud, get a voiceprint; .RememberIn(key) keeps it
AudioFileProcessor() pick or drop a recording: before/after waveforms with speech and wakes, playable, downloadable
ModelPreloader(LauschwerkUsage.Call) a settings row that downloads a usage's models ahead of time
LevelMeter(), Waveform(clip), LiveWaveform(), ListeningOverlay(), SpeechIndicator(), ModeBadge() the pieces the panels are made of; LiveWaveform scrolls live audio (Bind(agentInput), Track(track), Feed(samples)) and highlights a stretch of it (Mark(secondsAgoStart, secondsAgoEnd), MarkWake(wakeEvent) for where a wake word was heard); ListeningOverlay opens a panel over the page with the sound as bars (the Listening Studies "Bars") and, with ShowTranscript(), the words as they are heard (SetTranscript)

They draw with Tesserae's --tss-* tokens, so they follow light and dark mode and the custom themes.

Good to know

  • A near microphone, one person. lauschwerk keeps the closest voice (or the voice of a print). 16 kHz voice: the output carries speech up to 8 kHz.
  • Only a missing microphone fails an input (LauschwerkException.Code: mic.denied, mic.not-found, mic.busy, page.insecure, browser.unsupported). Models still loading, a failed download, a slow device: the input runs VoiceMode.Raw with a RawReason, and the SDK retries.
  • Content Security Policy: script-src 'self' 'wasm-unsafe-eval'; worker-src 'self' - the worker and worklet are same-origin files, no blob: needed. Add the models' origin to connect-src if they are not on yours.
  • Privacy: no network call besides the models. A voiceprint your app stores is biometric data (GDPR art. 9).

A sample gallery with a page per feature lives in the repository.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  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 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  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 (1)

Showing the top 1 NuGet packages that depend on Tesserae.Lauschwerk:

Package Downloads
Curiosity.FrontEnd

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
26.10.72899 2,377 10/26/2026
26.10.72885 100 10/26/2026
26.10.72876 145 10/26/2026
26.10.72872 99 10/26/2026
26.10.72871 95 10/26/2026
26.10.72870 90 10/26/2026