Voice Analytics SDK for AI Agents
Project description
Whispey SDK
Professional Voice Analytics for AI Agents
Monitor, analyze, and gain insights from your AI voice agent conversations with Whispey's advanced voice analytics platform.
🚀 Quick Start
Installation
pip install whispey
Get Your Credentials
- Sign up at Whispey Voice Analytics Dashboard
- Get your Agent ID from the dashboard
- Generate your API Key from your workspace
Environment Setup
Create a .env file in your project root:
# Whispey Voice Analytics
WHISPEY_API_KEY=your_whispey_api_key_here
🔧 Configuration
Required Environment Variables
| Variable | Description | Where to Get |
|---|---|---|
WHISPEY_API_KEY |
Your Whispey API authentication key | Dashboard → API Keys |
Agent Configuration
Replace "your-agent-id-from-dashboard" with your actual Agent ID from the Whispey dashboard in your workspace.
pype = LivekitObserve(
agent_id="2a72948a-094d-4a13-baf7-e033a5cdeb22" # Your actual Agent ID
)
📖 Complete Implementation
Here's a complete example of how to integrate Whispey Observe into your LiveKit voice agent:
from dotenv import load_dotenv
from livekit import agents
from livekit.agents import AgentSession, Agent, RoomInputOptions
from livekit.plugins import (
openai,
deepgram,
noise_cancellation,
silero,
elevenlabs,
)
from livekit.plugins.turn_detector.multilingual import MultilingualModel
from whispey import LivekitObserve
import base64
import os
# Load environment variables
load_dotenv()
# 🎙️ Initialize Whispey with your Agent ID from the dashboard
pype = LivekitObserve(
agent_id="your-agent-id-from-dashboard" # Get this from https://whispey.xyz/
class Assistant(Agent):
def __init__(self) -> None:
super().__init__(instructions="You are a helpful voice AI assistant.")
async def entrypoint(ctx: agents.JobContext):
await ctx.connect()
# Configure your AI agent session
session = AgentSession(
stt=deepgram.STT(model="nova-3", language="multi"),
llm=openai.LLM(model="gpt-4o-mini"),
tts=elevenlabs.TTS(
voice_id="H8bdWZHK2OgZwTN7ponr",
model="eleven_flash_v2_5",
language="hi", # Adjust language as needed
voice_settings=elevenlabs.VoiceSettings(
similarity_boost=1,
stability=0.7,
style=0.7,
use_speaker_boost=False,
speed=1.1
)
),
vad=silero.VAD.load(),
turn_detection=MultilingualModel(),
)
# 🚀 Start Whispey Voice Analytics
session_id = pype.start_session(
session,
phone_number="+1234567890", # Optional: Customer phone number
customer_name="John Doe", # Optional: Customer name
conversation_type="voice_call" # Optional: Type of conversation
)
print(f"🎙️ Whispey Analytics started for session: {session_id}")
# 📤 Export analytics data when session ends
async def whispey_shutdown():
try:
result = await whispey.export(
session_id,
recording_url="" # Optional: Add recording URL if available
)
if result.get("success"):
print("✅ Successfully exported to Whispey Voice Analytics!")
print(f"📊 Log ID: {result.get('data', {}).get('log_id')}")
else:
print(f"❌ Export failed: {result.get('error')}")
except Exception as e:
print(f"💥 Export error: {e}")
# Register cleanup callback
ctx.add_shutdown_callback(whispey_shutdown)
# Start the agent session
await session.start(
room=ctx.room,
agent=Assistant(),
room_input_options=RoomInputOptions(
noise_cancellation=noise_cancellation.BVC(),
),
)
# Generate initial greeting
await session.generate_reply(
instructions="Greet the user and offer your assistance."
)
if __name__ == "__main__":
agents.cli.run_app(agents.WorkerOptions(entrypoint_fnc=entrypoint))
📊 Features
Automatic Metrics Collection
- 🎙️ Speech-to-Text (STT): Audio duration, processing time
- 🧠 Large Language Model (LLM): Token usage, response time, TTFT
- 🗣️ Text-to-Speech (TTS): Character count, audio duration, TTFB
- 👂 Voice Activity Detection (VAD): Voice detection metrics
- ⏱️ End of Utterance (EOU): Turn-taking timing
Conversation Analytics
- 📝 Full Transcript: Complete conversation history with timestamps
- 🔄 Turn Tracking: User and agent turns with associated metrics
- 📈 Performance Insights: Response times, token usage, audio quality
- 🎯 Success Metrics: Call completion, lesson progress, handoff detection
📈 Dashboard Integration
Once your data is exported, view detailed analytics at: Whispey Voice Analytics Dashboard
Available Analytics:
- 📊 Call Performance: Response times, success rates
- 🎙️ Voice Quality: Audio metrics, clarity scores
- 💬 Conversation Flow: Turn analysis, interruption patterns
- 📈 Usage Statistics: Token consumption, API costs
- 🎯 Business Metrics: Conversion rates, customer satisfaction
🛠️ Troubleshooting
Common Issues
1. "Session not found" Error
# Ensure session_id is stored correctly
session_id = pype.start_session(session)
print(f"Session ID: {session_id}") # Save this for later use
3. API Authentication Error
# Check your .env file
echo $WHISPEY_API_KEY
# Ensure API key is set in environment
export WHISPEY_API_KEY="your_api_key_here"
Debug Mode
Enable verbose logging:
import logging
logging.basicConfig(level=logging.INFO)
# Your Whispey code here - you'll see detailed logs
📝 Requirements
- Python >= 3.8
- LiveKit Agents >= 1.2.2
- Active Whispey account with valid API key
🤝 Support
- Dashboard: https://whispey.xyz/
- Email: deepesh@pypeai.com
- Issues: GitHub Issues
📄 License
MIT License - see LICENSE file for details.
Built with ❤️ by Whispey Voice Analytics
Transform your voice agents with professional analytics and insights.
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
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 whispey-4.2.2.tar.gz.
File metadata
- Download URL: whispey-4.2.2.tar.gz
- Upload date:
- Size: 101.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa70fea16efd8deeb18503b96e9a2086cd8f6452b5a07fe5686d744e3a499e9e
|
|
| MD5 |
a240dbdfe32d55d90c3254c2234757f0
|
|
| BLAKE2b-256 |
a6c2f8bc21722c02dc90aec3cae9756550827ab564708d893bbca7aca2f84a6e
|
File details
Details for the file whispey-4.2.2-py3-none-any.whl.
File metadata
- Download URL: whispey-4.2.2-py3-none-any.whl
- Upload date:
- Size: 121.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b86edab1d0005244df1fc4f60acf5ed3d1294276c646dab216b0218e4ad3956a
|
|
| MD5 |
c0cf4dbd804f25af5570a77e64f1f9e8
|
|
| BLAKE2b-256 |
4c815d702a2a06ffe330bd6c449b5ae6c1f9e90b01b9709af52eec20a05c1162
|