Aracılığıyla paylaş


Konuşma ve ses için GPT-4o Gerçek Zamanlı API (Önizleme)

Not

Bu özellik şu anda genel önizlemededir. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Konuşma ve ses için Azure OpenAI GPT-4o Realtime API,düşük gecikme süresi, "konuşma, konuşma çıkışı" konuşma etkileşimlerini destekleyen GPT-4o model ailesinin bir parçasıdır. GPT-4o ses realtime API'si gerçek zamanlı, düşük gecikme süreli konuşma etkileşimlerini işleyecek şekilde tasarlanmıştır ve bu sayede müşteri destek aracıları, sesli yardımcılar ve gerçek zamanlı çevirmenler gibi kullanıcı ve model arasındaki canlı etkileşimleri içeren kullanım örnekleri için mükemmel bir seçenektir.

Gerçek zamanlı API'nin kullanıcılarının çoğu, WebRTC veya telefon sistemi kullanan uygulamalar da dahil olmak üzere gerçek zamanlı olarak bir son kullanıcıdan ses teslim etmek ve almak zorunda. Gerçek Zamanlı API doğrudan son kullanıcı cihazlarına bağlanacak şekilde tasarlanmamıştır ve son kullanıcı ses akışlarını sonlandırmak için istemci tümleştirmelerine dayanır.

Desteklenen modeller

GPT 4o gerçek zamanlı modelleri genel dağıtımlar için kullanılabilir.

  • gpt-4o-realtime-preview (sürüm 2024-12-17)
  • gpt-4o-mini-realtime-preview (sürüm 2024-12-17)
  • gpt-4o-realtime-preview (sürüm 2024-10-01)

Daha fazla bilgi için modeller ve sürümler belgelerine bakın.

API desteği

Realtime API desteği ilk olarak API sürümünde 2024-10-01-previeweklendi. En son 2024-12-17 model sürümünü kullanın.

Gerçek zamanlı ses için model dağıtma

Modeli Azure AI Foundry portalında dağıtmak gpt-4o-mini-realtime-preview için:

  1. Azure AI Foundry portalında Azure OpenAI Hizmeti sayfasına gidin. Azure OpenAI Hizmeti kaynağınızın olduğu Azure aboneliğiyle (model dağıtımları ile veya olmadan) oturum açtığınızdan emin olun.
  2. Sol bölmedeki Oyun Alanları'nın altından Gerçek zamanlı ses oyun alanı'nı seçin.
  3. Dağıtım penceresini açmak için + Temel modellerden yeni dağıtım>oluştur'u seçin.
  4. Modeli arayıp seçin gpt-4o-mini-realtime-preview ve ardından Seçili kaynağa dağıt'ı seçin.
  5. Dağıtım sihirbazında model sürümünü seçin 2024-12-17 .
  6. Modeli dağıtma işlemini tamamlamak için sihirbazı izleyin.

Artık modelin dağıtımına gpt-4o-mini-realtime-preview sahip olduğunuz için Azure AI Foundry portalında gerçek zamanlı ses oyun alanı veya Gerçek zamanlı API ile gerçek zamanlı etkileşim kurabilirsiniz.

GPT-4o gerçek zamanlı sesi kullanma

Azure AI Foundry Gerçek zamanlı ses oyun alanında dağıtılan gpt-4o-mini-realtime-preview modelinizle sohbet etmek için şu adımları izleyin:

  1. Azure AI Foundry portalında Azure OpenAI Hizmeti sayfasına gidin. Azure OpenAI Hizmeti kaynağınızın ve dağıtılan gpt-4o-mini-realtime-preview modelin yer aldığı Azure aboneliğiyle oturum açtığınızdan emin olun.

  2. Sol bölmedeki Oyun Alanları'nın altından Gerçek zamanlı ses oyun alanı'nı seçin.

  3. Dağıtım açılan listesinden dağıtılan gpt-4o-mini-realtime-preview modelinizi seçin.

  4. Tarayıcının mikrofonunuza erişmesine izin vermek için Mikrofonu etkinleştir'i seçin. Zaten izin verdiyseniz, bu adımı atlayabilirsiniz.

    Dağıtılan modelin seçili olduğu gerçek zamanlı ses oyun alanının ekran görüntüsü.

  5. İsteğe bağlı olarak, Model yönergelerini ve bağlam metin kutusunu kullanarak içeriği düzenleyebilirsiniz. Modele nasıl davranması gerektiği ve yanıt oluştururken başvurması gereken bağlamlar hakkında yönergeler verin. Yardımcının kişiliğini açıklayabilir, neye cevap verip vermemesi gerektiğini söyleyebilir ve yanıtları nasıl biçimlendireceğini anlatabilirsiniz.

  6. İsteğe bağlı olarak eşik, ön ek doldurma ve sessizlik süresi gibi ayarları değiştirin.

  7. Oturumu başlatmak için Dinlemeye başla'ya tıklayın. Sohbet başlatmak için mikrofona konuşabilirsiniz.

    Dinlemeye başla düğmesinin ve mikrofon erişiminin etkinleştirildiği gerçek zamanlı ses oyun alanının ekran görüntüsü.

  8. Sohbeti istediğiniz zaman konuşarak kesebilirsiniz. Dinlemeyi durdur düğmesini seçerek sohbeti sonlandırabilirsiniz.

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun
  • LTS veya ESM desteğini Node.js.
  • Desteklenen bölgelerden birinde oluşturulan bir Azure OpenAI kaynağı. Bölge kullanılabilirliği hakkında daha fazla bilgi için modeller ve sürümler belgelerine bakın.
  • Ardından Azure OpenAI kaynağınızla bir gpt-4o-mini-realtime-preview model dağıtmanız gerekir. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Gerçek zamanlı ses için model dağıtma

