Qwen-ASR-Realtime recibe flujos de audio y transcribe el habla en tiempo real a través de WebSocket. El servicio admite dos modos de interacción: modo VAD y modo manual.
Guía del usuario: Para obtener descripciones generales de modelos y orientación sobre selección, consulte Voz a texto. Para ver código de ejemplo, consulte Reconocimiento de voz en tiempo real.
Límites de velocidad: Las llamadas al modelo están sujetas a límites de velocidad. Cuando se supera un límite, el servidor devuelve el error Requests rate limit exceeded, please try again later. Reduzca su tasa de solicitudes o concurrencia y vuelva a intentarlo. Para conocer los límites de velocidad de cada modelo, consulte Limitación de velocidad.
Endpoint de servicio
Utilice la siguiente URL de WebSocket. El parámetro de consulta model especifica el modelo. Reemplace <model_name> con el nombre del modelo:
Singapore
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
China (Beijing)
wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
ImportanteAlibaba Cloud Model Studio ha lanzado dominios específicos del espacio de trabajo para las regiones China (Pekín) y Singapore. Los nuevos dominios dedicados ofrecen un rendimiento superior y una mayor estabilidad para las solicitudes de inferencia. Recomendamos migrar a los nuevos dominios:
- China (Pekín): de
dashscope.aliyuncs.coma{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapur: de
dashscope-intl.aliyuncs.coma{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
Reemplace {WorkspaceId} con su ID de espacio de trabajo real. Los dominios existentes permanecen totalmente funcionales.
ImportanteUtilice el esquema wss://. Establezca la autorización en los encabezados de la solicitud (consulte Encabezados de solicitud). Especifique el modelo mediante el parámetro de consulta model.
Encabezados de solicitud
Incluya los siguientes campos en los encabezados de la solicitud:
Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Authorization | string | Sí | Token de autenticación en el formato |
user-agent | string | No | Identificador de cliente que ayuda al servidor a rastrear el origen de las solicitudes. |
X-DashScope-WorkSpace | string | No | El ID de espacio de trabajo de Alibaba Cloud Model Studio. |
X-DashScope-DataInspection | string | No | Indica si se debe habilitar la inspección de datos. Omita este encabezado a menos que se requiera la inspección de datos; si es así, establezca el valor en |
ImportanteLa autorización se verifica durante el protocolo de enlace de WebSocket. Si la clave de API no es válida o falta, el protocolo de enlace falla con un error HTTP 401 o 403.
Flujos de interacción
Para obtener detalles sobre los eventos de cliente y servidor, consulte Eventos de cliente para Qwen-ASR-Realtime y Eventos de servidor.
Qwen-ASR-Realtime admite dos modos de interacción:
- Modo VAD (predeterminado): El servidor utiliza la detección de actividad de voz (VAD) para detectar automáticamente el inicio y el final de cada expresión. Utilice este modo para conversaciones en tiempo real, transcripción de reuniones y escenarios similares.
- Modo manual: El cliente controla los límites de las expresiones. Utilice este modo cuando el cliente pueda determinar explícitamente dichos límites, como al enviar un mensaje de voz en una aplicación de mensajería.
Modo VAD (predeterminado)
El servidor detecta automáticamente el inicio y el final de cada expresión. Envíe el flujo de audio de forma continua; el servidor devuelve la transcripción final de cada expresión una vez que detecta el final. Utilice este modo para conversaciones en tiempo real, transcripción de reuniones y escenarios similares.
Para habilitar: Configure el parámetro session.turn_detection en el evento session.update del cliente.
-
El cliente envía eventos input_audio_buffer.append para agregar audio al búfer.
-
El servidor devuelve un evento input_audio_buffer.speech_started cuando se detecta voz.
Nota: Si el cliente envía session.finish para finalizar la sesión antes de que llegue este evento, el servidor devuelve inmediatamente un evento session.finished. A continuación, el cliente debe cerrar la conexión.
-
El cliente continúa enviando eventos input_audio_buffer.append para enviar audio.
-
Después de enviar todo el audio, el cliente envía un evento session.finish para finalizar la sesión.
AdvertenciaEn modo VAD, el cliente debe enviar un evento
session.finishantes de cerrar la conexión. Si el cliente cierra la conexión WebSocket sin enviar primerosession.finish, el servidor descarta el elemento actual en curso y no se entregarán eventos comoconversation.item.input_audio_transcription.completed. Envíe{"type":"session.finish"}antes de llamar aws.Close()y espere al eventosession.finishedantes de cerrar la conexión. -
El servidor devuelve un evento input_audio_buffer.speech_stopped cuando detecta el final del habla.
-
El servidor devuelve un evento input_audio_buffer.committed.
-
El servidor devuelve un evento conversation.item.created.
-
El servidor devuelve un evento conversation.item.input_audio_transcription.text que contiene resultados de transcripción parciales.
-
El servidor devuelve un evento conversation.item.input_audio_transcription.completed que contiene el resultado final de la transcripción.
-
El servidor devuelve un evento session.finished para indicar que el reconocimiento ha finalizado. A continuación, el cliente debe cerrar la conexión.
Modo manual
El cliente controla los límites de las expresiones. Después de enviar el audio correspondiente a una expresión completa, el cliente envía un evento input_audio_buffer.commit para notificar al servidor. Utilice este modo cuando el cliente pueda determinar explícitamente dichos límites, como al enviar un mensaje de voz en una aplicación de mensajería.
Para habilitar: Establezca session.turn_detection en null en el evento session.update del cliente.
- El cliente envía eventos input_audio_buffer.append para agregar audio al búfer.
- El cliente envía un evento input_audio_buffer.commit para confirmar el búfer de audio de entrada. La confirmación crea un nuevo elemento de mensaje de usuario en la conversación.
- El cliente envía un evento session.finish para finalizar la sesión.
- El servidor devuelve un evento input_audio_buffer.committed.
- El servidor devuelve un evento conversation.item.input_audio_transcription.text que contiene resultados de transcripción parciales.
- El servidor devuelve un evento conversation.item.input_audio_transcription.completed que contiene el resultado final de la transcripción.
- El servidor devuelve un evento session.finished para indicar que el reconocimiento ha finalizado. A continuación, el cliente debe cerrar la conexión.