Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:Fun-ASR-Realtime SDK de iOS para reconocimiento de voz en tiempo real

Última actualización: Oct 20, 2026

Esta guía le muestra cómo utilizar el SDK de iOS para reconocimiento de voz en tiempo real de Fun-ASR-Realtime para transcribir voz a texto.

Inicio rápido

  1. Obtener una clave de API: Obtener una clave de API

  2. 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

  1. Inicialice el SDK.
  2. 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.
  3. Llame a nui_dialog_start para iniciar el proceso de reconocimiento.
  4. En la devolución de llamada onNuiAudioStateChanged, abra el dispositivo de grabación según el estado del audio.
  5. En la devolución de llamada onNuiNeedAudioData, suministre datos de grabación continuamente o llame a nui_update_audio_data para enviar activamente los datos de grabación.
  6. En la devolución de llamada onNuiEventCallback, escuche los eventos y recupere los resultados del reconocimiento de voz.
  7. Llame a nui_dialog_cancel para detener el reconocimiento y confirme que el reconocimiento ha finalizado escuchando el evento EVENT_TRANSCRIBER_COMPLETE.
  8. 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ámetroTipoObligatorioDescripción
urlStringSíDirección del servicio:
  • wss://dashscope.aliyuncs.com/api-ws/v1/inference
  • China (Beijing): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
  • Singapur: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
apikeyStringSíClave de API.
service_modeStringSíModo de ejecución. Fijado en "1" para reconocimiento de voz en tiempo real.
device_idStringSí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.
audio_update_manuallyStringNoSi se debe habilitar el envío activo de datos de audio. Predeterminado: "false".Si se establece en "true" y la versión del SDK admite capacidades de procesamiento de audio en el dispositivo, como AEC o VAD, dichas capacidades se habilitan de forma predeterminada.
workspaceStringNoLa ruta donde se almacenan los archivos de recursos en el dispositivo. Este parámetro es obligatorio cuando audio_update_manually se establece en "true" y está habilitada una capacidad de procesamiento de audio en el dispositivo, como AEC o VAD.
debug_pathStringNoRuta de almacenamiento para el archivo de registro.Este parámetro solo surte efecto cuando save_log se establece en YES en la API nui_initialize. En ese caso, debe configurar la ruta del archivo de registro; de lo contrario, se producirá un error.Se conservan como máximo dos archivos de registro localmente.
save_wavStringNoIndica si se debe guardar un archivo de audio para depuración. El archivo de audio se guarda en debug_path.Predeterminado: "false".Valores válidos:
  • "true": guarda el archivo.
  • "false": no guarda el archivo.
Este parámetro solo surte efecto cuando save_log se establece en true en la API nui_initialize. Además, también se debe establecer debug_path.
max_log_file_sizeintNoTamaño máximo del archivo de registro, en bytes.Este parámetro solo surte efecto cuando save_log se establece en YES en la API nui_initialize.Predeterminado: 104857600 (100 * 1024 * 1024 bytes, es decir, 100 MiB).
log_track_levelintNoNivel 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:
  • 0: LOG_LEVEL_VERBOSE
  • 1: LOG_LEVEL_DEBUG
  • 2: LOG_LEVEL_INFO
  • 3: LOG_LEVEL_WARNING
  • 4: LOG_LEVEL_ERROR
  • 5: LOG_LEVEL_NONE (deshabilita esta función)
Nota: log_track_level y level (configurados a través de la API nui_initialize) determinan conjuntamente qué registros se envían finalmente a la devolución de llamada. Un registro se envía a la devolución de llamada solo cuando su valor de nivel es mayor o igual tanto a log_track_level como a level. Por ejemplo, si log_track_level se establece en 2 (INFO) y level se establece en 3 (WARNING), entonces solo los registros de nivel WARNING o superior (valor >= 3) se envían a la devolución de llamada.

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": "fun-asr-realtime",
        "sr_format": "pcm",
        "sample_rate": "16000"
    }
}
Descripciones de parámetros
Parámetro de nivel superiorTipoObligatorioDescripción
service_typeintSíTipo de servicio de voz. Fijado en 4 para reconocimiento de voz en tiempo real.
nls_configobjectSí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.
nls_config.modelstringSíEl nombre del modelo.
nls_config.sr_formatstringSíEl formato de audio.

Valores válidos:

  • pcm
  • opus

ImportanteSi proporciona datos de audio PCM y establece este parámetro en opus, el SDK codifica los datos en Opus internamente.

nls_config.sample_rateintSíLa tasa de muestreo, en Hz.

