음성.전송()
그만큼send()방법은 지속적인 처리를 위해 오디오 데이터를 실시간으로 음성 공급자에게 스트리밍합니다. 이 방법은 실시간 음성 대 음성 대화에 필수적이며 마이크 입력을 AI 서비스에 직접 보낼 수 있습니다.
사용예사용예에 대한 직접 링크
import { OpenAIRealtimeVoice } from '@mastra/voice-openai-realtime'
import Speaker from '@mastra/node-speaker'
import { getMicrophoneStream } from '@mastra/node-audio'
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-realtime',
apiKey: process.env.OPENAI_API_KEY,
},
})
// Connect to the real-time service
await voice.connect()
// Set up event listeners for responses
voice.on('writing', ({ text, role }) => {
console.log(`${role}: ${text}`)
})
voice.on('speaker', stream => {
stream.pipe(speaker)
})
// Get microphone stream (implementation depends on your environment)
const microphoneStream = getMicrophoneStream()
// Send audio data to the voice provider
await voice.send(microphoneStream)
// You can also send audio data as Int16Array
const audioBuffer = getAudioBuffer() // Assume this returns Int16Array
await voice.send(audioBuffer)
매개변수매개변수에 대한 직접 링크
audioData:
NodeJS.ReadableStream | Int16Array
음성 Provider로 보낼 오디오 데이터입니다. 읽기 가능한 스트림(예: 마이크 스트림)이나 오디오 샘플의 Int16Array일 수 있습니다.
반환 값반환 값에 대한 직접 링크
음성 Provider가 오디오 데이터를 수락하면 완료되는 Promise<void>를 반환합니다.
메모메모에 대한 직접 링크
- 이 메서드는 음성 간 통신 기능을 지원하는 실시간 음성 Provider에서만 구현됩니다.
- 이 기능을 지원하지 않는 음성 Provider에서 호출하면 경고를 기록하고 즉시 완료됩니다.
send()를 사용하기 전에 WebSocket 연결을 설정하기 위해connect()를 호출해야 합니다.- 오디오 형식 요구 사항은 특정 음성 Provider에 따라 다릅니다.
- 지속적인 대화를 위해 일반적으로
send()를 호출해 사용자 오디오를 전송한 다음answer()를 호출해 AI 응답을 트리거합니다. - Provider는 일반적으로 오디오를 처리할 때 전사된 텍스트와 함께 'writing' 이벤트를 방출합니다.
- AI가 응답하면 Provider는 오디오 응답과 함께 'speaking' 이벤트를 방출합니다.