1. Überblick über Sprachmodelle

1.1. Einführung in OpenAI's TTS- und STT-Modelle

Text-to-Speech (TTS)-Modell

Das TTS-Modell von OpenAI kann Textdaten in Sprachausgabe umwandeln. Dieser Prozess umfasst die Textanalyse, die Anwendung von Sprachsynthese-Algorithmen und die Anpassung der Klangqualität. Es ermöglicht dem Computer, jeden geschriebenen Text vorzulesen, wodurch der Inhalt verständlicher und zugänglicher wird. TTS ist eine wichtige Technologie für sehbehinderte Menschen, Fahrer oder jeden, der Informationen lieber durch Zuhören erhalten möchte.

Speech-to-Text (STT)-Modell

Entsprechend dem TTS kann das STT-Modell Sprachinformationen in geschriebenen Text umwandeln. Bei der Verarbeitung des Original-Audioinputs führt das STT-System zuerst eine Spracherkennung durch, gefolgt von der Merkmalsextraktion. Danach ordnet es das Audiosignal mithilfe akustischer und sprachlicher Modelle dem Vokabular zu und generiert schließlich den Textoutput. Die STT-Technologie wird in der Spracherkennung, Meeting-Transkription und Echtzeit-Untertitelerstellung weit verbreitet eingesetzt.

1.2. Anwendungsszenarien

  • Blog-Beiträge vorlesen
  • Generierung von mehrsprachiger Sprache

3. Text-to-Speech-API

3.1. Schnellstart

In diesem Abschnitt zeigen wir, wie Sie Text schnell mithilfe des curl-Befehls und eines Python-Clients in Sprache umwandeln können. Egal, ob Sie Entwickler oder nicht-technischer Benutzer sind, Sie können ganz einfach Sprachdateien generieren, indem Sie einfach eine API-Anfrage senden.

Senden von Anfragen mit Curl

Um mithilfe des curl-Befehls Sprache zu generieren, befolgen Sie diese Schritte:

  1. Stellen Sie sicher, dass curl auf Ihrem System installiert ist und dass Sie einen gültigen OpenAI API-Schlüssel besitzen.
  2. Verwenden Sie den folgenden curl-Befehl, um Text in Sprache umzuwandeln:
curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Heute ist ein großartiger Tag, um Produkte zu bauen, die die Menschen lieben!",
    "voice": "alloy"
  }' \
  --output sprache.mp3

Im obigen Befehl steht $OPENAI_API_KEY für Ihren API-Schlüssel, das input-Feld ist der Text, den Sie umwandeln möchten, das model-Feld gibt das zu verwendende Sprachmodell an, und der voice-Parameter wählt die Stimme aus. Hier wählen wir die synthetische Metallstimme alloy. Die abschließende --output-Option gibt den Namen und das Format der Ausgabedatei an.

Verwendung des Python-Clients

Wenn Sie die Programmiersprache Python bevorzugen, können Sie das folgende Codebeispiel verwenden:

from openai import OpenAI

client = OpenAI()

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Heute ist ein großartiger Tag, um Produkte zu bauen, die die Menschen lieben!"
)

response.stream_to_file("ausgabe.mp3")

In diesem Codeausschnitt importieren wir zunächst die openai-Bibliothek und erstellen eine Instanz des OpenAI-Clients. Anschließend verwenden wir die Methode audio.speech.create, um eine Anfrage zu senden, wobei das Modell, die Stimme und der zu konvertierende Text angegeben werden. Abschließend verwenden wir die Methode stream_to_file, um den generierten Sprachstream in eine Datei zu speichern.

3.2. Auswahl von Audioqualität und Stimme

Die Auswahl der richtigen Audioqualität und Stimme für Ihr Projekt ist ein wichtiger Schritt, um die bestmögliche Benutzererfahrung zu gewährleisten. Unsere API bietet zwei Optionen für Audioqualitätsmodelle: tts-1 und tts-1-hd.

  • tts-1: Bietet geringere Latenz, geeignet für Echtzeit-Anwendungen, jedoch mit vergleichsweise geringerer Audioqualität.
  • tts-1-hd: liefert qualitativ hochwertige Audioausgabe, geeignet für nicht-zeitkritische Bedürfnisse in hoher Qualität.

Zusätzlich bietet die TTS-API von OpenAI verschiedene Stimmeoptionen:

  • Alloy
  • Echo
  • Fable
  • Onyx
  • Nova
  • Shimmer

Je nach Projektanforderungen und Zielgruppe können Sie verschiedene Stimmen testen, um die am besten geeignete Stimme auszuwählen. Berücksichtigen Sie dabei Faktoren wie Sprechstil, Sprechgeschwindigkeit und Intonation, um eine Stimme zu finden, die angemessene Emotionen und Professionalität vermittelt.

3.3. Unterstützte Ausgabeformate und Sprachen

