Qwen-Omni-Realtime Conexión mediante AOQ
Ámbito de aplicación
Este documento está dirigido a Qwen-Omni-Realtime. La documentación de integración existente abarca qwen3.8-omni-flash-realtime, qwen3.5-omni-plus-realtime y qwen3.5-omni-flash-realtime. El modelo del ejemplo es qwen3.8-omni-flash-realtime.
- 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 o video con una cámara, solicite los permisos necesarios según 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.
- El SDK de AOQ gestiona la captura, procesamiento, transmisión, recepción y reproducción de medios. Su aplicación debe enviar y recibir mensajes de datos conforme a las definiciones de eventos del modelo objetivo.
-
Una conexión exitosa indica que se estableció el canal de transmisió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
qwen3.8-omni-flash-realtimede esta página, envíesession.updatey esperesession.updatedantes de iniciar 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 direcciones 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 |
|---|---|---|
| envía audio | publica la pista Audio, establece el codificador de audio y configura la captura integrada o externa | conversación de voz |
| recibe audio | se suscribe a la pista Audio, establece el decodificador de audio y configura el reproductor o la reproducción externa | respuesta de voz |
| envía video | publica la pista Video y configura la cámara o la entrada de video externa y los parámetros de codificación | envía video a modelos que admiten entrada visual |
| recibe video | este modelo no admite salida de video | no configure la suscripción de video |
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 integración, consulte Qwen-Omni-Realtime.
| Modelo o aplicación | Enviar audio | Recibir audio | Enviar video | Recibir video |
|---|---|---|---|---|
| Qwen-Omni-Realtime | active cuando se necesite entrada de voz | active cuando se necesite una respuesta de voz | active cuando se necesite entrada visual | 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, startAudioPlayer o startVideoCapture según sea necesario. Para entradas y salidas personalizadas, consulte Funciones avanzadas a continuación.
El cliente envía las pistas de publishTracks y recibe las de subscribeTracks:
| Scenario | publishTracks | subscribeTracks |
|---|---|---|
| conversación de voz | Audio, Data | Audio, Data |
| conversación de voz con entrada visual | Audio, Video, 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:
.video solo cuando se requiera entrada de video.
Transmita audio y video en sus pistas de medios, y eventos del modelo y texto en pistas de datos. Por ejemplo, Omni sobre AOQ no requiere input_audio_buffer.append ni input_image_buffer.append para volver a enviar los mismos medios. Gestione el audio descendente con el reproductor configurado o con 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-Omni-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 y video se transmiten mediante las pistas de medios. Al consultar la documentación de eventos del modelo, la encapsulación de medios y los modos de interacción disponibles siguen los métodos de conexión descritos aquí y no adoptan directamente el método de transmisión de medios de WebSocket.
Funciones avanzadas
| Capacidad | Caso de uso | Documentación |
|---|---|---|
| Controlar la transmisión de audio y video por separado | Esperar a que el modelo esté listo, pausar los medios en enlace ascendente o habilitar el video según sea necesario | Gestión de la transmisión de medios |
| Dispositivos de audio y procesamiento | Codificación, decodificación, altavoces, mezcla de archivos y devoluciones de llamada de tramas de audio | Funciones comunes de audio |
| Entrada de audio externa | Utilizar una fuente de audio proporcionada por la aplicación | Captura de audio personalizada |
| Salida de audio externa | Procesar o reproducir audio de salida en su aplicación | Reproducción de audio personalizada |
| Captura y entrada de video | Utilizar una cámara o imágenes proporcionadas por la aplicación | Funciones de video comunes, Entrada de video personalizada |
Ejemplo de configuración de sesión
qwen3.8-omni-flash-realtime. El audio y el video se transmiten mediante las pistas de medios; no se usan los eventos de envío 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 |