Metadata-Version: 2.1
Name: cambai
Version: 0.1.0
Summary: Camb AI API Python Library
Home-page: https://github.com/cr2007/cambai
Author: Chandrashekhar R
Author-email: hi.cskhere@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: pydantic (>=2.7.1,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
Requires-Dist: requests (>=2.32.2,<3.0.0)
Requires-Dist: rich (>=13.7.1,<14.0.0)
Requires-Dist: tqdm (>=4.66.4,<5.0.0)
Project-URL: Repository, https://github.com/cr2007/cambai
Description-Content-Type: text/markdown

<!-- omit from toc -->
# Camb AI API Wrapper

This is a Python wrapper for the CambAI API. It is designed to make it easy to interact with the CambAI API from Python.

> [!IMPORTANT]
> This library is still in active development.
> There will be some fixes and improvements to be made.

<!-- omit from toc -->
## Index

- [Installation](#installation)
- [Usage](#usage)
  - [TTS](#tts)
  - [Dubbing](#dubbing)

## Installation

To install the CambAI API Wrapper, you can use `pip` to install:

```bash
pip install cambai
```

## Usage

### TTS

```python
from cambai import CambAI, Gender
from dotenv import load_dotenv

load_dotenv()

def main():
    client = CambAI()
    client.get_all_voices(write_to_file=True) # Set 'write_to_file' to False if you don't want to view the list of voices in a JSON file

    client.tts(
        text="Hello, World!",
        language=1,
        gender=Gender.MALE,
        age=25,
        voice_id=<enter-voice-id>,
        debug=True,
        polling_interval=3
    )

if __name__ == "__main__":
    main()
```

Output:
```
Voices written to voices.json
Starting TTS process

TTS Task Started: {'task_id': 'de2668c5-b975-4887-8738-3afdf9f5cea6'}

TTS Status: PENDING, Run ID: None
Sleeping for 3 seconds
Waiting 3 seconds before checking status again: 100%|████████████| 3/3 [00:03<00:00,  1.00s/s]
TTS Status: PENDING, Run ID: None
Sleeping for 3 seconds
Waiting 3 seconds before checking status again: 100%|████████████| 3/3 [00:03<00:00,  1.00s/s]
...
TTS Status: SUCCESS, Run ID: 12012

TTS audio written to 'audio_tts/tts_stream_12012.wav'
```

### Dubbing

```python
from cambai import CambAI
from dotenv import load_dotenv
from rich import print

load_dotenv()

def main():
    print("Starting...")
    client = CambAI()

    ## Dubbing example

    # You can get the list of source and target languages by calling the 'get_languages' method
    client.get_languages("source", write_to_file=True)

    print("Sending URL")
    values = client.dub(
        video_url="", # Insert any public accessible URL here (e.g. YouTube, Vimeo, etc.)
        source_language=1,  # English (United States)
        target_language=76, # French (France)
        debug=True,         # Set to False to not view the debug print statements
        polling_interval=10 # Set the interval to check the status of the dubbing task
    )

    print(f"Output Video URL: {values["video_url"]}")
    print(f"Output Audio URL: {values["audio_url"]}")

if __name__ == "__main__":
    main()
```

