voice.connect()
La méthode connect() établit une connexion WebSocket ou WebRTC pour une communication speech-to-speech en temps réel. Elle doit être appelée avant d'utiliser d'autres fonctionnalités en temps réel telles que send() ou answer().
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
import Speaker from '@mastra/node-speaker'
const speaker = new Speaker({
sampleRate: 24100, // Audio sample rate in Hz - standard for high-quality audio on MacBook Pro
channels: 1, // Mono audio output (as opposed to stereo which would be 2)
bitDepth: 16, // Bit depth for audio quality - CD quality standard (16-bit resolution)
})
// Initialize a real-time voice provider
const voice = new OpenAIRealtimeVoice({
realtimeConfig: {
model: 'gpt-5.1-realtime',
apiKey: process.env.OPENAI_API_KEY,
options: {
sessionConfig: {
turn_detection: {
type: 'server_vad',
threshold: 0.6,
silence_duration_ms: 1200,
},
},
},
},
speaker: 'alloy', // Default voice
})
// Connect to the real-time service
await voice.connect()
// Now you can use real-time features
voice.on('speaker', stream => {
stream.pipe(speaker)
})
// With connection options
await voice.connect({
timeout: 10000, // 10 seconds timeout
reconnect: true,
})
ParamètresLien direct vers Paramètres
options?:
Record<string, unknown>
Options de connexion propres au fournisseur
Valeur de retourLien direct vers Valeur de retour
Renvoie une Promise<void> qui se résout lorsque la connexion est correctement établie.
Options propres au fournisseurLien direct vers Options propres au fournisseur
Chaque fournisseur vocal en temps réel peut prendre en charge des options différentes pour la méthode connect() :
OpenAI RealtimeLien direct vers OpenAI Realtime
options?:
Options
Options de configuration.
Options
timeout?:
number
Délai d'expiration de la connexion en millisecondes
reconnect?:
boolean
Indique si la reconnexion doit être automatique en cas de perte de la connexion
Utilisation avec CompositeVoiceLien direct vers using-with-compositevoice
Lors de l'utilisation de CompositeVoice, la méthode connect() délègue l'opération au fournisseur en temps réel configuré :
import { CompositeVoice } from '@mastra/core/voice'
import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
const realtimeVoice = new OpenAIRealtimeVoice()
const voice = new CompositeVoice({
realtime: realtimeVoice,
})
// This will use the OpenAIRealtimeVoice provider
await voice.connect()
RemarquesLien direct vers Remarques
- Cette méthode est uniquement implémentée par les fournisseurs vocaux en temps réel compatibles avec les fonctionnalités speech-to-speech
- Si elle est appelée sur un fournisseur vocal qui ne prend pas en charge cette fonctionnalité, elle consigne un avertissement et se résout immédiatement
- La connexion doit être établie avant d'utiliser d'autres méthodes en temps réel telles que
send()ouanswer() - Lorsque vous n'avez plus besoin de l'instance Voice, appelez
close()afin de libérer correctement les ressources - Selon leur implémentation, certains fournisseurs peuvent se reconnecter automatiquement en cas de perte de la connexion
- Les erreurs de connexion sont généralement levées sous forme d'exceptions qui doivent être interceptées et traitées
Méthodes associéesLien direct vers Méthodes associées
- voice.send() : envoie des données audio au fournisseur vocal
- voice.answer() : demande au fournisseur vocal de répondre
- voice.close() : se déconnecte du service en temps réel
- voice.on() : enregistre un listener pour les événements Voice