# Eagle Speaker Recognition Demos
Made in Vancouver, Canada by [Picovoice](https://picovoice.ai)
## 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)
- Android and iOS
- Chrome, Safari, Firefox, and Edge
- Raspberry Pi (3, 4, 5)
## Compatibility
- Python 3.8+
- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64), and Raspberry Pi (3, 4, 5).
## Installation
```console
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](https://console.picovoice.ai/) 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:
```console
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.
```console
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.
```console
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:
```console
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.
## File Demo
Similar to the mic demo, the file demo can be run in two modes: `enroll` and `test`
```console
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.
```console
eagle_demo_file --help
```
### Speaker Enrollment
To run the demo in `enroll` mode, you need two additional input arguments along with the AccessKey.
```console
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:
```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:
```console
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}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Picovoice/eagle",
"name": "pveagledemo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "Speaker Recognition, Speaker Identification, Voice Recognition, Voice Identification",
"author": "Picovoice",
"author_email": "hello@picovoice.ai",
"download_url": "https://files.pythonhosted.org/packages/87/b9/d7b9de61acdaadacc3b3a8ff791dcfcda7d62e9236b8bdd66d666fb71241/pveagledemo-1.0.3.tar.gz",
"platform": null,
"description": "# Eagle Speaker Recognition Demos\n\nMade in Vancouver, Canada by [Picovoice](https://picovoice.ai)\n\n## Eagle\n\nEagle is an on-device speaker recognition engine. Eagle is:\n\n- Private; All voice processing runs locally.\n- Cross-Platform:\n - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64)\n - Android and iOS\n - Chrome, Safari, Firefox, and Edge\n - Raspberry Pi (3, 4, 5)\n\n## Compatibility\n\n- Python 3.8+\n- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64), and Raspberry Pi (3, 4, 5).\n\n## Installation\n\n```console\npip3 install pveagledemo\n```\n\n## AccessKey\n\nEagle requires a valid Picovoice `AccessKey` at initialization. `AccessKey` acts as your credentials when using Eagle\nSDKs. You can get your `AccessKey` for free. Make sure to keep your `AccessKey` secret.\nSignup or Login to [Picovoice Console](https://console.picovoice.ai/) to get your `AccessKey`.\n\n## Overview\n\nEagle consists of two distinct steps: Enrollment and Recognition. In the enrollment step, Eagle analyzes a series of\nutterances from a particular speaker to learn their unique voiceprint. This step results in an `EagleProfile` object,\nwhich can be stored and utilized during inference. During the Recognition step, Eagle compares the incoming frames of\naudio to the voiceprints of all enrolled speakers in real-time to determine the similarity between them.\n\n## Microphone Demo\n\nThe microphone demo captures audio input from a microphone that is connected. To run the demo, use the following command\nin the terminal:\n\n```console\neagle_demo_mic {enroll, test} --access_key ${ACCESS_KEY} ...\n```\n\nReplace `${ACCESS_KEY}` with yours obtained from Picovoice Console.\n\nThe commands `enroll` and `test` are used to create a speaker profile and perform speaker recognition, respectively.\nDetailed explanations of these commands will be provided in their respective sections.\n\nFurthermore, the demo offers optional arguments, which can be accessed by utilizing the `--help` argument. By doing so,\nyou will receive a comprehensive listing of the available arguments along with their corresponding descriptions.\n\n```console\neagle_demo_mic --help\n```\n\n### Speaker Enrollment\n\nIf the demo is executed in the enrollment mode by using the `enroll` command, it will initiate the enrollment process\nusing the audio captured from the microphone. It will display the progress percentage in the terminal until it reaches\n100%. Once completed, it will save the profile of the enrolled speaker to the disk.\n\n```console\neagle_demo_mic enroll --access_key ${ACCESS_KEY} --output_profile_path ${OUTPUT_PROFILE_PATH}\n``````\n\nReplace `${OUTPUT_PROFILE_PATH}` with the absolute path where the generated profile should be written.\n\n### Speaker Recognition\n\nOnce the speaker profile for all speakers are created, the demo can be run in the `test` mode by running the following\ncommand:\n\n```console\neagle_demo_mic test --access_key ${ACCESS_KEY} --input_profile_paths ${INPUT_PROFILE_PATH_1 ...}\n```\n\nIn this mode, you can include multiple speaker profiles by specifying them with the `--input_profile_paths` option.\nEagle will assess and provide a distinct score for each profile, which will be displayed in the terminal.\n\n## File Demo\n\nSimilar to the mic demo, the file demo can be run in two modes: `enroll` and `test`\n\n```console\neagle_demo_file {enroll,test} --access_key ${ACCESS_KEY} ...\n```\n\nReplace `${ACCESS_KEY}` with yours obtained from Picovoice Console.\n\nThe commands `enroll` and `test` are used to create a speaker profile and perform speaker recognition, respectively, and\nwill be discussed in detail in their respective sections.\n\nTo view the optional arguments for the demo, use the `--help` argument. This will display a list of available arguments\nand their descriptions.\n\n```console\neagle_demo_file --help\n```\n\n### Speaker Enrollment\n\nTo run the demo in `enroll` mode, you need two additional input arguments along with the AccessKey.\n\n```console\neagle_demo_file enroll --access_key ${ACCESS_KEY} \\\n --output_profile_path ${OUTPUT_PROFILE_PATH} --enroll_audio_paths ${ENROLL_AUDIO_PATH_1 ...} \n```\n\nIn this command, `{ENROLL_AUDIO_PATH_1 ...}` represents the absolute paths to the enroll audio files. If multiple files\nare provided, Eagle will process all of them. Once the specified files are processed, the demo will generate a profile at\n`${OUTPUT_PROFILE_PATH}`.\n\n### Speaker Recognition\n\nThe file demo requires a test audio and one or more speaker profiles that were created during the enrollment step.\n\nTo run the demo, use the following command in the console:\n\n```console\neagle_demo_file test --access_key ${ACCESS_KEY} \\\n --input_profile_paths ${INPUT_PROFILE_PATH_1 ...} --test_audio_path ${TEST_AUDIO_PATH}\n```\n\nThe demo will display the result for each enrolled speaker in the terminal.\n\nOptionally, you can also generate a `.csv` file for further analysis by including the `--csv_output_path` parameter:\n\n```console\neagle_demo_file test --access_key ${ACCESS_KEY} \\\n --input_profile_paths ${INPUT_PROFILE_PATH_1 ...} --test_audio_path ${TEST_AUDIO_PATH} \\\n --csv_output_path ${CSV_OUTPUT_PATH}\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Eagle Speaker Recognition Engine demos",
"version": "1.0.3",
"project_urls": {
"Homepage": "https://github.com/Picovoice/eagle"
},
"split_keywords": [
"speaker recognition",
" speaker identification",
" voice recognition",
" voice identification"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "34a5851d5fba9d2c4159c8a99ee8285ed4619b139141a78917574b17723fa151",
"md5": "efe02a69e633b0b8e39005ae7b649d0d",
"sha256": "07e1b024e06c8f8f59ef12968bdfeb0a641e117fe3b792bb20e4b24332865bba"
},
"downloads": -1,
"filename": "pveagledemo-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "efe02a69e633b0b8e39005ae7b649d0d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 13087,
"upload_time": "2024-09-04T17:39:17",
"upload_time_iso_8601": "2024-09-04T17:39:17.896991Z",
"url": "https://files.pythonhosted.org/packages/34/a5/851d5fba9d2c4159c8a99ee8285ed4619b139141a78917574b17723fa151/pveagledemo-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "87b9d7b9de61acdaadacc3b3a8ff791dcfcda7d62e9236b8bdd66d666fb71241",
"md5": "d75cbf46f446660638f33110abaf0edf",
"sha256": "6f5100db3f8ef70b95a5b5cf91b63720602d2ca49320a1ceb75b7620411e3f4b"
},
"downloads": -1,
"filename": "pveagledemo-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "d75cbf46f446660638f33110abaf0edf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 13041,
"upload_time": "2024-09-04T17:39:19",
"upload_time_iso_8601": "2024-09-04T17:39:19.684147Z",
"url": "https://files.pythonhosted.org/packages/87/b9/d7b9de61acdaadacc3b3a8ff791dcfcda7d62e9236b8bdd66d666fb71241/pveagledemo-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-04 17:39:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Picovoice",
"github_project": "eagle",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pveagledemo"
}