Installation
Install Micdrop client package for browser-based voice conversations.
Package Installation
npm install @micdrop/clientThatβs it! No additional configuration or dependencies needed.
Framework Integration
Vanilla JavaScript/TypeScript
import { Micdrop } from '@micdrop/client'
// Start a voice conversationawait Micdrop.start({ url: 'ws://localhost:8081', vad: ['volume', 'silero'],})
// Listen for state changesMicdrop.on('StateChange', (state) => { console.log('Listening:', state.isListening) console.log('Processing:', state.isProcessing) console.log('Assistant speaking:', state.isAssistantSpeaking)})
// Stop the conversationawait Micdrop.stop()React
For React applications, also install the React hooks package:
npm install @micdrop/reactimport { Micdrop } from '@micdrop/client'import { useMicdropState } from '@micdrop/react'
function VoiceChat() { const state = useMicdropState() const handleStart = () => Micdrop.start({ url: 'ws://localhost:8081/' }) const handleStop = () => Micdrop.stop()
return ( <div> <button onClick={handleStart}>Start</button> <button onClick={handleStop}>Stop</button> {state.isListening && <p>π€ Listening...</p>} {state.isProcessing && <p>π€ Processing...</p>} {state.isAssistantSpeaking && <p>π Assistant speaking...</p>} </div> )}Learn more about Micdrop React hooks.
Vue.js
<template> <div> <button @click="startCall">Start Call</button> <button @click="stopCall">Stop Call</button> </div></template>
<script> import { Micdrop } from '@micdrop/client'
export default { methods: { async startCall() { await Micdrop.start({ url: 'ws://localhost:8081/', }) }, async stopCall() { await Micdrop.stop() }, }, }</script>Angular
import { Component } from '@angular/core'import { Micdrop } from '@micdrop/client'
@Component({ selector: 'app-voice-chat', template: ` <button (click)="startCall()">Start Call</button> <button (click)="stopCall()">Stop Call</button> `,})export class VoiceChatComponent { async startCall() { await Micdrop.start({ url: 'ws://localhost:8081/', }) }
async stopCall() { await Micdrop.stop() }}CDN Usage
For quick prototyping or simple HTML pages:
<script type="module"> import { Micdrop } from 'https://unpkg.com/@micdrop/client@latest/dist/index.js'
await Micdrop.start({ url: 'ws://localhost:8081/', })</script>