Schnellstart: Erste Schritte mit Azure OpenAI-Audiogenerierung

Audiofähige Modelle führen die Audiomodalität in die vorhandene /chat/completions API ein. Das Audiomodell erweitert das Potenzial für KI-Anwendungen in Text- und sprachbasierten Interaktionen und Audioanalysen. Zu den in gpt-4o-audio-preview und gpt-4o-mini-audio-preview Modellen unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Hier ist eine Tabelle der unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispielanwendungsfall
Text Text + Audio Text zu Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Audiobuchgenerierung
Audio Text Audiotranskription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audiotranskription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktive KI-Anwendungen erreichen. Modelle, die Audioeingaben und -ausgaben unterstützen, ermöglichen es Ihnen, gesprochene Audioantworten auf Eingabeaufforderungen zu generieren und Audioeingaben zu verwenden, um das Modell zu steuern.

Unterstützte Modelle

Die folgenden OpenAI-Modelle unterstützen die Audiogenerierung:

Modell Audiogenerierung? Primäre Verwendung
gpt-4o-audio-preview ✔️ Chat-Komplettierungen mit gesprochener Ausgabe
gpt-4o-mini-tts ✔️ Schnelle, skalierbare Text-zu-Sprache
gpt-4o-mini-audio-preview ✔️ Asynchrone Audiogenerierung
gpt-realtime ✔️ Interaktive Echtzeitstimme
gpt-realtime-mini ✔️ Audiostreaming mit geringer Latenz
tts-1 / tts-1-hd ✔️ Allgemeine Sprachsynthese

Informationen zur Verfügbarkeit von Regionen finden Sie in der Dokumentation zu Modellen und Versionen.

Hinweis

Die Realtime-API verwendet das gleiche zugrunde liegende GPT-4o-Audiomodell wie die Fertigstellungs-API, ist jedoch für Interaktionen mit geringer Latenz und Echtzeitaudio optimiert.

Eingabeanforderungen

Die folgenden Stimmen werden für Audio Out unterstützt: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin und Cedar.

Die folgenden Audioausgabeformate werden unterstützt: wav, mp3, flac, opus, pcm16 und aac.

Die maximale Audiodateigröße beträgt 20 MB.

API-Unterstützung

Unterstützung für Audioabschlusse wurde zuerst in der API-Version 2025-01-01-previewhinzugefügt.

Bereitstellen eines Modells für die Audiogenerierung

So stellen Sie das modell gpt-4o-mini-audio-preview im Microsoft Foundry-Portal bereit:

  1. Wechseln Sie zum Foundry-Portal , und erstellen oder wählen Sie Ihr Projekt aus.
  2. Wählen Sie "Modelle + Endpunkte " unter "Meine Objekte " im linken Bereich aus.
  3. Wählen Sie + Modell bereitstellen>Basismodell bereitstellen aus, um das Fenster zur Bereitstellung zu öffnen.
  4. Suchen Sie nach dem gpt-4o-mini-audio-preview Modell, und wählen Sie es aus, und wählen Sie dann "Bestätigen" aus.
  5. Überprüfen Sie die Bereitstellungsdetails, und wählen Sie "Bereitstellen" aus.
  6. Folgen Sie dem Assistenten, um die Bereitstellung des Modells abzuschließen.

Nachdem Sie nun über eine Bereitstellung des gpt-4o-mini-audio-preview Modells verfügen, können Sie mit dem Modell im Foundry-Portal im Chat Playground oder der Chat-Abschluss-API interagieren.

Verwenden der GPT-4o-Audiogenerierung

Führen Sie die folgenden Schritte aus, um mit Ihrem bereitgestellten gpt-4o-mini-audio-preview-Modell im Chat Playground des Microsoft Foundry-Portals zu chatten:

  1. Gehen Sie zum Foundry-Portal und wählen Sie das Projekt mit Ihrem bereitgestellten gpt-4o-mini-audio-preview Modell aus.

  2. Wechseln Sie zu Ihrem Projekt in Foundry.

  3. Wählen Sie im linken Bereich "Playgrounds" aus.

  4. Wählen Sie den Audio-Playground> und probieren Sie den Chat-Playground aus.

    Hinweis

    Der Audio-Playground unterstützt das gpt-4o-mini-audio-preview Modell nicht. Verwenden Sie den Chat-Playground , wie in diesem Abschnitt beschrieben.

  5. Wählen Sie das bereitgestellte gpt-4o-mini-audio-preview Modell aus dem Dropdown-Menü Bereitstellung aus.

  6. Beginnen Sie mit dem Modell zu chatten und die Audioantworten zu hören.

    Screenshot der Seite

    Sie können:

    • Aufzeichnen von Audioaufforderungen.
    • Fügen Sie Audiodateien an den Chat an.
    • Geben Sie Texteingabeaufforderungen ein.

ReferenzdokumentationLibrary QuellcodePackage (npm)Beispiele

Audiofähige Modelle führen die Audiomodalität in die vorhandene /chat/completions API ein. Das Audiomodell erweitert das Potenzial für KI-Anwendungen in Text- und sprachbasierten Interaktionen und Audioanalysen. Zu den in gpt-4o-audio-preview und gpt-4o-mini-audio-preview Modellen unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Hier ist eine Tabelle der unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispielanwendungsfall
Text Text + Audio Text zu Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Audiobuchgenerierung
Audio Text Audiotranskription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audiotranskription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktive KI-Anwendungen erreichen. Modelle, die Audioeingaben und -ausgaben unterstützen, ermöglichen es Ihnen, gesprochene Audioantworten auf Eingabeaufforderungen zu generieren und Audioeingaben zu verwenden, um das Modell zu steuern.

Unterstützte Modelle

Die folgenden OpenAI-Modelle unterstützen die Audiogenerierung:

