Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si usa Azure OpenAI per la sintesi vocale con voci OpenAI.
Le voci disponibili sono: alloy
, echo
, fable
, onyx
, nova
e shimmer
. Per altre informazioni, vedere la documentazione di riferimento di Azure OpenAI per la sintesi vocale.
Prerequisiti
- Una sottoscrizione di Azure: crearne una gratuitamente.
- Una risorsa Azure OpenAI creata nelle regioni degli Stati Uniti centro-settentrionali o della Svezia centrale con il modello
tts-1
otts-1-hd
distribuito. Per altre informazioni, vedere Creare una risorsa e distribuire un modello con Azure OpenAI.
Impostazione
Recuperare la chiave e l'endpoint
Per effettuare correttamente una chiamata ad Azure OpenAI, sono necessari un endpoint e una chiave.
Nome variabile | Valore |
---|---|
AZURE_OPENAI_ENDPOINT |
L'endpoint di servizio è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure. In alternativa, è possibile trovare l'endpoint tramite la pagina Distribuzioni nel portale di Azure AI Foundry. Un endpoint di esempio è https://docs-test-001.openai.azure.com/ . |
AZURE_OPENAI_API_KEY |
Questo valore è disponibile nella sezione Chiavi ed endpoint durante l'esame della risorsa dalla portale di Azure. Puoi usare entrambi KEY1 o KEY2 . |
Vai alla tua risorsa nel portale di Azure. L'Endpoint e le chiavi sono disponibili nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1
o KEY2
. Disporre sempre di due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.
Variabili di ambiente
Creare e assegnare variabili di ambiente persistenti per la chiave e l'endpoint.
Importante
Usare le chiavi API con cautela. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente. Se si usa una chiave API, archiviarla in modo sicuro in Azure Key Vault. Per altre informazioni sull'uso sicuro delle chiavi API nelle app, vedere Chiavi API con Azure Key Vault.
Per altre informazioni sulla sicurezza dei servizi IA, vedere Autenticare richieste in Servizi di Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Creare una richiesta e una risposta REST
Nella shell BASH eseguire il comando seguente. È necessario sostituire YourDeploymentName
con il nome di distribuzione scelto durante la distribuzione del modello di sintesi vocale. Il nome della distribuzione non corrisponde necessariamente al nome del modello. Se si immette il nome del modello, viene generato un errore, a meno che non sia stato scelto un nome di distribuzione identico a quello del modello sottostante.
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/YourDeploymentName/audio/speech?api-version=2025-04-01-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
Il formato della prima riga del comando con un endpoint di esempio viene visualizzato come indicato di seguito curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2025-04-01-preview \
.
Importante
Per la produzione, usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per altre informazioni sulla sicurezza delle credenziali, vedere questo articolo sulla sicurezza .
Codice sorgente | Pacchetto (npm) | Esempi
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Versioni LTS di Node.js
- Interfaccia della riga di comando di Azure usata per l'autenticazione senza password in un ambiente di sviluppo locale, creare il contesto necessario eseguendo l'accesso tramite l'interfaccia della riga di comando di Azure.
- Una risorsa OpenAI di Azure creata in un'area supportata (vedere Disponibilità dell'area). Per altre informazioni, vedere Creare una risorsa e distribuire un modello con Azure OpenAI.
Prerequisiti di Microsoft Entra ID
Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, è necessario:
- Installare l'Azure CLI utilizzata per l'autenticazione senza password con Microsoft Entra ID.
- Assegnare il ruolo
Cognitive Services User
all'account utente. È possibile assegnare ruoli nella portale di Azure in Controllo di accesso (IAM)>Aggiungere un'assegnazione di ruolo.
Impostazione
Creare una nuova cartella
synthesis-quickstart
e passare alla cartella quickstart con il comando seguente:mkdir synthesis-quickstart && cd synthesis-quickstart
Creare il
package.json
con il seguente comando:npm init -y
Installare la libreria client OpenAI per JavaScript con:
npm install openai
Per l'autenticazione senza password consigliata:
npm install @azure/identity
Recuperare le informazioni sulle risorse
È necessario recuperare le informazioni seguenti per autenticare l'applicazione con la risorsa OpenAI di Azure:
Nome variabile | Valore |
---|---|
AZURE_OPENAI_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Questo valore corrisponderà al nome personalizzato scelto per la distribuzione quando è stato distribuito un modello. Questo valore può essere trovato sotto Gestione delle Risorse>Distribuzioni di Modelli nel portale di Azure. |
OPENAI_API_VERSION |
Altre informazioni sulle versioni api. È possibile modificare la versione nel codice o usare una variabile di ambiente. |
Altre informazioni sull'autenticazione senza chiave e sull'impostazione delle variabili di ambiente.
Attenzione
Per usare l'autenticazione senza chiave consigliata con l'SDK, assicurarsi che la AZURE_OPENAI_API_KEY
variabile di ambiente non sia impostata.
Creare un file di voce
Creare il
index.js
file con il codice seguente: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 || "Your endpoint"; const speechFilePath = "<path to save the speech file>"; // Required Azure OpenAI deployment name and API version const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "tts"; const apiVersion = process.env.OPENAI_API_VERSION || "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); });
Accedere ad Azure con il comando seguente:
az login
Eseguire il file JavaScript.
node index.js
Codice sorgente | Pacchetto (npm) | Esempi
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Versioni LTS di Node.js
- TypeScript
- Interfaccia della riga di comando di Azure usata per l'autenticazione senza password in un ambiente di sviluppo locale, creare il contesto necessario eseguendo l'accesso tramite l'interfaccia della riga di comando di Azure.
- Una risorsa OpenAI di Azure creata in un'area supportata (vedere Disponibilità dell'area). Per altre informazioni, vedere Creare una risorsa e distribuire un modello con Azure OpenAI.
Prerequisiti di Microsoft Entra ID
Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, è necessario:
- Installare l'Azure CLI utilizzata per l'autenticazione senza password con Microsoft Entra ID.
- Assegnare il ruolo
Cognitive Services User
all'account utente. È possibile assegnare ruoli nella portale di Azure in Controllo di accesso (IAM)>Aggiungere un'assegnazione di ruolo.
Impostazione
Creare una nuova cartella
assistants-quickstart
e passare alla cartella quickstart con il comando seguente:mkdir assistants-quickstart && cd assistants-quickstart
Creare il
package.json
con il seguente comando:npm init -y
Aggiornare
package.json
a ECMAScript con il comando seguente:npm pkg set type=module
Installare la libreria client OpenAI per JavaScript con:
npm install openai
Per l'autenticazione senza password consigliata:
npm install @azure/identity
Recuperare le informazioni sulle risorse
È necessario recuperare le informazioni seguenti per autenticare l'applicazione con la risorsa OpenAI di Azure:
Nome variabile | Valore |
---|---|
AZURE_OPENAI_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Questo valore corrisponderà al nome personalizzato scelto per la distribuzione quando è stato distribuito un modello. Questo valore può essere trovato sotto Gestione delle Risorse>Distribuzioni di Modelli nel portale di Azure. |
OPENAI_API_VERSION |
Altre informazioni sulle versioni api. È possibile modificare la versione nel codice o usare una variabile di ambiente. |
Altre informazioni sull'autenticazione senza chiave e sull'impostazione delle variabili di ambiente.
Attenzione
Per usare l'autenticazione senza chiave consigliata con l'SDK, assicurarsi che la AZURE_OPENAI_API_KEY
variabile di ambiente non sia impostata.
Creare un file di voce
Creare il
index.ts
file con il codice seguente: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 || "Your endpoint"; const speechFilePath = "<path to save the speech file>"; // Required Azure OpenAI deployment name and API version const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "tts"; const apiVersion = process.env.OPENAI_API_VERSION || "2025-04-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); });
L'importazione di
"openai/shims/node"
è necessaria quando si esegue il codice in un ambiente Node.js. Garantisce che il tipo di output del metodoclient.audio.speech.create
sia impostato correttamente suNodeJS.ReadableStream
.Creare il file per eseguire la
tsconfig.json
transpile del codice TypeScript e copiare il codice seguente per ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
Converti il codice da TypeScript a JavaScript.
tsc
Accedere ad Azure con il comando seguente:
az login
Eseguire il codice con il comando seguente:
node index.js
Prerequisiti
- Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
- Una risorsa OpenAI di Azure con un modello di sintesi vocale (ad esempio
tts
) distribuita in un'area supportata. Per altre informazioni, vedere Creare una risorsa e distribuire un modello con Azure OpenAI. - The .NET 8.0 SDK
Prerequisiti di Microsoft Entra ID
Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, è necessario:
- Installare l'Azure CLI utilizzata per l'autenticazione senza password con Microsoft Entra ID.
- Assegnare il ruolo
Cognitive Services User
all'account utente. È possibile assegnare ruoli nella portale di Azure in Controllo di accesso (IAM)>Aggiungere un'assegnazione di ruolo.
Impostazione
Creare una nuova cartella
to-speech-quickstart
e passare alla cartella quickstart con il comando seguente:mkdir to-speech-quickstart && cd to-speech-quickstart
Creare una nuova applicazione console con il comando seguente:
dotnet new console
Installare la libreria client OpenAI .NET con il comando dotnet add package:
dotnet add package Azure.AI.OpenAI
Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, installare il pacchetto Azure.Identity con:
dotnet add package Azure.Identity
Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, accedere ad Azure con il comando seguente:
az login
Recuperare le informazioni sulle risorse
È necessario recuperare le informazioni seguenti per autenticare l'applicazione con la risorsa OpenAI di Azure:
Nome variabile | Valore |
---|---|
AZURE_OPENAI_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Questo valore corrisponderà al nome personalizzato scelto per la distribuzione quando è stato distribuito un modello. Questo valore può essere trovato sotto Gestione delle Risorse>Distribuzioni di Modelli nel portale di Azure. |
OPENAI_API_VERSION |
Altre informazioni sulle versioni api. È possibile modificare la versione nel codice o usare una variabile di ambiente. |
Altre informazioni sull'autenticazione senza chiave e sull'impostazione delle variabili di ambiente.
Eseguire l'avvio rapido
Il codice di esempio in questa guida introduttiva usa l'ID Microsoft Entra per l'autenticazione senza chiave consigliata. Se si preferisce usare una chiave API, è possibile sostituire l'oggetto DefaultAzureCredential
con un AzureKeyCredential
oggetto .
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Annotazioni
È possibile ottenere file audio di esempio, ad esempio wikipediaOcelot.wav, dal repository SDK Azure AI Speech su GitHub.
Per eseguire l'avvio rapido, seguire questa procedura:
Sostituire il contenuto di
Program.cs
con il codice seguente e aggiornare i valori segnaposto con i propri.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"; AzureOpenAIClient openAIClient = new AzureOpenAIClient(endpoint, credentials); AudioClient 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");
Eseguire l'applicazione usando il
dotnet run
comando o il pulsante Esegui nella parte superiore di Visual Studio:dotnet run
Risultato
L'applicazione genererà un file audio nel percorso specificato per la speechFilePath
variabile. Riprodurre il file nel dispositivo per ascoltare l'audio generato.
Pulire le risorse
Se si vuole ripulire e rimuovere una risorsa OpenAI di Azure, è possibile eliminare la risorsa. Prima di eliminare la risorsa, è necessario eliminare i modelli distribuiti.
Passaggi successivi
- Altre informazioni su come usare la sintesi vocale con Azure OpenAI nella documentazione di riferimento di Azure OpenAI.
- Per altri esempi, vedere il repository GitHub degli esempi di OpenAI di Azure