Hızlı Başlangıç: Azure OpenAI Hizmeti ile metin okuma

Bu hızlı başlangıçta, OpenAI sesleriyle metin okuma için Azure OpenAI Hizmeti'ni kullanacaksınız.

Kullanılabilir sesler şunlardır: alloy, echo, fable, onyx, novave shimmer. Daha fazla bilgi için bkz . Metin okuma için Azure OpenAI Hizmeti başvuru belgeleri.

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun.
  • Orta Kuzey ABD veya İsveç Orta bölgelerinde tts-1 oluşturulan veya tts-1-hd modeli dağıtılan bir Azure OpenAI kaynağı. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.

Ayarlama

Anahtarı ve uç noktayı alma

Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Studio'daki Dağıtımlar sayfasında bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için hem uç noktanızı hem de erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Azure portalında uç nokta ve erişim anahtarları konumu vurgulanmış bir Azure OpenAI kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Önemli

API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST isteği ve yanıtı oluşturma

Bash kabuğunda aşağıdaki komutu çalıştırın. yerine metni konuşma modeline dağıtırken seçtiğiniz dağıtım adıyla değiştirmeniz YourDeploymentName gerekir. Dağıtım adı, model adıyla aynı olmayabilir. Temel alınan model adıyla aynı olan bir dağıtım adı seçmediğiniz sürece model adının girilmesi hatayla sonuçlanır.

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/YourDeploymentName/audio/speech?api-version=2024-02-15-preview \
 -H "api-key: $AZURE_OPENAI_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
    "model": "tts-1-hd",
    "input": "I'm excited to try text to speech.",
    "voice": "alloy"
}' --output speech.mp3

Örnek bir uç nokta ile komutun ilk satırının biçimi aşağıdaki curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2024-02-15-preview \şeklinde görünür.

Önemli

Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

Kaynak kodu | Paketi (npm) | Örnekler

Önkoşullar

Ayarlama

Anahtarı ve uç noktayı alma

Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Studio'daki Dağıtımlar sayfasında bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için hem uç noktanızı hem de erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Azure portalında uç nokta ve erişim anahtarları konumu vurgulanmış bir Azure OpenAI kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Önemli

API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Node uygulaması oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin. Ardından komutunu çalıştırarak npm init package.json dosyasıyla bir düğüm uygulaması oluşturun.

npm init

İstemci kitaplığını yükleme

İstemci kitaplıklarını şu şekilde yükleyin:

npm install openai @azure/identity

Uygulamanızın package.json dosyası bağımlılıklarla güncelleştirilir.