Modell Audiogenerierung? Primäre Verwendung
gpt-4o-audio-preview ✔️ Chat-Komplettierungen mit gesprochener Ausgabe
gpt-4o-mini-tts ✔️ Schnelle, skalierbare Text-zu-Sprache
gpt-4o-mini-audio-preview ✔️ Asynchrone Audiogenerierung
gpt-realtime ✔️ Interaktive Echtzeitstimme
gpt-realtime-mini ✔️ Audiostreaming mit geringer Latenz
tts-1 / tts-1-hd ✔️ Allgemeine Sprachsynthese

Informationen zur Verfügbarkeit von Regionen finden Sie in der Dokumentation zu Modellen und Versionen.

Hinweis

Die Realtime-API verwendet das gleiche zugrunde liegende GPT-4o-Audiomodell wie die Fertigstellungs-API, ist jedoch für Interaktionen mit geringer Latenz und Echtzeitaudio optimiert.

Eingabeanforderungen

Die folgenden Stimmen werden für Audio Out unterstützt: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin und Cedar.

Die folgenden Audioausgabeformate werden unterstützt: wav, mp3, flac, opus, pcm16 und aac.

Die maximale Audiodateigröße beträgt 20 MB.

API-Unterstützung

Unterstützung für Audioabschlusse wurde zuerst in der API-Version 2025-01-01-previewhinzugefügt.

Voraussetzungen

Microsoft Entra ID Voraussetzungen

Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:

  • Installieren Sie die Azure CLI, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird.
  • Weisen Sie die Cognitive Services User Rolle Ihrem Benutzerkonto zu. Sie können rollen im Azure-Portal unter Access control (IAM)>Add role assignment zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart , und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:

    mkdir audio-completions-quickstart && cd audio-completions-quickstart
    
  2. Erstellen Sie den package.json mit dem folgenden Befehl:

    npm init -y
    
  3. Installieren Sie die OpenAI-Clientbibliothek für JavaScript mit:

    npm install openai
    
  4. Installieren Sie für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID das Paket @azure/identity mit.

    npm install @azure/identity
    

Abrufen von Ressourceninformationen

Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung mit Ihrer Azure OpenAI-Ressource zu authentifizieren:

Variablenname Wert
AZURE_OPENAI_ENDPOINT Dieser Wert befindet sich im Abschnitt Keys and Endpoint beim Untersuchen der Ressource aus dem Azure-Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie bei der Bereitstellung eines Modells ausgewählt haben. Dieser Wert befindet sich unter Resource Management>Model Deployments im Azure-Portal.

Erfahren Sie mehr über schlüssellose Authentifizierung und Festlegen von Umgebungsvariablen.

Vorsicht

Um die empfohlene schlüssellose Authentifizierung mit dem SDK zu verwenden, stellen Sie sicher, dass die AZURE_OPENAI_API_KEY Umgebungsvariable nicht festgelegt ist.

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die to-audio.js Datei mit dem folgenden Code:

    require("dotenv").config();
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    const { writeFileSync } = require("node:fs");
    
    // Keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://ai.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    // Set environment variables or edit the corresponding values here.
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT";
    const deployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini-audio-preview"; 
    const apiVersion = process.env.OPENAI_API_VERSION || "2025-01-01-preview"; 
    
    const client = new AzureOpenAI({ 
        endpoint, 
        azureADTokenProvider, 
        apiVersion, 
        deployment 
    }); 
    
    async function main() {
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-mini-audio-preview", 
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: [ 
            { 
                role: "user", 
                content: "Is a golden retriever a good family dog?" 
            } 
            ] 
        }); 
    
    // Inspect returned data 
    console.log(response.choices[0]); 
    
    // Write the output audio data to a file
    writeFileSync( 
        "dog.wav", 
        Buffer.from(response.choices[0].message.audio.data, 'base64'), 
        { encoding: "utf-8" } 
    ); 
    }
    
    main().catch((err) => {
      console.error("Error occurred:", err);
    });
    
    module.exports = { main };
    
  2. Melden Sie sich mit dem folgenden Befehl bei Azure an:

    az login
    
  3. Führen Sie die JavaScript-Datei aus.

    node to-audio.js
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für die Ton-/Audioerzeugung aus Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung: "Ist ein goldener Retriever ein guter Familienhund?"

Generieren von Audio und Text aus der Audioeingabe

  1. Erstellen Sie die from-audio.js Datei mit dem folgenden Code:

    require("dotenv").config();
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    const fs = require('fs').promises;
    const { writeFileSync } = require("node:fs");
    
    // Keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://ai.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    // Set environment variables or edit the corresponding values here.
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT";
    const apiVersion = "2025-01-01-preview"; 
    const deployment = "gpt-4o-mini-audio-preview"; 
    
    const client = new AzureOpenAI({ 
        endpoint, 
        azureADTokenProvider, 
        apiVersion, 
        deployment 
    });    
    
    async function main() {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({
            model: "gpt-4o-mini-audio-preview",
            modalities: ["text", "audio"],
            audio: { voice: "alloy", format: "wav" }, 
            messages: [
                {
                    role: "user",
                    content: [
                        { 
                            type: "text", 
                            text: "Describe in detail the spoken audio input." 
                        },
                        { 
                            type: "input_audio", 
                            input_audio: { 
                                data: base64str, 
                                format: "wav" 
                            } 
                        }
                    ]
                }
            ]
        });
    
        console.log(response.choices[0]); 
    
        // Write the output audio data to a file
        writeFileSync( 
            "analysis.wav", 
            Buffer.from(response.choices[0].message.audio.data, 'base64'), 
            { encoding: "utf-8" } 
        ); 
    }
    
    main().catch((err) => {
        console.error("Error occurred:", err);
    });
    
    module.exports = { main };
    
  2. Melden Sie sich mit dem folgenden Befehl bei Azure an:

    az login
    
  3. Führen Sie die JavaScript-Datei aus.

    node from-audio.js
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe von Audio- und Textgenerierung aus Audioeingaben

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Außerdem wird eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript generiert. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung.

