Aller au contenu principal

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'utilisation
Lien 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ètres
Lien direct vers Paramètres

options?:

Record<string, unknown>
Options de connexion propres au fournisseur

Valeur de retour
Lien direct vers Valeur de retour

Renvoie une Promise<void> qui se résout lorsque la connexion est correctement établie.

Options propres au fournisseur
Lien 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 Realtime
Lien 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 CompositeVoice
Lien 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()

Remarques
Lien 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() ou answer()
  • 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