Murf AI API Nutzen: Eine Anleitung

Herve Kom

29 January 2026

Murf AI API Nutzen: Eine Anleitung

Murf AI wandelt Text in natürlich klingende Sprache mit Voiceovers in Studioqualität um. Entwickler integrieren die Murf AI API, um Anwendungen zu erstellen, die Inhalte erzählen, Audioversionen von Artikeln erstellen, virtuelle Assistenten betreiben und Voiceovers in großem Umfang generieren.

💡
Bevor Sie sich in komplexes Coding stürzen, können Sie durch die Verwendung von Apidog viel Entwicklungszeit sparen, um die Murf AI API zu testen und zu debuggen. Apidog ist ein kostenloses, All-in-One-Tool für die API-Entwicklung, mit dem Sie Endpunkte visuell überprüfen, Client-Code in jeder Sprache generieren und TTS-Ausgaben sofort verifizieren können, ohne eine einzige Zeile Boilerplate-Code schreiben zu müssen.
button

Was ist die Murf AI API?

Murf AI bietet einen Cloud-basierten Text-to-Speech-Dienst, der geschriebene Inhalte in realistische, menschenähnliche Audioformate umwandelt. Im Gegensatz zu roboterhaft klingenden TTS-Engines verwendet Murf KI-gestützte Sprachsynthese, um natürliche Intonation, die richtige Betonung und authentischen emotionalen Ausdruck zu erzeugen.

Murf AI Dashboard

Die API stellt diese Funktionalität für Entwickler bereit. Zu den Kernfunktionen gehören:

Entwickler nutzen die Murf AI API für Videovertonung, Podcast-Produktion, IVR-Systeme, Hörbuchgenerierung und Barrierefreiheitsfunktionen. Die API verarbeitet sowohl kurze Snippets als auch lange Inhalte und eignet sich daher für vielfältige Anwendungsfälle.

Erste Schritte mit der Murf AI API

Bevor Sie API-Aufrufe tätigen, müssen Sie die Authentifizierung einrichten. Murf AI verwendet API-Schlüssel für die Autorisierung, gemäß den standardmäßigen REST-Konventionen.

Schritt 1: Ein Murf AI-Konto erstellen

Besuchen Sie murf.ai und registrieren Sie sich für ein Konto. Murf bietet eine kostenlose Stufe mit begrenzten Credits an, die sich gut zum Testen der API eignet. Für den Produktionseinsatz benötigen Sie einen kostenpflichtigen Plan, der API-Zugriff beinhaltet.

Murf AI API-Schlüssel Konto erstellen

Schritt 2: Ihren Murf AI API-Schlüssel generieren

Navigieren Sie zu Ihren Kontoeinstellungen und suchen Sie den API-Bereich. Generieren Sie einen neuen API-Schlüssel und speichern Sie ihn sicher. Dieser Schlüssel authentifiziert alle Ihre Anfragen.

Murf AI API-Schlüssel Generierungsoberfläche

Halten Sie Ihren API-Schlüssel vertraulich. Committen Sie ihn niemals in die Versionskontrolle oder machen Sie ihn in Client-seitigem Code öffentlich.

Schritt 3: Die Murf AI API Basis-URL verstehen

Alle Murf AI API-Anfragen gehen an:

https://api.murf.ai/v1

Die API folgt RESTful-Konventionen mit JSON-Anforderungs- und Antwort-Bodies. Die Authentifizierung erfolgt über den api-key-Header.

Murf AI API-Authentifizierung

Jede API-Anfrage erfordert Ihren API-Schlüssel in den Anfrage-Headern. Das Authentifizierungs-Header-Format ist:

api-key: YOUR_API_KEY
Content-Type: application/json

So sieht die Authentifizierung in verschiedenen Programmiersprachen aus:

Python-Authentifizierung mit der Murf AI API

import requests

API_KEY = "your_murf_api_key"
BASE_URL = "https://api.murf.ai/v1"

headers = {
    "api-key": API_KEY,
    "Content-Type": "application/json"
}

