Rövid útmutató: Szövegfelolvasás az Azure OpenAI szolgáltatással
Ebben a rövid útmutatóban az Azure OpenAI szolgáltatást használja szövegfelolvasáshoz OpenAI-hangokkal.
A rendelkezésre álló hangok a következők: alloy
, echo
, fable
, onyx
, nova
és shimmer
. További információkért tekintse meg az Azure OpenAI szolgáltatás szöveges beszédre vonatkozó referenciadokumentációját.
Előfeltételek
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Az USA északi középső régiójában vagy Svédország középső régiójában létrehozott Azure OpenAI-erőforrás az üzembe helyezéssel vagy
tts-1-hd
modelleltts-1
. További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
Beállítás
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra van szükség.
Változó neve | Érték |
---|---|
AZURE_OPENAI_ENDPOINT |
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Foundry portál Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
AZURE_OPENAI_API_KEY |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot úgy, ahogyan az az API-hívások hitelesítéséhez szükséges. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. HA API-kulcsot használ, biztonságosan tárolja az Azure Key Vaultban. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST-kérés és -válasz létrehozása
Bash-rendszerhéjban futtassa a következő parancsot. A szöveg beszédmodellbe való telepítésekor a választott üzembehelyezési névre kell cserélnie YourDeploymentName
. Az üzembe helyezés neve nem feltétlenül ugyanaz, mint a modell neve. A modell nevének megadása hibaüzenetet eredményez, kivéve, ha az alapul szolgáló modell nevével azonos központi telepítési nevet választott.
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
A parancs első sorának formátuma egy példavégponttal a következőképpen jelenik meg: curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2024-02-15-preview \
.
Fontos
Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. A hitelesítő adatok biztonságával kapcsolatos további információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Forráskódcsomag (npm) | minták |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Node.js LTS-verziói
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Egy támogatott régióban létrehozott Azure OpenAI-erőforrás (lásd a régió rendelkezésre állását). További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Figyelemfelhívás
Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY
környezeti változó nincs beállítva.
Csomópontalkalmazás létrehozása
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda. Ezután futtassa a npm init
parancsot egy csomópontalkalmazás létrehozásához egy package.json fájllal.
npm init
Telepítse az ügyfélkódtárat
Telepítse az ügyfélkódtárakat a következőkkel:
npm install openai @azure/identity
Az alkalmazás package.json fájlja frissül a függőségekkel.
Beszédfájl létrehozása
Hozzon létre egy Text-to-speech.js nevű új fájlt, és nyissa meg a kívánt kódszerkesztőben. Másolja a következő kódot a Text-to-speech.js fájlba:
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); });
Futtassa a szkriptet a következő paranccsal:
node Text-to-speech.js
Forráskódcsomag (npm) | minták |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Node.js LTS-verziói
- TypeScript
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Egy támogatott régióban létrehozott Azure OpenAI-erőforrás (lásd a régió rendelkezésre állását). További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
A Microsoft Entra ID előfeltételei
A Microsoft Entra-azonosítóval javasolt kulcs nélküli hitelesítéshez a következőket kell elvégeznie:
- Telepítse a Kulcs nélküli hitelesítéshez használt Azure CLI-t a Microsoft Entra-azonosítóval.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Szerepköröket az Azure Portalon rendelhet hozzá a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen.
Erőforrásadatok lekérése
Az alkalmazás Azure OpenAI-erőforrással való hitelesítéséhez le kell kérnie a következő adatokat:
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Figyelemfelhívás
Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY
környezeti változó nincs beállítva.
Csomópontalkalmazás létrehozása
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda. Ezután futtassa a npm init
parancsot egy csomópontalkalmazás létrehozásához egy package.json fájllal.
npm init
Telepítse az ügyfélkódtárat
Telepítse az ügyfélkódtárakat a következőkkel:
npm install openai @azure/identity
Az alkalmazás package.json fájlja frissül a függőségekkel.
Beszédfájl létrehozása
Hozzon létre egy Text-to-speech.ts nevű új fájlt, és nyissa meg az előnyben részesített kódszerkesztőben. Másolja a következő kódot a Text-to-speech.ts fájlba:
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); });
Az importálásra
"openai/shims/node"
akkor van szükség, ha a kódot Node.js környezetben futtatja. Biztosítja, hogy a metódus kimeneti típusaclient.audio.speech.create
helyesen legyen beállítvaNodeJS.ReadableStream
.Hozza létre az alkalmazást a következő paranccsal:
tsc
Futtassa az alkalmazást a következő paranccsal:
node Text-to-speech.js
Előfeltételek
- Azure-előfizetés. Ingyenesen létrehozhat egyet.
- Egy Támogatott régióban üzembe helyezett Whisper-modellel rendelkező Azure OpenAI-erőforrás. További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
- A .NET 8.0 SDK
A .NET-alkalmazás létrehozása
Hozzon létre egy .NET-alkalmazást a
dotnet new
következő paranccsal:dotnet new console -n TextToSpeech
Váltson az új alkalmazás könyvtárára:
cd OpenAISpeech
Telepítse az
Azure.OpenAI
ügyfélkódtárat:dotnet add package Azure.AI.OpenAI
Hitelesítés és csatlakozás az Azure OpenAI-hoz
Az Azure OpenAI szolgáltatáshoz való kéréshez szüksége van a szolgáltatásvégpontra és a hitelesítési hitelesítő adatokra az alábbi lehetőségek egyikén keresztül:
A Microsoft Entra ID az Azure-szolgáltatások hitelesítésének ajánlott módszere, és biztonságosabb, mint a kulcsalapú alternatívák.
A hozzáférési kulcsok lehetővé teszik egy titkos kulcs megadását az erőforráshoz való csatlakozáshoz.
Fontos
A hozzáférési kulcsokat körültekintően kell használni. Ha a szolgáltatás hozzáférési kulcsa elveszett vagy véletlenül nem biztonságos helyen van közzétéve, a szolgáltatás sebezhetővé válhat. Bárki, aki rendelkezik hozzáférési kulccsal, engedélyezheti a kéréseket az Azure OpenAI szolgáltatással szemben.
Az Azure OpenAI-végpont lekérése
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Foundry portál Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/
.
Hitelesítés Microsoft Entra-azonosítóval
Ha a Microsoft Entra ID-hitelesítést választja, a következőket kell elvégeznie:
Vegye fel a
Azure.Identity
csomagot.dotnet add package Azure.Identity
Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Ez az OpenAI-erőforrás Azure Portalon, a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen végezhető el.Jelentkezzen be az Azure-ba a Visual Studióval vagy az Azure CLI-vel.
az login
Hitelesítés kulcsokkal
A hozzáférési kulcs értéke a Kulcsok > végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Az alkalmazáskód frissítése
Cserélje le az alábbi kód tartalmát
program.cs
, és frissítse a helyőrző értékeket a sajátjára.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");
Fontos
Éles környezetben tárolja és érje el a hitelesítő adatait egy biztonságos módszerrel, például az Azure Key Vaulttal. További információ a hitelesítő adatok biztonságáról: Azure AI-szolgáltatások biztonsága.
Futtassa az alkalmazást a
dotnet run
Visual Studio tetején található paranccsal vagy futtatási gombbal:dotnet run
Az alkalmazás létrehoz egy hangfájlt a változóhoz
speechFilePath
megadott helyen. A létrehozott hang meghallgatásához játssza le a fájlt az eszközön.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást. Az erőforrás törlése előtt törölnie kell az üzembe helyezett modelleket.
Következő lépések
- Az Azure OpenAI szolgáltatás referenciadokumentációjában további információ arról, hogyan használható szövegfelolvasás az Azure OpenAI Szolgáltatással.
- További példákért tekintse meg az Azure OpenAI-minták GitHub-adattárát