Vocu Developers
🇺🇸 English
  • 🇺🇸 English
  • 🇨🇳 简体中文
Api Docs(Current)
User GuideBack To APP
Api Docs(Current)
User GuideBack To APP
🇺🇸 English
  • 🇺🇸 English
  • 🇨🇳 简体中文
🇺🇸 English
  • 🇺🇸 English
  • 🇨🇳 简体中文
  1. Voice Design
  • Overview
  • Authentication Method
  • Voice Character
    • Create a new voice character
      POST
    • Get the list of voice characters for the current user
      GET
    • Add a style to the voice character with the specified ID
      POST
    • Upload avatar for the voice character with the specified ID
      POST
    • Add a voice character to the account via a share ID
      POST
    • Get details of the voice character with the specified ID
      GET
    • Delete Voice Character with the specified ID
      DELETE
    • Get the one-time share link ID for the specified voice character ID
      GET
    • Delete Style of the specified ID for the Voice Character with the specified ID
      DELETE
    • Generate a voice-character preview clip
      POST
    • Update a voice character's name and description
      POST
    • Inspect and backfill missing voice-character fields
      POST
    • Get the transcription of a style's reference audio
      GET
    • Correct the transcription of a style's reference audio
      POST
    • Set a style as the default style
      POST
    • Update a style's name and description
      POST
    • Reset a style and reprocess its reference audio
      POST
    • Re-upload professional-cloning artifacts
      POST
    • Trigger automatic re-upload of professional-cloning artifacts
      POST
    • Migrate a voice character to v2.0
      POST
    • Migrate a voice character to v3.0
      POST
    • Start voice-character identity verification
      POST
    • Check voice-character identity-verification result
      POST
  • Voice Generation
    • Synchronous real-time voice generation
    • Create Asynchronous Voice Generation Task
    • Get the list of asynchronous generation tasks for the current user
    • Get the details of an asynchronous generation task by ID
    • Delete an asynchronous generation task by ID
    • Upload audio for voice conversion
    • Stream the full generated audio
    • Stream audio for a single content
    • Get the streaming playback URL for a whole generation task
    • List splitter configurations
    • Create a splitter configuration
    • Get splitter configuration details
    • Update a splitter configuration (diff mode)
    • Delete a splitter configuration
    • One-shot synthesis returning an MP3 stream directly
    • List synthesis parameter presets
    • Fetch a synthesized audio stream
    • Get SRT subtitles for synthesized audio
  • User Account
    • Get current user account information
  • Content Template
    • Create New Template
    • Get User's Template List
    • Update Template with Specified ID
    • Get Template Details with Specified ID
    • Delete Template with Specified ID
  • Real-time Synthesis
    • Create a Turbo real-time synthesis channel
    • List Turbo channels for the current user
    • Close a Turbo channel
  • Voice Design
    • Generate a voice preview from a text description
      POST
    • Generate a voice preview by remixing / translating existing audio
      POST
    • Confirm a voice design and create a voice character
      POST
    • Query voice-design quota
      GET
  1. Voice Design

Confirm a voice design and create a voice character

POST
https://v1.vocu.studio/api/voice/design/confirm
Persist a design / remix session as a real voice character: download the session's preview audio, run the full voice-creation flow at the specified model version, persist, then delete the session.
modelVersion defaults to v3.0 (consistent with POST /api/voice); v4.0 is a strict opt-in.
The value must be one of v2.0 / v3.0 / v4.0, otherwise VOICE_MODEL_VERSION_INVALID (modules/voiceVersion.js:26).
v4.0 capability envelope: no professional cloning / voice cover / test voices; instruct generate path only.
If such a voice is missing its upstream binding, the generate side reports VOICE_INSTRUCT_PATH_ONLY (modules/voiceVersion.js:61-68).
Language is taken from the session itself (the language resolved at design time); this endpoint does not accept a language parameter.

Session one-shot#

Session TTL is 1 hour; expired, missing, not owned by the current user, or already confirmed, all return 404 VOICE_DESIGN_SESSION_EXPIRED.

Error-code collapse (important)#

Every exception after parameter validation — audio download failure, content-safety block, insufficient quota, upstream character-creation failure —
is uniformly collapsed to 500 SYSTEM_INTERNAL_ERROR (routes/voice/design.js:437-443).
This endpoint will not return SAFETY_* or BILLING_* series error codes; the client cannot learn the concrete failure reason from the response
and must use the X-Vocu-App-Request-Id response header to have the backend investigate.
This endpoint has a single path; there is no /api/tts/voice/... compatibility alias.

Error responses take the shape { status, code, message, requestId? }. code is always the parent code — sub codes only change message and never appear in the body. requestId is present only on reportable-tier errors, so use the X-Vocu-App-Request-Id response header when troubleshooting (it is written unconditionally on every response). See the "Errors" document for the full code reference.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://v1.vocu.studio/api/voice/design/confirm' \
--header 'Authorization: Bearer <token>'

Responses

🟢200成功
application/json
创建成功,返回新建的完整语音角色对象
Bodyapplication/json

Example
{
    "status": 200,
    "data": {
        "id": "e04b7a58-2c91-4f63-8d17-9b5ac6f21e80",
        "name": "成熟男声",
        "status": "pending",
        "from": "upload",
        "version": "v3.0",
        "originId": null,
        "userId": "2f81b40c-9d63-4e17-a5b8-31c7d0e926af",
        "avatar": "https://storage.vocu.ai/avatar/voice/2f81b40c-9d63-4e17-a5b8-31c7d0e926af/7c3d9a12-5e84-4b06-9f21-8ad3e6b40c57.png",
        "createdAt": "2026-07-14T06:22:08.000Z",
        "updatedAt": "2026-08-19T11:04:37.000Z",
        "deletedAt": null,
        "metadata": {
            "description": "三十岁左右的成熟男声,语速偏慢",
            "avatar": "https://storage.vocu.ai/avatar/voice/2f81b40c-9d63-4e17-a5b8-31c7d0e926af/7c3d9a12-5e84-4b06-9f21-8ad3e6b40c57.png",
            "prompts": [
                {
                    "id": "default",
                    "name": "默认",
                    "description": "平稳叙述",
                    "enhance": true,
                    "language": "zh",
                    "flags": [
                        "20250227-vcb",
                        "v3:20250828-vfa"
                    ],
                    "playBackAudio": "https://storage.vocu.ai/prompt/2f81b40c-9d63-4e17-a5b8-31c7d0e926af/default-playback.mp3",
                    "promptOriginAudioStorageUrl": "https://storage.vocu.ai/prompt/2f81b40c-9d63-4e17-a5b8-31c7d0e926af/default-origin.wav",
                    "baseSpeechRate": 4.6,
                    "voiceDesign": {
                        "instruct": "三十岁左右的成熟男声,语速偏慢,带一点沙哑",
                        "text": "你好,很高兴认识你,希望我们合作愉快。"
                    }
                }
            ]
        }
    }
}
🟠400请求有误
🟠401没有权限
🟠404记录不存在
🟠429
🔴500服务器错误
Modified at 2026-08-23 01:11:55
Previous
Generate a voice preview by remixing / translating existing audio
Next
Query voice-design quota