# CAMB.AI

> Make lifelike voice-overs, translate and speak text, transcribe and subtitle recordings, dub videos into other languages, and create sound effects, music and custom voices with CAMB.AI.

App · Voice AI · 13 actions. Web page: https://docs.lodol.com/docs/integrations/camb-ai

## Actions

### Clone a voice

Make a new voice from a recording of someone speaking, to use in any speech step. Only clone voices you have permission to use.

**Inputs**

- Voice name (`name`, text, required): What to call the voice in the Voice list.
- Recording (`recording`, text, required): 10 to 60 seconds of one person speaking clearly, as MP3, WAV, FLAC or AAC: upload it, pick it from an earlier step, or paste a link.
- Gender (`gender`, text): The speaker's gender. One of: `2` (Female), `1` (Male), `9` (Neutral), `0` (Not specified). Default: `0`.
- Age (`age`, number): Roughly how old the speaker is. Leave blank for 30. From 1 to 120.
- Language (`language`, text): The language spoken in the recording.
- Description (`description`, text): Optional notes on the voice, such as its tone.
- Clean up the recording (`clean_up_recording`, true/false): Remove background noise before cloning.

**Outputs**

- `name` (text): The new voice's name.
- `status` (text): Status of the action execution ("success" on success).
- `voice_id` (number): The new voice's id, for the Voice field.

**Example output**

```json
{
  "name": "Sam",
  "status": "success",
  "voice_id": 190455
}
```

### Create subtitles

Make subtitle files for a video in one or more languages, ready to upload with the video.

**Inputs**

- Video or audio link (`media_url`, text, required): A public link CAMB.AI can open: a YouTube video, a shared Google Drive file, or a direct link to an MP4, MOV, MP3 or WAV file.
- Spoken language (`source_language`, text, required): The language spoken in it.
- Subtitle languages (`target_languages`, list, required): The languages to make subtitles in. Include the spoken language for subtitles of what is actually said.
- File format (`subtitle_format`, text): SRT works almost everywhere. One of: `srt` (SRT · most video players, YouTube and Vimeo), `vtt` (VTT · web video players), `txt` (Plain text). Default: `srt`.
- Accuracy (`accuracy`, text): Highest takes longer but catches more of what is said. One of: `fast` (Standard · faster), `slow` (Highest · takes longer). Default: `fast`.

**Outputs**

- `content` (text): The first language's subtitles as text.
- `content_type` (text): The file's media type.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): Every subtitle file, in order.
- `filename` (text): Name of the saved file.
- `size_bytes` (number): Size of the file in bytes.
- `source_language` (text): Spoken language.
- `status` (text): Status of the action execution ("success" on success).
- `subtitle_format` (text): srt, vtt or txt.
- `subtitles` (list): One saved subtitle file per language.
- `url` (text): Download link for the saved file.

**Example output**

```json
{
  "content": "1\n00:00:00,500 --> 00:00:02,800\nBienvenidos de nuevo.\n",
  "content_type": "application/x-subrip",
  "document_ref": "doc_6f7e8d9c",
  "documents": [
    {
      "content_type": "application/x-subrip",
      "document_ref": "doc_6f7e8d9c",
      "filename": "subtitles-es-es.srt",
      "size_bytes": 52,
      "url": "/actions/core/serve-document/doc_6f7e8d9c"
    }
  ],
  "filename": "subtitles-es-es.srt",
  "size_bytes": 52,
  "source_language": "en-us",
  "status": "success",
  "subtitle_format": "srt",
  "subtitles": [
    {
      "content": "1\n00:00:00,500 --> 00:00:02,800\nBienvenidos de nuevo.\n",
      "content_type": "application/x-subrip",
      "document_ref": "doc_6f7e8d9c",
      "filename": "subtitles-es-es.srt",
      "language": "es-es",
      "size_bytes": 52,
      "url": "/actions/core/serve-document/doc_6f7e8d9c"
    }
  ],
  "url": "/actions/core/serve-document/doc_6f7e8d9c"
}
```

### Delete a voice

Permanently delete one of your own voices, such as one made with 'Clone a voice'. CAMB.AI's own voices can't be deleted.

**Inputs**

- Voice (`voice_id`, text, required): The voice to delete. It must be one of your own.

**Outputs**

