Teilen über


Schnellstart: Erste Schritte für die Audiogenerierung mit Azure OpenAI

Das gpt-4o-audio-preview-Modell führt 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 im gpt-4o-audio-preview-Modell unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Diese Tabelle enthält die unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispiel eines Anwendungsfalls
Text Text + Audio Text-zu-Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Generierung von Hörbüchern
Audio Text Audio-Transkription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audio-Transkription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktivere KI-Anwendungen erreichen. Mithilfe von Modellen, die Audioeingaben und -ausgaben unterstützen, können Sie gesprochene Audioantworten auf Prompts generieren und Audioeingaben für Prompts an das Modell verwenden.

Unterstützte Modelle

Derzeit unterstützt nur gpt-4o-audio-preview Version 2024-12-17 die Audiogenerierung.

Das gpt-4o-audio-preview-Modell ist für globale Bereitstellungen in den Regionen USA, Osten 2 und Schweden, Mitte verfügbar.

Derzeit werden die folgenden Stimmen für die Audioausgabe unterstützt: Alloy, Echo und Shimmer.

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

Hinweis

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

API-Unterstützung

Die Unterstützung für Audioabschlüsse wurde erstmals in der API-Version 2025-01-01-preview eingeführt.

Bereitstellen eines Modells für die Audiogenerierung

So stellen Sie das gpt-4o-audio-preview-Modell im Azure KI Foundry-Portal bereit:

  1. Wechseln Sie zur Azure OpenAI Service-Seite im Azure KI Foundry-Portal. Stellen Sie sicher, dass Sie mit dem Azure-Abonnement angemeldet sind, das Ihre Azure OpenAI Service-Ressource und das bereitgestellte Modell gpt-4o-audio-preview enthält.
  2. Wählen Sie im linken Bereich den Playground Chat unter Playgrounds aus.
  3. Wählen Sie + Neue Bereitstellung erstellen>Aus Basismodellen aus, um das Bereitstellungsfenster zu öffnen.
  4. Suchen Sie nach dem Modell gpt-4o-audio-preview, wählen Sie es aus, und wählen Sie dann Für ausgewählte Ressource bereitstellen aus.
  5. Wählen Sie im Bereitstellungs-Assistenten die 2024-12-17-Modellversion aus.
  6. Durchlaufen Sie den Assistenten, um die Bereitstellung des Modells abzuschließen.

Nachdem Sie nun über eine Bereitstellung des Modells gpt-4o-audio-preview verfügen, können Sie im Playground Chat im Azure KI Foundry-Portal oder in der Chatvervollständigungs-API damit interagieren.

Verwenden der GPT-4o-Audiogenerierung

Um mit Ihrem bereitgestellten Modell gpt-4o-audio-preview im Playground Chat des Azure KI Foundry-Portals zu chatten, führen Sie diese Schritte aus:

  1. Wechseln Sie zur Azure OpenAI Service-Seite im Azure KI Foundry-Portal. Stellen Sie sicher, dass Sie mit dem Azure-Abonnement angemeldet sind, das Ihre Azure OpenAI Service-Ressource und das bereitgestellte Modell gpt-4o-audio-preview enthält.

  2. Wählen Sie im linken Bereich den Playground Chat unter dem Ressourcenplayground aus.

  3. Wählen Sie ihr bereitgestelltes gpt-4o-audio-preview-Modell aus der Dropdownliste Bereitstellung aus.

  4. Beginnen Sie, mit dem Modell zu chatten, und hören Sie sich die Audioantworten an.

    Screenshot der Seite Chat-Playground.

    Sie können Folgendes ausführen:

    • Zeichnen Sie Audioprompts auf.
    • Fügen Sie Audiodateien an den Chat an.
    • Geben Sie Textprompts ein.

Referenzdokumentation | Quellcode der Bibliothek | Paket (npm) | Beispiele

Das gpt-4o-audio-preview-Modell führt 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 im gpt-4o-audio-preview-Modell unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Diese Tabelle enthält die unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispiel eines Anwendungsfalls
Text Text + Audio Text-zu-Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Generierung von Hörbüchern
Audio Text Audio-Transkription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audio-Transkription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktivere KI-Anwendungen erreichen. Mithilfe von Modellen, die Audioeingaben und -ausgaben unterstützen, können Sie gesprochene Audioantworten auf Prompts generieren und Audioeingaben für Prompts an das Modell verwenden.

Unterstützte Modelle

Derzeit unterstützt nur gpt-4o-audio-preview Version 2024-12-17 die Audiogenerierung.

