Skip to contentSkip to main navigation Skip to footer

Understanding SPE home directory

SPE home directory is an analogy of user home directory in operating systems (e.g. /home/ in *nix, /Users/ in macOS or Windows, etc.) – it is the place where SPE stores data for users configured in SPE.

Default SPE home directory location is {SPE_installation_directory}/home/. This location can be changed using server.user.home setting in SPE configuration file.  Changing the home location might be useful e.g. in complex deployments with multiple separate SPEs which need to be accessing single centralized file storage placed on high-performance networked disk array, etc.

Similarly to the operating systems, the SPE home directory contains subdirectories for each SPE user (see SPE user management article). These subdirectories contain data belonging to the respective users:
– user’s file storage
– user-specific data

Since SPE comes with pre-configured user “admin”, the default SPE installation contains admin subdirectory inside home:

└── admin
    ├── storage
    └── data


The user’s  storage directory is where SPE stores files and directories uploaded or created via REST API, i.e. every action made using the /audiofile or /directory endpoints is reflected here – e.g. uploading file using POST /audiofile physically creates the file on filesystem in the storage location… and the file stays there until it’s explicitly deleted using DELETE /audiofile.

There might be various reasons to NOT use the REST API for uploading files to the Speech Engine, e.g. to save the server from unwanted burden caused by many uploads and/or big files… or from the overall processing workflow perspective it can be better to just copy files to the storage on the filesystem level, etc.
Therefore it is also possible to manipulate the physical files in the storage directly, i.e. copy/delete files directly to the storage directory, and then just register/unregister the files in SPE using /audiofile/register endpoint.

Best practices for using the files registration technique are:
– copy/create first, register afterwards
– unregister first, delete afterwards
Following these practices prevents various errors like trying to access incomplete files (because they were registered before completing the copy), or non-existent files (because they are still registered, but were already deleted), etc.

When using the registration technique it is necessary to make sure that access rights are configured appropriately – e.g. the external process putting the files to the SPE storage might be running under different user context than the SPE process, making the files inaccessible for the SPE process… which might lead to obscure errors.


The data directory holds additional data files for entities created by that user – e.g. SID Speaker Models, or LID language packs. If no such entities exist for that user, this directory is empty.

Unlike the storage, content of this directory is intended to be manipulated by SPE only and should not be manipulated directly on the filesystem level.