> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goenhance.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cadence Voice Cover

> Convert the vocals of a song to the voice in a short reference clip. The melody, lyrics and accompaniment stay the same: the lead vocal is separated, converted to the reference voice, and mixed back with the original accompaniment.

- `reference_audio_url`: at least 3 seconds of one clear voice; 5 to 25 seconds of dry vocal (no music, little reverb) works best. Longer clips are cut to about 25 seconds at a pause.
- `pitch_shift` moves only the vocal by whole semitones: use `-12` when a song sung by a female voice is converted to a male voice, `12` for the reverse. Shifts other than whole octaves may clash with the accompaniment.
- The result is as long as the original song, which is also the billed length.
- Only use voices you own or have permission to use.

**Pricing**: 0.02 tokens ($0.0004) per second of audio, rounded up to the whole second.

| Option | Tokens | USD |
|---|---|---|
| Per second of audio | 0.02 | $0.0004 |

**Result**: one `json` item `{ "type": "audio", "value": "https://...mp3" }` (a `.wav` link when `output_format` is `wav`), 48 kHz stereo. Result links expire (see `link_expired_at`).



## OpenAPI

````yaml api-reference/audio-generations/openapi-cadence-voice-cover.json POST /api/v1/audio/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Cadence Voice Cover
  description: Make a song sound like it is sung by another voice.
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/audio/generations:
    post:
      tags:
        - AudioGenerations
      summary: Cadence Voice Cover
      description: >-
        Convert the vocals of a song to the voice in a short reference clip. The
        melody, lyrics and accompaniment stay the same: the lead vocal is
        separated, converted to the reference voice, and mixed back with the
        original accompaniment.


        - `reference_audio_url`: at least 3 seconds of one clear voice; 5 to 25
        seconds of dry vocal (no music, little reverb) works best. Longer clips
        are cut to about 25 seconds at a pause.

        - `pitch_shift` moves only the vocal by whole semitones: use `-12` when
        a song sung by a female voice is converted to a male voice, `12` for the
        reverse. Shifts other than whole octaves may clash with the
        accompaniment.

        - The result is as long as the original song, which is also the billed
        length.

        - Only use voices you own or have permission to use.


        **Pricing**: 0.02 tokens ($0.0004) per second of audio, rounded up to
        the whole second.


        | Option | Tokens | USD |

        |---|---|---|

        | Per second of audio | 0.02 | $0.0004 |


        **Result**: one `json` item `{ "type": "audio", "value":
        "https://...mp3" }` (a `.wav` link when `output_format` is `wav`), 48
        kHz stereo. Result links expire (see `link_expired_at`).
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - cadence-voice-cover
                  description: Model name. Must be `cadence-voice-cover`.
                audio_url:
                  type: string
                  format: uri
                  description: >-
                    The original song. A public `https://` link to an audio file
                    (mp3, m4a, wav, flac, ogg; a video link uses its audio
                    track), 5 to 360 seconds, up to 20 MB. mp3 or m4a is
                    recommended: a full 6-minute song fits, while wav over about
                    1 minute 50 seconds or flac over about 3.5 minutes exceeds
                    the limit. Its length is measured before the task is
                    accepted and is the billed length.
                reference_audio_url:
                  type: string
                  format: uri
                  description: >-
                    The target voice. A public `https://` link to an audio file,
                    at least 3 seconds of one clear voice, up to 20 MB.
                pitch_shift:
                  type: integer
                  minimum: -12
                  maximum: 12
                  default: 0
                  description: >-
                    Optional. Shift the converted vocal by this many semitones,
                    -12 to 12. Accompaniment is not shifted.
                output_format:
                  type: string
                  enum:
                    - mp3
                    - wav
                  default: mp3
                  description: '`mp3` (320 kbps, default) or `wav` (16-bit). 48 kHz stereo.'
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
                - audio_url
                - reference_audio_url
            example:
              model: cadence-voice-cover
              audio_url: https://example.com/original-song.mp3
              reference_audio_url: https://example.com/my-voice.wav
              pitch_shift: -12
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                      cost:
                        type: number
                        description: >-
                          Tokens deducted for this request. This is the amount
                          actually charged, so it already reflects any discount
                          active on your account and can be lower than the
                          listed price. Tokens are deducted when the task is
                          accepted, and refunded automatically if the generation
                          ends in failure.
                        example: 0.86
                    required:
                      - img_uuid
                      - cost
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                      cost: 0.86
                '2':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
                quota:
                  summary: API key quota exceeded
                  value:
                    code: 101
                    msg: 'API key quota exceeded: 4990 of 5000 tokens used (monthly)'
                bad:
                  summary: Invalid parameters
                  value:
                    code: -1
                    msg: >-
                      reference_audio_url is too short. It needs at least 3
                      seconds of clear voice
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
          headers: {}
      deprecated: false

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.