# Test authentication by fetching available voices
response = requests.get(f"{BASE_URL}/voices", headers=headers)

if response.status_code == 200:
    print("Authentication successful!")
    voices = response.json()
    print(f"Available voices: {len(voices)}")
else:
    print(f"Authentication failed: {response.status_code}")

JavaScript-Authentifizierung mit der Murf AI API

const API_KEY = 'your_murf_api_key';
const BASE_URL = 'https://api.murf.ai/v1';

const headers = {
    'api-key': API_KEY,
    'Content-Type': 'application/json'
};

// Test authentication
fetch(`${BASE_URL}/voices`, { headers })
    .then(response => response.json())
    .then(data => console.log('Voices available:', data.length))
    .catch(error => console.error('Auth failed:', error));

cURL-Authentifizierung mit der Murf AI API

curl -X GET "https://api.murf.ai/v1/voices" \
  -H "api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json"

Eine erfolgreiche Authentifizierung gibt den Statuscode 200 zurück. Ungültige Schlüssel geben 401 Unauthorized zurück.

Verfügbare Stimmen mit der Murf AI API abrufen

Bevor Sie Sprache generieren, rufen Sie die Liste der verfügbaren Stimmen ab, um eine auszuwählen, die zu Ihrem Anwendungsfall passt. Der Endpunkt /voices gibt alle zugänglichen Stimmen mit ihren Metadaten zurück.

Alle Stimmen auflisten

import requests

API_KEY = "your_murf_api_key"
BASE_URL = "https://api.murf.ai/v1"

headers = {
    "api-key": API_KEY,
    "Content-Type": "application/json"
}

response = requests.get(f"{BASE_URL}/voices", headers=headers)
voices = response.json()

# Display voice information
for voice in voices[:5]:  # Show first 5 voices
    print(f"Name: {voice['name']}")
    print(f"Voice ID: {voice['voiceId']}")
    print(f"Language: {voice['language']}")
    print(f"Gender: {voice['gender']}")
    print(f"Accent: {voice.get('accent', 'N/A')}")
    print("---")

Die Antwort enthält Stimmeneigenschaften:

EigenschaftBeschreibungBeispiel
voiceIdEindeutige Kennung für die Stimme"en-US-marcus"
nameAnzeigename der Stimme"Marcus"
languageSprachcode"en-US"
genderStimmgeschlecht"male" oder "female"
accentRegionaler Akzent"American", "British"
styleStimmenstil/-ton"conversational", "formal"

Stimmen nach Sprache filtern

# Filter for English voices
english_voices = [v for v in voices if v['language'].startswith('en')]
print(f"English voices available: {len(english_voices)}")

# Filter for Spanish voices
spanish_voices = [v for v in voices if v['language'].startswith('es')]
print(f"Spanish voices available: {len(spanish_voices)}")

Sprache aus Text generieren

Die Kernfunktionalität der Murf AI API ist die Umwandlung von Text in Sprache. Der Endpunkt /speech akzeptiert Text- und Sprachparameter und gibt eine Audiodatei zurück.

Grundlegende Text-to-Speech-Anfrage

import requests

API_KEY = "your_murf_api_key"
BASE_URL = "https://api.murf.ai/v1"

headers = {
    "api-key": API_KEY,
    "Content-Type": "application/json"
}

payload = {
    "text": "Welcome to our application. This audio was generated using Murf AI.",
    "voiceId": "en-US-marcus",
    "format": "mp3",
    "sampleRate": 24000
}

response = requests.post(
    f"{BASE_URL}/speech",
    headers=headers,
    json=payload
)

if response.status_code == 200:
    # Save the audio file
    with open("output.mp3", "wb") as f:
        f.write(response.content)
    print("Audio saved to output.mp3")
else:
    print(f"Error: {response.status_code} - {response.text}")

Anfrageparameter

