openclaw/src/tts/provider-types.ts

56 lines
1.2 KiB
TypeScript

import type { OpenClawConfig } from "../config/config.js";
import type { ResolvedTtsConfig, TtsDirectiveOverrides } from "./tts.js";
export type SpeechProviderId = string;
export type SpeechSynthesisTarget = "audio-file" | "voice-note";
export type SpeechProviderConfiguredContext = {
cfg?: OpenClawConfig;
config: ResolvedTtsConfig;
};
export type SpeechSynthesisRequest = {
text: string;
cfg: OpenClawConfig;
config: ResolvedTtsConfig;
target: SpeechSynthesisTarget;
overrides?: TtsDirectiveOverrides;
};
export type SpeechSynthesisResult = {
audioBuffer: Buffer;
outputFormat: string;
fileExtension: string;
voiceCompatible: boolean;
};
export type SpeechTelephonySynthesisRequest = {
text: string;
cfg: OpenClawConfig;
config: ResolvedTtsConfig;
};
export type SpeechTelephonySynthesisResult = {
audioBuffer: Buffer;
outputFormat: string;
sampleRate: number;
};
export type SpeechVoiceOption = {
id: string;
name?: string;
category?: string;
description?: string;
locale?: string;
gender?: string;
personalities?: string[];
};
export type SpeechListVoicesRequest = {
cfg?: OpenClawConfig;
config?: ResolvedTtsConfig;
apiKey?: string;
baseUrl?: string;
};