- `deleted` (true/false): True once it is gone.
- `status` (text): Status of the action execution ("success" on success).
- `voice_id` (number): The voice deleted.

**Example output**

```json
{
  "deleted": true,
  "status": "success",
  "voice_id": 190455
}
```

### Dub a video

Dub a video into another language and save the dubbed video, ready to post or share.

**Inputs**

- Video link (`video_url`, text, required): A public link CAMB.AI can open: a YouTube video, a shared Google Drive file, or a direct link to an MP4 or MOV file. Audio files work too.
- Spoken language (`source_language`, text, required): The language spoken in it.
- Dub into (`target_language`, text, required): The language to dub it into.
- Accuracy (`accuracy`, text): Highest takes longer but catches more of what is said. One of: `fast` (Standard · faster), `slow` (Highest · takes longer). Default: `fast`.
- Keep background music (`keep_background_music`, true/false): On by default. Turn off to drop music playing under the speech. Default: `true`.

**Outputs**

- `audio` (object): The dubbed voice track on its own, saved.
- `content_type` (text): The file's media type.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The dubbed video and voice track.
- `dub_status` (text): done when the dub is ready, processing while it is not.
- `dubbing_id` (text): The dub's ID, for 'Get a dubbed video'.
- `filename` (text): Name of the saved file.
- `size_bytes` (number): Size of the file in bytes.
- `status` (text): Status of the action execution ("success" on success).
- `target_language` (text): The dubbed language.
- `text` (text): The dubbed script as one text.
- `transcript` (list): What is said in the dub, line by line.
- `url` (text): Download link for the saved file.
- `video` (object): The dubbed video, saved.
- `video_link` (text): CAMB.AI's own link to the dubbed video. It expires.
- `video_saved` (true/false): False when the video is over 200 MB and was not saved; use video_link instead.

**Example output**

```json
{
  "audio": {
    "content_type": "audio/wav",
    "document_ref": "doc_7b20e4d2",
    "filename": "camb-dub-es-es-voice.wav",
    "size_bytes": 1921024,
    "url": "/actions/core/serve-document/doc_7b20e4d2"
  },
  "content_type": "video/mp4",
  "document_ref": "doc_7b20e4d1",
  "documents": [
    {
      "content_type": "video/mp4",
      "document_ref": "doc_7b20e4d1",
      "filename": "camb-dub-es-es.mp4",
      "size_bytes": 8912896,
      "url": "/actions/core/serve-document/doc_7b20e4d1"
    },
    {
      "content_type": "audio/wav",
      "document_ref": "doc_7b20e4d2",
      "filename": "camb-dub-es-es-voice.wav",
      "size_bytes": 1921024,
      "url": "/actions/core/serve-document/doc_7b20e4d2"
    }
  ],
  "dub_status": "done",
  "dubbing_id": "a8f3c2e1-4b5d-4e6f-9a7b-1c2d3e4f5a6b",
  "filename": "camb-dub-es-es.mp4",
  "size_bytes": 8912896,
  "status": "success",
  "target_language": "es-es",
  "text": "Bienvenidos de nuevo.",
  "transcript": [
    {
      "end": 2.8,
      "speaker": "SPEAKER_0",
      "start": 0.5,
      "text": "Bienvenidos de nuevo."
    }
  ],
  "url": "/actions/core/serve-document/doc_7b20e4d1",
  "video": {
    "content_type": "video/mp4",
    "document_ref": "doc_7b20e4d1",
    "filename": "camb-dub-es-es.mp4",
    "size_bytes": 8912896,
    "url": "/actions/core/serve-document/doc_7b20e4d1"
  },
  "video_link": "https://storage.camb.ai/runs/48213/dubbed.mp4",
  "video_saved": true
}
```

### Generate a sound effect or music

Describe a sound or a piece of music and get it back as an audio file.

**Inputs**

- Description (`prompt`, text, required): What it should sound like. Short, concrete descriptions work best.
- Kind (`sound_type`, text): A sound effect, or music. One of: `sound` (Sound effect), `music`. Default: `sound`.
- Length in seconds (`duration`, number): How long a sound effect lasts, up to 10 seconds. Leave blank for 8. Music picks its own length. From 1.0 to 10.0.

**Outputs**

