
Transcrição ajustada para mensagens de voz e entrada de voz por um soquete, retornando cada enunciado como uma transcrição completa quando o falante pausa.
Transcrição ajustada para mensagens de voz e entrada de voz por um soquete, retornando cada enunciado como uma transcrição completa quando o falante pausa.
Transmita áudio pcm16 a 16 kHz pelo soquete. Cada enunciado é retornado inteiro quando o falante pausa, ou também enquanto é falado com partial_results. Defina a linguagem e a pausa que encerra uma enunciação em session.update.
Também conhecido como Qwen Audio ASR Message, Alibaba Cloud Qwen Audio 3.1 ASR Message
qwen-audio-3-1-asr-message/v1/realtimeqwen-audio-3.1-asr-messagealibaba/qwen-audio-3-1-asr-messageTarifas pay-as-you-go ao vivo do catálogo EmpirioLabs. Você paga só pelo que usa, sem mínimo mensal.
Qwen Audio 3.1 ASR Message transcreve um fluxo de áudio ao vivo por um WebSocket em wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message, e não pelos endpoints HTTP. Conecte-se com o id de modelo qwen-audio-3-1-asr-message 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-1-asr-message",
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.1 ASR Message 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... |
| 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. |
| partial_results | boolean | false | - | Também envia cada enunciado enquanto é dito, como conversation.item.input_audio_transcription.delta eventos que carregam o enunciado até então, que ainda pode mudar... |
Transcrição de mensagens de voz por WebSocket no wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-asr-message, autenticado com o cabeçalho comum do Portador de Autorização.
Transmita áudio mono pcm16 a 16 kHz com input_audio_buffer.append. A detecção de atividade de voz decide onde cada enunciado 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), 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á sendo transmitido encerra a frase em andamento e se aplica ao áudio enviado depois dele.
Cada enunciado chega inteiro, como um evento conversation.item.input_audio_transcription.completed quando o falante pausa. Configure partial_results para também recebê-lo enquanto é falado, pois conversation.item.input_audio_transcription.delta eventos que ainda podem mudar antes de se estabelecer. Para legendas ao vivo, qwen-audio-3-1-asr-stream sempre as envia.
Os tokens de entrada e saída são precificados por 1M, e cada enunciado completo é faturado sozinho a partir do uso que o modelo reporta.
Na EmpirioLabs, Qwen Audio 3.1 ASR Message é cobrado por uso: Entrada $1.86 por 1M de tokens de entrada de áudio; Saída $1.40 por 1M de tokens gerados. A tabela de tarifas ao vivo desta página sempre corresponde ao que a API cobra.
Qwen Audio 3.1 ASR Message é 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.1 ASR Message 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-1-asr-message 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.