Sdílet prostřednictvím


ROZHRANÍ GPT-4o API v reálném čase pro řeč a zvuk (Preview)

Poznámka:

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Rozhraní API Azure OpenAI GPT-4o v reálném čase pro řeč a zvuk je součástí řady modelů GPT-4o, která podporuje konverzace s nízkou latencí, "řeč v řeči" a mluvenou konverzací. Rozhraní GPT-4o Audio realtime API je navržené tak, aby zpracovával konverzační interakce v reálném čase, což je skvělé pro případy použití zahrnující živé interakce mezi uživatelem a modelem, jako jsou agenti zákaznické podpory, hlasoví asistenti a překladatelé v reálném čase.

Většina uživatelů rozhraní API v reálném čase potřebuje doručovat a přijímat zvuk od koncového uživatele v reálném čase, včetně aplikací, které používají WebRTC nebo telefonní systém. Rozhraní API v reálném čase není navržené tak, aby se připojilo přímo k zařízením koncových uživatelů a spoléhá na integraci klientů, aby ukončila zvukové streamy koncových uživatelů.

Podporované modely

Aktuálně pouze gpt-4o-realtime-preview verze: 2024-10-01-preview podporuje zvuk v reálném čase.

Model gpt-4o-realtime-preview je k dispozici pro globální nasazení v oblastech USA – východ 2 a Švédsko – střed.

Důležité

Systém ukládá výzvy a dokončení, jak je popsáno v části Použití dat a přístup k monitorování zneužití v podmínkách produktu specifické pro službu Azure OpenAI, s tím rozdílem, že se nevztahuje omezená výjimka. Monitorování zneužití bude zapnuté pro použití rozhraní API i pro zákazníky, kteří jsou jinak schváleni pro monitorování upravených gpt-4o-realtime-preview zneužití.

Podpora rozhraní API

Podpora rozhraní API v reálném čase byla poprvé přidána ve verzi 2024-10-01-previewrozhraní API .

Poznámka:

Další informace o rozhraní API a architektuře najdete v úložišti zvuků Azure OpenAI GPT-4o v reálném čase na GitHubu.

Nasazení modelu pro zvuk v reálném čase

gpt-4o-realtime-preview Nasazení modelu na portálu Azure AI Foundry:

  1. Přejděte na portál Azure AI Foundry a ujistěte se, že jste přihlášení pomocí předplatného Azure, které má váš prostředek služby Azure OpenAI (s nasazením modelu nebo bez).
  2. V části Dětské hřiště v levém podokně vyberte zvukové hřiště v reálném čase.
  3. Výběrem možnosti Vytvořit nové nasazení otevřete okno nasazení.
  4. Vyhledejte a vyberte gpt-4o-realtime-preview model a pak vyberte Potvrdit.
  5. V průvodci nasazením nezapomeňte vybrat 2024-10-01 verzi modelu.
  6. Dokončete nasazení modelu podle průvodce.

Teď, když máte nasazení gpt-4o-realtime-preview modelu, můžete s ním pracovat v reálném čase na portálu Azure AI Foundry v reálném čase audio playground nebo rozhraní API v reálném čase.

Použití zvuku GPT-4o v reálném čase

Pokud chcete chatovat s nasazeným gpt-4o-realtime-preview modelem ve zvukovém hřišti Azure AI Foundry v reálném čase, postupujte takto:

  1. Na portálu Azure AI Foundry přejděte na stránku služby Azure OpenAI. Ujistěte se, že jste přihlášení pomocí předplatného Azure, které má váš prostředek služby Azure OpenAI a nasazený gpt-4o-realtime-preview model.

  2. V části Dětské hřiště v levém podokně vyberte zvukové hřiště v reálném čase.

  3. V rozevíracím seznamu Nasazení vyberte nasazený gpt-4o-realtime-preview model.

  4. Pokud chcete prohlížeči povolit přístup k mikrofonu, vyberte Povolit mikrofon . Pokud jste už udělili oprávnění, můžete tento krok přeskočit.

    Snímek obrazovky zvukového hřiště v reálném čase s vybraným nasazeným modelem

  5. Volitelně můžete upravit obsah v poli Zadat pokyny k modelu a kontextové textové pole. Poskytněte modelu pokyny, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi.

  6. Volitelně můžete změnit nastavení, jako je prahová hodnota, odsazení předpony a doba trvání ticha.

  7. Vyberte Spustit naslouchání a spusťte relaci. Můžete mluvit do mikrofonu a zahájit chat.

    Snímek obrazovky zvukového hřiště v reálném čase s povoleným tlačítkem Spustit poslech a povoleným přístupem k mikrofonu

  8. Chat můžete kdykoli přerušit tím, že promluvíte. Chat můžete ukončit tak , že vyberete tlačítko Ukončit naslouchání .