Konuşma dosyası oluşturma

  1. Text-to-speech.js adlı yeni bir dosya oluşturun ve bunu tercih ettiğiniz kod düzenleyicisinde açın. Aşağıdaki kodu Text-to-speech.js dosyasına kopyalayın:

    const { writeFile } = require("fs/promises");
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    require("openai/shims/node");
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
    const speechFilePath = "<path to save the speech file>";
    
    // Required Azure OpenAI deployment name and API version
    const deploymentName = "tts";
    const apiVersion = "2024-08-01-preview";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient() {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    
    async function generateAudioStream(
      client,
      params
    ) {
      const response = await client.audio.speech.create(params);
      if (response.ok) return response.body;
      throw new Error(`Failed to generate audio stream: ${response.statusText}`);
    }
    export async function main() {
      console.log("== Text to Speech Sample ==");
    
      const client = getClient();
      const streamToRead = await generateAudioStream(client, {
        model: deploymentName,
        voice: "alloy",
        input: "the quick brown chicken jumped over the lazy dogs",
      });
    
      console.log(`Streaming response to ${speechFilePath}`);
      await writeFile(speechFilePath, streamToRead);
      console.log("Finished streaming");
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
    
  2. Betiği aşağıdaki komutla çalıştırın:

    node Text-to-speech.js
    

Kaynak kodu | Paketi (npm) | Örnekler

Önkoşullar

Ayarlama

Anahtarı ve uç noktayı alma

Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://aoai-docs.openai.azure.com/.
AZURE_OPENAI_API_KEY Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz.

Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için hem uç noktanızı hem de erişim anahtarınızı kopyalayın. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Azure portalında uç nokta ve erişim anahtarları konumu vurgulanmış bir Azure OpenAI kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Önemli

API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Node uygulaması oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin. Ardından komutunu çalıştırarak npm init package.json dosyasıyla bir düğüm uygulaması oluşturun.

npm init

İstemci kitaplığını yükleme

İstemci kitaplıklarını şu şekilde yükleyin:

npm install openai @azure/identity

Uygulamanızın package.json dosyası bağımlılıklarla güncelleştirilir.

Konuşma dosyası oluşturma

  1. Text-to-speech.ts adlı yeni bir dosya oluşturun ve bunu tercih ettiğiniz kod düzenleyicisinde açın. Aşağıdaki kodu Text-to-speech.ts dosyasına kopyalayın:

    import { writeFile } from "fs/promises";
    import { AzureOpenAI } from "openai";
    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    import type { SpeechCreateParams } from "openai/resources/audio/speech";
    import "openai/shims/node";
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
    const speechFilePath = "<path to save the speech file>";
    
    // Required Azure OpenAI deployment name and API version
    const deploymentName = "tts";
    const apiVersion = "2024-08-01-preview";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    
    async function generateAudioStream(
      client: AzureOpenAI,
      params: SpeechCreateParams
    ): Promise<NodeJS.ReadableStream> {
      const response = await client.audio.speech.create(params);
      if (response.ok) return response.body;
      throw new Error(`Failed to generate audio stream: ${response.statusText}`);
    }
    export async function main() {
      console.log("== Text to Speech Sample ==");
    
      const client = getClient();
      const streamToRead = await generateAudioStream(client, {
        model: deploymentName,
        voice: "alloy",
        input: "the quick brown chicken jumped over the lazy dogs",
      });
    
      console.log(`Streaming response to ${speechFilePath}`);
      await writeFile(speechFilePath, streamToRead);
      console.log("Finished streaming");
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
    

    İçeri aktarma "openai/shims/node" işlemi, kodu Node.js bir ortamda çalıştırırken gereklidir. Yöntemin çıkış türünün client.audio.speech.create doğru olarak ayarlanmasını NodeJS.ReadableStreamsağlar.

  2. Uygulamayı aşağıdaki komutla derleyin:

    tsc
    
  3. Uygulamayı aşağıdaki komutla çalıştırın:

    node Text-to-speech.js
    

Önkoşullar

.NET uygulamasını oluşturma

  1. komutunu kullanarak dotnet new bir .NET uygulaması oluşturun:

    dotnet new console -n TextToSpeech
    
  2. Yeni uygulamanın dizinine geçin:

    cd OpenAISpeech
    
  3. İstemci kitaplığını Azure.OpenAI yükleyin:

    dotnet add package Azure.AI.OpenAI
    

Kimlik doğrulaması ve Azure OpenAI'ye bağlanma

Azure OpenAI hizmetinize istekte bulunmak için aşağıdaki seçeneklerden biri aracılığıyla hizmet uç noktasına ve kimlik doğrulaması kimlik bilgilerine ihtiyacınız vardır:

  • Microsoft Entra ID , Azure hizmetlerinde kimlik doğrulaması için önerilen yaklaşımdır ve anahtar tabanlı alternatiflerden daha güvenlidir.

  • Erişim anahtarları, kaynağınıza bağlanmak için bir gizli anahtar sağlamanıza olanak sağlar.

    Önemli

    Erişim anahtarları dikkatli kullanılmalıdır. Hizmet erişim anahtarınız kaybolursa veya güvenli olmayan bir konumda yanlışlıkla kullanıma sunulursa, hizmetiniz güvenlik açığına maruz kalabilir. Erişim anahtarına sahip olan herkes Azure OpenAI hizmetine yönelik istekleri yetkilendirilebiliyor.

Azure OpenAI uç noktasını alma

Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Studio'daki Dağıtımlar sayfasında bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/.

Azure portalında uç nokta ve erişim anahtarları konumu vurgulanmış bir Azure OpenAI kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Microsoft Entra Id kullanarak kimlik doğrulaması

Microsoft Entra Id kimlik doğrulamasını kullanmayı seçerseniz aşağıdakileri tamamlamanız gerekir:

  1. Azure.Identity paketini ekleyin.

    dotnet add package Azure.Identity
    
  2. Rolü kullanıcı hesabınıza atayın Cognitive Services User . Bu, OpenAI kaynağınızdaki Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında yapılabilir.

  3. Aracılığıyla az loginVisual Studio veya Azure CLI kullanarak Azure'da oturum açın.

Anahtarları kullanarak kimlik doğrulaması

Erişim anahtarı değeri, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Uygulama kodunu güncelleştirme

  1. öğesinin içeriğini program.cs aşağıdaki kodla değiştirin ve yer tutucu değerlerini kendi kodunuzla güncelleştirin.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity; // Required for Passwordless auth
    
    var endpoint = new Uri(
        Environment.GetEnvironmentVariable("YOUR_OPENAI_ENDPOINT") ?? throw new ArgumentNullException());
    var credentials = new DefaultAzureCredential();
    
    // Use this line for key auth
    // var credentials = new AzureKeyCredential(
    //    Environment.GetEnvironmentVariable("YOUR_OPENAI_KEY") ?? throw new ArgumentNullException());
    
    var deploymentName = "tts"; // Default deployment name, update with your own if necessary
    var speechFilePath = "YOUR_AUDIO_FILE_PATH";
    
    var openAIClient = new AzureOpenAIClient(endpoint, credentials);
    var audioClient = openAIClient.GetAudioClient(deploymentName);
    
    var result = await audioClient.GenerateSpeechAsync(
                    "the quick brown chicken jumped over the lazy dogs");
    
    Console.WriteLine("Streaming response to ${speechFilePath}");
    await File.WriteAllBytesAsync(speechFilePath, result.Value.ToArray());
    Console.WriteLine("Finished streaming");
    

    Önemli

    Üretim için Azure Key Vault gibi güvenli bir yöntem kullanarak kimlik bilgilerinizi depolayın ve erişin. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetleri güvenliği.

  2. Visual Studio'nun dotnet run üst kısmındaki komutu veya çalıştır düğmesini kullanarak uygulamayı çalıştırın:

    dotnet run
    

    Uygulama, değişken için speechFilePath belirttiğiniz konumda bir ses dosyası oluşturur. Oluşturulan sesi duymak için dosyayı cihazınızda yürütin.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.

Sonraki adımlar

  • Azure OpenAI Hizmeti başvuru belgelerinde Azure OpenAI Hizmeti ile metin okuma ile çalışma hakkında daha fazla bilgi edinin.
  • Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın