diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx
index 5499c0a1aac9018e60cf27b012b2392cd39213e9..3eaa5ac79d9b930ad8d5fdd1b2aaf5ea5df74c6a 100755
--- a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx
@@ -22,6 +22,7 @@ const TRANSLATION_SETTINGS = Meteor.settings.public.media.translation;
 const ORIGIN_TRANSLATION_VOLUME = TRANSLATION_SETTINGS.origineVolume;
 const TRANSLATOR_SPEAKING_DELAY = TRANSLATION_SETTINGS.translator.speakDetection.delay;
 const TRANSLATOR_SPEAKING_TIMEOUT = TRANSLATION_SETTINGS.translator.speakDetection.timeout;
+const TRANSLATOR_SPEAKING_ENABLED = TRANSLATION_SETTINGS.translator.speakDetection.enabled;
 
 const intlMessages = defineMessages({
   translatorMicrophoneLabel: {
@@ -59,41 +60,43 @@ class ActionsBar extends PureComponent {
 
 
   componentDidMount() {
-    setInterval(() => {
-      const meeting = Meetings.findOne(
-        { meetingId: Auth.meetingID },
-        { fields: { 'languages': 1 } });
+    if (TRANSLATOR_SPEAKING_ENABLED) {
+      setInterval(() => {
+        const meeting = Meetings.findOne(
+          { meetingId: Auth.meetingID },
+          { fields: { 'languages': 1 } });
 
-      if (meeting.languages) {
+        if (meeting.languages) {
 
-        let mainaudio = document.getElementById("remote-media")
-        let transaudio = document.getElementById("translation-media")
+          let mainaudio = document.getElementById("remote-media")
+          let transaudio = document.getElementById("translation-media")
 
-        let result = false;
-        const languageExtension = AudioManager.translationLanguageExtension;
-        let meeting1 = meeting.languages.find(language => language.extension === languageExtension);
-        if (meeting1 !== undefined) {
-          if (meeting1.hasOwnProperty("translatorIsSpeaking")) {
-            result = meeting1.translatorIsSpeaking;
-            if (meeting1.hasOwnProperty("translatorSpeakingUtcTimestamp")) {
-              if (meeting1.translatorSpeakingUtcTimestamp + TRANSLATOR_SPEAKING_DELAY > Date.now() && !result) {
-                result = true;
-              }
-              if (meeting1.translatorSpeakingUtcTimestamp + TRANSLATOR_SPEAKING_TIMEOUT < Date.now()) {
-                result = false;
+          let result = false;
+          const languageExtension = AudioManager.translationLanguageExtension;
+          let meeting1 = meeting.languages.find(language => language.extension === languageExtension);
+          if (meeting1 !== undefined) {
+            if (meeting1.hasOwnProperty("translatorIsSpeaking")) {
+              result = meeting1.translatorIsSpeaking;
+              if (meeting1.hasOwnProperty("translatorSpeakingUtcTimestamp")) {
+                if (meeting1.translatorSpeakingUtcTimestamp + TRANSLATOR_SPEAKING_DELAY > Date.now() && !result) {
+                  result = true;
+                }
+                if (meeting1.translatorSpeakingUtcTimestamp + TRANSLATOR_SPEAKING_TIMEOUT < Date.now()) {
+                  result = false;
+                }
               }
             }
           }
+          if (result) {
+            mainaudio.volume = ORIGIN_TRANSLATION_VOLUME;
+            transaudio.volume = 1
+          } else {
+            mainaudio.volume = 0.8
+          }
         }
-        if (result) {
-          mainaudio.volume = ORIGIN_TRANSLATION_VOLUME;
-          transaudio.volume = 1
-        } else {
-          mainaudio.volume = 0.8
-        }
-      }
-    }, 500);
-    console.log("easy to find")
+      }, 500);
+      console.log("easy to find")
+    }
   }
 
   autoArrangeToggle() {
@@ -150,6 +153,15 @@ class ActionsBar extends PureComponent {
   handleLanguageSelection(language){
     this.state.translationLanguage = language
     AudioManager.openTranslationChannel(language.extension)
+      .then((languageExtension) => {
+        if (!TRANSLATOR_SPEAKING_ENABLED) {
+          if (languageExtension === -1) {
+            AudioManager.setOrigineOutputVolume(1.0);
+          } else {
+            AudioManager.setOrigineOutputVolume(ORIGIN_TRANSLATION_VOLUME);
+          }
+        }
+      });
     this.setState(this.state)
     this.forceUpdate()
   }
diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
index 3140bd2227773587ee81b1f245d3cefcfcb3f579..b4ce2fb9569507e755be31075b2c1edcd6bce60e 100755
--- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
+++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js
@@ -672,7 +672,7 @@ class AudioManager {
     return audioAlert.play();
   }
 
-  openTranslationChannel(languageExtension) {
+  async openTranslationChannel(languageExtension) {
     if(this.translationBridge.activeSession) {
       this.translationBridge.exitAudio()
       this.translationBridge.userData.languageExtension = -1;
@@ -692,6 +692,9 @@ class AudioManager {
         });
       });
       this.translationBridge.userData.languageExtension = languageExtension;
+      return languageExtension;
+    } else {
+      return -1
     }
   }
 
diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml
index a5c2c64bc1102eb4fadfd6d84178eb44efc766ff..2e31f9ca4739b8fc591ef6f3f0c943c5e1eb4137 100755
--- a/bigbluebutton-html5/private/config/settings.yml
+++ b/bigbluebutton-html5/private/config/settings.yml
@@ -308,6 +308,7 @@ public:
       origineVolume: 0.8
       translator:
         speakDetection:
+          enabled: true
           timeout: 60000
           delay: 5000
           threshold: -70