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:
- 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. - Wählen Sie im linken Bereich den Playground Chat unter Playgrounds aus.
- Wählen Sie + Neue Bereitstellung erstellen>Aus Basismodellen aus, um das Bereitstellungsfenster zu öffnen.
- 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. - Wählen Sie im Bereitstellungs-Assistenten die
2024-12-17
-Modellversion aus. - 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:
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.Wählen Sie im linken Bereich den Playground Chat unter dem Ressourcenplayground aus.
Wählen Sie ihr bereitgestelltes
gpt-4o-audio-preview
-Modell aus der Dropdownliste Bereitstellung aus.Beginnen Sie, mit dem Modell zu chatten, und hören Sie sich die Audioantworten an.
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
- Azure-Abonnement: Kostenloses Azure-Konto
- Node.js LTS- oder ESM-Unterstützung.
- Eine Azure OpenAI-Ressource, die in der Region „USA, Osten 2“ oder „Schweden, Mitte“ erstellt wurde. Weitere Informationen finden Sie unter Verfügbarkeit der Regionen.
- Anschließend müssen Sie ein
gpt-4o-audio-preview
-Modell mit Ihrer Azure OpenAI-Ressource bereitstellen. Weitere Informationen finden Sie unter Erstellen einer Ressource und Bereitstellen eines Modells mit Azure OpenAI.
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
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
Erstellen Sie
package.json
mit dem folgenden Befehl:npm init -y
Aktualisieren Sie
package.json
mit dem folgenden Befehl auf ECMAScript:npm pkg set type=module
Installieren Sie die OpenAI-Clientbibliothek für JavaScript mit:
npm install openai
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
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 };
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
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
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 };
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
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
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 };
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
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
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Konto.
- Python 3.8 oder eine höhere Version Es wird empfohlen, Python 3.10 oder höher zu verwenden, aber mindestens Python 3.8 ist erforderlich. Wenn Sie keine geeignete Version von Python installiert haben, können Sie die Anweisungen im VS Code-Tutorial für Python befolgen, um Python auf Ihrem Betriebssystem zu installieren.
- Eine Azure OpenAI-Ressource, die in der Region „USA, Osten 2“ oder „Schweden, Mitte“ erstellt wurde. Weitere Informationen finden Sie unter Verfügbarkeit der Regionen.
- Anschließend müssen Sie ein
gpt-4o-audio-preview
-Modell mit Ihrer Azure OpenAI-Ressource bereitstellen. Weitere Informationen finden Sie unter Erstellen einer Ressource und Bereitstellen eines Modells mit Azure OpenAI.
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
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
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:
Wenn Sie die Python-Umgebung aktivieren, verwenden Sie beim Ausführen von
python
oderpip
über die Befehlszeile den Python-Interpreter, der im Ordner.venv
Ihrer Anwendung enthalten ist. Sie können den Befehldeactivate
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.
Installieren Sie die OpenAI-Clientbibliothek für Python mit:
pip install openai
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
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)
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
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)
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
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)
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.
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
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Konto.
- Python 3.8 oder eine höhere Version Es wird empfohlen, Python 3.10 oder höher zu verwenden, aber mindestens Python 3.8 ist erforderlich. Wenn Sie keine geeignete Version von Python installiert haben, können Sie die Anweisungen im VS Code-Tutorial für Python befolgen, um Python auf Ihrem Betriebssystem zu installieren.
- Eine Azure OpenAI-Ressource, die in der Region „USA, Osten 2“ oder „Schweden, Mitte“ erstellt wurde. Weitere Informationen finden Sie unter Verfügbarkeit der Regionen.
- Anschließend müssen Sie ein
gpt-4o-audio-preview
-Modell mit Ihrer Azure OpenAI-Ressource bereitstellen. Weitere Informationen finden Sie unter Erstellen einer Ressource und Bereitstellen eines Modells mit Azure OpenAI.
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
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
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:
Wenn Sie die Python-Umgebung aktivieren, verwenden Sie beim Ausführen von
python
oderpip
über die Befehlszeile den Python-Interpreter, der im Ordner.venv
Ihrer Anwendung enthalten ist. Sie können den Befehldeactivate
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.
Installieren Sie die OpenAI-Clientbibliothek für Python mit:
pip install openai
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
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)
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
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)
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
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'])
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
- Azure-Abonnement: Kostenloses Azure-Konto
- Node.js LTS- oder ESM-Unterstützung.
- Globale Installation von TypeScript
- Eine Azure OpenAI-Ressource, die in der Region „USA, Osten 2“ oder „Schweden, Mitte“ erstellt wurde. Weitere Informationen finden Sie unter Verfügbarkeit der Regionen.
- Anschließend müssen Sie ein
gpt-4o-audio-preview
-Modell mit Ihrer Azure OpenAI-Ressource bereitstellen. Weitere Informationen finden Sie unter Erstellen einer Ressource und Bereitstellen eines Modells mit Azure OpenAI.
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
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
Erstellen Sie
package.json
mit dem folgenden Befehl:npm init -y
Aktualisieren Sie
package.json
mit dem folgenden Befehl auf ECMAScript:npm pkg set type=module
Installieren Sie die OpenAI-Clientbibliothek für JavaScript mit:
npm install openai
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
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 };
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"] }
Transpilieren Sie von TypeScript in JavaScript:
tsc
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
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
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 };
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"] }
Transpilieren Sie von TypeScript in JavaScript:
tsc
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
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
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 };
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"] }
Transpilieren Sie von TypeScript in JavaScript:
tsc
Melden Sie sich mithilfe des folgenden Befehls bei Azure an:
az login
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.
Zugehöriger Inhalt
- Erfahren Sie mehr über die Bereitstellungstypen für Azure OpenAI
- Erfahren Sie mehr über Kontingente und Grenzwerte in Azure OpenAI