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.
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.

Die API stellt diese Funktionalität für Entwickler bereit. Zu den Kernfunktionen gehören:
- Stimmenbibliothek – Zugriff auf über 120 KI-Stimmen verschiedener Geschlechter, Altersgruppen und Akzente
- Mehrsprachige Unterstützung – Spracherzeugung in über 20 Sprachen, einschließlich Englisch, Spanisch, Französisch, Deutsch und Hindi
- Stimmenanpassung – Anpassung von Tonhöhe, Geschwindigkeit und Betonung für präzise Kontrolle
- Mehrere Ausgabeformate – Export von Audio als MP3, WAV oder FLAC
- SSML-Unterstützung – Feinabstimmung der Aussprache mithilfe der Speech Synthesis Markup Language
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.
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.
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:
| Eigenschaft | Beschreibung | Beispiel |
|---|---|---|
| voiceId | Eindeutige Kennung für die Stimme | "en-US-marcus" |
| name | Anzeigename der Stimme | "Marcus" |
| language | Sprachcode | "en-US" |
| gender | Stimmgeschlecht | "male" oder "female" |
| accent | Regionaler Akzent | "American", "British" |
| style | Stimmenstil/-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
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| text | string | Ja | Der in Sprache umzuwandelnde Text |
| voiceId | string | Ja | ID der zu verwendenden Stimme |
| format | string | Nein | Ausgabeformat: mp3, wav, flac (Standard: mp3) |
| sampleRate | integer | Nein | Audio-Sample-Rate: 8000, 16000, 24000, 48000 |
| speed | float | Nein | Sprechgeschwindigkeit: 0,5 bis 2,0 (Standard: 1,0) |
| pitch | float | Nein | Anpassung 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
| Tag | Zweck | Beispiel |
|---|---|---|
<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 für Murf AI einrichten
1. Apidog herunterladen und installieren
Holen Sie sich Apidog kostenlos. Es unterstützt Windows, Mac, Linux und Webbrowser.
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:
- URL:
{{baseUrl}}/speech - Header:
api-key:{{apiKey}}Content-Type:application/json- Body (JSON):
{
"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
| Problem | Wie Apidog hilft |
|---|---|
| 401 Unauthorized | Überprüfen Sie den api-key-Header im Anfrageinspektor |
| Ungültige voiceId | Verwenden 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
| Statuscode | Bedeutung | Lösung |
|---|---|---|
| 400 | Bad Request | Überprüfen Sie das Format und die Parameter des Anfrage-Bodies |
| 401 | Unauthorized | Vergewissern Sie sich, dass der API-Schlüssel korrekt und aktiv ist |
| 403 | Forbidden | Kontoberechtigungen und Planlimits überprüfen |
| 429 | Ratenbegrenzt | Implementieren Sie exponentielles Backoff |
| 500 | Serverfehler | Wiederholen 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.

API-Nutzung optimieren
- Generierte Audioinhalte cachen – Speichern Sie Ergebnisse für wiederholte Anfragen
- Ähnliche Anfragen stapelweise verarbeiten – Kurze Texte nach Möglichkeit kombinieren
- Niedrigere Sampleraten verwenden – 16000 Hz funktioniert gut für Sprachinhalte
- Mit Apidog überwachen – Nutzungsmuster verfolgen und 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:
- Authentifizierung – Verwenden Sie API-Schlüssel in den Anfrage-Headern für alle Aufrufe
- Stimmenauswahl – Entdecken Sie über 120 Stimmen in verschiedenen Sprachen und Akzenten
- Anpassung – Passen Sie Geschwindigkeit und Tonhöhe an und verwenden Sie SSML für präzise Kontrolle
- Fehlerbehandlung – Implementieren Sie Wiederholungsversuche und exponentielles Backoff für die Produktion
- Testen – Verwenden Sie Apidog, um Ihre Integration zu debuggen und zu optimieren
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.
