Esta guía le muestra cómo utilizar el SDK de Android para el reconocimiento de voz en tiempo real de Qwen-Audio-3.1-ASR-Flash-Message con el fin de convertir voz a texto.
Inicio rápido
-
Descargue el SDK y ejecute el código de ejemplo:
- Descargue el paquete más reciente del SDK.
- Extraiga el paquete ZIP. El SDK en formato AAR se encuentra en el directorio
app/libs. Agréguelo a las dependencias de su proyecto. Para la integración con Android C++, utiliceandroid_libsyandroid_includedel paquete ZIP para obtener las bibliotecas dinámicas y los archivos de encabezado. - Abra el proyecto en Android Studio. El código de muestra se encuentra en
DashFunAsrSpeechTranscriberActivity.java. Reemplace la clave API para probar la función.
Procedimiento de llamada
- Inicialice el SDK.
- Configure los parámetros para su caso de uso. Utilice el argumento
parametersdel método initialize para establecer los Parámetros de conexión y control, y utilice el método setParams para establecer los Parámetros de reconocimiento de voz. - Llame a startDialog para iniciar el reconocimiento.
- En la devolución de llamada onNuiAudioStateChanged, inicie el dispositivo de grabación según el estado del audio.
- Proporcione continuamente datos de grabación en la devolución de llamada onNuiNeedAudioData, o envíe activamente datos de grabación llamando a updateAudio.
- En la devolución de llamada onNuiEventCallback, escuche los eventos y obtenga los resultados del reconocimiento de voz.
- Llame a stopDialog para detener el reconocimiento y escuche el evento EVENT_TRANSCRIBER_COMPLETE para confirmar que el reconocimiento ha finalizado.
- Cuando ya no necesite el reconocimiento, llame a release para liberar los recursos del SDK.
Parámetros de solicitud
Parámetros de conexión y control
Para configurar estos parámetros, pase una cadena JSON en el argumento parameters del método initialize.
Ejemplo: El siguiente es un ejemplo de cadena JSON. No se enumeran todos los parámetros. Agregue otros según sea necesario cuando escriba su código:
{
"url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Sí | Dirección del servicio:
Reemplace |
|
| Sí | La clave API. |
|
| Sí | El modo de ejecución. Fijo en |
|
| Sí | Una cadena única que identifica al usuario final. Puede configurarla como un ID de usuario dentro de la aplicación o un identificador de dispositivo único generado por el cliente. Este ID se utiliza principalmente para el rastreo de registros y la resolución de problemas. |
|
| No | Indica si se habilita el envío activo de datos de audio. Valor predeterminado: Si se establece en |
|
| No | La ruta donde se almacenan los archivos de recursos en el dispositivo. Este parámetro es obligatorio cuando |
|
| No | La ruta de almacenamiento para los archivos de registro. Este parámetro solo surte efecto cuando Se mantienen un máximo de dos archivos de registro localmente. |
|
| No | Indica si se debe guardar el archivo de audio de depuración. El archivo de audio se guarda en Valor predeterminado: "false". Valores válidos:
Este parámetro solo surte efecto cuando |
|
| No | El tamaño máximo de un archivo de registro, en bytes. Este parámetro solo surte efecto cuando Predeterminado: 104857600 (100 * 1024 * 1024 bytes, es decir, 100 MiB). |
|
| No | El nivel de filtro para el contenido del registro enviado a través del callback de registro ( Predeterminado: 2. Valores válidos:
Nota: |
|
| No | Si se debe reanudar la transmisión después de que la red se reconecte. Predeterminado: |
|
| No | El objeto de configuración avanzada para la cancelación de eco acústico (AEC) en el dispositivo. Este objeto solo surte efecto cuando |
|
| No | Si se debe habilitar el AEC en el dispositivo. Si |
|
| No | Si se debe guardar el audio procesado por el módulo AEC en el dispositivo. Si |
|
| No | Si se deben devolver los datos procesados por AEC a su aplicación. Predeterminado: false. Si está habilitado, reciba los datos del evento |
|
| No | El objeto de configuración avanzada para la detección de actividad de voz (VAD) en el dispositivo. Este objeto solo surte efecto cuando |
|
| No | Si se debe habilitar el VAD en el dispositivo. Si |
|
| No | Indica si se debe guardar el audio procesado por el módulo VAD en el dispositivo. Si |
Parámetros de reconocimiento de voz
Para configurar estos parámetros, pase una cadena JSON en el argumento params del método setParams.
Ejemplo: El siguiente es un ejemplo de cadena JSON. No se enumeran todos los parámetros. Agregue otros según sea necesario cuando escriba su código:
{
"service_type": 4,
"nls_config": {
"model": "qwen-audio-3.1-asr-flash-message",
"sr_format": "pcm",
"sample_rate": "16000"
}
}
Parámetros
| Parámetro de nivel superior | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Sí | El tipo de servicio de voz. Fijo en |
|
| Sí | El objeto de configuración principal para el reconocimiento de voz. Contiene parámetros clave como la selección del modelo y los controles de calidad del reconocimiento. |
|
| Sí | El nombre del modelo. Establézcalo en |
|
| Sí | El formato de audio. Valores válidos:
ImportantePara audio Opus, pase audio PCM al SDK. El SDK lo codifica como Opus internamente. |
|
| Sí | La frecuencia de muestreo, en Hz. Solo se admite |
|
| No | El idioma del audio a reconocer. No hay valor predeterminado; si no se establece, el modelo detecta el idioma automáticamente. Puede configurar hasta 4 valores. Si configura más, solo los primeros 4 surten efecto. Haga clic para ver los códigos de idioma admitidos
Este parámetro solo se aplica a los resultados finales ( |
|
| No | Especifica si se conservan las expresiones dialectales. Valor predeterminado: NotaEste parámetro solo se aplica a los resultados finales ( |
|
| No | El modelo VAD. Valor predeterminado:
|
|
| No | El umbral de silencio VAD para la segmentación, en ms. Cuando el silencio después de un segmento de voz supera este umbral, el sistema determina que la oración ha terminado. Valor predeterminado: 800. Valores válidos: [200, 6000]. |
|
| No | Si se deben habilitar los paquetes de latido. Valor predeterminado: false.
El audio silencioso se refiere al contenido en un archivo de audio o flujo de datos que no contiene señal de sonido. Puede generar audio silencioso de varias maneras, como utilizando software de edición de audio como Audacity o Adobe Audition, o utilizando una herramienta de línea de comandos como FFmpeg. |
|
| No | Indica si se deben filtrar las muletillas y pulir la salida. El valor predeterminado es |
|
| No | Indica si se deben devolver resultados de transmisión intermedios. El valor predeterminado es |
|
| No | 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. |
|
| No | Palabras clave instantáneas. Se pasan como pares clave-valor, donde la clave es el texto de la palabra clave ( Adecuado para la optimización temporal de palabras clave a nivel de sesión. Cuando se configuran conjuntamente palabras clave instantáneas y precompiladas, el sistema fusiona ambos conjuntos. Si el conjunto fusionado contiene más de 2000 palabras clave, el sistema selecciona aleatoriamente 2000 para su uso. Para obtener información sobre el uso, los modelos compatibles y los límites, consulte Palabras clave instantáneas. |
|
| No | El umbral para distinguir el habla del ruido, utilizado para ajustar la sensibilidad de la Detección de Actividad de Voz (VAD). Valores válidos: [-1.0, 1.0]. Descripciones de valores:
Este es un parámetro de configuración avanzada. Ajustarlo puede afectar significativamente los resultados del reconocimiento. Recomendaciones:
|
|
| No | Si se deben detectar rápidamente las interrupciones de la red y reportarlas lo antes posible. Predeterminado: false. |
Interfaces clave
NativeNui
initialize
Inicializa una instancia del SDK de reconocimiento de voz. El SDK es un singleton. No lo inicialice más de una vez antes de llamar a release.
Este método es bloqueante, así que llámelo en un hilo que no sea de UI.
Firma del métodopublic synchronized int initialize(final INativeNuiCallback callback,
String parameters,
final Constants.LogLevel level,
final boolean save_log)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| La implementación de la interfaz de callback de eventos y datos. | |
|
| Una cadena JSON que contiene los parámetros de autenticación, conexión y depuración. Consulte Parámetros de conexión y control. |
|
| Controla el nivel de impresión de los propios registros del SDK. |
|
| Indica si se deben guardar los registros locales. Si se establece en |
Un código de error.
setParams
Establece los Parámetros de reconocimiento de voz en formato JSON. Llame a este método antes de startDialog.
Firma del métodopublic synchronized int setParams(String params)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
|
Un código de error.
startDialog
Inicia el reconocimiento.
Firma del métodopublic synchronized int startDialog(VadMode vad_mode, String dialog_params)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| El modo VAD. Fijado en |
|
| Si el parámetro Para mejorar la precisión del reconocimiento mediante el contexto, actualice el contexto aquí. El contenido está en formato JSON: |
Un código de error.
stopDialog
Finaliza el reconocimiento. Después de llamar a este método, el servidor devuelve el resultado final del reconocimiento y termina la tarea.
Firma del métodopublic synchronized int stopDialog();
Valor de retorno
Un código de error.
cancelDialog
Finaliza el reconocimiento inmediatamente. Después de llamar a este método, la tarea termina de inmediato sin esperar a que el servidor devuelva el resultado final del reconocimiento.
Firma del métodopublic synchronized int cancelDialog();
Valor de retorno
Un código de error.
updateAction
Envía un comando de acción durante una interacción para actualizar el comportamiento en tiempo de ejecución, como el contexto de reconocimiento.
Firma del métodopublic synchronized int updateAction(String params);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Una cadena JSON utilizada para actualizar el comportamiento en tiempo de ejecución, como el contexto de reconocimiento. |
|
| Establezca en |
|
| El comando en tiempo de ejecución. Valores válidos:
|
|
| Cuando |
{
"context": [
{
"role": "user",
"content": [
{
"text": "xxx",
"type": "input_text"
}
]
}
]
}
Valor de retorno
Un código de error.
updateAudio
Cuando audio_update_manually se establece en "true", llame a este método para enviar activamente datos de grabación en lugar de proporcionar los datos a través de onNuiNeedAudioData.
public synchronized int updateAudio(byte[] data, int len,
boolean first_pack);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Los datos de audio a enviar. |
|
| El número de bytes de datos de audio a enviar. |
|
| Ignore este parámetro. |
Un código de error.
updateRefAudio
Cuando audio_update_manually se establece en "true" y el AEC en el dispositivo está habilitado, llame a este método para enviar el audio reproducido por el reproductor como señal de referencia.
public synchronized int updateRefAudio(byte[] data, int len,
boolean first_pack);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Los datos de audio a enviar. |
|
| El número de bytes de datos de audio a enviar. |
|
| Ignore este parámetro. |
Un código de error.
release
Libera todos los recursos internos del SDK. Después de llamar a este método, la instancia del SDK deja de estar disponible. Para volver a utilizarla, debe reinicializarla llamando a initialize.
Firma del métodopublic synchronized int release();
Valor de retorno
Un código de error.
GetVersion
Obtiene la información de la versión actual del SDK.
Firma del métodopublic synchronized String GetVersion();
Valor de retorno
La información de la versión actual del SDK.
INativeNuiCallback: callbacks de escucha
onNuiEventCallback: escucha de eventos y resultados del reconocimiento de voz
Firma del métodovoid onNuiEventCallback(NuiEvent event, final int resultCode, final int arg2, KwsResult kwsResult, AsrResult asrResult);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| El evento de callback. | |
|
| El código de error. Válido cuando ocurre el evento EVENT_ASR_ERROR. |
|
| Un parámetro reservado. |
|
| El resultado del reconocimiento de voz. |
|
| La función de activación por voz. No necesita utilizar este parámetro. |
onNuiAudioStateChanged: escucha del estado de audio
El SDK utiliza esta devolución de llamada para notificarle cuándo iniciar o detener la grabación.
Firma del métodovoid onNuiAudioStateChanged(AudioState state);
Estados AudioState
| Estado | Descripción |
|---|---|
| La interacción ha comenzado. Puede abrir el dispositivo de grabación e iniciar la grabación. |
| La interacción se ha detenido. Puede detener la grabación. |
| La instancia del SDK ha sido liberada. Puede cerrar completamente el dispositivo de grabación. |
onNuiNeedAudioData: suministro de los datos de audio a reconocer
Después de que comienza el reconocimiento, esta devolución de llamada se activa continuamente. Proporcione los datos de audio a reconocer en esta devolución de llamada.
Firma del métodoint onNuiNeedAudioData(byte[] buffer, int len);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Los datos de audio a rellenar. |
|
| El número de bytes de datos de audio a rellenar. |
El número de bytes realmente rellenados.
onNuiAssistEventCallback: recepción de eventos y datos auxiliares
Este callback recibe eventos auxiliares y datos relacionados del SDK.
Firma del métodovoid onNuiAssistEventCallback_(int event, byte[] info, int info_len,
byte[] data);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Un evento NuiEvent. |
|
| Ignore este parámetro. |
|
| Ignore este parámetro. |
|
| Datos auxiliares, como datos de audio procesados por AEC. |
onNuiLogTrackCallback: escucha de registros de seguimiento
Esta devolución de llamada recibe registros internos detallados del SDK para ayudar en la resolución de problemas y la depuración.
default void onNuiLogTrackCallback(Constants.LogLevel level, String log)
NuiEvent: tipos de eventos
| Evento | Descripción |
|---|---|
EVENT_TRANSCRIBER_STARTED | La tarea se inició correctamente. |
EVENT_VAD_START | Se activa justo después de que comienza la tarea. Esto no significa que se haya detectado el inicio del habla. |
EVENT_VAD_END | Se detectó el fin del habla. |
EVENT_ASR_PARTIAL_RESULT | Un resultado intermedio de reconocimiento de voz. |
EVENT_ASR_WARN | Ocurrió una advertencia que no interrumpe el reconocimiento de voz, como una interrupción de la red cuando la reconexión está habilitada. |
EVENT_ASR_ERROR | Ocurrió un error durante el reconocimiento de voz. |
EVENT_MIC_ERROR | Se activa cuando no se reciben datos de audio durante 2 segundos consecutivos. |
EVENT_SENTENCE_END | Se detecta el final de una oración. Se devuelve un resultado de reconocimiento completo para la oración. |
EVENT_TRANSCRIBER_COMPLETE | El reconocimiento de voz ha finalizado. |
EVENT_AEC_DATA | Datos de audio procesados por AEC. |