Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:CosyVoice Android SDK

Dernière mise à jour :Oct 11, 2026

Convertissez du texte en parole expressive et de haute qualité dans votre application Android avec le SDK de synthèse vocale (TTS) CosyVoice.

NativeNui

Le SDK prend en charge plusieurs instances NativeNui et utilise des rappels pour fournir les événements de synthèse.

Points clés de l'architecture :
  • Instances multiples : Créez une instance en appelant new NativeNui(Constants.ModeType.MODE_STREAM_INPUT_TTS).

  • Piloté par rappels : Recevez les événements et les données audio via l'interface INativeStreamInputTtsCallback.

  • Types d'événements :
    • STREAM_INPUT_TTS_EVENT_SYNTHESIS_STARTED : La tâche de synthèse a démarré.
    • onStreamInputTtsDataCallback : Les données audio sont fournies.
    • STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE : La tâche de synthèse est terminée.
    • STREAM_INPUT_TTS_EVENT_TASK_FAILED : La tâche de synthèse a échoué.

Flux d'utilisation

CosyVoice prend en charge deux modes d'appel : l'entrée unique et l'entrée en streaming.

L'entrée unique est adaptée aux textes courts et à tout scénario utilisant le balisage SSML.

  1. playStreamInputTts() ou asyncPlayStreamInputTts() : envoyer un texte complet et démarrer la synthèse. La première est synchrone et retourne un résultat une fois la synthèse terminée ; la seconde est asynchrone et retourne un résultat immédiatement après le démarrage de la synthèse.
  2. onStreamInputTtsDataCallback() — réception des données audio.
  3. STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE — la synthèse est terminée.

L'entrée en streaming est adaptée aux conversations en temps réel et aux scénarios de longue durée de type « parler au fil de l'eau ». Le SSML n'est pas pris en charge dans ce mode.

  1. startStreamInputTts() — initialisation du SDK et configuration des paramètres de rappel et de connexion.
  2. sendStreamInputTts() — envoi de texte en continu au fur et à mesure qu'il devient disponible.
  3. onStreamInputTtsDataCallback() — réception des données audio.
  4. stopStreamInputTts() ou asyncStopStreamInputTts() : envoyer la requête de fin de synthèse. La première est synchrone et retourne un résultat une fois la synthèse terminée ; la seconde est asynchrone et retourne un résultat immédiatement après l'envoi de la requête.
  5. STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE — la synthèse est terminée.

startStreamInputTts

Démarre la synthèse en flux bidirectionnel, ouvre la connexion au service et enregistre le rappel pour les événements et les données audio.

Cette méthode peut bloquer. Appelez-la sur un thread autre que celui de l'interface utilisateur.

Signature de la méthode :
public synchronized int startStreamInputTts(INativeStreamInputTtsCallback callback,
                                            String ticket,
                                            String parameters,
                                            String session_id,
                                            int log_level,
                                            boolean save_log)
Paramètres :
ParamètreTypeDescription
callbackINativeStreamInputTtsCallbackVotre implémentation de l'interface de rappel des événements et des données.
ticketStringUne chaîne JSON contenant les paramètres d'authentification, de connexion et de débogage. Consultez la référence du paramètre ticket ci-dessous.
parametersStringUne chaîne JSON qui contrôle la sortie de la synthèse vocale. Consultez la référence des paramètres ci-dessous.
session_idStringUn identifiant de session spécifié par le client. S'il est omis, le serveur en génère un automatiquement.
log_levelintContrôle le niveau de détail des journaux internes du SDK.

Valeurs valides :

  • 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ésactive la journalisation)
save_logbooleanIndique s'il faut écrire les journaux dans un fichier local. Si true, définissez debug_path dans le ticket pour spécifier la destination, et définissez éventuellement max_log_file_size pour plafonner la taille du fichier.
Valeur de retour :

Renvoie un code d'erreur.

exemple JSON de ticket :
{
    "url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
    "apikey": "sk-****",
    "device_id": "my_device_id"
}
paramètres du ticket :
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.

