mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 05:51:15 +08:00
fix: validate openai realtime transcription vad
This commit is contained in:
@@ -179,6 +179,24 @@ describe("buildOpenAIRealtimeTranscriptionProvider", () => {
|
||||
expect(resolved?.vadThreshold).toBe(0);
|
||||
});
|
||||
|
||||
it("drops malformed VAD timing settings", () => {
|
||||
const provider = buildOpenAIRealtimeTranscriptionProvider();
|
||||
const resolved = provider.resolveConfig?.({
|
||||
cfg: {} as never,
|
||||
rawConfig: {
|
||||
providers: {
|
||||
openai: {
|
||||
silenceDurationMs: -1,
|
||||
vadThreshold: 1.5,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
expect(resolved?.silenceDurationMs).toBeUndefined();
|
||||
expect(resolved?.vadThreshold).toBeUndefined();
|
||||
});
|
||||
|
||||
it("accepts the legacy openai-realtime alias", () => {
|
||||
const provider = buildOpenAIRealtimeTranscriptionProvider();
|
||||
expect(provider.aliases).toContain("openai-realtime");
|
||||
|
||||
@@ -110,11 +110,27 @@ function normalizeProviderConfig(
|
||||
language: trimToUndefined(raw?.language),
|
||||
model: trimToUndefined(raw?.model) ?? trimToUndefined(raw?.sttModel),
|
||||
prompt: trimToUndefined(raw?.prompt),
|
||||
silenceDurationMs: asFiniteNumber(raw?.silenceDurationMs),
|
||||
vadThreshold: asFiniteNumber(raw?.vadThreshold),
|
||||
silenceDurationMs: normalizeNonNegativeInteger(raw?.silenceDurationMs),
|
||||
vadThreshold: normalizeVadThreshold(raw?.vadThreshold),
|
||||
};
|
||||
}
|
||||
|
||||
function normalizeNonNegativeInteger(value: unknown): number | undefined {
|
||||
const number = asFiniteNumber(value);
|
||||
if (number === undefined || !Number.isSafeInteger(number) || number < 0) {
|
||||
return undefined;
|
||||
}
|
||||
return number;
|
||||
}
|
||||
|
||||
function normalizeVadThreshold(value: unknown): number | undefined {
|
||||
const number = asFiniteNumber(value);
|
||||
if (number === undefined || number < 0 || number > 1) {
|
||||
return undefined;
|
||||
}
|
||||
return number;
|
||||
}
|
||||
|
||||
function buildOpenAIRealtimeTranscriptionSessionCreateConfig(
|
||||
config: OpenAIRealtimeTranscriptionSessionConfig,
|
||||
): OpenAIRealtimeTranscriptionSessionCreate {
|
||||
|
||||
Reference in New Issue
Block a user