Požadavky

Požadavky pro Microsoft Entra ID

Pro doporučené ověřování bez klíčů s ID Microsoft Entra musíte:

  • Nainstalujte Azure CLI, které se používá pro ověřování bez klíčů pomocí ID Microsoft Entra.
  • Přiřaďte roli k uživatelskému Cognitive Services User účtu. Role můžete přiřadit na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role.

Nasazení modelu pro zvuk v reálném čase

gpt-4o-realtime-preview Nasazení modelu na portálu Azure AI Foundry:

  1. Přejděte na portál Azure AI Foundry a ujistěte se, že jste přihlášení pomocí předplatného Azure, které má váš prostředek služby Azure OpenAI (s nasazením modelu nebo bez).
  2. V části Dětské hřiště v levém podokně vyberte zvukové hřiště v reálném čase.
  3. Výběrem možnosti Vytvořit nové nasazení otevřete okno nasazení.
  4. Vyhledejte a vyberte gpt-4o-realtime-preview model a pak vyberte Potvrdit.
  5. V průvodci nasazením nezapomeňte vybrat 2024-10-01 verzi modelu.
  6. Dokončete nasazení modelu podle průvodce.

Teď, když máte nasazení gpt-4o-realtime-preview modelu, můžete s ním pracovat v reálném čase na portálu Azure AI Foundry v reálném čase audio playground nebo rozhraní API v reálném čase.

Nastavení

  1. Vytvořte novou složku realtime-audio-quickstart , která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. Vytvořte následující package.json příkaz:

    npm init -y
    
  3. package.json Aktualizujte na ECMAScript následujícím příkazem:

    npm pkg set type=module
    
  4. Nainstalujte si klientskou knihovnu audio v reálném čase pro JavaScript pomocí:

    npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
    
  5. Pro doporučené ověřování bez klíčů s ID Microsoft Entra nainstalujte balíček pomocí@azure/identity:

    npm install @azure/identity
    

Načtení informací o prostředcích

Název proměnné Hodnota
AZURE_OPENAI_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal.
OPENAI_API_VERSION Přečtěte si další informace o verzích rozhraní API.

Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.

Upozornění

Pokud chcete používat doporučené ověřování bez klíčů se sadou SDK, ujistěte se, že AZURE_OPENAI_API_KEY proměnná prostředí není nastavená.

Text ve zvukovém přenosu

  1. text-in-audio-out.js Vytvořte soubor s následujícím kódem:

    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. Přihlaste se k Azure pomocí následujícího příkazu:

    az login
    
  3. Spusťte javascriptový soubor.

    node text-in-audio-out.js
    

Počkejte chvíli, než se odpověď zobrazí.

Výstup

Skript získá odpověď z modelu a vytiskne přijatá přepis a zvuková data.

Výstup bude vypadat nějak takto:

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.

Ukázka webové aplikace

Naše webová ukázka JavaScriptu na GitHubu ukazuje, jak používat rozhraní GPT-4o API v reálném čase k interakci s modelem v reálném čase. Ukázkový kód obsahuje jednoduché webové rozhraní, které zachycuje zvuk z mikrofonu uživatele a odesílá ho do modelu ke zpracování. Model reaguje textem a zvukem, který vzorový kód vykresluje ve webovém rozhraní.

