Skip to main content

Python SDK for the Murmel Speech-to-Text API

Project description

Murmel Python SDK

Official Python client for the Murmel Speech-to-Text API — optimized for Dutch.

Installation

pip install murmel

Quick Start

from murmel import Murmel

client = Murmel(api_key="murmel_sk_...")

# Transcribe an audio file
result = client.transcribe("meeting.mp3")
print(result.text)

Usage

Transcribe Audio

Upload an audio file and get the transcription back directly. Supports WAV, MP3, M4A, WEBM, OGG, FLAC, and more.

# From a file path
result = client.transcribe("interview.mp3")
print(result.text)

# With timestamps
for segment in result.segments:
    print(f"[{segment.start:.1f}s → {segment.end:.1f}s] {segment.text}")

# From a file object
with open("audio.wav", "rb") as f:
    result = client.transcribe(f)

List Transcriptions

# List recent transcriptions
transcriptions = client.transcriptions.list(limit=10)
for t in transcriptions:
    print(f"{t.id}: {t.status} ({t.language})")

# Filter by status
completed = client.transcriptions.list(status="completed")

Get a Transcription

# Get full result by ID
result = client.transcriptions.get("job-id-here")
print(result.text)
print(result.segments)

# Check status only (lightweight)
status = client.transcriptions.status("job-id-here")
print(status.status)  # "pending", "processing", "completed", "failed"

Check Usage

usage = client.usage()
print(f"Plan: {usage.plan}")
print(f"Used: {usage.used_minutes:.1f} / {usage.limit_minutes:.0f} min")
print(f"Remaining: {usage.remaining_minutes:.1f} min")

Error Handling

The SDK raises specific exceptions for different error types:

from murmel import Murmel, AuthenticationError, RateLimitError, InvalidRequestError

client = Murmel(api_key="murmel_sk_...")

try:
    result = client.transcribe("audio.mp3")
except AuthenticationError:
    print("Invalid API key")
except RateLimitError:
    print("Monthly usage limit exceeded")
except InvalidRequestError as e:
    print(f"Bad request: {e.message}")

Exception hierarchy:

Exception HTTP Status When
AuthenticationError 401 Invalid or missing API key
PermissionDeniedError 403 Account inactive, email not verified
InvalidRequestError 400, 413 Unsupported file format, file too large
NotFoundError 404 Transcription not found
RateLimitError 429 Monthly minutes exhausted
ServerError 500 Transcription processing failed
TimeoutError 504 Transcription took too long

Configuration

client = Murmel(
    api_key="murmel_sk_...",
    base_url="https://api.murmel.eu",  # default
    timeout=600,                        # 10 min default (for long audio)
)

# Use as context manager
with Murmel(api_key="murmel_sk_...") as client:
    result = client.transcribe("audio.mp3")

API Reference

Get your API key at app.murmel.eu → Settings → API Keys.

Full API docs: api.murmel.eu/v1/docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

murmel-0.1.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

murmel-0.1.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file murmel-0.1.0.tar.gz.

File metadata

  • Download URL: murmel-0.1.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for murmel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4d51d9b995c61910fef30d4227a830c9be82a44d6983c774e0875ed497ad0162
MD5 06aea29eacf453478e9106d31a5ab7f6
BLAKE2b-256 8ad926a45d309d9dce708b7f6bbd81c7cebf86c0ac539219734672b92103f280

See more details on using hashes here.

Provenance

The following attestation bundles were made for murmel-0.1.0.tar.gz:

Publisher: publish.yml on The-AI-Factory/murmel-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file murmel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: murmel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for murmel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a0d55ecb6aeb61a920fd3a8a9afabc25cf5d63d10c79fb3b44ed6fb35613de3
MD5 5dd940197fa3a6f34aa3b64d3fd68edc
BLAKE2b-256 2d721ecf6b95c3b451ee7cfb84ba51162c510cfec79bfa9d411c3118ab1a3cea

See more details on using hashes here.

Provenance

The following attestation bundles were made for murmel-0.1.0-py3-none-any.whl:

Publisher: publish.yml on The-AI-Factory/murmel-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page