From 817b08807a67be195a5e69fc620590ee15a0e0ee Mon Sep 17 00:00:00 2001
From: jahugg <jan@huggenberg.ch>
Date: Wed, 22 Mar 2023 11:01:58 +0100
Subject: [PATCH] improved voice recognition

---
 src/main.js | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/main.js b/src/main.js
index 85d6f1f..e93a03c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -555,13 +555,18 @@ function addVoiceControls() {
   recognition.start();
   console.log("Voice > listening");
 
+  // restart recognition after ended automatically
+  recognition.addEventListener("end", () => {
+    recognition.start();
+  });
+
   recognition.onresult = function (event) {
     let command = event.results[0][0].transcript.toLowerCase();
     let confidence = event.results[0][0].confidence;
 
     console.log(`Voice > Received "${command}" (${confidence.toFixed(2)})`);
 
-    const matchingItem = commands.find(item => command.includes(item));
+    const matchingItem = commands.find((item) => command.includes(item));
     if (matchingItem) {
       let index = commands.indexOf(matchingItem); // get index of command in array
       let path = availableCommands[index].path; // get corresponding path in availableCommands array
@@ -574,18 +579,8 @@ function addVoiceControls() {
     else if (command.includes("exit") || command.includes("home"))
       navigateToPath("/");
     else if (command.includes("back")) moveUpNavigationLevel();
-  };
-
-  recognition.onspeechend = function () {
-    recognition.stop();
-
-    setTimeout(() => {
-      recognition.start();
-    }, "1000");
-  };
-
-  recognition.onnomatch = function (event) {
-    printLogMsg("I didn't recognise that command.");
+    else if (command.includes("next") || command.includes("down")) focusNextNavigationItem();
+    else if (command.includes("previous") || command.includes("up")) focusPreviousNavigationItem();
   };
 
   // updating voice command list
-- 
GitLab