Ukázkový kód můžete spustit místně na svém počítači pomocí následujícího postupu. Nejnovější pokyny najdete v úložišti na GitHubu .

  1. Pokud nemáte nainstalované Node.js, stáhněte a nainstalujte verzi ltS Node.js.

  2. Naklonujte úložiště do místního počítače:

    git clone https://github.com/Azure-Samples/aoai-realtime-audio-sdk.git
    
  3. Přejděte do javascript/samples/web složky v preferovaném editoru kódu.

    cd ./javascript/samples
    
  4. Spusťte download-pkg.ps1 nebo download-pkg.sh stáhněte požadované balíčky.

  5. Přejděte do web složky ze ./javascript/samples složky.

    cd ./web
    
  6. Spusťte npm install instalaci závislostí balíčku.

  7. Spuštěním spusťte npm run dev webový server a podle potřeby přejděte na všechny výzvy k oprávněním brány firewall.

  8. V prohlížeči přejděte na některé z poskytnutých identifikátorů URI z výstupu konzoly (například http://localhost:5173/).

  9. Do webového rozhraní zadejte následující informace:

    • Koncový bod: Koncový bod prostředku prostředku Azure OpenAI. Cestu nemusíte přidávat /realtime . Příkladem může být https://my-azure-openai-resource-from-portal.openai.azure.comstruktura .
    • Klíč rozhraní API: Odpovídající klíč rozhraní API pro prostředek Azure OpenAI.
    • Nasazení: Název gpt-4o-realtime-preview modelu, který jste nasadili v předchozí části.
    • Systémová zpráva: Volitelně můžete zadat systémovou zprávu, například "Vždy mluvíte jako přátelský pirát.".
    • Teplota: Volitelně můžete zadat vlastní teplotu.
    • Hlas: Volitelně můžete vybrat hlas.
  10. Výběrem tlačítka Záznam spusťte relaci. Pokud se zobrazí výzva, přijměte oprávnění k používání mikrofonu.

  11. V hlavním výstupu by se měla zobrazit << Session Started >> zpráva. Pak můžete mluvit do mikrofonu a zahájit chat.

  12. Chat můžete kdykoli přerušit tím, že promluvíte. Chat můžete ukončit výběrem tlačítka Zastavit .

Požadavky

Požadavky pro Microsoft Entra ID

Pro doporučené ověřování bez klíčů s ID Microsoft Entra musíte:

  • Nainstalujte Azure CLI, které se používá pro ověřování bez klíčů pomocí ID Microsoft Entra.
  • Přiřaďte roli k uživatelskému Cognitive Services User účtu. Role můžete přiřadit na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role.

Nasazení modelu pro zvuk v reálném čase

gpt-4o-realtime-preview Nasazení modelu na portálu Azure AI Foundry:

  1. Přejděte na portál Azure AI Foundry a ujistěte se, že jste přihlášení pomocí předplatného Azure, které má váš prostředek služby Azure OpenAI (s nasazením modelu nebo bez).
  2. V části Dětské hřiště v levém podokně vyberte zvukové hřiště v reálném čase.
  3. Výběrem možnosti Vytvořit nové nasazení otevřete okno nasazení.
  4. Vyhledejte a vyberte gpt-4o-realtime-preview model a pak vyberte Potvrdit.
  5. V průvodci nasazením nezapomeňte vybrat 2024-10-01 verzi modelu.
  6. Dokončete nasazení modelu podle průvodce.

Teď, když máte nasazení gpt-4o-realtime-preview modelu, můžete s ním pracovat v reálném čase na portálu Azure AI Foundry v reálném čase audio playground nebo rozhraní API v reálném čase.

Nastavení

  1. Vytvořte novou složku realtime-audio-quickstart , která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. Vytvořte virtuální prostředí. Pokud už máte nainstalovaný Python 3.10 nebo novější, můžete vytvořit virtuální prostředí pomocí následujících příkazů:

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

    Aktivace prostředí Python znamená, že při spuštění python nebo pip z příkazového řádku pak použijete interpret Pythonu obsažený ve .venv složce vaší aplikace. Pomocí příkazu můžete deactivate ukončit virtuální prostředí Pythonu a později ho v případě potřeby znovu aktivovat.

    Tip

    Doporučujeme vytvořit a aktivovat nové prostředí Pythonu pro instalaci balíčků, které potřebujete pro účely tohoto kurzu. Neinstalujte balíčky do globální instalace Pythonu. Při instalaci balíčků Pythonu byste měli vždy používat virtuální prostředí nebo prostředí Conda, jinak můžete přerušit globální instalaci Pythonu.

  3. Nainstalujte si klientskou knihovnu audio v reálném čase pro Python pomocí následujících možností:

    pip install "https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/py%2Fv0.5.3/rtclient-0.5.3.tar.gz"
    
  4. Pro doporučené ověřování bez klíčů s ID Microsoft Entra nainstalujte balíček pomocíazure-identity:

    pip install azure-identity
    

Načtení informací o prostředcích

Název proměnné Hodnota
AZURE_OPENAI_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal.
OPENAI_API_VERSION Přečtěte si další informace o verzích rozhraní API.

Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.

Text ve zvukovém přenosu

  1. text-in-audio-out.py Vytvořte soubor s následujícím kódem:

    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. Spusťte soubor Pythonu.

    python text-in-audio-out.py
    

Počkejte chvíli, než se odpověď zobrazí.

Výstup

Skript získá odpověď z modelu a vytiskne přijatá přepis a zvuková data.

Výstup bude vypadat nějak takto:

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.

Požadavky

Požadavky pro Microsoft Entra ID

Pro doporučené ověřování bez klíčů s ID Microsoft Entra musíte:

  • Nainstalujte Azure CLI, které se používá pro ověřování bez klíčů pomocí ID Microsoft Entra.
  • Přiřaďte roli k uživatelskému Cognitive Services User účtu. Role můžete přiřadit na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role.

Nasazení modelu pro zvuk v reálném čase

gpt-4o-realtime-preview Nasazení modelu na portálu Azure AI Foundry:

  1. Přejděte na portál Azure AI Foundry a ujistěte se, že jste přihlášení pomocí předplatného Azure, které má váš prostředek služby Azure OpenAI (s nasazením modelu nebo bez).
  2. V části Dětské hřiště v levém podokně vyberte zvukové hřiště v reálném čase.
  3. Výběrem možnosti Vytvořit nové nasazení otevřete okno nasazení.
  4. Vyhledejte a vyberte gpt-4o-realtime-preview model a pak vyberte Potvrdit.
  5. V průvodci nasazením nezapomeňte vybrat 2024-10-01 verzi modelu.
  6. Dokončete nasazení modelu podle průvodce.

Teď, když máte nasazení gpt-4o-realtime-preview modelu, můžete s ním pracovat v reálném čase na portálu Azure AI Foundry v reálném čase audio playground nebo rozhraní API v reálném čase.

Nastavení

  1. Vytvořte novou složku realtime-audio-quickstart , která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. Vytvořte následující package.json příkaz:

    npm init -y
    
  3. package.json Aktualizujte na ECMAScript následujícím příkazem:

    npm pkg set type=module
    
  4. Nainstalujte si klientskou knihovnu audio v reálném čase pro JavaScript pomocí:

    npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
    
  5. Pro doporučené ověřování bez klíčů s ID Microsoft Entra nainstalujte balíček pomocí@azure/identity:

    npm install @azure/identity
    

Načtení informací o prostředcích

Název proměnné Hodnota
AZURE_OPENAI_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal.
OPENAI_API_VERSION Přečtěte si další informace o verzích rozhraní API.

Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.

Upozornění

Pokud chcete používat doporučené ověřování bez klíčů se sadou SDK, ujistěte se, že AZURE_OPENAI_API_KEY proměnná prostředí není nastavená.

Text ve zvukovém přenosu

  1. text-in-audio-out.ts Vytvořte soubor s následujícím kódem:

    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 Vytvořte soubor pro transpilování kódu TypeScript a zkopírujte následující kód pro 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. Transpilovat z TypeScriptu do JavaScriptu.

    tsc
    
  4. Přihlaste se k Azure pomocí následujícího příkazu:

    az login
    
  5. Spusťte kód pomocí následujícího příkazu:

    node text-in-audio-out.js
    

Počkejte chvíli, než se odpověď zobrazí.

Výstup

Skript získá odpověď z modelu a vytiskne přijatá přepis a zvuková data.

Výstup bude vypadat nějak takto:

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.