Valores válidos: Los modelos de 8 kHz solo admiten 8000 Hz; otros modelos admiten cualquier frecuencia de muestreo.

ImportanteNo se admite 8000 Hz cuando están habilitadas las capacidades de procesamiento de audio en el dispositivo, como AEC o VAD.

nls_config.max_sentence_silenceintNoEl umbral de silencio del VAD para la segmentación, en ms. Cuando el silencio posterior a un segmento de voz supera este umbral, el sistema determina que la oración ha finalizado.

Valor predeterminado: 1300.

Valores válidos: [200, 6000].

nls_config.multi_threshold_mode_enabledbooleanNo

Si se debe habilitar el modo de umbral múltiple. Cuando está habilitado, esto evita que los segmentos VAD sean demasiado largos.

Valor predeterminado: false.

nls_config.heartbeatbooleanNoSi se habilitan los paquetes de latido.

Valor predeterminado: false.

  • true: Mantiene activa la conexión con el servidor incluso cuando se envía audio silencioso de forma continua.
  • false (predeterminado): Incluso cuando se envía audio silencioso de forma continua, la conexión expira y se cierra después de un período de tiempo.

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.

nls_config.vocabulary_idstringNoEl ID de una lista de palabras calientes 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.

nls_config.language_hintsarray[string]NoEl idioma del audio a reconocer. No hay valor predeterminado; si no se establece, el modelo detecta el idioma automáticamente.

Puede establecer 1 valor. Si establece más, solo el primer valor surte efecto.

Haga clic para ver los códigos de idioma admitidos

  • fun-asr-realtime:

    • zh: Chino
    • en: Inglés
    • ja: Japonés
    • ko: Coreano
    • vi: Vietnamita
    • th: Tailandés
    • id: Indonesio
    • ms: Malayo
    • tl: Filipino
    • hi: Hindi
    • ar: Árabe
    • fr: Francés
    • de: Alemán
    • es: Español
    • pt: Portugués
    • ru: Ruso
    • it: Italiano
    • nl: Neerlandés
    • sv: Sueco
    • da: Danés
    • fi: Finés
    • no: Noruego
    • el: Griego
    • pl: Polaco
    • cs: Checo
    • hu: Húngaro
    • ro: Rumano
    • bg: Búlgaro
    • hr: Croata
    • sk: Eslovaco
  • fun-asr-realtime-2026-02-28:

    • zh: Chino
    • en: Inglés
    • ja: Japonés
  • fun-asr-flash-8k-realtime, fun-asr-flash-8k-realtime-2026-01-28:

    • zh: Chino
nls_config.speech_noise_thresholdfloatNoEl 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:

  • Cuanto más cerca esté el valor de -1: El umbral de ruido disminuye, por lo que es más probable que el ruido se reconozca como habla, lo que puede causar que se transcriba más ruido.
  • Cuanto más cerca esté el valor de +1: El umbral de ruido aumenta, por lo que es más probable que el habla se juzgue erróneamente como ruido, lo que puede causar que se filtre parte del habla.

Este es un parámetro de configuración avanzada. Ajustarlo puede afectar significativamente los resultados del reconocimiento. Recomendaciones:

  • Pruebe y verifique exhaustivamente los resultados antes de ajustar.
  • Ajuste en incrementos pequeños según el entorno de audio real (se recomienda un paso de 0.1).
nls_config.special_word_filterobjectNoEspecifica las palabras sensibles que se deben procesar durante el reconocimiento de voz y permite configurar diferentes métodos de procesamiento para cada una. Para más detalles, consulte Filtrado de palabras sensibles.
nls_config.enable_connection_fast_checkBOOLNoSi se deben habilitar comprobaciones rápidas de red para que las desconexiones se notifiquen lo antes posible. Valor predeterminado: NO.

API clave

NeoNui

nui_initialize

Inicializa la instancia del SDK de reconocimiento de voz. El SDK es un singleton. No lo inicialice de nuevo 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ámetroTipoDescripción
parameterschar*Una cadena JSON que contiene parámetros de autenticación, conexión y depuración. Consulte Parámetros de conexión y control.
levelNuiSdkLogLevelNivel de impresión para los registros propios del SDK.
save_logBOOLSi se deben guardar los registros localmente. Si se establece en YES, especifique una ruta con debug_path en Parámetros de conexión y control, y opcionalmente configure el tamaño del archivo con max_log_file_size.

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ámetroTipoDescripción
paramschar*Parámetros de calidad de reconocimiento.

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ámetroTipoDescripción
vad_modeNuiVadModeModo VAD. Fijado en MODE_P2T.
dialog_paramschar*Si el parámetro apikey en Parámetros de conexión y control es una clave API temporal, puede actualizarla aquí cuando caduque. También puede proporcionar contexto aquí para mejorar la precisión del reconocimiento mediante la mejora de contexto.

