Install
openclaw skills install @runapi-ai/runapi-fish-audioGenerate MP3 speech with Fish Audio through RunAPI. Use for one-off speech generation or application integration. Prefer the RunAPI CLI for one-off requests and the target-language SDK for production integration.
openclaw skills install @runapi-ai/runapi-fish-audioGenerate synchronous MP3 speech with s1 or s2-pro. Use the target-language SDK for application integration and the runapi CLI for one-off speech generation or manual verification.
runapi binary. For full CLI-specific agent guidance, see https://github.com/runapi-ai/cli-skill.runapi CLI as the production runtime integration layer.When integrating Fish Audio into an application or production workflow, check the current SDK package and official usage. Confirm the install command, synchronous run method, request fields, managed audio response, and error classes before using CLI help or raw HTTP examples. Use a RunAPI SDK package:
@runapi.ai/fish-audiorunapi-fish-audiorunapi-fish-audiogithub.com/runapi-ai/fish-audio-sdk/goai.runapi:runapi-fish-audiorunapi-ai/fish-audioThe synchronous text_to_speech resource accepts model, text, and optional request-scoped references. Each reference requires base64-encoded raw audio bytes in audio and its exact transcript in text. The resource returns a completed response with RunAPI-managed audios.
The runapi binary is the one-off and manual testing runtime dependency. For full CLI-specific agent guidance, see https://github.com/runapi-ai/cli-skill. Run runapi auth status first. Prefer RUNAPI_API_KEY or import a token with printf '%s' "$RUNAPI_API_KEY" | runapi auth import-token --token -.
Inspect current fields before creating a request:
runapi fish-audio --help
runapi fish-audio text-to-speech --help
runapi fish-audio text-to-speech --input-file request.json
The request file contains model, text, and optional references entries with audio and text. references applies only to that request; reusable reference_id values are not supported. The command returns one completed response, so do not add --async or call runapi wait.
The response contains id, status, and one audios entry with url, format, mime_type, and size_bytes. The URL points to RunAPI-managed storage. Keep API keys in RUNAPI_API_KEY or saved RunAPI config.