Die TTS-API von OpenAI verwendet standardmäßig das MP3-Ausgabeformat, unterstützt jedoch auch verschiedene andere Audioformate:

  • Opus: Geeignet für Internet-Streaming und Kommunikation mit geringer Latenz.
  • AAC: Wird für die digitale Audiokomprimierung verwendet und von Plattformen wie YouTube, Android und iOS bevorzugt.
  • FLAC: Verlustfreies Audio-Komprimierungsformat, das von Audio-Enthusiasten zur Archivierung verwendet wird.

In Bezug auf die Sprachunterstützung folgt die API hauptsächlich dem Whisper-Modell und bietet eine breite Palette von Sprachoptionen zur Unterstützung vieler Landessprachen.

3.4. Echtzeit-Audio-Streaming-Funktion

Um den Anforderungen von Echtzeitanwendungen gerecht zu werden, bietet unsere API Unterstützung für Echtzeit-Audio-Streaming. Im Folgenden finden Sie ein Python-Beispiel zur Implementierung von Echtzeit-Audio-Streaming:

from openai import OpenAI

client = OpenAI()

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Hallo Welt! Dies ist ein Streaming-Test.",
)

response.stream_to_file("output.mp3")

4. Sprache-zu-Text-API

4.1. Schnellstart

In diesem Abschnitt werden wir hauptsächlich die Funktionalität der OpenAI-API für Sprache-zu-Text vorstellen.

Zunächst benötigen Sie einen gültigen OpenAI-API-Schlüssel und müssen eine Audiodatei vorbereiten.

Sie können das curl-Kommando verwenden, um eine POST-Anfrage mit der Audiodatei zu senden. Ersetzen Sie OPENAI_API_KEY durch Ihren API-Schlüssel und setzen Sie den richtigen Dateipfad.

curl --request POST \
  --url https://api.openai.com/v1/audio/transcriptions \
  --header 'Authorization: Bearer OPENAI_API_KEY' \
  --header 'Content-Type: multipart/form-data' \
  --form file=@/Pfad/zu/Ihrer/Audiodatei.mp3 \
  --form model=whisper-1

Nach Ausführung des obigen Befehls erhalten Sie eine JSON-formatierte Antwort mit den transkribierten Textinformationen.

Beispiel:

{
  "text": "Stell dir die verrückteste Idee vor, die du jemals hattest, und du bist neugierig, wie sie sich möglicherweise auf etwas auswirken könnte, das 100, 1.000 Mal größer ist. ..."
}

4.2. Unterstützte Dateiformate und -größen

Diese API unterstützt verschiedene gängige Audio-Dateiformate, um verschiedenen Anforderungen in unterschiedlichen Szenarien gerecht zu werden. Unterstützte Dateiformate umfassen, sind jedoch nicht beschränkt auf mp3, mp4, mpeg, mpga, m4a, wav, webm usw. Dies ermöglicht es Benutzern, Audiodateien aus verschiedenen Quellen leicht zu verarbeiten.

Was die Dateigröße betrifft, hat die aktuelle API eine Beschränkung von maximal 25 MB. Dies bedeutet, dass Sie, wenn Ihre Audiodatei größer als 25 MB ist, diese in mehrere Segmente aufteilen oder ein effizienteres Komprimierungsformat verwenden müssen. Zum Beispiel bieten die Formate mp3 und opus in der Regel eine effiziente Komprimierung, wodurch die Dateigröße ohne zu starke Beeinträchtigung der Audioqualität reduziert wird.

Wenn Sie auf eine Datei stoßen, die größer als 25 MB ist, können Sie in Erwägung ziehen, die PyDub-Bibliothek in Python zu verwenden, um Ihre Audiodatei zu segmentieren:

from pydub import AudioSegment

audio_file = AudioSegment.from_file("Ihre_große_Audiodatei.mp3")

interval = 10 * 60 * 1000  # 10 Minuten

chunks = make_chunks(audio_file, interval)

for i, chunk in enumerate(chunks):
    chunk_name = f"audio_chunk{i}.mp3"
    chunk.export(chunk_name, format="mp3")

In dem obigen Code wird die Funktion make_chunks eine große Audiodatei in mehrere Audiosegmente mit einem Zeitintervall von 10 Minuten aufteilen. Diese Segmente liegen alle innerhalb der Dateigrößenbeschränkung, die von der API verlangt wird, und können separat an die OpenAI-API zum Transkribieren hochgeladen werden.

Bitte beachten Sie, dass obwohl PyDub uns eine einfache Möglichkeit bietet, mit Audiodateien umzugehen, es dennoch empfohlen wird, bei der Verwendung von Drittanbietersoftware besonderes Augenmerk auf Sicherheit und Stabilität zu legen. OpenAI übernimmt keine Garantien für Drittanbietersoftware.