Das gpt-4o-audio-preview-Modell ist für globale Bereitstellungen in den Regionen USA, Osten 2 und Schweden, Mitte verfügbar.

Derzeit werden die folgenden Stimmen für die Audioausgabe unterstützt: Alloy, Echo und Shimmer.

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

Hinweis

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

API-Unterstützung

Die Unterstützung für Audioabschlüsse wurde erstmals in der API-Version 2025-01-01-preview eingeführt.

Voraussetzungen

Voraussetzungen für Microsoft Entra ID

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

  • Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
  • Weisen Sie Ihrem Benutzerkonto die Cognitive Services User-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart für die Anwendung, und öffnen Sie Visual Studio Code in diesem Ordner mit dem folgenden Befehl:

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

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

    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 @azure/identity-Paket mit:

    npm install @azure/identity
    

Abrufen von Ressourceninformationen

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

Variablenname Wert
AZURE_OPENAI_ENDPOINT Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal.
OPENAI_API_VERSION Erfahren Sie mehr über API-Versionen.

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

Achtung

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

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die Datei to-audio.js 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://cognitiveservices.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-audio-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-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 mithilfe des folgenden Befehls bei Azure an:

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

    node to-audio.js
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audiogenerierung aus einer Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt: „Ist ein Golden Retriever ein guter Familienhund?“

Generieren von Audio und Text aus Audioeingabe

  1. Erstellen Sie die Datei from-audio.js 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://cognitiveservices.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-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-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 mithilfe des folgenden Befehls bei Azure an:

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

    node from-audio.js
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audio- und Textgenerierung aus einer Audioeingabe

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Es generiert auch eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt.

Generieren von Audio und Verwenden von mehrteiligen Chatvervollständigungen

  1. Erstellen Sie die Datei multi-turn.js 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://cognitiveservices.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-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-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-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 mithilfe des folgenden Befehls bei Azure an:

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

    node multi-turn.js
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für mehrteilige Chatvervollständigungen

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Anschließend wird eine mehrteilige Chatvervollständigung erstellt, um die gesprochene Audioeingabe kurz zusammenzufassen.

Quellcode der Bibliothek | Paket | Beispiele

Das gpt-4o-audio-preview-Modell führt 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 im gpt-4o-audio-preview-Modell unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Diese Tabelle enthält die unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispiel eines Anwendungsfalls
Text Text + Audio Text-zu-Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Generierung von Hörbüchern
Audio Text Audio-Transkription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audio-Transkription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktivere KI-Anwendungen erreichen. Mithilfe von Modellen, die Audioeingaben und -ausgaben unterstützen, können Sie gesprochene Audioantworten auf Prompts generieren und Audioeingaben für Prompts an das Modell verwenden.

Unterstützte Modelle

Derzeit unterstützt nur gpt-4o-audio-preview Version 2024-12-17 die Audiogenerierung.

Das gpt-4o-audio-preview-Modell ist für globale Bereitstellungen in den Regionen USA, Osten 2 und Schweden, Mitte verfügbar.

Derzeit werden die folgenden Stimmen für die Audioausgabe unterstützt: Alloy, Echo und Shimmer.

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

Hinweis

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

API-Unterstützung

Die Unterstützung für Audioabschlüsse wurde erstmals in der API-Version 2025-01-01-preview eingeführt.

Verwenden Sie diese Anleitung, um mit dem Generieren von Audio mit dem Azure OpenAI-SDK für Python zu beginnen.

Voraussetzungen

Voraussetzungen für Microsoft Entra ID

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

  • Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
  • Weisen Sie Ihrem Benutzerkonto die Cognitive Services User-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart für die Anwendung, und öffnen Sie Visual Studio Code in diesem Ordner mit dem folgenden Befehl:

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

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

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

    Tipp

    Es wird empfohlen, eine neue Python-Umgebung zu erstellen und zu aktivieren, um die Pakete zu installieren, die Sie für dieses Tutorial benötigen. 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 Python-Installation beschädigen.

  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 azure-identity-Paket mit:

    pip install azure-identity
    

Abrufen von Ressourceninformationen

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

Variablenname Wert
AZURE_OPENAI_ENDPOINT Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal.
OPENAI_API_VERSION Erfahren Sie mehr über API-Versionen.

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

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die Datei to-audio.py 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://cognitiveservices.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-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 Python-Datei aus.

    python to-audio.py
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audiogenerierung aus einer Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt: „Ist ein Golden Retriever ein guter Familienhund?“

