Skip to content

spot-enroll

Command-line wake word enrollment.

spot-enroll.c

Usage

Enrolls TrulyNatural SDK wake words on audio files.

usage: spot-enroll -t task [options] [+user1 file1 [-c] file2 ...] [+user2 ...]
 options:
  -a adaptedfile   : adapted enrollment context output filename
  -c file          : recording contains trailing context
  -e enrolledfile  : enrollment context output filename
  -o out           : enrolled model output filename (default: enrolled-sv.snsr)
  -s setting=value : override a task setting
  -t task          : specify task filename (required)
  -v [-v [-v]]     : increase verbosity

Settings are strings used as keys to query or change task behavior.
Most frequently used for enrollment is accuracy, which takes a value
between 0 and 1.
Refer to the TrulyNatural SDK documentation for a complete list and
descriptions of all supported settings.

Examples

Enroll two users.

% spot-enroll -t ./model/udt-universal-3.67.1.0.snsr\
    +armadillo-1\
    ./data/enrollments/armadillo-1-0.wav\
    ./data/enrollments/armadillo-1-1.wav\
    ./data/enrollments/armadillo-1-2.wav\
    ./data/enrollments/armadillo-1-3.wav\
    +jackalope-4\
    ./data/enrollments/jackalope-4-0.wav\
    ./data/enrollments/jackalope-1-1.wav\
    ./data/enrollments/jackalope-1-2.wav\
    ./data/enrollments/jackalope-1-3.wav

Enroll a single user, with two enrollment recordings that include trailing context:

% spot-enroll -v -t ./model/udt-universal-3.67.1.0.snsr\
    +armadillo-1\
    ./data/enrollments/armadillo-1-0.wav \
    -c ./data/enrollments/armadillo-1-0-c.wav\
    ./data/enrollments/armadillo-1-1.wav\
    -c ./data/enrollments/armadillo-1-1-c.wav
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"

Enroll a user phrase, save the enrollment context to file.

% spot-enroll -v -t ./model/udt-universal-3.67.1.0.snsr\
    -e armadillo-1-enrollments.snsr\
    +armadillo-1\
    ./data/enrollments/armadillo-1-0.wav\
    ./data/enrollments/armadillo-1-1.wav\
    ./data/enrollments/armadillo-1-2.wav\
    ./data/enrollments/armadillo-1-3.wav
Enrollment context saved to "armadillo-1-enrollments.snsr"
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"

Enroll another user phrase, save the enrollment context to file.

% spot-enroll -v -v -t ./model/udt-universal-3.67.1.0.snsr\
    -e jackalope-1-enrollments.snsr\
    +jackalope-1\
    ./data/enrollments/jackalope-1-0.wav\
    ./data/enrollments/jackalope-1-1.wav\
    ./data/enrollments/jackalope-1-2.wav\
    ./data/enrollments/jackalope-1-3.wav
Enrolling user "jackalope-1" from file "./data/enrollments/jackalope-1-0.wav".
Enrolling user "jackalope-1" from file "./data/enrollments/jackalope-1-1.wav".
Enrolling user "jackalope-1" from file "./data/enrollments/jackalope-1-2.wav".
Enrolling user "jackalope-1" from file "./data/enrollments/jackalope-1-3.wav".
     jackalope-1: 4 enrollments.
Enrollment context saved to "jackalope-1-enrollments.snsr"
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"

Combine two previously saved enrollment contexts with a third enrollment, save the combined enrollment context. Speed up the adaptation by reducing the accuracy.

% spot-enroll -v -v -v -t ./model/udt-universal-3.67.1.0.snsr\
    -t armadillo-1-enrollments.snsr\
    -t jackalope-1-enrollments.snsr\
    -e combined-enrollments.snsr -s accuracy=0.1\
    +terminator-2\
    ./data/enrollments/terminator-2-0.wav\
    ./data/enrollments/terminator-2-1.wav\
    ./data/enrollments/terminator-2-2.wav\
    ./data/enrollments/terminator-2-3.wav
Enrolling user "terminator-2" from file "./data/enrollments/terminator-2-0.wav".
Enrolling user "terminator-2" from file "./data/enrollments/terminator-2-1.wav".
Enrolling user "terminator-2" from file "./data/enrollments/terminator-2-2.wav".
Enrolling user "terminator-2" from file "./data/enrollments/terminator-2-3.wav".
     armadillo-1: 4 enrollments.
     jackalope-1: 4 enrollments.
    terminator-2: 4 enrollments.
Enrollment context saved to "combined-enrollments.snsr"
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"

Re-enroll with full accuracy, save to three-users.snsr.

% spot-enroll -v -v -v -t ./model/udt-universal-3.67.1.0.snsr\
    -t combined-enrollments.snsr -o three-users.snsr
     armadillo-1: 4 enrollments.
     jackalope-1: 4 enrollments.
    terminator-2: 4 enrollments.
Adapting: 100% complete.
Enrolled model saved to "three-users.snsr"

Delete an enrollment from a saved enrollment context.

% spot-enroll -v -v -t ./model/udt-universal-3.67.1.0.snsr\
    -t combined-enrollments.snsr -e two-enrollments.snsr\
    -s delete-user=jackalope-1
     armadillo-1: 4 enrollments.
    terminator-2: 4 enrollments.
Enrollment context saved to "two-enrollments.snsr"
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"

Enroll two users separately, save adapted contexts, then combine the saved contexts without re-adapting.

% spot-enroll -v -v -t ./model/udt-universal-3.67.1.0.snsr\
    -a armadillo-1-adapted.snsr\
    +armadillo-1\
    ./data/enrollments/armadillo-1-0.wav\
    ./data/enrollments/armadillo-1-1.wav\
    -c ./data/enrollments/armadillo-1-0-c.wav\
    -c ./data/enrollments/armadillo-1-1-c.wav
Enrolling user "armadillo-1" from file "./data/enrollments/armadillo-1-0.wav".
Enrolling user "armadillo-1" from file "./data/enrollments/armadillo-1-1.wav".
Enrolling user "armadillo-1" with context from file "./data/enrollments/armadillo-1-0-c.wav".
Enrolling user "armadillo-1" with context from file "./data/enrollments/armadillo-1-1-c.wav".
     armadillo-1: 4 enrollments.
Enrollment context saved to "armadillo-1-adapted.snsr"
Adapting: 100% complete.
Adapted enrollment context saved to "armadillo-1-adapted.snsr"
Enrolled model saved to "enrolled-sv.snsr"

% spot-enroll -v -t ./model/udt-universal-3.67.1.0.snsr\
    -a jackalope-1-adapted.snsr\
    +jackalope-1\
    ./data/enrollments/jackalope-1-0.wav\
    ./data/enrollments/jackalope-1-1.wav\
    -c ./data/enrollments/jackalope-1-0-c.wav\
    -c ./data/enrollments/jackalope-1-1-c.wav
Enrollment context saved to "jackalope-1-adapted.snsr"
Adapting: 100% complete.
Adapted enrollment context saved to "jackalope-1-adapted.snsr"
Enrolled model saved to "enrolled-sv.snsr"

% spot-enroll -v -t ./model/udt-universal-3.67.1.0.snsr\
    -t ./armadillo-1-adapted.snsr\
    -t ./jackalope-1-adapted.snsr
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"

Load adapted contexts and force a re-adapt.

% spot-enroll -v -t ./model/udt-universal-3.67.1.0.snsr\
    -t ./armadillo-1-adapted.snsr\
    -t ./jackalope-1-adapted.snsr\
    -s re-adapt=1
Adapting: 100% complete.
Enrolled model saved to "enrolled-sv.snsr"