Recorded transcription

Transcribe recordings and work with asynchronous task history through the Python SDK.

Transcribe a recording

Client.transcribe() uploads the file, polls the task, and returns a completed Transcript by default.

import os
import orbitalsai
 
client = orbitalsai.Client(api_key=os.environ["ORBITALSAI_API_KEY"])
 
transcript = client.transcribe(
    file_path="interview.mp3",
    language="hausa",
    model_name="Perigee-1-transcribe",
    timeout=900,
    poll_interval=5,
)
 
print(transcript.text)
print(transcript.task_id)
print(transcript.audio_duration)

The public recorded result includes text, task_id, original_filename, audio_url, audio_duration, processing_time, language, and model_name. srt_content is populated only when generate_srt=True is requested and the service returns it. Recorded transcription does not expose raw word timestamps.

Recorded transcription accepts WAV, WAVE, MP3, MPEG, OGG, OGA, OPUS, FLAC, AAC, M4A, WMA, AMR, and 3GP files.

Generate SRT

transcript = client.transcribe(
    "interview.mp3",
    language="yoruba",
    generate_srt=True,
)
 
if transcript.srt_content:
    print(transcript.srt_content)

Inspect models

Query available speech models and their active transcription rates:

model = client.get_model("Perigee-1-transcribe")
print(model.model_name, model.transcription_rate_per_hour)
 
models = client.get_models()
for m in models:
    print(m.model_name, m.transcription_rate_per_hour)

List recent tasks

Task history is paginated. TaskList behaves like a normal Python list and also exposes pagination metadata.

tasks = client.list_tasks(page=1, page_size=20)
 
for task in tasks:
    print(task.task_id, task.status, task.original_filename)
 
if tasks.has_next:
    next_page = client.list_tasks(page=tasks.page + 1, page_size=20)

Async client

The async client exposes the same transcription workflow:

import os
import asyncio
import orbitalsai
 
async def main():
    async with orbitalsai.AsyncClient(
        api_key=os.environ["ORBITALSAI_API_KEY"]
    ) as client:
        transcript = await client.transcribe("interview.mp3", language="hausa")
        print(transcript.text)
        print(transcript.audio_duration)
 
asyncio.run(main())

See Async jobs when you need to manage the task lifecycle directly, Recorded transcription for product behavior, and the recording API reference for HTTP schemas.

On this page