mirror of
https://github.com/R0m1k3/EveFlow.git
synced 2026-10-11 17:29:03 +02:00
- electron/voice: model catalog (Whisper base/small/turbo, SenseVoice, Kokoro v1.0, Piper fr), streaming tar.bz2 downloader with progress, sherpa-onnx worker running in an Electron utilityProcess (transcribe / synthesize / status / unload), IPC + bridge. - Renderer: 'local' providers for STT and TTS, Settings → Modèles locaux (download, progress, delete, activate), speaker selection, hands-free wake word with a tolerant matcher (accents, punctuation, edit distance) and attention window after a bare wake word. - Packaging: native addon and worker unpacked from the asar; release 2.1.0. Validated on Linux: Kokoro (fr) → Whisper base round trip, Piper (fr) → Whisper round trip. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Wn5VX9HNbJ7N54hR24u9Y
17 lines
954 B
TypeScript
17 lines
954 B
TypeScript
import { describe, expect, it } from 'vitest';
|
||
import { matchWakeWord } from '../src/services/voice/voiceController';
|
||
|
||
describe('matchWakeWord', () => {
|
||
it('accepts the wake word with punctuation, accents and small slips', () => {
|
||
expect(matchWakeWord('Jarvis, quelle heure est-il ?', 'jarvis')).toEqual({ matched: true, rest: 'quelle heure est-il ?' });
|
||
expect(matchWakeWord('Javis allume la lumière', 'jarvis')).toEqual({ matched: true, rest: 'allume la lumière' });
|
||
expect(matchWakeWord('JARVIS.', 'jarvis')).toEqual({ matched: true, rest: '' });
|
||
expect(matchWakeWord('Hé Jarvis, bonjour', 'hé jarvis')).toEqual({ matched: true, rest: 'bonjour' });
|
||
});
|
||
it('rejects unrelated speech', () => {
|
||
expect(matchWakeWord('Il fait beau aujourd’hui', 'jarvis').matched).toBe(false);
|
||
expect(matchWakeWord('Service client', 'jarvis').matched).toBe(false);
|
||
expect(matchWakeWord('', 'jarvis').matched).toBe(false);
|
||
});
|
||
});
|