🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
React

Como implementar voz e transcrição com o Vercel AI SDK v5: guia prático com TanStack

Domine a nova geração de interações conversacionais em apps React: aprenda como o novo Vercel AI SDK v5 transforma o uso de voz e texto-para-fala em aplicações via TanStack Start e OpenAI.

CrazyStack
15 min de leitura
Vercel AI SDKTranscrição de VozText-to-SpeechTanStack StartOpenAINext.js

Por que isso é importante

Através do Vercel AI SDK v5, uma nova era de experiências conversacionais guiadas por IA no frontend se torna extremamente acessível: comandos por voz, transcrição instantânea e respostas de voz em português agora podem ser integradas de ponta a ponta com alta produtividade, elevando a acessibilidade e a fluidez dos aplicativos modernos de interação com usuário.

O que mudou no Vercel AI SDK v5?

A versão 5 do Vercel AI SDK trouxe uma revolução em APIs e funções: além de ajustes estruturais, destaca-se a diferenciação clara entre mensagens de UI e o modelo da IA, novas funções experimentais para transcrição de voz e text-to-speech, além de ferramentas melhoradas para integração multi-modal. Os fluxos de mensagens ficaram mais flexíveis, e o controle de interações com ferramentas agora é refinado por condições do tipo “pare quando”.

ℹ️Atenção

APIs de transcrição de áudio do OpenAI e text-to-speech estão marcadas como experimentais — acompanhe mudanças antes do uso em ambiente de produção.

Preparando o ambiente e dependências

Antes de iniciar, é essencial preparar variáveis de ambiente com as chaves de API tanto da plataforma de modelo antroposófico (Claude, OpenAI ou afins) quanto do serviço OpenAI (para voz e transcrição). Utilize TanStack Start para scaffolding do projeto e instale bibliotecas auxiliares como react-media-recorder para gravação.

1
Passo 1: Crie sua aplicação com TanStack Start.
2
Passo 2: Defina as chaves API no ambiente (.env.local).
3
Passo 3: Adicione react-media-recorder via npm ou yarn.
4
Passo 4: Baixe o repositório base (link disponível no github).

⚠️Atenção

O funcionamento das rotas API depende do set correto das variáveis de ambiente: garanta o segredo corretamente inserido antes de rodar localmente.

Estrutura básica da integração conversacional

O backend recebe mensagens do usuário via endpoints API, converte o formato de UI para o modelo conforme o novo padrão v5 e diferencia mensagens da história de chat das enviadas ao modelo. A cada requisição, o sistema pode acessar bancos de dados e ferramentas, oferecer recomendações dinâmicas (exemplo: sugestões de guitarras) e devolver cartões dinâmicos para frontend já renderizado, demonstrando como múltiplas ferramentas podem colaborar em uma só interação.

Dica técnica

O novo parâmetro stopWhen do Vercel AI SDK permite condições customizadas de parada na invocação de ferramentas, tornando as sugestões e automações muito mais controladas.

Modelando ferramentas e respostas na API

As ferramentas customizadas (ex.: buscar dados de guitarra, recomendar item do catálogo) são registradas no backend, já refletindo no UI como cartões dinâmicos. No v5, schemas de input e output são centralizados para forte tipagem, e a transmissão de respostas ocorre via streaming, aproveitando totalmente o potencial do TanStack Start na interface reativa.

Hooks de chat e diferenciação de transporte

O hook useChat agora exige controle explícito sobre input e endpoints de transporte (API route, chamada direta, função async etc). O novo mecanismo de transportes permite alterar a origem das respostas da IA no front e backend, facilitando integrações com diferentes provedores.

⚠️Atenção

Ao migrar de versões antigas, ajuste código para refletir a remoção do auto-tracing de input. Gerencie o estado do campo do usuário via useState ou equivalente no React.

Como implementar transcrição de voz AI (Speech-to-Text)

Usando a nova API experimental de transcrição do Vercel AI SDK, é possível captar áudio do microfone, enviar ao backend via API e obter texto retornado pelo serviço OpenAI Whisper. O fluxo recomendado é: gravar áudio, transformar para wave/arraybuffer, enviar via FormData e consumir a resposta JSON transcrita.

1
1. Crie rota /api/transcribe para receber arquivo de áudio.
2
2. Utilize react-media-recorder para captar voz via microfone.
3
3. No frontend, serialize o áudio e envie para o endpoint ao finalizar a gravação.
4
4. No backend, consuma via método experimental transcribe passando o buffer e modelo openai/whisper-1.
5
5. Retorne o texto e atributos como linguagem e duração na resposta.

Hook customizado para transcrição de voz

