// Example client that can connect to the WebSocket STT API const WebSocket = require('ws'); const fs = require('fs'); class STTClient { constructor(serverUrl = 'ws://localhost:3000') { this.ws = new WebSocket(serverUrl); this.setupWebSocket(); } setupWebSocket() { this.ws.on('open', () => { console.log('Connected to STT server'); }); this.ws.on('message', (data) => { const message = JSON.parse(data); if (message.type === 'transcription') { console.log('Transcription:', message.text); } else if (message.type === 'error') { console.error('STT Error:', message.message); } }); this.ws.on('close', () => { console.log('Disconnected from STT server'); }); this.ws.on('error', (error) => { console.error('WebSocket error:', error); }); } // Send audio file for transcription sendAudioFile(filePath) { if (this.ws.readyState === WebSocket.OPEN) { const audioData = fs.readFileSync(filePath); this.ws.send(audioData); console.log(`Sent audio file: ${filePath}`); } else { console.error('WebSocket not connected'); } } // Send raw audio buffer sendAudioBuffer(audioBuffer) { if (this.ws.readyState === WebSocket.OPEN) { this.ws.send(audioBuffer); } else { console.error('WebSocket not connected'); } } close() { this.ws.close(); } } // Example usage if (require.main === module) { const client = new STTClient(); // Example: Send an audio file // client.sendAudioFile('./test-audio.wav'); // Keep the process alive process.stdin.resume(); } module.exports = STTClient;