Aller au contenu principal

voice.answer()

La méthode answer() est utilisée dans les fournisseurs Voice en temps réel pour déclencher la génération d’une réponse par l’IA. Elle est particulièrement utile dans les conversations vocales, où vous devez indiquer explicitement à l’IA de répondre après avoir reçu une entrée utilisateur.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
import { getMicrophoneStream } from '@mastra/node-audio'
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',
apiKey: process.env.OPENAI_API_KEY,
},
speaker: 'alloy', // Default voice
})
// Connect to the real-time service
await voice.connect()
// Register event listener for responses
voice.on('speaker', stream => {
// Handle audio response
stream.pipe(speaker)
})
// Send user audio input
const microphoneStream = getMicrophoneStream()
await voice.send(microphoneStream)
// Trigger the AI to respond
await voice.answer()

Paramètres
Lien direct vers Paramètres


options?:

Record<string, unknown>
Options de réponse propres au fournisseur

Valeur renvoyée
Lien direct vers Valeur renvoyée

Renvoie une Promise<void> qui se résout lorsque la réponse a été déclenchée.

Remarques
Lien direct vers Remarques

  • Cette méthode est uniquement implémentée par les fournisseurs Voice en temps réel prenant en charge les capacités vocales
  • Si elle est appelée sur un fournisseur Voice ne prenant pas en charge cette fonctionnalité, elle consigne un avertissement et se résout immédiatement
  • L’audio de réponse est généralement émis via l’événement 'speaking' plutôt que renvoyé directement
  • Pour les fournisseurs qui le prennent en charge, vous pouvez utiliser cette méthode afin d’envoyer une réponse spécifique au lieu de laisser l’IA en générer une
  • Cette méthode est couramment utilisée avec send() pour créer un flux conversationnel