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
- Předplatné Azure – Vytvořte si ho zdarma.
- Prostředek Azure OpenAI vytvořený v oblastech USA – středosever nebo Švédsko – střed s nasazeným modelem
tts-1
tts-1-hd
Další informace najdete v tématu Vytvoření prostředku a nasazení modelu pomocí Azure OpenAI.
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.
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
- Předplatné Azure – Vytvoření předplatného zdarma
- Verze LTS Node.js
- Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.
- Prostředek Azure OpenAI vytvořený v podporované oblasti (viz Dostupnost oblastí). Další informace najdete v tématu Vytvoření prostředku a nasazení modelu pomocí Azure OpenAI.
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
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); });
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
- Předplatné Azure – Vytvoření předplatného zdarma
- Verze LTS Node.js
- TypeScript
- Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.
- Prostředek Azure OpenAI vytvořený v podporované oblasti (viz Dostupnost oblastí). Další informace najdete v tématu Vytvoření prostředku a nasazení modelu pomocí Azure OpenAI.
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
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í typclient.audio.speech.create
metody je správně nastaven naNodeJS.ReadableStream
.Sestavte aplikaci pomocí následujícího příkazu:
tsc
Spusťte aplikaci pomocí následujícího příkazu:
node Text-to-speech.js
Požadavky
- Předplatné Azure. Můžete si ho zdarma vytvořit.
- Prostředek Azure OpenAI s modelem Whisper nasazeným v podporované oblasti. Další informace najdete v tématu Vytvoření prostředku a nasazení modelu pomocí Azure OpenAI.
- Sada .NET 8.0 SDK
Vytvoření aplikace .NET
Pomocí příkazu vytvořte aplikaci
dotnet new
.NET:dotnet new console -n TextToSpeech
Přejděte do adresáře nové aplikace:
cd OpenAISpeech
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/
.
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í:
Přidejte balíček
Azure.Identity
.dotnet add package Azure.Identity
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.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
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.
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
- Další informace o tom, jak pracovat s textem na řeč se službou Azure OpenAI Service, najdete v referenční dokumentaci ke službě Azure OpenAI.
- Další příklady najdete v úložišti GitHub s ukázkami Azure OpenAI.