Generieren von Audio und Text aus Audioeingabe

  1. Erstellen Sie die Datei from-audio.py 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://cognitiveservices.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-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 Python-Datei aus.

    python from-audio.py
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audio- und Textgenerierung aus einer Audioeingabe

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Es generiert auch eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt.

Generieren von Audio und Verwenden von mehrteiligen Chatvervollständigungen

  1. Erstellen Sie die Datei multi-turn.py 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://cognitiveservices.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-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-audio-preview", 
        messages=messages
    ) 
    
    print("Very briefly, summarize the favorability.")
    print(completion.choices[0].message.content)
    
  2. Führen Sie die Python-Datei aus.

    python multi-turn.py
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für mehrteilige Chatvervollständigungen

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Anschließend wird eine mehrteilige Chatvervollständigung erstellt, um die gesprochene Audioeingabe kurz zusammenzufassen.

REST-API-Spezifikation |

Das gpt-4o-audio-preview-Modell führt 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 im gpt-4o-audio-preview-Modell unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Diese Tabelle enthält die unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispiel eines Anwendungsfalls
Text Text + Audio Text-zu-Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Generierung von Hörbüchern
Audio Text Audio-Transkription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audio-Transkription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktivere KI-Anwendungen erreichen. Mithilfe von Modellen, die Audioeingaben und -ausgaben unterstützen, können Sie gesprochene Audioantworten auf Prompts generieren und Audioeingaben für Prompts an das Modell verwenden.

Unterstützte Modelle

Derzeit unterstützt nur gpt-4o-audio-preview Version 2024-12-17 die Audiogenerierung.

Das gpt-4o-audio-preview-Modell ist für globale Bereitstellungen in den Regionen USA, Osten 2 und Schweden, Mitte verfügbar.

Derzeit werden die folgenden Stimmen für die Audioausgabe unterstützt: Alloy, Echo und Shimmer.

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

Hinweis

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

API-Unterstützung

Die Unterstützung für Audioabschlüsse wurde erstmals in der API-Version 2025-01-01-preview eingeführt.

Voraussetzungen

Voraussetzungen für Microsoft Entra ID

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

  • Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
  • Weisen Sie Ihrem Benutzerkonto die Cognitive Services User-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart für die Anwendung, und öffnen Sie Visual Studio Code in diesem Ordner mit dem folgenden Befehl:

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

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

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

    Tipp

    Es wird empfohlen, eine neue Python-Umgebung zu erstellen und zu aktivieren, um die Pakete zu installieren, die Sie für dieses Tutorial benötigen. 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 Python-Installation beschädigen.

  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 azure-identity-Paket mit:

    pip install azure-identity
    

Abrufen von Ressourceninformationen

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

Variablenname Wert
AZURE_OPENAI_ENDPOINT Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal.
OPENAI_API_VERSION Erfahren Sie mehr über API-Versionen.

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

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die Datei to-audio.py 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://cognitiveservices.azure.com/.default")
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-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-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 Python-Datei aus.

    python to-audio.py
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audiogenerierung aus einer Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt: „Ist ein Golden Retriever ein guter Familienhund?“

Generieren von Audio und Text aus Audioeingabe

  1. Erstellen Sie die Datei from-audio.py 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://cognitiveservices.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-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-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 Python-Datei aus.

    python from-audio.py
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audio- und Textgenerierung aus einer Audioeingabe

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Es generiert auch eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt.

Generieren von Audio und Verwenden von mehrteiligen Chatvervollständigungen

  1. Erstellen Sie die Datei multi-turn.py 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://cognitiveservices.azure.com/.default")
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-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-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-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 Python-Datei aus.

    python multi-turn.py
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für mehrteilige Chatvervollständigungen

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Anschließend wird eine mehrteilige Chatvervollständigung erstellt, um die gesprochene Audioeingabe kurz zusammenzufassen.

Referenzdokumentation | Quellcode der Bibliothek | Paket (npm) | Beispiele

Das gpt-4o-audio-preview-Modell führt 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 im gpt-4o-audio-preview-Modell unterstützten Modalitäten gehören: Text, Audio und Text + Audio.

Diese Tabelle enthält die unterstützten Modalitäten mit Beispielanwendungsfällen:

Modalitätseingabe Modalitätsausgabe Beispiel eines Anwendungsfalls
Text Text + Audio Text-zu-Sprache, Generierung von Hörbüchern
Audio Text + Audio Audiotranskription, Generierung von Hörbüchern
Audio Text Audio-Transkription
Text + Audio Text + Audio Generierung von Hörbüchern
Text + Audio Text Audio-Transkription

