Skip to main content

Murf Python SDK

Murf AI Logo

fern shield pypi Open In Colab

Table of Contents


Overview

The Murf Python SDK offers seamless integration with the Murf AI text-to-speech software, enabling developers and creators to convert text into lifelike speech effortlessly. With over 130 natural-sounding voices across 21 languages and 20+ speaking styles, Murf provides unparalleled speech customization for a wide range of applications. The SDK is designed for both synchronous and asynchronous workflows, featuring robust error handling, advanced configuration options, and support for real-time applications.


Installation

Check out the HTTP API documentation.

Install the SDK using pip:

pip install murf

Getting Started

Here's a quick example to get you started with the Murf SDK:

from murf import Murf

client = Murf(
    api_key="YOUR_API_KEY",
)
client.text_to_speech.generate(
    format="MP3",
    sample_rate=44100.0,
    text="Hello, world!",
    voice_id="en-US-natalie",
)

For more detailed information, refer to the official documentation.


Features

  • Text-to-Speech Conversion: Transform text into natural-sounding speech.
  • Multilingual Support: Access voices in over 21 languages, including English, French, German, Spanish, Italian, Hindi, Portuguese, Dutch, Korean, Chinese (Mandarin), Bengali, Tamil, Polish, Japanese, Turkish, Indonesian, Croatian, Greek, Romanian, Slovak, and Bulgarian.

Murf AI Languages

  • Multiple Voice Styles: Choose from 20+ speaking styles to suit your application's needs.
  • Advanced Voice Customization: Adjust parameters like pitch, speed, pauses, and pronunciation for optimal output. Fine-grained controls let you tailor the voice output to match your specific requirements.
  • Multiple Audio Formats: Generate audio in various formats (e.g., MP3, WAV) with configurable sample rates for optimal quality.
  • Real-Time Processing: Benefit from asynchronous API calls that support non-blocking, real-time audio generation and streaming scenarios.

Async Client

The SDK also exports an async client so that you can make non-blocking calls to our API.

import asyncio

from murf import AsyncMurf

client = AsyncMurf(
    api_key="YOUR_API_KEY",
)


async def main() -> None:
    await client.text_to_speech.generate(
        format="MP3",
        sample_rate=44100.0,
        text="Hello, world!",
        voice_id="en-US-natalie",
    )


asyncio.run(main())

Exception Handling

When the API returns a non-success status code (4xx or 5xx response), a subclass of the following error will be thrown.

from murf.core.api_error import ApiError

try:
    client.text_to_speech.generate(...)
except ApiError as e:
    print(e.status_code)
    print(e.body)

Advanced

Retries

The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long as the request is deemed retriable and the number of retry attempts has not grown larger than the configured retry limit (default: 2).

A request is deemed retriable when any of the following HTTP status codes is returned:

  • 408 (Timeout)
  • 429 (Too Many Requests)
  • 5XX (Internal Server Errors)

Use the max_retries request option to configure this behavior.

client.text_to_speech.generate(..., request_options={
    "max_retries": 1
})

Timeouts

The SDK defaults to a 60 second timeout. You can configure this with a timeout option at the client or request level.

from murf import Murf

client = Murf(
    ...,
    timeout=20.0,
)


# Override timeout for a specific method
client.text_to_speech.generate(..., request_options={
    "timeout_in_seconds": 1
})

Custom Client

You can override the httpx client to customize it for your use-case. Some common use-cases include support for proxies and transports.

import httpx
from murf import Murf

client = Murf(
    ...,
    httpx_client=httpx.Client(
        proxies="http://my.test.proxy.example.com",
        transport=httpx.HTTPTransport(local_address="0.0.0.0"),
    ),
)

Contributing

We welcome contributions to enhance the Murf Python SDK. Please note that this library is generated programmatically, so direct modifications may be overwritten. We suggest opening an issue first to discuss your ideas or improvements. Contributions to the documentation are especially appreciated! For any support queries email to support@murf.ai


License

Murf Python SDK is released under the MIT License.


Metadata

Release files for murf 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for murf 2.3.0
File Size Uploaded Provenance
murf-2.3.0.tar.gz 42.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for murf 2.3.0
File Interpreter ABI Platform
murf-2.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 121.5 kB

Release files / murf-2.3.0.tar.gz

Download URL murf-2.3.0.tar.gz
Size 42.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4b62aaf73cf92d4f09a825e23624a9138dd75ff62b39763505ab0a50e44975b2
BLAKE2b-256 checksum
How to use checksums
d3d6cdcd3c9eff9feb9cd856753ca83a53ba0e6c0e2c61be76c97f92393baa3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.8.18 Linux/6.14.0-1017-azure

Release files / murf-2.3.0-py3-none-any.whl

Download URL murf-2.3.0-py3-none-any.whl
Size 78.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2561145d9c0f6408b0774d4fd7a269ae042661aaf8961c6305fc78a0921eac86
BLAKE2b-256 checksum
How to use checksums
a0e110495a841312d3fdb645c4d2219bcbde26048442b5fecb0edc3e21e74d9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.8.18 Linux/6.14.0-1017-azure

Security for murf 2.3.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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page