The first open-source voice signature tool for individuals.
VoiceSign lets you embed an inaudible cryptographic watermark into any voice recording, binding it to your identity. Later, anyone can verify that a recording was signed by you. The watermark survives common audio transformations and is imperceptible to the human ear (target SNR: 42-46 dB).
Created by Eliot Cohen Bacrie, Founder and CEO of Oravys Inc.
Web version available at voicesign.eu
In a world of voice cloning and audio deepfakes, proving that a voice recording is genuinely yours matters. VoiceSign gives individuals a simple, free tool to:
- Sign your voice memos, podcasts, or recordings with your identity
- Verify that a recording was signed by a specific person
- Prove provenance of your original audio content
- Protect yourself against voice impersonation and unauthorized use
pip install voicesignDependencies: numpy. For non-WAV audio formats (MP3, FLAC, M4A), you also
need ffmpeg installed on your system.
import voicesign
# Read your audio file
with open("my_recording.wav", "rb") as f:
audio = f.read()
# Sign it with your identity
signed = voicesign.sign(audio, identity="Alice Johnson", salt="my-secret-salt")
# Save the signed version
with open("signed_recording.wav", "wb") as f:
f.write(signed)
# Later, verify it
with open("signed_recording.wav", "rb") as f:
audio = f.read()
result = voicesign.verify(audio, identity="Alice Johnson", salt="my-secret-salt")
print(result["detected"]) # True
print(result["confidence"]) # 0.95 (95% confidence)
print(result["correlation"]) # 0.87# Sign a recording
voicesign sign -i "Alice Johnson" -s "my-secret" recording.wav
# Output: recording_signed.wav
# Verify a recording
voicesign verify -i "Alice Johnson" -s "my-secret" recording_signed.wav
# Output: MATCH - Voice signature detected for: Alice Johnson
# Confidence: 95.23%voicesign sign -i "Alice Johnson" -s "my-secret" -o output.wav input.wavvoicesign sign -i "Alice Johnson" podcast.mp3
voicesign verify -i "Alice Johnson" podcast_signed.wavVoiceSign uses spread-spectrum audio watermarking in the frequency domain:
- Seed derivation - A SHA-256 hash of your salt + identity produces a deterministic seed.
- PN sequence generation - A pseudo-random noise (PN) sequence of +1/-1 values is generated from the seed.
- Frequency-domain embedding - The audio is split into 100ms segments. For each segment, the PN sequence is added to the real part of the FFT coefficients in the 2-6 kHz band at low amplitude.
- Detection - Pearson correlation between the expected PN sequence and the actual frequency coefficients. High correlation = signature present.
The watermark is:
- Inaudible - Embedded at ~42-46 dB SNR, below human perception
- Robust - Survives format conversion, mild compression, and noise
- Deterministic - Same identity + salt always produces the same watermark
- Lightweight - Pure numpy, no ML models, runs instantly on any machine
Embed an identity watermark into audio.
| Parameter | Type | Description |
|---|---|---|
audio_bytes |
bytes |
Raw audio file content |
identity |
str |
Identity string to bind (name, email, etc.) |
salt |
str or None |
Secret salt for watermark generation |
file_format |
str |
Input format: wav, mp3, flac, m4a |
Returns: bytes - Watermarked audio as 16-bit mono WAV.
Check whether audio contains a watermark for a given identity.
| Parameter | Type | Description |
|---|---|---|
audio_bytes |
bytes |
Raw audio file content |
identity |
str |
Identity string to check against |
salt |
str or None |
Must match the salt used during signing |
file_format |
str |
Input format: wav, mp3, flac, m4a |
Returns: dict with keys:
detected(bool) - Whether a matching watermark was foundconfidence(float) - Confidence score between 0 and 1correlation(float) - Raw Pearson correlation valueidentity_match(str) - The identity string tested
- Salt matters. Anyone who knows your salt and identity can forge your watermark. Keep your salt private.
- Not tamper-proof. A determined adversary who knows the algorithm and your salt can remove or overwrite the watermark. VoiceSign provides provenance, not DRM.
- Use unique salts. Different salts for different contexts (personal, professional, etc.) prevent cross-context tracking.
VoiceSign is created by Eliot Cohen Bacrie and powered by Oravys Inc.
If you use VoiceSign in your project, please include attribution:
Powered by Oravys Inc., created by Eliot Cohen Bacrie
See the NOTICE file for full attribution requirements.
For a no-install experience, use the web version at:
Apache 2.0 with attribution requirements. See LICENSE and NOTICE.
Copyright 2024-2026 Oravys Inc.
Powered by Oravys Inc. - Voice Intelligence