Mithilfe von Audiogenerierungsfunktionen können Sie dynamischere und interaktivere KI-Anwendungen erreichen. Mithilfe von Modellen, die Audioeingaben und -ausgaben unterstützen, können Sie gesprochene Audioantworten auf Prompts generieren und Audioeingaben für Prompts an das Modell verwenden.

Unterstützte Modelle

Derzeit unterstützt nur gpt-4o-audio-preview Version 2024-12-17 die Audiogenerierung.

Das gpt-4o-audio-preview-Modell ist für globale Bereitstellungen in den Regionen USA, Osten 2 und Schweden, Mitte verfügbar.

Derzeit werden die folgenden Stimmen für die Audioausgabe unterstützt: Alloy, Echo und Shimmer.

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

Hinweis

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

API-Unterstützung

Die Unterstützung für Audioabschlüsse wurde erstmals in der API-Version 2025-01-01-preview eingeführt.

Voraussetzungen

Voraussetzungen für Microsoft Entra ID

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

  • Die Azure CLI installieren, die für die schlüssellose Authentifizierung mit Microsoft Entra ID verwendet wird
  • Weisen Sie Ihrem Benutzerkonto die Cognitive Services User-Rolle zu. Sie können Rollen im Azure-Portal unter Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen zuweisen.

Einrichten

  1. Erstellen Sie einen neuen Ordner audio-completions-quickstart für die Anwendung, und öffnen Sie Visual Studio Code in diesem Ordner mit dem folgenden Befehl:

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

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

    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 @azure/identity-Paket mit:

    npm install @azure/identity
    

Abrufen von Ressourceninformationen

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

Variablenname Wert
AZURE_OPENAI_ENDPOINT Diesen Wert finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen.
AZURE_OPENAI_DEPLOYMENT_NAME Dieser Wert entspricht dem benutzerdefinierten Namen, den Sie während der Bereitstellung eines Modells für die Bereitstellung ausgewählt haben. Diesen Wert finden Sie unter Ressourcenverwaltung>Modellbereitstellungen im Azure-Portal.
OPENAI_API_VERSION Erfahren Sie mehr über API-Versionen.

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

Achtung

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

Generieren von Audio aus Texteingabe

  1. Erstellen Sie die Datei to-audio.ts 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 apiVersion: string = "2025-01-01-preview"; 
    const deployment: string = "gpt-4o-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://cognitiveservices.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-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 Datei tsconfig.json, um den TypeScript-Code zu transpilieren, 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 Sie von TypeScript in JavaScript:

    tsc
    
  4. Melden Sie sich mithilfe des folgenden Befehls bei Azure an:

    az login
    
  5. Führen Sie den Code mithilfe des folgenden Befehls aus:

    node to-audio.js
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audiogenerierung aus einer Texteingabe

Das Skript generiert eine Audiodatei namens dog.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt: „Ist ein Golden Retriever ein guter Familienhund?“

Generieren von Audio und Text aus Audioeingabe

  1. Erstellen Sie die Datei from-audio.ts 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-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://cognitiveservices.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-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 Datei tsconfig.json, um den TypeScript-Code zu transpilieren, 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 Sie von TypeScript in JavaScript:

    tsc
    
  4. Melden Sie sich mithilfe des folgenden Befehls bei Azure an:

    az login
    
  5. Führen Sie den Code mithilfe des folgenden Befehls aus:

    node from-audio.js
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für die Audio- und Textgenerierung aus einer Audioeingabe

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Es generiert auch eine Audiodatei namens analysis.wav im selben Verzeichnis wie das Skript. Die Audiodatei enthält die gesprochene Antwort auf den Prompt.

Generieren von Audio und Verwenden von mehrteiligen Chatvervollständigungen

  1. Erstellen Sie die Datei multi-turn.ts 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-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://cognitiveservices.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-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-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 Datei tsconfig.json, um den TypeScript-Code zu transpilieren, 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 Sie von TypeScript in JavaScript:

    tsc
    
  4. Melden Sie sich mithilfe des folgenden Befehls bei Azure an:

    az login
    
  5. Führen Sie den Code mithilfe des folgenden Befehls aus:

    node multi-turn.js
    

Die Ausgabe der Ergebnisse dauert einen Moment.

Ausgabe für mehrteilige Chatvervollständigungen

Das Skript generiert ein Transkript der Zusammenfassung der gesprochenen Audioeingabe. Anschließend wird eine mehrteilige Chatvervollständigung erstellt, 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. Vor dem Löschen der Ressource müssen Sie zunächst alle bereitgestellten Modelle löschen.