diff --git a/main.js b/main.js index c90c5f3..3d3148c 100644 --- a/main.js +++ b/main.js @@ -267,6 +267,14 @@ app.whenReady().then(() => { } ); + // Autoriser l'accès aux périphériques de capture (microphone) sous Electron + session.defaultSession.setPermissionRequestHandler((webContents, permission, callback) => { + if (permission === 'media') { + return callback(true); + } + callback(false); + }); + startWebhookServer(); createWindow(); diff --git a/src/App.tsx b/src/App.tsx index 960a6c8..069b677 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1606,12 +1606,18 @@ export const App: React.FC = () => { const handleStartVocalRecord = () => { if (!audioServiceRef.current) return; + setErrorMessage(null); audioServiceRef.current.stopSpeaking(); setIsSpeaking(false); audioServiceRef.current.startListening( (text) => { - handleSendMessage(text); + if (text.trim()) { + handleSendMessage(text); + } else { + setErrorMessage("Aucune parole n'a été détectée. Veuillez parler distinctement près du micro."); + setCurrentEmotion('sad'); + } }, () => { setIsListening(true); @@ -1622,6 +1628,8 @@ export const App: React.FC = () => { }, (err) => { setIsListening(false); + setErrorMessage(`Erreur de reconnaissance vocale : ${err}`); + setCurrentEmotion('sad'); console.error(err); }, sttLang