Início Rápido: conversão de texto em fala com o Serviço OpenAI do Azure
Neste início rápido, você usará o Serviço OpenAI do Azure para conversão de texto em fala com vozes do OpenAI.
As vozes disponíveis são: alloy
, echo
, fable
, onyx
, nova
e shimmer
. Para obter mais informações, consulte a Documentação de referência do Serviço OpenAI do Azure para conversão de texto em fala.
Pré-requisitos
- Uma assinatura do Azure – Crie uma gratuitamente.
- Um recurso do Azure OpenAI criado nas regiões Centro-Norte dos EUA ou da Suécia Central com o modelo
tts-1
outts-1-hd
implantado. Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
Configuração
Recuperar chave e ponto de extremidade
Para efetuar uma chamada com êxito no Serviço OpenAI do Azure, um ponto de extremidade e uma chave serão necessários.
Nome da variável | Valor |
---|---|
AZURE_OPENAI_ENDPOINT |
O ponto de extremidade de serviço pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Como alternativa, você pode encontrar o ponto de extremidade na página Implantações no Estúdio de IA do Azure. Um ponto de extremidade de exemplo é: https://docs-test-001.openai.azure.com/ . |
AZURE_OPENAI_API_KEY |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e a chave de acesso, pois você precisa de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Criar uma solicitação e uma resposta REST
Em um shell Bash, execute o comando a seguir. Você precisa substituir YourDeploymentName
pelo nome de implantação escolhido ao implantar o modelo de conversão de texto em fala. O nome da implantação não é necessariamente o mesmo nome do modelo. Inserir o nome do modelo resulta em um erro, a menos que você escolha um nome de implantação que seja idêntico ao nome do modelo subjacente.
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
O formato da sua primeira linha do comando com um ponto de extremidade de exemplo apareceria da seguinte forma https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2024-02-15-preview \
curl.
Importante
Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, consulte o artigo segurança dos serviços de IA do Azure.
Código-fonte | Pacote (npm) | Amostras
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- Versões LTS do Node.js
- A CLI do Azure usada para autenticação sem senha em um ambiente de desenvolvimento local, crie o contexto necessário entrando com a CLI do Azure.
- Um recurso do OpenAI do Azure criado em uma região com suporte (consulte disponibilidade da região). Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
Configuração
Recuperar chave e ponto de extremidade
Para efetuar uma chamada com êxito no Serviço OpenAI do Azure, um ponto de extremidade e uma chave serão necessários.
Nome da variável | Valor |
---|---|
AZURE_OPENAI_ENDPOINT |
O ponto de extremidade de serviço pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Como alternativa, você pode encontrar o ponto de extremidade na página Implantações no Estúdio de IA do Azure. Um ponto de extremidade de exemplo é: https://docs-test-001.openai.azure.com/ . |
AZURE_OPENAI_API_KEY |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e a chave de acesso, pois você precisa de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Criar um aplicativo Node
Em uma janela de console (como cmd, PowerShell ou Bash), crie um novo diretório para seu aplicativo e navegue até ele. Em seguida, execute o comando npm init
para criar um aplicativo de nó com um arquivo package.json.
npm init
Instalar a biblioteca de clientes
Instale as bibliotecas de cliente com:
npm install openai @azure/identity
O arquivo package.json do seu aplicativo será atualizado com as dependências.
Criar um arquivo de fala
Crie um novo arquivo chamado Text-to-speech.js e abra-o em seu editor de código preferido. Copie o código a seguir para o arquivo Text-to-speech.js:
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); });
Execute o script com o seguinte comando:
node Text-to-speech.js
Código-fonte | Pacote (npm) | Amostras
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- Versões LTS do Node.js
- TypeScript
- A CLI do Azure usada para autenticação sem senha em um ambiente de desenvolvimento local, crie o contexto necessário entrando com a CLI do Azure.
- Um recurso do OpenAI do Azure criado em uma região com suporte (consulte disponibilidade da região). Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
Configuração
Recuperar chave e ponto de extremidade
Para efetuar uma chamada com êxito no Serviço OpenAI do Azure, um ponto de extremidade e uma chave serão necessários.
Nome da variável | Valor |
---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Como alternativa, você pode encontrar o valor em Estúdio OpenAI do Azure>Playground>Exibição de código. Um ponto de extremidade de exemplo é: https://aoai-docs.openai.azure.com/ . |
AZURE_OPENAI_API_KEY |
Esse valor pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar o recurso no portal do Azure. Você pode usar KEY1 ou KEY2 . |
Acesse o seu recurso no portal do Azure. O Ponto de extremidade e as Chaves podem ser encontrados na seção Gerenciamento de recursos. Copie o ponto de extremidade e a chave de acesso, pois você precisa de ambos para autenticar suas chamadas à API. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e ponto de extremidade.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre a segurança dos serviços de IA, confira Autenticar solicitações para serviços de IA do Azure.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Criar um aplicativo Node
Em uma janela de console (como cmd, PowerShell ou Bash), crie um novo diretório para seu aplicativo e navegue até ele. Em seguida, execute o comando npm init
para criar um aplicativo de nó com um arquivo package.json.
npm init
Instalar a biblioteca de clientes
Instale as bibliotecas de cliente com:
npm install openai @azure/identity
O arquivo package.json do seu aplicativo será atualizado com as dependências.
Criar um arquivo de fala
Crie um novo arquivo chamado Text-to-speech.ts e abra-o em seu editor de código preferido. Copie o código a seguir para o arquivo Text-to-speech.ts:
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); });
A importação de
"openai/shims/node"
é necessária ao executar o código em um ambiente Node.js. Ele garante que o tipo de saída do métodoclient.audio.speech.create
esteja corretamente definido comoNodeJS.ReadableStream
.Compile o aplicativo com o seguinte comando:
tsc
Execute o aplicativo com o seguinte comando:
node Text-to-speech.js
Pré-requisitos
- Uma assinatura do Azure. É possível criar uma gratuitamente.
- Um recurso do OpenAI do Azure com um modelo Whisper implantado em uma região com suporte. Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
- O SDK do .NET 8.0
Criar o aplicativo .NET
Crie um aplicativo .NET usando o comando
dotnet new
:dotnet new console -n TextToSpeech
Altere para o diretório do novo aplicativo:
cd OpenAISpeech
Instale a biblioteca de clientes
Azure.OpenAI
:dotnet add package Azure.AI.OpenAI
Autenticar-se e conectar-se ao OpenAI do Azure
Para fazer solicitações ao serviço OpenAI do Azure, você precisa do ponto de extremidade de serviço, bem como das credenciais de autenticação por meio de uma das seguintes opções:
O Microsoft Entra ID é a abordagem recomendada para autenticação nos serviços do Azure e é mais seguro do que as alternativas baseadas em chave.
As chaves de acesso permitem que você forneça uma chave secreta para se conectar ao recurso.
Importante
As chaves de acesso devem ser usadas com cuidado. Se a chave de acesso da conta for perdida ou colocada acidentalmente em um local não seguro, o serviço poderá ficar vulnerável. Qualquer pessoa que tenha a chave de acesso poderá autorizar solicitações no serviço OpenAI do Azure.
Obter o ponto de extremidade do OpenAI do Azure
O ponto de extremidade de serviço pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Como alternativa, você pode encontrar o ponto de extremidade na página Implantações no Estúdio de IA do Azure. Um ponto de extremidade de exemplo é: https://docs-test-001.openai.azure.com/
.
Autenticação usando o Microsoft Entra ID
Se você optar por usar a autenticação do Microsoft Entra ID, precisará concluir o seguinte:
Adicione o pacote
Azure.Identity
.dotnet add package Azure.Identity
Atribua a função de
Cognitive Services User
à sua conta de usuário. Isso pode ser feito no portal do Azure no seu recurso OpenAI em Controle de acesso (IAM)>Adicionar atribuição de função.Entre no Azure usando o Visual Studio ou a CLI do Azure por meio de
az login
.
Autenticar usando chaves
O valor da chave de acesso pode ser encontrado na seção Chaves e Ponto de extremidade ao examinar seu recurso no portal do Azure. Você pode usar KEY1
ou KEY2
. Ter sempre duas chaves permite girar e regenerar chaves com segurança, sem causar interrupção de serviço.
Atualizar o código do aplicativo
Substitua o conteúdo de
program.cs
pelo código a seguir e atualize os valores do espaço reservado com os seus próprios.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");
Importante
Para produção, armazene e acesse suas credenciais usando um método seguro, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, confira segurança dos serviços de IA do Azure.
Execute o aplicativo usando o comando
dotnet run
ou o botão Executar na parte superior do Visual Studio:dotnet run
O aplicativo gera um arquivo de áudio no local especificado para a variável
speechFilePath
. Reproduza o arquivo no seu dispositivo para ouvir o áudio gerado.
Limpar os recursos
Caso queria limpar e remover um recurso OpenAI do Azure, é possível excluir o recurso. Antes de excluir o recurso, você deve primeiro excluir todos os modelos implantados.
Próximas etapas
- Saiba mais sobre como trabalhar com conversão de texto em fala com o Serviço OpenAI do Azure na Documentação de referência do Serviço OpenAI do Azure.
- Para obter mais exemplos, confira o repositório de amostras do OpenAI do Azure no GitHub