ParameterTypErforderlichBeschreibung
textstringJaDer in Sprache umzuwandelnde Text
voiceIdstringJaID der zu verwendenden Stimme
formatstringNeinAusgabeformat: mp3, wav, flac (Standard: mp3)
sampleRateintegerNeinAudio-Sample-Rate: 8000, 16000, 24000, 48000
speedfloatNeinSprechgeschwindigkeit: 0,5 bis 2,0 (Standard: 1,0)
pitchfloatNeinAnpassung der Stimmlage: -10 bis 10

Anpassen von Sprechgeschwindigkeit und Tonhöhe

payload = {
    "text": "This text is spoken at a slower pace with a lower pitch.",
    "voiceId": "en-US-marcus",
    "format": "mp3",
    "speed": 0.8,    # 80% of normal speed
    "pitch": -2      # Slightly lower pitch
}

response = requests.post(f"{BASE_URL}/speech", headers=headers, json=payload)

SSML für erweiterte Steuerung verwenden

Speech Synthesis Markup Language (SSML) bietet eine detaillierte Kontrolle über Aussprache, Pausen, Betonung und mehr. Die Murf AI API unterstützt SSML-Tags für eine Audioausgabe in professioneller Qualität.

SSML-Beispiel

ssml_text = """
<speak>
    Welcome to <emphasis level="strong">Murf AI</emphasis>.
    <break time="500ms"/>
    Our text-to-speech technology creates <prosody rate="slow">natural sounding</prosody> audio.
    <break time="300ms"/>
    The word <phoneme alphabet="ipa" ph="ˈdeɪtə">data</phoneme> is pronounced correctly.
</speak>
"""

payload = {
    "text": ssml_text,
    "voiceId": "en-US-julia",
    "format": "mp3",
    "ssml": True  # Enable SSML parsing
}

response = requests.post(f"{BASE_URL}/speech", headers=headers, json=payload)

Gängige SSML-Tags

TagZweckBeispiel
<break>Pause einfügen<break time="500ms"/>
<emphasis>Ein Wort betonen<emphasis level="strong">wichtig</emphasis>
<prosody>Rate/Tonhöhe anpassen<prosody rate="slow">Text</prosody>
<phoneme>Benutzerdefinierte Aussprache<phoneme alphabet="ipa" ph="...">Wort</phoneme>
<say-as>Als Typ interpretieren<say-as interpret-as="date">2026-01-29</say-as>

Murf AI API mit Apidog testen

Bevor Sie Integrationscode schreiben, testen Sie Ihre API-Aufrufe interaktiv. Apidog bietet eine visuelle Oberfläche zum Erstellen von Anfragen, Überprüfen von Antworten und Debuggen von Problemen.

Apidog-Oberfläche mit API-Anfragekonfiguration

Apidog für Murf AI einrichten

1. Apidog herunterladen und installieren

Holen Sie sich Apidog kostenlos. Es unterstützt Windows, Mac, Linux und Webbrowser.

button

2. Ein neues Projekt erstellen

Starten Sie ein neues Projekt mit dem Namen "Murf AI Integration". Dies hält Ihre API-Endpunkte organisiert.

3. Umgebungsvariablen einrichten

Erstellen Sie eine Umgebung mit Ihrem API-Schlüssel:

{
    "baseUrl": "https://api.murf.ai/v1",
    "apiKey": "your_murf_api_key"
}

Umgebungsvariablen trennen sensible Daten von den Anfragekonfigurationen.

4. Ihre erste Anfrage erstellen

Fügen Sie eine neue POST-Anfrage mit diesen Einstellungen hinzu:

{
    "text": "Testing Murf AI API with Apidog. This is a sample voiceover.",
    "voiceId": "en-US-marcus",
    "format": "mp3"
}

5. Anfrage senden und Antwort überprüfen

Klicken Sie auf Senden. Apidog zeigt den Antwortstatus, Header an und ermöglicht Ihnen, die generierte Audiodatei direkt herunterzuladen.

Häufige Probleme mit Apidog debuggen

ProblemWie Apidog hilft
401 UnauthorizedÜberprüfen Sie den api-key-Header im Anfrageinspektor
Ungültige voiceIdVerwenden Sie zuerst GET /voices, um verfügbare IDs zu überprüfen
Leere Audio-AntwortÜberprüfen Sie die Antwort-Header auf Fehlermeldungen
RatenbegrenzungÜberwachen Sie den Anfrageverlauf auf 429-Statuscodes

