@anganyai/voice-sdk
v0.0.10
Published
SDK for building AI-powered voice conversations with Angany
Readme
Angany Voice SDK
Enterprise-grade SDK for building AI-powered voice conversations with Angany.
Features
- 🎙️ Real-time Voice Conversations - Natural, low-latency voice interactions
- 🔐 Enterprise Authentication - Multiple auth patterns (Frontend, Backend, Service Account)
- 🌐 Cross-Platform - Works on Web, Node.js, and React Native
- 📝 Live Transcriptions - Real-time speech-to-text with speaker attribution
- 🔄 Automatic Reconnection - Resilient connection handling
- 📊 Quality Monitoring - Built-in connection quality metrics
- 🎛️ Advanced Audio Controls - Echo cancellation, noise suppression, AGC
- 🏗️ TypeScript First - Full type safety and IntelliSense support
Installation
npm install @angany/voice-sdk
# or
yarn add @angany/voice-sdk
# or
pnpm add @angany/voice-sdkQuick Start
import { AnganyVoice } from '@angany/voice-sdk';
// Initialize the SDK
const voice = new AnganyVoice({
apiUrl: 'https://api.angany.ai',
debug: true,
});
// Authenticate (Frontend flow)
await voice.auth.authenticateFrontend();
// Start a conversation
const conversation = await voice.startConversation('customer-support');
// Listen to transcriptions
conversation.on('transcription', (event) => {
console.log(`${event.role}: ${event.text}`);
});
// Send a message to the AI
await conversation.speak('Hello, I need help with my account');Documentation
Platform Support
Web
import { AnganyVoice } from '@angany/voice-sdk/web';Node.js
import { AnganyVoice } from '@angany/voice-sdk/node';React Native
import { AnganyVoice } from '@angany/voice-sdk/react-native';Authentication
The SDK supports multiple authentication patterns:
Frontend Authentication
Best for SPAs and web applications:
await voice.auth.authenticateFrontend({
redirectUri: 'https://app.example.com/callback',
});Backend Authentication
For server-side applications:
const { authUrl } = await voice.auth.authenticateBackend({
branding: {
applicationName: 'My App',
applicationIcon: 'https://example.com/icon.png',
},
});
// Redirect user to authUrlService Account
For machine-to-machine communication:
await voice.auth.authenticateServiceAccount({
credentials: {
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
},
});Examples
Handle Connection States
conversation.on('stateChange', (state, previousState) => {
console.log(`State changed from ${previousState} to ${state}`);
});
conversation.on('error', (error) => {
console.error('Conversation error:', error);
});Monitor Connection Quality
conversation.on('qualityChange', (quality) => {
console.log(`Connection quality: ${quality.level} (${quality.score}/100)`);
});Mute/Unmute
// Mute the user's microphone
await conversation.muteUser();
// Mute the AI agent
await conversation.muteAgent();Development
# Install dependencies
pnpm install
# Run tests
pnpm test
# Build the SDK
pnpm build
# Run linting
pnpm lint
# Check for unused code
pnpm knipContributing
We welcome contributions! Please see our Contributing Guide for details.
License
MIT © Angany AI
Support
- 📧 Email: [email protected]
- 💬 Discord: Join our community
- 🐛 Issues: GitHub Issues
