Cobra Voice Activity Detection engine
Made in Vancouver, Canada by Picovoice
This package contains demos and commandline utilities for processing real-time audio (i.e. microphone) and audio files using Cobra voice activity detection engine.
Cobra
Cobra is a highly accurate and lightweight voice activity detection (VAD) engine.
Compatibility
- Python 3.9+
- Runs on Linux (x86_64), macOS (x86_64 and arm64), Windows (x86_64, arm64), and Raspberry Pi (3, 4, 5).
AccessKey
Cobra requires a valid Picovoice AccessKey at initialization. AccessKey acts as your credentials when using Cobra 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.
Installation
sudo pip3 install pvcobrademo
Usage
Microphone Demo
The Microphone demo opens an audio stream from a microphone and detects voice activities. The following opens the default microphone:
cobra_demo_mic --access_key {AccessKey}
where {AccessKey} is an AccessKey which should be obtained from Picovoice Console. It is possible that the default audio input device recognized by pvrecorder is not the one being used. There are a couple of debugging facilities baked into the demo application to solve this. First, type the following into the console:
cobra_demo_mic --show_audio_devices
It provides information about various audio input devices on the box. On a Linux box, this is the console output:
'index': '0', 'name': 'HDA Intel PCH: ALC892 Analog (hw:0,0)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '2'
'index': '1', 'name': 'HDA Intel PCH: ALC892 Alt Analog (hw:0,2)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '2'
'index': '2', 'name': 'HDA NVidia: HDMI 0 (hw:1,3)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '3', 'name': 'HDA NVidia: HDMI 1 (hw:1,7)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '4', 'name': 'HDA NVidia: HDMI 2 (hw:1,8)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '5', 'name': 'HDA NVidia: HDMI 3 (hw:1,9)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '6', 'name': 'HDA NVidia: HDMI 0 (hw:2,3)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '7', 'name': 'HDA NVidia: HDMI 1 (hw:2,7)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '8', 'name': 'HDA NVidia: HDMI 2 (hw:2,8)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '9', 'name': 'HDA NVidia: HDMI 3 (hw:2,9)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '10', 'name': 'Logitech USB Headset: Audio (hw:3,0)', 'defaultSampleRate': '44100.0', 'maxInputChannels': '1'
'index': '11', 'name': 'sysdefault', 'defaultSampleRate': '48000.0', 'maxInputChannels': '128'
'index': '12', 'name': 'front', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '13', 'name': 'surround21', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '14', 'name': 'surround40', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '15', 'name': 'surround41', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '16', 'name': 'surround50', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '17', 'name': 'surround51', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '18', 'name': 'surround71', 'defaultSampleRate': '44100.0', 'maxInputChannels': '0'
'index': '19', 'name': 'pulse', 'defaultSampleRate': '44100.0', 'maxInputChannels': '32'
'index': '20', 'name': 'dmix', 'defaultSampleRate': '48000.0', 'maxInputChannels': '0'
'index': '21', 'name': 'default', 'defaultSampleRate': '44100.0', 'maxInputChannels': '32'
It can be seen that the last device (index 21) is considered default. But on this machine, a headset is being used as the input device which has an index of 10. After finding the correct index the demo application can be invoked as below:
cobra_demo_mic --access_key {AccessKey} --audio_device_index 10
If the problem persists we suggest storing the recorded audio into a file for inspection. This can be achieved by:
cobra_demo_mic --access_key {AccessKey} --audio_device_index 10 --output_path ~/test.wav
If after listening to stored file there is no apparent problem detected please open an issue.
File Demo
It allows testing Cobra on a corpus of audio files. The demo is mainly useful for quantitative performance benchmarking. It accepts 16kHz audio files. Cobra processes a single-channel audio stream if a stereo file is provided it only processes the first (left) channel. The following processes a file looking for voice activities:
cobra_demo_file --access_key {AccessKey} --input_audio_path ${AUDIO_PATH}
where {AccessKey} is an AccessKey which should be obtained from Picovoice Console. The threshold of the engine can be tuned using the threshold input argument:
cobra_demo_file --access_key {AccessKey} --input_audio_path ${AUDIO_PATH} \
--threshold 0.9
Threshold is a floating point number within [0, 1]. A higher threshold reduces the miss rate at the cost of increased false alarm rate.
Metadata
Release files for pvcobrademo 3.0.1
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 | |
|---|---|---|---|---|
| pvcobrademo-3.0.1.tar.gz | 11.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pvcobrademo-3.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.7 kB
Release files / pvcobrademo-3.0.1.tar.gz
| Download URL | pvcobrademo-3.0.1.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b6f58de3480cb72ab6c7f4060f1058c10a0c25b613cf541bef818abb62d55268
|
|
BLAKE2b-256 checksum How to use checksums |
fa06f0c95ef7be577aed005e5cf5a6bd104e44d2e8acc403b149781b8bf0e6e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pvcobrademo-3.0.1-py3-none-any.whl
| Download URL | pvcobrademo-3.0.1-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a963e4c9a09dfb05c08c5288e0dd4712e83596c3ca921a9d76ff66f59142462
|
|
BLAKE2b-256 checksum How to use checksums |
0a3c0030e31d378478991bfa110899434c904eb6d7a29c15bb8a171cebf70404
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for pvcobrademo 3.0.1
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.