Bonjour à tous,
Je viens de mettre en ligne le projet EdgeAudio (composant VCL) qui permet la capture micro, la lecture audio, un filtre passe‑haut, la VAD et un mode “Talkover”, le tout orchestré via un pont JS bidirectionnel dans TEdgeBrowser.
L’architecture est centrée sur TEdgeAudioControl et TAudioSettings, appliqués en temps réel côté WebAudio, avec une intégration VCL propre (virtual host, événements typés).
Points clés:
- Architecture claire: capture (TEdgeAudioCapture), lecture (TEdgeAudioPlayer + VAD/Talkover), filtrage (THighPassFilter) et bridge WebView2; le composant TEdgeAudioControl expose les réglages et des événements prêts à l’emploi .
- Moteur d’événements extensible: agrégation/routage des événements JSON (audio_play, audio_pause, audio_segment, etc.) via TEventEngineManager et IAudioEventHandler .
- Capacités: VAD réglable (threshold/silenceMs/timeslice), Talkover avec cooldown/ratios anti “ping‑pong”, lecture/streaming (play/pause/seek/stop), setSinkId, boost volume, notifications/animations intégrées, et option d’auto‑blocage de la capture pendant la lecture ainsi que l'hystéresie.
Démarrage rapide
- Installer le package EdgeAudioDesign.dproj pour enregistrer TEdgeAudioControl dans la palette.
- Deux usages:
1) Vous avez déjà un TEdgeBrowser → utilisez l’unité Edge.Audio;
2) Déposez TEdgeAudioControl puis copier les dossiers web & tools dans le projet et placer WebView2Loader.dll (x86/x64) à côté de l’exécutable. Des exemples (AudioEdgeTest1/2.zip) sont fournis;
penser à ajouter “EDGEAUDIO\SOURCE” (et “OPENAI\SOURCE”) aux chemins de recherche .
- Dépendances: Delphi 12+, WebView2 Runtime, et ffmpeg si conversion audio nécessaire (ffmpegPath configurable).
Pour aller plus loin: schémas, flux d’événements et points d’extension sont détaillés dans les notes “Dev note – Architecture & Mechanics” et la section deep‑dive du dépôt.
![]()
Partager