def config(self, name, message): from mycroft.configuration.config import ( LocalConf, USER_CONFIG, Configuration ) module = "precise".replace(' ', '') module = module.replace('default', 'pocketsphinx') precise_file = self.select_precise_file(name, message) if precise_file == None: self.log.info("precise file "+name+" not found") return else: self.log.info("set precise file: "+precise_file) wake_word = name self.log.info("set precise WakeWord:"+name) new_config = {"listener": {"wake_word": name, "record_wake_words": "true"}, "hotwords": {wake_word: {"module": module, "threshold": "1e-90", "lang": self.lang,"local_model_file": precise_file}} } user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.bus.emit(Message('configuration.updated')) if module == 'precise': engine_folder = expanduser('~/.mycroft/precise/precise-engine') if not os.path.isdir(engine_folder): self.speak_dialog('download.started') return self.speak_dialog('end.calculating', data={'name': name})
def handle_set_listener(self, message): from mycroft.configuration.config import (LocalConf, USER_CONFIG, Configuration) module = message.data['ListenerType'].replace(' ', '') module = module.replace('default', 'pocketsphinx') name = module.replace('pocketsphinx', 'pocket sphinx') if self.get_listener() == module: self.speak_dialog('listener.same', data={'listener': name}) return wake_word = Configuration.get()['listener']['wake_word'] new_config = {'hotwords': {wake_word: {'module': module}}} user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.bus.emit(Message('configuration.updated')) if module == 'precise': engine_folder = expanduser('~/.mycroft/precise/precise-engine') if not isdir(engine_folder): self.speak_dialog('download.started') return self.speak_dialog('set.listener', data={'listener': name})
def set_single_thread(self, update): new_config = {'padatious': {'single_thread': update}} user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.log.info('Setting padatious single_thread = ' + str(update)) self.bus.emit(Message('configuration.updated'))
def handle_rate_speech(self, message): from mycroft.configuration.config import (LocalConf, Configuration, USER_CONFIG) user_config = LocalConf(USER_CONFIG) LOG.info(str(user_config)) user_level = message.data.get('ratelevel') LOG.info(user_level) rate_var = self.get_rate_var(user_level) if (rate_var == "error"): self.speak_dialog("invalidInput", {'userLevel': user_level}) else: new_config = { "tts": { "mimic": { "duration_stretch": str(rate_var) } } } user_config.merge(new_config) user_config.store() LOG.info(str(LocalConf(USER_CONFIG))) self.bus.emit(Message('configuration.updated')) self.speak_dialog("rate.speech", {'rateLevel': user_level})
def _sync_wake_beep_setting(self): """ Update "use beep" global config from skill settings. """ config = Configuration.get() use_beep = self.settings.get("use_listening_beep", False) if not config["confirm_listening"] == use_beep: # Update local (user) configuration setting new_config = {"confirm_listening": use_beep} user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.bus.emit(Message("configuration.updated"))
def _sync_wake_beep_setting(self): from mycroft.configuration.config import (LocalConf, USER_CONFIG, Configuration) config = Configuration.get() use_beep = self.settings.get("use_listening_beep") == "true" if not config['confirm_listening'] == use_beep: # Update local (user) configuration setting new_config = {'confirm_listening': use_beep} user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.emitter.emit(Message('configuration.updated'))
def save_upgrade_permission(self, ver): # Build version as float, e.g. [18,8,999] as 18.8 float_ver = ver[0] + ver[1] / 10 # assumes minor is <= 9 new_conf_values = {"max_allowed_core_version": float_ver} # Save under the user (e.g. ~/.mycroft/mycroft.conf) user_config = LocalConf(USER_CONFIG) user_config.merge(new_conf_values) user_config.store() # Notify all processes to update their loaded configs self.bus.emit(Message('configuration.updated'))
def _sync_wake_beep_setting(self): """ Update "use beep" global config from skill settings. """ from mycroft.configuration.config import (LocalConf, USER_CONFIG, Configuration) config = Configuration.get() use_beep = self.settings.get('use_listening_beep') is True if not config['confirm_listening'] == use_beep: # Update local (user) configuration setting new_config = {'confirm_listening': use_beep} user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.bus.emit(Message('configuration.updated'))
def _disable_listen_beep(self): user_config = LocalConf(USER_CONFIG) if 'user_beep_setting' not in self.settings: # Save any current local config setting self.settings['user_beep_setting'] = ( user_config.get("confirm_listening", None)) # Disable in local config user_config.merge({"confirm_listening": False}) user_config.store() # Notify all processes to update their loaded configs self.bus.emit(Message('configuration.updated'))
def handle_set_listener(self, message): try: from mycroft.configuration.config import (LocalConf, USER_CONFIG, Configuration) module = message.data['ListenerType'].replace(' ', '') module = module.replace('default', 'pocketsphinx') name = module.replace('pocketsphinx', 'pocket sphinx') config = Configuration.get() if config['hotwords']['hey mycroft']['module'] == module: self.speak_dialog('listener.same', data={'listener': name}) return new_config = { 'precise': { 'dist_url': 'http://bootstrap.mycroft.ai/' 'artifacts/static/daily/' }, 'hotwords': { 'hey mycroft': { 'module': module } } } user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.emitter.emit(Message('configuration.updated')) if module == 'precise': exe_path = expanduser('~/.mycroft/precise/precise-stream') if isfile(exe_path): self.enclosure.mouth_text('Checking version...') version = check_output([exe_path, '-v'], stderr=STDOUT) if version.strip() == '0.1.0': os.remove(exe_path) self.enclosure.mouth_reset() else: self.speak_dialog('download.started') return self.speak_dialog('set.listener', data={'listener': name}) except (NameError, SyntaxError, ImportError): self.speak_dialog('must.update')
def _restore_listen_beep(self): if 'user_beep_setting' in self.settings: # Wipe from local config new_conf_values = {"confirm_listening": False} user_config = LocalConf(USER_CONFIG) if (self.settings["user_beep_setting"] is None and "confirm_listening" in user_config): del user_config["confirm_listening"] else: user_config.merge({"confirm_listening": self.settings["user_beep_setting"]}) user_config.store() # Notify all processes to update their loaded configs self.bus.emit(Message('configuration.updated')) del self.settings["user_beep_setting"]
def handle_level_decrease(self, message): from mycroft.configuration.config import (LocalConf, USER_CONFIG) new_rate = self.curr_level + 0.10 if new_rate <= 2.0 and new_rate > 0.1: new_config = { "tts": { "mimic": { "duration_stretch": str(new_rate) } } } user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.curr_level = new_rate self.bus.emit(Message('configuration.updated')) self.speak_dialog('updatedLevel', {'directionChange': 'decreased'}) else: self.speak_dialog("invalidLevel")
def save_wakewords(self): from mycroft.configuration.config import (LocalConf, USER_CONFIG, Configuration) record = Configuration.get()['listener']['record_wake_words'] if self.settings["savewakewords"] is True: free_mb = psutil.disk_usage('/')[2] / 1024 / 1024 if free_mb <= self.settings["min_free_disk"]: self.log.info("no space: deactivate recording") new_config = {"listener": {"record_wake_words": "true"}} user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() if record == "false": new_config = {"listener": {"record_wake_words": "true"}} self.log.info("set wake word recording") user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.settings.update else: if record == "true": new_config = {"listener": {"record_wake_words": "false"}} self.log.info("unset wake word recording") user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.settings.update
def handle_use_precise_dev(self, message): from mycroft.configuration.config import (LocalConf, USER_CONFIG, Configuration) wake_word = Configuration.get()['listener']['wake_word'] new_config = { 'precise': { "dist_url": self.PRECISE_DEV_DIST_URL, "model_url": self.PRECISE_DEV_MODEL_URL }, 'hotwords': { wake_word: { 'module': 'precise', 'sensitivity': 0.5 } } } user_config = LocalConf(USER_CONFIG) user_config.merge(new_config) user_config.store() self.bus.emit(Message('configuration.updated')) self.speak_dialog('precise.devmode.enabled')
def _update_config(self, config): from mycroft.configuration.config import (LocalConf, USER_CONFIG) user_config = LocalConf(USER_CONFIG) user_config.merge(config) user_config.store() self.bus.emit(Message('configuration.updated'))