apikeyStringOuiVotre clé API. Pour limiter la portée des dégâts en cas d'exposition d'une clé à longue durée de vie, utilisez plutôt une clé API temporaire à courte durée de vie.
device_idStringOuiUn identifiant unique pour l'utilisateur final. Définissez-le sur votre identifiant d'utilisateur dans l'application ou sur un identifiant d'appareil généré par le client. Cet identifiant est principalement utilisé pour la corrélation des journaux et le dépannage.
complete_waiting_msintNonAprès avoir appelé la méthode stop, le temps en millisecondes à attendre pour l'événement STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE avant l'expiration du délai.

Par défaut : 10000.

debug_pathStringNonLe chemin local où les fichiers journaux sont écrits.

Ce paramètre prend effet uniquement lorsque save_log est défini sur true pour startStreamInputTts, playStreamInputTts ou asyncPlayStreamInputTts. Dans ce cas, le chemin est requis ; sinon, l'appel renvoie une erreur.

Au maximum deux fichiers journaux sont conservés sur l'appareil.

max_log_file_sizeintNonLa taille maximale du fichier journal en octets.

Ce paramètre prend effet uniquement lorsque save_log est défini sur true pour startStreamInputTts, playStreamInputTts ou asyncPlayStreamInputTts.

Par défaut : 104857600 (100 × 1024 × 1024 octets, ou 100 Mio).

log_track_levelintNonNiveau de filtrage pour les journaux fournis via le rappel de journal (onStreamInputTtsLogTrackCallback).

Par défaut : 2.

Valeurs valides :

  • 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ésactive la journalisation)

Remarque : log_track_level fonctionne conjointement avec log_level (défini sur startStreamInputTts, playStreamInputTts ou asyncPlayStreamInputTts) pour déterminer quels journaux atteignent le rappel. Une entrée de journal doit être au niveau ou au-dessus de log_track_level et log_level pour être transmise. Par exemple, si log_track_level est 2 (INFO) et que log_level est 3 (WARNING), seuls les niveaux WARNING et supérieurs (niveau >= 3) atteignent le rappel.

exemple JSON de paramètres :
{
    "model": "cosyvoice-v3-plus",
    "voice": "longanyang",
    "format": "mp3",
    "volume": 50,
    "rate": 1.0,
    "pitch": 1.0
}
référence des paramètres :
ParamètreTypeObligatoireDescription
modelStringOuiLe nom du modèle.
voiceStringOuiLa voix utilisée pour la synthèse vocale.
  • Voix système : Consultez la liste des voix CosyVoice
  • Voix clonées : voix personnalisées créées par clonage de voix
  • Voix personnalisées : voix personnalisées créées par conception de voix
formatStringNonLe format d'encodage audio.

Valeurs valides :

  • pcm
  • wav
  • mp3 (par défaut)
  • opus
enable_audio_decoderbooleanNonIndique s'il faut activer le décodeur interne du SDK. Par défaut : false.

Ce paramètre ne prend effet que lorsque le format d'encodage audio est opus ou mp3. Lorsqu'il est activé, le SDK décode les données audio opus ou mp3 en données PCM avant de les renvoyer.

volumeintNonLe niveau de volume.

Valeur par défaut : 50.

Valeurs valides : [0, 100].

sample_rateintNonLa fréquence d'échantillonnage audio en Hz.

Valeurs valides : 8000, 16000, 22050 (par défaut), 24000, 44100, 48000.

ratefloatNonLa vitesse de parole.

Valeur par défaut : 1.0.

Valeurs valides : [0.5, 2.0].

pitchfloatNonLa hauteur.

Valeur par défaut : 1.0.

Valeurs valides : [0.5, 2.0].

bit_rateintNonLe débit audio en kbit/s. Lorsque le format audio est mp3 ou opus, utilisez bit_rate pour ajuster le débit.

Valeur par défaut : 32.

Valeurs valides : [6, 510].

enable_ssmlbooleanNonIndique s'il faut activer le SSML.

