Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os modelos habilitados para áudio introduzem a modalidade de áudio na API existente /chat/completions . O modelo de áudio expande o potencial para aplicativos de IA em interações baseadas em texto e voz e análise de áudio. As modalidades suportadas nos modelos gpt-4o-audio-preview e gpt-4o-mini-audio-preview incluem: texto, áudio e texto + áudio.
Aqui está uma tabela das modalidades com suporte com casos de uso de exemplo:
| Entrada de modalidade | Saída de modalidade | Exemplo de caso de uso |
|---|---|---|
| Texto | Texto + áudio | Conversão de texto em fala, geração de livro de áudio |
| Áudio | Texto + áudio | Transcrição de áudio, geração de livro de áudio |
| Áudio | Texto | Transcrição de áudio |
| Texto + áudio | Texto + áudio | Geração de livro de áudio |
| Texto + áudio | Texto | Transcrição de áudio |
Usando recursos de geração de áudio, você pode obter aplicativos de IA mais dinâmicos e interativos. Modelos que dão suporte a entradas e saídas de áudio permitem que você gere respostas de áudio faladas para prompts e use entradas de áudio para acionar o modelo.
Modelos com suporte
Os seguintes modelos OpenAI dão suporte à geração de áudio:
| Modelo | Geração de áudio? | Uso primário |
|---|---|---|
gpt-4o-audio-preview |
✔️ | Completamentos de chat com saída falada |
gpt-4o-mini-tts |
✔️ | Conversão de texto em fala rápida e escalonável |
gpt-4o-mini-audio-preview |
✔️ | Geração de áudio assíncrona |
gpt-realtime |
✔️ | Voz interativa em tempo real |
gpt-realtime-mini |
✔️ | Streaming de áudio de baixa latência |
tts-1 / tts-1-hd |
✔️ | Síntese de fala de uso geral |
Para obter informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
Nota
A API em tempo real usa o mesmo modelo de áudio GPT-4o subjacente que a API de conclusões, mas é otimizada para interações de áudio em tempo real de baixa latência.
Requisitos de entrada
As vozes a seguir têm suporte para saída de áudio: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin e Cedar.
Há suporte para os seguintes formatos de saída de áudio: wav, mp3, flac, opus, pcm16 e aac.
O tamanho máximo do arquivo de áudio é de 20 MB.
Suporte à API
O suporte para conclusões de áudio foi adicionado pela primeira vez na versão 2025-01-01-previewda API.
Implantar um modelo para geração de áudio
Para implantar o modelo gpt-4o-mini-audio-preview no portal do Microsoft Foundry:
- Vá para o portal do Foundry e crie ou selecione seu projeto.
- Selecione Modelos + pontos de extremidade em Meus ativos no painel esquerdo.
- Selecione + Implantar modelo>Implantar modelo base para abrir a janela de implantação.
- Pesquise e selecione o
gpt-4o-mini-audio-previewmodelo e selecione Confirmar. - Examine os detalhes da implantação e selecione Implantar.
- Siga o assistente para concluir a configuração do modelo.
Agora que você tem uma implantação do modelo gpt-4o-mini-audio-preview, pode interagir com ele no playground de chat do Portal Foundry ou na API de conclusões de chat.
Usar a geração de áudio GPT-4o
Para conversar com o modelo gpt-4o-mini-audio-preview implantado no Chat playground do portal Microsoft Foundry, siga estas etapas:
Vá para o portal do Foundry e selecione o projeto que tem seu modelo implantado
gpt-4o-mini-audio-preview.Vá para o seu projeto no Foundry.
Selecione Playgrounds no painel esquerdo.
Selecione Playground de áudio>Experimente o playground de chat.
Nota
O playground de áudio não dá suporte ao
gpt-4o-mini-audio-previewmodelo. Use o playground de chat, conforme descrito nesta seção.Selecione seu modelo implantado
gpt-4o-mini-audio-previewno menu suspenso Implantação.Comece a conversar com o modelo e ouça as respostas de áudio.
É possível:
- Gravar prompts de áudio.
- Anexe arquivos de áudio ao chat.
- Insira comandos de texto.
Documentação de referência | Código-fonte da biblioteca | Pacote (npm) | Exemplos
Os modelos habilitados para áudio introduzem a modalidade de áudio na API existente /chat/completions . O modelo de áudio expande o potencial para aplicativos de IA em interações baseadas em texto e voz e análise de áudio. As modalidades suportadas nos modelos gpt-4o-audio-preview e gpt-4o-mini-audio-preview incluem: texto, áudio e texto + áudio.
Aqui está uma tabela das modalidades com suporte com casos de uso de exemplo:
| Entrada de modalidade | Saída de modalidade | Exemplo de caso de uso |
|---|---|---|
| Texto | Texto + áudio | Conversão de texto em fala, geração de livro de áudio |
| Áudio | Texto + áudio | Transcrição de áudio, geração de livro de áudio |
| Áudio | Texto | Transcrição de áudio |
| Texto + áudio | Texto + áudio | Geração de livro de áudio |
| Texto + áudio | Texto | Transcrição de áudio |
Usando recursos de geração de áudio, você pode obter aplicativos de IA mais dinâmicos e interativos. Modelos que dão suporte a entradas e saídas de áudio permitem que você gere respostas de áudio faladas para prompts e use entradas de áudio para acionar o modelo.
Modelos com suporte
Os seguintes modelos OpenAI dão suporte à geração de áudio:
| Modelo | Geração de áudio? | Uso primário |
|---|---|---|
gpt-4o-audio-preview |
✔️ | Completamentos de chat com saída falada |
gpt-4o-mini-tts |
✔️ | Conversão de texto em fala rápida e escalonável |
gpt-4o-mini-audio-preview |
✔️ | Geração de áudio assíncrona |
gpt-realtime |
✔️ | Voz interativa em tempo real |
gpt-realtime-mini |
✔️ | Streaming de áudio de baixa latência |
tts-1 / tts-1-hd |
✔️ | Síntese de fala de uso geral |
Para obter informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
Nota
A API em tempo real usa o mesmo modelo de áudio GPT-4o subjacente que a API de conclusões, mas é otimizada para interações de áudio em tempo real de baixa latência.
Requisitos de entrada
As vozes a seguir têm suporte para saída de áudio: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin e Cedar.
Há suporte para os seguintes formatos de saída de áudio: wav, mp3, flac, opus, pcm16 e aac.
O tamanho máximo do arquivo de áudio é de 20 MB.
Suporte à API
O suporte para conclusões de áudio foi adicionado pela primeira vez na versão 2025-01-01-previewda API.
Pré-requisitos
- Uma assinatura Azure – Criar uma gratuitamente
- Node.js suporte a LTS ou ESM.
- Um recurso Azure OpenAI criado em uma das regiões com suporte. Para obter mais informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
- Em seguida, você precisa implantar um modelo de
gpt-4o-mini-audio-previewcom seu recurso Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com Azure OpenAI.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
audio-completions-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir audio-completions-quickstart && cd audio-completions-quickstartCrie o
package.jsoncom o seguinte comando:npm init -yInstale a biblioteca de clientes OpenAI para JavaScript com:
npm install openaiPara a autenticação recomendada sem chave com Microsoft Entra ID, instale o pacote
@azure/identitycom:npm install @azure/identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Cuidado
Para usar a autenticação sem chave recomendada com o SDK, verifique se a AZURE_OPENAI_API_KEY variável de ambiente não está definida.
Gerar áudio com base na entrada de texto
Crie o
to-audio.jsarquivo com o seguinte código:require("dotenv").config(); const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); const { writeFileSync } = require("node:fs"); // Keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Set environment variables or edit the corresponding values here. const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT"; const deployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini-audio-preview"; const apiVersion = process.env.OPENAI_API_VERSION || "2025-01-01-preview"; const client = new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment }); async function main() { // Make the audio chat completions request const response = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", modalities: ["text", "audio"], audio: { voice: "alloy", format: "wav" }, messages: [ { role: "user", content: "Is a golden retriever a good family dog?" } ] }); // Inspect returned data console.log(response.choices[0]); // Write the output audio data to a file writeFileSync( "dog.wav", Buffer.from(response.choices[0].message.audio.data, 'base64'), { encoding: "utf-8" } ); } main().catch((err) => { console.error("Error occurred:", err); }); module.exports = { main };Entre no Azure com o seguinte comando:
az loginExecute o arquivo JavaScript.
node to-audio.js
Aguarde alguns instantes para obter a resposta.
Saída para geração de áudio da entrada de texto
O script gera um arquivo de áudio chamado dog.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada ao prompt: "Um golden retriever é um bom cão de família?"
Gerar áudio e texto com base na entrada de áudio
Crie o
from-audio.jsarquivo com o seguinte código:require("dotenv").config(); const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); const fs = require('fs').promises; const { writeFileSync } = require("node:fs"); // Keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Set environment variables or edit the corresponding values here. const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT"; const apiVersion = "2025-01-01-preview"; const deployment = "gpt-4o-mini-audio-preview"; const client = new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment }); async function main() { // Buffer the audio for input to the chat completion const wavBuffer = await fs.readFile("dog.wav"); const base64str = Buffer.from(wavBuffer).toString("base64"); // Make the audio chat completions request const response = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", modalities: ["text", "audio"], audio: { voice: "alloy", format: "wav" }, messages: [ { role: "user", content: [ { type: "text", text: "Describe in detail the spoken audio input." }, { type: "input_audio", input_audio: { data: base64str, format: "wav" } } ] } ] }); console.log(response.choices[0]); // Write the output audio data to a file writeFileSync( "analysis.wav", Buffer.from(response.choices[0].message.audio.data, 'base64'), { encoding: "utf-8" } ); } main().catch((err) => { console.error("Error occurred:", err); }); module.exports = { main };Entre no Azure com o seguinte comando:
az loginExecute o arquivo JavaScript.
node from-audio.js
Aguarde alguns instantes para obter a resposta.
Saída de geração de texto e áudio a partir de entrada de áudio
O script gera uma transcrição do resumo da entrada de áudio falada. Ele também gera um arquivo de áudio chamado analysis.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada para o prompt.
Gerar áudio e usar conclusões de conversas em múltiplos turnos
Crie o
multi-turn.jsarquivo com o seguinte código:require("dotenv").config(); const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); const fs = require('fs').promises; // Keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Set environment variables or edit the corresponding values here. const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT"; const apiVersion = "2025-01-01-preview"; const deployment = "gpt-4o-mini-audio-preview"; const client = new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment }); async function main() { // Buffer the audio for input to the chat completion const wavBuffer = await fs.readFile("dog.wav"); const base64str = Buffer.from(wavBuffer).toString("base64"); // Initialize messages with the first turn's user input const messages = [ { role: "user", content: [ { type: "text", text: "Describe in detail the spoken audio input." }, { type: "input_audio", input_audio: { data: base64str, format: "wav" } } ] } ]; // Get the first turn's response const response = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", modalities: ["text", "audio"], audio: { voice: "alloy", format: "wav" }, messages: messages }); console.log(response.choices[0]); // Add a history message referencing the previous turn's audio by ID messages.push({ role: "assistant", audio: { id: response.choices[0].message.audio.id } }); // Add a new user message for the second turn messages.push({ role: "user", content: [ { type: "text", text: "Very concisely summarize the favorability." } ] }); // Send the follow-up request with the accumulated messages const followResponse = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", messages: messages }); console.log(followResponse.choices[0].message.content); } main().catch((err) => { console.error("Error occurred:", err); }); module.exports = { main };Entre no Azure com o seguinte comando:
az loginExecute o arquivo JavaScript.
node multi-turn.js
Aguarde alguns instantes para obter a resposta.
Saída para conclusões de chat de vários turnos
O script gera uma transcrição do resumo da entrada de áudio falada. Em seguida, ele faz uma conclusão de chat de vários turnos para resumir brevemente a entrada de áudio falada.
Código-fonte da biblioteca | Pacote | Amostras
Os modelos habilitados para áudio introduzem a modalidade de áudio na API existente /chat/completions . O modelo de áudio expande o potencial para aplicativos de IA em interações baseadas em texto e voz e análise de áudio. As modalidades suportadas nos modelos gpt-4o-audio-preview e gpt-4o-mini-audio-preview incluem: texto, áudio e texto + áudio.
Aqui está uma tabela das modalidades com suporte com casos de uso de exemplo:
| Entrada de modalidade | Saída de modalidade | Exemplo de caso de uso |
|---|---|---|
| Texto | Texto + áudio | Conversão de texto em fala, geração de livro de áudio |
| Áudio | Texto + áudio | Transcrição de áudio, geração de livro de áudio |
| Áudio | Texto | Transcrição de áudio |
| Texto + áudio | Texto + áudio | Geração de livro de áudio |
| Texto + áudio | Texto | Transcrição de áudio |
Usando recursos de geração de áudio, você pode obter aplicativos de IA mais dinâmicos e interativos. Modelos que dão suporte a entradas e saídas de áudio permitem que você gere respostas de áudio faladas para prompts e use entradas de áudio para acionar o modelo.
Modelos com suporte
Os seguintes modelos OpenAI dão suporte à geração de áudio:
| Modelo | Geração de áudio? | Uso primário |
|---|---|---|
gpt-4o-audio-preview |
✔️ | Completamentos de chat com saída falada |
gpt-4o-mini-tts |
✔️ | Conversão de texto em fala rápida e escalonável |
gpt-4o-mini-audio-preview |
✔️ | Geração de áudio assíncrona |
gpt-realtime |
✔️ | Voz interativa em tempo real |
gpt-realtime-mini |
✔️ | Streaming de áudio de baixa latência |
tts-1 / tts-1-hd |
✔️ | Síntese de fala de uso geral |
Para obter informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
Nota
A API em tempo real usa o mesmo modelo de áudio GPT-4o subjacente que a API de conclusões, mas é otimizada para interações de áudio em tempo real de baixa latência.
Requisitos de entrada
As vozes a seguir têm suporte para saída de áudio: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin e Cedar.
Há suporte para os seguintes formatos de saída de áudio: wav, mp3, flac, opus, pcm16 e aac.
O tamanho máximo do arquivo de áudio é de 20 MB.
Suporte à API
O suporte para conclusões de áudio foi adicionado pela primeira vez na versão 2025-01-01-previewda API.
Use este guia para começar a gerar áudio com o Azure SDK do OpenAI para Python.
Pré-requisitos
- Uma assinatura Azure. Crie um gratuitamente.
- Python versão 3.8 ou posterior. É recomendável usar Python 3.10 ou posterior, mas ter pelo menos Python 3.8 é necessário. Se você não tiver uma versão adequada do Python instalada, poderá seguir as instruções no tutorial VS Code Python Tutorial para a maneira mais fácil de instalar Python em seu sistema operacional.
- Um recurso Azure OpenAI criado em uma das regiões com suporte. Para obter mais informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
- Em seguida, você precisa implantar um modelo de
gpt-4o-mini-audio-previewcom seu recurso Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com Azure OpenAI.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
audio-completions-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir audio-completions-quickstart && cd audio-completions-quickstartCrie um ambiente virtual. Se você já tiver Python 3.10 ou superior instalado, poderá criar um ambiente virtual usando os seguintes comandos:
Ativar o ambiente de Python significa que, ao executar
pythonoupipda linha de comando, use o interpretador de Python contido na pasta.venvdo aplicativo. Você pode usar odeactivatecomando para sair do ambiente virtual do Python e, posteriormente, reativar quando necessário.Dica
Recomendamos que você crie e ative um novo ambiente de Python a ser usado para instalar os pacotes necessários para este tutorial. Não instale pacotes na instalação global do Python. Você sempre deve usar um ambiente virtual ou conda ao instalar pacotes python, caso contrário, poderá interromper a instalação global de Python.
Instale a biblioteca de clientes do OpenAI para Python com:
pip install openaiPara a autenticação recomendada sem chave com Microsoft Entra ID, instale o pacote
azure-identitycom:pip install azure-identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Gerar áudio com base na entrada de texto
Crie o
to-audio.pyarquivo com o seguinte código:import requests import base64 import os from openai import AzureOpenAI from azure.identity import DefaultAzureCredential, get_bearer_token_provider token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default") # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication client=AzureOpenAI( azure_ad_token_provider=token_provider, azure_endpoint=endpoint, api_version="2025-01-01-preview" ) # Make the audio chat completions request completion=client.chat.completions.create( model="gpt-4o-mini-audio-preview", modalities=["text", "audio"], audio={"voice": "alloy", "format": "wav"}, messages=[ { "role": "user", "content": "Is a golden retriever a good family dog?" } ] ) print(completion.choices[0]) # Write the output audio data to a file wav_bytes=base64.b64decode(completion.choices[0].message.audio.data) with open("dog.wav", "wb") as f: f.write(wav_bytes)Execute o arquivo Python.
python to-audio.py
Aguarde alguns instantes para obter a resposta.
Saída para geração de áudio da entrada de texto
O script gera um arquivo de áudio chamado dog.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada ao prompt: "Um golden retriever é um bom cão de família?"
Dica
Reproduza o arquivo dog.wav gerado para verificar se o áudio foi gerado corretamente. Você pode usar qualquer player de mídia ou clicar duas vezes no arquivo para abri-lo no player de áudio padrão.
Gerar áudio e texto com base na entrada de áudio
Crie o
from-audio.pyarquivo com o seguinte código:import base64 import os from openai import AzureOpenAI from azure.identity import DefaultAzureCredential, get_bearer_token_provider token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default") # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication client=AzureOpenAI( azure_ad_token_provider=token_provider, azure_endpoint=endpoint, api_version="2025-01-01-preview" ) # Read and encode audio file with open('dog.wav', 'rb') as wav_reader: encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') # Make the audio chat completions request completion = client.chat.completions.create( model="gpt-4o-mini-audio-preview", modalities=["text", "audio"], audio={"voice": "alloy", "format": "wav"}, messages=[ { "role": "user", "content": [ { "type": "text", "text": "Describe in detail the spoken audio input." }, { "type": "input_audio", "input_audio": { "data": encoded_string, "format": "wav" } } ] }, ] ) print(completion.choices[0].message.audio.transcript) # Write the output audio data to a file wav_bytes = base64.b64decode(completion.choices[0].message.audio.data) with open("analysis.wav", "wb") as f: f.write(wav_bytes)Execute o arquivo Python.
python from-audio.py
Aguarde alguns instantes para obter a resposta.
Saída de geração de texto e áudio a partir de entrada de áudio
O script gera uma transcrição do resumo da entrada de áudio falada. Ele também gera um arquivo de áudio chamado analysis.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada para o prompt.
Dica
Reproduza o arquivo gerado analysis.wav para ouvir a descrição de áudio da entrada.
Gerar áudio e usar conclusões de conversas em múltiplos turnos
Crie o
multi-turn.pyarquivo com o seguinte código:import base64 import os from openai import AzureOpenAI from azure.identity import DefaultAzureCredential, get_bearer_token_provider token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default") # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication client=AzureOpenAI( azure_ad_token_provider=token_provider, azure_endpoint=endpoint, api_version="2025-01-01-preview" ) # Read and encode audio file with open('dog.wav', 'rb') as wav_reader: encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') # Initialize messages with the first turn's user input messages = [ { "role": "user", "content": [ { "type": "text", "text": "Describe in detail the spoken audio input." }, { "type": "input_audio", "input_audio": { "data": encoded_string, "format": "wav" } } ] }] # Get the first turn's response completion = client.chat.completions.create( model="gpt-4o-mini-audio-preview", modalities=["text", "audio"], audio={"voice": "alloy", "format": "wav"}, messages=messages ) print("Get the first turn's response:") print(completion.choices[0].message.audio.transcript) print("Add a history message referencing the first turn's audio by ID:") print(completion.choices[0].message.audio.id) # Add a history message referencing the first turn's audio by ID messages.append({ "role": "assistant", "audio": { "id": completion.choices[0].message.audio.id } }) # Add the next turn's user message messages.append({ "role": "user", "content": "Very briefly, summarize the favorability." }) # Send the follow-up request with the accumulated messages completion = client.chat.completions.create( model="gpt-4o-mini-audio-preview", messages=messages ) print("Very briefly, summarize the favorability.") print(completion.choices[0].message.content)Execute o arquivo Python.
python multi-turn.py
Aguarde alguns instantes para obter a resposta.
Saída para conclusões de chat de vários turnos
O script gera uma transcrição do resumo da entrada de áudio falada. Em seguida, ele faz uma conclusão de chat de vários turnos para resumir brevemente a entrada de áudio falada.
Dica
Examine a saída do console para ver a transcrição e verificar se a conversa de vários turnos foi concluída com êxito.
Os modelos habilitados para áudio introduzem a modalidade de áudio na API existente /chat/completions . O modelo de áudio expande o potencial para aplicativos de IA em interações baseadas em texto e voz e análise de áudio. As modalidades suportadas nos modelos gpt-4o-audio-preview e gpt-4o-mini-audio-preview incluem: texto, áudio e texto + áudio.
Aqui está uma tabela das modalidades com suporte com casos de uso de exemplo:
| Entrada de modalidade | Saída de modalidade | Exemplo de caso de uso |
|---|---|---|
| Texto | Texto + áudio | Conversão de texto em fala, geração de livro de áudio |
| Áudio | Texto + áudio | Transcrição de áudio, geração de livro de áudio |
| Áudio | Texto | Transcrição de áudio |
| Texto + áudio | Texto + áudio | Geração de livro de áudio |
| Texto + áudio | Texto | Transcrição de áudio |
Usando recursos de geração de áudio, você pode obter aplicativos de IA mais dinâmicos e interativos. Modelos que dão suporte a entradas e saídas de áudio permitem que você gere respostas de áudio faladas para prompts e use entradas de áudio para acionar o modelo.
Modelos com suporte
Os seguintes modelos OpenAI dão suporte à geração de áudio:
| Modelo | Geração de áudio? | Uso primário |
|---|---|---|
gpt-4o-audio-preview |
✔️ | Completamentos de chat com saída falada |
gpt-4o-mini-tts |
✔️ | Conversão de texto em fala rápida e escalonável |
gpt-4o-mini-audio-preview |
✔️ | Geração de áudio assíncrona |
gpt-realtime |
✔️ | Voz interativa em tempo real |
gpt-realtime-mini |
✔️ | Streaming de áudio de baixa latência |
tts-1 / tts-1-hd |
✔️ | Síntese de fala de uso geral |
Para obter informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
Nota
A API em tempo real usa o mesmo modelo de áudio GPT-4o subjacente que a API de conclusões, mas é otimizada para interações de áudio em tempo real de baixa latência.
Requisitos de entrada
As vozes a seguir têm suporte para saída de áudio: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin e Cedar.
Há suporte para os seguintes formatos de saída de áudio: wav, mp3, flac, opus, pcm16 e aac.
O tamanho máximo do arquivo de áudio é de 20 MB.
Suporte à API
O suporte para conclusões de áudio foi adicionado pela primeira vez na versão 2025-01-01-previewda API.
Pré-requisitos
- Uma assinatura Azure. Crie um gratuitamente.
- Python versão 3.8 ou posterior. É recomendável usar Python 3.10 ou posterior, mas ter pelo menos Python 3.8 é necessário. Se você não tiver uma versão adequada do Python instalada, poderá seguir as instruções no tutorial VS Code Python Tutorial para a maneira mais fácil de instalar Python em seu sistema operacional.
- Um recurso Azure OpenAI criado em uma das regiões com suporte. Para obter mais informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
- Em seguida, você precisa implantar um modelo de
gpt-4o-mini-audio-previewcom seu recurso Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com Azure OpenAI.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
audio-completions-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir audio-completions-quickstart && cd audio-completions-quickstartCrie um ambiente virtual. Se você já tiver Python 3.10 ou superior instalado, poderá criar um ambiente virtual usando os seguintes comandos:
Ativar o ambiente de Python significa que, ao executar
pythonoupipda linha de comando, use o interpretador de Python contido na pasta.venvdo aplicativo. Você pode usar odeactivatecomando para sair do ambiente virtual do Python e, posteriormente, reativar quando necessário.Dica
Recomendamos que você crie e ative um novo ambiente de Python a ser usado para instalar os pacotes necessários para este tutorial. Não instale pacotes na instalação global do Python. Você sempre deve usar um ambiente virtual ou conda ao instalar pacotes python, caso contrário, poderá interromper a instalação global de Python.
Instale a biblioteca de clientes do OpenAI para Python com:
pip install openaiPara a autenticação recomendada sem chave com Microsoft Entra ID, instale o pacote
azure-identitycom:pip install azure-identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Gerar áudio com base na entrada de texto
Crie o
to-audio.pyarquivo com o seguinte código:import requests import base64 import os from openai import AzureOpenAI from azure.identity import DefaultAzureCredential # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication credential = DefaultAzureCredential() token = credential.get_token("https://ai.azure.com/.default") api_version = '2025-01-01-preview' url = f"{endpoint}/openai/deployments/gpt-4o-mini-audio-preview/chat/completions?api-version={api_version}" headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } body = { "modalities": ["audio", "text"], "model": "gpt-4o-mini-audio-preview", "audio": { "format": "wav", "voice": "alloy" }, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Is a golden retriever a good family dog?" } ] } ] } # Make the audio chat completions request completion = requests.post(url, headers=headers, json=body) audio_data = completion.json()['choices'][0]['message']['audio']['data'] # Write the output audio data to a file wav_bytes = base64.b64decode(audio_data) with open("dog.wav", "wb") as f: f.write(wav_bytes)Execute o arquivo Python.
python to-audio.py
Aguarde alguns instantes para obter a resposta.
Saída para geração de áudio da entrada de texto
O script gera um arquivo de áudio chamado dog.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada ao prompt: "Um golden retriever é um bom cão de família?"
Gerar áudio e texto com base na entrada de áudio
Crie o
from-audio.pyarquivo com o seguinte código:import requests import base64 import os from azure.identity import DefaultAzureCredential # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication credential = DefaultAzureCredential() token = credential.get_token("https://ai.azure.com/.default") # Read and encode audio file with open('dog.wav', 'rb') as wav_reader: encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') api_version = '2025-01-01-preview' url = f"{endpoint}/openai/deployments/gpt-4o-mini-audio-preview/chat/completions?api-version={api_version}" headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } body = { "modalities": ["audio", "text"], "model": "gpt-4o-mini-audio-preview", "audio": { "format": "wav", "voice": "alloy" }, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe in detail the spoken audio input." }, { "type": "input_audio", "input_audio": { "data": encoded_string, "format": "wav" } } ] }, ] } completion = requests.post(url, headers=headers, json=body) print(completion.json()['choices'][0]['message']['audio']['transcript']) # Write the output audio data to a file audio_data = completion.json()['choices'][0]['message']['audio']['data'] wav_bytes = base64.b64decode(audio_data) with open("analysis.wav", "wb") as f: f.write(wav_bytes)Execute o arquivo Python.
python from-audio.py
Aguarde alguns instantes para obter a resposta.
Saída de geração de texto e áudio a partir de entrada de áudio
O script gera uma transcrição do resumo da entrada de áudio falada. Ele também gera um arquivo de áudio chamado analysis.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada para o prompt.
Gerar áudio e usar conclusões de conversas em múltiplos turnos
Crie o
multi-turn.pyarquivo com o seguinte código:import requests import base64 import os from openai import AzureOpenAI from azure.identity import DefaultAzureCredential # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication credential = DefaultAzureCredential() token = credential.get_token("https://ai.azure.com/.default") api_version = '2025-01-01-preview' url = f"{endpoint}/openai/deployments/gpt-4o-mini-audio-preview/chat/completions?api-version={api_version}" headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } # Read and encode audio file with open('dog.wav', 'rb') as wav_reader: encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') # Initialize messages with the first turn's user input messages = [ { "role": "user", "content": [ { "type": "text", "text": "Describe in detail the spoken audio input." }, { "type": "input_audio", "input_audio": { "data": encoded_string, "format": "wav" } } ] }] body = { "modalities": ["audio", "text"], "model": "gpt-4o-mini-audio-preview", "audio": { "format": "wav", "voice": "alloy" }, "messages": messages } # Get the first turn's response, including generated audio completion = requests.post(url, headers=headers, json=body) print("Get the first turn's response:") print(completion.json()['choices'][0]['message']['audio']['transcript']) print("Add a history message referencing the first turn's audio by ID:") print(completion.json()['choices'][0]['message']['audio']['id']) # Add a history message referencing the first turn's audio by ID messages.append({ "role": "assistant", "audio": { "id": completion.json()['choices'][0]['message']['audio']['id'] } }) # Add the next turn's user message messages.append({ "role": "user", "content": "Very briefly, summarize the favorability." }) body = { "model": "gpt-4o-mini-audio-preview", "messages": messages } # Send the follow-up request with the accumulated messages completion = requests.post(url, headers=headers, json=body) print("Very briefly, summarize the favorability.") print(completion.json()['choices'][0]['message']['content'])Execute o arquivo Python.
python multi-turn.py
Aguarde alguns instantes para obter a resposta.
Saída para conclusões de chat de vários turnos
O script gera uma transcrição do resumo da entrada de áudio falada. Em seguida, ele faz uma conclusão de chat de vários turnos para resumir brevemente a entrada de áudio falada.
Documentação de referência | Código-fonte da biblioteca | Pacote (npm) | Exemplos
Os modelos habilitados para áudio introduzem a modalidade de áudio na API existente /chat/completions . O modelo de áudio expande o potencial para aplicativos de IA em interações baseadas em texto e voz e análise de áudio. As modalidades suportadas nos modelos gpt-4o-audio-preview e gpt-4o-mini-audio-preview incluem: texto, áudio e texto + áudio.
Aqui está uma tabela das modalidades com suporte com casos de uso de exemplo:
| Entrada de modalidade | Saída de modalidade | Exemplo de caso de uso |
|---|---|---|
| Texto | Texto + áudio | Conversão de texto em fala, geração de livro de áudio |
| Áudio | Texto + áudio | Transcrição de áudio, geração de livro de áudio |
| Áudio | Texto | Transcrição de áudio |
| Texto + áudio | Texto + áudio | Geração de livro de áudio |
| Texto + áudio | Texto | Transcrição de áudio |
Usando recursos de geração de áudio, você pode obter aplicativos de IA mais dinâmicos e interativos. Modelos que dão suporte a entradas e saídas de áudio permitem que você gere respostas de áudio faladas para prompts e use entradas de áudio para acionar o modelo.
Modelos com suporte
Os seguintes modelos OpenAI dão suporte à geração de áudio:
| Modelo | Geração de áudio? | Uso primário |
|---|---|---|
gpt-4o-audio-preview |
✔️ | Completamentos de chat com saída falada |
gpt-4o-mini-tts |
✔️ | Conversão de texto em fala rápida e escalonável |
gpt-4o-mini-audio-preview |
✔️ | Geração de áudio assíncrona |
gpt-realtime |
✔️ | Voz interativa em tempo real |
gpt-realtime-mini |
✔️ | Streaming de áudio de baixa latência |
tts-1 / tts-1-hd |
✔️ | Síntese de fala de uso geral |
Para obter informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
Nota
A API em tempo real usa o mesmo modelo de áudio GPT-4o subjacente que a API de conclusões, mas é otimizada para interações de áudio em tempo real de baixa latência.
Requisitos de entrada
As vozes a seguir têm suporte para saída de áudio: Alloy, Ash, Ballad, Coral, Echo, Sage, Shimmer, Verse, Marin e Cedar.
Há suporte para os seguintes formatos de saída de áudio: wav, mp3, flac, opus, pcm16 e aac.
O tamanho máximo do arquivo de áudio é de 20 MB.
Suporte à API
O suporte para conclusões de áudio foi adicionado pela primeira vez na versão 2025-01-01-previewda API.
Pré-requisitos
- Uma assinatura Azure – Criar uma gratuitamente
- Node.js suporte a LTS ou ESM.
- TypeScript instalado globalmente.
- Um recurso Azure OpenAI criado em uma das regiões com suporte. Para obter mais informações sobre a disponibilidade da região, consulte a documentação de modelos e versões.
- Em seguida, você precisa implantar um modelo de
gpt-4o-mini-audio-previewcom seu recurso Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com Azure OpenAI.
Microsoft Entra ID pré-requisitos
Para a autenticação sem chave recomendada com Microsoft Entra ID, você precisa:
- Instale o CLI do Azure usado para autenticação sem chave com Microsoft Entra ID.
- Atribua a
Cognitive Services Userfunção à sua conta de usuário. Você pode atribuir funções no portal do Azure em Controle de Acesso (IAM)>Adicionar atribuição de função.
Configurar
Crie uma nova pasta
audio-completions-quickstarte vá para a pasta de início rápido com o seguinte comando:mkdir audio-completions-quickstart && cd audio-completions-quickstartCrie o
package.jsoncom o seguinte comando:npm init -yAtualize o
package.jsonpara o ECMAScript com o seguinte comando:npm pkg set type=moduleInstale a biblioteca de clientes OpenAI para JavaScript com:
npm install openaiPara a autenticação recomendada sem chave com Microsoft Entra ID, instale o pacote
@azure/identitycom:npm install @azure/identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu Azure recurso OpenAI:
| Nome da variável | Valor |
|---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Keys e Endpoint ao examinar o recurso do portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Esse valor corresponderá ao nome personalizado escolhido para sua implantação quando você implantou um modelo. Esse valor pode ser encontrado em Resource Management>Model Deployments no portal Azure. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Cuidado
Para usar a autenticação sem chave recomendada com o SDK, verifique se a AZURE_OPENAI_API_KEY variável de ambiente não está definida.
Gerar áudio com base na entrada de texto
Crie o
to-audio.tsarquivo com o seguinte código:import { writeFileSync } from "node:fs"; import { AzureOpenAI } from "openai/index.mjs"; import { DefaultAzureCredential, getBearerTokenProvider, } from "@azure/identity"; // Set environment variables or edit the corresponding values here. const endpoint: string = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT"; const deployment: string = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini-audio-preview"; const apiVersion: string = process.env.OPENAI_API_VERSION || "2025-01-01-preview"; // Keyless authentication const getClient = (): AzureOpenAI => { const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const client = new AzureOpenAI({ endpoint: endpoint, apiVersion: apiVersion, azureADTokenProvider, }); return client; }; const client = getClient(); async function main(): Promise<void> { // Make the audio chat completions request const response = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", modalities: ["text", "audio"], audio: { voice: "alloy", format: "wav" }, messages: [ { role: "user", content: "Is a golden retriever a good family dog?" } ] }); // Inspect returned data console.log(response.choices[0]); // Write the output audio data to a file if (response.choices[0].message.audio) { writeFileSync( "dog.wav", Buffer.from(response.choices[0].message.audio.data, 'base64'), { encoding: "utf-8" } ); } else { console.error("Audio data is null or undefined."); } } main().catch((err: Error) => { console.error("Error occurred:", err); }); export { main };Crie o
tsconfig.jsonarquivo para transpilar o código TypeScript e copiar o código a seguir para 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"] }Transpile de TypeScript para JavaScript.
tscEntre no Azure com o seguinte comando:
az loginExecute o código com o seguinte comando:
node to-audio.js
Aguarde alguns instantes para obter a resposta.
Saída para geração de áudio da entrada de texto
O script gera um arquivo de áudio chamado dog.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada ao prompt: "Um golden retriever é um bom cão de família?"
Gerar áudio e texto com base na entrada de áudio
Crie o
from-audio.tsarquivo com o seguinte código:import { AzureOpenAI } from "openai"; import { writeFileSync } from "node:fs"; import { promises as fs } from 'fs'; import { DefaultAzureCredential, getBearerTokenProvider, } from "@azure/identity"; // Set environment variables or edit the corresponding values here. const endpoint: string = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT"; const apiVersion: string = "2025-01-01-preview"; const deployment: string = "gpt-4o-mini-audio-preview"; // Keyless authentication const getClient = (): AzureOpenAI => { const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const client = new AzureOpenAI({ endpoint: endpoint, apiVersion: apiVersion, azureADTokenProvider, }); return client; }; const client = getClient(); async function main(): Promise<void> { // Buffer the audio for input to the chat completion const wavBuffer = await fs.readFile("dog.wav"); const base64str = Buffer.from(wavBuffer).toString("base64"); // Make the audio chat completions request const response = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", modalities: ["text", "audio"], audio: { voice: "alloy", format: "wav" }, messages: [ { role: "user", content: [ { type: "text", text: "Describe in detail the spoken audio input." }, { type: "input_audio", input_audio: { data: base64str, format: "wav" } } ] } ] }); console.log(response.choices[0]); // Write the output audio data to a file if (response.choices[0].message.audio) { writeFileSync("analysis.wav", Buffer.from(response.choices[0].message.audio.data, 'base64'), { encoding: "utf-8" }); } else { console.error("Audio data is null or undefined."); } } main().catch((err: Error) => { console.error("Error occurred:", err); }); export { main };Crie o
tsconfig.jsonarquivo para transpilar o código TypeScript e copiar o código a seguir para 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"] }Transpile de TypeScript para JavaScript.
tscEntre no Azure com o seguinte comando:
az loginExecute o código com o seguinte comando:
node from-audio.js
Aguarde alguns instantes para obter a resposta.
Saída de geração de texto e áudio a partir de entrada de áudio
O script gera uma transcrição do resumo da entrada de áudio falada. Ele também gera um arquivo de áudio chamado analysis.wav no mesmo diretório que o script. O arquivo de áudio contém a resposta falada para o prompt.
Gerar áudio e usar conclusões de conversas em múltiplos turnos
Crie o
multi-turn.tsarquivo com o seguinte código:import { AzureOpenAI } from "openai/index.mjs"; import { promises as fs } from 'fs'; import { ChatCompletionMessageParam } from "openai/resources/index.mjs"; import { DefaultAzureCredential, getBearerTokenProvider, } from "@azure/identity"; // Set environment variables or edit the corresponding values here. const endpoint: string = process.env.AZURE_OPENAI_ENDPOINT || "AZURE_OPENAI_ENDPOINT"; const apiVersion: string = "2025-01-01-preview"; const deployment: string = "gpt-4o-mini-audio-preview"; // Keyless authentication const getClient = (): AzureOpenAI => { const credential = new DefaultAzureCredential(); const scope = "https://ai.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const client = new AzureOpenAI({ endpoint: endpoint, apiVersion: apiVersion, azureADTokenProvider, }); return client; }; const client = getClient(); async function main(): Promise<void> { // Buffer the audio for input to the chat completion const wavBuffer = await fs.readFile("dog.wav"); const base64str = Buffer.from(wavBuffer).toString("base64"); // Initialize messages with the first turn's user input const messages: ChatCompletionMessageParam[] = [ { role: "user", content: [ { type: "text", text: "Describe in detail the spoken audio input." }, { type: "input_audio", input_audio: { data: base64str, format: "wav" } } ] } ]; // Get the first turn's response const response = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", modalities: ["text", "audio"], audio: { voice: "alloy", format: "wav" }, messages: messages }); console.log(response.choices[0]); // Add a history message referencing the previous turn's audio by ID messages.push({ role: "assistant", audio: response.choices[0].message.audio ? { id: response.choices[0].message.audio.id } : undefined }); // Add a new user message for the second turn messages.push({ role: "user", content: [ { type: "text", text: "Very concisely summarize the favorability." } ] }); // Send the follow-up request with the accumulated messages const followResponse = await client.chat.completions.create({ model: "gpt-4o-mini-audio-preview", messages: messages }); console.log(followResponse.choices[0].message.content); } main().catch((err: Error) => { console.error("Error occurred:", err); }); export { main };Crie o
tsconfig.jsonarquivo para transpilar o código TypeScript e copiar o código a seguir para 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"] }Transpile de TypeScript para JavaScript.
tscEntre no Azure com o seguinte comando:
az loginExecute o código com o seguinte comando:
node multi-turn.js
Aguarde alguns instantes para obter a resposta.
Saída para conclusões de chat de vários turnos
O script gera uma transcrição do resumo da entrada de áudio falada. Em seguida, ele faz uma conclusão de chat de vários turnos para resumir brevemente a entrada de áudio falada.
Limpar recursos
Se você quiser limpar e remover um recurso Azure OpenAI, poderá excluir o recurso. Antes de excluir o recurso, primeiro você deve excluir todos os modelos implantados.
Solucionando problemas
Nota
Ao usar gpt-4o-audio-preview para conclusões de chat com a modalidade de áudio e stream é definido como true, o único formato de áudio com suporte é pcm16.
Erros de autenticação
Se você receber um erro 401 ou 403:
-
Autenticação sem chave: Verifique se você executou
az logine tem aCognitive Services Userfunção atribuída à sua conta. -
Chave de API: Verifique se isso
AZURE_OPENAI_API_KEYestá definido corretamente e se a chave não foi regenerada.
Modelo não encontrado
Se o gpt-4o-mini-audio-preview modelo não estiver disponível:
- Verifique se o modelo está implantado em seu Azure recurso OpenAI.
- Verifique se você está usando uma região com suporte.
Problemas de arquivo de áudio
Se o arquivo de áudio gerado não for reproduzido:
- Verifique se o arquivo foi gravado completamente (verifique se o tamanho do arquivo é maior que 0 bytes).
- Verifique se o formato corresponde ao que o player dá suporte (wav é amplamente compatível).
- Para respostas de streaming, lembre-se de que há suporte apenas para o formato pcm16.
Limitação de taxa
Se você receber um erro 429, excedeu o limite de taxa. Aguarde e tente novamente ou solicite um aumento de cota. Para obter mais informações sobre limites de taxa de uso, consulte cotas e limites do Azure OpenAI.
Conteúdo relacionado
- Saiba mais sobre tipos de implantação do Azure OpenAI .
- Saiba mais sobre Azure openai quotas e limites.