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
, nova
ve 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 veyatts-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.
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.
Kaynak kodu | Paketi (npm) | Örnekler
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Node.js LTS sürümleri
- Yerel geliştirme ortamında parolasız kimlik doğrulaması için kullanılan Azure CLI , Azure CLI ile oturum açarak gerekli bağlamı oluşturun.
- Desteklenen bir bölgede oluşturulan bir Azure OpenAI kaynağı (bkz . Bölge kullanılabilirliği). 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.
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
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); });
Betiği aşağıdaki komutla çalıştırın:
node Text-to-speech.js
Kaynak kodu | Paketi (npm) | Örnekler
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Node.js LTS sürümleri
- TypeScript
- Yerel geliştirme ortamında parolasız kimlik doğrulaması için kullanılan Azure CLI , Azure CLI ile oturum açarak gerekli bağlamı oluşturun.
- Desteklenen bir bölgede oluşturulan bir Azure OpenAI kaynağı (bkz . Bölge kullanılabilirliği). 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 |
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.
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
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ünclient.audio.speech.create
doğru olarak ayarlanmasınıNodeJS.ReadableStream
sağlar.Uygulamayı aşağıdaki komutla derleyin:
tsc
Uygulamayı aşağıdaki komutla çalıştırın:
node Text-to-speech.js
Önkoşullar
- Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
- Desteklenen bir bölgede Fısıltı modeli dağıtılan bir Azure OpenAI kaynağı. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.
- .NET 8.0 SDK'sı
.NET uygulamasını oluşturma
komutunu kullanarak
dotnet new
bir .NET uygulaması oluşturun:dotnet new console -n TextToSpeech
Yeni uygulamanın dizinine geçin:
cd OpenAISpeech
İ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/
.
Microsoft Entra Id kullanarak kimlik doğrulaması
Microsoft Entra Id kimlik doğrulamasını kullanmayı seçerseniz aşağıdakileri tamamlamanız gerekir:
Azure.Identity
paketini ekleyin.dotnet add package Azure.Identity
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.Aracılığıyla
az login
Visual 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
öğ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.
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.