Par défaut : false.

  • true : activé.
  • false : désactivé.

Pour les restrictions d'utilisation du SSML (modèles, voix et API pris en charge), consultez Limites.

word_timestamp_enabledbooleanNonIndique s'il faut activer les horodatages au niveau des mots.

Valeur par défaut : false.

Disponible uniquement en mode de sortie en streaming. Voix prises en charge : voix clonées de cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-flash, cosyvoice-v3-plus, cosyvoice-v2, ainsi que les voix système marquées comme prises en charge dans la CosyVoice liste des voix. Les voix clonées d'autres modèles ne prennent pas en charge cette fonctionnalité.

Les horodatages des mots sont renvoyés dans le champ all_response de INativeStreamInputTtsCallback.

seedintNonUne graine aléatoire pour contrôler la variation dans la sortie de synthèse. Lorsque la version du modèle, le texte, la voix et les autres paramètres sont inchangés, l'utilisation de la même graine produit des résultats identiques.

Valeur par défaut : 0.

Valeurs valides : [0, 65535].

language_hintsString[]Non

Important

  • Ce paramètre est un tableau, mais la version actuelle ne traite que le premier élément. Transmettez une valeur unique.
  • Ce paramètre spécifie la langue cible pour la synthèse vocale. Il n'est pas lié à la langue de l'échantillon audio utilisé dans le clonage de voix. Pour définir la langue source pour une tâche de clonage, consultez la référence de l’API de clonage de voix.

Spécifie la langue cible pour la synthèse vocale afin d'améliorer la qualité de la sortie.

Lorsque la prononciation des chiffres, le développement des abréviations, la lecture des symboles ou la synthèse dans une langue minoritaire ne répondent pas aux attentes, utilisez ce paramètre. Par exemple :

  • Prononciation inattendue des chiffres : « hello, this is 110 » est lu comme « hello, this is one zero » au lieu de la prononciation chinoise attendue
  • Prononciation inexacte des symboles : « @ » est lu comme son équivalent chinois au lieu de « at »
  • Mauvaise qualité de synthèse des langues minoritaires avec des résultats non naturels

Valeurs valides

  • zh : Chinois
  • en : Anglais
  • fr : Français
  • de : Allemand
  • ja : Japonais
  • ko : Coréen
  • ru : Russe
  • pt : Portugais
  • th : Thaï
  • id : Indonésien
  • vi : Vietnamien
  • es : Espagnol
  • it : Italien
  • ms : malais
  • fil : filipino
  • ar : Arabe
instructionStringNonContrôle les caractéristiques de synthèse telles que le dialecte, l'émotion ou le style de parole.

Pour plus de détails sur l'utilisation, consultez Contrôle des instructions.

enable_aigc_tagbooleanNonSpécifie s'il faut intégrer un filigrane AIGC dans l'audio généré. Lorsqu'il est défini sur true, le filigrane est intégré dans les fichiers audio des formats pris en charge (wav/mp3/opus).

Valeur par défaut : false.

RemarqueSeuls cosyvoice-v3-flash, cosyvoice-v3-plus, cosyvoice-v2 prennent en charge cette fonctionnalité.

aigc_propagatorStringNonDéfinit le champ ContentPropagator dans le filigrane AIGC, identifiant le propagateur de contenu. Ne prend effet que lorsque enable_aigc_tag est true.

Valeur par défaut : UID Alibaba Cloud.

RemarqueSeuls cosyvoice-v3-flash, cosyvoice-v3-plus, cosyvoice-v2 prennent en charge cette fonctionnalité.

aigc_propagate_idStringNonDéfinit le champ PropagateID dans le filigrane AIGC, identifiant de manière unique une action de propagation spécifique. Ne prend effet que lorsque enable_aigc_tag est true.

Valeur par défaut : l'identifiant de la requête de synthèse vocale en cours.

RemarqueSeuls cosyvoice-v3-flash, cosyvoice-v3-plus, cosyvoice-v2 prennent en charge cette fonctionnalité.

