The official Python library for the Cartesia API.
Project description
Cartesia Python API Library
The official Cartesia Python library which provides convenient access to the Cartesia REST and Websocket API from any Python 3.8+ application.
Note: This API is still in alpha. Please expect breaking changes and report any issues you encounter.
Installation
pip install cartesia
# pip install in editable mode w/ dev dependencies
pip install -e '.[dev]'
Usage
from cartesia.tts import CartesiaTTS
import pyaudio
import os
client = CartesiaTTS(api_key=os.environ.get("CARTESIA_API_KEY"))
voices = client.get_voices()
voice = client.get_voice_embedding(voice_id=voices["Graham"]["id"])
transcript = "Hello! Welcome to Cartesia"
p = pyaudio.PyAudio()
stream = None
# Generate and stream audio
for output in client.generate(transcript=transcript, voice=voice, stream=True):
buffer = output["audio"]
rate = output["sampling_rate"]
if not stream:
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=rate,
output=True)
# Write the audio data to the stream
stream.write(buffer)
stream.stop_stream()
stream.close()
p.terminate()
If you are using Jupyter Notebook or JupyterLab, you can use IPython.display.Audio to play the generated audio directly in the notebook. Here's an example:
from cartesia.tts import CartesiaTTS
from IPython.display import Audio
import io
import os
client = CartesiaTTS(api_key=os.environ.get("CARTESIA_API_KEY"))
voices = client.get_voices()
voice = client.get_voice_embedding(voice_id=voices["Graham"]["id"])
transcript = "Hello! Welcome to Cartesia"
# Create a BytesIO object to store the audio data
audio_data = io.BytesIO()
# Generate and stream audio
for output in client.generate(transcript=transcript, voice=voice, stream=True):
buffer = output["audio"]
audio_data.write(buffer)
# Set the cursor position to the beginning of the BytesIO object
audio_data.seek(0)
# Create an Audio object from the BytesIO data
audio = Audio(audio_data, rate=output["sampling_rate"])
# Display the Audio object
display(audio)
We recommend using python-dotenv
to add CARTESIA_API_KEY="my-api-key"
to your .env file so that your API Key is not stored in the source code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cartesia-0.0.3.tar.gz
(9.8 kB
view hashes)
Built Distribution
Close
Hashes for cartesia-0.0.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac7e92db6a3858a947bc8c6c4d2752177bda1718ed44dcdc680515dac33ce642 |
|
MD5 | 6e34a03d2696fc9b389d221752467ea4 |
|
BLAKE2b-256 | 41101fe5bc31d521444d0386216f9725638146f71d0335ddc5bc098371313bc1 |