SesliOkuma.Engine
2.0.0
dotnet add package SesliOkuma.Engine --version 2.0.0
NuGet\Install-Package SesliOkuma.Engine -Version 2.0.0
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="SesliOkuma.Engine" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SesliOkuma.Engine" Version="2.0.0" />
<PackageReference Include="SesliOkuma.Engine" />
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 SesliOkuma.Engine --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SesliOkuma.Engine, 2.0.0"
#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 SesliOkuma.Engine@2.0.0
#: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=SesliOkuma.Engine&version=2.0.0
#tool nuget:?package=SesliOkuma.Engine&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SesliOkuma.Engine
The read-aloud engine behind Sesli Okuma, as a plain .NET Framework 4.8 class library with no UI framework dependency. MIT.
What it does
| Type | Role |
|---|---|
TextCapture |
The text the user means in the foreground app: selection via UI Automation, a transparent Ctrl+C that restores the clipboard, the paragraph under the pointer, or the clipboard (Grab, or the steps one by one). |
SpeechText / SpeechMap |
Turns shown text into speech-ready text and keeps an offset map both ways: list bullets become pauses, 25°C / m² / € are read as words, emoji are dropped, ALL-CAPS words are read as words, English words inside Turkish text get a Turkish pronunciation (built-in brand/term dictionary + 108k-word CMUdict-derived respelling + the user's okunus.txt). |
SpeechEngine / VoiceInfo |
SAPI voices (including the neural voices exposed by NaturalVoiceSAPIAdapter): list, best voice per language, speak, pause/resume, word position, WAV export. |
LocalTrVoice / EmaVoiceInstaller |
The offline Turkish neural voice (EMA Lightning by Canberk Aslan, Apache-2.0, on ONNX Runtime): on-demand download of the voice package, streaming playback with word timings. |
Reader |
A reading session over any voice: start at an offset, pause/resume, previous/next sentence, restart on rate change, switch voice mid-read, CharIndex/WordLength for highlighting, remaining-text fraction, completion events. Drive it with Tick() every ~120 ms. |
ScreenOcr |
Reads text off the screen with the OCR built into Windows 10/11 (per-monitor-DPI-correct capture, crop, recognize). |
Translator |
Free MyMemory translation (no account) or DeepL with a key; sync and async forms. |
AudioDuck |
Lowers other applications' audio while reading and restores it, including after a crash. |
Announcer |
Short spoken status cues on a separate channel (used by Sesli Okuma's accessibility mode). |
EngineLog / EnginePaths |
Where the engine logs and where it keeps per-user data. |
Smallest example
using SesliOkuma.Engine;
EngineLog.Sink = Console.Error.WriteLine;
var engine = new SpeechEngine();
engine.RefreshVoices();
string text = TextCapture.Grab(allowPointer: true, allowClipboard: true).Text;
var voice = engine.BestFor(TextLanguage.IsPrimary(text, "tr") ? "tr" : "en");
var reader = new Reader(engine, () => 0); // 0 = normal rate
reader.Position += () => Console.WriteLine(reader.FullText.Substring(reader.CharIndex, reader.WordLength));
reader.Completed += finished => Console.WriteLine("done");
reader.Start(text, voice);
while (reader.Active) { Thread.Sleep(120); reader.Tick(); }
The full sample is in the repository under samples/ReadAloudConsole.
Notes
- Target: .NET Framework 4.8, Windows 10/11, x64 process for the local voice. The library is built with the in-box C# compiler (C# 5 source) so the app needs no SDK; consumers can use any C# version.
SpeechText.Build(text, lang2)applies English respelling only for Turkish voices (lang2 == "tr"); the user'sokunus.txtapplies to every voice.- Screen OCR needs the Windows OCR language pack of the target language (Settings → Language);
ScreenOcr.Recognizereports when it fell back to another language. - Credits for the Turkish voice: EMA Lightning — Canberk Aslan (Apache-2.0), normalizer-tr — Erdem Tuna (Apache-2.0), ONNX Runtime — Microsoft (MIT). English respelling data derives from the CMU Pronouncing Dictionary with Turkish words excluded via the zemberek-nlp lexicon (Apache-2.0).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net48 is compatible. net481 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
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 |
|---|---|---|
| 2.0.0 | 39 | 10/14/2026 |