in lib/client.js [194:230]
constructor({ url, apiKey, dangerouslyAllowAPIKeyInBrowser, debug } = {}) {
super();
this.defaultSessionConfig = {
modalities: ['text', 'audio'],
instructions: '',
voice: 'verse',
input_audio_format: 'pcm16',
output_audio_format: 'pcm16',
input_audio_transcription: null,
turn_detection: null,
tools: [],
tool_choice: 'auto',
temperature: 0.8,
max_response_output_tokens: 4096,
};
this.sessionConfig = {};
this.transcriptionModels = [
{
model: 'whisper-1',
},
];
this.defaultServerVadConfig = {
type: 'server_vad',
threshold: 0.5, // 0.0 to 1.0,
prefix_padding_ms: 300, // How much audio to include in the audio stream before the speech starts.
silence_duration_ms: 200, // How long to wait to mark the speech as stopped.
};
this.realtime = new RealtimeAPI({
url,
apiKey,
dangerouslyAllowAPIKeyInBrowser,
debug,
});
this.conversation = new RealtimeConversation();
this._resetConfig();
this._addAPIEventHandlers();
}