- `content_type` (text): The file's media type.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The saved audio file, ready to attach.
- `filename` (text): Name of the saved file.
- `size_bytes` (number): Size of the file in bytes.
- `sound_type` (text): sound or music.
- `status` (text): Status of the action execution ("success" on success).
- `url` (text): Download link for the saved file.

**Example output**

```json
{
  "content_type": "audio/wav",
  "document_ref": "doc_1a2b3c4d",
  "documents": [
    {
      "content_type": "audio/wav",
      "document_ref": "doc_1a2b3c4d",
      "filename": "camb-sound-rain-on-a-tin-roof.wav",
      "size_bytes": 1536044,
      "url": "/actions/core/serve-document/doc_1a2b3c4d"
    }
  ],
  "filename": "camb-sound-rain-on-a-tin-roof.wav",
  "size_bytes": 1536044,
  "sound_type": "sound",
  "status": "success",
  "url": "/actions/core/serve-document/doc_1a2b3c4d"
}
```

### Generate speech

Turn text into a natural voice-over and save it as an audio file a later step can attach, upload or post.

**Inputs**

- What to say (`text`, text, required): The script to read out, up to 3,000 characters. For longer pieces, use 'Narrate a long text'.
- Voice (`voice_id`, text): Which CAMB.AI voice speaks, your own voices included. Leave blank for CAMB.AI's default voice.
- Language (`language`, text, required): The language the text is written in; the voice speaks it with this accent. To speak it in another language, use 'Translate and speak'. One of: `ab-ge` (Abkhazian (Georgia)), `fub-cm` (Adamawa Fulfulde (Cameroon)), `ady-ru` (Adyghe (Russia)), `af-za` (Afrikaans (South Africa)), `ala-ng` (Alago (Nigeria)), `sq-al` (Albanian (Albania)), `adx-cn` (Amdo Tibetan (China)), `am-et` (Amharic (Ethiopia)), `xmv-mg` (Antankarana Malagasy (Madagascar)), `ar-dz` (Arabic (Algeria)), and 305 more. Default: `en-us`.
- Speech model (`speech_model`, text): Leave blank to use CAMB.AI's standard model for your language. One of: `mars-8.1-pro-beta` (MARS 8.1 Pro · most natural, 300+ languages (beta)), `mars-8.1-flash-beta` (MARS 8.1 Flash · quicker, 300+ languages (beta)), `mars-pro` (MARS Pro · natural, 33 languages), `mars-flash` (MARS Flash · fastest, 33 languages), `mars-instruct` (MARS Instruct · follows tone directions, 142 languages).
- Tone of voice (`tone`, text): Optional directions for the delivery, such as 'Warm, calm and reassuring'. Uses MARS Instruct.
- Speed (`speed`, number): How fast the voice speaks: 1 is its natural pace, 0.5 half as fast, 2 twice as fast. Leave blank for 1. From 0.5 to 2.0.
- File format (`audio_format`, text): WAV plays anywhere and suits editing; AAC is a much smaller file for the web and phones. One of: `wav` (WAV · plays anywhere, best for editing), `aac` (AAC · much smaller, for the web and phones), `flac` (FLAC · lossless, smaller than WAV). Default: `wav`.

**Outputs**

- `audio_format` (text): The saved file's format, e.g. wav.
- `characters` (number): How many characters were spoken.
- `content_type` (text): The file's media type.
- `credits_used` (number): CAMB.AI credits this took, when CAMB.AI says.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The saved audio file, ready to attach.
- `filename` (text): Name of the saved file.
- `language` (text): The language spoken.
- `size_bytes` (number): Size of the file in bytes.
- `speech_model` (text): The model that spoke.
- `status` (text): Status of the action execution ("success" on success).
- `url` (text): Download link for the saved file.
- `voice_id` (number): The voice that spoke.

**Example output**

```json
{
  "audio_format": "wav",
  "characters": 24,
  "content_type": "audio/wav",
  "credits_used": 24,
  "document_ref": "doc_5d1f0c2a",
  "documents": [
    {
      "content_type": "audio/wav",
      "document_ref": "doc_5d1f0c2a",
      "filename": "camb-speech-welcome-to-the-team.wav",
      "size_bytes": 245804,
      "url": "/actions/core/serve-document/doc_5d1f0c2a"
    }
  ],
  "filename": "camb-speech-welcome-to-the-team.wav",
  "language": "en-us",
  "size_bytes": 245804,
  "speech_model": "mars-flash",
  "status": "success",
  "url": "/actions/core/serve-document/doc_5d1f0c2a",
  "voice_id": 147320
}
```

