diff --git a/config/keyboard/desktop.conf b/config/keyboard/desktop.conf index 0954189c..a53479f4 100644 --- a/config/keyboard/desktop.conf +++ b/config/keyboard/desktop.conf @@ -19,3 +19,11 @@ #=toggle_autoRead #=quit_fenrir #=foreward_keypress +#=inc_speech_volume +#=dec_speech_volume +#=inc_speech_rate +#=dec_speech_rate +#=inc_speech_pitch +#=dec_speech_pitch +#=inc_sound_volume +#=dec_sound_volume diff --git a/config/keyboard/laptop.conf b/config/keyboard/laptop.conf index fb1612f5..5a043d41 100644 --- a/config/keyboard/laptop.conf +++ b/config/keyboard/laptop.conf @@ -19,3 +19,11 @@ #=toggle_autoRead #=quit_fenrir #=foreward_keypress +#=inc_speech_volume +#=dec_speech_volume +#=inc_speech_rate +#=dec_speech_rate +#=inc_speech_pitch +#=dec_speech_pitch +#=inc_sound_volume +#=dec_sound_volume diff --git a/config/keyboard/test.conf b/config/keyboard/test.conf index 491e2506..e15d99b7 100644 --- a/config/keyboard/test.conf +++ b/config/keyboard/test.conf @@ -12,10 +12,18 @@ 1-FENRIR,1-KEY_KPDOT=exit_review #=curr_screen #=last_incomming -1-FENRIR,1-KEY_F2=toggle_braille -1-FENRIR,1-KEY_F3=toggle_sound +#1-FENRIR,1-KEY_F2=toggle_braille +#1-FENRIR,1-KEY_F3=toggle_sound 1-FENRIR,1-KEY_F4=toggle_speech #=toggle_output #=toggle_autoRead #=quit_fenrir 1-FENRIR,1-KEY_A=foreward_keypress +1-FENRIR,1-KEY_F2=inc_speech_volume +1-FENRIR,1-KEY_F3=dec_speech_volume +#=inc_speech_rate +#=dec_speech_rate +#=inc_speech_pitch +#=dec_speech_pitch +#=inc_sound_volume +#=dec_sound_volume diff --git a/config/settings/settings.conf.chrys b/config/settings/settings.conf.chrys index 6809ec00..48c147f0 100644 --- a/config/settings/settings.conf.chrys +++ b/config/settings/settings.conf.chrys @@ -12,7 +12,7 @@ pitch=0.5 module=espeak voice=de language=de -volume=1.0 +volume=0.8 autoReadIncomming=True [braille] diff --git a/src/fenrir-package/commands/commands/dec_sound_volume.py b/src/fenrir-package/commands/commands/dec_sound_volume.py new file mode 100644 index 00000000..8fdd3ccd --- /dev/null +++ b/src/fenrir-package/commands/commands/dec_sound_volume.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'sound', 'volume') + + value = round((math.ceil(20 * value) / 20) - 0.1, 2) + if value < 0.1: + value = 0.1 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'sound', 'volume', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent sound volume", soundIcon='SoundOff', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/dec_speech_pitch.py b/src/fenrir-package/commands/commands/dec_speech_pitch.py new file mode 100644 index 00000000..4f94a559 --- /dev/null +++ b/src/fenrir-package/commands/commands/dec_speech_pitch.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'pitch') + + value = round((math.ceil(20 * value) / 20) - 0.1, 2) + if value < 0.0: + value = 0.0 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'speech', 'pitch', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent speech pitch", soundIcon='SpeechOff', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/dec_speech_rate.py b/src/fenrir-package/commands/commands/dec_speech_rate.py new file mode 100644 index 00000000..13e8209d --- /dev/null +++ b/src/fenrir-package/commands/commands/dec_speech_rate.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'rate') + + value = round((math.ceil(20 * value) / 20) - 0.1, 2) + if value < 0.0: + value = 0.0 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'speech', 'rate', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent speech rate", soundIcon='SpeechOff', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/dec_speech_volume.py b/src/fenrir-package/commands/commands/dec_speech_volume.py new file mode 100644 index 00000000..9a821429 --- /dev/null +++ b/src/fenrir-package/commands/commands/dec_speech_volume.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'volume') + + value = round((math.ceil(20 * value) / 20) - 0.1, 2) + if value < 0.1: + value = 0.1 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'speech', 'volume', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent speech volume", soundIcon='SpeechOff', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/inc_sound_volume.py b/src/fenrir-package/commands/commands/inc_sound_volume.py new file mode 100644 index 00000000..fde72449 --- /dev/null +++ b/src/fenrir-package/commands/commands/inc_sound_volume.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'sound', 'volume') + + value = round((math.ceil(20 * value) / 20) + 0.1, 2) + if value > 1.0: + value = 1.0 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'sound', 'volume', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent sound volume", soundIcon='SoundOn', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/inc_speech_pitch.py b/src/fenrir-package/commands/commands/inc_speech_pitch.py new file mode 100644 index 00000000..786ca551 --- /dev/null +++ b/src/fenrir-package/commands/commands/inc_speech_pitch.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'pitch') + + value = round((math.ceil(20 * value) / 20) + 0.1, 2) + if value > 1.0: + value = 1.0 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'speech', 'pitch', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent speech pitch", soundIcon='SpeechOn', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/inc_speech_rate.py b/src/fenrir-package/commands/commands/inc_speech_rate.py new file mode 100644 index 00000000..939b352c --- /dev/null +++ b/src/fenrir-package/commands/commands/inc_speech_rate.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'rate') + + value = round((math.ceil(20 * value) / 20) + 0.1, 2) + if value > 1.0: + value = 1.0 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'speech', 'rate', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent speech rate", soundIcon='SpeechOn', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/commands/inc_speech_volume.py b/src/fenrir-package/commands/commands/inc_speech_volume.py new file mode 100644 index 00000000..b68cf2e0 --- /dev/null +++ b/src/fenrir-package/commands/commands/inc_speech_volume.py @@ -0,0 +1,22 @@ +#!/bin/python +import math + +class command(): + def __init__(self): + pass + def run(self, environment): + + value = environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'volume') + + value = round((math.ceil(20 * value) / 20) + 0.1, 2) + if value > 1.0: + value = 1.0 + environment = environment['runtime']['settingsManager'].setSetting(environment, 'speech', 'volume', str(value)) + + environment['runtime']['outputManager'].presentText(environment, str(int(value * 100)) + " percent speech volume", soundIcon='SpeechOn', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/core/outputManager.py b/src/fenrir-package/core/outputManager.py index b5822b3f..b2d342d5 100644 --- a/src/fenrir-package/core/outputManager.py +++ b/src/fenrir-package/core/outputManager.py @@ -19,7 +19,7 @@ class outputManager(): environment['runtime']['speechDriver'].setLanguage(environment['runtime']['settingsManager'].getSetting(environment, 'speech', 'language')) environment['runtime']['speechDriver'].setVoice(environment['runtime']['settingsManager'].getSetting(environment, 'speech', 'voice')) environment['runtime']['speechDriver'].setPitch(environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'pitch')) - environment['runtime']['speechDriver'].setSpeed(environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'rate')) + environment['runtime']['speechDriver'].setRate(environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'rate')) environment['runtime']['speechDriver'].setModule(environment['runtime']['settingsManager'].getSetting(environment, 'speech', 'module')) environment['runtime']['speechDriver'].setVolume(environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'speech', 'volume')) environment['runtime']['speechDriver'].speak(text) diff --git a/src/fenrir-package/speech/espeak.py b/src/fenrir-package/speech/espeak.py index 37a82ee1..e71405bb 100644 --- a/src/fenrir-package/speech/espeak.py +++ b/src/fenrir-package/speech/espeak.py @@ -45,10 +45,10 @@ class speech(): return False return self._es.set_parameter(self._es.Parameter().Pitch, int(pitch * 99)) - def setSpeed(self, speed): + def setRate(self, rate): if not self._isInitialized: return False - return self._es.set_parameter(self._es.Parameter().Rate, int(speed*450 + 80)) + return self._es.set_parameter(self._es.Parameter().Rate, int(rate*450 + 80)) def setModule(self, module): if not self._isInitialized: diff --git a/src/fenrir-package/speech/speechd.py b/src/fenrir-package/speech/speechd.py index 6fe56c7b..c001b819 100644 --- a/src/fenrir-package/speech/speechd.py +++ b/src/fenrir-package/speech/speechd.py @@ -59,11 +59,11 @@ class speech(): except: return False - def setSpeed(self, speed): + def setRate(self, rate): if not self._isInitialized: return False try: - self._sd.set_rate(int(-100 + speed * 200)) + self._sd.set_rate(int(-100 + rate * 200)) return True except: return False