
Transcrição ao vivo por um soquete, transmitindo palavras parciais enquanto o falante e uma frase fixa a cada pausa, com preço por hora de áudio.
Transcrição ao vivo por um soquete, transmitindo palavras parciais enquanto o falante e uma frase fixa a cada pausa, com preço por hora de áudio.
Transmita áudio pcm16 em 16 kHz pelo soquete. Resultados parciais chegam enquanto o falante está falando. Defina a linguagem, um prompt e a pausa que encerra uma frase em session.update.
Também conhecido como Qwen Audio ASR Stream, Alibaba Cloud Qwen Audio 3.0 ASR Stream
qwen-audio-3-0-asr-stream/v1/realtimeqwen-audio-3.0-asr-streamalibaba/qwen-audio-3-0-asr-streamTarifas pay-as-you-go ao vivo do catálogo EmpirioLabs. Você paga só pelo que usa, sem mínimo mensal.
Qwen Audio 3.0 ASR Stream transcreve um fluxo de áudio ao vivo por um WebSocket em wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-asr-stream, e não pelos endpoints HTTP. Conecte-se com o id de modelo qwen-audio-3-0-asr-stream e envie sua chave de API da EmpirioLabs como cabeçalho Authorization: Bearer no handshake. Acrescente áudio PCM de 16 bits em base64 e leia os eventos de transcrição enquanto a pessoa ainda fala. Um navegador não consegue definir cabeçalhos em um WebSocket, então abra esta conexão a partir do seu servidor e repasse o áudio ao navegador pelo seu próprio socket. Obtenha uma chave de API no painel EmpirioLabs.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-asr-stream",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
import base64
# 16-bit PCM microphone audio, base64 encoded, in small chunks.
for chunk in read_microphone_chunks():
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(chunk).decode(),
}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
async for raw in ws:
event = json.loads(raw)
if event["type"].endswith("input_audio_transcription.delta"):
# "text" is settled transcript; "stash" is still in progress.
if event.get("text"):
print(event["text"], end="", flush=True)
asyncio.run(main())Parâmetros de requisição suportados pela API Qwen Audio 3.0 ASR Stream na EmpirioLabs. Os padrões valem quando um campo é omitido.
| Parâmetro | Tipo | Padrão | Intervalo / valores | Descrição |
|---|---|---|---|---|
| input_audio_format | enum | pcm16 | pcm16 | Codificação do áudio que você adiciona ao buffer de entrada: PCM base64 de 16 bits, mono, a 16 kHz. |
| language | enum | auto | auto, zh, en, ja, ko, vi, th, id, ms, tl, hi, ar, fr, de, es,... | Idioma da fala, ou auto-detectá-lo pelo áudio. Defina com o parâmetro de consulta de linguagem da URL da conexão, ou como input_audio_transcription.language no... |
| prompt | string | - | - | Texto que orienta o reconhecimento, até 400 caracteres: os nomes e termos que o falante usa, ou o texto falado logo antes deste áudio. Escreva as palavras exatamente... |
| silence_duration_ms | integer | 800 | 200 a 6000 | A pausa, em milissegundos, que encerra uma frase, de 200 a 6000. Uma pausa mais curta resolve cada frase antes; uma pausa maior mantém uma pausa dentro de uma frase.... |
| threshold | number | - | 0 a 1 | Quão clara deve ser a fala antes de ser transcrita, de 0,0 a 1,0. Um valor maior ignora mais ruído de fundo e pode perder a fala baixa. Quando omitida, o padrão do... |
| noise_reduction | enum | far_field | far_field, near_field | O microfone para o qual a detecção de fala é ajustada: near_field para um headset ou telefone segurado perto, far_field para um laptop ou microfone de sala. Também... |
| keep_dialect | boolean | false | - | Mantém as palavras do dialeto chinês como faladas. Quando desligado, a fala dialetal é escrita como mandarim padrão. |
Transcrição ao vivo via WebSocket no wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-0-asr-stream, autenticada com o cabeçalho comum Authorization Bearer.
Transmita áudio mono pcm16 a 16 kHz com input_audio_buffer.append. A detecção de atividade de voz decide onde cada frase termina, então não há commit para enviar.
Envie session.update logo após session.created, antes do primeiro áudio, com qualquer uma destas configurações: input_audio_transcription.language (ou o parâmetro de consulta language da URL da conexão; auto por padrão), input_audio_transcription.prompt com os nomes e termos que o falante usa (até 400 caracteres), turn_detection.silence_duration_ms (200 a 6000, padrão 800) e turn_detection.threshold (0.0 a 1.0), e input_audio_noise_reduction (near_field ou far_field). keep_dialect mantém as palavras do dialeto chinês como faladas. Uma configuração alterada enquanto o áudio está em streaming encerra a frase em andamento e se aplica ao áudio enviado depois dela.
conversation.item.input_audio_transcription.delta eventos levam a frase tão longe enquanto o falante ainda está falando, e conversation.item.input_audio_transcription.completed carrega a frase estabelecida a cada pausa.
Cobrado por segundo do áudio que você transmite, silêncio incluído, na taxa horária mostrada. A sessão é cobrada quando termina.
Na EmpirioLabs, Qwen Audio 3.0 ASR Stream é cobrado por uso: Transcrição $0.648 por hora de áudio. A tabela de tarifas ao vivo desta página sempre corresponde ao que a API cobra.
Qwen Audio 3.0 ASR Stream é servido por WEBSOCKET /v1/realtime em api.empiriolabs.ai com autenticação padrão por token Bearer.
Abra o playground da EmpirioLabs e clique em Start session para testar no navegador. Qwen Audio 3.0 ASR Stream funciona sobre um WebSocket em vez de requisição e resposta, então para integrar comece pelo guia rápido de voz em tempo real. Conecte-se do seu servidor com sua chave de API da EmpirioLabs e o id de modelo qwen-audio-3-0-asr-stream e transmita áudio nos dois sentidos.
Crie uma conta EmpirioLabs e gere uma chave em API Keys no painel. A cobrança usa créditos pay-as-you-go, então você paga apenas pelas requisições que faz.
Confira nossos preços ou entre em contato se quiser que seu próprio modelo seja implementado em nossa pilha.