### Get a dubbed video

Collect a dub that was still in progress when 'Dub a video' stopped waiting, or check whether it is ready yet.

**Inputs**

- Dubbing ID (`dubbing_id`, text, required): The dubbing ID from 'Dub a video'.

**Outputs**

- `audio` (object): The dubbed voice track on its own, saved.
- `content_type` (text): The file's media type.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The dubbed video and voice track.
- `dub_status` (text): done when the dub is ready, processing while it is not.
- `dubbing_id` (text): The dub's ID, for 'Get a dubbed video'.
- `filename` (text): Name of the saved file.
- `size_bytes` (number): Size of the file in bytes.
- `status` (text): Status of the action execution ("success" on success).
- `target_language` (text): The dubbed language.
- `text` (text): The dubbed script as one text.
- `transcript` (list): What is said in the dub, line by line.
- `url` (text): Download link for the saved file.
- `video` (object): The dubbed video, saved.
- `video_link` (text): CAMB.AI's own link to the dubbed video. It expires.
- `video_saved` (true/false): False when the video is over 200 MB and was not saved; use video_link instead.

**Example output**

```json
{
  "audio": {
    "content_type": "audio/wav",
    "document_ref": "doc_7b20e4d2",
    "filename": "camb-dub-es-es-voice.wav",
    "size_bytes": 1921024,
    "url": "/actions/core/serve-document/doc_7b20e4d2"
  },
  "content_type": "video/mp4",
  "document_ref": "doc_7b20e4d1",
  "documents": [
    {
      "content_type": "video/mp4",
      "document_ref": "doc_7b20e4d1",
      "filename": "camb-dub-es-es.mp4",
      "size_bytes": 8912896,
      "url": "/actions/core/serve-document/doc_7b20e4d1"
    },
    {
      "content_type": "audio/wav",
      "document_ref": "doc_7b20e4d2",
      "filename": "camb-dub-es-es-voice.wav",
      "size_bytes": 1921024,
      "url": "/actions/core/serve-document/doc_7b20e4d2"
    }
  ],
  "dub_status": "done",
  "dubbing_id": "a8f3c2e1-4b5d-4e6f-9a7b-1c2d3e4f5a6b",
  "filename": "camb-dub-es-es.mp4",
  "size_bytes": 8912896,
  "status": "success",
  "target_language": "",
  "text": "Bienvenidos de nuevo.",
  "transcript": [
    {
      "end": 2.8,
      "speaker": "SPEAKER_0",
      "start": 0.5,
      "text": "Bienvenidos de nuevo."
    }
  ],
  "url": "/actions/core/serve-document/doc_7b20e4d1",
  "video": {
    "content_type": "video/mp4",
    "document_ref": "doc_7b20e4d1",
    "filename": "camb-dub-es-es.mp4",
    "size_bytes": 8912896,
    "url": "/actions/core/serve-document/doc_7b20e4d1"
  },
  "video_link": "https://storage.camb.ai/runs/48213/dubbed.mp4",
  "video_saved": true
}
```

### List voices

List every voice your CAMB.AI account can speak in, your own voices included.

**Inputs**: None.

**Outputs**

- `count` (number): How many voices there are.
- `status` (text): Status of the action execution ("success" on success).
- `voices` (list): The voices, as CAMB.AI lists them.

**Example output**

```json
{
  "count": 1,
  "status": "success",
  "voices": [
    {
      "age": 35,
      "description": "A rich, warm voice brimming with emotion.",
      "gender": "Male",
      "language": "en-us",
      "name": "Gary",
      "voice_id": 147320
    }
  ]
}
```

### Narrate a long text

Turn an article, chapter or script of any length into one narrated audio file, like an audiobook.

**Inputs**

- Text (`text`, text, required): The text to narrate. Paste it, pick it from an earlier step, or upload a .txt or .docx file.
- Language (`language`, text, required): The language the text is written in.
- Narrator (`voice_id`, text): The voice that narrates. Leave blank for CAMB.AI's default voice.
- Title (`title`, text): Optional. Names the audio file and the narration in CAMB.AI Studio.

**Outputs**

- `content_type` (text): The file's media type.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The saved audio file, ready to attach.
- `duration_seconds` (number): How long the narration runs, in seconds.
- `filename` (text): Name of the saved file.
- `language` (text): The language narrated.
- `size_bytes` (number): Size of the file in bytes.
- `status` (text): Status of the action execution ("success" on success).
- `url` (text): Download link for the saved file.
- `voice_id` (number): The narrator's voice.

**Example output**

```json
{
  "content_type": "audio/wav",
  "document_ref": "doc_9c4d2e10",
  "documents": [
    {
      "content_type": "audio/wav",
      "document_ref": "doc_9c4d2e10",
      "filename": "camb-the-lighthouse-keeper.wav",
      "size_bytes": 14155776,
      "url": "/actions/core/serve-document/doc_9c4d2e10"
    }
  ],
  "duration_seconds": 312.4,
  "filename": "camb-the-lighthouse-keeper.wav",
  "language": "en-us",
  "size_bytes": 14155776,
  "status": "success",
  "url": "/actions/core/serve-document/doc_9c4d2e10",
  "voice_id": 147320
}
```

### Separate voice from background

Split a recording into two files: the voices on their own, and the music and background sound on their own.

**Inputs**

- Recording (`recording`, text, required): An MP3, WAV, FLAC or AAC file: upload one, pick one from an earlier step, or paste a link to one.

**Outputs**

- `background` (object): Everything but the voices.
- `content_type` (text): The file's media type.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The voice file, then the background.
- `filename` (text): Name of the saved file.
- `size_bytes` (number): Size of the file in bytes.
- `status` (text): Status of the action execution ("success" on success).
- `url` (text): Download link for the saved file.
- `voice` (object): The voices on their own.

**Example output**

```json
{
  "background": {
    "content_type": "audio/wav",
    "document_ref": "doc_0a1b2c3e",
    "filename": "interview-background.wav",
    "size_bytes": 2457644,
    "url": "/actions/core/serve-document/doc_0a1b2c3e"
  },
  "content_type": "audio/wav",
  "document_ref": "doc_0a1b2c3d",
  "documents": [
    {
      "content_type": "audio/wav",
      "document_ref": "doc_0a1b2c3d",
      "filename": "interview-voice.wav",
      "size_bytes": 2457644,
      "url": "/actions/core/serve-document/doc_0a1b2c3d"
    },
    {
      "content_type": "audio/wav",
      "document_ref": "doc_0a1b2c3e",
      "filename": "interview-background.wav",
      "size_bytes": 2457644,
      "url": "/actions/core/serve-document/doc_0a1b2c3e"
    }
  ],
  "filename": "interview-voice.wav",
  "size_bytes": 2457644,
  "status": "success",
  "url": "/actions/core/serve-document/doc_0a1b2c3d",
  "voice": {
    "content_type": "audio/wav",
    "document_ref": "doc_0a1b2c3d",
    "filename": "interview-voice.wav",
    "size_bytes": 2457644,
    "url": "/actions/core/serve-document/doc_0a1b2c3d"
  }
}
```

### Transcribe a recording

Write down what is said in an audio or video recording, with who said each line and when.

**Inputs**

- Recording (`recording`, text, required): The audio or video to transcribe: upload a file, pick one from an earlier step, or paste a public link to one.
- Spoken language (`language`, text, required): The language spoken in the recording.
- Accuracy (`accuracy`, text): Highest takes longer but catches more of what is said. One of: `fast` (Standard · faster), `slow` (Highest · takes longer). Default: `fast`.

**Outputs**

- `duration_seconds` (number): When the last line ends, in seconds.
- `language` (text): The spoken language.
- `segments` (list): Each line, with its speaker and timing.
- `speakers` (list): The speakers heard, in order of first line.
- `status` (text): Status of the action execution ("success" on success).
- `text` (text): Everything said, as one text.

**Example output**

```json
{
  "duration_seconds": 3.6,
  "language": "en-us",
  "segments": [
    {
      "end": 1.9,
      "speaker": "SPEAKER_0",
      "start": 0.4,
      "text": "Thanks for joining."
    },
    {
      "end": 3.6,
      "speaker": "SPEAKER_0",
      "start": 2.1,
      "text": "Let's get started."
    }
  ],
  "speakers": [
    "SPEAKER_0"
  ],
  "status": "success",
  "text": "Thanks for joining. Let's get started."
}
```