Modeli Azure AI Foundry portalında dağıtmak gpt-4o-mini-realtime-preview için:

  1. Azure AI Foundry portalında Azure OpenAI Hizmeti sayfasına gidin. Azure OpenAI Hizmeti kaynağınızın olduğu Azure aboneliğiyle (model dağıtımları ile veya olmadan) oturum açtığınızdan emin olun.
  2. Sol bölmedeki Oyun Alanları'nın altından Gerçek zamanlı ses oyun alanı'nı seçin.
  3. Dağıtım penceresini açmak için + Temel modellerden yeni dağıtım>oluştur'u seçin.
  4. Modeli arayıp seçin gpt-4o-mini-realtime-preview ve ardından Seçili kaynağa dağıt'ı seçin.
  5. Dağıtım sihirbazında model sürümünü seçin 2024-12-17 .
  6. Modeli dağıtma işlemini tamamlamak için sihirbazı izleyin.

Artık modelin dağıtımına gpt-4o-mini-realtime-preview sahip olduğunuz için Azure AI Foundry portalında gerçek zamanlı ses oyun alanı veya Gerçek zamanlı API ile gerçek zamanlı etkileşim kurabilirsiniz.

Ayarlama

  1. Uygulamayı içerecek yeni bir klasör realtime-audio-quickstart oluşturun ve aşağıdaki komutla bu klasörde Visual Studio Code'u açın:

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. aşağıdaki komutla oluşturun package.json :

    npm init -y
    
  3. package.json ecmascript'e aşağıdaki komutla güncelleştirin:

    npm pkg set type=module
    
  4. JavaScript için gerçek zamanlı ses istemci kitaplığını şu şekilde yükleyin:

    npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
    
  5. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için paketi şu şekilde yükleyin@azure/identity:

    npm install @azure/identity
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Modeli Dağıtımları altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Dikkat

SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY ayarlanmamış olduğundan emin olun.

Ses çıkışında metin

  1. text-in-audio-out.js Dosyayı aşağıdaki kodla oluşturun:

    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-mini-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. Aşağıdaki komutla Azure'da oturum açın:

    az login
    
  3. JavaScript dosyasını çalıştırın.

    node text-in-audio-out.js
    

Yanıtı almak için birkaç dakika bekleyin.

Çıktı

Betik modelden bir yanıt alır ve alınan transkript ve ses verilerini yazdırır.

Çıkış aşağıdakine benzer olacaktı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.

Web uygulaması örneği

GitHub'daki JavaScript web örneğimiz, modelle gerçek zamanlı olarak etkileşime geçmek için GPT-4o Realtime API'sinin nasıl kullanılacağını gösterir. Örnek kod, kullanıcının mikrofonundan ses yakalayan ve işlenmek üzere modele gönderen basit bir web arabirimi içerir. Model, örnek kodun web arabiriminde işlediği metin ve ses ile yanıt verir.

