Quickstart: Tekst naar spraak met de Azure OpenAI-service
In deze quickstart gebruikt u de Azure OpenAI-service voor tekst naar spraak met OpenAI-stemmen.
De beschikbare stemmen zijn: alloy
, echo
, fable
, onyx
, , nova
en shimmer
. Zie de naslagdocumentatie van de Azure OpenAI-service voor tekst-naar-spraak voor meer informatie.
Vereisten
- Een Azure-abonnement: maak er gratis een.
- Een Azure OpenAI-resource die is gemaakt in de regio's VS - noord-centraal of Zweden - centraal met het
tts-1
oftts-1-hd
model dat is geïmplementeerd. Zie Een resource maken en een model implementeren met Azure OpenAI voor meer informatie.
Instellingen
Sleutel en eindpunt ophalen
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 Azure AI Studio. 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
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een REST-aanvraag en -antwoord maken
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.
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.
Voorbeelden van broncodepakket | (npm) |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- LTS-versies van Node.js
- 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.
- Een Azure OpenAI-resource die is gemaakt in een ondersteunde regio (zie beschikbaarheid van regio's). Zie Een resource maken en een model implementeren met Azure OpenAI voor meer informatie.
Instellingen
Sleutel en eindpunt ophalen
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 Azure AI Studio. 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
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
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 .
npm init
De clientbibliotheek installeren
Installeer de clientbibliotheken met:
npm install openai @azure/identity
Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.
Een spraakbestand maken
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 :
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); });
Voer het script uit met de volgende opdracht:
node Text-to-speech.js
Voorbeelden van broncodepakket | (npm) |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- LTS-versies van Node.js
- TypeScript
- 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.
- Een Azure OpenAI-resource die is gemaakt in een ondersteunde regio (zie beschikbaarheid van regio's). Zie Een resource maken en een model implementeren met Azure OpenAI voor meer informatie.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Waarde |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt ook de waarde vinden in de codeweergave van Azure OpenAI Studio>Playground>. Een voorbeeldeindpunt is: https://aoai-docs.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
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
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 .
npm init
De clientbibliotheek installeren
Installeer de clientbibliotheken met:
npm install openai @azure/identity
Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.
Een spraakbestand maken
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 :
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); });
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 declient.audio.speech.create
methode correct is ingesteld opNodeJS.ReadableStream
.Bouw de toepassing met de volgende opdracht:
tsc
Voer de toepassing uit met de volgende opdracht:
node Text-to-speech.js
Vereisten
- Een Azure-abonnement. U kunt er gratis een maken.
- Een Azure OpenAI-resource met een Whisper-model dat is geïmplementeerd in een ondersteunde regio. Zie Een resource maken en een model implementeren met Azure OpenAI voor meer informatie.
- De .NET 8.0 SDK
De .NET-app maken
Maak een .NET-app met behulp van de
dotnet new
opdracht:dotnet new console -n TextToSpeech
Ga naar de map van de nieuwe app:
cd OpenAISpeech
Installeer de
Azure.OpenAI
clientbibliotheek:dotnet add package Azure.AI.OpenAI
Verifiëren en verbinding maken met Azure OpenAI
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 Azure AI Studio. 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:
Voeg het pakket
Azure.Identity
toe.dotnet add package Azure.Identity
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 login
aan 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.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");
Belangrijk
Voor productie kunt u uw referenties opslaan en openen met behulp van een veilige methode, zoals Azure Key Vault. Zie Beveiliging van Azure AI-services voor meer informatie over referentiebeveiliging.
Voer de toepassing uit met behulp van de
dotnet run
opdracht of de knop Uitvoeren bovenaan Visual Studio:dotnet run
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.
Volgende stappen
- Meer informatie over het werken met tekst-naar-spraak met Azure OpenAI Service in de naslagdocumentatie van de Azure OpenAI-service.
- Bekijk de GitHub-opslagplaats met Azure OpenAI-voorbeelden voor meer voorbeelden