hot_fixobjectNonConfiguration de correction à chaud du texte pour personnaliser la prononciation de mots spécifiés ou remplacer du texte avant la synthèse.

Remarquecosyvoice-v2 ne prend pas en charge cette fonctionnalité.

Champs :

  • pronunciation : Spécifie les annotations pinyin pour les mots dont la prononciation par défaut doit être corrigée.
  • replace : Remplace les mots spécifiés avant la synthèse. Le texte de remplacement est utilisé comme entrée réelle pour la synthèse.

Exemple :

"hot_fix": {
  "pronunciation": [
    {"天气": "tian1 qi4"}
  ],
  "replace": [
    {"今天": "金天"}
  ]
}
enable_markdown_filterbooleanNon

RemarqueSeules les voix clonées de cosyvoice-v3-flash prennent en charge cette fonctionnalité.

Indique s'il faut filtrer le balisage Markdown du texte d'entrée avant la synthèse afin que le balisage ne soit pas lu à voix haute.

Par défaut : false.

Valeurs valides :

  • true : activer le filtrage Markdown.
  • false : désactiver le filtrage Markdown.

sendStreamInputTts

Envoie le texte à synthétiser. Utilisez cette méthode conjointement avec startStreamInputTts.

Après avoir appelé startStreamInputTts, appelez cette méthode pour pousser du texte en continu.

Lorsque vous avez envoyé tout le texte, appelez stopStreamInputTts ou asyncStopStreamInputTts pour terminer l'entrée.

Signature de la méthode :
public synchronized int sendStreamInputTts(String text)
Paramètres :
ParamètreTypeDescription
textStringTexte à synthétiser. Le SSML n'est pas pris en charge. Les balises SSML dans l'entrée sont lues à voix haute comme du texte brut plutôt que d'être analysées.
Valeur de retour :

Renvoie un code d'erreur.

stopStreamInputTts

Méthode synchrone qui indique au serveur que tout le texte a été envoyé et qui bloque jusqu'à ce que tout l'audio ait été synthétisé et que l'événement STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE soit reçu.

Le délai d'attente est contrôlé par complete_waiting_ms.

Signature de la méthode :
public synchronized int stopStreamInputTts()
Valeur de retour :

Renvoie un code d'erreur.

asyncStopStreamInputTts

Méthode asynchrone qui indique au serveur que tout le texte a été envoyé. L'appel retourne immédiatement et la synthèse se poursuit en arrière-plan.

Utilisez l'événement STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE pour détecter la fin de la synthèse.

Signature de la méthode :
public synchronized int asyncStopStreamInputTts()
Valeur de retour :

Renvoie un code d'erreur.

cancelStreamInputTts

Ferme immédiatement la connexion au serveur et interrompt la tâche de synthèse en cours. Aucun autre rappel audio n'est fourni après cet appel.

Signature de la méthode :
public synchronized int cancelStreamInputTts()
Valeur de retour :

Renvoie un code d'erreur.

playStreamInputTts

Méthode de synthèse synchrone à entrée unique. L'appel envoie le texte, bloque pendant la réception de l'audio et ne retourne qu'une fois la synthèse terminée. Vous n'avez pas besoin d'appeler la méthode stop par la suite.

Le SSML est activé par défaut pour cette méthode. Pour modifier ce comportement, définissez explicitement enable_ssml.

Appeler cette méthode sur un thread non UI.

Signature de la méthode :
public synchronized int playStreamInputTts(INativeStreamInputTtsCallback callback,
                                           String ticket,
                                           String parameters,
                                           String text,
                                           String session_id,
                                           int log_level,
                                           boolean save_log)
Paramètres :

Le rappel, le ticket et les autres paramètres partagés ont la même signification que dans startStreamInputTts.

ParamètreTypeDescription
textStringTexte à synthétiser. Prend en charge le SSML.
Valeur de retour :

Renvoie un code d'erreur.

asyncPlayStreamInputTts

Méthode de synthèse asynchrone à entrée unique. L'appel retourne immédiatement, la synthèse s'exécute en arrière-plan et les résultats sont fournis via le rappel. Vous n'avez pas besoin d'appeler la méthode stop par la suite.

