dvgateway-adapters 1.7.1 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/realtime/openai-realtime.d.ts +41 -0
- package/dist/realtime/openai-realtime.d.ts.map +1 -1
- package/dist/realtime/openai-realtime.js +65 -2
- package/dist/realtime/openai-realtime.js.map +1 -1
- package/dist/realtime/openai-realtime.test.d.ts +2 -0
- package/dist/realtime/openai-realtime.test.d.ts.map +1 -0
- package/dist/realtime/openai-realtime.test.js +116 -0
- package/dist/realtime/openai-realtime.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -150,6 +150,25 @@ export interface OpenAIRealtimeAdapterOptions {
|
|
|
150
150
|
* Improves transcription accuracy for known languages.
|
|
151
151
|
*/
|
|
152
152
|
language?: string;
|
|
153
|
+
/**
|
|
154
|
+
* Source language for live translation (BCP-47, e.g. "ko").
|
|
155
|
+
*
|
|
156
|
+
* Only meaningful when `model` is `gpt-realtime-translate`. When both
|
|
157
|
+
* `inputLanguage` and `outputLanguage` are set and `instructions` is left
|
|
158
|
+
* at the default, the adapter synthesizes a translation system prompt
|
|
159
|
+
* ("translate from <in> to <out> faithfully…") so callers don't have to
|
|
160
|
+
* craft one. If `instructions` is provided explicitly, it wins.
|
|
161
|
+
*
|
|
162
|
+
* Has no effect with other realtime models — those treat the field as
|
|
163
|
+
* a no-op (still accepts free-form code so future translate-aware models
|
|
164
|
+
* work without an SDK bump).
|
|
165
|
+
*/
|
|
166
|
+
inputLanguage?: string;
|
|
167
|
+
/**
|
|
168
|
+
* Target language for live translation (BCP-47, e.g. "en").
|
|
169
|
+
* Pairs with `inputLanguage`. See `inputLanguage` for behavior.
|
|
170
|
+
*/
|
|
171
|
+
outputLanguage?: string;
|
|
153
172
|
/**
|
|
154
173
|
* Temperature for response generation (default: 0.8)
|
|
155
174
|
* Range: 0.6–1.2 (recommended for realtime)
|
|
@@ -198,6 +217,18 @@ export interface RealtimeSpeechAdapter {
|
|
|
198
217
|
/** Stop the session and release resources */
|
|
199
218
|
stop(linkedId?: string): Promise<void>;
|
|
200
219
|
}
|
|
220
|
+
export declare function languageName(code: string): string;
|
|
221
|
+
/**
|
|
222
|
+
* Build a translation system prompt for `gpt-realtime-translate`.
|
|
223
|
+
*
|
|
224
|
+
* Mirrors the structure recommended by OpenAI's Realtime translation guide:
|
|
225
|
+
* keep pace with the speaker, translate faithfully without commentary,
|
|
226
|
+
* preserve names and numbers, and only emit the translated speech.
|
|
227
|
+
*
|
|
228
|
+
* Exported so callers can preview / override the prompt without running a
|
|
229
|
+
* session, and so unit tests can assert on its structure.
|
|
230
|
+
*/
|
|
231
|
+
export declare function buildTranslateInstructions(inputLang: string, outputLang: string): string;
|
|
201
232
|
export declare class OpenAIRealtimeAdapter implements RealtimeSpeechAdapter {
|
|
202
233
|
private readonly opts;
|
|
203
234
|
private readonly tools;
|
|
@@ -248,6 +279,16 @@ export declare class OpenAIRealtimeAdapter implements RealtimeSpeechAdapter {
|
|
|
248
279
|
submitToolResult(linkedId: string, callId: string, result: unknown): void;
|
|
249
280
|
startSession(linkedId: string, audioIn: AsyncIterable<AudioChunk>): Promise<void>;
|
|
250
281
|
stop(linkedId?: string): Promise<void>;
|
|
282
|
+
/**
|
|
283
|
+
* Resolve the system instructions sent in `session.update`.
|
|
284
|
+
*
|
|
285
|
+
* For `gpt-realtime-translate` with both languages set and the caller
|
|
286
|
+
* leaving `instructions` at the SDK default, synthesize a translation
|
|
287
|
+
* prompt from the OpenAI Realtime translation guide. Otherwise return the
|
|
288
|
+
* caller's instructions verbatim — explicit caller instructions always
|
|
289
|
+
* win, including for the translate model.
|
|
290
|
+
*/
|
|
291
|
+
private resolveInstructions;
|
|
251
292
|
private connectRealtime;
|
|
252
293
|
private pipeAudioIn;
|
|
253
294
|
private handleServerEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-realtime.d.ts","sourceRoot":"","sources":["../../src/realtime/openai-realtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openai-realtime.d.ts","sourceRoot":"","sources":["../../src/realtime/openai-realtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,49 @@ const OPENAI_SAMPLE_RATE = 24000; // OpenAI Realtime uses 24kHz
|
|
|
53
53
|
const DV_SAMPLE_RATE = 16000; // DVGateway uses 16kHz
|
|
54
54
|
const INPUT_CHUNK_MS = 20; // 20ms audio frames
|
|
55
55
|
const INPUT_SAMPLES_24K = Math.round(OPENAI_SAMPLE_RATE * INPUT_CHUNK_MS / 1000); // 480 samples
|
|
56
|
+
const DEFAULT_INSTRUCTIONS = 'You are a helpful voice assistant. Keep answers concise and conversational.';
|
|
57
|
+
/** BCP-47 → human-readable name used in the translate prompt. */
|
|
58
|
+
const LANGUAGE_NAMES = {
|
|
59
|
+
ko: 'Korean',
|
|
60
|
+
en: 'English',
|
|
61
|
+
ja: 'Japanese',
|
|
62
|
+
zh: 'Chinese',
|
|
63
|
+
es: 'Spanish',
|
|
64
|
+
fr: 'French',
|
|
65
|
+
de: 'German',
|
|
66
|
+
it: 'Italian',
|
|
67
|
+
pt: 'Portuguese',
|
|
68
|
+
ru: 'Russian',
|
|
69
|
+
vi: 'Vietnamese',
|
|
70
|
+
id: 'Indonesian',
|
|
71
|
+
th: 'Thai',
|
|
72
|
+
};
|
|
73
|
+
export function languageName(code) {
|
|
74
|
+
if (!code)
|
|
75
|
+
return code;
|
|
76
|
+
return LANGUAGE_NAMES[code.toLowerCase()] ?? code;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Build a translation system prompt for `gpt-realtime-translate`.
|
|
80
|
+
*
|
|
81
|
+
* Mirrors the structure recommended by OpenAI's Realtime translation guide:
|
|
82
|
+
* keep pace with the speaker, translate faithfully without commentary,
|
|
83
|
+
* preserve names and numbers, and only emit the translated speech.
|
|
84
|
+
*
|
|
85
|
+
* Exported so callers can preview / override the prompt without running a
|
|
86
|
+
* session, and so unit tests can assert on its structure.
|
|
87
|
+
*/
|
|
88
|
+
export function buildTranslateInstructions(inputLang, outputLang) {
|
|
89
|
+
const inName = languageName(inputLang);
|
|
90
|
+
const outName = languageName(outputLang);
|
|
91
|
+
return [
|
|
92
|
+
`You are a real-time interpreter. Translate the speaker's ${inName} speech into ${outName} as it arrives.`,
|
|
93
|
+
`Speak only the ${outName} translation — do not echo the original, do not add commentary, do not greet, do not answer questions directed at the speaker.`,
|
|
94
|
+
'Preserve proper nouns, numbers, dates, units, and figures exactly.',
|
|
95
|
+
'Match the speaker\'s tone (formal vs. casual) and emotional register.',
|
|
96
|
+
'Keep pace with the speaker; favor short faithful renderings over long paraphrases.',
|
|
97
|
+
].join(' ');
|
|
98
|
+
}
|
|
56
99
|
export class OpenAIRealtimeAdapter {
|
|
57
100
|
opts;
|
|
58
101
|
tools;
|
|
@@ -71,11 +114,13 @@ export class OpenAIRealtimeAdapter {
|
|
|
71
114
|
this.opts = {
|
|
72
115
|
model: opts.model ?? 'gpt-4o-realtime-preview',
|
|
73
116
|
voice: opts.voice ?? 'alloy',
|
|
74
|
-
instructions: opts.instructions ??
|
|
117
|
+
instructions: opts.instructions ?? DEFAULT_INSTRUCTIONS,
|
|
75
118
|
turnDetection: opts.turnDetection ?? {},
|
|
76
119
|
inputTranscription: opts.inputTranscription ?? true,
|
|
77
120
|
inputTranscriptionModel: opts.inputTranscriptionModel ?? 'whisper-1',
|
|
78
121
|
language: opts.language ?? '',
|
|
122
|
+
inputLanguage: opts.inputLanguage ?? '',
|
|
123
|
+
outputLanguage: opts.outputLanguage ?? '',
|
|
79
124
|
temperature: opts.temperature ?? 0.8,
|
|
80
125
|
maxResponseTokens: opts.maxResponseTokens ?? 'inf',
|
|
81
126
|
apiKey: opts.apiKey,
|
|
@@ -152,7 +197,7 @@ export class OpenAIRealtimeAdapter {
|
|
|
152
197
|
const session = {
|
|
153
198
|
modalities: ['audio', 'text'],
|
|
154
199
|
voice: this.opts.voice,
|
|
155
|
-
instructions: this.
|
|
200
|
+
instructions: this.resolveInstructions(),
|
|
156
201
|
input_audio_format: 'pcm16',
|
|
157
202
|
output_audio_format: 'pcm16',
|
|
158
203
|
temperature: this.opts.temperature,
|
|
@@ -205,6 +250,24 @@ export class OpenAIRealtimeAdapter {
|
|
|
205
250
|
}
|
|
206
251
|
}
|
|
207
252
|
// ── Private helpers ─────────────────────────────────────────────────────
|
|
253
|
+
/**
|
|
254
|
+
* Resolve the system instructions sent in `session.update`.
|
|
255
|
+
*
|
|
256
|
+
* For `gpt-realtime-translate` with both languages set and the caller
|
|
257
|
+
* leaving `instructions` at the SDK default, synthesize a translation
|
|
258
|
+
* prompt from the OpenAI Realtime translation guide. Otherwise return the
|
|
259
|
+
* caller's instructions verbatim — explicit caller instructions always
|
|
260
|
+
* win, including for the translate model.
|
|
261
|
+
*/
|
|
262
|
+
resolveInstructions() {
|
|
263
|
+
const isTranslateModel = this.opts.model === 'gpt-realtime-translate';
|
|
264
|
+
const callerLeftDefault = this.opts.instructions === DEFAULT_INSTRUCTIONS;
|
|
265
|
+
const hasLangPair = !!this.opts.inputLanguage && !!this.opts.outputLanguage;
|
|
266
|
+
if (isTranslateModel && callerLeftDefault && hasLangPair) {
|
|
267
|
+
return buildTranslateInstructions(this.opts.inputLanguage, this.opts.outputLanguage);
|
|
268
|
+
}
|
|
269
|
+
return this.opts.instructions;
|
|
270
|
+
}
|
|
208
271
|
async connectRealtime(linkedId) {
|
|
209
272
|
const url = `${REALTIME_API_URL}?model=${encodeURIComponent(this.opts.model)}`;
|
|
210
273
|
const ws = new WebSocket(url, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-realtime.js","sourceRoot":"","sources":["../../src/realtime/openai-realtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai-realtime.js","sourceRoot":"","sources":["../../src/realtime/openai-realtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-realtime.test.d.ts","sourceRoot":"","sources":["../../src/realtime/openai-realtime.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for OpenAIRealtimeAdapter's translation prompt helpers and
|
|
3
|
+
* the resolveInstructions decision tree. These run without a live
|
|
4
|
+
* WebSocket — they exercise pure functions and constructor wiring.
|
|
5
|
+
*/
|
|
6
|
+
import { OpenAIRealtimeAdapter, buildTranslateInstructions, languageName, } from './openai-realtime.js';
|
|
7
|
+
describe('languageName', () => {
|
|
8
|
+
it('maps known BCP-47 codes to English names', () => {
|
|
9
|
+
expect(languageName('ko')).toBe('Korean');
|
|
10
|
+
expect(languageName('en')).toBe('English');
|
|
11
|
+
expect(languageName('ja')).toBe('Japanese');
|
|
12
|
+
expect(languageName('zh')).toBe('Chinese');
|
|
13
|
+
});
|
|
14
|
+
it('is case-insensitive on the BCP-47 code', () => {
|
|
15
|
+
expect(languageName('KO')).toBe('Korean');
|
|
16
|
+
expect(languageName('En')).toBe('English');
|
|
17
|
+
});
|
|
18
|
+
it('passes through unknown codes verbatim so future languages still work', () => {
|
|
19
|
+
expect(languageName('xx')).toBe('xx');
|
|
20
|
+
expect(languageName('ko-KR')).toBe('ko-KR');
|
|
21
|
+
});
|
|
22
|
+
it('returns empty string unchanged', () => {
|
|
23
|
+
expect(languageName('')).toBe('');
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe('buildTranslateInstructions', () => {
|
|
27
|
+
it('names both source and target languages in the prompt', () => {
|
|
28
|
+
const prompt = buildTranslateInstructions('ko', 'en');
|
|
29
|
+
expect(prompt).toContain('Korean');
|
|
30
|
+
expect(prompt).toContain('English');
|
|
31
|
+
});
|
|
32
|
+
it('tells the model to emit only the translation (no echo, no commentary)', () => {
|
|
33
|
+
const prompt = buildTranslateInstructions('ko', 'en');
|
|
34
|
+
expect(prompt).toMatch(/do not echo/i);
|
|
35
|
+
expect(prompt).toMatch(/do not add commentary/i);
|
|
36
|
+
});
|
|
37
|
+
it('tells the model to preserve proper nouns, numbers, units', () => {
|
|
38
|
+
const prompt = buildTranslateInstructions('en', 'ko');
|
|
39
|
+
expect(prompt).toMatch(/proper nouns/i);
|
|
40
|
+
expect(prompt).toMatch(/numbers/i);
|
|
41
|
+
});
|
|
42
|
+
it('tells the model to keep pace with the speaker', () => {
|
|
43
|
+
const prompt = buildTranslateInstructions('en', 'ja');
|
|
44
|
+
expect(prompt).toMatch(/keep pace/i);
|
|
45
|
+
});
|
|
46
|
+
it('uses raw codes when the language is not in the lookup table', () => {
|
|
47
|
+
const prompt = buildTranslateInstructions('xx', 'yy');
|
|
48
|
+
expect(prompt).toContain('xx');
|
|
49
|
+
expect(prompt).toContain('yy');
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe('OpenAIRealtimeAdapter — resolveInstructions decision tree', () => {
|
|
53
|
+
// We assert against the private `resolveInstructions` via a structural
|
|
54
|
+
// cast — mirroring the pattern used in gemini-live.test.ts for private
|
|
55
|
+
// adapter state. This keeps the surface area small (the helper stays
|
|
56
|
+
// private) while still letting tests pin the decision logic.
|
|
57
|
+
function call(adapter) {
|
|
58
|
+
const fn = adapter.resolveInstructions;
|
|
59
|
+
return fn.call(adapter);
|
|
60
|
+
}
|
|
61
|
+
it('returns SDK default instructions when no language pair, no override, default model', () => {
|
|
62
|
+
const adapter = new OpenAIRealtimeAdapter({ apiKey: 'k' });
|
|
63
|
+
expect(call(adapter)).toMatch(/helpful voice assistant/i);
|
|
64
|
+
});
|
|
65
|
+
it('returns caller-supplied instructions verbatim (default model)', () => {
|
|
66
|
+
const adapter = new OpenAIRealtimeAdapter({
|
|
67
|
+
apiKey: 'k',
|
|
68
|
+
instructions: 'You are Norman the friendly bilingual receptionist.',
|
|
69
|
+
});
|
|
70
|
+
expect(call(adapter)).toBe('You are Norman the friendly bilingual receptionist.');
|
|
71
|
+
});
|
|
72
|
+
it('synthesizes a translate prompt when model=translate + language pair + default instructions', () => {
|
|
73
|
+
const adapter = new OpenAIRealtimeAdapter({
|
|
74
|
+
apiKey: 'k',
|
|
75
|
+
model: 'gpt-realtime-translate',
|
|
76
|
+
inputLanguage: 'ko',
|
|
77
|
+
outputLanguage: 'en',
|
|
78
|
+
});
|
|
79
|
+
const out = call(adapter);
|
|
80
|
+
expect(out).toMatch(/real-time interpreter/i);
|
|
81
|
+
expect(out).toContain('Korean');
|
|
82
|
+
expect(out).toContain('English');
|
|
83
|
+
});
|
|
84
|
+
it('respects caller instructions even on the translate model', () => {
|
|
85
|
+
const adapter = new OpenAIRealtimeAdapter({
|
|
86
|
+
apiKey: 'k',
|
|
87
|
+
model: 'gpt-realtime-translate',
|
|
88
|
+
inputLanguage: 'ko',
|
|
89
|
+
outputLanguage: 'en',
|
|
90
|
+
instructions: 'Custom translator prompt with domain glossary.',
|
|
91
|
+
});
|
|
92
|
+
expect(call(adapter)).toBe('Custom translator prompt with domain glossary.');
|
|
93
|
+
});
|
|
94
|
+
it('does NOT auto-synthesize when only one language is set (incomplete pair)', () => {
|
|
95
|
+
const adapter = new OpenAIRealtimeAdapter({
|
|
96
|
+
apiKey: 'k',
|
|
97
|
+
model: 'gpt-realtime-translate',
|
|
98
|
+
inputLanguage: 'ko',
|
|
99
|
+
});
|
|
100
|
+
// Falls back to the SDK default — no half-baked translate prompt.
|
|
101
|
+
expect(call(adapter)).toMatch(/helpful voice assistant/i);
|
|
102
|
+
});
|
|
103
|
+
it('does NOT auto-synthesize when model is not the translate variant', () => {
|
|
104
|
+
const adapter = new OpenAIRealtimeAdapter({
|
|
105
|
+
apiKey: 'k',
|
|
106
|
+
model: 'gpt-realtime-2',
|
|
107
|
+
inputLanguage: 'ko',
|
|
108
|
+
outputLanguage: 'en',
|
|
109
|
+
});
|
|
110
|
+
// gpt-realtime-2 is a conversational model — translation prompt
|
|
111
|
+
// would just confuse it. Keep the SDK default unless the caller
|
|
112
|
+
// crafts their own prompt.
|
|
113
|
+
expect(call(adapter)).toMatch(/helpful voice assistant/i);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=openai-realtime.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-realtime.test.js","sourceRoot":"","sources":["../../src/realtime/openai-realtime.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED