GPT-4o API em tempo real para fala e áudio (Pré-visualização)
Nota
Esta funcionalidade está atualmente em pré-visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
A API em tempo real do Azure OpenAI GPT-4o para fala e áudio faz parte da família de modelos GPT-4o que oferece suporte a interações conversacionais de baixa latência, "speech in, speech out". A API de áudio realtime
GPT-4o foi projetada para lidar com interações conversacionais em tempo real e de baixa latência, tornando-se uma ótima opção para casos de uso envolvendo interações ao vivo entre um usuário e um modelo, como agentes de suporte ao cliente, assistentes de voz e tradutores em tempo real.
A maioria dos usuários da API em tempo real precisa entregar e receber áudio de um usuário final em tempo real, incluindo aplicativos que usam WebRTC ou um sistema de telefonia. A API em tempo real não foi projetada para se conectar diretamente aos dispositivos do usuário final e depende de integrações de cliente para encerrar fluxos de áudio do usuário final.
Modelos suportados
Os modelos GPT 4o em tempo real estão disponíveis para implantações globais nas regiões Leste dos EUA 2 e Suécia Central.
gpt-4o-realtime-preview
(2024-12-17)gpt-4o-realtime-preview
(2024-10-01)
Consulte a documentação de modelos e versões para obter mais informações.
Suporte de API
O suporte para a API em tempo real foi adicionado pela primeira vez na versão 2024-10-01-preview
da API.
Nota
Para obter mais informações sobre a API e a arquitetura, consulte o repositório de áudio em tempo real do Azure OpenAI GPT-4o no GitHub.
Implante um modelo para áudio em tempo real
Para implantar o gpt-4o-realtime-preview
modelo no portal do Azure AI Foundry:
- Aceda ao portal do Azure AI Foundry e certifique-se de que tem sessão iniciada com a subscrição do Azure que tem o seu recurso do Serviço OpenAI do Azure (com ou sem implementações de modelo).
- Selecione o playground de áudio em tempo real em Playgrounds no painel esquerdo.
- Selecione Criar nova implantação para abrir a janela de implantação.
- Procure e selecione o
gpt-4o-realtime-preview
modelo e, em seguida, selecione Confirmar. - No assistente de implantação, selecione a versão do
2024-12-17
modelo. - Siga o assistente para concluir a implantação do modelo.
Agora que você tem uma implantação do modelo, pode interagir com ele em tempo real no portal do Azure AI Foundry Recreio de áudio em tempo real ou API em gpt-4o-realtime-preview
tempo real.
Use o áudio GPT-4o em tempo real
Para conversar com seu modelo implantado gpt-4o-realtime-preview
no playground de áudio em tempo real do Azure AI Foundry, siga estas etapas:
Vá para a página do Serviço OpenAI do Azure no portal do Azure AI Foundry. Certifique-se de que tem sessão iniciada com a subscrição do Azure que tem o seu recurso do Serviço OpenAI do Azure e o modelo implementado
gpt-4o-realtime-preview
.Selecione o playground de áudio em tempo real em Playgrounds no painel esquerdo.
Selecione seu modelo implantado
gpt-4o-realtime-preview
na lista suspensa Implantação .Selecione Ativar microfone para permitir que o navegador acesse seu microfone. Se já tiver concedido permissão, pode ignorar este passo.
Opcionalmente, você pode editar o conteúdo na caixa de texto Dar instruções e contexto ao modelo. Dê instruções ao modelo sobre como ele deve se comportar e qualquer contexto que ele deve referenciar ao gerar uma resposta. Pode descrever a personalidade do assistente, dizer-lhe o que deve ou não responder e indicar-lhe como formatar as respostas.
Opcionalmente, altere configurações como limite, preenchimento de prefixo e duração do silêncio.
Selecione Começar a ouvir para iniciar a sessão. Você pode falar no microfone para iniciar um bate-papo.
Você pode interromper o bate-papo a qualquer momento falando. Você pode encerrar o bate-papo selecionando o botão Parar de ouvir .
Pré-requisitos
- Uma assinatura do Azure - Crie uma gratuitamente
- Node.js suporte LTS ou ESM.
- Um recurso OpenAI do Azure criado nas regiões Leste dos EUA 2 ou Suécia Central. Consulte Disponibilidade da região.
- Em seguida, você precisa implantar um
gpt-4o-realtime-preview
modelo com seu recurso do Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
Pré-requisitos do Microsoft Entra ID
Para a autenticação sem chave recomendada com o Microsoft Entra ID, você precisa:
- Instale a CLI do Azure usada para autenticação sem chave com o Microsoft Entra ID.
- Atribua a
Cognitive Services User
função à sua conta de utilizador. Você pode atribuir funções no portal do Azure em Controle de acesso (IAM)>Adicionar atribuição de função.
Implante um modelo para áudio em tempo real
Para implantar o gpt-4o-realtime-preview
modelo no portal do Azure AI Foundry:
- Aceda ao portal do Azure AI Foundry e certifique-se de que tem sessão iniciada com a subscrição do Azure que tem o seu recurso do Serviço OpenAI do Azure (com ou sem implementações de modelo).
- Selecione o playground de áudio em tempo real em Playgrounds no painel esquerdo.
- Selecione Criar nova implantação para abrir a janela de implantação.
- Procure e selecione o
gpt-4o-realtime-preview
modelo e, em seguida, selecione Confirmar. - No assistente de implantação, selecione a versão do
2024-12-17
modelo. - Siga o assistente para concluir a implantação do modelo.
Agora que você tem uma implantação do modelo, pode interagir com ele em tempo real no portal do Azure AI Foundry Recreio de áudio em tempo real ou API em gpt-4o-realtime-preview
tempo real.
Configurar
Crie uma nova pasta
realtime-audio-quickstart
para conter o aplicativo e abra o Visual Studio Code nessa pasta com o seguinte comando:mkdir realtime-audio-quickstart && code realtime-audio-quickstart
Crie o
package.json
com o seguinte comando:npm init -y
Atualize o
package.json
para ECMAScript com o seguinte comando:npm pkg set type=module
Instale a biblioteca de cliente de áudio em tempo real para JavaScript com:
npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
Para a autenticação sem chave recomendada com o Microsoft Entra ID, instale o
@azure/identity
pacote com:npm install @azure/identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu recurso do Azure OpenAI:
Nome da variável | Value |
---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves e Ponto de Extremidade ao examinar seu recurso no portal do Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Este valor corresponderá ao nome personalizado que escolheu para a implementação quando implementou um modelo. Esse valor pode ser encontrado em Implantações de Modelo de Gerenciamento de>Recursos no portal do Azure. |
OPENAI_API_VERSION |
Saiba mais sobre as versões da API. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Atenção
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.
Texto na saída de áudio
Crie o
text-in-audio-out.js
arquivo com o seguinte código:import { DefaultAzureCredential } from "@azure/identity"; import { LowLevelRTClient } from "rt-client"; import dotenv from "dotenv"; dotenv.config(); async function text_in_audio_out() { // Set environment variables or edit the corresponding values here. const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "yourEndpoint"; const deployment = "gpt-4o-realtime-preview"; if (!endpoint || !deployment) { throw new Error("You didn't set the environment variables."); } const client = new LowLevelRTClient(new URL(endpoint), new DefaultAzureCredential(), { deployment: deployment }); try { await client.send({ type: "response.create", response: { modalities: ["audio", "text"], instructions: "Please assist the user." } }); for await (const message of client.messages()) { switch (message.type) { case "response.done": { break; } case "error": { console.error(message.error); break; } case "response.audio_transcript.delta": { console.log(`Received text delta: ${message.delta}`); break; } case "response.audio.delta": { const buffer = Buffer.from(message.delta, "base64"); console.log(`Received ${buffer.length} bytes of audio data.`); break; } } if (message.type === "response.done" || message.type === "error") { break; } } } finally { client.close(); } } await text_in_audio_out();
Entre no Azure com o seguinte comando:
az login
Execute o arquivo JavaScript.
node text-in-audio-out.js
Aguarde alguns instantes para obter a resposta.
Saída
O script recebe uma resposta do modelo e imprime a transcrição e os dados de áudio recebidos.
A saída será semelhante à seguinte:
Received text delta: Hello
Received text delta: !
Received text delta: How
Received text delta: can
Received text delta: I
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta: help
Received 12000 bytes of audio data.
Received text delta: you
Received text delta: today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 24000 bytes of audio data.
Exemplo de aplicativo Web
Nosso exemplo de JavaScript no GitHub demonstra como usar a API GPT-4o Realtime para interagir com o modelo em tempo real. O código de exemplo inclui uma interface web simples que captura o áudio do microfone do usuário e o envia para o modelo para processamento. O modelo responde com texto e áudio, que o código de exemplo renderiza na interface web.
Você pode executar o código de exemplo localmente em sua máquina seguindo estas etapas. Consulte o repositório no GitHub para obter as instruções mais atualizadas.
Se você não tiver Node.js instalado, baixe e instale a versão LTS do Node.js.
Clone o repositório em sua máquina local:
git clone https://github.com/Azure-Samples/aoai-realtime-audio-sdk.git
Vá para a
javascript/samples/web
pasta no seu editor de código preferido.cd ./javascript/samples
Execute
download-pkg.ps1
oudownload-pkg.sh
faça o download dos pacotes necessários.Vá para a
web
pasta a./javascript/samples
partir da pasta.cd ./web
Execute
npm install
para instalar dependências de pacote.Execute
npm run dev
para iniciar o servidor Web, navegando em todos os prompts de permissões de firewall conforme necessário.Vá para qualquer um dos URIs fornecidos a partir da saída do console (como
http://localhost:5173/
) em um navegador.Insira as seguintes informações na interface web:
- Ponto de extremidade: O ponto de extremidade do recurso de um recurso do Azure OpenAI. Não é necessário acrescentar o
/realtime
caminho. Um exemplo de estrutura pode serhttps://my-azure-openai-resource-from-portal.openai.azure.com
. - Chave de API: uma chave de API correspondente para o recurso OpenAI do Azure.
- Implantação: o
gpt-4o-realtime-preview
nome do modelo que você implantou na seção anterior. - Mensagem do sistema: Opcionalmente, você pode fornecer uma mensagem do sistema como "Você sempre fala como um pirata amigável".
- Temperatura: Opcionalmente, você pode fornecer uma temperatura personalizada.
- Voz: Opcionalmente, você pode selecionar uma voz.
- Ponto de extremidade: O ponto de extremidade do recurso de um recurso do Azure OpenAI. Não é necessário acrescentar o
Selecione o botão Gravar para iniciar a sessão. Aceite permissões para usar o microfone, se solicitado.
Você deve ver uma
<< Session Started >>
mensagem na saída principal. Então você pode falar no microfone para iniciar um bate-papo.Você pode interromper o bate-papo a qualquer momento falando. Você pode encerrar o bate-papo selecionando o botão Parar .
Pré-requisitos
- Uma subscrição do Azure. Crie um gratuitamente.
- Python 3.8 ou versão posterior. Recomendamos o uso do Python 3.10 ou posterior, mas é necessário ter pelo menos o Python 3.8. Se você não tiver uma versão adequada do Python instalada, você pode seguir as instruções no VS Code Python Tutorial para a maneira mais fácil de instalar o Python em seu sistema operacional.
- Um recurso OpenAI do Azure criado nas regiões Leste dos EUA 2 ou Suécia Central. Consulte Disponibilidade da região.
- Em seguida, você precisa implantar um
gpt-4o-realtime-preview
modelo com seu recurso do Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
Pré-requisitos do Microsoft Entra ID
Para a autenticação sem chave recomendada com o Microsoft Entra ID, você precisa:
- Instale a CLI do Azure usada para autenticação sem chave com o Microsoft Entra ID.
- Atribua a
Cognitive Services User
função à sua conta de utilizador. Você pode atribuir funções no portal do Azure em Controle de acesso (IAM)>Adicionar atribuição de função.
Implante um modelo para áudio em tempo real
Para implantar o gpt-4o-realtime-preview
modelo no portal do Azure AI Foundry:
- Aceda ao portal do Azure AI Foundry e certifique-se de que tem sessão iniciada com a subscrição do Azure que tem o seu recurso do Serviço OpenAI do Azure (com ou sem implementações de modelo).
- Selecione o playground de áudio em tempo real em Playgrounds no painel esquerdo.
- Selecione Criar nova implantação para abrir a janela de implantação.
- Procure e selecione o
gpt-4o-realtime-preview
modelo e, em seguida, selecione Confirmar. - No assistente de implantação, selecione a versão do
2024-12-17
modelo. - Siga o assistente para concluir a implantação do modelo.
Agora que você tem uma implantação do modelo, pode interagir com ele em tempo real no portal do Azure AI Foundry Recreio de áudio em tempo real ou API em gpt-4o-realtime-preview
tempo real.
Configurar
Crie uma nova pasta
realtime-audio-quickstart
para conter o aplicativo e abra o Visual Studio Code nessa pasta com o seguinte comando:mkdir realtime-audio-quickstart && code realtime-audio-quickstart
Crie um ambiente virtual. Se você já tiver o Python 3.10 ou superior instalado, poderá criar um ambiente virtual usando os seguintes comandos:
Ativar o ambiente Python significa que quando você executa
python
oupip
a partir da linha de comando, você usa o interpretador Python contido na.venv
pasta do seu aplicativo. Você pode usar odeactivate
comando para sair do ambiente virtual python e, posteriormente, reativá-lo quando necessário.Gorjeta
Recomendamos que você crie e ative um novo ambiente Python para usar para instalar os pacotes necessários para este tutorial. Não instale pacotes em sua instalação global do python. Você deve sempre usar um ambiente virtual ou conda ao instalar pacotes python, caso contrário, você pode quebrar sua instalação global do Python.
Instale a biblioteca de cliente de áudio em tempo real para Python com:
pip install "https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/py%2Fv0.5.3/rtclient-0.5.3.tar.gz"
Para a autenticação sem chave recomendada com o Microsoft Entra ID, instale o
azure-identity
pacote com:pip install azure-identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu recurso do Azure OpenAI:
Nome da variável | Value |
---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves e Ponto de Extremidade ao examinar seu recurso no portal do Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Este valor corresponderá ao nome personalizado que escolheu para a implementação quando implementou um modelo. Esse valor pode ser encontrado em Implantações de Modelo de Gerenciamento de>Recursos no portal do Azure. |
OPENAI_API_VERSION |
Saiba mais sobre as versões da API. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Texto na saída de áudio
Crie o
text-in-audio-out.py
arquivo com o seguinte código:import base64 import asyncio from azure.identity.aio import DefaultAzureCredential from rtclient import ( ResponseCreateMessage, RTLowLevelClient, ResponseCreateParams ) # Set environment variables or edit the corresponding values here. endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] deployment = "gpt-4o-realtime-preview" async def text_in_audio_out(): async with RTLowLevelClient( url=endpoint, azure_deployment=deployment, token_credential=DefaultAzureCredential(), ) as client: await client.send( ResponseCreateMessage( response=ResponseCreateParams( modalities={"audio", "text"}, instructions="Please assist the user." ) ) ) done = False while not done: message = await client.recv() match message.type: case "response.done": done = True case "error": done = True print(message.error) case "response.audio_transcript.delta": print(f"Received text delta: {message.delta}") case "response.audio.delta": buffer = base64.b64decode(message.delta) print(f"Received {len(buffer)} bytes of audio data.") case _: pass async def main(): await text_in_audio_out() asyncio.run(main())
Execute o arquivo Python.
python text-in-audio-out.py
Aguarde alguns instantes para obter a resposta.
Saída
O script recebe uma resposta do modelo e imprime a transcrição e os dados de áudio recebidos.
A saída será semelhante à seguinte:
Received text delta: Hello
Received text delta: !
Received text delta: How
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta: can
Received 12000 bytes of audio data.
Received text delta: I
Received text delta: assist
Received text delta: you
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received text delta: today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 28800 bytes of audio data.
Pré-requisitos
- Uma assinatura do Azure - Crie uma gratuitamente
- Node.js suporte LTS ou ESM.
- TypeScript instalado globalmente.
- Um recurso OpenAI do Azure criado nas regiões Leste dos EUA 2 ou Suécia Central. Consulte Disponibilidade da região.
- Em seguida, você precisa implantar um
gpt-4o-realtime-preview
modelo com seu recurso do Azure OpenAI. Para obter mais informações, consulte Criar um recurso e implantar um modelo com o Azure OpenAI.
Pré-requisitos do Microsoft Entra ID
Para a autenticação sem chave recomendada com o Microsoft Entra ID, você precisa:
- Instale a CLI do Azure usada para autenticação sem chave com o Microsoft Entra ID.
- Atribua a
Cognitive Services User
função à sua conta de utilizador. Você pode atribuir funções no portal do Azure em Controle de acesso (IAM)>Adicionar atribuição de função.
Implante um modelo para áudio em tempo real
Para implantar o gpt-4o-realtime-preview
modelo no portal do Azure AI Foundry:
- Aceda ao portal do Azure AI Foundry e certifique-se de que tem sessão iniciada com a subscrição do Azure que tem o seu recurso do Serviço OpenAI do Azure (com ou sem implementações de modelo).
- Selecione o playground de áudio em tempo real em Playgrounds no painel esquerdo.
- Selecione Criar nova implantação para abrir a janela de implantação.
- Procure e selecione o
gpt-4o-realtime-preview
modelo e, em seguida, selecione Confirmar. - No assistente de implantação, selecione a versão do
2024-12-17
modelo. - Siga o assistente para concluir a implantação do modelo.
Agora que você tem uma implantação do modelo, pode interagir com ele em tempo real no portal do Azure AI Foundry Recreio de áudio em tempo real ou API em gpt-4o-realtime-preview
tempo real.
Configurar
Crie uma nova pasta
realtime-audio-quickstart
para conter o aplicativo e abra o Visual Studio Code nessa pasta com o seguinte comando:mkdir realtime-audio-quickstart && code realtime-audio-quickstart
Crie o
package.json
com o seguinte comando:npm init -y
Atualize o
package.json
para ECMAScript com o seguinte comando:npm pkg set type=module
Instale a biblioteca de cliente de áudio em tempo real para JavaScript com:
npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
Para a autenticação sem chave recomendada com o Microsoft Entra ID, instale o
@azure/identity
pacote com:npm install @azure/identity
Recuperar informações do recurso
Você precisa recuperar as seguintes informações para autenticar seu aplicativo com seu recurso do Azure OpenAI:
Nome da variável | Value |
---|---|
AZURE_OPENAI_ENDPOINT |
Esse valor pode ser encontrado na seção Chaves e Ponto de Extremidade ao examinar seu recurso no portal do Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Este valor corresponderá ao nome personalizado que escolheu para a implementação quando implementou um modelo. Esse valor pode ser encontrado em Implantações de Modelo de Gerenciamento de>Recursos no portal do Azure. |
OPENAI_API_VERSION |
Saiba mais sobre as versões da API. |
Saiba mais sobre autenticação sem chave e configuração de variáveis de ambiente.
Atenção
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.
Texto na saída de áudio
Crie o
text-in-audio-out.ts
arquivo com o seguinte código:import { DefaultAzureCredential } from "@azure/identity"; import { LowLevelRTClient } from "rt-client"; import dotenv from "dotenv"; dotenv.config(); async function text_in_audio_out() { // Set environment variables or edit the corresponding values here. const endpoint: string = process.env["AZURE_OPENAI_ENDPOINT"] || "yourEndpoint"; const deployment = "gpt-4o-realtime-preview"; if (!endpoint || !deployment) { throw new Error("You didn't set the environment variables."); } const client = new LowLevelRTClient( new URL(endpoint), new DefaultAzureCredential(), {deployment: deployment} ); try { await client.send({ type: "response.create", response: { modalities: ["audio", "text"], instructions: "Please assist the user." } }); for await (const message of client.messages()) { switch (message.type) { case "response.done": { break; } case "error": { console.error(message.error); break; } case "response.audio_transcript.delta": { console.log(`Received text delta: ${message.delta}`); break; } case "response.audio.delta": { const buffer = Buffer.from(message.delta, "base64"); console.log(`Received ${buffer.length} bytes of audio data.`); break; } } if (message.type === "response.done" || message.type === "error") { break; } } } finally { client.close(); } } await text_in_audio_out();
Crie o
tsconfig.json
arquivo para transpilar o código TypeScript e copie 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.
tsc
Entre no Azure com o seguinte comando:
az login
Execute o código com o seguinte comando:
node text-in-audio-out.js
Aguarde alguns instantes para obter a resposta.
Saída
O script recebe uma resposta do modelo e imprime a transcrição e os dados de áudio recebidos.
A saída será semelhante à seguinte:
Received text delta: Hello
Received text delta: !
Received text delta: How
Received text delta: can
Received text delta: I
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta: help
Received 12000 bytes of audio data.
Received text delta: you
Received text delta: today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 24000 bytes of audio data.
Conteúdos relacionados
- Saiba mais sobre como usar a API em tempo real
- Veja a referência da API em tempo real
- Saiba mais sobre as cotas e limites do Azure OpenAI