Skip to content
Permalink
dev
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
// Definition and documentation of all variables used by mycroft-core.
//
// Settings seen here are considered DEFAULT. Settings can also be
// overridden at the REMOTE level (set by the user via
// https://home.mycroft.ai), at the SYSTEM level (typically in the file
// '/etc/mycroft/mycroft.conf'), or at the USER level (typically in the
// file '~/.config/mycroft/mycroft.conf').
//
// The load order of settings is:
// DEFAULT
// REMOTE
// SYSTEM
// USER
//
// The Override: comments below indicates where these settings are generally
// set outside of this file. The load order is always followed, so an
// individual systems can still apply changes at the SYSTEM or USER levels.
// Language used for speech-to-text and text-to-speech.
// Code is a BCP-47 identifier (https://tools.ietf.org/html/bcp47), lowercased
// TODO: save unmodified, lowercase upon demand
"lang": "en-us",
// Measurement units, either 'metric' or 'english'
// Override: REMOTE
"system_unit": "metric",
// Time format, either 'half' (e.g. "11:37 pm") or 'full' (e.g. "23:37")
// Override: REMOTE
"time_format": "half",
// Date format, either 'MDY' (e.g. "11-29-1978") or 'DMY' (e.g. "29-11-1978")
// Override: REMOTE
"date_format": "MDY",
// Whether to opt in to data collection
// Override: REMOTE
"opt_in": false,
// Play a beep when system begins to listen?
"confirm_listening": true,
// File locations of sounds to play for system events
"sounds": {
"start_listening": "snd/start_listening.wav",
"end_listening": "snd/end_listening.wav",
"acknowledge": "snd/acknowledge.mp3"
},
// Mechanism used to play WAV audio files
// Override: SYSTEM
"play_wav_cmdline": "paplay %1 --stream-name=mycroft-voice",
// Mechanism used to play MP3 audio files
// Override: SYSTEM
"play_mp3_cmdline": "mpg123 %1",
// Mechanism used to play OGG audio files
// Override: SYSTEM
"play_ogg_cmdline": "ogg123 -q %1",
// Location where the system resides
// NOTE: Although this is set here, an Enclosure can override the value.
// For example a mycroft-core running in a car could use the GPS.
// Override: REMOTE
"location": {
"city": {
"code": "Lawrence",
"name": "Lawrence",
"state": {
"code": "KS",
"name": "Kansas",
"country": {
"code": "US",
"name": "United States"
}
}
},
"coordinate": {
"latitude": 38.971669,
"longitude": -95.23525
},
"timezone": {
"code": "America/Chicago",
"name": "Central Standard Time",
"dstOffset": 3600000,
"offset": -21600000
}
},
// Also change in scripts/prepare-msm.sh
"data_dir": "/opt/mycroft",
// whenever core needs to cache some files this directory will be used,
// the main use case is for TTS files to avoid synthesizing the same thing
// more than once, you may set this to a permanent directory to keep these
// files across reboots, but be careful with space usage!
// if not set defaults to "/tmp/mycroft/cache"
// TIP: use "/dev/shm/mycroft/cache" if you want to keep the cache in RAM
"cache_path": "/tmp/mycroft/cache",
# emit mycroft.ready signal when all these conditions are met
# different setups will have different needs
# eg, a server does not care about audio
# pairing -> device is paired
# internet -> device is connected to the internet - NOT IMPLEMENTED
# skills -> skills reported ready
# speech -> stt reported ready
# audio -> audio playback reported ready
# gui -> gui websocket reported ready - NOT IMPLEMENTED
# enclosure -> enclosure/HAL reported ready - NOT IMPLEMENTED
"ready_settings": ["skills"]
// General skill values
"skills": {
// if this is a string it will override the path used to load skills
// this allows power users, devs, and distro packagers to choose a
// different folder
"directory_override": false,
// don't start loading skills until internet is detected
// this config value is not present in mycroft-core ()internet is required)
// mycroft-lib expects that some instances will be running fully offline
"wait_for_internet": true,
"msm": {
// Relative to "data_dir"
"directory": "skills",
"versioned": true,
"repo": {
// Relative to "data_dir"
"cache": ".skills-repo",
"url": "https://github.com/MycroftAI/mycroft-skills",
"branch": "21.02"
}
},
"upload_skill_manifest": true,
// Directory to look for user skills
"directory": "~/.local/share/mycroft/skills",
// Enable auto update by msm
"auto_update": true,
// Time between updating skills in hours
"update_interval": 1.0,
// blacklisted skills to not load
// NB: This is the basename() of the directory where the skill lives, so if
// the skill you want to blacklist is in /usr/share/mycroft/skills/mycroft-alarm.mycroftai/
// then you should write `["mycroft-alarm.mycroftai"]` below.
"blacklisted_skills": [],
// priority skills to be loaded first
"priority_skills": ["mycroft-pairing", "mycroft-volume"],
// fallback skill configuration
"fallbacks": {
// you can add skill_id: priority to override the developer defined
// priority of those skills, this allows customization
// of unknown intent handling for default_skills + user preferences
"fallback_priorities": {
// "skill_id": 10
},
// fallback skill handling has 3 modes of operations:
// - "accept_all" # default mycroft-core behavior
// - "whitelist" # only call fallback for skills in "fallback_whitelist"
// - "blacklist" # only call fallback for skills NOT in "fallback_blacklist"
"fallback_mode": "accept_all",
"fallback_whitelist": [],
"fallback_blacklist": []
},
// converse stage configuration
"converse": {
// the default number of seconds a skill remains active
// if the user does not interact with the skill in this timespan it
// will be deactivated, default 5 minutes (same as mycroft)
"timeout": 300,
// override of "skill_timeouts" per skill_id
"skill_timeouts": {},
// conversational mode has 3 modes of operations:
// - "accept_all" # default mycroft-core behavior
// - "whitelist" # only call converse for skills in "converse_whitelist"
// - "blacklist" # only call converse for skills NOT in "converse_blacklist"
"converse_mode": "accept_all",
"converse_whitelist": [],
"converse_blacklist": [],
// converse activation has 4 modes of operations:
// - "accept_all" # default mycroft-core behavior, any skill can
// # activate itself unconditionally
// - "priority" # skills can only activate themselves if no skill with
// # higher priority is active
// - "whitelist" # only skills in "converse_whitelist" can activate themselves
// - "blacklist" # only skills NOT in converse "converse_blacklist" can activate themselves
// NOTE: this does not apply for regular skill activation, only to skill
// initiated activation requests
"converse_activation": "accept_all",
// number of consecutive times a skill is allowed to activate itself
// per minute, -1 for no limit (default), 0 to disable self-activation
"max_activations": -1,
// override of "max_activations" per skill_id
"skill_activations": {},
// if false only skills can activate themselves
// if true any skill can activate any other skill
"cross_activation": true,
// if false only skills can deactivate themselves
// if true any skill can deactivate any other skill
// NOTE: skill deactivation is not yet implemented
"cross_deactivation": true,
// you can add skill_id: priority to override the developer defined
// priority of those skills, currently there is no api for skills to
// define their default priority, it is assumed to be 50, the only current
// canonical source for converse priorities is this setting
"converse_priorities": {
// "skill_id": 10
}
}
},
// Address of the REMOTE server
"server": {
"url": "https://api.mycroft.ai",
"version": "v1",
"update": true,
"disabled": false,
"metrics": false,
"sync_skill_settings": true
},
// The mycroft-core messagebus websocket
"websocket": {
"host": "0.0.0.0",
"port": 8181,
"route": "/core",
"ssl": false,
// in mycroft-core all skills share a bus, this allows malicious skills
// to manipulate it and affect other skills, this option ensures each skill
// gets it's own websocket connection
"shared_connection": true
},
// The GUI messagebus websocket. Once port is created per connected GUI
"gui_websocket": {
"host": "0.0.0.0",
"base_port": 18181,
"route": "/gui",
"ssl": false
},
// URIs to use for testing network connection.
"network_tests": {
"dns_primary": "8.8.8.8",
"dns_secondary": "8.8.4.4",
"web_url": "https://www.google.com",
"ncsi_endpoint": "http://www.msftncsi.com/ncsi.txt",
"ncsi_expected_text": "Microsoft NCSI"
},
// Settings used by the wake-up-word listener
// Override: REMOTE
"listener": {
"sample_rate": 16000,
// Set 'save_path' to configure the location of files stored if
// 'record_wake_words' and/or 'save_utterances' are set to 'true'.
// WARNING: Make sure that user 'mycroft' has write-access on the
// directory!
// "save_path": "/tmp",
// Set 'record_wake_words' to save a copy of wake word triggers
// as .wav files under: /'save_path'/mycroft_wake_words
"record_wake_words": false,
// Set 'save_utterances' to save each sentence sent to STT -- by default
// they are only kept briefly in-memory. This can be useful for for
// debugging or other custom purposes. Recordings are saved
// under: /'save_path'/mycroft_utterances/<TIMESTAMP>.wav
"save_utterances": false,
"wake_word_upload": {
"disable": false,
"url": "https://training.mycroft.ai/precise/upload"
},
// Override as SYSTEM or USER to select a specific microphone input instead of
// the PortAudio default input.
// "device_name": "somename", // can be regex pattern or substring
// or
// "device_index": 12,
// Stop listing to the microphone during playback to prevent accidental triggering
// This is enabled by default, but instances with good microphone noise cancellation
// can disable this to listen all the time, allowing 'barge in' functionality.
"mute_during_output" : true,
// How much (if at all) to 'duck' the speaker output during listening. A
// setting of 0.0 will not duck at all. A 1.0 will completely mute output
// while in a listening state. Values in between will lower the volume
// partially (this is optional behavior, depending on the enclosure).
"duck_while_listening" : 0.3,
// In milliseconds
"phoneme_duration": 120,
"multiplier": 1.0,
"energy_ratio": 1.5,
"wake_word": "hey mycroft",
"stand_up_word": "wake up",
// Settings used by microphone to set recording timeout
"recording_timeout": 10.0,
"recording_timeout_with_silence": 3.0,
// instant listen is an experimental setting, it removes the need for
// the pause between "hey mycroft" and starting to speak the utterance,
//however it might slightly downgrade STT accuracy depending on engine used
"instant_listen": false
},
// Settings used for any precise wake words
"precise": {
"use_precise": true,
"dist_url": "https://github.com/MycroftAI/precise-data/raw/dist/{arch}/latest",
"model_url": "https://raw.githubusercontent.com/MycroftAI/precise-data/models/{wake_word}.tar.gz"
},
// Hotword configurations
"hotwords": {
"hey mycroft": {
"module": "precise",
"phonemes": "HH EY . M AY K R AO F T",
"threshold": 1e-90,
"lang": "en-us"
// Specify custom model via:
// "local_model_file": "~/.local/share/mycroft/precise/models/something.pb"
// Precise options:
// "sensitivity": 0.5, // Higher = more sensitive
// "trigger_level": 3 // Higher = more delay & less sensitive
},
"wake up": {
"module": "pocketsphinx",
"phonemes": "W EY K . AH P",
"threshold": 1e-20,
"lang": "en-us"
}
},
// Mark 1 enclosure settings
// Override: SYSTEM (e.g. Picroft)
"enclosure": {
// Platform name
// Options: 'picroft', 'mycroft_mark_1'
// Override: SYSTEM (set by specific enclosures)
"platform": "HolmesV",
// "platform_enclosure_path": "/etc/myenclosure/code.py",
// COMM params to the Arduino/faceplate
"port": "/dev/ttyAMA0",
"rate": 9600,
"timeout": 5.0,
// ??
"update": true,
// The NTP sync should only forced on Raspberry Pi based devices.
"ntp_sync_on_boot": false,
// for backwards compat NTP sync is automatically enabled for
// ('mycroft_mark_1', 'picroft', 'mycroft_mark_2pi')
// to disable forced ntp_sync in official mycroft platforms
// set this to false
"force_mycroft_ntp": true,
// Run a self test at bootup?
"test": false
},
// Level of logs to store, one of "CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"
// NOTE: This configuration setting is special and can only be changed in the
// SYSTEM or USER configuration file, it will not be read if defined in the
// DEFAULT (here) or in the REMOTE mycroft config.
// If not defined, the default log level is INFO.
//"log_level": "INFO",
// Messagebus types that will NOT be output to logs
"ignore_logs": ["enclosure.mouth.viseme", "enclosure.mouth.display"],
// Settings related to remote sessions
// Overrride: none
"session": {
// Time To Live, in seconds
"ttl": 180
},
// Speech to Text parameters
// Override: REMOTE
"stt": {
// Engine. Options: "mycroft", "google", "wit", "ibm", "kaldi", "bing",
// "houndify", "deepspeech_server", "govivace", "yandex"
"module": "mycroft"
// "deepspeech_server": {
// "uri": "http://localhost:8080/stt"
// },
// "kaldi": {
// "uri": "http://localhost:8080/client/dynamic/recognize"
// },
//"govivace": {
// "uri": "https://services.govivace.com:49149/telephony",
// "credential": {
// "token": "xxxxx"
// }
//}
},
// Text to Speech parameters
// Override: REMOTE
"tts": {
// Engine. Options: "mimic", "mimic2", "google", "marytts", "fatts", "espeak",
// "spdsay", "responsive_voice", "yandex", "polly", "mozilla"
"pulse_duck": false,
"module": "mimic",
"polly": {
"voice": "Matthew",
"region": "us-east-1",
"access_key_id": "",
"secret_access_key": ""
},
"mimic": {
"voice": "ap"
},
"mimic2": {
"lang": "en-us",
"url": "https://mimic-api.mycroft.ai/synthesize?text=",
"preloaded_cache": "/opt/mycroft/preloaded_cache/Mimic2"
},
"espeak": {
"lang": "english-us",
"voice": "m1"
},
"mozilla": {
"url": "http://0.0.0.0:5002"
}
},
"padatious": {
"intent_cache": "~/.local/share/mycroft/intent_cache",
"train_delay": 4,
"single_thread": false,
"padaos_only": false
},
"Audio": {
"backends": {
"local": {
"type": "simple",
"active": true
},
"vlc": {
"type": "vlc",
"active": true,
"duck": true
}
},
"default-backend": "local"
},
"debug": false
}