Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Qwen-Audio-ASR-Message iOS SDK

Dernière mise à jour :Oct 11, 2026

Découvrez les paramètres, les interfaces, les rappels et l'utilisation du SDK iOS pour Qwen-Audio-ASR-Message.

Démarrage rapide

  1. Obtenir une clé API : Obtenir une clé API

  2. Télécharger le SDK et exécuter l’exemple :
    • Téléchargez le dernier package du SDK.
    • Extrayez le package ZIP et ajoutez le fichier nuisdk.xcframework inclus à votre projet.
    • Dans Build Phases → Link Binary With Libraries, ajoutez nuisdk.xcframework.
    • Dans General → Frameworks, Libraries, and Embedded Content, définissez nuisdk.xcframework sur Embed & Sign.
    • Ouvrez le projet d'exemple dans Xcode. Le code se trouve dans DashFunAsrSpeechTranscriberViewController.m. Remplacez la clé API par la vôtre pour essayer la fonctionnalité.

Séquence d'appel

  1. Initialisez le SDK.
  2. Configurez les paramètres selon votre cas d'usage : utilisez nui_initialize pour les paramètres de connexion et de contrôle, et nui_set_params pour les paramètres de qualité de reconnaissance.
  3. Appelez nui_dialog_start pour démarrer la reconnaissance.
  4. Dans le rappel onNuiAudioStateChanged, ouvrez le périphérique d'enregistrement selon l'état audio.
  5. Fournissez continuellement les données enregistrées dans onNuiNeedAudioData, ou appelez nui_update_audio_data pour les envoyer activement.
  6. Dans onNuiEventCallback, écoutez les événements et récupérez les résultats de reconnaissance vocale.
  7. Appelez nui_dialog_cancel pour arrêter la reconnaissance et attendez l'événement EVENT_TRANSCRIBER_COMPLETE pour confirmer sa fin.
  8. Lorsque la reconnaissance n'est plus nécessaire, appelez nui_release pour libérer les ressources du SDK.

Paramètres de requête

Paramètres de connexion et de contrôle

Configurez ces paramètres en passant une chaîne JSON à l'argument parameters de nui_initialize.

Exemple de paramètres : La chaîne JSON suivante est un exemple et ne répertorie pas tous les paramètres. Ajoutez ceux dont votre code a besoin.

