mirror of
https://github.com/R0m1k3/EveFlow.git
synced 2026-10-21 14:18:13 +02:00
feat: voix Edge neuronales, Supertonic 3 en local et genre respecté par tous les moteurs (v2.5.0)
- Nouveau moteur « Microsoft Edge » (voix neuronales gratuites, sans clé) : Henri / Denise par défaut selon le genre, liste des voix fr-FR / fr-CA / fr-CH / fr-BE, WebSocket signé (Sec-MS-GEC) dans le processus principal, MP3 24 kHz. Moteur par défaut des nouvelles installations. - Supertonic 3 ajouté au catalogue local (31 langues, 5 voix masculines + 5 féminines, 44 kHz, 129 Mo) : langue transmise au worker, genres des voix vérifiés par mesure de F0. - Kokoro déclassé pour le français (une seule voix féminine, accent) ; le choix masculin/féminin bascule sur le meilleur modèle installé et conserve le genre quand on change de modèle ; Google Translate signalé comme voix féminine uniquement. - Deux préréglages JARVIS : en ligne (Edge Henri) et hors ligne (Supertonic 3). - Traitement du micro par Chromium (écho, bruit, gain) débrayable pour de meilleures transcriptions au casque. - Tests : protocole Edge (jeton, SSML, trames), sélection de voix ; README et feuille de route (mesures Supertonic, Parakeet vs Qwen3-ASR). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMpgFriwxiBgurUVb21oCE
This commit is contained in:
23 files changed
+735
-81
No files matched your search
+28
-1
@@ -1,7 +1,7 @@
|
||||
/** Local voice engine contract (sherpa-onnx in a utility process). Shared by main and renderer. */
|
||||
|
||||
export type VoiceModelKind = 'stt' | 'tts' | 'kws' | 'vad';
|
||||
export type VoiceEngineKind = 'whisper' | 'sense-voice' | 'nemo-transducer' | 'kokoro' | 'piper' | 'kws-transducer' | 'silero';
|
||||
export type VoiceEngineKind = 'whisper' | 'sense-voice' | 'nemo-transducer' | 'kokoro' | 'piper' | 'supertonic' | 'kws-transducer' | 'silero';
|
||||
|
||||
export interface VoiceSpeaker {
|
||||
id: number;
|
||||
@@ -62,6 +62,31 @@ export interface SynthesizeRequest {
|
||||
text: string;
|
||||
speaker: number;
|
||||
speed: number;
|
||||
/** BCP-47 tag or 2-letter code of the text (multilingual engines such as Supertonic need it). */
|
||||
language?: string;
|
||||
}
|
||||
|
||||
/** Microsoft Edge "Read aloud" neural voices (online, no key). */
|
||||
export interface EdgeVoice {
|
||||
/** e.g. fr-FR-HenriNeural */
|
||||
shortName: string;
|
||||
/** Display name, e.g. Henri */
|
||||
name: string;
|
||||
locale: string;
|
||||
gender: 'm' | 'f';
|
||||
}
|
||||
|
||||
export interface EdgeSynthesizeRequest {
|
||||
text: string;
|
||||
voice: string;
|
||||
/** Playback speed multiplier (0.5 .. 2). */
|
||||
speed: number;
|
||||
}
|
||||
|
||||
export interface EdgeSynthesizeResult {
|
||||
/** MP3, 24 kHz mono 48 kbit/s. */
|
||||
mp3: Uint8Array;
|
||||
durationMs: number;
|
||||
}
|
||||
|
||||
export interface SynthesizeResult {
|
||||
@@ -115,6 +140,8 @@ export const VOICE_IPC = {
|
||||
modelsProgress: 'voice:models:progress',
|
||||
transcribe: 'voice:transcribe',
|
||||
synthesize: 'voice:synthesize',
|
||||
edgeSynthesize: 'voice:edge:synthesize',
|
||||
edgeVoices: 'voice:edge:voices',
|
||||
unload: 'voice:unload',
|
||||
kwsStart: 'voice:kws:start',
|
||||
kwsStop: 'voice:kws:stop',
|
||||
|
||||
Reference in new issue
Block a user