Bagikan melalui


Mulai cepat: Teks ke ucapan dengan Layanan Azure OpenAI

Dalam mulai cepat ini, Anda menggunakan Azure OpenAI Service untuk teks ke ucapan dengan suara OpenAI.

Suara yang tersedia adalah: alloy, , echo, fable, onyxnova, dan shimmer. Untuk informasi selengkapnya, lihat Dokumentasi referensi Azure OpenAI Service untuk teks ke ucapan.

Prasyarat

Penyiapan

Mengambil kunci dan titik akhir

Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.

Nama variabel Nilai
AZURE_OPENAI_ENDPOINT Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di Azure AI Studio. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2.

Buka sumber daya Anda di portal Azure. Titik Akhir dan Kunci dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena Anda memerlukan keduanya untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1 atau KEY2. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.

Cuplikan layar UI gambaran umum untuk sumber daya Azure OpenAI di portal Azure dengan titik akhir & lokasi kunci akses disorot.

Variabel lingkungan

Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.

Penting

Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.

Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Membuat permintaan dan respons REST

Di shell bash, jalankan perintah berikut. Anda perlu mengganti YourDeploymentName dengan nama penyebaran yang Anda pilih saat menyebarkan model teks ke ucapan. Nama penyebaran tidak selalu sama dengan nama model. Memasukkan nama model menghasilkan kesalahan kecuali Anda memilih nama penyebaran yang identik dengan nama model yang mendasar.

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

Format baris pertama perintah Anda dengan contoh titik akhir akan muncul sebagai berikut curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2024-02-15-preview \.

Penting

Untuk produksi, gunakan cara yang aman untuk menyimpan dan mengakses kredensial Anda seperti Azure Key Vault. Untuk informasi selengkapnya tentang keamanan kredensial, lihat artikel keamanan layanan Azure AI.

Paket kode sumber | (npm) | Sampel

Prasyarat

Penyiapan

Mengambil kunci dan titik akhir

Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.

Nama variabel Nilai
AZURE_OPENAI_ENDPOINT Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di Azure AI Studio. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2.

Buka sumber daya Anda di portal Azure. Titik Akhir dan Kunci dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena Anda memerlukan keduanya untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1 atau KEY2. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.

Cuplikan layar UI gambaran umum untuk sumber daya Azure OpenAI di portal Azure dengan titik akhir & lokasi kunci akses disorot.

Variabel lingkungan

Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.

Penting

Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.

Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Membuat aplikasi Node

Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk aplikasi Anda, dan buka direktori tersebut. Kemudian jalankan npm init perintah untuk membuat aplikasi simpul dengan file package.json .

npm init

Memasang pustaka klien

Instal pustaka klien dengan:

npm install openai @azure/identity

File package.json aplikasi Anda akan diperbarui dengan dependensi.

Membuat file ucapan

  1. Buat file baru bernama Text-to-speech.js dan buka di editor kode pilihan Anda. Salin kode berikut ke dalam file Text-to-speech.js :

    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. Menjalankan skrip dengan menjalankan perintah berikut:

    node Text-to-speech.js
    

Paket kode sumber | (npm) | Sampel

Prasyarat

Penyiapan

Mengambil kunci dan titik akhir

Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.

Nama variabel Nilai
AZURE_OPENAI_ENDPOINT Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Atau, Anda dapat menemukan nilainya di Azure OpenAI Studio>Playground>Tampilan Kode. Contoh titik akhir adalah: https://aoai-docs.openai.azure.com/.
AZURE_OPENAI_API_KEY Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2.

Buka sumber daya Anda di portal Azure. Titik Akhir dan Kunci dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena Anda memerlukan keduanya untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1 atau KEY2. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.

Cuplikan layar UI gambaran umum untuk sumber daya Azure OpenAI di portal Azure dengan titik akhir & lokasi kunci akses disorot.

Variabel lingkungan

Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.

Penting

Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.

Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Membuat aplikasi Node

Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk aplikasi Anda, dan buka direktori tersebut. Kemudian jalankan npm init perintah untuk membuat aplikasi simpul dengan file package.json .

npm init

Memasang pustaka klien

Instal pustaka klien dengan:

npm install openai @azure/identity

File package.json aplikasi Anda akan diperbarui dengan dependensi.

Membuat file ucapan

  1. Buat file baru bernama Text-to-speech.ts dan buka di editor kode pilihan Anda. Salin kode berikut ke dalam file Text-to-speech.ts :

    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);
    });
    
    

    Impor "openai/shims/node" diperlukan saat menjalankan kode di lingkungan Node.js. Ini memastikan bahwa jenis client.audio.speech.create output metode diatur dengan benar ke NodeJS.ReadableStream.

  2. Bangun aplikasi dengan perintah berikut:

    tsc
    
  3. Jalankan aplikasi menggunakan perintah berikut:

    node Text-to-speech.js
    

Prasyarat

Membuat aplikasi .NET

  1. Buat aplikasi .NET menggunakan dotnet new perintah :

    dotnet new console -n TextToSpeech
    
  2. Ubah ke direktori aplikasi baru:

    cd OpenAISpeech
    
  3. Azure.OpenAI Instal pustaka klien:

    dotnet add package Azure.AI.OpenAI
    

Mengautentikasi dan menyambungkan ke Azure OpenAI

Untuk membuat permintaan ke layanan Azure OpenAI, Anda memerlukan titik akhir layanan serta kredensial autentikasi melalui salah satu opsi berikut:

  • ID Microsoft Entra adalah pendekatan yang direkomendasikan untuk mengautentikasi ke layanan Azure dan lebih aman daripada alternatif berbasis kunci.

  • Kunci akses memungkinkan Anda menyediakan kunci rahasia untuk terhubung ke sumber daya Anda.

    Penting

    Kunci akses harus digunakan dengan hati-hati. Jika kunci akses layanan Anda hilang atau tidak sengaja terekspos di lokasi yang tidak aman, layanan Anda mungkin menjadi rentan. Siapa pun yang memiliki kunci akses dapat mengotorisasi permintaan terhadap layanan Azure OpenAI.

Mendapatkan titik akhir Azure OpenAI

Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di Azure AI Studio. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/.

Cuplikan layar UI gambaran umum untuk sumber daya Azure OpenAI di portal Azure dengan titik akhir & lokasi kunci akses disorot.

Mengautentikasi menggunakan ID Microsoft Entra

Jika Anda memilih untuk menggunakan autentikasi ID Microsoft Entra, Anda harus menyelesaikan hal berikut:

  1. Tambahkan paket Azure.Identity.

    dotnet add package Azure.Identity
    
  2. Tetapkan peran ke Cognitive Services User akun pengguna Anda. Ini dapat dilakukan di portal Azure pada sumber daya OpenAI Anda di bawah Kontrol akses (IAM)>Tambahkan penetapan peran.

  3. Masuk ke Azure menggunakan Visual Studio atau Azure CLI melalui az login.

Mengautentikasi menggunakan kunci

Nilai kunci akses dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.

Memperbarui kode aplikasi

  1. Ganti konten program.cs dengan kode berikut dan perbarui nilai tempat penampung dengan nilai Anda sendiri.

    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");
    

    Penting

    Untuk produksi, simpan, dan akses kredensial Anda menggunakan metode aman, seperti Azure Key Vault. Untuk informasi selengkapnya tentang keamanan kredensial, lihat Keamanan layanan Azure AI.

  2. Jalankan aplikasi menggunakan dotnet run perintah atau tombol jalankan di bagian atas Visual Studio:

    dotnet run
    

    Aplikasi ini menghasilkan file audio di lokasi yang Anda tentukan untuk variabel tersebut speechFilePath . Putar file di perangkat Anda untuk mendengar audio yang dihasilkan.

Membersihkan sumber daya

Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya. Sebelum menghapus sumber daya, Anda harus terlebih dahulu menghapus model yang disebarkan.

Langkah berikutnya

  • Pelajari selengkapnya tentang cara bekerja dengan teks ke ucapan dengan Azure OpenAI Service dalam dokumentasi referensi Azure OpenAI Service.
  • Untuk contoh selengkapnya, lihat repositori GitHub Sampel Azure OpenAI