跳至主要內容

voice.close()

close() 方法會中斷與即時語音服務的連線,並清理資源。這對妥善結束語音工作階段及避免資源洩漏相當重要。

用法範例
「用法範例」的直接連結

import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
import { getMicrophoneStream } from '@mastra/node-audio'

// Initialize a real-time voice provider
const voice = new OpenAIRealtimeVoice({
realtimeConfig: {
model: 'gpt-5.1-realtime',
apiKey: process.env.OPENAI_API_KEY,
},
})

// Connect to the real-time service
await voice.connect()

// Start a conversation
voice.speak("Hello, I'm your AI assistant!")

// Stream audio from a microphone
const microphoneStream = getMicrophoneStream()
voice.send(microphoneStream)

// When the conversation is complete
setTimeout(() => {
// Close the connection and clean up resources
voice.close()
console.log('Voice session ended')
}, 60000) // End after 1 minute

參數
「參數」的直接連結

此方法不接受任何參數。

回傳值
「回傳值」的直接連結

此方法不會回傳值。

注意事項
「注意事項」的直接連結

  • 完成即時語音工作階段後,請務必呼叫 close() 以釋放資源
  • 呼叫 close() 後,若要開始新的工作階段,必須再次呼叫 connect()
  • 此方法主要用於維持持續連線的即時語音 Provider
  • 若對不支援即時連線的語音 Provider 呼叫此方法,系統會記錄警告且不執行任何操作
  • 未關閉連線可能會導致資源洩漏,以及語音服務 Provider 的潛在計費問題