Le SSML est activé par défaut pour cette méthode. Pour modifier ce comportement, définissez explicitement enable_ssml.

Signature de la méthode :
public synchronized int asyncPlayStreamInputTts(INativeStreamInputTtsCallback callback,
                                           String ticket,
                                           String parameters,
                                           String text,
                                           String session_id,
                                           int log_level,
                                           boolean save_log)
Paramètres :

Le rappel, le ticket et les autres paramètres partagés ont la même signification que dans startStreamInputTts.

ParamètreTypeDescription
textStringTexte à synthétiser. Prend en charge le SSML.
Valeur de retour :

Renvoie un code d'erreur.

INativeStreamInputTtsCallback

L'interface de rappel TTS en streaming CosyVoice fournit les événements de synthèse, les données audio et les journaux.

onStreamInputTtsEventCallback : réception des événements

Signature de la méthode :
void onStreamInputTtsEventCallback(StreamInputTtsEvent event,
                                   String task_id,
                                   String session_id,
                                   int ret_code,
                                   String error_msg,
                                   String timestamp,
                                   String all_response);
Paramètres :
ParamètreTypeDescription
eventStreamInputTtsEventL'événement en cours de distribution.
task_idStringL'identifiant de la tâche de synthèse.
session_idStringL'identifiant de session. Renvoyé tel que fourni par le client ; généré par le serveur s'il est omis.
ret_codeintCode d'erreur. Valide uniquement avec l'événement STREAM_INPUT_TTS_EVENT_TASK_FAILED.
error_msgStringMessage d'erreur. Valide uniquement avec l'événement STREAM_INPUT_TTS_EVENT_TASK_FAILED.
timestampStringInformations d'horodatage pour le résultat de la synthèse.
all_responseStringLa réponse JSON complète. L'analyser pour extraire toutes les données supplémentaires dont vous avez besoin.

onStreamInputTtsDataCallback : réception des données audio

Le SDK invoque ce rappel de manière répétée pendant la synthèse. Lisez les données audio à partir du rappel.

Signature de la méthode :
void onStreamInputTtsDataCallback(byte[] data);
Paramètres :
ParamètreTypeDescription
databyte[]Données audio pour le segment actuel. Les utiliser pour :
  • Assembler un fichier audio complet et le lire.
  • Le lire en temps réel avec un lecteur compatible avec le streaming.

Remarques :

  • Pour les formats compressés tels que mp3 et opus, la lecture segmentée nécessite un lecteur en streaming. Le décodage peut échouer si vous lisez les segments trame par trame.
  • Pour assembler un fichier complet, ouvrez-le en mode ajout et écrivez chaque segment dans l'ordre.
  • Pour wav et mp3, seule la première invocation de onStreamInputTtsDataCallback contient l'en-tête du fichier. Les invocations suivantes transportent l'audio brut. Concaténez tous les morceaux buffer dans l'ordre. Pour opus, chaque trame est une page Ogg autonome et peut être concaténée directement.

onStreamInputTtsLogTrackCallback : réception des journaux de suivi

Utilisez ce rappel pour recevoir les journaux internes détaillés du SDK, ce qui facilite le dépannage et le débogage.

Signature de la méthode :
default void onStreamInputTtsLogTrackCallback(Constants.LogLevel level, String log)

StreamInputTtsEvent

Énumération des types d'événements pour la synthèse vocale en flux continu CosyVoice.

ÉvénementDescription
STREAM_INPUT_TTS_EVENT_SYNTHESIS_STARTEDLe serveur a accepté la requête et a commencé le traitement. Peu de temps après cet événement, onStreamInputTtsDataCallback commence à renvoyer les premières données audio.
STREAM_INPUT_TTS_EVENT_SENTENCE_SYNTHESISInformations d'exécution sur la synthèse, y compris les données de facturation.
STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETELe serveur a envoyé toutes les données audio, et onStreamInputTtsEventCallback ne sera plus appelé. Cet événement est le signal explicite que le flux audio est terminé.
STREAM_INPUT_TTS_EVENT_TASK_FAILEDLa tâche a échoué. Lisez le champ all_response de INativeStreamInputTtsCallback pour obtenir task_id, error_code et error_message afin d'identifier la cause.
{
    "header": {
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "event": "task-failed",
        "error_code": "InvalidParameter",
        "error_message": "[tts:]Engine return error code: 418",
        "attributes": {}
    },
    "payload": {}
}