Generieren von Audio und Verwenden von Multi-Turn-Chatabschlussen

  1. Erstellen Sie die multi-turn.js Datei mit dem folgenden Code:

    require("dotenv").config();
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    const fs = require('fs').promises;
    
    // Keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://ai.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    // Set environment variables or edit the corresponding values here.
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT";
    const apiVersion = "2025-01-01-preview"; 
    const deployment = "gpt-4o-mini-audio-preview"; 
    
    const client = new AzureOpenAI({ 
        endpoint, 
        azureADTokenProvider, 
        apiVersion, 
        deployment 
    }); 
    
    async function main() {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Initialize messages with the first turn's user input 
        const messages = [
            {
                role: "user",
                content: [
                    { 
                        type: "text", 
                        text: "Describe in detail the spoken audio input." 
                    },
                    { 
                        type: "input_audio", 
                        input_audio: { 
                            data: base64str, 
                            format: "wav" 
                        } 
                    }
                ]
            }
        ];
    
        // Get the first turn's response 
    
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-mini-audio-preview",
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: messages
        }); 
    
        console.log(response.choices[0]); 
    
        // Add a history message referencing the previous turn's audio by ID 
        messages.push({ 
            role: "assistant", 
            audio: { id: response.choices[0].message.audio.id }
        });
    
        // Add a new user message for the second turn
        messages.push({ 
            role: "user", 
            content: [ 
                { 
                    type: "text", 
                    text: "Very concisely summarize the favorability." 
                } 
            ] 
        }); 
    
        // Send the follow-up request with the accumulated messages
        const followResponse = await client.chat.completions.create({ 
            model: "gpt-4o-mini-audio-preview",
            messages: messages
        });
    
        console.log(followResponse.choices[0].message.content); 
    }
    
    main().catch((err) => {
        console.error("Error occurred:", err);
    });
    
    module.exports = { main };
    
  2. Melden Sie sich mit dem folgenden Befehl bei Azure an:

    az login
    
  3. Führen Sie die JavaScript-Datei aus.

    node multi-turn.js
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für Abschluss des Chats mit Mehrfachinteraktionen

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Danach wird ein mehrstufiger Chat abgeschlossen, um die gesprochene Audioeingabe kurz zusammenzufassen.

Quellcode | der BibliothekPaket | Proben

Audiofähige Modelle führen die Audiomodalität in die vorhandene /chat/completions API ein. Das Audiomodell erweitert das Potenzial für KI-Anwendungen in Text- und sprachbasierten Interaktionen und Audioanalysen. Zu den in gpt-4o-audio-preview und gpt-4o-mini-audio-preview Modellen unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Hier ist eine Tabelle der unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispielanwendungsfall
Text Text + Audio Text zu Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Audiobuchgenerierung
Audio Text Audiotranskription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audiotranskription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktive KI-Anwendungen erreichen. Modelle, die Audioeingaben und -ausgaben unterstützen, ermöglichen es Ihnen, gesprochene Audioantworten auf Eingabeaufforderungen zu generieren und Audioeingaben zu verwenden, um das Modell zu steuern.

Unterstützte Modelle

Die folgenden OpenAI-Modelle unterstützen die Audiogenerierung:

Modell Audiogenerierung? Primäre Verwendung
gpt-4o-audio-preview ✔️ Chat-Komplettierungen mit gesprochener Ausgabe
gpt-4o-mini-tts ✔️ Schnelle, skalierbare Text-zu-Sprache
gpt-4o-mini-audio-preview ✔️ Asynchrone Audiogenerierung
gpt-realtime ✔️ Interaktive Echtzeitstimme
gpt-realtime-mini ✔️ Audiostreaming mit geringer Latenz
tts-1 / tts-1-hd ✔️ Allgemeine Sprachsynthese

Informationen zur Verfügbarkeit von Regionen finden Sie in der Dokumentation zu Modellen und Versionen.

Hinweis

Die Realtime-API verwendet das gleiche zugrunde liegende GPT-4o-Audiomodell wie die Fertigstellungs-API, ist jedoch für Interaktionen mit geringer Latenz und Echtzeitaudio optimiert.

Eingabeanforderungen

Die folgenden Stimmen werden für Audio Out unterstützt: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin und Cedar.

Die folgenden Audioausgabeformate werden unterstützt: wav, mp3, flac, opus, pcm16 und aac.

Die maximale Audiodateigröße beträgt 20 MB.

API-Unterstützung

Unterstützung für Audioabschlusse wurde zuerst in der API-Version 2025-01-01-previewhinzugefügt.

Verwenden Sie dieses Handbuch, um mit dem Azure OpenAI SDK für Python audio zu generieren.

Voraussetzungen

Microsoft Entra ID Voraussetzungen

Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:

  • Installieren Sie die Azure CLI, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird.
  • Weisen Sie die Cognitive Services User Rolle Ihrem Benutzerkonto zu. Sie können rollen im Azure-Portal unter Access control (IAM)>Add role assignment zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart , und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:

    mkdir audio-completions-quickstart && cd audio-completions-quickstart
    
  2. Erstellen Sie eine virtuelle Umgebung. Wenn Sie bereits Python 3.10 oder höher installiert haben, können Sie eine virtuelle Umgebung mit den folgenden Befehlen erstellen:

    py -3 -m venv .venv
    .venv\scripts\activate
    

    Die Aktivierung der Python-Umgebung bedeutet, dass Sie beim Ausführen von python oder pip über die Befehlszeile den Python-Interpreter verwenden, der im Ordner .venv Ihrer Anwendung enthalten ist. Sie können den deactivate Befehl verwenden, um die virtuelle Python-Umgebung zu beenden und sie später bei Bedarf erneut zu aktivieren.

    Tipp

    Es wird empfohlen, eine neue Python Umgebung zu erstellen und zu aktivieren, um die für dieses Lernprogramm benötigten Pakete zu installieren. Installieren Sie keine Pakete in Ihrer globalen Python-Installation. Sie sollten beim Installieren von python Paketen immer eine virtuelle oder conda-Umgebung verwenden, andernfalls können Sie die globale Installation von Python unterbrechen.

  3. Installieren Sie die OpenAI-Clientbibliothek für Python mit:

    pip install openai
    
  4. Installieren Sie für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID das Paket azure-identity mit.

    pip install azure-identity
    

