Pular para o conteúdo
Skillpedia
Conectores (MCP)48 mil · #2290

azure-ai-voicelive-ts

Ajuda seu agente a ter conversas por voz em tempo real. Permite comunicação bidirecional para interações mais naturais.

O que ela faz

Este código permite criar aplicações que entendem e respondem por voz em tempo real. Ele conecta sua aplicação a serviços de voz da Azure para processar áudio e texto.

Quando usar

  • ✓Criar um chatbot que fala com os usuários.
  • ✓Desenvolver um assistente de voz para um aplicativo.
  • ✓Integrar reconhecimento de voz em tempo real em um sistema.

Exemplo do que pedir para a IA

“Quero criar um assistente que responde perguntas sobre o tempo usando minha voz.”

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-voicelive-ts/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-voicelive-ts/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O código estabelece uma conexão de áudio bidirecional com os serviços da Azure. Ele envia o áudio que você fala e recebe áudio ou texto como resposta, permitindo conversas fluidas.

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-ts

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-voicelive-ts/SKILL.md -o SKILL.md
Conteú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 (JavaScript/TypeScript)

SDK de IA de voz em tempo real para criar assistentes de voz bidirecionais com Azure AI em ambientes Node.js e de navegador.

Instalação

npm install @azure/ai-voicelive @azure/identity
# TypeScript users
npm install @types/node

Versão Atual: 1.0.0-beta.3

Ambientes Suportados:

  • Versões LTS do Node.js (20+)
  • Navegadores modernos (Chrome, Firefox, Safari, Edge)

Variáveis de Ambiente

AZURE_VOICELIVE_ENDPOINT=https://<resource>.cognitiveservices.azure.com
# Optional: API key if not using Entra ID
AZURE_VOICELIVE_API_KEY=<your-api-key>
# Optional: Logging
AZURE_LOG_LEVEL=info

Autenticação

Microsoft Entra ID (Recomendado)

import { DefaultAzureCredential } from "@azure/identity";
import { VoiceLiveClient } from "@azure/ai-voicelive";

const credential = new DefaultAzureCredential();
const endpoint = "https://your-resource.cognitiveservices.azure.com";

const client = new VoiceLiveClient(endpoint, credential);

Chave de API

import { AzureKeyCredential } from "@azure/core-auth";
import { VoiceLiveClient } from "@azure/ai-voicelive";

const endpoint = "https://your-resource.cognitiveservices.azure.com";
const credential = new AzureKeyCredential("your-api-key");

const client = new VoiceLiveClient(endpoint, credential);

Hierarquia de Clientes

VoiceLiveClient
└── VoiceLiveSession (WebSocket connection)
    ├── updateSession()      → Configure session options
    ├── subscribe()          → Event handlers (Azure SDK pattern)
    ├── sendAudio()          → Stream audio input
    ├── addConversationItem() → Add messages/function outputs
    └── sendEvent()          → Send raw protocol events

Início Rápido

import { DefaultAzureCredential } from "@azure/identity";
import { VoiceLiveClient } from "@azure/ai-voicelive";

const credential = new DefaultAzureCredential();
const endpoint = process.env.AZURE_VOICELIVE_ENDPOINT!;

// Create client and start session
const client = new VoiceLiveClient(endpoint, credential);
const session = await client.startSession("gpt-4o-mini-realtime-preview");

// Configure session
await session.updateSession({
  modalities: ["text", "audio"],
  instructions: "You are a helpful AI assistant. Respond naturally.",
  voice: {
    type: "azure-standard",
    name: "en-US-AvaNeural",
  },
  turnDetection: {
    type: "server_vad",
    threshold: 0.5,
    prefixPaddingMs: 300,
    silenceDurationMs: 500,
  },
  inputAudioFormat: "pcm16",
  outputAudioFormat: "pcm16",
});

// Subscribe to events
const subscription = session.subscribe({
  onResponseAudioDelta: async (event, context) => {
    // Handle streaming audio output
    const audioData = event.delta;
    playAudioChunk(audioData);
  },
  onResponseTextDelta: async (event, context) => {
    // Handle streaming text
    process.stdout.write(event.delta);
  },
  onInputAudioTranscriptionCompleted: async (event, context) => {
    console.log("User said:", event.transcript);
  },
});

// Send audio from microphone
function sendAudioChunk(audioBuffer: ArrayBuffer) {
  session.sendAudio(audioBuffer);
}

Configuração de Sessão

await session.updateSession({
  // Modalities
  modalities: ["audio", "text"],
  
  // System instructions
  instructions: "You are a customer service representative.",
  
  // Voice selection
  voice: {
    type: "azure-standard",  // or "azure-custom", "openai"
    name: "en-US-AvaNeural",
  },
  
  // Turn detection (VAD)
  turnDetection: {
    type: "server_vad",      // or "azure_semantic_vad"
    threshold: 0.5,
    prefixPaddingMs: 300,
    silenceDurationMs: 500,
  },
  
  // Audio formats
  inputAudioFormat: "pcm16",
  outputAudioFormat: "pcm16",
  
  // Tools (function calling)
  tools: [
    {
      type: "function",
      name: "get_weather",
      description: "Get current weather",
      parameters: {
        type: "object",
        properties: {
          location: { type: "string" }
        },
        required: ["location"]
      }
    }
  ],
  toolChoice: "auto",
});

Tratamento de Eventos (Padrão do SDK do Azure)

O SDK usa um padrão de tratamento de eventos baseado em assinatura:

const subscription = session.subscribe({
  // Ciclo de vida da conexão
  onConnected: async (args, context) => {
    console.log("Conectado:", args.connectionId);
  },
  onDisconnected: async (args, context) => {
    console.log("Desconectado:", args.code, args.reason);
  },

…
Perguntas frequentes

Preciso saber programar muito para usar isso?

É recomendado ter um conhecimento básico de programação em JavaScript ou TypeScript, pois este é um kit de desenvolvimento de software (SDK).

O que é 'bidirecional'?

Significa que a comunicação funciona nos dois sentidos: você envia áudio para a IA e a IA envia áudio ou texto de volta para você.

Posso escolher a voz da IA?

Sim, o código permite configurar a voz da IA, incluindo o idioma e o tipo de voz (padrão ou personalizada).

Detalhes

Descrição original do autor

Azure AI Voice Live SDK for JavaScript/TypeScript. Build real-time voice AI applications with bidirectional WebSocket communication.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2290
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas