- index.ts: plugin entry with definePluginEntry + registerSpeechProvider - speech-provider.ts: full SpeechProviderPlugin implementation - resolveConfig from messages.tts.providers.fish-audio - parseDirectiveToken for voice, model, speed, latency, temperature, top_p - listVoices merging official + user's own voices - synthesize with format-aware output (opus for voice-note, mp3 otherwise) - stub Talk Mode (resolveTalkConfig/resolveTalkOverrides) - tts.ts: raw fishAudioTTS() fetch + listFishAudioVoices() - streaming chunked → buffer, error body included in exceptions - parallel voice listing with graceful partial failure - speech-provider.test.ts: voice ID validation tests - openclaw.plugin.json: speechProviders contract - package.json: peer dep on openclaw >=2026.3.0
12 lines
377 B
TypeScript
12 lines
377 B
TypeScript
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
import { buildFishAudioSpeechProvider } from "./speech-provider.js";
|
|
|
|
export default definePluginEntry({
|
|
id: "fish-audio",
|
|
name: "Fish Audio Speech",
|
|
description: "Fish Audio TTS speech provider for OpenClaw",
|
|
register(api) {
|
|
api.registerSpeechProvider(buildFishAudioSpeechProvider());
|
|
},
|
|
});
|