Este tema describe los parámetros y los detalles de la interfaz de la API HTTP para el reconocimiento de voz no en tiempo real con Qwen-Audio-3.x-ASR-Flash-Filetrans y Qwen-Audio-ASR-Filetrans.
Para los requisitos de entrada, como formatos de audio compatibles, límites de tamaño de archivo y límites de duración, consulte Especificaciones de audio.
A diferencia de las llamadas síncronas de DashScope, que devuelven el resultado inmediatamente en una sola solicitud, las llamadas asíncronas están diseñadas para archivos de audio largos o tareas que consumen mucho tiempo. Este modo utiliza un flujo de dos pasos de envío y sondeo que evita los tiempos de espera de solicitud causados por largas esperas:
Envía una tarea de reconocimiento de voz. Esta interfaz responde de forma asíncrona, por lo que debe sondear el estado de la tarea con la Interfaz de consulta de tareas.
Consulta el estado de ejecución y el resultado de una tarea de reconocimiento de voz. Sondee esta interfaz hasta que la tarea alcance un estado terminal.
Para más detalles, consulte Gestión de tareas asíncronas: puede consultar en lote las tareas de reconocimiento de voz no en tiempo real enviadas en las últimas 24 horas y cancelar tareas en estado
El resultado del reconocimiento se guarda como un archivo JSON.
Los siguientes parámetros son dignos de mención:
Funcionamiento
A diferencia de las llamadas síncronas de DashScope, que devuelven el resultado inmediatamente en una sola solicitud, las llamadas asíncronas están diseñadas para archivos de audio largos o tareas que consumen mucho tiempo. Este modo utiliza un flujo de dos pasos de envío y sondeo que evita los tiempos de espera de solicitud causados por largas esperas:
-
Paso 1: Enviar la tarea.
- El cliente envía una solicitud de procesamiento asíncrono.
- Después de validar la solicitud, el servidor no ejecuta la tarea inmediatamente. En su lugar, devuelve un
task_idúnico para indicar que la tarea se creó correctamente.
-
Paso 2: Recuperar el resultado.
- El cliente utiliza el
task_iddevuelto para sondear repetidamente la interfaz de consulta. - Cuando la tarea finaliza, la interfaz de consulta devuelve el resultado final del reconocimiento.
- El cliente utiliza el
Endpoints de servicio
- Singapore
- China (Beijing)
Interfaz de envío de tareas:
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcriptionInterfaz de consulta de tareas: GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}Reemplace {WorkspaceId} con su ID de espacio de trabajo real.Encabezados de solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Authorization | string | Sí | Token de autenticación en el formato Bearer <your_api_key>. Reemplace "<your_api_key>" con su clave de API real. Requerido tanto para la interfaz de envío de tareas como para la interfaz de consulta de tareas. |
Content-Type | string | Sí | El tipo de medio del cuerpo de la solicitud. Requerido solo para la interfaz de envío de tareas. Valor fijo: application/json. |
X-DashScope-Async | string | Sí | El indicador de tarea asíncrona. Requerido solo para la interfaz de envío de tareas. Valor fijo: enable. No lo omita, de lo contrario no se podrá enviar la tarea. |
Interfaz de envío de tareas
Envía una tarea de reconocimiento de voz. Esta interfaz responde de forma asíncrona, por lo que debe sondear el estado de la tarea con la Interfaz de consulta de tareas.
Cuerpo de la solicitudmodelstring(Obligatorio)El nombre del modelo.inputobject(Obligatorio)El objeto de parámetros de entrada.
Propiedades file_urls array[string](Obligatorio)Una lista de URL de los archivos de audio o video a transcribir. Se admiten HTTP y HTTPS. Una sola solicitud admite únicamente una URL. Para los requisitos de entrada, como formatos de audio compatibles, límites de tamaño de archivo y límites de duración, consulte Especificaciones de audio.Si la grabación se almacena en Alibaba Cloud OSS, la API RESTful admite URLs temporales con el prefijo oss://, mientras que el SDK no admite URLs temporales con el prefijo oss://.contextarray(object)(Opcional)Una lista de mensajes que proporcionan contexto de conversación opcional para mejorar la precisión del reconocimiento.
Propiedades role string(Obligatorio)El rol del mensaje. Valores válidos:
array(object)(Obligatorio)La lista de elementos de contenido del mensaje.
Propiedades type string(Obligatorio)El tipo de contenido. Valores válidos:
string(Condicionalmente obligatorio)Cuando type es input_text, ingrese los resultados de reconocimiento del habla del usuario de turnos anteriores o una lista de palabras específica del dominio. Cuando type es text, ingrese las respuestas del modelo de lenguaje grande de turnos anteriores. El texto se cuenta por carácter, y cada carácter cuenta como 1. La longitud combinada de los campos text en todos los mensajes de un turno de contexto no debe exceder los 400 caracteres. Cualquier exceso se trunca desde el final.object(Obligatorio)Incluya siempre parameters. Si no necesita configurar opciones, pase un objeto vacío {}. Si omite este campo, la tarea de transcripción enviada falla.
Propiedades keep_dialect boolean (Opcional)Compatible solo con qwen-audio-3.1-asr-flash-filetrans. Especifica si se deben conservar las expresiones dialectales. Valor predeterminado: false. Establezca en false para transcribir el habla dialectal como texto en mandarín estándar, o en true para conservar las expresiones dialectales.vocabulary_id string(Opcional)El ID de una lista de palabras clave precompilada.Genere este ID con antelación llamando a la API de creación de lista de palabras clave. Pase el ID durante el reconocimiento para usar las palabras clave de la lista.Adecuado para escenarios donde el vocabulario es conocido y relativamente estable, y donde necesita reutilizar la misma lista de palabras en distintas solicitudes.Para obtener detalles sobre el uso, consulte Palabras clave precompiladas.vocabulary object(Opcional)Palabras clave instantáneas.Se pasan como pares clave-valor, donde la clave es el texto de la palabra clave (string) y el valor es el peso de la palabra clave (integer). No es necesario crear una lista de palabras clave con antelación. El peso oscila entre [1, 5] o se establece en 50: un valor en [1, 5] hace que el modelo tenga más probabilidades de generar la palabra a medida que aumenta el valor; un valor de 50 designa una súper palabra clave, lo que mejora enormemente la recuperación, pero el número de súper palabras clave no puede exceder 50.Adecuado para la optimización temporal de palabras clave a nivel de sesión.Cuando las palabras clave instantáneas y precompiladas se configuran juntas, el sistema fusiona ambos conjuntos. Si el conjunto fusionado contiene más de 2000 palabras clave, el sistema selecciona aleatoriamente 2000 para usar. Para detalles de uso, consulte Palabras clave instantáneas.channel_id array[integer](Opcional)El índice de las pistas de audio a reconocer en un archivo de audio multipista. El índice comienza en 0. Por ejemplo, [0] reconoce la primera pista, y [0, 1] reconoce la primera y la segunda pista simultáneamente. Si omite este parámetro, solo se procesa la primera pista.Valor predeterminado: [0].special_word_filter string(Opcional)Las palabras sensibles a procesar durante el reconocimiento de voz. Puede establecer un método de manejo diferente para cada palabra sensible. Para más detalles, consulte Filtrado de palabras sensibles.diarization_enabled boolean(Opcional)Si se debe habilitar la diarización de hablantes. Deshabilitado de forma predeterminada.Se aplica solo a audio monoaural. El audio multicanal no admite la diarización de hablantes.Cuando está habilitado, el resultado del reconocimiento incluye un campo speaker_id que distingue a los diferentes hablantes.Cuando la diarización de hablantes está habilitada, mantenga la duración del audio dentro de 2 horas. De lo contrario, el reconocimiento puede fallar o agotar el tiempo de espera. speaker_id, consulte Descripción del resultado de reconocimiento.Valor predeterminado: false.speaker_count integer(Opcional)Un valor de referencia para el número de hablantes. El rango válido es un entero de 2 a 100 (inclusive).De forma predeterminada, el número de hablantes se detecta automáticamente. Si configura este valor, solo guía al algoritmo para generar el recuento especificado cuando sea posible y no garantiza ese recuento exacto.Sin valor predeterminado.language_hints array[string](Opcional)Los códigos de idioma a reconocer. Si no puede determinar el idioma con antelación, déjelo sin configurar y el modelo detectará el idioma automáticamente.Puede especificar hasta 4 valores. Si especifica más, solo se aplican los primeros 4.
Haga clic para ver los códigos de idioma admitidos
|
El siguiente ejemplo utiliza la región Singapore. Reemplace "{WorkspaceId}" con su ID de espacio de trabajo real. La configuración varía según la región. La región Singapore y la región de Beijing utilizan diferentes claves de API. |
Cuerpo de respuestarequest_idstringEl identificador único de esta llamada.outputobjectLos datos devueltos por la interfaz de envío de tareas.
Propiedades task_id stringEl ID de la tarea. Pase este ID como la cadena en la Interfaz de consulta de tareas.task_statusstringEl estado de la tarea. Devuelve PENDING tras un envío exitoso. |
Interfaz de consulta de tareas
Consulta el estado de ejecución y el resultado de una tarea de reconocimiento de voz. Sondee esta interfaz hasta que la tarea alcance un estado terminal.
Cuerpo de la solicitudtask_idstring(Obligatorio)Para consultar una tarea, especifique su ID. Este ID es el task_id devuelto cuando se llama a la Interfaz de envío de tareas. | El siguiente ejemplo utiliza la región de Singapur. Reemplace "{WorkspaceId}" con su ID de espacio de trabajo real. La configuración varía según la región. La región de Singapur y la región de Beijing utilizan diferentes claves de API. |
Cuerpo de respuestarequest_idstringEl identificador único de esta llamada.outputobjectLos datos devueltos por la interfaz de consulta de tareas.
Propiedades task_id stringEl ID de la tarea consultada.task_statusstringEl estado de la tarea consultada.Cuando una tarea contiene múltiples subtareas, el estado general de la tarea se marca como SUCCEEDED siempre que cualquier subtarea tenga éxito. Compruebe el campo subtask_status para determinar el resultado de una subtarea específica.stringLa hora en que se envió la tarea.scheduled_timestringLa hora en que se programó la ejecución de la tarea.end_timestringLa hora en que finalizó la tarea.resultsarray[object]La lista de resultados de subtareas, uno por cada archivo de audio a reconocer.
Propiedades subtask_status stringEl estado de la subtarea.file_urlstringLa URL del archivo procesado por la tarea de transcripción de archivos.transcription_urlstringEl enlace al resultado del reconocimiento. Este enlace es válido por 24 horas. Una vez que caduca, no puede consultar la tarea ni descargar el resultado a través de la URL devuelta por una consulta anterior.El resultado del reconocimiento se guarda como un archivo JSON. Puede descargar el archivo a través del enlace anterior o leer su contenido directamente con una solicitud HTTP. Para conocer el significado de cada campo en los datos JSON, consulte Descripción del resultado de reconocimiento.codestringEl código de error de la subtarea fallida.messagestringEl mensaje de error de la subtarea fallida.objectEstadísticas generales de ejecución de la tarea.
Propiedades TOTAL integerEl número total de subtareas.SUCCEEDEDintegerEl número de subtareas exitosas.FAILEDintegerEl número de subtareas fallidas. |
Otras interfaces: consulta por lotes del estado de tareas / cancelar una tarea
Para más detalles, consulte Gestión de tareas asíncronas: puede consultar en lote las tareas de reconocimiento de voz no en tiempo real enviadas en las últimas 24 horas y cancelar tareas en estado PENDING (en cola).
Descripción del resultado de reconocimiento
El resultado del reconocimiento se guarda como un archivo JSON.
| Parámetro | Tipo | Descripción |
audio_format | string | El formato de audio del archivo fuente. |
channels | array[integer] | El índice de pista del audio en el archivo fuente. Para audio de una sola pista, se devuelve [0]; para audio de doble pista, se devuelve [0, 1]; y así sucesivamente. |
original_sampling_rate | integer | La frecuencia de muestreo (Hz) del audio en el archivo fuente. |
original_duration_in_milliseconds | integer | La duración original del audio (ms) en el archivo fuente. |
channel_id | integer | El índice de pista del resultado de la transcripción, comenzando desde 0. |
content_duration | integer | La duración (ms) del contenido en la pista que se identifica como voz. La descripción de facturación siguiente se aplica a qwen-audio-3.0-asr-flash-filetrans. qwen-audio-3.1-asr-flash-filetrans se factura según el uso de tokens. |
transcript | string | El resultado de la transcripción a nivel de párrafo. |
sentences | array | El resultado de la transcripción a nivel de oración. |
words | array | El resultado de la transcripción a nivel de palabra. |
begin_time | integer | La marca de tiempo de inicio (ms). |
end_time | integer | La marca de tiempo de finalización (ms). |
text | string | El resultado de la transcripción. |
speaker_id | integer | El índice del hablante actual, comenzando desde 0, utilizado para distinguir entre diferentes hablantes.Este campo aparece en el resultado del reconocimiento solo cuando la diarización de hablantes está habilitada. |
punctuation | string | La puntuación predicha después de la palabra, si la hay. |