O hook useTranscribe engloba a lógica de gravação e chamada ao serviço: inicializa gravação, para gravar, converte dados e dispara o fetch para a rota API. Recebendo texto transcrito, o hook envia o conteúdo diretamente para o campo de chat, tornando simples e ergonômico o uso do recurso para usuário final.

Text-to-Speech: dando voz à resposta da sua IA

Text-to-Speech (TTS) foi embarcado como função experimental no novo SDK. Usando o endpoint /api/tts, o frontend envia texto e recebe fluxo de áudio .mp3 que pode ser tocado direto em um elemento HTMLAudio. O modelo openai/tts-1 permite escolha de vozes e entrega resultados naturais.

1
1. Crie endpoint /api/tts recebendo string de texto via POST.
2
2. Encaminhe texto para função experimental speechSynthesize do SDK.
3
3. Retorne áudio como audio/mpeg e payload binário.
4
4. No hook customizado useTextToSpeech, consuma blob, crie elemento de áudio e execute play().

ℹ️Info extra

O modelo Alloy é recomendado para português, mas vale testar variações de voz para adequação à persona do seu aplicativo.

Integração final: multimídia no chat AI React

Com os hooks conectados, posicione botões “Falar com IA” (grava/speech-to-text) e “Ouvir resposta” (text-to-speech) na interface do chat. O input transcrito é concatenado ao texto existente, e um clique em “Ouvir” transforma respostas do assistente em áudio — ampliando acessibilidade, produtividade e diversão.

Atenção

Sempre trate sincronização de estado do chat: respostas por voz e texto devem ser mapeadas corretamente para evitar sobreposição entre mensagens e áudio.

Ferramentas, bibliotecas e links úteis

Vercel AI SDK (v5)

Kit principal para construir aplicações AI multimodais e conversacionais.

Saiba mais →

TanStack Start

Stack React completo para scaffolding e desenvolvimento de apps modernos.

Saiba mais →

OpenAI Whisper

Modelo de transcrição de áudio para texto de alta precisão.

Saiba mais →

OpenAI TTS

Modelo para conversão de texto em fala natural.

Saiba mais →

react-media-recorder

Hook React para captura de áudio e vídeo.

Saiba mais →

Confira as vantagens do novo fluxo voice-to-AI-to-voice

Fluxo multimídia AI com Vercel v5

Interação conversacional multimodal, áudio bidirecional em tempo real e UI enriquecida.

Prós
  • Acessibilidade total (fala e escuta)
  • Engajamento superior do usuário
  • API streaming rápida e sem hacks
  • Tipagem forte e integração reativa
Contras
  • Funções experimentais exigem cautela
  • Custo de chamadas para APIs de voz (OpenAI)

Chatbots tradicionais textuais

Interação apenas textual, resposta limitada em acessibilidade.

Prós
  • Fácil implementação
  • Menor custo operacional
Contras
  • Baixa acessibilidade para usuários com deficiência
  • Menor engajamento
  • Sem suporte a comandos por voz

Checklist de Implementação

Definiu variáveis de ambiente com as chaves necessárias
Preparou e testou os endpoints /api/transcribe e /api/tts
Implementou hooks customizados de voz/transcrição e TTS no frontend
Conectou botões de voz no chat React
Validou a conversão de áudio <-> texto
Testou a experiência global do usuário
Monitorou as funções experimentais antes do deploy definitivo

Transforme sua carreira

E foi EXATAMENTE por isso que eu criei um curso de Node.js e React chamado CrazyStack. A minha maior necessidade no início da carreira era alguém que me ensinasse um projeto prático onde eu pudesse não só desenvolver minhas habilidades de dev como também lançar algo pronto para entrar no ar no dia seguinte.

Sabe qual era minha maior frustração? Aplicar conhecimentos teóricos em projetos práticos e reais, mas não encontrar ninguém que me ensinasse COMO fazer isso na prática! Era exatamente a mesma frustração que você deve sentir: acumular informação sem saber como implementar na prática.

Assim como você precisa de estratégias claras e implementação prática para ter sucesso, todo desenvolvedor precisa de um projeto estruturado para sair do teórico e partir para a execução. É como ter todas as peças do quebra-cabeça mas não saber como montá-las - você pode ter conhecimento técnico, mas sem um projeto completo, fica difícil transformar esse conhecimento em resultados concretos.

No CrazyStack, você constrói um SaaS completo do zero - backend robusto em Node.js, frontend moderno em React, autenticação, pagamentos, deploy, tudo funcionando. É o projeto que eu queria ter quando comecei: algo que você termina e pode colocar no ar no mesmo dia, começar a validar com usuários reais e até monetizar.

Domine React e Node com o CrazyStack

Aprenda técnicas avançadas de React com nosso curso completo