VoiceIDVault Python SDK — voice biometric authentication
Project description
voiceidvault
VoiceIDVault Python SDK — voice biometric authentication.
Installation
pip install voiceidvault
Quick start
from voiceidvault import VoiceIDVaultClient
client = VoiceIDVaultClient(api_key="your-api-key")
# ── 1. Enroll a new user ──────────────────────────────────────────────────────
session = client.init_enrollment("user-123", "+12125551234")
# User receives an SMS — collect the code and verify
sms_result = client.verify_sms_otp(session.session_id, "user-123", "654321")
print("SMS verified:", sms_result.verified, "next step:", sms_result.next_step)
# Enroll face
with open("face.jpg", "rb") as f:
face_result = client.enroll_face(session.session_id, "user-123", f.read())
print("Face enrolled, liveness score:", face_result.liveness_score)
# Enroll voice
with open("voice.wav", "rb") as f:
voice_result = client.enroll_voice(
session.session_id, "user-123", f.read(),
phrase="my voice is my password",
duration=5,
)
print("Voice quality score:", voice_result.quality_score)
# Complete enrollment
result = client.complete_enrollment(session.session_id, "user-123")
print("Vault ID:", result.vault_id)
print("Trust score:", result.trust_score)
# ── 2. Authenticate ───────────────────────────────────────────────────────────
with open("voice.wav", "rb") as f:
auth = client.authenticate_voice(
f.read(),
user_id="user-123", # optional — omit for open-set search
confidence_threshold=0.85,
)
if auth.verified:
print("Authenticated! Confidence:", auth.confidence)
print("Identity:", auth.identity.user_id if auth.identity else "unknown")
else:
analysis = auth.deepfake_analysis
if analysis and not analysis.passed:
print("Deepfake detected, confidence:", analysis.confidence)
# ── 3. GDPR right-to-erasure ──────────────────────────────────────────────────
deletion = client.request_deletion("erasure", reason="Account closure")
print("Deletion deadline:", deletion.request.response_deadline)
print("Next steps:", deletion.next_steps)
Context manager
with VoiceIDVaultClient(api_key="your-api-key") as client:
auth = client.authenticate_voice(audio_bytes)
print(auth.verified)
Error handling
from voiceidvault import (
VoiceIDVaultClient,
AuthenticationError,
EnrollmentError,
RateLimitError,
NetworkError,
)
try:
result = client.enroll_voice(session_id, user_id, audio_bytes)
except AuthenticationError as e:
print("Invalid API key:", e)
except EnrollmentError as e:
print(f"Enrollment failed [{e.code}]:", e)
except RateLimitError as e:
print(f"Rate limited — retry after {e.retry_after}s")
except NetworkError as e:
print("Network failure:", e)
Configuration
| Parameter | Default | Description |
|---|---|---|
api_key |
required | Your VoiceIDVault API key |
base_url |
https://voiceidvault.com |
Override the API base URL |
timeout |
30 |
Request timeout in seconds |
retries |
3 |
Retry attempts for 5xx / timeouts |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
voiceidvault-1.1.0.tar.gz
(13.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file voiceidvault-1.1.0.tar.gz.
File metadata
- Download URL: voiceidvault-1.1.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a690d37604798b969df740a079d80f6336f760e22c045af1c785524272a0ffd1
|
|
| MD5 |
090e8ed76fbf9ead5c1d34757f287b56
|
|
| BLAKE2b-256 |
60e6dfd1a7b7a58173ab4ef24350d7f8bb1b3a2b80ae15b1d77372e659aea564
|
File details
Details for the file voiceidvault-1.1.0-py3-none-any.whl.
File metadata
- Download URL: voiceidvault-1.1.0-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c9a0ec14a90d918f4184996df64a10afcd1cff77e3c15f4234950ea0b5763e6
|
|
| MD5 |
0251c190f4ed5ef213dd9fa4d7b7454a
|
|
| BLAKE2b-256 |
93fc433f82ed35d7215b1e8f4692002be6d6dac3dc9e692bea6b53e8a3d0f04a
|