Esta guía le muestra cómo utilizar el SDK de iOS para reconocimiento de voz en tiempo real de Qwen-Audio-3.1-ASR-Flash-Message para transcribir voz a texto.
Inicio rápido
-
Obtener una clave de API: Obtener una clave de API
-
Descargue el SDK y ejecute el código de ejemplo:
- Descargue el paquete más reciente del SDK.
- Extraiga el paquete ZIP y agregue el nuisdk.xcframework incluido a su proyecto.
- En Build Phases → Link Binary With Libraries, agregue nuisdk.xcframework.
- En General → Frameworks, Libraries, and Embedded Content, configure nuisdk.xcframework en Embed & Sign.
- Abra el proyecto de ejemplo en Xcode. El código de ejemplo se encuentra en
DashFunAsrSpeechTranscriberViewController.m. Reemplace la clave API por la suya propia para probar la función.
Secuencia de llamadas
- Inicialice el SDK.
- Configure los parámetros para su caso de uso: utilice la API nui_initialize para establecer los Parámetros de conexión y control, y utilice la API nui_set_params para establecer los Parámetros de calidad de reconocimiento.
- Llame a nui_dialog_start para iniciar el proceso de reconocimiento.
- En la devolución de llamada onNuiAudioStateChanged, abra el dispositivo de grabación según el estado del audio.
- En la devolución de llamada onNuiNeedAudioData, suministre datos de grabación continuamente o llame a nui_update_audio_data para enviar activamente datos de grabación.
- En la devolución de llamada onNuiEventCallback, escuche los eventos y recupere los resultados del reconocimiento de voz.
- Llame a nui_dialog_cancel para detener el reconocimiento y confirme que ha finalizado escuchando el evento EVENT_TRANSCRIBER_COMPLETE.
- Cuando ya no necesite la función de reconocimiento, llame a nui_release para liberar los recursos del SDK.
Parámetros de solicitud
Parámetros de conexión y control
Configure estos parámetros pasando una cadena JSON en el argumento parameters de la API nui_initialize.
Parámetros de ejemplo: La siguiente cadena JSON es un ejemplo y no enumera todos los parámetros. Agregue los parámetros que necesite al escribir su código:
{
"url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
Descripciones de parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Sí | Dirección del servicio:
Reemplace |
|
| Sí | Clave de API. |
|
| Sí | Modo de ejecución. Fijado 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 generado en el cliente. Este ID se utiliza principalmente para el rastreo de registros y la solució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 | Ruta de almacenamiento para el archivo de registro. Este parámetro solo surte efecto cuando Se conservan como máximo dos archivos de registro localmente. |
|
| No | Indica si se debe guardar un archivo de audio para depuración. El archivo de audio se guarda en Valor predeterminado: "false". Valores válidos:
Este parámetro solo surte efecto cuando |
|
| No | Tamaño máximo del archivo de registro, en bytes. Este parámetro solo surte efecto cuando Predeterminado: 104857600 (100 * 1024 * 1024 bytes, es decir, 100 MiB). |
|
| No | Nivel de filtro para el contenido de registro enviado a través de la devolución de llamada de registro (onNuiLogTrackCallback). Predeterminado: 2. Valores válidos:
Nota: |
Parámetros de calidad de reconocimiento
Configure estos parámetros pasando una cadena JSON en el argumento params de la API nui_set_params.
Parámetros de ejemplo: La siguiente cadena JSON es un ejemplo y no enumera todos los parámetros. Agregue los parámetros que necesite al escribir su código:
{
"service_type": 4,
"nls_config": {
"model": "qwen-audio-3.1-asr-flash-message",
"sr_format": "pcm",
"sample_rate": "16000"
}
}
Descripciones de parámetros
| Parámetro de nivel superior | Tipo | Obligatorio | Descripción |
|---|---|---|---|
|
| Sí | Tipo de servicio de voz. Fijado en |
|
| Sí | El objeto de configuración de reconocimiento principal. 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:
ImportanteSi proporciona datos de audio PCM y establece este parámetro en |
|
| 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 habilitar comprobaciones rápidas de red para que las desconexiones se notifiquen lo antes posible. Valor predeterminado: |
API clave
NeoNui
nui_initialize
Inicializa la instancia del SDK de reconocimiento de voz. El SDK es un singleton. No lo inicialice nuevamente antes de llamar a nui_release.
Firma del método-(NuiResultCode) nui_initialize:(const char *)parameters
logLevel:(NuiSdkLogLevel)level
saveLog:(BOOL)save_log;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Una cadena JSON que contiene parámetros de autenticación, conexión y depuración. Consulte Parámetros de conexión y control. |
|
| Nivel de impresión para los registros propios del SDK. |
|
| Indica si se deben guardar los registros localmente. Si se establece en |
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_set_params
Establece los Parámetros de calidad de reconocimiento en formato JSON. Llame a este método antes de nui_dialog_start.
Firma del método-(NuiResultCode) nui_set_params:(const char *)params;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
|
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_dialog_start
Inicia el reconocimiento.
Firma del método-(NuiResultCode) nui_dialog_start:(NuiVadMode)vad_mode
dialogParam:(const char *)dialog_params;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Modo VAD. Fijado en |
|
| Si el parámetro El contenido está en formato JSON: |
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_dialog_cancel
Finaliza el reconocimiento o cancela la interacción actual inmediatamente.
Firma del método-(NuiResultCode) nui_dialog_cancel:(BOOL)force;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Si se debe finalizar forzosamente y descartar el resultado final.
|
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_dialog_action
Envía una acción de diálogo durante una interacción para actualizar el contexto de reconocimiento u otro comportamiento de tiempo de ejecución.
Firma del método-(NuiResultCode) nui_dialog_action:(const char *)action_params;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Una cadena JSON utilizada para actualizar el contexto de reconocimiento u otro comportamiento de tiempo de ejecución. |
|
| Fijado en |
|
| Comando de tiempo de ejecución. Valores válidos:
|
|
| Cuando |
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_update_audio_data
Cuando audio_update_manually se establece en "true", los datos de grabación ya no se suministran a través de onNuiNeedAudioData. Utilice este método para enviarlos activamente en su lugar.
-(NuiResultCode) nui_update_audio_data:(const char *)data
Len:(int)length
FirstPack:(BOOL)first_pack;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Los datos de audio a enviar. |
|
| La longitud de los datos de audio, en bytes. |
|
| No necesita utilizar este parámetro. |
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_push_reference_data
Cuando audio_update_manually se establece en "true" y la cancelación de eco acústico (AEC) en el dispositivo está habilitada, utilice este método para enviar el audio reproducido por el reproductor como señal de referencia.
-(NuiResultCode) nui_push_reference_data:(const char *)data
Len:(int)length
FirstPack:(BOOL)first_pack;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Los datos de audio a enviar. |
|
| La longitud de los datos de audio, en bytes. |
|
| No necesita utilizar este parámetro. |
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_release
Libera todos los recursos internos del SDK y termina forzosamente todas las tareas en ejecución. Después de llamar a este método, la instancia del SDK deja de estar disponible. Para utilizarla de nuevo, debe llamar a nui_initialize para inicializarla nuevamente.
Firma del método-(NuiResultCode) nui_release;
Valor de retorno
Devuelve un código de error. Consulte la Referencia de códigos de error.
nui_get_version
Obtiene la versión actual del SDK. Este método devuelve un valor solo después de llamar a nui_initialize.
-(const char*) nui_get_version;
Valor de retorno
La versión actual del SDK.
nui_get_all_response
Obtiene la información completa para la devolución de llamada del evento actual.
Firma del método-(const char*) nui_get_all_response;
Valor de retorno
La información completa del evento como una cadena JSON.
NeoNuiSdkDelegate: listeners de devolución de llamada
onNuiEventCallback: escucha de eventos y resultados del reconocimiento de voz
Firma del método-(void) onNuiEventCallback:(NuiCallbackEvent)nuiEvent
dialog:(long)dialog
kwsResult:(const char *)wuw
asrResult:(const char *)asr_result
ifFinish:(BOOL)finish
retCode:(int)code;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| Evento de callback. | |
|
| ID de sesión. No necesita utilizar este parámetro. |
|
| Activación por voz. No necesita utilizar este parámetro. |
|
| Resultado del reconocimiento de voz. |
|
| Indica si la ronda de reconocimiento actual ha finalizado. |
|
| Código de error. Válido cuando ocurre el evento EVENT_ASR_ERROR. Consulte la Referencia de códigos de error. |
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étodo-(void) onNuiAudioStateChanged:(NuiAudioState)state;
Estados NuiAudioState
| Parámetro | 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 el dispositivo de grabación por completo. |
onNuiNeedAudioData: suministrar datos de audio para el reconocimiento
Después de que comienza el reconocimiento, esta devolución de llamada se activa continuamente. Suministre en ella los datos de audio que se van a reconocer.
Firma del método-(int) onNuiNeedAudioData:(char *)audioData length:(int)len;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| Los datos de audio a suministrar. |
|
| El tamaño de los datos de audio suministrados, en bytes. |
onNuiAssistEventCallback: recepción de datos e información auxiliar
Recibe eventos auxiliares y datos relacionados del SDK.
Firma del método-(void) onNuiAssistEventCallback:(NuiCallbackEvent)nuiEvent
info:(char*)info
infoLen:(int)info_len
buffer:(char*)buffer
len:(int)len;
Descripciones de parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
|
| El evento de callback. |
|
| No necesita utilizar este parámetro. |
|
| No necesita utilizar este parámetro. |
|
| Datos auxiliares, como datos de audio después del procesamiento AEC. |
|
| La longitud de los datos auxiliares, en bytes. |
onNuiLogTrackCallback: escuchar registros de seguimiento
Esta devolución de llamada recibe los registros internos detallados del SDK para ayudarle a localizar y depurar problemas.
-(void) onNuiLogTrackCallback:(NuiSdkLogLevel)level
logMessage:(const char *)log;
NuiCallbackEvent: 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. No significa que se haya detectado el inicio del habla. |
EVENT_VAD_END | Se detectó el final del habla. |
EVENT_ASR_PARTIAL_RESULT | Un resultado intermedio de reconocimiento de voz. |
EVENT_ASR_ERROR | Ocurrió un error durante el reconocimiento de voz. |
EVENT_MIC_ERROR | Activado porque no se recibieron datos de audio durante 2 segundos consecutivos. |
EVENT_SENTENCE_END | Se detectó el final de una oración. Se devuelve un resultado de reconocimiento completo para la oración. |
EVENT_TRANSCRIBER_COMPLETE | Reconocimiento de voz finalizado. |
EVENT_AEC_DATA | Datos de audio después del procesamiento de cancelación de eco acústico (AEC). |