Abrufen von Ressourceninformationen

Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung mit Ihrer Azure OpenAI-Ressource zu authentifizieren:

Variablenname Wert
AZURE_OPENAI_ENDPOINT Dieser Wert befindet sich im Abschnitt Keys and Endpoint beim Untersuchen der Ressource aus dem Azure-Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie bei der Bereitstellung eines Modells ausgewählt haben. Dieser Wert befindet sich unter Resource Management>Model Deployments im Azure-Portal.

Erfahren Sie mehr über schlüssellose Authentifizierung und Festlegen von Umgebungsvariablen.

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die to-audio.py Datei mit dem folgenden Code:

    import requests
    import base64 
    import os 
    from openai import AzureOpenAI
    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    client=AzureOpenAI(
        azure_ad_token_provider=token_provider,
        azure_endpoint=endpoint,
        api_version="2025-01-01-preview"
    )
    
    # Make the audio chat completions request
    completion=client.chat.completions.create(
        model="gpt-4o-mini-audio-preview",
        modalities=["text", "audio"],
        audio={"voice": "alloy", "format": "wav"},
        messages=[
            {
                "role": "user",
                "content": "Is a golden retriever a good family dog?"
            }
        ]
    )
    
    print(completion.choices[0])
    
    # Write the output audio data to a file
    wav_bytes=base64.b64decode(completion.choices[0].message.audio.data)
    with open("dog.wav", "wb") as f:
        f.write(wav_bytes)
    
  2. Führen Sie die datei Python aus.

    python to-audio.py
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für die Ton-/Audioerzeugung aus Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung: "Ist ein goldener Retriever ein guter Familienhund?"

Tipp

Wiedergeben der generierten dog.wav Datei, um zu überprüfen, ob die Audiodaten korrekt generiert wurden. Sie können einen beliebigen Media Player verwenden oder auf die Datei doppelklicken, um sie in Ihrem Standardaudioplayer zu öffnen.

Generieren von Audio und Text aus der Audioeingabe

  1. Erstellen Sie die from-audio.py Datei mit dem folgenden Code:

    import base64
    import os
    from openai import AzureOpenAI
    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    client=AzureOpenAI(
        azure_ad_token_provider=token_provider,
        azure_endpoint=endpoint,
        api_version="2025-01-01-preview"
    )
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
        encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    # Make the audio chat completions request
    completion = client.chat.completions.create( 
        model="gpt-4o-mini-audio-preview", 
        modalities=["text", "audio"], 
        audio={"voice": "alloy", "format": "wav"}, 
        messages=[ 
            { 
                "role": "user", 
                "content": [ 
                    {  
                        "type": "text", 
                        "text": "Describe in detail the spoken audio input." 
                    }, 
                    { 
                        "type": "input_audio", 
                        "input_audio": { 
                            "data": encoded_string, 
                            "format": "wav" 
                        } 
                    } 
                ] 
            }, 
        ] 
    ) 
    
    print(completion.choices[0].message.audio.transcript)
    
    # Write the output audio data to a file
    wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
    with open("analysis.wav", "wb") as f:
        f.write(wav_bytes)
    
  2. Führen Sie die datei Python aus.

    python from-audio.py
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe von Audio- und Textgenerierung aus Audioeingaben

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Außerdem wird eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript generiert. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung.

Tipp

Wiedergeben der generierten analysis.wav Datei, um die Audiobeschreibung der Eingabe zu hören.

Generieren von Audio und Verwenden von Multi-Turn-Chatabschlussen

  1. Erstellen Sie die multi-turn.py Datei mit dem folgenden Code:

    import base64 
    import os 
    from openai import AzureOpenAI 
    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    client=AzureOpenAI(
        azure_ad_token_provider=token_provider,
        azure_endpoint=endpoint,
        api_version="2025-01-01-preview"
    )
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
        encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    # Initialize messages with the first turn's user input 
    messages = [
        { 
            "role": "user", 
            "content": [ 
                { "type": "text", "text": "Describe in detail the spoken audio input." }, 
                { "type": "input_audio", 
                    "input_audio": { 
                        "data": encoded_string, 
                        "format": "wav" 
                    } 
                } 
            ] 
        }] 
    
    # Get the first turn's response
    
    completion = client.chat.completions.create( 
        model="gpt-4o-mini-audio-preview", 
        modalities=["text", "audio"], 
        audio={"voice": "alloy", "format": "wav"}, 
        messages=messages
    ) 
    
    print("Get the first turn's response:")
    print(completion.choices[0].message.audio.transcript) 
    
    print("Add a history message referencing the first turn's audio by ID:")
    print(completion.choices[0].message.audio.id)
    
    # Add a history message referencing the first turn's audio by ID 
    messages.append({ 
        "role": "assistant", 
        "audio": { "id": completion.choices[0].message.audio.id } 
    }) 
    
    # Add the next turn's user message 
    messages.append({ 
        "role": "user", 
        "content": "Very briefly, summarize the favorability." 
    }) 
    
    # Send the follow-up request with the accumulated messages
    completion = client.chat.completions.create( 
        model="gpt-4o-mini-audio-preview", 
        messages=messages
    ) 
    
    print("Very briefly, summarize the favorability.")
    print(completion.choices[0].message.content)
    
  2. Führen Sie die datei Python aus.

    python multi-turn.py
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für Abschluss des Chats mit Mehrfachinteraktionen

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Danach wird ein mehrstufiger Chat abgeschlossen, um die gesprochene Audioeingabe kurz zusammenzufassen.

Tipp

