Utilice el SDK de Java de DashScope para llamar a Qwen-ASR-Realtime.
Requisitos previos
- DashScope SDK 2.22.5 o posterior (Instalar el SDK)
- Obtener una clave API
- Comprenda el flujo de interacción entre el cliente y el servidor
Modos de interacción
Qwen-ASR-Realtime admite dos modos para decidir cuándo procesar el audio:
Modo |
| Cómo funciona |
|---|---|---|
Modo VAD (predeterminado) |
| El servidor detecta los límites del habla mediante la detección de actividad de voz (VAD) y decide cuándo confirmar el búfer de audio para su reconocimiento. |
Modo manual |
| El cliente controla cuándo confirmar el audio llamando a |
Ejemplo completo
your_audio_file.pcm (PCM16, 16 kHz, mono). Si solo tiene un MP3, WAV o un formato similar, conviértalo con ffmpeg:Parámetros de solicitud
Parámetros de conexión (OmniRealtimeParam)
Establezca estos parámetros con los métodos encadenados de la clase OmniRealtimeParam.
Haga clic para ver código de ejemplo
Haga clic para ver código de ejemplo
Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Sí | El modelo a utilizar. Ejemplo: |
|
| Sí | El endpoint del servicio. China (Beijing): |
|
| No | La clave API. |
Configuración de la sesión (OmniRealtimeConfig)
Establezca estos parámetros con los métodos encadenados de la clase OmniRealtimeConfig.
Haga clic para ver código de ejemplo
Haga clic para ver código de ejemplo
Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Sí | Modalidad de salida. Fija en |
|
| No | Habilita la VAD del lado del servidor. Cuando está deshabilitada, llame a |
|
| No | Tipo de VAD. Fijo en |
|
| No | Umbral de sensibilidad de VAD. Valor recomendado: Valor predeterminado: Los valores más bajos aumentan la sensibilidad (puede activarse con ruido de fondo). Los valores más altos reducen la sensibilidad y ayudan a evitar activaciones false en entornos ruidosos. |
|
| No | Duración del silencio en milisegundos que marca el final de una expresión. Valor recomendado: Valor predeterminado: Las duraciones más cortas (por ejemplo, 300 ms) aceleran las respuestas pero pueden dividir las pausas naturales. Las duraciones más largas (por ejemplo, 1200 ms) manejan mejor las pausas pero aumentan la latencia. |
|
| No | Configuración de reconocimiento de voz. Consulte Parámetros de transcripción. |
Parámetros de transcripción (OmniRealtimeTranscriptionParam)
Establezca estos parámetros con los métodos setter de la clase OmniRealtimeTranscriptionParam.
Haga clic para ver código de ejemplo
Haga clic para ver código de ejemplo
Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| No | Idioma de la fuente de audio. Para ver los idiomas admitidos, consulte Idiomas admitidos. |
|
| No | Tasa de muestreo de audio en Hz. Valores válidos: Predeterminado: Establecer |
|
| No | Formato de codificación de audio. Valores válidos: |
|
| No | Texto de contexto para el sesgo contextual. Proporcione texto de fondo, vocabularios de entidades o material de referencia para mejorar la precisión del reconocimiento. Máximo: 10,000 tokens. |
Interfaces clave
OmniRealtimeConversation
Importación: com.alibaba.dashscope.audio.omni.OmniRealtimeConversation
Esta clase gestiona el ciclo de vida de WebSocket: conexión al servidor, envío de audio y finalización de la sesión.
Crear una conversación
Conectar al servidor
NoApiKeyException, InterruptedException.
Configurar la sesión
Enviar datos de audio
- Modo VAD (
enableTurnDetection=true): El servidor detecta los límites del habla y decide cuándo procesar el búfer. - Modo manual (
enableTurnDetection=false): El audio se acumula en el búfer hasta que llama acommit()para activar el reconocimiento. Cada evento puede contener hasta 15 MiB de datos de audio.
Confirmar el búfer de audio
Este método solo está disponible en modo manual (enableTurnDetection=false). Se produce un error si el búfer de audio está vacío.
Finalizar la sesión
- Modo VAD: Después de terminar de enviar audio.
- Modo manual: Después de llamar a
commit().
Cerrar la conexión
Obtener IDs de sesión y respuesta
getSessionId()devuelve el ID de sesión de la tarea actual.getResponseId()devuelve el ID de respuesta de la respuesta más reciente del servidor.
OmniRealtimeCallback
Importación: com.alibaba.dashscope.audio.omni.OmniRealtimeCallback
Herede esta clase e implemente los métodos de devolución de llamada para gestionar los eventos del servidor.
Método | Parámetros | Se activa cuando |
|---|---|---|
| None | La conexión WebSocket está establecida. |
|
| Se recibe un evento del servidor. Analice el campo |
|
| La conexión WebSocket está cerrada. |