Die Anfrageverlaufsfunktion von Apidog ermöglicht es Ihnen, erfolgreiche und fehlgeschlagene Anfragen nebeneinander zu vergleichen, was das Debugging vereinfacht.

Langform-Inhalte mit der Murf AI API verarbeiten

Für Artikel, Blogbeiträge oder Buchkapitel müssen Sie den Text möglicherweise in Abschnitten verarbeiten. Murf AI hat Zeichenbegrenzungen pro Anfrage, daher stellt das Aufteilen des Inhalts eine zuverlässige Verarbeitung sicher.

Chunking-Strategie

import requests

API_KEY = "your_murf_api_key"
BASE_URL = "https://api.murf.ai/v1"

headers = {
    "api-key": API_KEY,
    "Content-Type": "application/json"
}

def chunk_text(text, max_chars=3000):
    """Split text into chunks at sentence boundaries."""
    sentences = text.replace('!', '.').replace('?', '.').split('.')
    chunks = []
    current_chunk = ""

    for sentence in sentences:
        sentence = sentence.strip()
        if not sentence:
            continue

        if len(current_chunk) + len(sentence) + 2 > max_chars:
            chunks.append(current_chunk.strip())
            current_chunk = sentence + ". "
        else:
            current_chunk += sentence + ". "

    if current_chunk.strip():
        chunks.append(current_chunk.strip())

    return chunks

def generate_long_audio(text, voice_id, output_prefix="output"):
    """Generate audio for long-form content."""
    chunks = chunk_text(text)
    audio_files = []

    for i, chunk in enumerate(chunks):
        payload = {
            "text": chunk,
            "voiceId": voice_id,
            "format": "mp3"
        }

        response = requests.post(
            f"{BASE_URL}/speech",
            headers=headers,
            json=payload
        )

        if response.status_code == 200:
            filename = f"{output_prefix}_{i+1}.mp3"
            with open(filename, "wb") as f:
                f.write(response.content)
            audio_files.append(filename)
            print(f"Generated: {filename}")
        else:
            print(f"Failed chunk {i+1}: {response.status_code}")

    return audio_files

# Example usage
long_text = """
Your long article or document content goes here.
It can span multiple paragraphs and pages.
The function splits it automatically at sentence boundaries.
"""

audio_files = generate_long_audio(long_text, "en-US-marcus", "article_audio")
print(f"Generated {len(audio_files)} audio files")

Audio-Dateien mit der Murf AI API zusammenfügen

Nach dem Generieren der Abschnitte können Sie diese mithilfe von FFmpeg oder einer Python-Bibliothek zu einer einzigen Datei zusammenfügen:

from pydub import AudioSegment

def concatenate_audio(file_list, output_file="final_audio.mp3"):
    """Combine multiple audio files into one."""
    combined = AudioSegment.empty()

    for filename in file_list:
        audio = AudioSegment.from_mp3(filename)
        combined += audio

    combined.export(output_file, format="mp3")
    print(f"Combined audio saved to {output_file}")
    return output_file

# Combine the chunks
concatenate_audio(audio_files, "complete_article.mp3")

Best Practices für die Fehlerbehandlung mit der Murf AI API

Produktionsanwendungen benötigen eine robuste Fehlerbehandlung. Die Murf AI API gibt Standard-HTTP-Statuscodes mit beschreibenden Fehlermeldungen zurück.

Häufige Fehlercodes

StatuscodeBedeutungLösung
400Bad RequestÜberprüfen Sie das Format und die Parameter des Anfrage-Bodies
401UnauthorizedVergewissern Sie sich, dass der API-Schlüssel korrekt und aktiv ist
403ForbiddenKontoberechtigungen und Planlimits überprüfen
429RatenbegrenztImplementieren Sie exponentielles Backoff
500ServerfehlerWiederholen Sie den Vorgang nach einer kurzen Verzögerung