Überprüfen Sie die Konsolenausgabe, um das Transkript zu sehen und zu verifizieren, ob die mehrstufige Unterhaltung erfolgreich abgeschlossen wurde.

REST-API-Spezifikation |

Audiofähige Modelle führen die Audiomodalität in die vorhandene /chat/completions API ein. Das Audiomodell erweitert das Potenzial für KI-Anwendungen in Text- und sprachbasierten Interaktionen und Audioanalysen. Zu den in gpt-4o-audio-preview und gpt-4o-mini-audio-preview Modellen unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Hier ist eine Tabelle der unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispielanwendungsfall
Text Text + Audio Text zu Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Audiobuchgenerierung
Audio Text Audiotranskription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audiotranskription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktive KI-Anwendungen erreichen. Modelle, die Audioeingaben und -ausgaben unterstützen, ermöglichen es Ihnen, gesprochene Audioantworten auf Eingabeaufforderungen zu generieren und Audioeingaben zu verwenden, um das Modell zu steuern.

Unterstützte Modelle

Die folgenden OpenAI-Modelle unterstützen die Audiogenerierung:

Modell Audiogenerierung? Primäre Verwendung
gpt-4o-audio-preview ✔️ Chat-Komplettierungen mit gesprochener Ausgabe
gpt-4o-mini-tts ✔️ Schnelle, skalierbare Text-zu-Sprache
gpt-4o-mini-audio-preview ✔️ Asynchrone Audiogenerierung
gpt-realtime ✔️ Interaktive Echtzeitstimme
gpt-realtime-mini ✔️ Audiostreaming mit geringer Latenz
tts-1 / tts-1-hd ✔️ Allgemeine Sprachsynthese

Informationen zur Verfügbarkeit von Regionen finden Sie in der Dokumentation zu Modellen und Versionen.

Hinweis

Die Realtime-API verwendet das gleiche zugrunde liegende GPT-4o-Audiomodell wie die Fertigstellungs-API, ist jedoch für Interaktionen mit geringer Latenz und Echtzeitaudio optimiert.

Eingabeanforderungen

Die folgenden Stimmen werden für Audio Out unterstützt: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin und Cedar.

Die folgenden Audioausgabeformate werden unterstützt: wav, mp3, flac, opus, pcm16 und aac.

Die maximale Audiodateigröße beträgt 20 MB.

API-Unterstützung

Unterstützung für Audioabschlusse wurde zuerst in der API-Version 2025-01-01-previewhinzugefügt.

Voraussetzungen

Microsoft Entra ID Voraussetzungen

Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:

  • Installieren Sie die Azure CLI, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird.
  • Weisen Sie die Cognitive Services User Rolle Ihrem Benutzerkonto zu. Sie können rollen im Azure-Portal unter Access control (IAM)>Add role assignment zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart , und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:

    mkdir audio-completions-quickstart && cd audio-completions-quickstart
    
  2. Erstellen Sie eine virtuelle Umgebung. Wenn Sie bereits Python 3.10 oder höher installiert haben, können Sie eine virtuelle Umgebung mit den folgenden Befehlen erstellen:

    py -3 -m venv .venv
    .venv\scripts\activate
    

    Die Aktivierung der Python-Umgebung bedeutet, dass Sie beim Ausführen von python oder pip über die Befehlszeile den Python-Interpreter verwenden, der im Ordner .venv Ihrer Anwendung enthalten ist. Sie können den deactivate Befehl verwenden, um die virtuelle Python-Umgebung zu beenden und sie später bei Bedarf erneut zu aktivieren.

    Tipp

    Es wird empfohlen, eine neue Python Umgebung zu erstellen und zu aktivieren, um die für dieses Lernprogramm benötigten Pakete zu installieren. Installieren Sie keine Pakete in Ihrer globalen Python-Installation. Sie sollten beim Installieren von python Paketen immer eine virtuelle oder conda-Umgebung verwenden, andernfalls können Sie die globale Installation von Python unterbrechen.

  3. Installieren Sie die OpenAI-Clientbibliothek für Python mit:

    pip install openai
    
  4. Installieren Sie für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID das Paket azure-identity mit.

    pip install azure-identity
    

Abrufen von Ressourceninformationen

Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung mit Ihrer Azure OpenAI-Ressource zu authentifizieren:

Variablenname Wert
AZURE_OPENAI_ENDPOINT Dieser Wert befindet sich im Abschnitt Keys and Endpoint beim Untersuchen der Ressource aus dem Azure-Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie bei der Bereitstellung eines Modells ausgewählt haben. Dieser Wert befindet sich unter Resource Management>Model Deployments im Azure-Portal.

Erfahren Sie mehr über schlüssellose Authentifizierung und Festlegen von Umgebungsvariablen.

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die to-audio.py Datei mit dem folgenden Code:

    import requests
    import base64 
    import os 
    from openai import AzureOpenAI
    from azure.identity import DefaultAzureCredential
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    credential = DefaultAzureCredential()
    token = credential.get_token("https://ai.azure.com/.default")
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-mini-audio-preview/chat/completions?api-version={api_version}"
    headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }
    body = {
      "modalities": ["audio", "text"],
      "model": "gpt-4o-mini-audio-preview",
      "audio": {
          "format": "wav",
          "voice": "alloy"
      },
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "Is a golden retriever a good family dog?"
            }
          ]
        }
      ]
    }
    
    # Make the audio chat completions request
    completion = requests.post(url, headers=headers, json=body)
    audio_data = completion.json()['choices'][0]['message']['audio']['data']
    
    # Write the output audio data to a file
    wav_bytes = base64.b64decode(audio_data)
    with open("dog.wav", "wb") as f: 
      f.write(wav_bytes) 
    
  2. Führen Sie die datei Python aus.

    python to-audio.py
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für die Ton-/Audioerzeugung aus Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung: "Ist ein goldener Retriever ein guter Familienhund?"

