Share via


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, , novaen shimmer. Zie de naslagdocumentatie van de Azure OpenAI-service voor tekst-naar-spraak voor meer informatie.

Vereisten

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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met de locatie voor eindpunt- en toegangssleutels gemarkeerd.

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

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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met de locatie voor eindpunt- en toegangssleutels gemarkeerd.

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

  1. 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);
    });
    
    
  2. Voer het script uit met de volgende opdracht:

    node Text-to-speech.js
    

Voorbeelden van broncodepakket | (npm) |

Vereisten

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.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met de locatie voor eindpunt- en toegangssleutels gemarkeerd.

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

  1. 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 de client.audio.speech.create methode correct is ingesteld op NodeJS.ReadableStream.

  2. Bouw de toepassing met de volgende opdracht:

    tsc
    
  3. Voer de toepassing uit met de volgende opdracht:

    node Text-to-speech.js
    

Vereisten

De .NET-app maken

  1. Maak een .NET-app met behulp van de dotnet new opdracht:

    dotnet new console -n TextToSpeech
    
  2. Ga naar de map van de nieuwe app:

    cd OpenAISpeech
    
  3. 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/.

Schermopname van de overzichtsgebruikersinterface voor een Azure OpenAI-resource in Azure Portal met de locatie voor eindpunt- en toegangssleutels gemarkeerd.

Verifiëren met behulp van Microsoft Entra-id

Als u microsoft Entra ID-verificatie wilt gebruiken, moet u het volgende voltooien:

  1. Voeg het pakket Azure.Identity toe.

    dotnet add package Azure.Identity
    
  2. 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.

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

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

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