Derniers tips / Mémos
Modélise nativement « exactement l'un de ces types », avec un switch exhaustif vérifié par le compilateur.
Fin des state machines générées par le compilateur : moins d'allocations et des stack traces enfin lisibles.
Recherche sémantique directement dans SQL Server 2025, sans base vectorielle séparée, en LINQ typé.
Framework UI cross-platform pour .NET : Windows, macOS, Linux, iOS, Android et WebAssembly.
Découvrez les nouvelles APIs asynchrones pour la compression ZIP et les améliorations de performance dans .NET 10
KokoroSharp : TTS local, rapide et multi‑plateforme
KokoroSharp est un moteur d'inférence pour Kokoro TTS, écrit en C# et propulsé par ONNX Runtime. Il permet de synthétiser de la voix localement, hors ligne, avec prise en charge de multiples voix et langues.
Installation
# .NET CLI
dotnet add package KokoroSharp.CPUPour l'accélération GPU, consultez RUNNING_ON_GPU.md sur le dépôt GitHub. Les voix officielles (Hexgrad Kokoro 82M v1.0) sont incluses dans le package NuGet.
Démarrage rapide
using KokoroSharp;
// Charger ou télécharger le modèle (~320 Mo en précision complète)
KokoroTTS tts = KokoroTTS.LoadModel();
// Choisir une voix (incluse dans le package NuGet)
KokoroVoice heart = KokoroVoiceManager.GetVoice("af_heart");
// Parler une phrase (détection de langue automatique selon la voix)
tts.SpeakFast("Bonjour le monde", heart);
Streaming par segments
using KokoroSharp;
using System.Threading.Channels;
var tts = KokoroTTS.LoadModel();
var voice = KokoroVoiceManager.GetVoice("af_alloy");
// Diffuser les segments au fil de la synthèse
await foreach (var segment in tts.StreamSegmentsAsync("Texte long à lire", voice))
{
// segment.Audio contient des octets PCM que vous pouvez mettre en file d'attente dans un lecteur
Console.WriteLine($"Segment reçu: {segment.Index}, {segment.DurationMs}ms");
}Mixage de voix
using KokoroSharp;
var tts = KokoroTTS.LoadModel();
var mix = new KokoroVoiceMix()
.Add(KokoroVoiceManager.GetVoice("af_heart"), weight: 0.6f)
.Add(KokoroVoiceManager.GetVoice("af_alloy"), weight: 0.4f);
tts.SpeakFast("Mixage de voix en temps réel", mix);
Fonctionnalités clés
| Fonctionnalité | Description |
|---|---|
| Plug & Play (NuGet) | Dépendances gérées automatiquement |
| Voix incluses | Voix officielles Hexgrad Kokoro 82M v1.0 |
| Interface haut-niveau | API simple pour tous les profils |
| Streaming de segments | Synthèse progressive pour une latence perçue faible |
| Mixage de voix | Combiner plusieurs voix avec des poids libres |
| Programmation linéaire | Planification des jobs et file d'attente audio |
| Lecture multi‑plateforme | Prise en charge optionnelle des sorties audio |
Notes et bonnes pratiques
- La détection de langue est automatique selon la voix chargée.
- Le répertoire 'voices' est copié automatiquement dans le dossier de build.
- La phonémisation intégrée repose sur eSpeak NG selon la plateforme.
- Vous pouvez charger un modèle spécifique avec KokoroTTS.LoadModel(path).
- Le tokeniseur intégré peut être contourné si vous fournissez des phonèmes.