Generieren von Audio und Text aus der Audioeingabe

  1. Erstellen Sie die from-audio.py Datei mit dem folgenden Code:

    import requests
    import base64
    import os
    from azure.identity import DefaultAzureCredential
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    credential = DefaultAzureCredential()
    token = credential.get_token("https://ai.azure.com/.default")
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
      encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-mini-audio-preview/chat/completions?api-version={api_version}"
    headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }
    body = {
      "modalities": ["audio", "text"],
      "model": "gpt-4o-mini-audio-preview",
      "audio": {
          "format": "wav",
          "voice": "alloy"
      },
      "messages": [
        { 
            "role": "user", 
            "content": [ 
                {  
                    "type": "text", 
                    "text": "Describe in detail the spoken audio input." 
                }, 
                { 
                    "type": "input_audio", 
                    "input_audio": { 
                        "data": encoded_string, 
                        "format": "wav" 
                    } 
                } 
            ] 
        }, 
      ]
    }
    
    completion = requests.post(url, headers=headers, json=body)
    
    print(completion.json()['choices'][0]['message']['audio']['transcript'])
    
    # Write the output audio data to a file
    audio_data = completion.json()['choices'][0]['message']['audio']['data'] 
    wav_bytes = base64.b64decode(audio_data)
    with open("analysis.wav", "wb") as f: 
      f.write(wav_bytes) 
    
  2. Führen Sie die datei Python aus.

    python from-audio.py
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe von Audio- und Textgenerierung aus Audioeingaben

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Außerdem wird eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript generiert. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung.

Generieren von Audio und Verwenden von Multi-Turn-Chatabschlussen

  1. Erstellen Sie die multi-turn.py Datei mit dem folgenden Code:

    import requests
    import base64 
    import os 
    from openai import AzureOpenAI 
    from azure.identity import DefaultAzureCredential
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    credential = DefaultAzureCredential()
    token = credential.get_token("https://ai.azure.com/.default")
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-mini-audio-preview/chat/completions?api-version={api_version}"
    headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
      encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    # Initialize messages with the first turn's user input 
    messages = [
        { 
            "role": "user", 
            "content": [ 
                {  
                    "type": "text", 
                    "text": "Describe in detail the spoken audio input." 
                }, 
                { 
                    "type": "input_audio", 
                    "input_audio": { 
                        "data": encoded_string, 
                        "format": "wav" 
                    } 
                } 
            ] 
        }] 
    
    body = {
      "modalities": ["audio", "text"],
      "model": "gpt-4o-mini-audio-preview",
      "audio": {
          "format": "wav",
          "voice": "alloy"
      },
      "messages": messages
    }
    
    # Get the first turn's response, including generated audio 
    completion = requests.post(url, headers=headers, json=body)
    
    print("Get the first turn's response:")
    print(completion.json()['choices'][0]['message']['audio']['transcript']) 
    
    print("Add a history message referencing the first turn's audio by ID:")
    print(completion.json()['choices'][0]['message']['audio']['id'])
    
    # Add a history message referencing the first turn's audio by ID 
    messages.append({ 
        "role": "assistant", 
        "audio": { "id": completion.json()['choices'][0]['message']['audio']['id'] } 
    }) 
    
    # Add the next turn's user message 
    messages.append({ 
        "role": "user", 
        "content": "Very briefly, summarize the favorability." 
    }) 
    
    body = {
      "model": "gpt-4o-mini-audio-preview",
      "messages": messages
    }
    
    # Send the follow-up request with the accumulated messages
    completion = requests.post(url, headers=headers, json=body) 
    
    print("Very briefly, summarize the favorability.")
    print(completion.json()['choices'][0]['message']['content'])
    
  2. Führen Sie die datei Python aus.

    python multi-turn.py
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für Abschluss des Chats mit Mehrfachinteraktionen

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Danach wird ein mehrstufiger Chat abgeschlossen, um die gesprochene Audioeingabe kurz zusammenzufassen.

ReferenzdokumentationLibrary QuellcodePackage (npm)Beispiele

Audiofähige Modelle führen die Audiomodalität in die vorhandene /chat/completions API ein. Das Audiomodell erweitert das Potenzial für KI-Anwendungen in Text- und sprachbasierten Interaktionen und Audioanalysen. Zu den in gpt-4o-audio-preview und gpt-4o-mini-audio-preview Modellen unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Hier ist eine Tabelle der unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispielanwendungsfall
Text Text + Audio Text zu Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Audiobuchgenerierung
Audio Text Audiotranskription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audiotranskription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktive KI-Anwendungen erreichen. Modelle, die Audioeingaben und -ausgaben unterstützen, ermöglichen es Ihnen, gesprochene Audioantworten auf Eingabeaufforderungen zu generieren und Audioeingaben zu verwenden, um das Modell zu steuern.

Unterstützte Modelle

Die folgenden OpenAI-Modelle unterstützen die Audiogenerierung:

Modell Audiogenerierung? Primäre Verwendung
gpt-4o-audio-preview ✔️ Chat-Komplettierungen mit gesprochener Ausgabe
gpt-4o-mini-tts ✔️ Schnelle, skalierbare Text-zu-Sprache
gpt-4o-mini-audio-preview ✔️ Asynchrone Audiogenerierung
gpt-realtime ✔️ Interaktive Echtzeitstimme
gpt-realtime-mini ✔️ Audiostreaming mit geringer Latenz
tts-1 / tts-1-hd ✔️ Allgemeine Sprachsynthese

Informationen zur Verfügbarkeit von Regionen finden Sie in der Dokumentation zu Modellen und Versionen.

Hinweis

Die Realtime-API verwendet das gleiche zugrunde liegende GPT-4o-Audiomodell wie die Fertigstellungs-API, ist jedoch für Interaktionen mit geringer Latenz und Echtzeitaudio optimiert.

Eingabeanforderungen

Die folgenden Stimmen werden für Audio Out unterstützt: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin und Cedar.