### Translate and speak

Translate text into another language and have a voice speak the translation. Returns the audio file and the translated text.

**Inputs**

- What to say (`text`, text, required): The text to translate and speak.
- From (`source_language`, text, required): The language the text is written in.
- Into (`target_language`, text, required): The language to speak it in.
- Voice (`voice_id`, text): Which CAMB.AI voice speaks, your own voices included. Leave blank for CAMB.AI's default voice.
- Formality (`formality`, text): Formal or informal wording, such as 'usted' or 'tú' in Spanish. Leave blank to let CAMB.AI decide. One of: `1` (Formal), `2` (Informal).
- Speech model (`speech_model`, text): Leave blank to use CAMB.AI's standard model for your language. One of: `mars-8.1-pro-beta` (MARS 8.1 Pro · most natural, 300+ languages (beta)), `mars-8.1-flash-beta` (MARS 8.1 Flash · quicker, 300+ languages (beta)), `mars-pro` (MARS Pro · natural, 33 languages), `mars-flash` (MARS Flash · fastest, 33 languages), `mars-instruct` (MARS Instruct · follows tone directions, 142 languages).
- Speed (`speed`, number): How fast the voice speaks: 1 is its natural pace, 0.5 half as fast, 2 twice as fast. Leave blank for 1. From 0.5 to 2.0.
- File format (`audio_format`, text): WAV plays anywhere and suits editing; AAC is a much smaller file for the web and phones. One of: `wav` (WAV · plays anywhere, best for editing), `aac` (AAC · much smaller, for the web and phones), `flac` (FLAC · lossless, smaller than WAV). Default: `wav`.

**Outputs**

- `audio_format` (text): The saved file's format, e.g. wav.
- `content_type` (text): The file's media type.
- `credits_used` (number): CAMB.AI credits this took, when CAMB.AI says.
- `document_ref` (text): Reference to the saved file, for a later step to attach.
- `documents` (list): The saved audio file, ready to attach.
- `filename` (text): Name of the saved file.
- `size_bytes` (number): Size of the file in bytes.
- `source_language` (text): Translated from.
- `speech_model` (text): The model that spoke.
- `status` (text): Status of the action execution ("success" on success).
- `target_language` (text): Spoken in.
- `translated_text` (text): The translation that was spoken.
- `url` (text): Download link for the saved file.
- `voice_id` (number): The voice that spoke.

**Example output**

```json
{
  "audio_format": "wav",
  "content_type": "audio/wav",
  "credits_used": 22,
  "document_ref": "doc_3e9a41b7",
  "documents": [
    {
      "content_type": "audio/wav",
      "document_ref": "doc_3e9a41b7",
      "filename": "camb-es-es-bienvenido-al-equipo.wav",
      "size_bytes": 221228,
      "url": "/actions/core/serve-document/doc_3e9a41b7"
    }
  ],
  "filename": "camb-es-es-bienvenido-al-equipo.wav",
  "size_bytes": 221228,
  "source_language": "en-us",
  "speech_model": "mars-flash",
  "status": "success",
  "target_language": "es-es",
  "translated_text": "\u00a1Bienvenido al equipo!",
  "url": "/actions/core/serve-document/doc_3e9a41b7",
  "voice_id": 147320
}
```

### Translate text

Translate text into another language.

**Inputs**

- Text (`text`, text, required): The text to translate.
- From (`source_language`, text, required): The language the text is written in.
- Into (`target_language`, text, required): The language to translate it into.
- Formality (`formality`, text): Formal or informal wording, such as 'usted' or 'tú' in Spanish. Leave blank to let CAMB.AI decide. One of: `1` (Formal), `2` (Informal).

**Outputs**

- `source_language` (text): Translated from.
- `status` (text): Status of the action execution ("success" on success).
- `target_language` (text): Translated into.
- `translated_text` (text): The translation.

**Example output**

```json
{
  "source_language": "en-us",
  "status": "success",
  "target_language": "fr-fr",
  "translated_text": "Votre commande a \u00e9t\u00e9 exp\u00e9di\u00e9e ce matin."
}
```
