Découvrez les paramètres, les interfaces, les rappels et l'utilisation du SDK iOS pour Qwen-Audio-ASR-Message.
Démarrage rapide
-
Obtenir une clé API : Obtenir une clé API
-
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.xcframeworkinclus à votre projet. - Dans Build Phases → Link Binary With Libraries, ajoutez
nuisdk.xcframework. - Dans General → Frameworks, Libraries, and Embedded Content, définissez
nuisdk.xcframeworksur 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
- Initialisez le SDK.
- Configurez les paramètres selon votre cas d'usage : utilisez
nui_initializepour les paramètres de connexion et de contrôle, etnui_set_paramspour les paramètres de qualité de reconnaissance. - Appelez
nui_dialog_startpour démarrer la reconnaissance. - Dans le rappel
onNuiAudioStateChanged, ouvrez le périphérique d'enregistrement selon l'état audio. - Fournissez continuellement les données enregistrées dans
onNuiNeedAudioData, ou appeleznui_update_audio_datapour les envoyer activement. - Dans
onNuiEventCallback, écoutez les événements et récupérez les résultats de reconnaissance vocale. - Appelez
nui_dialog_cancelpour arrêter la reconnaissance et attendez l'événementEVENT_TRANSCRIBER_COMPLETEpour confirmer sa fin. - Lorsque la reconnaissance n'est plus nécessaire, appelez
nui_releasepour 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ètre | Type | Obligatoire | Description |
|---|---|---|---|
url | String | Oui | Adresse du service :
{WorkspaceId} par votre véritable ID d'espace de travail. |
apikey | String | Oui | Clé API. |
service_mode | String | Oui | Mode d'exécution. Fixé à "1" pour la reconnaissance vocale en temps réel. |
device_id | String | Oui | Chaî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. |
| String | Non | Active 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. |
| String | Non | Le 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_path | String | Non | Chemin 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_wav | String | Non | Enregistre 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_size | int | Non | Taille 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_level | int | Non | Niveau 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 niveau | Type | Obligatoire | Description |
|---|---|---|---|
service_type | int | Oui | Type de service vocal. Fixé à 4 pour la reconnaissance vocale en temps réel. |
nls_config | object | Oui | Objet 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.model | string | Oui | Nom du modèle. Définissez-le sur qwen-audio-3.1-asr-flash-message. |
nls_config.sr_format | string | Oui | Le format audio. Valeurs valides :
ImportantSi vous fournissez des données PCM et définissez ce paramètre sur |
nls_config.sample_rate | int | Oui | Le taux d’échantillonnage en Hz. Seule la valeur |
nls_config.language_hints | array[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
Ce paramètre s’applique uniquement aux résultats finaux ( |
nls_config.max_sentence_silence | int | Non | 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 : |
nls_config.heartbeat | boolean | Non | Indique s'il faut activer les paquets de battement de cœur. Valeur par défaut : false.
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_enabled | boolean | Non | Indique 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_enabled | boolean | Non | Indique 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_id | string | Non | 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_vocabulary | object | Non | Mots-clés instantanés. Transmis sous forme de paires clé-valeur, où la clé est le texte du mot chaud ( 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. |
| float | Non | 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 :
Il s'agit d'un paramètre de configuration avancé. Son ajustement peut affecter considérablement les résultats de la reconnaissance. Recommandations :
|
| BOOL | Non | Active 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.
-(NuiResultCode) nui_initialize:(const char *)parameters
logLevel:(NuiSdkLogLevel)level
saveLog:(BOOL)save_log;
Description des paramètres
| Paramètre | Type | Description |
|---|---|---|
parameters | char* | 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. |
level | NuiSdkLogLevel | Niveau d'impression pour les propres journaux du SDK. |
save_log | BOOL | Indique 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. |
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.
-(NuiResultCode) nui_set_params:(const char *)params;
Description des paramètres
| Paramètre | Type | Description |
|---|---|---|
params | char* | Paramètres de qualité de reconnaissance. |
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ètre | Type | Description |
|---|---|---|
vad_mode |
| Mode VAD. Fixé à |
dialog_params | char* | Si Le contenu est au format JSON : |
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ètre | Type | Description |
|---|---|---|
force | BOOL | Indique 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. |
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ètre | Type | Description |
|---|---|---|
action_params | char* | Chaîne JSON utilisée pour mettre à jour le contexte de reconnaissance ou d'autres comportements à l'exécution. |
action_params.type | String | Fixé à "action". |
action_params.command | String | Commande à 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.context | String | Lorsque |
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.
-(NuiResultCode) nui_update_audio_data:(const char *)data
Len:(int)length
FirstPack:(BOOL)first_pack;
Description des paramètres
| Paramètre | Type | Description |
|---|---|---|
| const char * | Les données audio à transmettre. |
length | int | La longueur des données audio, en octets. |
| BOOL | Vous n'avez pas besoin d'utiliser ce paramètre. |
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.
-(NuiResultCode) nui_push_reference_data:(const char *)data
Len:(int)length
FirstPack:(BOOL)first_pack;
Description des paramètres
| Paramètre | Type | Description |
|---|---|---|
| const char * | Les données audio à transmettre. |
length | int | La longueur des données audio, en octets. |
| BOOL | Vous n'avez pas besoin d'utiliser ce paramètre. |
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.
-(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.
-(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ètre | Type | Description |
|---|---|---|
nuiEvent | NuiCallbackEvent | Événement de rappel. |
dialog | long | ID de session. Vous n'avez pas besoin d'utiliser ce paramètre. |
wuw | char* | Réveil vocal. Vous n'avez pas besoin d'utiliser ce paramètre. |
asr_result | char* | Résultat de la reconnaissance vocale. |
finish | BOOL | Indique si le tour de reconnaissance actuel est terminé. |
code | int | Code 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ètre | Description |
|---|---|
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_CLOSE | L'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ètre | Type | Description |
|---|---|---|
audioData | char* | Les données audio à fournir. |
len | int | La 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ètre | Type | Description |
|---|---|---|
nuiEvent | NuiCallbackEvent | L'événement de rappel. |
| char* | Vous n'avez pas besoin d'utiliser ce paramètre. |
info_len | int | Vous n'avez pas besoin d'utiliser ce paramètre. |
buffer | char* | Données auxiliaires, telles que l'audio traité par l'AEC. |
len | int | La 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énement | Description |
|---|---|
EVENT_TRANSCRIBER_STARTED | La tâche a démarré avec succès. |
EVENT_VAD_START | Dé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_ERROR | Déclenché lorsqu'aucune donnée audio n'a été reçue pendant 2 secondes consécutives. |
EVENT_SENTENCE_END | La fin d'une phrase a été détectée. Le résultat complet de reconnaissance de cette phrase est renvoyé. |
EVENT_TRANSCRIBER_COMPLETE | La reconnaissance vocale est terminée. |
| Données audio après traitement par annulation d'écho acoustique (AEC). |