Qwen-Audio-Realtime Conexión mediante AOQ
Ámbito de aplicación
Este documento está dirigido a Qwen-Audio-Realtime. Las instrucciones de integración existentes abarcan qwen-audio-3.1-realtime-plus, qwen-audio-3.1-realtime-flash, qwen-audio-3.0-realtime-plus y qwen-audio-3.0-realtime-flash. El modelo del ejemplo es qwen-audio-3.1-realtime-plus.
- Use la API Key y el ID del espacio de trabajo correspondientes a la región y al espacio de trabajo seleccionados.
-
Dominio de Pekín:
{WorkspaceId}.cn-beijing.maas.aliyuncs.com; dominio de Singapur:{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com. - Almacene la API Key únicamente en el servidor. No la incluya en una aplicación móvil ni en una aplicación de navegador.
- Al capturar audio con un micrófono, solicite los permisos de micrófono de acuerdo con los requisitos de la plataforma.
- Descargue el SDK de su plataforma desde Descargas del SDK.
Autenticación y credenciales de conexión
{WorkspaceId} en el dominio por el ID de su espacio de trabajo. Para otra región, use el dominio correspondiente indicado arriba. clientIp es opcional. Si se omite, el gateway usa la dirección IP desde la que recibe la solicitud.
-d '{}' en el cuerpo de la solicitud por -d '{"clientIp":"<CLIENT_PUBLIC_IP>"}'.
Campos de la solicitud
Configuración | Valor | Descripción |
|---|---|---|
endpoint | Seleccionar el dominio del endpoint para su caso de uso | Especifique el dominio del endpoint. Para obtener más información, consulte Seleccionar una región, un ámbito de implementación y un endpoint. Si usa Token Plan, establezca |
Content-Type |
| Tipo de medio del mensaje |
Authorization |
| Su API Key |
x-dashscope-rtc-transport |
| Seleccionar el protocolo AOQ |
clientIp | Dirección IP pública del cliente | Opcional. Si se omite, el servicio usa la dirección IP desde la que el gateway recibe la solicitud. Si se especifica, usa clientIp. El servicio selecciona el mejor endpoint de Relay según la dirección IP del cliente. |
Ejemplo de respuesta
Campos de la respuesta
Field | Description |
|---|---|
sid | Identificador único de la sesión. |
aoqTokenForClient | Token de conexión del cliente. Pase este valor al campo token del SDK. |
clientRelayEndpoints | Arreglo de endpoints de Relay. Cada elemento del ejemplo de respuesta contiene los siguientes campos:
Propiedades endpointDirección del endpoint de Relay.portPuerto del endpoint de Relay.route_indexEl ejemplo de iOS que se muestra a continuación usa el índice del arreglo cuando este campo está ausente. |
clientRelayCertFingerprint | Huella del certificado TLS de Relay. |
sidExpiresInSecs | Tiempo de vencimiento de la sesión, en segundos. |
extraInfo | Información adicional.
Propiedades workspaceIdHashHash del ID del espacio de trabajo. |
Ejemplo de conexión del SDK de cliente AOQ
clientIp es un campo opcional del cuerpo de la solicitud. Si no se especifica, se usa como IP del cliente la dirección IP que envía la solicitud al gateway de Model Studio. Si se especifica, el valor de clientIp tiene prioridad. Haga que su AppServer de negocio obtenga la dirección IP real del cliente y la transmita para obtener el mejor punto de acceso de Relay.Flujo de trabajo

- Obtenga las credenciales de conexión mediante AppServer.
- Cree el motor del SDK y registre las funciones de callback.
- Configure las pistas de medios y Data, y desactive la transmisión ascendente de medios.
- Establezca la conexión de AOQ y espere a que se conecte.
- Configure el modelo de acuerdo con su protocolo. Tras recibir la confirmación, active los medios ascendentes necesarios.
- Desconéctese y libere los recursos cuando termine la interacción.
- Los datos de medios de audio los administra AOQ SDK, que se encarga de su captura, procesamiento, envío, recepción y reproducción; el invocador debe transmitir y recibir Data de acuerdo con las definiciones de eventos del modelo de destino.
-
Una conexión exitosa indica que se ha establecido el canal de comunicación con el modelo. El cliente debe activar los medios ascendentes necesarios solo después de que termine la inicialización del modelo. Para el modelo de ejemplo
qwen-audio-3.1-realtime-plusque se presenta aquí, envíesession.update, esperesession.updatedy después inicie la transmisión de medios.
1. Obtener credenciales de conexión
El cliente solicita las credenciales a su AppServer. AppServer llama al endpoint de conexión Realtime de este modelo e incluye la API Key y x-dashscope-rtc-transport: moq en la solicitud al gateway. Para consultar el endpoint completo, la solicitud y las descripciones de los campos, consulte Autenticación mediante token.
Asigne la respuesta a AoqConnectConfig:
| Respuesta de la puerta de enlace | Configuración del SDK |
|---|---|
aoqTokenForClient | token |
sid | sid |
clientRelayCertFingerprint | certFingerprint |
clientRelayEndpoints | relayEndpoints, convierta cada punto de acceso de acuerdo con la estructura |
extraInfo contiene workspaceIdHash | workspaceIdHash |
2. Inicializar el SDK y registrar devoluciones de llamada
Cree el motor y registre las funciones de callback para el estado de la conexión, los mensajes Data y los errores. El siguiente ejemplo usa Swift en iOS:
AoqEngineDelegate; mantenga el estado de la conexión en onConnectionStatusChange; analice los eventos del modelo de destino en onDataMsg; y maneje los errores del SDK en onError. Los eventos de error que devuelve el modelo también deben manejarse por separado dentro de la lógica de procesamiento de mensajes Data. Para consultar la interfaz del SDK y las descripciones de errores, consulte SDK por plataforma y Referencia de funciones.
3. Configurar el SDK
Seleccionar la dirección de medios
Las direcciones se definen con respecto al cliente. Configure únicamente las modalidades de entrada y salida que necesita su aplicación. No agregue pistas para direcciones que no se utilicen.
| Dirección | Configuración | Uso típico |
|---|---|---|
| enviar audio | publique la pista Audio, establezca el codificador de audio y configure la captura integrada o externa | conversación de voz |
| recibir audio | suscríbase a la pista Audio, establezca el decodificador de audio y configure el reproductor o la reproducción externa | respuesta de voz |
Direcciones de medios para este modelo
La siguiente tabla enumera las direcciones de medios para este modelo. Consulte el Ámbito de aplicación para conocer el alcance del modelo; para otros métodos de conexión, consulte Qwen-Audio-Realtime.
| Modelo o aplicación | Enviar audio | Recibir audio | Enviar video | Recibir video |
|---|---|---|---|---|
| Qwen-Audio-Realtime | Active para conversaciones de voz | Active cuando se necesite una respuesta de voz | No se puede activar | No se puede activar |
Configurar parámetros de medios y pistas
Configure por separado el audio ascendente y descendente: use setAudioEncoderConfig para el audio ascendente y setAudioDecoderConfig para el audio descendente. Estos parámetros controlan la transmisión de red; el gateway convierte el audio al formato que requiere el modelo. Configure la codificación de transporte y el formato de audio de los eventos del modelo según los requisitos del SDK y del modelo de destino, respectivamente.
Inicie startAudioCapture o startAudioPlayer según la dirección. La entrada y la salida personalizadas se describen en la sección de funciones avanzadas que aparece más adelante.
El cliente envía las pistas de publishTracks y recibe las de subscribeTracks:
| Scenario | publishTracks | subscribeTracks |
|---|---|---|
| conversación de voz | Audio, Data | Audio, Data |
4. Establecer la conexión
Introduzca las credenciales y la configuración de pistas en AoqConnectConfig y después llame a:
onConnectionStatusChange devuelva .connected y después continúe con el proceso de inicialización del modelo. El retorno de la llamada a connect no significa que la conexión se haya establecido correctamente.
5. Intercambiar eventos del modelo y medios
Enviar y analizar eventos del modelo
El cliente envía eventos mediante la pista Data. El siguiente fragmento usa Swift en iOS; para consultar otras interfaces, consulte Referencia del SDK de iOS:
onDataMsg. Este modelo identifica los tipos de eventos mediante el campo type. Los campos completos, los parámetros y las condiciones de finalización deben ajustarse a la documentación del modelo de destino.
Habilitar medios después de que el modelo esté listo
Cuando el modelo, la sesión o la tarea actuales cumplan sus condiciones de disponibilidad, active únicamente las direcciones ascendentes configuradas. Para la entrada de voz, llame a:
input_audio_buffer.append para volver a enviar el audio. El audio descendente se procesa mediante el reproductor configurado o la lógica de reproducción externa.
6. Finalizar la interacción y liberar recursos
Cuando la conexión ya no sea necesaria, llame desde su aplicación a las interfaces de desconexión y liberación de recursos de AOQ SDK:
Enviar y recibir eventos mediante el canal Data
El cliente envía y recibe eventos del modelo mediante la pista Data de AOQ SDK. Durante la conexión, es necesario publicar la pista Data y suscribirse a ella; al enviar, serialice el evento del modelo en AoqDataMsg y llame a la interfaz de envío de Data de la plataforma; al recibir, analice el mensaje en la función de callback onDataMsg. Consulte SDK por plataforma para obtener detalles de las interfaces.
Los nombres, campos, parámetros y tiempos de envío de los eventos se ajustan a las definiciones de eventos del cliente del modelo de destino; el método de análisis, los cambios de estado, los resultados y el manejo de errores después de recibir mensajes se ajustan a las definiciones de eventos del servidor del modelo. Los eventos de inicialización se envían según los requisitos del modelo, y los eventos posteriores de texto y control se envían según las necesidades del negocio.
| Modelo o aplicación | Eventos del cliente (envío) | Eventos del servidor (recepción) |
|---|---|---|
| Qwen-Audio-Realtime | Eventos del cliente | Eventos del servidor |
-
Use el campo
typede los eventos para identificar los eventos del modelo y maneje los identificadores asociados según la referencia de eventos de este modelo. - Las operaciones que requiere el modelo, como la confirmación de inicialización, el envío de la entrada, la cancelación de respuestas y la finalización de tareas, se manejan en el canal Data de acuerdo con el protocolo correspondiente; constituyen la semántica de interacción del modelo y son independientes de la desconexión del transporte.
- Antes de terminar, complete el envío de la entrada y la recepción de resultados según la documentación de eventos de este modelo; si se requiere la reproducción completa, libere la conexión solo después de procesar todo el audio en la cola local.
- Los datos de audio se transmiten por las pistas de medios. Al usar la referencia de eventos del modelo, siga esta página para la encapsulación de medios y los modos de interacción disponibles. No aplique directamente el método de WebSocket para enviar medios.
Funciones avanzadas
| Capacidad | Caso de uso | Documentación |
|---|---|---|
| Controlar la transmisión de audio | esperar a que el modelo esté listo y pausar el audio ascendente | Administración de la transmisión de flujos de medios |
| Dispositivos y procesamiento de audio | codificación/decodificación, altavoces, mezcla de archivos y funciones de callback de fotogramas de audio | Funciones comunes de audio |
| entrada de audio externa | usar una fuente de audio del lado del cliente | captura de audio personalizada |
| salida de audio externa | se procesa o reproduce del lado del cliente | reproducción de audio personalizada |
Ejemplo de configuración de sesión
qwen-audio-3.1-realtime-plus. El audio se transmite mediante la pista de medios; no use los eventos de transmisión de medios de WebSocket.Descarga del SDK AOQ
Las notas de versión que aparecen a continuación describen las funciones generales de AOQ SDK; el ámbito de medios admitidos por este modelo se detalla arriba en Direcciones de medios para este modelo.
| Versión | Plataforma | Descarga | Fecha de lanzamiento | Notas de la versión |
|---|---|---|---|---|
| v1.4.0 | Android | AoqClientSdk-release.aarlibPluginOpus.zip | 2026-10-27 |
|
| iOS | AoqClientSdk.framework.zipAoqScreenShare.framework.zipPluginOpus.framework.zip | |||
| HarmonyOS | AoqClientSdk.harlibPluginOpus.zip | |||
| Windows | AoqClientSdk-windows-x64.zip | |||
| macOS | AoqClientSdk.framework.zipPluginOpus.framework.zip | |||
| Electron | aoq-electron-sdk-1.4.0-59463182.tgzTambién puede instalarlo mediante npm:npm install aoq-electron-sdk@1.4.0-59463182 | |||
| Linux | x86_64: AoqClientSdk.ziparm64: AoqClientSdk.zip | |||
| v1.3.0 | Android | 2026-09-18 |
| |
| iOS | ||||
| HarmonyOS | ||||
| Windows | AoqClientSdk-windows-x64.zip | |||
| macOS | ||||
| Electron | O instálelo con npm: npm install aoq-electron-sdk@1.3.0-58586345 | |||
| Linux | x86_64: AoqClientSdk.zip arm64: AoqClientSdk.zip | |||
| v1.2.2 | iOS | AoqClientSdk.framework.zip | 2026-09-09 |
|
| v1.2.0 | Android | 2026-08-17 |
| |
| iOS | ||||
| HarmonyOS | ||||
| Windows | ||||
| macOS | ||||
| Electron | Paquete: aoq-electron-sdk-1.2.0-57407598.tgz Alternativamente, instálelo usando npm: npm install aoq-electron-sdk@1.2.0-57407598 | |||
| Linux | x86_64: AoqClientSdk.zip arm64: AoqClientSdk.zip | |||
| v1.1.0 | Android | 2026-07-31 |
| |
| iOS | ||||
| HarmonyOS | ||||
| Linux | AoqClientSdk.zip | |||
| v1.0.1 | Android | 2026-07-09 |
| |
| iOS | ||||
| HarmonyOS |