{
    "url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
Description des paramètres
ParamètreTypeObligatoireDescription
urlStringOuiAdresse du service :
  • wss://dashscope.aliyuncs.com/api-ws/v1/inference
  • Chine (Pékin) : wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
  • Singapour : wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
apikeyStringOui

Clé API.

service_modeStringOuiMode d'exécution. Fixé à "1" pour la reconnaissance vocale en temps réel.
device_idStringOuiChaîne unique identifiant l'utilisateur final. Vous pouvez utiliser un ID utilisateur de l'application ou un identifiant d'appareil généré côté client. Cet ID sert principalement au suivi des journaux et au dépannage.

audio_update_manually

StringNonActive ou non l'envoi actif de données audio. Valeur par défaut : "false". Si la valeur est "true" et que la version du SDK prend en charge le traitement audio sur l'appareil, tel que l'AEC ou la VAD, ces capacités sont activées par défaut.

workspace

StringNonLe chemin où sont stockés les fichiers de ressources sur appareil. Ce paramètre est requis lorsque audio_update_manually est défini sur "true" et qu'une capacité de traitement audio sur appareil telle que AEC ou VAD est activée.
debug_pathStringNonChemin de stockage des journaux. Ce paramètre ne prend effet que si save_log vaut YES dans nui_initialize. Dans ce cas, le chemin est obligatoire, sinon une erreur se produit. Deux fichiers journaux au maximum sont conservés localement.
save_wavStringNonEnregistre ou non l'audio de débogage dans debug_path. Par défaut : "false". "true" enregistre le fichier ; "false" ne l'enregistre pas. Ce paramètre ne prend effet que si save_log vaut true dans nui_initialize. Il faut également définir debug_path.
max_log_file_sizeintNonTaille maximale du fichier journal, en octets. Ne prend effet que si save_log vaut YES dans nui_initialize. Valeur par défaut : 104857600 (100 × 1024 × 1024 octets, soit 100 MiB).
log_track_levelintNonNiveau de filtrage des journaux renvoyés par onNuiLogTrackCallback. Par défaut : 2. Valeurs : 0 (LOG_LEVEL_VERBOSE), 1 (LOG_LEVEL_DEBUG), 2 (LOG_LEVEL_INFO), 3 (LOG_LEVEL_WARNING), 4 (LOG_LEVEL_ERROR), 5 (LOG_LEVEL_NONE, désactivé). Un journal n'est renvoyé que si son niveau est supérieur ou égal à log_track_level et au level de nui_initialize. Par exemple, avec 2 (INFO) et 3 (WARNING), seuls les journaux WARNING et supérieurs (valeur ≥ 3) sont renvoyés.

Paramètres de qualité de reconnaissance

Configurez ces paramètres en passant une chaîne JSON à l'argument params de nui_set_params.

Exemple de paramètres : La chaîne JSON suivante est un exemple et ne répertorie pas tous les paramètres. Ajoutez ceux dont votre code a besoin.

{
    "service_type": 4,
    "nls_config": {
        "model": "qwen-audio-3.1-asr-flash-message",
        "sr_format": "pcm",
        "sample_rate": "16000"
    }
}
Description des paramètres
Paramètre de premier niveauTypeObligatoireDescription
service_typeintOuiType de service vocal. Fixé à 4 pour la reconnaissance vocale en temps réel.
nls_configobjectOuiObjet de configuration principal de la reconnaissance. Il contient notamment la sélection du modèle et les contrôles de qualité de reconnaissance.
nls_config.modelstringOuiNom du modèle. Définissez-le sur qwen-audio-3.1-asr-flash-message.
nls_config.sr_formatstringOui

Le format audio.

Valeurs valides :

  • pcm
  • opus

ImportantSi vous fournissez des données PCM et définissez ce paramètre sur opus, le SDK les encode en Opus en interne.

nls_config.sample_rateintOui

Le taux d’échantillonnage en Hz. Seule la valeur 16000 est prise en charge.

nls_config.language_hintsarray[string]Non

La langue de l'audio à reconnaître. Aucune valeur par défaut ; si elle n'est pas définie, le modèle détecte automatiquement la langue.

Vous pouvez définir jusqu’à 4 valeurs. Au-delà, seules les 4 premières sont prises en compte.

Click to view the supported language codes

  • zh: Chinese
  • en: English
  • ja: Japanese
  • ko: Korean
  • vi: Vietnamese
  • th: Thai
  • id: Indonesian
  • ms: Malay
  • tl: Filipino
  • hi: Hindi
  • ar: Arabic
  • fr: French
  • de: German
  • es: Spanish
  • pt: Portuguese
  • ru: Russian
  • it: Italian
  • nl: Dutch
  • sv: Swedish
  • da: Danish
  • fi: Finnish
  • no: Norwegian
  • el: Greek
  • pl: Polish
  • cs: Czech
  • hu: Hungarian
  • ro: Romanian
  • bg: Bulgarian
  • hr: Croatian
  • sk: Slovak

Ce paramètre s’applique uniquement aux résultats finaux (sentence_end=true) et n’est pas pris en charge pour les résultats intermédiaires (sentence_end=false).

nls_config.max_sentence_silenceintNon

Seuil de silence VAD pour la segmentation, en millisecondes. La phrase est considérée comme terminée si le silence après la parole dépasse ce seuil. Par défaut : 800. Plage valide : [200, 6000].

nls_config.heartbeatbooleanNon

Indique s'il faut activer les paquets de battement de cœur.

Valeur par défaut : false.

  • true : Maintient la connexion au serveur active même lorsque de l'audio silencieux est envoyé en continu.
  • false (par défaut) : Même lorsque de l'audio silencieux est envoyé en continu, la connexion expire et se ferme après un certain temps.

L'audio silencieux désigne le contenu d'un fichier audio ou d'un flux de données qui ne contient aucun signal sonore. Vous pouvez générer de l'audio silencieux de plusieurs manières, par exemple en utilisant un logiciel d'édition audio comme Audacity ou Adobe Audition, ou en utilisant un outil en ligne de commande comme FFmpeg.

nls_config.disfluency_removal_enabledbooleanNonIndique s’il faut supprimer les mots de remplissage et améliorer le texte produit. Valeur par défaut : false. Définissez sur true pour activer cette fonction.
nls_config.intermediate_result_enabledbooleanNonIndique s’il faut renvoyer les résultats intermédiaires en streaming. Valeur par défaut : false. Définissez sur true pour les renvoyer.
nls_config.vocabulary_idstringNon

L'ID d'une liste de mots clés précompilée.

Générez cet ID à l'avance en appelant l'API de création de liste de mots clés. Transmettez l'ID lors de la reconnaissance pour utiliser les mots clés de la liste.

Convient aux scénarios où le vocabulaire est connu et relativement stable, et où vous devez réutiliser la même liste de mots d'une requête à l'autre.

Pour plus de détails sur l'utilisation, consultez Mots clés précompilés.

nls_config.instant_vocabularyobjectNon

Mots-clés instantanés.

Transmis sous forme de paires clé-valeur, où la clé est le texte du mot chaud (string) et la valeur est le poids du mot chaud (integer). Aucune liste de mots chauds ne doit être créée à l'avance. Le poids varie de [1, 5] ou est défini sur 50 : une valeur dans [1, 5] rend le modèle plus susceptible de produire le mot à mesure que la valeur augmente ; une valeur de 50 désigne un super mot chaud, ce qui améliore considérablement le rappel, mais le nombre de super mots chauds ne peut pas dépasser 50.

Convient à l'optimisation temporaire des mots-clés au niveau de la session.

Lorsque des mots chauds instantanés et précompilés sont configurés ensemble, le système fusionne les deux ensembles. Si l'ensemble fusionné contient plus de 2000 mots chauds, le système en sélectionne aléatoirement 2000 à utiliser. Pour plus de détails sur l'utilisation, voir Mots chauds instantanés.

ImportantPour les modèles et les limites applicables aux mots chauds instantanés, voir Mots chauds instantanés.

nls_config.speech_noise_threshold

floatNon

Le seuil pour distinguer la parole du bruit, utilisé pour ajuster la sensibilité de la détection d'activité vocale (VAD).

Valeurs valides : [-1.0, 1.0].

Descriptions des valeurs :

  • Plus la valeur est proche de -1 : Le seuil de bruit diminue, donc le bruit est plus susceptible d'être reconnu comme de la parole, ce qui peut entraîner la transcription de davantage de bruit.
  • Plus la valeur est proche de +1 : Le seuil de bruit augmente, donc la parole est plus susceptible d'être jugée à tort comme du bruit, ce qui peut entraîner le filtrage de certaines paroles.

Il s'agit d'un paramètre de configuration avancé. Son ajustement peut affecter considérablement les résultats de la reconnaissance. Recommandations :

  • Effectuer des tests et vérifier minutieusement les résultats avant tout ajustement.
  • Ajustez par petits incréments en fonction de l'environnement audio réel (un pas de 0.1 est recommandé).

nls_config.enable_connection_fast_check

BOOLNonActive ou non la vérification réseau rapide pour signaler les déconnexions au plus tôt. Par défaut : NO.

API principales

NeoNui

nui_initialize

Initialise l'instance du SDK de reconnaissance vocale. Le SDK est un singleton. Ne le réinitialisez pas avant d'appeler nui_release.

Method signature
-(NuiResultCode) nui_initialize:(const char *)parameters
                       logLevel:(NuiSdkLogLevel)level
                        saveLog:(BOOL)save_log;
Description des paramètres
ParamètreTypeDescription
parameterschar*

Une chaîne JSON contenant des paramètres d'authentification, de connexion et de débogage. Voir Paramètres de connexion et de contrôle.

levelNuiSdkLogLevelNiveau d'impression pour les propres journaux du SDK.
save_logBOOLIndique s'il faut enregistrer les journaux localement. Si défini sur YES, spécifiez un chemin avec debug_path dans les Paramètres de connexion et de contrôle, et définissez éventuellement la taille du fichier avec max_log_file_size.
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_set_params

Définit les paramètres de qualité de reconnaissance au format JSON. Appelez cette méthode avant nui_dialog_start.

Method signature
-(NuiResultCode) nui_set_params:(const char *)params;
Description des paramètres
ParamètreTypeDescription
paramschar*Paramètres de qualité de reconnaissance.
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_dialog_start

Démarre la reconnaissance.

Method signature
-(NuiResultCode) nui_dialog_start:(NuiVadMode)vad_mode
                      dialogParam:(const char *)dialog_params;
Description des paramètres
ParamètreTypeDescription
vad_mode

NuiVadMode

Mode VAD. Fixé à MODE_P2T.

dialog_paramschar*

Si apikey dans les paramètres de connexion et de contrôle est une clé API temporaire, vous pouvez la mettre à jour ici après son expiration. Vous pouvez aussi fournir un contexte pour améliorer la précision par enrichissement du contexte.

Le contenu est au format JSON :

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

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_dialog_cancel

Termine la reconnaissance ou annule immédiatement l'interaction en cours.

Method signature
-(NuiResultCode) nui_dialog_cancel:(BOOL)force;
Description des paramètres
ParamètreTypeDescription
forceBOOLIndique s'il faut forcer l'arrêt et ignorer le résultat final. YES : termine immédiatement sans attendre le résultat final du serveur. NO : termine la tâche en attendant le résultat complet.
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_dialog_action

Envoie une action pendant l'interaction pour mettre à jour le contexte de reconnaissance ou d'autres comportements à l'exécution.

Method signature
-(NuiResultCode) nui_dialog_action:(const char *)action_params;
Description des paramètres
ParamètreTypeDescription
action_paramschar*Chaîne JSON utilisée pour mettre à jour le contexte de reconnaissance ou d'autres comportements à l'exécution.
action_params.typeStringFixé à "action".
action_params.commandStringCommande à l'exécution. context : met immédiatement à jour l'enrichissement du contexte pour améliorer la précision. play_start : avec l'AEC sur l'appareil, notifie au lecteur AEC interne le début de lecture audio. play_over : lui notifie la fin de lecture.
action_params.contextString

Lorsque command vaut "context", fournit l'enrichissement du contexte à mettre à jour immédiatement. Exemple :

{
  "context": [
    {
      "role": "user",
      "content": [
        {
          "text": "xxx",
          "type": "input_text"
        }
      ]
    }
  ]
}
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_update_audio_data

Si audio_update_manually vaut "true", les données enregistrées ne sont plus fournies par onNuiNeedAudioData. Envoyez-les activement avec cette méthode.

Method signature
-(NuiResultCode) nui_update_audio_data:(const char *)data
                                    Len:(int)length
                              FirstPack:(BOOL)first_pack;
Description des paramètres
ParamètreTypeDescription

data

const char *Les données audio à transmettre.
lengthintLa longueur des données audio, en octets.

first_pack

BOOLVous n'avez pas besoin d'utiliser ce paramètre.
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_push_reference_data

Lorsque audio_update_manually vaut "true" et que l'AEC sur l'appareil est activé, utilisez cette méthode pour envoyer l'audio du lecteur comme signal de référence.

Method signature
-(NuiResultCode) nui_push_reference_data:(const char *)data
                                     Len:(int)length
                               FirstPack:(BOOL)first_pack;
Description des paramètres
ParamètreTypeDescription

data

const char *Les données audio à transmettre.
lengthintLa longueur des données audio, en octets.

first_pack

BOOLVous n'avez pas besoin d'utiliser ce paramètre.
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_release

Libère toutes les ressources internes du SDK et force l'arrêt de toutes les tâches en cours. L'instance devient inutilisable. Pour la réutiliser, réinitialisez-la avec nui_initialize.

Method signature
-(NuiResultCode) nui_release;
Return value

Renvoie un code d’erreur. Consultez la référence des codes d’erreur.

nui_get_version

Obtient la version actuelle du SDK. Cette méthode ne renvoie une valeur qu'après l'appel de nui_initialize.

Method signature
-(const char*) nui_get_version;
Return value

La version actuelle du SDK.

nui_get_all_response

Obtient les informations complètes du rappel d'événement actuel.

Method signature
-(const char*) nui_get_all_response;
Return value

Les informations complètes de l'événement sous forme de chaîne JSON.

NeoNuiSdkDelegate : écouteurs de rappel

onNuiEventCallback : réception des événements et résultats de reconnaissance vocale

Method signature
-(void) onNuiEventCallback:(NuiCallbackEvent)nuiEvent
                    dialog:(long)dialog
                 kwsResult:(const char *)wuw
                 asrResult:(const char *)asr_result
                  ifFinish:(BOOL)finish
                   retCode:(int)code;
Description des paramètres
ParamètreTypeDescription
nuiEventNuiCallbackEventÉvénement de rappel.
dialoglongID de session. Vous n'avez pas besoin d'utiliser ce paramètre.
wuwchar*Réveil vocal. Vous n'avez pas besoin d'utiliser ce paramètre.
asr_resultchar*

Résultat de la reconnaissance vocale.

finishBOOLIndique si le tour de reconnaissance actuel est terminé.
codeintCode d’erreur. Valide lorsque l’événement EVENT_ASR_ERROR se produit. Consultez la référence des codes d’erreur.

onNuiAudioStateChanged : suivi de l'état audio

Le SDK utilise ce rappel pour indiquer quand démarrer ou arrêter l'enregistrement.

Method signature
-(void) onNuiAudioStateChanged:(NuiAudioState)state;
NuiAudioState states
ParamètreDescription
STATE_OPEN

L'interaction a démarré. Vous pouvez ouvrir le périphérique d'enregistrement et commencer l'enregistrement.

STATE_PAUSE

L'interaction s'est arrêtée. Vous pouvez arrêter l'enregistrement.

STATE_CLOSEL'instance du SDK a été libérée. Vous pouvez fermer complètement le périphérique d'enregistrement.

onNuiNeedAudioData : fourniture des données audio à reconnaître

Après le démarrage de la reconnaissance, ce rappel est déclenché en continu. Fournissez-y les données audio à reconnaître.

Method signature
-(int) onNuiNeedAudioData:(char *)audioData length:(int)len;
Description des paramètres
ParamètreTypeDescription
audioDatachar*Les données audio à fournir.
lenintLa taille des données audio fournies, en octets.

onNuiAssistEventCallback : réception de données et informations auxiliaires

Reçoit les événements auxiliaires et les données associées du SDK.

Method signature
-(void) onNuiAssistEventCallback:(NuiCallbackEvent)nuiEvent
                            info:(char*)info
                         infoLen:(int)info_len
                          buffer:(char*)buffer
                             len:(int)len;
Description des paramètres
ParamètreTypeDescription
nuiEventNuiCallbackEvent

L'événement de rappel.

info

char*Vous n'avez pas besoin d'utiliser ce paramètre.
info_lenintVous n'avez pas besoin d'utiliser ce paramètre.
bufferchar*Données auxiliaires, telles que l'audio traité par l'AEC.
lenintLa longueur des données auxiliaires, en octets.

onNuiLogTrackCallback : réception des journaux de suivi

Ce rappel reçoit les journaux internes détaillés du SDK pour faciliter le diagnostic et le débogage.

-(void) onNuiLogTrackCallback:(NuiSdkLogLevel)level
                   logMessage:(const char *)log;

NuiCallbackEvent : types d'événements

ÉvénementDescription
EVENT_TRANSCRIBER_STARTED

La tâche a démarré avec succès.

EVENT_VAD_STARTDéclenché dès le démarrage de la tâche. Ne signifie pas qu'un début de parole a été détecté.
EVENT_VAD_END

La fin de la parole a été détectée.

EVENT_ASR_PARTIAL_RESULT

Un résultat intermédiaire de reconnaissance vocale.

EVENT_ASR_ERROR

Une erreur s'est produite lors de la reconnaissance vocale.

EVENT_MIC_ERRORDéclenché lorsqu'aucune donnée audio n'a été reçue pendant 2 secondes consécutives.
EVENT_SENTENCE_ENDLa fin d'une phrase a été détectée. Le résultat complet de reconnaissance de cette phrase est renvoyé.
EVENT_TRANSCRIBER_COMPLETELa reconnaissance vocale est terminée.

EVENT_AEC_DATA

Données audio après traitement par annulation d'écho acoustique (AEC).