Aşağıdaki adımları izleyerek örnek kodu makinenizde yerel olarak çalıştırabilirsiniz. En güncel yönergeler için GitHub'daki depoya bakın.

  1. Node.js yüklü değilse Node.js LTS sürümünü indirip yükleyin.

  2. Depoyu yerel makinenize kopyalayın:

    git clone https://github.com/Azure-Samples/aoai-realtime-audio-sdk.git
    
  3. javascript/samples/web Tercih ettiğiniz kod düzenleyicisindeki klasöre gidin.

    cd ./javascript/samples
    
  4. Gerekli paketleri indirmek için veya download-pkg.sh komutunu çalıştırındownload-pkg.ps1.

  5. Klasöründen web klasöre ./javascript/samples gidin.

    cd ./web
    
  6. Paket bağımlılıklarını yüklemek için komutunu çalıştırın npm install .

  7. Web sunucusunu başlatmak için komutunu çalıştırın npm run dev ve gerektiğinde güvenlik duvarı izin istemlerinde gezinin.

  8. Sağlanan URI'lerden herhangi birine bir tarayıcıdaki konsol çıkışından (örneğin http://localhost:5173/) gidin.

  9. Web arabirimine aşağıdaki bilgileri girin:

    • Uç nokta: Azure OpenAI kaynağının kaynak uç noktası. Yolu eklemeniz /realtime gerekmez. Örnek bir yapı olabilir https://my-azure-openai-resource-from-portal.openai.azure.com.
    • API Anahtarı: Azure OpenAI kaynağı için karşılık gelen API anahtarı.
    • Dağıtım: Önceki bölümde dağıttığınız modelin adıgpt-4o-mini-realtime-preview.
    • Sistem İletisi: İsteğe bağlı olarak, "Her zaman dost korsan gibi konuşuyorsunuz" gibi bir sistem iletisi sağlayabilirsiniz.
    • Sıcaklık: İsteğe bağlı olarak, özel bir sıcaklık sağlayabilirsiniz.
    • Ses: İsteğe bağlı olarak bir ses seçebilirsiniz.
  10. Oturumu başlatmak için Kaydet düğmesini seçin. İstenirse mikrofonunuzu kullanma izinlerini kabul edin.

  11. Ana çıkışta bir << Session Started >> ileti görmeniz gerekir. Ardından sohbet başlatmak için mikrofona konuşabilirsiniz.

  12. Sohbeti istediğiniz zaman konuşarak kesebilirsiniz. Durdur düğmesini seçerek sohbeti sonlandırabilirsiniz.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturun.
  • Python 3.8 veya sonraki bir sürümü. Python 3.10 veya üzerini kullanmanızı öneririz, ancak en az Python 3.8'e sahip olmak gerekir. Python'ın uygun bir sürümü yüklü değilse, işletim sisteminize Python yüklemenin en kolay yolu için VS Code Python Öğreticisi'ndeki yönergeleri izleyebilirsiniz.
  • Desteklenen bölgelerden birinde oluşturulan bir Azure OpenAI kaynağı. Bölge kullanılabilirliği hakkında daha fazla bilgi için modeller ve sürümler belgelerine bakın.
  • Ardından Azure OpenAI kaynağınızla bir gpt-4o-mini-realtime-preview model dağıtmanız gerekir. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Gerçek zamanlı ses için model dağıtma

Modeli Azure AI Foundry portalında dağıtmak gpt-4o-mini-realtime-preview için:

  1. Azure AI Foundry portalında Azure OpenAI Hizmeti sayfasına gidin. Azure OpenAI Hizmeti kaynağınızın olduğu Azure aboneliğiyle (model dağıtımları ile veya olmadan) oturum açtığınızdan emin olun.
  2. Sol bölmedeki Oyun Alanları'nın altından Gerçek zamanlı ses oyun alanı'nı seçin.
  3. Dağıtım penceresini açmak için + Temel modellerden yeni dağıtım>oluştur'u seçin.
  4. Modeli arayıp seçin gpt-4o-mini-realtime-preview ve ardından Seçili kaynağa dağıt'ı seçin.
  5. Dağıtım sihirbazında model sürümünü seçin 2024-12-17 .
  6. Modeli dağıtma işlemini tamamlamak için sihirbazı izleyin.

Artık modelin dağıtımına gpt-4o-mini-realtime-preview sahip olduğunuz için Azure AI Foundry portalında gerçek zamanlı ses oyun alanı veya Gerçek zamanlı API ile gerçek zamanlı etkileşim kurabilirsiniz.

