Skip to Content
リファレンス音声リファレンス: voice.connect() | 音声プロバイダー | Mastra Docs

voice.connect()

connect() メソッドは、リアルタイムの音声対音声通信のためのWebSocketまたはWebRTC接続を確立します。このメソッドは、send()answer()などの他のリアルタイム機能を使用する前に呼び出す必要があります。

使用例

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-4o-mini-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, });

パラメータ

options?:

Record<string, unknown>
プロバイダー固有の接続オプション

戻り値

接続が正常に確立されると解決するPromise<void>を返します。

プロバイダー固有のオプション

各リアルタイム音声プロバイダーは、connect()メソッドに対して異なるオプションをサポートしている場合があります:

OpenAI リアルタイム

options.timeout?:

number
= 30000
接続タイムアウト(ミリ秒)

options.reconnect?:

boolean
= false
接続が切れた場合に自動的に再接続するかどうか

CompositeVoiceでの使用

CompositeVoiceを使用する場合、connect()メソッドは設定されたリアルタイムプロバイダーに委譲されます:

import { CompositeVoice } from "@mastra/core/voice"; import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime"; const realtimeVoice = new OpenAIRealtimeVoice(); const voice = new CompositeVoice({ realtimeProvider: realtimeVoice, }); // これはOpenAIRealtimeVoiceプロバイダーを使用します await voice.connect();

注意事項

  • このメソッドは、音声対音声機能をサポートするリアルタイム音声プロバイダーでのみ実装されています
  • この機能をサポートしていない音声プロバイダーで呼び出された場合、警告をログに記録して即座に解決します
  • send()answer() などの他のリアルタイムメソッドを使用する前に、接続を確立する必要があります
  • 音声インスタンスの使用が終わったら、リソースを適切にクリーンアップするために close() を呼び出してください
  • 一部のプロバイダーは、その実装によって、接続が失われた場合に自動的に再接続することがあります
  • 接続エラーは通常、キャッチして処理すべき例外としてスローされます

関連メソッド

  • voice.send() - 音声データを音声プロバイダーに送信します
  • voice.answer() - 音声プロバイダーに応答を促します
  • voice.close() - リアルタイムサービスから切断します
  • voice.on() - 音声イベントのイベントリスナーを登録します