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 的潛在計費問題