Coze Setup
Install FishAudio text-to-speech and image/video lip-sync plugins in Coze, or generate a lip-synced video directly from text.
Use FishAudio in Coze
FishAudio provides two plugins in the Coze plugin store. Installing the plugins is the recommended setup; use the advanced HTTP configuration only when you need a custom request.
| Plugin | Purpose | Install |
|---|---|---|
| FishAudio TTS 文字转语音 | Convert text to speech and return an audio URL | Open in Coze |
| FishAudio 图片/视频对口型 | Create an asynchronous lip-sync job from video and audio URLs | Open in Coze |
Prepare an API key
- Create a dedicated Coze key on the Kitta AI API management page.
- Check that your API credit balance is sufficient.
- Pass the key to plugin tools in this format:
Authorization: Bearer YOUR_FISH_AUDIO_API_KEYThere must be one space after Bearer. Both plugins use the customer's own API key, and usage is charged to that Kitta AI account.
Create a private plugin
If you do not want to install the store plugins, download and import these files:
- FishAudio TTS OpenAPI
- FishAudio Media Sync OpenAPI
- FishAudio Text-to-Lip-Sync OpenAPI
- Customer-specific Personal Voice Synthesis OpenAPI
- English import guide
- Package manifest
In Coze, create a cloud plugin from an existing service and import the relevant YAML. Select no authorization; the customer supplies their own Authorization at runtime. The files contain no real API key.
Text-to-Lip-Sync uses the same combined API as the website Video Dubbing workbench: provide a video URL, text, and an existing voice ID; the service generates TTS audio and then creates the lip-sync job automatically. Personal Voice Synthesis remains a customer-specific private plugin and is not a store candidate.
Use FishAudio TTS 文字转语音
- Open FishAudio TTS and add it to your Coze workspace.
- Add the FishAudio TTS tool to an agent or workflow.
- Enter
Authorization, the input text, a Voice ID, and any optional controls. - Run the tool and connect the returned
audio_urlto playback, download, or the Media Sync plugin.
Use a short sentence for the first test. The Voice ID must be a valid system voice or a custom voice available to the current Kitta AI account.
Use FishAudio 图片/视频对口型
Open FishAudio 图片/视频对口型 and add it to your workspace. The plugin provides two tools:
| Tool | Purpose |
|---|---|
create_media_sync | Create an asynchronous job from publicly downloadable video and audio URLs |
get_media_sync_job | Query progress, the result, or failure details with the returned jobId |
Create a job
Main create_media_sync inputs:
| Parameter | Description |
|---|---|
Authorization | Bearer followed by a Kitta AI API key |
video_url | A video URL the Kitta AI service can download directly |
audio_url | A downloadable audio URL, including an audio_url returned by TTS |
Save data.id from the create response and use it as jobId for subsequent queries. Creating a job consumes API credits.
Query a job
Pass the same Authorization and the original jobId to get_media_sync_job:
processing: wait and query the samejobIdagain.completed: readdata.result_url.failed: readdata.error_message.
Do not call create_media_sync again just because a query times out or the job is still processing. Doing so may create and charge for a duplicate job.
Use FishAudio 文字对口型
Text-to-Lip-Sync combines TTS and lip sync in one create tool:
Video URL + text + Voice ID + Idempotency-Key
↓
create_text_lip_sync
↓ data.id
Save jobId → wait → get_text_lip_sync_job
↓
completed: output data.result_url
failed: output data.error_messageUse a new Idempotency-Key for every new job; reuse the original value only when retrying the exact same request. Start with a 15–30 second wait before the query node. If you automate polling, set a maximum number of queries and a total timeout.
Media URL requirements
Video and audio URLs must be directly downloadable by the Kitta AI service. Web page URLs, local file paths, and expired signed URLs cannot be used.
For temporary URLs generated from Coze uploads, make sure the URL remains valid while the job is created and Kitta AI downloads the media. Download or transfer completed results promptly.
API key and log safety
Authorization is a normal tool input and may appear in Coze conversations, debug records, or runtime logs. Recommended practices:
- Create a separate API key for Coze.
- Do not share screenshots or workflow templates containing a real key.
- Rotate or revoke demonstration and test keys when they are no longer needed.
- Each customer should use their own key; never embed a shared key in a public plugin.
Troubleshooting
- 401: confirm the value starts with
Bearer, contains no extra spaces, and has not been revoked. - 402: check API credits; membership and API credits are separate balances.
- Media download failed: verify that the URL is directly accessible and its signature lasts long enough.
- Job remains processing: continue querying the same
jobId; do not create another job. - No audio_url or result_url: read the returned
dataobject and check the task status. - A key appears in Coze records: revoke it and create a new dedicated Coze key.
Advanced: call the TTS HTTP API directly
Without the store plugin, use a Coze HTTP request node:
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://kittaai.com/v1/audio/speech |
| Header | Authorization: Bearer YOUR_FISH_AUDIO_API_KEY |
| Header | Content-Type: application/json |
{
"model": "fishaudio-s21pro-flash",
"voice": "YOUR_VOICE_ID",
"input": "{{text}}",
"response_format": "mp3"
}Configure the response as a file or binary value instead of JSON.