跳至主要內容

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()
  • 此方法主要用於維持持續連線的實時 voice provider
  • 如在不支援實時連線的 voice provider 上呼叫此方法,系統會記錄警告,而不會執行任何操作
  • 未有關閉連線可能會導致資源洩漏,亦可能產生 voice service provider 的收費問題