El contenido está en formato JSON:

{
  "apikey": "st-****",
  "input_context": [
    {
      "role": "user",
      "content": [
        {
          "text": "xxxxx",
          "type": "input_text"
        }
      ]
    }
  ]
}

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ámetroTipoDescripción
forceBOOLIndica si se debe finalizar forzosamente y descartar el resultado final.
  • YES: Finaliza la tarea inmediatamente sin esperar a que el servidor devuelva el resultado final del reconocimiento.
  • NO: Finalizar la tarea, pero esperar a que se devuelva el resultado completo.

nui_dialog_action

Envía una acción en tiempo de ejecución para notificar al AEC en el dispositivo el estado de reproducción.

Firma del método
-(NuiResultCode) nui_dialog_action:(const char *)action_params;
Descripciones de parámetros
ParámetroTipoDescripción
action_paramschar*

Una cadena JSON que contiene la acción en tiempo de ejecución.

action_params.typeStringFijado en "action".
action_params.commandString

play_start: Cuando se utiliza AEC en el dispositivo, notifica al SDK que el reproductor ha comenzado a reproducir audio.

play_over: Cuando se utiliza AEC en el dispositivo, notifica al SDK que el reproductor ha terminado de reproducir audio.

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.

Firma del método
-(NuiResultCode) nui_update_audio_data:(const char *)data
                                    Len:(int)length
                              FirstPack:(BOOL)first_pack;
Descripciones de parámetros
ParámetroTipoDescripción
dataconst char *Los datos de audio a enviar.
lengthintLa longitud de los datos de audio, en bytes.
first_packBOOLNo necesita utilizar este parámetro.

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.

Firma del método
-(NuiResultCode) nui_push_reference_data:(const char *)data
                                     Len:(int)length
                               FirstPack:(BOOL)first_pack;
Descripciones de parámetros
ParámetroTipoDescripción
dataconst char *Los datos de audio a enviar.
lengthintLa longitud de los datos de audio, en bytes.
first_packBOOLNo necesita utilizar este parámetro.

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;

nui_get_version

Obtiene la versión actual del SDK. Este método devuelve un valor solo después de llamar a nui_initialize.

Firma del método
-(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ámetroTipoDescripción
nuiEventNuiCallbackEventEvento de callback.
dialoglongID de sesión. No necesita utilizar este parámetro.
wuwchar*Activación por voz. No necesita utilizar este parámetro.
asr_resultchar*Resultado del reconocimiento de voz.
finishBOOLIndica si la ronda de reconocimiento actual ha finalizado.
codeintVálido solo cuando ocurre el evento EVENT_ASR_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ámetroDescripción
STATE_OPENLa interacción ha comenzado. Puede abrir el dispositivo de grabación e iniciar la grabación.
STATE_PAUSELa interacción se ha detenido. Puede detener la grabación.
STATE_CLOSELa 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ámetroTipoDescripción
audioDatachar *Los datos de audio a suministrar.
lenintEl 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ámetroTipoDescripción
nuiEventNuiCallbackEventEl evento de callback.
infochar *No necesita utilizar este parámetro.
info_lenintNo necesita utilizar este parámetro.
bufferchar *Datos auxiliares, como datos de audio después del procesamiento AEC.
lenintLa 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

EventoDescripción
EVENT_TRANSCRIBER_STARTEDLa tarea se inició correctamente.
EVENT_VAD_STARTSe activa justo después de que comienza la tarea. No significa que se haya detectado el inicio del habla.
EVENT_VAD_ENDSe detectó el final del habla.
EVENT_ASR_PARTIAL_RESULTUn resultado intermedio de reconocimiento de voz.
EVENT_ASR_ERROROcurrió un error durante el reconocimiento de voz.
EVENT_MIC_ERRORActivado porque no se recibieron datos de audio durante 2 segundos consecutivos.
EVENT_SENTENCE_ENDSe detectó el final de una oración. Se devuelve un resultado de reconocimiento completo para la oración.
EVENT_TRANSCRIBER_COMPLETEReconocimiento de voz finalizado.
EVENT_AEC_DATADatos de audio después del procesamiento de cancelación de eco acústico (AEC).