Robuster API-Client

import requests
import time
from typing import Optional

class MurfAPIClient:
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "https://api.murf.ai/v1"
        self.headers = {
            "api-key": api_key,
            "Content-Type": "application/json"
        }

    def _request(self, method: str, endpoint: str,
                 data: dict = None, retries: int = 3) -> Optional[requests.Response]:
        """Make API request with retry logic."""
        url = f"{self.base_url}/{endpoint}"

        for attempt in range(retries):
            try:
                if method == "GET":
                    response = requests.get(url, headers=self.headers)
                else:
                    response = requests.post(url, headers=self.headers, json=data)

                if response.status_code == 200:
                    return response
                elif response.status_code == 429:
                    # Rate limited - wait and retry
                    wait_time = 2 ** attempt
                    print(f"Rate limited. Waiting {wait_time}s...")
                    time.sleep(wait_time)
                elif response.status_code >= 500:
                    # Server error - retry
                    time.sleep(1)
                else:
                    # Client error - don't retry
                    print(f"Error {response.status_code}: {response.text}")
                    return None

            except requests.RequestException as e:
                print(f"Request failed: {e}")
                time.sleep(1)

        return None

    def get_voices(self) -> list:
        """Fetch available voices."""
        response = self._request("GET", "voices")
        return response.json() if response else []

    def generate_speech(self, text: str, voice_id: str,
                        format: str = "mp3", **kwargs) -> Optional[bytes]:
        """Generate speech from text."""
        payload = {
            "text": text,
            "voiceId": voice_id,
            "format": format,
            **kwargs
        }
        response = self._request("POST", "speech", payload)
        return response.content if response else None

# Usage
client = MurfAPIClient("your_api_key")
voices = client.get_voices()
audio = client.generate_speech(
    "Hello world!",
    "en-US-marcus",
    speed=1.0
)

if audio:
    with open("output.mp3", "wb") as f:
        f.write(audio)

Einen Voiceover-Generierungsdienst erstellen

Lassen Sie uns eine vollständige Flask-API erstellen, die Murf AI für Ihre Anwendungen umschließt:

from flask import Flask, request, jsonify, send_file
import requests
import os
import uuid

app = Flask(__name__)

MURF_API_KEY = os.environ.get("MURF_API_KEY")
MURF_BASE_URL = "https://api.murf.ai/v1"

headers = {
    "api-key": MURF_API_KEY,
    "Content-Type": "application/json"
}

@app.route("/api/voices", methods=["GET"])
def list_voices():
    """List available voices."""
    language = request.args.get("language")

    response = requests.get(f"{MURF_BASE_URL}/voices", headers=headers)

    if response.status_code != 200:
        return jsonify({"error": "Failed to fetch voices"}), 500

    voices = response.json()

    if language:
        voices = [v for v in voices if v["language"].startswith(language)]

    return jsonify(voices)

@app.route("/api/synthesize", methods=["POST"])
def synthesize():
    """Generate speech from text."""
    data = request.json

    if not data or "text" not in data:
        return jsonify({"error": "Missing 'text' field"}), 400

    if "voiceId" not in data:
        return jsonify({"error": "Missing 'voiceId' field"}), 400

    payload = {
        "text": data["text"],
        "voiceId": data["voiceId"],
        "format": data.get("format", "mp3"),
        "speed": data.get("speed", 1.0),
        "pitch": data.get("pitch", 0)
    }

    response = requests.post(
        f"{MURF_BASE_URL}/speech",
        headers=headers,
        json=payload
    )

    if response.status_code != 200:
        return jsonify({"error": "Speech generation failed"}), 500

    # Save to temp file
    filename = f"audio_{uuid.uuid4().hex}.mp3"
    filepath = os.path.join("/tmp", filename)

    with open(filepath, "wb") as f:
        f.write(response.content)

    return send_file(
        filepath,
        mimetype="audio/mpeg",
        as_attachment=True,
        download_name=filename
    )

if __name__ == "__main__":
    app.run(debug=True, port=5000)

