Sdílet prostřednictvím


Rychlý start: Převod textu na řeč pomocí služby Azure OpenAI

V tomto rychlém startu použijete službu Azure OpenAI pro převod textu na řeč s hlasy OpenAI.

Dostupné hlasy jsou: alloy, echo, fable, onyx, nova, a shimmer. Další informace najdete v referenční dokumentaci ke službě Azure OpenAI pro převod textu na řeč.

Požadavky

Nastavení

Načtení klíče a koncového bodu

K úspěšnému volání azure OpenAI potřebujete koncový bod a klíč.

Název proměnné Hodnota
AZURE_OPENAI_ENDPOINT Koncový bod služby najdete v části Klíče a koncový bod při zkoumání vašeho prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení na portálu Azure AI Foundry. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.

Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod i přístupový klíč, jak potřebujete pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Snímek obrazovky s přehledovým uživatelským rozhraním pro prostředek Azure OpenAI na webu Azure Portal se zvýrazněným umístěním přístupových klíčů a koncových bodů

Proměnné prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Vytvoření požadavku a odpovědi REST

V prostředí Bash spusťte následující příkaz. Musíte nahradit YourDeploymentName názvem nasazení, který jste zvolili při nasazení textu do modelu řeči. Název nasazení nemusí být nutně stejný jako název modelu. Zadáním názvu modelu dojde k chybě, pokud jste nevybrali název nasazení, který je shodný s názvem základního modelu.

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

Formát prvního řádku příkazu s ukázkovým koncovým bodem by se zobrazil následujícím způsobem: curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2024-02-15-preview \.

Důležité

V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace o zabezpečení přihlašovacích údajů najdete v článku zabezpečení služeb Azure AI.

Ukázky balíčku zdrojového kódu | (npm) |

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.

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

Abyste mohli aplikaci ověřit pomocí prostředku Azure OpenAI, musíte načíst následující informace:

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á.

Vytvoření aplikace Node

V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte pro vaši aplikaci nový adresář a přejděte do něj. Potom spuštěním npm init příkazu vytvořte aplikaci uzlu se souborem package.json .

npm init

Instalace klientské knihovny

Nainstalujte klientské knihovny pomocí:

npm install openai @azure/identity

Soubor package.json vaší aplikace se aktualizuje o závislosti.

Vytvoření souboru řeči

  1. Vytvořte nový soubor s názvem Text-to-speech.js a otevřete ho v preferovaném editoru kódu. Do souboru Text-to-speech.js zkopírujte následující kód:

    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. Spusťte skript pomocí následujícího příkazu:

    node Text-to-speech.js
    

Ukázky balíčku zdrojového kódu | (npm) |

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.

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

Abyste mohli aplikaci ověřit pomocí prostředku Azure OpenAI, musíte načíst následující informace:

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á.

Vytvoření aplikace Node

V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte pro vaši aplikaci nový adresář a přejděte do něj. Potom spuštěním npm init příkazu vytvořte aplikaci uzlu se souborem package.json .

npm init

Instalace klientské knihovny

Nainstalujte klientské knihovny pomocí:

npm install openai @azure/identity

Soubor package.json vaší aplikace se aktualizuje o závislosti.

Vytvoření souboru řeči

  1. Vytvořte nový soubor s názvem Text-to-speech.ts a otevřete ho v preferovaném editoru kódu. Do souboru Text-to-speech.ts zkopírujte následující kód:

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

    Import "openai/shims/node" kódu je nezbytný při spuštění kódu v Node.js prostředí. Zajišťuje, že výstupní typ client.audio.speech.create metody je správně nastaven na NodeJS.ReadableStream.

  2. Sestavte aplikaci pomocí následujícího příkazu:

    tsc
    
  3. Spusťte aplikaci pomocí následujícího příkazu:

    node Text-to-speech.js
    

Požadavky

Vytvoření aplikace .NET

  1. Pomocí příkazu vytvořte aplikaci dotnet new .NET:

    dotnet new console -n TextToSpeech
    
  2. Přejděte do adresáře nové aplikace:

    cd OpenAISpeech
    
  3. Nainstalujte klientskou knihovnu Azure.OpenAI :

    dotnet add package Azure.AI.OpenAI
    

Ověřování a připojení k Azure OpenAI

Pokud chcete do služby Azure OpenAI vyžadovat požadavky, potřebujete koncový bod služby i přihlašovací údaje pro ověřování prostřednictvím jedné z následujících možností:

  • Microsoft Entra ID je doporučený přístup k ověřování ve službách Azure a je bezpečnější než alternativy založené na klíčích.

  • Přístupové klíče umožňují zadat tajný klíč pro připojení k vašemu prostředku.

    Důležité

    Přístupové klíče by se měly používat s opatrností. Pokud dojde ke ztrátě nebo náhodnému zveřejnění přístupového klíče služby v nezabezpečeném umístění, může být vaše služba zranitelná. Každý, kdo má přístupový klíč, může autorizovat žádosti vůči službě Azure OpenAI.

Získání koncového bodu Azure OpenAI

Koncový bod služby najdete v části Klíče a koncový bod při zkoumání vašeho prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení na portálu Azure AI Foundry. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/.

Snímek obrazovky s přehledovým uživatelským rozhraním pro prostředek Azure OpenAI na webu Azure Portal se zvýrazněným umístěním přístupových klíčů a koncových bodů

Ověřování pomocí ID Microsoft Entra

Pokud se rozhodnete použít ověřování Microsoft Entra ID, budete muset provést následující:

  1. Přidejte balíček Azure.Identity.

    dotnet add package Azure.Identity
    
  2. Přiřaďte roli k uživatelskému Cognitive Services User účtu. Můžete to udělat na webu Azure Portal na vašem prostředku OpenAI v části Řízení přístupu (IAM)>Přidání přiřazení role.

  3. Přihlaste se k Azure pomocí sady Visual Studio nebo Azure CLI přes az login.

Ověřování pomocí klíčů

Hodnotu přístupového klíče najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Aktualizace kódu aplikace

  1. Nahraďte obsah program.cs následujícím kódem a aktualizujte zástupné hodnoty vlastními.

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

    Důležité

    Pro produkční prostředí uložte přihlašovací údaje a získejte k němu přístup pomocí zabezpečené metody, jako je Azure Key Vault. Další informace o zabezpečení přihlašovacích údajů najdete v tématu Zabezpečení služeb Azure AI.

  2. Spusťte aplikaci pomocí dotnet run příkazu nebo tlačítka Spustit v horní části sady Visual Studio:

    dotnet run
    

    Aplikace vygeneruje zvukový soubor v umístění, které jste zadali pro proměnnou speechFilePath . Pokud chcete slyšet vygenerovaný zvuk, přehrajte soubor na svém zařízení.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete prostředek odstranit. Před odstraněním prostředku musíte nejprve odstranit všechny nasazené modely.

Další kroky