Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele
Weergegeven als
AZURE_OPENAI_ENDPOINT
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken.
Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel naar behoefte voor verificatie van uw API-aanroepen. U kunt KEY1 of KEY2 gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u een API-sleutel gebruikt, slaat u deze veilig op in Azure Key Vault. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.
Voer in een bash-shell de volgende opdracht uit. U moet vervangen door YourDeploymentName de implementatienaam die u hebt gekozen bij het implementeren van de tekst naar spraakmodel. De implementatienaam is niet noodzakelijkerwijs hetzelfde als de modelnaam. Als u de modelnaam invoert, treedt er een fout op, tenzij u een implementatienaam hebt gekozen die identiek is aan de naam van het onderliggende model.
Bash
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
De indeling van de eerste regel van de opdracht met een voorbeeldeindpunt wordt als volgt curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2024-02-15-preview \weergegeven.
Belangrijk
Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel over beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
Wijs de Cognitive Services User rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal.
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal.
AZURE_OPENAI_API_KEY
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. U kunt KEY1 of KEY2 gebruiken.
AZURE_OPENAI_DEPLOYMENT_NAME
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal.
Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u een API-sleutel gebruikt, slaat u deze veilig op in Azure Key Vault. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.
Als u de aanbevolen sleutelloze verificatie met de SDK wilt gebruiken, moet u ervoor zorgen dat de AZURE_OPENAI_API_KEY omgevingsvariabele niet is ingesteld.
Een Node-toepassing maken
Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map. Voer vervolgens de npm init opdracht uit om een knooppunttoepassing te maken met een package.json-bestand .
Console
npm init
De clientbibliotheek installeren
Installeer de clientbibliotheken met:
Console
npm install openai @azure/identity
Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.
Maak een nieuw bestand met de naam Text-to-speech.js en open het in de code-editor van uw voorkeur. Kopieer de volgende code naar het Text-to-speech.js-bestand :
JavaScript
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 valuesconst endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const speechFilePath = "<path to save the speech file>";
// Required Azure OpenAI deployment name and API versionconst 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);
functiongetClient() {
returnnew AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
asyncfunctiongenerateAudioStream(
client,
params
) {
const response = await client.audio.speech.create(params);
if (response.ok) return response.body;
thrownewError(`Failed to generate audio stream: ${response.statusText}`);
}
exportasyncfunctionmain() {
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);
});
Voer het script uit met de volgende opdracht:
Console
node Text-to-speech.js
Maak een nieuw bestand met de naam Text-to-speech.js en open het in de code-editor van uw voorkeur. Kopieer de volgende code naar het Text-to-speech.js-bestand :
JavaScript
const { writeFile } = require("fs/promises");
const { AzureOpenAI } = require("openai");
require("openai/shims/node");
// You will need to set these environment variables or edit the following valuesconst endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const apiKey = process.env["AZURE_OPENAI_API_KEY"] || "<api key>";
const speechFilePath = "<path to save the speech file>";
// Required Azure OpenAI deployment name and API versionconst deploymentName = "tts";
const apiVersion = "2024-08-01-preview";
functiongetClient() {
returnnew AzureOpenAI({
endpoint,
apiKey,
apiVersion,
deployment: deploymentName,
});
}
asyncfunctiongenerateAudioStream(
client,
params
) {
const response = await client.audio.speech.create(params);
if (response.ok) return response.body;
thrownewError(`Failed to generate audio stream: ${response.statusText}`);
}
exportasyncfunctionmain() {
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);
});
Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
Wijs de Cognitive Services User rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal.
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal.
AZURE_OPENAI_API_KEY
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. U kunt KEY1 of KEY2 gebruiken.
AZURE_OPENAI_DEPLOYMENT_NAME
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal.
Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u een API-sleutel gebruikt, slaat u deze veilig op in Azure Key Vault. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.
Als u de aanbevolen sleutelloze verificatie met de SDK wilt gebruiken, moet u ervoor zorgen dat de AZURE_OPENAI_API_KEY omgevingsvariabele niet is ingesteld.
Een Node-toepassing maken
Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map. Voer vervolgens de npm init opdracht uit om een knooppunttoepassing te maken met een package.json-bestand .
Console
npm init
De clientbibliotheek installeren
Installeer de clientbibliotheken met:
Console
npm install openai @azure/identity
Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.
Maak een nieuw bestand met de naam Text-to-speech.ts en open het in de code-editor van uw voorkeur. Kopieer de volgende code naar het Text-to-speech.ts-bestand :
TypeScript
import { writeFile } from"fs/promises";
import { AzureOpenAI } from"openai";
import { DefaultAzureCredential, getBearerTokenProvider } from"@azure/identity";
importtype { SpeechCreateParams } from"openai/resources/audio/speech";
import"openai/shims/node";
// You will need to set these environment variables or edit the following valuesconst endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const speechFilePath = "<path to save the speech file>";
// Required Azure OpenAI deployment name and API versionconst 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);
functiongetClient(): AzureOpenAI{
returnnew AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
asyncfunctiongenerateAudioStream(
client: AzureOpenAI,
params: SpeechCreateParams
): Promise<NodeJS.ReadableStream> {
const response = await client.audio.speech.create(params);
if (response.ok) return response.body;
thrownewError(`Failed to generate audio stream: ${response.statusText}`);
}
exportasyncfunctionmain() {
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);
});
Het importeren van is nodig bij het uitvoeren van "openai/shims/node" de code in een Node.js-omgeving. Het zorgt ervoor dat het uitvoertype van de client.audio.speech.create methode correct is ingesteld op NodeJS.ReadableStream.
Bouw de toepassing met de volgende opdracht:
Console
tsc
Voer de toepassing uit met de volgende opdracht:
Console
node Text-to-speech.js
Maak een nieuw bestand met de naam Text-to-speech.ts en open het in de code-editor van uw voorkeur. Kopieer de volgende code naar het Text-to-speech.ts-bestand :
TypeScript
import { writeFile } from"fs/promises";
import { AzureOpenAI } from"openai";
importtype { SpeechCreateParams } from"openai/resources/audio/speech";
import"openai/shims/node";
// You will need to set these environment variables or edit the following valuesconst endpoint = "<endpoint>";
const apiKey = process.env["AZURE_OPENAI_API_KEY"] || "<api key>";
const speechFilePath =
process.env["SPEECH_FILE_PATH"] || "<path to save the speech file>";
// Required Azure OpenAI deployment name and API versionconst deploymentName = "tts";
const apiVersion = "2024-08-01-preview";
functiongetClient(): AzureOpenAI{
returnnew AzureOpenAI({
endpoint,
apiKey,
apiVersion,
deployment: deploymentName,
});
}
asyncfunctiongenerateAudioStream(
client: AzureOpenAI,
params: SpeechCreateParams
): Promise<NodeJS.ReadableStream> {
const response = await client.audio.speech.create(params);
if (response.ok) return response.body;
thrownewError(`Failed to generate audio stream: ${response.statusText}`);
}
exportasyncfunctionmain() {
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);
});
Het importeren van is nodig bij het uitvoeren van "openai/shims/node" de code in een Node.js-omgeving. Het zorgt ervoor dat het uitvoertype van de client.audio.speech.create methode correct is ingesteld op NodeJS.ReadableStream.
Als u aanvragen wilt indienen bij uw Azure OpenAI-service, hebt u het service-eindpunt en de verificatiereferenties nodig via een van de volgende opties:
Microsoft Entra ID is de aanbevolen methode voor verificatie bij Azure-services en is veiliger dan alternatieven op basis van sleutels.
Met toegangssleutels kunt u een geheime sleutel opgeven om verbinding te maken met uw resource.
Belangrijk
Toegangssleutels moeten voorzichtig worden gebruikt. Als uw servicetoegangssleutel verloren gaat of per ongeluk wordt weergegeven op een onveilige locatie, kan uw service kwetsbaar worden. Iedereen met de toegangssleutel kan aanvragen autoriseren voor de Azure OpenAI-service.
Het Azure OpenAI-eindpunt ophalen
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/.
Verifiëren met behulp van Microsoft Entra-id
Als u microsoft Entra ID-verificatie wilt gebruiken, moet u het volgende voltooien:
Wijs de Cognitive Services User rol toe aan uw gebruikersaccount. Dit kan worden gedaan in Azure Portal op uw OpenAI-resource onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Meld u via Visual Studio of de Azure CLI az loginaan bij Azure.
Verifiëren met behulp van sleutels
De waarde van de toegangssleutel vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. U kunt KEY1 of KEY2 gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
De app-code bijwerken
Vervang de inhoud door program.cs de volgende code en werk de waarden van de tijdelijke aanduidingen bij met uw eigen waarden.
C#
using Azure;
using Azure.AI.OpenAI;
using Azure.Identity; // Required for Passwordless authvar endpoint = new Uri(
Environment.GetEnvironmentVariable("YOUR_OPENAI_ENDPOINT") ?? thrownew 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 necessaryvar 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");
Voer de toepassing uit met behulp van de dotnet run opdracht of de knop Uitvoeren bovenaan Visual Studio:
.NET CLI
dotnetrun
De app genereert een audiobestand op de locatie die u voor de speechFilePath variabele hebt opgegeven. Speel het bestand op uw apparaat af om de gegenereerde audio te horen.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource verwijderen. Voordat u de resource verwijdert, moet u eerst geïmplementeerde modellen verwijderen.
In deze handleiding gebruikt u Speech om te communiceren met Azure OpenAI. Spraak herkent audio, verzendt deze naar Azure OpenAI ensynthetiseert spraakreacties.