From 0767de74ebf5e283088e5e516050e91d3ad9d28b Mon Sep 17 00:00:00 2001 From: Kris Gesling Date: Mon, 17 May 2021 10:13:41 +0930 Subject: [PATCH 1/3] autopep8 --- __init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/__init__.py b/__init__.py index 10407df..847ed63 100644 --- a/__init__.py +++ b/__init__.py @@ -135,7 +135,7 @@ def _setvolume(self, vol, emit=True): if emit: # Notify non-ALSA systems of volume change self.bus.emit(Message('mycroft.volume.set', - data={"percent": vol/100.0})) + data={"percent": vol / 100.0})) # Change Volume to X (Number 0 to) Intent Handlers @intent_handler(IntentBuilder("SetVolume").require("Volume") @@ -361,7 +361,7 @@ def __get_system_volume(self, default=50, show=False): self.log.debug('Volume before mute: {}'.format(vol)) else: vol_msg = self.bus.wait_for_response( - Message("mycroft.volume.get", {'show': show})) + Message("mycroft.volume.get", {'show': show})) if vol_msg: vol = int(vol_msg.data["percent"] * 100) @@ -383,7 +383,7 @@ def __get_volume_level(self, message, default=None): elif (level > self.MAX_LEVEL): # Guess that the user said something like 100 percent # so convert that into a level value - level = self.MAX_LEVEL * level/100 + level = self.MAX_LEVEL * level / 100 except ValueError: pass From e8b201abecba3dcde03944fb598f233ef52c08ba Mon Sep 17 00:00:00 2001 From: Kris Gesling Date: Mon, 17 May 2021 10:19:50 +0930 Subject: [PATCH 2/3] Add string percent as Adapt entity Different STT engines will return text in different formats. This ensures text returned in the long form "50 percent" is still captured as an Adapt entity. --- __init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/__init__.py b/__init__.py index 847ed63..64acffb 100644 --- a/__init__.py +++ b/__init__.py @@ -97,8 +97,11 @@ def _get_mixer(self): def initialize(self): # Register handlers to detect percentages as reported by STT + # Different STT engines might return "50%" or "50 percent" for i in range(101): # numbers 0 to 100 self.register_vocabulary(str(i) + '%', 'Percent') + percent_string = ' '.join([str(i), self.translate('percent')]) + self.register_vocabulary(percent_string, 'Percent') # Register handlers for messagebus events self.add_event('mycroft.volume.increase', From 7fab68a72437237af2edc045e2e94bef50354fcc Mon Sep 17 00:00:00 2001 From: Kris Gesling Date: Mon, 17 May 2021 10:24:22 +0930 Subject: [PATCH 3/3] Extend tests for percentage based utterances --- test/behave/volume.feature | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/behave/volume.feature b/test/behave/volume.feature index fd1b283..fcf2814 100644 --- a/test/behave/volume.feature +++ b/test/behave/volume.feature @@ -72,6 +72,8 @@ Feature: volume control Examples: change volume to a percent | change volume to a percent | | volume 80 percent | + | set volume to 70 percent | + | set volume to 87% | Scenario Outline: max volume Given an english speaking user