Dieser Dienst stellt zwei Endpunkte zur Verfügung: einen zum Auflisten von Stimmen und einen weiteren zum Generieren von Sprache. Sie können ihn für den Produktionseinsatz um Caching, Authentifizierung und warteschlangenbasierte Verarbeitung erweitern.

Ratenbegrenzungen und Preisüberlegungen für die Murf AI API

Murf AI setzt Ratenbegrenzungen basierend auf Ihrem Abonnementplan durch. Das Verständnis dieser Grenzen hilft Ihnen, effiziente Anwendungen zu entwerfen.

Murf AI API-Preise

API-Nutzung optimieren

Integration mit gängigen Frameworks

Node.js-Integration

const axios = require('axios');
const fs = require('fs');

const API_KEY = process.env.MURF_API_KEY;
const BASE_URL = 'https://api.murf.ai/v1';

async function generateSpeech(text, voiceId, options = {}) {
    try {
        const response = await axios.post(
            `${BASE_URL}/speech`,
            {
                text,
                voiceId,
                format: options.format || 'mp3',
                speed: options.speed || 1.0,
                pitch: options.pitch || 0
            },
            {
                headers: {
                    'api-key': API_KEY,
                    'Content-Type': 'application/json'
                },
                responseType: 'arraybuffer'
            }
        );

        return Buffer.from(response.data);
    } catch (error) {
        console.error('Error:', error.response?.data || error.message);
        throw error;
    }
}

// Usage
(async () => {
    const audio = await generateSpeech(
        'Hello from Node.js!',
        'en-US-marcus'
    );

    fs.writeFileSync('output.mp3', audio);
    console.log('Audio saved!');
})();

React-Frontend-Integration

import React, { useState } from 'react';

function VoiceGenerator() {
    const [text, setText] = useState('');
    const [voiceId, setVoiceId] = useState('en-US-marcus');
    const [audioUrl, setAudioUrl] = useState(null);
    const [loading, setLoading] = useState(false);

    const generateAudio = async () => {
        setLoading(true);

        try {
            const response = await fetch('/api/synthesize', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ text, voiceId })
            });

            const blob = await response.blob();
            const url = URL.createObjectURL(blob);
            setAudioUrl(url);
        } catch (error) {
            console.error('Generation failed:', error);
        } finally {
            setLoading(false);
        }
    };

    return (
        <div className="voice-generator">
            <textarea
                value={text}
                onChange={(e) => setText(e.target.value)}
                placeholder="Geben Sie den Text ein, der in Sprache umgewandelt werden soll..."
            />

            <select value={voiceId} onChange={(e) => setVoiceId(e.target.value)}>
                <option value="en-US-marcus">Marcus (US Männlich)</option>
                <option value="en-US-julia">Julia (US Weiblich)</option>
                <option value="en-GB-oliver">Oliver (UK Männlich)</option>
            </select>

            <button onClick={generateAudio} disabled={loading}>
                {loading ? 'Generiere...' : 'Audio generieren'}
            </button>

            {audioUrl && (
                <audio controls src={audioUrl}>
                    Ihr Browser unterstützt die Audiowiedergabe nicht.
                </audio>
            )}
        </div>
    );
}

export default VoiceGenerator;

Fazit

Die Murf AI API eröffnet Entwicklern leistungsstarke Text-to-Speech-Funktionen. Von einfachen Voiceovers bis hin zu komplexen Multi-Stimmen-Produktionen verarbeitet die API vielfältige Anforderungen mit natürlich klingender Ausgabe. Wichtigste Erkenntnisse:

Beginnen Sie mit der kostenlosen Stufe, um zu experimentieren, und skalieren Sie dann nach Bedarf, wenn Ihre Anwendung wächst. Die Kombination aus hochwertigen Stimmen und einem entwicklerfreundlichen API-Design macht Murf AI zu einer soliden Wahl für sprachgesteuerte Anwendungen.

Bereit zum Bauen? Laden Sie Apidog herunter, um Ihre Murf AI API-Aufrufe zu testen und Ihren Entwicklungs-Workflow zu optimieren.

button

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen