OLED Studio — Python SDK (oled-studio)
API key in, WAV audio out. Thin wrapper over the v1 HTTP contract in server/ —
no new endpoints, no magic.
Install
pip install oled-studio
# …or from this repo:
pip install -e ./libraries/python
Needs Python 3.9+ and requests (installed automatically).
Quickstart
from oled import Oled
oled = Oled(api_key="oled_sk_live_…") # or OLED_API_KEY env
# oled = Oled(api_key="…", base_url="https://oled-studio.onrender.com")
print(oled.health()) # {ok, provider, model_version, sample_rate, voices}
print(oled.list_voices()) # [{id, label, accent, language, enabled, sample_url}]
result = oled.speak("Hello Lagos!", voice="ada", save_to="hello.wav")
print(result.voice_id, result.synth_time, result.balance_chars)
# Streaming (SSE → raw PCM16 chunks; save_to wraps them into a .wav):
for pcm in oled.speak_stream("A longer passage…", voice="ada", save_to="long.wav"):
print(f"got {len(pcm)} bytes of PCM")
print(oled.last_stream)
Preview lane (free docs/demo render, zero debit):
oled.speak("Test the voice.", voice="ada", preview=True, save_to="preview.wav")
Voices are metadata records on the server (POST /v1/voices):
oled.create_voice("chioma", label="Chioma", accent="Nigerian · Igbo")
oled.disable_voice("chioma")
oled.enable_voice("chioma")
oled.delete_voice("chioma")
Errors
Every server failure raises OledError with .code / .status:
unknown_voice·voice_disabled·bad_requestinsufficient_credits(top up, then retry)synthesis_failed·invalid_key/unauthorized
Voice cloning — not on the server yet
oled.clone_from_audio(...) always raises CloneNotSupportedError.
The v1 backend has no audio-upload / clone endpoint (voice records are
id/label/accent/language only); true cloning lands with the Qwen checkpoint
(TTS_PROVIDER=qwen). The method exists so future code fails loudly instead
of silently faking a clone.
Metadata
Release files for oled-studio 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| oled_studio-0.1.0.tar.gz | 7.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oled_studio-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.9 kB
Release files / oled_studio-0.1.0.tar.gz
| Download URL | oled_studio-0.1.0.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
011052a2e55694a4e3a6520cae7936c65554f684fdc07a6fa975d0567079f344
|
|
BLAKE2b-256 checksum How to use checksums |
5932fe7c245f337d16afb1fce5972ddef5622ed00c1e38c77f286959fc832ffa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.20
|
Release files / oled_studio-0.1.0-py3-none-any.whl
| Download URL | oled_studio-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d9d8df6b3da699dc1711233f23addf57286122d140f5f049ed5bc9c1d2739231
|
|
BLAKE2b-256 checksum How to use checksums |
8d1eafa5832107ab645a95a0abada4ac66d3c6171b1932d263ebbbb772f8edb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.20
|
Security for oled-studio 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.