Dela via


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:

  1. 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.)
  2. Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
  3. Välj Skapa ny distribution för att öppna distributionsfönstret.
  4. Sök efter och välj gpt-4o-realtime-preview modellen och välj sedan Bekräfta.
  5. I distributionsguiden ser du till att välja 2024-10-01 modellversionen.
  6. 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:

  1. 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.

  2. Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.

  3. Välj din distribuerade gpt-4o-realtime-preview modell i listrutan Distribution .

  4. 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.

    Skärmbild av ljudlekplatsen i realtid med den distribuerade modellen vald.

  5. 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.

  6. Du kan också ändra inställningar som tröskelvärde, prefixutfyllnad och varaktighet för tystnad.

  7. Välj Börja lyssna för att starta sessionen. Du kan tala i mikrofonen för att starta en chatt.

    Skärmbild av ljudlekplatsen i realtid med knappen börja lyssna och mikrofonåtkomst aktiverad.

  8. 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

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:

  1. 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.)
  2. Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
  3. Välj Skapa ny distribution för att öppna distributionsfönstret.
  4. Sök efter och välj gpt-4o-realtime-preview modellen och välj sedan Bekräfta.
  5. I distributionsguiden ser du till att välja 2024-10-01 modellversionen.
  6. 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

  1. 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
    
  2. package.json Skapa med följande kommando:

    npm init -y
    
  3. package.json Uppdatera till ECMAScript med följande kommando:

    npm pkg set type=module
    
  4. 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
    
  5. 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

  1. 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();
    
  2. Logga in på Azure med följande kommando:

    az login
    
  3. 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.

  1. Om du inte har Node.js installerat laddar du ned och installerar LTS-versionen av Node.js.

  2. Klona lagringsplatsen till den lokala datorn:

    git clone https://github.com/Azure-Samples/aoai-realtime-audio-sdk.git
    
  3. Gå till javascript/samples/web mappen i önskad kodredigerare.

    cd ./javascript/samples
    
  4. Kör download-pkg.ps1 eller download-pkg.sh ladda ned de paket som krävs.

  5. Gå till web mappen från ./javascript/samples mappen.

    cd ./web
    
  6. Kör npm install för att installera paketberoenden.

  7. Kör npm run dev för att starta webbservern och navigera i eventuella frågor om brandväggsbehörigheter efter behov.

  8. Gå till någon av de angivna URI:erna från konsolens utdata (till exempel http://localhost:5173/) i en webbläsare.

  9. 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 vara https://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.
  10. 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.

  11. Du bör se ett << Session Started >> meddelande i huvudutdata. Sedan kan du tala i mikrofonen för att starta en chatt.

  12. Du kan avbryta chatten när som helst genom att tala. Du kan avsluta chatten genom att välja knappen Stoppa .

Förutsättningar

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:

  1. 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.)
  2. Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
  3. Välj Skapa ny distribution för att öppna distributionsfönstret.
  4. Sök efter och välj gpt-4o-realtime-preview modellen och välj sedan Bekräfta.
  5. I distributionsguiden ser du till att välja 2024-10-01 modellversionen.
  6. 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

  1. 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
    
  2. 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:

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

    När du aktiverar Python-miljön innebär det att när du kör python eller pip från kommandoraden använder du sedan Python-tolken .venv som finns i mappen för ditt program. Du kan använda deactivate 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.

  3. 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"
    
  4. 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

  1. 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())
    
  2. 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

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:

  1. 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.)
  2. Välj ljudlekplatsen i realtid under Lekplatser i den vänstra rutan.
  3. Välj Skapa ny distribution för att öppna distributionsfönstret.
  4. Sök efter och välj gpt-4o-realtime-preview modellen och välj sedan Bekräfta.
  5. I distributionsguiden ser du till att välja 2024-10-01 modellversionen.
  6. 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

  1. 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
    
  2. package.json Skapa med följande kommando:

    npm init -y
    
  3. package.json Uppdatera till ECMAScript med följande kommando:

    npm pkg set type=module
    
  4. 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
    
  5. 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

  1. 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();
    
  2. 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"]
    }
    
  3. Transpilera från TypeScript till JavaScript.

    tsc
    
  4. Logga in på Azure med följande kommando:

    az login
    
  5. 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.