GPT-4o Realtime API för tal och ljud (förhandsversion)
Kommentar
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Azure OpenAI GPT-4o Realtime API för tal och ljud är en del av GPT-4o-modellfamiljen som stöder konversationsinteraktioner med låg latens, "tal in, tal ut". GPT-4o-ljud-API realtime
:et är utformat för att hantera konversationsinteraktioner med låg latens i realtid, vilket gör det till en bra plats för användningsfall som involverar liveinteraktioner mellan en användare och en modell, till exempel kundsupportagenter, röstassistenter och realtidsöversättare.
De flesta användare av Realtids-API:et måste leverera och ta emot ljud från en slutanvändare i realtid, inklusive program som använder WebRTC eller ett telefonisystem. Realtids-API:et är inte utformat för att ansluta direkt till slutanvändarenheter och förlitar sig på klientintegreringar för att avsluta slutanvändarens ljudströmmar.
Modeller som stöds
För närvarande endast gpt-4o-realtime-preview
version: 2024-10-01-preview
stöder realtidsljud.
Modellen gpt-4o-realtime-preview
är tillgänglig för globala distributioner i regionerna USA, östra 2 och Sverige, centrala.
Viktigt!
Systemet lagrar dina frågor och slutföranden enligt beskrivningen i avsnittet "Dataanvändning och åtkomst för övervakning av missbruk" i de tjänstspecifika produktvillkoren för Azure OpenAI-tjänsten, förutom att det begränsade undantaget inte gäller. Övervakning av missbruk aktiveras för användning av API:et gpt-4o-realtime-preview
även för kunder som annars är godkända för övervakning av ändrade missbruk.
API-stöd
Stöd för REALTIDS-API:et lades först till i API-versionen 2024-10-01-preview
.
Kommentar
Mer information om API:et och arkitekturen finns i azure OpenAI GPT-4o realtidsljudlagringsplatsen på GitHub.
Distribuera en modell för realtidsljud
Så här distribuerar gpt-4o-realtime-preview
du modellen i Azure AI Foundry-portalen:
- Gå till Azure AI Foundry-portalen och kontrollera att du är inloggad med Azure-prenumerationen som har din Azure OpenAI Service-resurs (med eller utan modelldistributioner.)
- Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
- Välj Skapa ny distribution för att öppna distributionsfönstret.
- Sök efter och välj
gpt-4o-realtime-preview
modellen och välj sedan Bekräfta. - I distributionsguiden ser du till att välja
2024-10-01
modellversionen. - Följ guiden för att slutföra distributionen av modellen.
Nu när du har en distribution av modellen kan du interagera med den gpt-4o-realtime-preview
i realtid i Azure AI Foundry-portalen Realtidsljudlekplats eller Realtids-API.
Använda GPT-4o-realtidsljudet
Om du vill chatta med din distribuerade gpt-4o-realtime-preview
modell i Azure AI Foundrys realtidsljudlekplats följer du dessa steg:
Gå till sidan Azure OpenAI Service i Azure AI Foundry-portalen. Kontrollera att du är inloggad med Azure-prenumerationen som har din Azure OpenAI Service-resurs och den distribuerade
gpt-4o-realtime-preview
modellen.Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
Välj din distribuerade
gpt-4o-realtime-preview
modell i listrutan Distribution .Välj Aktivera mikrofon för att tillåta att webbläsaren kommer åt mikrofonen. Om du redan har beviljat behörighet kan du hoppa över det här steget.
Du kan också redigera innehållet i textrutan Ge modellinstruktioner och kontext . Ge modellinstruktionerna om hur den ska bete sig och vilken kontext den ska referera till när du genererar ett svar. Du kan beskriva assistentens personlighet, berätta vad den ska och inte ska svara på och tala om för den hur svar ska formateras.
Du kan också ändra inställningar som tröskelvärde, prefixutfyllnad och varaktighet för tystnad.
Välj Börja lyssna för att starta sessionen. Du kan tala i mikrofonen för att starta en chatt.
Du kan avbryta chatten när som helst genom att tala. Du kan avsluta chatten genom att välja knappen Sluta lyssna .
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfritt
- Node.js LTS- eller ESM-stöd.
- En Azure OpenAI-resurs som skapats i regionerna USA, östra 2 eller Sverige, centrala. Se Regiontillgänglighet.
- Sedan måste du distribuera en
gpt-4o-realtime-preview
modell med din Azure OpenAI-resurs. Mer information finns i Skapa en resurs och distribuera en modell med Azure OpenAI.
Krav för Microsoft Entra-ID
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID måste du:
- Installera Azure CLI som används för nyckellös autentisering med Microsoft Entra-ID.
Cognitive Services User
Tilldela rollen till ditt användarkonto. Du kan tilldela roller i Azure Portal under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
Distribuera en modell för realtidsljud
Så här distribuerar gpt-4o-realtime-preview
du modellen i Azure AI Foundry-portalen:
- Gå till Azure AI Foundry-portalen och kontrollera att du är inloggad med Azure-prenumerationen som har din Azure OpenAI Service-resurs (med eller utan modelldistributioner.)
- Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
- Välj Skapa ny distribution för att öppna distributionsfönstret.
- Sök efter och välj
gpt-4o-realtime-preview
modellen och välj sedan Bekräfta. - I distributionsguiden ser du till att välja
2024-10-01
modellversionen. - Följ guiden för att slutföra distributionen av modellen.
Nu när du har en distribution av modellen kan du interagera med den gpt-4o-realtime-preview
i realtid i Azure AI Foundry-portalen Realtidsljudlekplats eller Realtids-API.
Konfigurera
Skapa en ny mapp
realtime-audio-quickstart
som ska innehålla programmet och öppna Visual Studio Code i mappen med följande kommando:mkdir realtime-audio-quickstart && code realtime-audio-quickstart
package.json
Skapa med följande kommando:npm init -y
package.json
Uppdatera till ECMAScript med följande kommando:npm pkg set type=module
Installera realtidsljudklientbiblioteket för JavaScript med:
npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID installerar du
@azure/identity
paketet med:npm install @azure/identity
Hämta resursinformation
Variabelnamn | Värde |
---|---|
AZURE_OPENAI_ENDPOINT |
Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure Portal. |
OPENAI_API_VERSION |
Läs mer om API-versioner. |
Läs mer om nyckellös autentisering och inställning av miljövariabler.
Varning
Om du vill använda den rekommenderade nyckellösa autentiseringen med SDK:t kontrollerar du att AZURE_OPENAI_API_KEY
miljövariabeln inte har angetts.
Text i ljud ut
text-in-audio-out.js
Skapa filen med följande kod:import { DefaultAzureCredential } from "@azure/identity"; import { LowLevelRTClient } from "rt-client"; import dotenv from "dotenv"; dotenv.config(); async function text_in_audio_out() { // Set environment variables or edit the corresponding values here. const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "yourEndpoint"; const deployment = "gpt-4o-realtime-preview"; if (!endpoint || !deployment) { throw new Error("You didn't set the environment variables."); } const client = new LowLevelRTClient(new URL(endpoint), new DefaultAzureCredential(), { deployment: deployment }); try { await client.send({ type: "response.create", response: { modalities: ["audio", "text"], instructions: "Please assist the user." } }); for await (const message of client.messages()) { switch (message.type) { case "response.done": { break; } case "error": { console.error(message.error); break; } case "response.audio_transcript.delta": { console.log(`Received text delta: ${message.delta}`); break; } case "response.audio.delta": { const buffer = Buffer.from(message.delta, "base64"); console.log(`Received ${buffer.length} bytes of audio data.`); break; } } if (message.type === "response.done" || message.type === "error") { break; } } } finally { client.close(); } } await text_in_audio_out();
Logga in på Azure med följande kommando:
az login
Kör JavaScript-filen.
node text-in-audio-out.js
Vänta en stund för att få svaret.
Output
Skriptet hämtar ett svar från modellen och skriver ut avskriften och mottagna ljuddata.
Utdata ser ut ungefär så här:
Received text delta: Hello
Received text delta: !
Received text delta: How
Received text delta: can
Received text delta: I
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta: help
Received 12000 bytes of audio data.
Received text delta: you
Received text delta: today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 24000 bytes of audio data.
Exempel på webbprogram
Vårt JavaScript-webbexempel på GitHub visar hur du använder GPT-4o Realtime API för att interagera med modellen i realtid. Exempelkoden innehåller ett enkelt webbgränssnitt som samlar in ljud från användarens mikrofon och skickar det till modellen för bearbetning. Modellen svarar med text och ljud, som exempelkoden återges i webbgränssnittet.
Du kan köra exempelkoden lokalt på datorn genom att följa dessa steg. Se lagringsplatsen på GitHub för de senaste instruktionerna.
Om du inte har Node.js installerat laddar du ned och installerar LTS-versionen av Node.js.
Klona lagringsplatsen till den lokala datorn:
git clone https://github.com/Azure-Samples/aoai-realtime-audio-sdk.git
Gå till
javascript/samples/web
mappen i önskad kodredigerare.cd ./javascript/samples
Kör
download-pkg.ps1
ellerdownload-pkg.sh
ladda ned de paket som krävs.Gå till
web
mappen från./javascript/samples
mappen.cd ./web
Kör
npm install
för att installera paketberoenden.Kör
npm run dev
för att starta webbservern och navigera i eventuella frågor om brandväggsbehörigheter efter behov.Gå till någon av de angivna URI:erna från konsolens utdata (till exempel
http://localhost:5173/
) i en webbläsare.Ange följande information i webbgränssnittet:
- Slutpunkt: Resursslutpunkten för en Azure OpenAI-resurs. Du behöver inte lägga
/realtime
till sökvägen. En exempelstruktur kan varahttps://my-azure-openai-resource-from-portal.openai.azure.com
. - API-nyckel: En motsvarande API-nyckel för Azure OpenAI-resursen.
- Distribution: Namnet på den
gpt-4o-realtime-preview
modell som du distribuerade i föregående avsnitt. - Systemmeddelande: Om du vill kan du ange ett systemmeddelande som "Du pratar alltid som en vänlig pirat".
- Temperatur: Om du vill kan du ange en anpassad temperatur.
- Röst: Om du vill kan du välja en röst.
- Slutpunkt: Resursslutpunkten för en Azure OpenAI-resurs. Du behöver inte lägga
Välj knappen Arkivhandling för att starta sessionen. Godkänn behörigheter för att använda mikrofonen om du uppmanas att göra det.
Du bör se ett
<< Session Started >>
meddelande i huvudutdata. Sedan kan du tala i mikrofonen för att starta en chatt.Du kan avbryta chatten när som helst genom att tala. Du kan avsluta chatten genom att välja knappen Stoppa .
Förutsättningar
- En Azure-prenumeration. Skapa en kostnadsfritt.
- Python 3.8 eller senare version. Vi rekommenderar att du använder Python 3.10 eller senare, men minst Python 3.8 krävs. Om du inte har en lämplig version av Python installerad kan du följa anvisningarna i VS Code Python-självstudien för det enklaste sättet att installera Python på operativsystemet.
- En Azure OpenAI-resurs som skapats i regionerna USA, östra 2 eller Sverige, centrala. Se Regiontillgänglighet.
- Sedan måste du distribuera en
gpt-4o-realtime-preview
modell med din Azure OpenAI-resurs. Mer information finns i Skapa en resurs och distribuera en modell med Azure OpenAI.
Krav för Microsoft Entra-ID
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID måste du:
- Installera Azure CLI som används för nyckellös autentisering med Microsoft Entra-ID.
Cognitive Services User
Tilldela rollen till ditt användarkonto. Du kan tilldela roller i Azure Portal under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
Distribuera en modell för realtidsljud
Så här distribuerar gpt-4o-realtime-preview
du modellen i Azure AI Foundry-portalen:
- Gå till Azure AI Foundry-portalen och kontrollera att du är inloggad med Azure-prenumerationen som har din Azure OpenAI Service-resurs (med eller utan modelldistributioner.)
- Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
- Välj Skapa ny distribution för att öppna distributionsfönstret.
- Sök efter och välj
gpt-4o-realtime-preview
modellen och välj sedan Bekräfta. - I distributionsguiden ser du till att välja
2024-10-01
modellversionen. - Följ guiden för att slutföra distributionen av modellen.
Nu när du har en distribution av modellen kan du interagera med den gpt-4o-realtime-preview
i realtid i Azure AI Foundry-portalen Realtidsljudlekplats eller Realtids-API.
Konfigurera
Skapa en ny mapp
realtime-audio-quickstart
som ska innehålla programmet och öppna Visual Studio Code i mappen med följande kommando:mkdir realtime-audio-quickstart && code realtime-audio-quickstart
Skapa en virtuell miljö. Om du redan har Python 3.10 eller senare installerat kan du skapa en virtuell miljö med hjälp av följande kommandon:
När du aktiverar Python-miljön innebär det att när du kör
python
ellerpip
från kommandoraden använder du sedan Python-tolken.venv
som finns i mappen för ditt program. Du kan användadeactivate
kommandot för att avsluta den virtuella python-miljön och senare återaktivera den när det behövs.Dricks
Vi rekommenderar att du skapar och aktiverar en ny Python-miljö som ska användas för att installera de paket som du behöver för den här självstudien. Installera inte paket i din globala Python-installation. Du bör alltid använda en virtuell miljö eller conda-miljö när du installerar Python-paket, annars kan du avbryta den globala installationen av Python.
Installera realtidsljudklientbiblioteket för Python med:
pip install "https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/py%2Fv0.5.3/rtclient-0.5.3.tar.gz"
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID installerar du
azure-identity
paketet med:pip install azure-identity
Hämta resursinformation
Variabelnamn | Värde |
---|---|
AZURE_OPENAI_ENDPOINT |
Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure Portal. |
OPENAI_API_VERSION |
Läs mer om API-versioner. |
Läs mer om nyckellös autentisering och inställning av miljövariabler.
Text i ljud ut
text-in-audio-out.py
Skapa filen med följande kod:import base64 import asyncio from azure.identity.aio import DefaultAzureCredential from rtclient import ( ResponseCreateMessage, RTLowLevelClient, ResponseCreateParams ) # Set environment variables or edit the corresponding values here. endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] deployment = "gpt-4o-realtime-preview" async def text_in_audio_out(): async with RTLowLevelClient( url=endpoint, azure_deployment=deployment, token_credential=DefaultAzureCredential(), ) as client: await client.send( ResponseCreateMessage( response=ResponseCreateParams( modalities={"audio", "text"}, instructions="Please assist the user." ) ) ) done = False while not done: message = await client.recv() match message.type: case "response.done": done = True case "error": done = True print(message.error) case "response.audio_transcript.delta": print(f"Received text delta: {message.delta}") case "response.audio.delta": buffer = base64.b64decode(message.delta) print(f"Received {len(buffer)} bytes of audio data.") case _: pass async def main(): await text_in_audio_out() asyncio.run(main())
Kör Python-filen.
python text-in-audio-out.py
Vänta en stund för att få svaret.
Output
Skriptet hämtar ett svar från modellen och skriver ut avskriften och mottagna ljuddata.
Utdata ser ut ungefär så här:
Received text delta: Hello
Received text delta: !
Received text delta: How
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta: can
Received 12000 bytes of audio data.
Received text delta: I
Received text delta: assist
Received text delta: you
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received text delta: today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 28800 bytes of audio data.
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfritt
- Node.js LTS- eller ESM-stöd.
- TypeScript installerat globalt.
- En Azure OpenAI-resurs som skapats i regionerna USA, östra 2 eller Sverige, centrala. Se Regiontillgänglighet.
- Sedan måste du distribuera en
gpt-4o-realtime-preview
modell med din Azure OpenAI-resurs. Mer information finns i Skapa en resurs och distribuera en modell med Azure OpenAI.
Krav för Microsoft Entra-ID
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID måste du:
- Installera Azure CLI som används för nyckellös autentisering med Microsoft Entra-ID.
Cognitive Services User
Tilldela rollen till ditt användarkonto. Du kan tilldela roller i Azure Portal under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
Distribuera en modell för realtidsljud
Så här distribuerar gpt-4o-realtime-preview
du modellen i Azure AI Foundry-portalen:
- Gå till Azure AI Foundry-portalen och kontrollera att du är inloggad med Azure-prenumerationen som har din Azure OpenAI Service-resurs (med eller utan modelldistributioner.)
- Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
- Välj Skapa ny distribution för att öppna distributionsfönstret.
- Sök efter och välj
gpt-4o-realtime-preview
modellen och välj sedan Bekräfta. - I distributionsguiden ser du till att välja
2024-10-01
modellversionen. - Följ guiden för att slutföra distributionen av modellen.
Nu när du har en distribution av modellen kan du interagera med den gpt-4o-realtime-preview
i realtid i Azure AI Foundry-portalen Realtidsljudlekplats eller Realtids-API.
Konfigurera
Skapa en ny mapp
realtime-audio-quickstart
som ska innehålla programmet och öppna Visual Studio Code i mappen med följande kommando:mkdir realtime-audio-quickstart && code realtime-audio-quickstart
package.json
Skapa med följande kommando:npm init -y
package.json
Uppdatera till ECMAScript med följande kommando:npm pkg set type=module
Installera realtidsljudklientbiblioteket för JavaScript med:
npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID installerar du
@azure/identity
paketet med:npm install @azure/identity
Hämta resursinformation
Variabelnamn | Värde |
---|---|
AZURE_OPENAI_ENDPOINT |
Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure Portal. |
OPENAI_API_VERSION |
Läs mer om API-versioner. |
Läs mer om nyckellös autentisering och inställning av miljövariabler.
Varning
Om du vill använda den rekommenderade nyckellösa autentiseringen med SDK:t kontrollerar du att AZURE_OPENAI_API_KEY
miljövariabeln inte har angetts.
Text i ljud ut
text-in-audio-out.ts
Skapa filen med följande kod:import { DefaultAzureCredential } from "@azure/identity"; import { LowLevelRTClient } from "rt-client"; import dotenv from "dotenv"; dotenv.config(); async function text_in_audio_out() { // Set environment variables or edit the corresponding values here. const endpoint: string = process.env["AZURE_OPENAI_ENDPOINT"] || "yourEndpoint"; const deployment = "gpt-4o-realtime-preview"; if (!endpoint || !deployment) { throw new Error("You didn't set the environment variables."); } const client = new LowLevelRTClient( new URL(endpoint), new DefaultAzureCredential(), {deployment: deployment} ); try { await client.send({ type: "response.create", response: { modalities: ["audio", "text"], instructions: "Please assist the user." } }); for await (const message of client.messages()) { switch (message.type) { case "response.done": { break; } case "error": { console.error(message.error); break; } case "response.audio_transcript.delta": { console.log(`Received text delta: ${message.delta}`); break; } case "response.audio.delta": { const buffer = Buffer.from(message.delta, "base64"); console.log(`Received ${buffer.length} bytes of audio data.`); break; } } if (message.type === "response.done" || message.type === "error") { break; } } } finally { client.close(); } } await text_in_audio_out();
tsconfig.json
Skapa filen för att transpilera TypeScript-koden och kopiera följande kod 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"] }
Transpilera från TypeScript till JavaScript.
tsc
Logga in på Azure med följande kommando:
az login
Kör koden med följande kommando:
node text-in-audio-out.js
Vänta en stund för att få svaret.
Output
Skriptet hämtar ett svar från modellen och skriver ut avskriften och mottagna ljuddata.
Utdata ser ut ungefär så här:
Received text delta: Hello
Received text delta: !
Received text delta: How
Received text delta: can
Received text delta: I
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta: help
Received 12000 bytes of audio data.
Received text delta: you
Received text delta: today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 24000 bytes of audio data.
Relaterat innehåll
- Läs mer om hur du använder REALTIDS-API:et
- Se API-referensen för realtid
- Läs mer om Azure OpenAI-kvoter och -gränser