Die folgenden Audioausgabeformate werden unterstützt: wav, mp3, flac, opus, pcm16 und aac.

Die maximale Audiodateigröße beträgt 20 MB.

API-Unterstützung

Unterstützung für Audioabschlusse wurde zuerst in der API-Version 2025-01-01-previewhinzugefügt.

Voraussetzungen

Microsoft Entra ID Voraussetzungen

Für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID müssen Sie:

  • Installieren Sie die Azure CLI, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird.
  • Weisen Sie die Cognitive Services User Rolle Ihrem Benutzerkonto zu. Sie können rollen im Azure-Portal unter Access control (IAM)>Add role assignment zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart , und wechseln Sie mit dem folgenden Befehl zum Schnellstartordner:

    mkdir audio-completions-quickstart && cd audio-completions-quickstart
    
  2. Erstellen Sie den package.json mit dem folgenden Befehl:

    npm init -y
    
  3. Aktualisieren Sie das package.json auf ECMAScript mit dem folgenden Befehl:

    npm pkg set type=module
    
  4. Installieren Sie die OpenAI-Clientbibliothek für JavaScript mit:

    npm install openai
    
  5. Installieren Sie für die empfohlene schlüssellose Authentifizierung mit Microsoft Entra ID das Paket @azure/identity mit.

    npm install @azure/identity
    

Abrufen von Ressourceninformationen

Sie müssen die folgenden Informationen abrufen, um Ihre Anwendung mit Ihrer Azure OpenAI-Ressource zu authentifizieren:

Variablenname Wert
AZURE_OPENAI_ENDPOINT Dieser Wert befindet sich im Abschnitt Keys and Endpoint beim Untersuchen der Ressource aus dem Azure-Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie bei der Bereitstellung eines Modells ausgewählt haben. Dieser Wert befindet sich unter Resource Management>Model Deployments im Azure-Portal.

Erfahren Sie mehr über schlüssellose Authentifizierung und Festlegen von Umgebungsvariablen.

Vorsicht

Um die empfohlene schlüssellose Authentifizierung mit dem SDK zu verwenden, stellen Sie sicher, dass die AZURE_OPENAI_API_KEY Umgebungsvariable nicht festgelegt ist.

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die to-audio.ts Datei mit dem folgenden Code:

    import { writeFileSync } from "node:fs";
    import { AzureOpenAI } from "openai/index.mjs";
    import {
        DefaultAzureCredential,
        getBearerTokenProvider,
      } from "@azure/identity";
    
    // Set environment variables or edit the corresponding values here.
    const endpoint: string = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT";
    const deployment: string = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini-audio-preview"; 
    const apiVersion: string = process.env.OPENAI_API_VERSION || "2025-01-01-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://ai.azure.com/.default";
        const azureADTokenProvider = getBearerTokenProvider(credential, scope);
        const client = new AzureOpenAI({
          endpoint: endpoint,
          apiVersion: apiVersion,
          azureADTokenProvider,
        });
        return client;
    };
    
    const client = getClient();
    
    async function main(): Promise<void> {
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-mini-audio-preview", 
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: [ 
            { 
                role: "user", 
                content: "Is a golden retriever a good family dog?" 
            } 
            ] 
        }); 
    
      // Inspect returned data 
      console.log(response.choices[0]); 
    
      // Write the output audio data to a file
      if (response.choices[0].message.audio) {
        writeFileSync( 
          "dog.wav", 
          Buffer.from(response.choices[0].message.audio.data, 'base64'), 
          { encoding: "utf-8" } 
        ); 
      } else {
        console.error("Audio data is null or undefined.");
      }
    }
    
    main().catch((err: Error) => {
      console.error("Error occurred:", err);
    });
    
    export { main };
    
  2. Erstellen Sie die tsconfig.json Datei zum Transpilieren des TypeScript-Codes, und kopieren Sie den folgenden Code für ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpilieren von TypeScript zu JavaScript.

    tsc
    
  4. Melden Sie sich mit dem folgenden Befehl bei Azure an:

    az login
    
  5. Führen Sie den Code mit dem folgenden Befehl aus:

    node to-audio.js
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für die Ton-/Audioerzeugung aus Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung: "Ist ein goldener Retriever ein guter Familienhund?"

Generieren von Audio und Text aus der Audioeingabe

  1. Erstellen Sie die from-audio.ts Datei mit dem folgenden Code:

    import { AzureOpenAI } from "openai";
    import { writeFileSync } from "node:fs";
    import { promises as fs } from 'fs';
    import {
        DefaultAzureCredential,
        getBearerTokenProvider,
      } from "@azure/identity";
    
    // Set environment variables or edit the corresponding values here.
    const endpoint: string = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT";
    const apiVersion: string = "2025-01-01-preview"; 
    const deployment: string = "gpt-4o-mini-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://ai.azure.com/.default";
        const azureADTokenProvider = getBearerTokenProvider(credential, scope);
        const client = new AzureOpenAI({
          endpoint: endpoint,
          apiVersion: apiVersion,
          azureADTokenProvider,
        });
        return client;
    };
    
    const client = getClient();
    
    async function main(): Promise<void> {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({ 
          model: "gpt-4o-mini-audio-preview",
          modalities: ["text", "audio"], 
          audio: { voice: "alloy", format: "wav" },
          messages: [ 
            { 
              role: "user", 
              content: [ 
                { 
                  type: "text", 
                  text: "Describe in detail the spoken audio input." 
                }, 
                { 
                  type: "input_audio", 
                  input_audio: { 
                    data: base64str, 
                    format: "wav" 
                  } 
                } 
              ] 
            } 
          ] 
        }); 
    
        console.log(response.choices[0]); 
    
        // Write the output audio data to a file
        if (response.choices[0].message.audio) {
            writeFileSync("analysis.wav", Buffer.from(response.choices[0].message.audio.data, 'base64'), { encoding: "utf-8" });
        }
        else {
            console.error("Audio data is null or undefined.");
      }
    }
    
    main().catch((err: Error) => {
      console.error("Error occurred:", err);
    });
    
    export { main };
    
  2. Erstellen Sie die tsconfig.json Datei zum Transpilieren des TypeScript-Codes, und kopieren Sie den folgenden Code für ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpilieren von TypeScript zu JavaScript.

    tsc
    
  4. Melden Sie sich mit dem folgenden Befehl bei Azure an:

    az login
    
  5. Führen Sie den Code mit dem folgenden Befehl aus:

    node from-audio.js
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe von Audio- und Textgenerierung aus Audioeingaben

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Außerdem wird eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript generiert. Die Audiodatei enthält die gesprochene Antwort auf die Eingabeaufforderung.

