azure-ai-voicelive-java
Permite que seu agente converse por voz em tempo real. É bom para criar assistentes de voz interativos.
O que ela faz
Este código permite que seu programa de computador converse em tempo real com assistentes de inteligência artificial usando sua voz. Ele usa uma conexão especial (WebSocket) para enviar e receber áudio rapidamente.
Quando usar
- ✓Criar um chatbot que responde por voz.
- ✓Desenvolver um assistente virtual que entende e fala.
- ✓Integrar conversas por voz em um aplicativo.
Exemplo do que pedir para a IA
“Quero que meu programa converse por voz com a IA.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você adiciona este código ao seu programa Java. Ele configura uma conexão para enviar seu áudio e receber a resposta da IA, como se fosse uma ligação telefônica.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-ai-voicelive-javaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-voicelive-java/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Azure AI VoiceLive SDK para Java
Conversas de voz em tempo real e bidirecionais com assistentes de IA usando tecnologia WebSocket.
Instalação
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-voicelive</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
Variáveis de Ambiente
AZURE_VOICELIVE_ENDPOINT=https://<resource>.openai.azure.com/
AZURE_VOICELIVE_API_KEY=<your-api-key>
Autenticação
Chave de API
import com.azure.ai.voicelive.VoiceLiveAsyncClient;
import com.azure.ai.voicelive.VoiceLiveClientBuilder;
import com.azure.core.credential.AzureKeyCredential;
VoiceLiveAsyncClient client = new VoiceLiveClientBuilder()
.endpoint(System.getenv("AZURE_VOICELIVE_ENDPOINT"))
.credential(new AzureKeyCredential(System.getenv("AZURE_VOICELIVE_API_KEY")))
.buildAsyncClient();
DefaultAzureCredential (Recomendado)
import com.azure.identity.DefaultAzureCredentialBuilder;
VoiceLiveAsyncClient client = new VoiceLiveClientBuilder()
.endpoint(System.getenv("AZURE_VOICELIVE_ENDPOINT"))
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Conceitos Chave
| Conceito | Descrição |
|---|---|
VoiceLiveAsyncClient |
Ponto de entrada principal para sessões de voz |
VoiceLiveSessionAsyncClient |
Conexão WebSocket ativa para streaming |
VoiceLiveSessionOptions |
Configuração para o comportamento da sessão |
Requisitos de Áudio
- Taxa de Amostragem: 24kHz (24000 Hz)
- Profundidade de Bits: PCM de 16 bits
- Canais: Mono (1 canal)
- Formato: PCM assinado, little-endian
Fluxo de Trabalho Principal
1. Iniciar Sessão
import reactor.core.publisher.Mono;
client.startSession("gpt-4o-realtime-preview")
.flatMap(session -> {
System.out.println("Session started");
// Subscribe to events
session.receiveEvents()
.subscribe(
event -> System.out.println("Event: " + event.getType()),
error -> System.err.println("Error: " + error.getMessage())
);
return Mono.just(session);
})
.block();
2. Configurar Opções da Sessão
import com.azure.ai.voicelive.models.*;
import java.util.Arrays;
ServerVadTurnDetection turnDetection = new ServerVadTurnDetection()
.setThreshold(0.5) // Sensitivity (0.0-1.0)
.setPrefixPaddingMs(300) // Audio before speech
.setSilenceDurationMs(500) // Silence to end turn
.setInterruptResponse(true) // Allow interruptions
.setAutoTruncate(true)
.setCreateResponse(true);
AudioInputTranscriptionOptions transcription = new AudioInputTranscriptionOptions(
AudioInputTranscriptionOptionsModel.WHISPER_1);
VoiceLiveSessionOptions options = new VoiceLiveSessionOptions()
.setInstructions("You are a helpful AI voice assistant.")
.setVoice(BinaryData.fromObject(new OpenAIVoice(OpenAIVoiceName.ALLOY)))
.setModalities(Arrays.asList(InteractionModality.TEXT, InteractionModality.AUDIO))
.setInputAudioFormat(InputAudioFormat.PCM16)
.setOutputAudioFormat(OutputAudioFormat.PCM16)
.setInputAudioSamplingRate(24000)
.setInputAudioNoiseReduction(new AudioNoiseReduction(AudioNoiseReductionType.NEAR_FIELD))
.setInputAudioEchoCancellation(new AudioEchoCancellation())
.setInputAudioTranscription(transcription)
.setTurnDetection(turnDetection);
// Send configuration
ClientEventSessionUpdate updateEvent = new ClientEventSessionUpdate(options);
session.sendEvent(updateEvent).subscribe();
3. Enviar Entrada de Áudio
byte[] audioData = readAudioChunk(); // Your PCM16 audio data
session.sendInputAudio(BinaryData.fromBytes(audioData)).subscribe();
4. Lidar com Eventos
session.receiveEvents().subscribe(event -> {
ServerEventType eventType = event.getType();
if (ServerEventType.SESSION_CREATED.equals(eventType)) {
System.out.println("Sessão criada");
} else if (ServerEventType.INPUT_AUDIO_BUFFER_SPEECH_STARTED.equals(eventType)) {
System.out.println("Usuário começou a falar");
} else if (ServerEventType.INPUT_AUDIO_BUFFER_SPEECH_STOPPED.equals(eventType)) {
System.out.println("Usuário parou de falar");
} else if (ServerEventType.RESPONSE_AUDIO_DELTA.equals(eventType)) {
if (event instanceof SessionUpdateResponseAudioDelta) {
…
Perguntas frequentes
O que é WebSocket?
É uma tecnologia que permite uma comunicação contínua e bidirecional entre seu programa e o servidor da IA, como uma conversa em tempo real.
Preciso saber programar em Java?
Sim, este código é escrito em Java e requer conhecimento básico de programação nessa linguagem.
Como a IA sabe o que dizer?
Você pode configurar a IA com instruções e escolher a voz que ela usará para responder.
Detalhes
Descrição original do autor
Azure AI VoiceLive SDK for Java. Real-time bidirectional voice conversations with AI assistants using WebSocket.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2288
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
speech
Ajuda seu agente a transformar texto em áudio falado. É útil para criar narrações, áudios de aulas ou locuções rápidas.
nexu-io/open-design
Docker Hub Automation
Faz seu agente automatizar operações no Docker Hub. Gerencia repositórios, equipes e webhooks para seus contêineres.
ComposioHQ/awesome-claude-skills
New Relic Automation
Ajuda seu agente a automatizar tarefas no New Relic. Ele pode gerenciar alertas, monitorar aplicações e configurar notificações.
ComposioHQ/awesome-claude-skills