Ayarlama

  1. Uygulamayı içerecek yeni bir klasör realtime-audio-quickstart oluşturun ve aşağıdaki komutla bu klasörde Visual Studio Code'u açın:

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. Sanal ortam oluşturma. Python 3.10 veya üzeri yüklüyse aşağıdaki komutları kullanarak bir sanal ortam oluşturabilirsiniz:

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

    Python ortamını etkinleştirmek, komut satırını çalıştırdığınızda veya pip komut satırından çalıştırdığınızda python uygulamanızın klasöründe bulunan Python yorumlayıcısını .venv kullanacağınız anlamına gelir. komutunu kullanarak deactivate Python sanal ortamından çıkabilirsiniz ve daha sonra gerektiğinde yeniden etkinleştirebilirsiniz.

    İpucu

    Bu öğretici için ihtiyacınız olan paketleri yüklemek üzere kullanmak üzere yeni bir Python ortamı oluşturmanızı ve etkinleştirmenizi öneririz. Paketleri genel Python yüklemenize yüklemeyin. Python paketlerini yüklerken her zaman bir sanal veya conda ortamı kullanmanız gerekir, aksi takdirde Python'ın genel yüklemesini bozabilirsiniz.

  3. Python için gerçek zamanlı ses istemci kitaplığını şu şekilde yükleyin:

    pip install "https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/py%2Fv0.5.3/rtclient-0.5.3.tar.gz"
    
  4. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için paketi şu şekilde yükleyinazure-identity:

    pip install azure-identity
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Modeli Dağıtımları altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Ses çıkışında metin

  1. text-in-audio-out.py Dosyayı aşağıdaki kodla oluşturun:

    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-mini-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. Python dosyasını çalıştırın.

    python text-in-audio-out.py
    

Yanıtı almak için birkaç dakika bekleyin.

Çıktı

Betik modelden bir yanıt alır ve alınan transkript ve ses verilerini yazdırır.

Çıkış aşağıdakine benzer olacaktı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.

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun
  • LTS veya ESM desteğini Node.js.
  • TypeScript genel olarak yüklendi.
  • Desteklenen bölgelerden birinde oluşturulan bir Azure OpenAI kaynağı. Bölge kullanılabilirliği hakkında daha fazla bilgi için modeller ve sürümler belgelerine bakın.
  • Ardından Azure OpenAI kaynağınızla bir gpt-4o-mini-realtime-preview model dağıtmanız gerekir. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Gerçek zamanlı ses için model dağıtma

Modeli Azure AI Foundry portalında dağıtmak gpt-4o-mini-realtime-preview için:

  1. Azure AI Foundry portalında Azure OpenAI Hizmeti sayfasına gidin. Azure OpenAI Hizmeti kaynağınızın olduğu Azure aboneliğiyle (model dağıtımları ile veya olmadan) oturum açtığınızdan emin olun.
  2. Sol bölmedeki Oyun Alanları'nın altından Gerçek zamanlı ses oyun alanı'nı seçin.
  3. Dağıtım penceresini açmak için + Temel modellerden yeni dağıtım>oluştur'u seçin.
  4. Modeli arayıp seçin gpt-4o-mini-realtime-preview ve ardından Seçili kaynağa dağıt'ı seçin.
  5. Dağıtım sihirbazında model sürümünü seçin 2024-12-17 .
  6. Modeli dağıtma işlemini tamamlamak için sihirbazı izleyin.

Artık modelin dağıtımına gpt-4o-mini-realtime-preview sahip olduğunuz için Azure AI Foundry portalında gerçek zamanlı ses oyun alanı veya Gerçek zamanlı API ile gerçek zamanlı etkileşim kurabilirsiniz.

Ayarlama

  1. Uygulamayı içerecek yeni bir klasör realtime-audio-quickstart oluşturun ve aşağıdaki komutla bu klasörde Visual Studio Code'u açın:

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. aşağıdaki komutla oluşturun package.json :

    npm init -y
    
  3. package.json ecmascript'e aşağıdaki komutla güncelleştirin:

    npm pkg set type=module
    
  4. JavaScript için gerçek zamanlı ses istemci kitaplığını şu şekilde yükleyin:

    npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
    
  5. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için paketi şu şekilde yükleyin@azure/identity:

    npm install @azure/identity
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Modeli Dağıtımları altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Dikkat

SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY ayarlanmamış olduğundan emin olun.

Ses çıkışında metin

  1. text-in-audio-out.ts Dosyayı aşağıdaki kodla oluşturun:

    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-mini-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 TypeScript kodunu değiştirmek için dosyasını oluşturun ve ECMAScript için aşağıdaki kodu kopyalayın.

    {
        "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. TypeScript'ten JavaScript'e dönüştürme.

    tsc
    
  4. Aşağıdaki komutla Azure'da oturum açın:

    az login
    
  5. Kodu aşağıdaki komutla çalıştırın:

    node text-in-audio-out.js
    

Yanıtı almak için birkaç dakika bekleyin.

Çıktı

Betik modelden bir yanıt alır ve alınan transkript ve ses verilerini yazdırır.

Çıkış aşağıdakine benzer olacaktı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.