Profiles
A Rhasspy profile contains all of the necessary files for wake word detection, speech transcription, intent recognition, and training.
Each profile is a directory contained in the top-level profiles
directory. The profiles/defaults.json
file contains the default configuration for all profiles. The profile.json
file inside each individual profile directory (e.g., profiles/en/profile.json
) overrides settings in defaults.json
.
When starting Rhasspy, you must specify a profile name with --profile <NAME>
where <NAME>
is the name of the profile directory (en
, nl
, etc.).
Profile Directories
Rhasspy looks for profile-related files in two directories:
- The system profile directory (read only)
- Override with
--system-profiles <DIR>
- Override with
- The user profile directory (read/write)
- Override with
--user-profiles <DIR>
- Override with
Files in the user profile directory override system files, and Rhasspy will only ever write to the user profile directory. The default location for each of these directories is:
- Virtual Environment
- System profile location is
rhasspy-profile/rhasspyprofile/profiles
relative to Rhasspy's root directory - User profile location is
$HOME/.config/rhasspy/profiles
- System profile location is
- Docker
- System profile location is
/usr/lib/rhasspy-voltron/rhasspy-profile/rhasspyprofile/profiles
- User profile location must be explicitly set and mapped to a volume:
docker run ... -v /path/to/profiles:/profiles <IMAGE_NAME> --user-profiles /profiles
- System profile location is
Example
Assume you are running Rhasspy in a virtual environment, and you add some new sentences to the en
(English) profile in the web interface. When saving the sentences.ini
file, Rhasspy will create $HOME/.config/rhasspy/profiles/en
(if it doesn't exist), and write sentences.ini
in that directory. If you adjust and save your settings, you will find them in $HOME/.config/rhasspy/profiles/en/profile.json
.
Downloading Profiles
The first time Rhasspy loads a profile, it needs to download the required binary artifacts (acoustic model, base dictionary, etc.) from the internet. After the initial download, Rhasspy can function completely offline.
See the supported languages list for links to each language's profile artifacts. The rhasspy-profile
is responsible for downloading and unpacking these artifacts according to the download
section in profile.json
for each language.
Some files are gzipped, and should be unzipped before use (unzip = true
). Other files are split into multiple parts so that they can be uploaded to GitHub. This is done with the split
command:
split -d -b 25M FILE FILE.part-
They can be recombined simply with:
cat FILE.part-* > FILE
Available Settings
See the reference for all available profile settings.