Generieren von Audio und Verwenden von Multi-Turn-Chatabschlussen

  1. Erstellen Sie die multi-turn.ts Datei mit dem folgenden Code:

    import { AzureOpenAI } from "openai/index.mjs";
    import { promises as fs } from 'fs';
    import { ChatCompletionMessageParam } from "openai/resources/index.mjs";
    import {
        DefaultAzureCredential,
        getBearerTokenProvider,
      } from "@azure/identity";
    
    // Set environment variables or edit the corresponding values here.
    const endpoint: string = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT";
    const apiVersion: string = "2025-01-01-preview"; 
    const deployment: string = "gpt-4o-mini-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://ai.azure.com/.default";
        const azureADTokenProvider = getBearerTokenProvider(credential, scope);
        const client = new AzureOpenAI({
          endpoint: endpoint,
          apiVersion: apiVersion,
          azureADTokenProvider,
        });
        return client;
    };
    
    const client = getClient(); 
    
    async function main(): Promise<void> {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Initialize messages with the first turn's user input 
        const messages: ChatCompletionMessageParam[] = [
          {
            role: "user",
            content: [
              { 
                type: "text", 
                text: "Describe in detail the spoken audio input." 
              },
              { 
                type: "input_audio", 
                input_audio: { 
                  data: base64str, 
                  format: "wav" 
                } 
              }
            ]
          }
        ];
    
        // Get the first turn's response 
    
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-mini-audio-preview",
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: messages
        }); 
    
        console.log(response.choices[0]); 
    
        // Add a history message referencing the previous turn's audio by ID 
        messages.push({ 
            role: "assistant", 
            audio: response.choices[0].message.audio ? { id: response.choices[0].message.audio.id } : undefined
        });
    
        // Add a new user message for the second turn
        messages.push({ 
            role: "user", 
            content: [ 
                { 
                  type: "text", 
                  text: "Very concisely summarize the favorability." 
                } 
            ] 
        }); 
    
        // Send the follow-up request with the accumulated messages
        const followResponse = await client.chat.completions.create({ 
            model: "gpt-4o-mini-audio-preview",
            messages: messages
        });
    
        console.log(followResponse.choices[0].message.content); 
    }
    
    main().catch((err: Error) => {
      console.error("Error occurred:", err);
    });
    
    export { main };
    
  2. Erstellen Sie die tsconfig.json Datei zum Transpilieren des TypeScript-Codes, und kopieren Sie den folgenden Code für ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpilieren von TypeScript zu JavaScript.

    tsc
    
  4. Melden Sie sich mit dem folgenden Befehl bei Azure an:

    az login
    
  5. Führen Sie den Code mit dem folgenden Befehl aus:

    node multi-turn.js
    

Warten Sie ein paar Augenblicke, um die Antwort zu erhalten.

Ausgabe für Abschluss des Chats mit Mehrfachinteraktionen

Das Skript generiert eine Transkription der Zusammenfassung der gesprochenen Audioeingabe. Danach wird ein mehrstufiger Chat abgeschlossen, um die gesprochene Audioeingabe kurz zusammenzufassen.

Bereinigen von Ressourcen

Wenn Sie eine Azure OpenAI-Ressource bereinigen und entfernen möchten, können Sie die Ressource löschen. Bevor Sie die Ressource löschen, müssen Sie zuerst alle bereitgestellten Modelle löschen.

Problembehandlung

Hinweis

Bei Verwendung gpt-4o-audio-preview für Chatabschlusse mit der Audiomodalität und stream ist auf "true" festgelegt, dass das einzige unterstützte Audioformat pcm16 ist.

Authentifizierungsfehler

Wenn sie einen Fehler vom Typ 401 oder 403 erhalten:

  • Schlüssellose Authentifizierung: Vergewissern Sie sich, dass Sie ausgeführt az login haben und die Cognitive Services User Rolle Ihrem Konto zugewiesen ist.
  • API-Schlüssel: Überprüfen Sie, ob AZURE_OPENAI_API_KEY sie ordnungsgemäß festgelegt ist und der Schlüssel nicht neu generiert wurde.

Modell nicht gefunden

Wenn das gpt-4o-mini-audio-preview Modell nicht verfügbar ist:

  • Überprüfen Sie, ob das Modell in Ihrer Azure OpenAI-Ressource bereitgestellt wird.
  • Überprüfen Sie, ob Sie eine unterstützte Region verwenden.

Probleme mit Audiodateien

Wenn die generierte Audiodatei nicht wiedergegeben wird:

  • Stellen Sie sicher, dass die Datei vollständig geschrieben wurde, indem Sie prüfen, ob die Dateigröße größer als 0 Byte ist.
  • Überprüfen Sie, ob das Format dem entspricht, was Ihr Spieler unterstützt (wav ist weit kompatibel).
  • Denken Sie bei Streamingantworten daran, dass nur das pcm16-Format unterstützt wird.

Ratelimitierung

Wenn Sie einen Fehler von 429 erhalten, haben Sie das Zinslimit überschritten. Warten Und wiederholen Sie den Vorgang, oder fordern Sie eine Kontingenterhöhung an. Weitere Informationen zu Ratelimits finden Sie unter Azure OpenAI-Kontingente und -grenzwerte.