Eagle Speaker Recognition Demos
Made in Vancouver, Canada by Picovoice
Eagle
Eagle is an on-device speaker recognition engine. Eagle is:
- Private; All voice processing runs locally.
- Cross-Platform:
- Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64)
- Android and iOS
- Chrome, Safari, Firefox, and Edge
- Raspberry Pi (3, 4, 5)
Compatibility
- Python 3.9+
- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64), and Raspberry Pi (3, 4, 5).
Installation
pip3 install pveagledemo
AccessKey
Eagle requires a valid Picovoice AccessKey at initialization. AccessKey acts as your credentials when using Eagle
SDKs. You can get your AccessKey for free. Make sure to keep your AccessKey secret.
Signup or Login to Picovoice Console to get your AccessKey.
Overview
Eagle consists of two distinct steps: Enrollment and Recognition. In the enrollment step, Eagle analyzes a series of
utterances from a particular speaker to learn their unique voiceprint. This step results in an EagleProfile object,
which can be stored and utilized during inference. During the Recognition step, Eagle compares the incoming frames of
audio to the voiceprints of all enrolled speakers in real-time to determine the similarity between them.
Microphone Demo
The microphone demo captures audio input from a microphone that is connected. To run the demo, use the following command in the terminal:
eagle_demo_mic {enroll, test} --access_key ${ACCESS_KEY} ...
Replace ${ACCESS_KEY} with yours obtained from Picovoice Console.
The commands enroll and test are used to create a speaker profile and perform speaker recognition, respectively.
Detailed explanations of these commands will be provided in their respective sections.
Furthermore, the demo offers optional arguments, which can be accessed by utilizing the --help argument. By doing so,
you will receive a comprehensive listing of the available arguments along with their corresponding descriptions.
eagle_demo_mic --help
Speaker Enrollment
If the demo is executed in the enrollment mode by using the enroll command, it will initiate the enrollment process
using the audio captured from the microphone. It will display the progress percentage in the terminal until it reaches
100%. Once completed, it will save the profile of the enrolled speaker to the disk.
eagle_demo_mic enroll --access_key ${ACCESS_KEY} --output_profile_path ${OUTPUT_PROFILE_PATH}
Replace ${OUTPUT_PROFILE_PATH} with the absolute path where the generated profile should be written.
Speaker Recognition
Once the speaker profile for all speakers are created, the demo can be run in the test mode by running the following
command:
eagle_demo_mic test --access_key ${ACCESS_KEY} --input_profile_paths ${INPUT_PROFILE_PATH_1 ...}
In this mode, you can include multiple speaker profiles by specifying them with the --input_profile_paths option.
Eagle will assess and provide a distinct score for each profile, which will be displayed in the terminal.
Note: the demo uses the default input audio device on your machine. To choose a different device, use the
--show_audio_devices option to see a list of available devices and their indexes, then run the above commands
with the --audio_device_index option:
eagle_demo_mic enroll --access_key ${ACCESS_KEY} --output_profile_path ${OUTPUT_PROFILE_PATH} --audio_device_index 2
File Demo
Similar to the mic demo, the file demo can be run in two modes: enroll and test
eagle_demo_file {enroll,test} --access_key ${ACCESS_KEY} ...
Replace ${ACCESS_KEY} with yours obtained from Picovoice Console.
The commands enroll and test are used to create a speaker profile and perform speaker recognition, respectively, and
will be discussed in detail in their respective sections.
To view the optional arguments for the demo, use the --help argument. This will display a list of available arguments
and their descriptions.
eagle_demo_file --help
Speaker Enrollment
To run the demo in enroll mode, you need two additional input arguments along with the AccessKey.
eagle_demo_file enroll --access_key ${ACCESS_KEY} \
--output_profile_path ${OUTPUT_PROFILE_PATH} --enroll_audio_paths ${ENROLL_AUDIO_PATH_1 ...}
In this command, {ENROLL_AUDIO_PATH_1 ...} represents the absolute paths to the enroll audio files. If multiple files
are provided, Eagle will process all of them. Once the specified files are processed, the demo will generate a profile at
${OUTPUT_PROFILE_PATH}.
Speaker Recognition
The file demo requires a test audio and one or more speaker profiles that were created during the enrollment step.
To run the demo, use the following command in the console:
eagle_demo_file test --access_key ${ACCESS_KEY} \
--input_profile_paths ${INPUT_PROFILE_PATH_1 ...} --test_audio_path ${TEST_AUDIO_PATH}
The demo will display the result for each enrolled speaker in the terminal.
Optionally, you can also generate a .csv file for further analysis by including the --csv_output_path parameter:
eagle_demo_file test --access_key ${ACCESS_KEY} \
--input_profile_paths ${INPUT_PROFILE_PATH_1 ...} --test_audio_path ${TEST_AUDIO_PATH} \
--csv_output_path ${CSV_OUTPUT_PATH}
Metadata
Release files for pveagledemo 3.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pveagledemo-3.0.2.tar.gz | 13.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pveagledemo-3.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.7 kB
Release files / pveagledemo-3.0.2.tar.gz
| Download URL | pveagledemo-3.0.2.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac89e10d790ef9b192cbef32691f9b2193d18e8aad2aa5a141f300382668bff7
|
|
BLAKE2b-256 checksum How to use checksums |
ebdfd1415c0a8372df7beac41e4ed6e981f2030c3f3a11a0459adbc45cc8836d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pveagledemo-3.0.2-py3-none-any.whl
| Download URL | pveagledemo-3.0.2-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdc9d24ab1c7ca76dff1886d37186c1ae83d843a848731e96792d2202d2a7d30
|
|
BLAKE2b-256 checksum How to use checksums |
ad8f52e00c1f38a5baa464b0b8e14a0fd74a84864ab22eaafad06cea179c0ee8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for pveagledemo 3.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.