Code d'exemple

  1. Obtenir une clé API : Obtenir une clé API. Pour des raisons de sécurité, stockez la clé API dans une variable d'environnement.

    RemarqueUtilisez une clé API temporaire lorsque vous devez accorder un accès temporaire à une application ou à un utilisateur tiers, ou lorsque vous want contrôler strictement les opérations à haut risque telles que l'accès ou la suppression de données sensibles. Une clé API temporaire est valide pendant 60 secondes, après quoi vous devez en demander une nouvelle.

  2. Téléchargez le SDK et exécutez l'exemple de code :
    • Téléchargez le dernier package du SDK.
    • Décompressez le package. Le SDK au format AAR se trouve dans app/libs — ajoutez-le aux dépendances de votre projet. Pour l'intégration C++ Android, récupérez les bibliothèques partagées depuis android_libs et les en-têtes depuis android_include à l'intérieur du ZIP.
    • Ouvrez le projet dans Android Studio. Le code d'exemple se trouve dans DashCosyVoiceStreamTtsActivity.java — remplacez la clé API par la vôtre pour tester la fonctionnalité.

Modes d'invocation

ModeDescription
Saisie de texte en une seule foisÉtapes :
  1. Initialiser le SDK et les composants du lecteur.
  2. Configurer les paramètres pour votre scénario.
  3. Appelez playStreamInputTts ou asyncPlayStreamInputTts pour soumettre le texte et démarrer la synthèse.
  4. Réception de l'événement STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE — la synthèse est terminée.
Cas d'utilisation :
  • Synthèse de texte court
  • Scénarios nécessitant un balisage SSML
Saisie de texte en flux continuÉtapes :
  1. Initialiser le SDK et les composants du lecteur.
  2. Configurer les paramètres pour votre scénario.
  3. Appeler startStreamInputTts pour démarrer la synthèse en flux continu.
  4. Appelez sendStreamInputTts pour envoyer du texte en continu au fur et à mesure qu'il devient disponible.
  5. Recevoir les données audio binaires dans onStreamInputTtsDataCallback.
  6. Appelez stopStreamInputTts ou asyncStopStreamInputTts pour terminer l'entrée et attendre la fin de la synthèse.
  7. Réception de l'événement STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE — la synthèse est terminée.
Cas d'utilisation :
  • Conversation en temps réel et scénarios de longue durée de type « parlez au fur et à mesure »
  • Le balisage SSML n'est pas pris en charge dans ce mode

Fonctionnalités avancées

Balisage SSML

Objectif : Intégrer des balises XML dans le texte pour affiner la prononciation, la vitesse de parole, les pauses et autres détails prosodiques.

Limites : le SSML est pris en charge uniquement avec l'entrée de texte en une seule fois (les méthodes playStreamInputTts ou asyncPlayStreamInputTts). L'entrée de texte en streaming (la méthode sendStreamInputTts) ne prend pas en charge le SSML.

Utilisation : Lorsque vous appelez playStreamInputTts ou asyncPlayStreamInputTts, le SDK active automatiquement le SSML. Transmettez le texte contenant des balises SSML via le paramètre text.

Pour plus d'informations, consultez SSML.

Expressions mathématiques

Objectif : Permettre au modèle de lire correctement à voix haute les formules et expressions mathématiques courantes.

Utilisation : Transmettez le texte contenant des expressions mathématiques au format LaTeX via le paramètre text. Pour plus d'informations, consultez Convertir des formules LaTeX en parole (uniquement en langue chinoise).