Share via


Migrer du code de la version 3.1 vers la version 3.2 de l’API REST

L’API REST de reconnaissance vocale est utilisée pour la Transcription par lots et la reconnaissance vocale personnalisée. Cet article décrit les modifications de la version 3.1 à la version 3.2.

Important

L’API REST de reconnaissance vocale v3.2 est en préversion. L’API REST de reconnaissance vocale v3.1 est en disponibilité générale. L’API REST de reconnaissance vocale v3.0 sera mise hors service le 1er avril 2026. Pour plus d’informations, consultez les guides de migration de l’API REST reconnaissance vocale v3.0 vers v3.1 et v3.1 vers v3.2.

Chemin de base

Vous devez mettre à jour le chemin de base dans votre code en le modifiant de /speechtotext/v3.1 en /speechtotext/v3.2-preview.2. Par exemple, pour obtenir des modèles de base dans la région eastus, utilisez https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base plutôt que https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base.

Pour plus d’informations, consultez ID d’opération plus loin dans ce guide.

Transcription Batch

Important

De nouveaux tarifs sont en vigueur pour la transcription par lots via l'API REST Speech to Text v3.2. Pour plus d’informations, consultez le guide de tarification.

Limitations de compatibilité descendante

N’utilisez pas l’API REST de reconnaissance vocale v3.0 ou v3.1 pour récupérer une transcription créée via l’API REST de reconnaissance vocale v3.2. Vous pourrez voir un message d'erreur comme celui-ci : « La version de l'API ne peut pas être utilisée pour accéder à cette transcription. Utilisez l'API version v3.2 ou ultérieure. »

Mode d’identification de la langue

LanguageIdentificationMode est ajouté à LanguageIdentificationProperties en tant que frère de candidateLocales et speechModelMapping. Les modes disponibles pour l’identification de la langue sont Continuous ou Single. L’identification continue de la langue est la valeur par défaut. Pour plus d’informations, consultez Identification de la langue.

Modèles Whisper

Azure AI Speech prend désormais en charge le modèle Whisper d’OpenAI via l’API REST Reconnaissance vocale v3.2. Pour plus d’informations, consultez le guide Créer une transcription par lots.

Remarque

Azure OpenAI Service prend également en charge le modèle Whisper d’OpenAI pour la reconnaissance vocale avec une API REST synchrone. Pour en savoir plus, consultez le guide de démarrage rapide. Consultez Qu’est-ce que le modèle Whisper ? pour en savoir plus sur l’utilisation d’Azure AI Speech et d’Azure OpenAI Service.

Reconnaissance vocale personnalisée

Important

Vous serez facturé pour la formation du modèle vocal personnalisé si le modèle de base a été créé le 1er octobre 2023 ou à une date ultérieure. La formation ne vous est pas facturée si le modèle de base a été créé avant octobre 2023. Pour plus d’informations, consultez Tarification d’Azure AI Speech.

Pour déterminer par programme si un modèle a été créé avant ou après le 1er octobre 2023, utilisez la propriété chargedForAdaptation qui est nouvelle dans la version 3.2.

Afficher la mise en forme du texte personnalisé

Pour prendre en charge l’adaptation du modèle avec des données de mise en forme de texte d’affichage personnalisées, l’opération de Datasets_Create prend en charge le type de données OutputFormatting. Pour plus d’informations, consultez Charger des jeux de données.

Ajout d’une définition pour OutputFormatType avec les valeurs d’énumération Lexical et Display.

"OutputFormatType": {
    "title": "OutputFormatType",
    "enum": [
        "Lexical",
        "Display"
    ],
    "type": "string",
    "x-ms-enum": {
        "name": "OutputFormatType",
        "modelAsString": true,
        "values": [
            {
                "value": "Lexical",
                "description": "Model provides the transcription output without formatting."
            },
            {
                "value": "Display",
                "description": "Model supports display formatting transcriptions output or endpoints."
            }
        ]
    }
},

La valeur d’énumération OutputFormattingData est ajoutée à FileKind (type de données d’entrée).

La propriété supportedOutputFormat est ajoutée à BaseModelFeatures. Cette propriété fait partie de la définition BaseModel.

"BaseModelFeatures": {
    "title": "BaseModelFeatures",
    "description": "Features supported by the model.",
    "type": "object",
    "allOf": [
        {
            "$ref": "#/definitions/SharedModelFeatures"
        }
    ],
    "properties": {
        "supportsAdaptationsWith": {
            "description": "Supported dataset kinds to adapt the model.",
            "type": "array",
            "items": {
                "$ref": "#/definitions/DatasetKind"
            },
            "readOnly": true
        },
        "supportedOutputFormat": {
            "description": "Supported output formats.",
            "type": "array",
            "items": {
                "$ref": "#/definitions/OutputFormatType"
            },
            "readOnly": true
        }
    }
},

Frais d’adaptation

La propriété chargeForAdaptation est ajoutée à BaseModelProperties. Cette propriété fait partie de la définition BaseModel.

Important

Vous serez facturé pour la formation du modèle vocal personnalisé si le modèle de base a été créé le 1er octobre 2023 ou à une date ultérieure. La formation ne vous est pas facturée si le modèle de base a été créé avant octobre 2023. Pour plus d’informations, consultez Tarification d’Azure AI Speech.

Si la valeur de chargeForAdaptation est true, vous êtes facturé pour la formation du modèle. Si la valeur est false, vous êtes facturé pour la formation du modèle. Utilisez la propriété chargeForAdaptation au lieu de la date de création pour déterminer par programme si la formation d’un modèle vous est facturée.

"BaseModelProperties": {
    "title": "BaseModelProperties",
    "type": "object",
    "properties": {
        "deprecationDates": {
            "$ref": "#/definitions/BaseModelDeprecationDates"
        },
        "features": {
            "$ref": "#/definitions/BaseModelFeatures"
        },
        "chargeForAdaptation": {
            "description": "A value indicating whether model adaptation is charged.",
            "type": "boolean",
            "readOnly": true
        }
    }
},

Normalisation du texte

La propriété textNormalizationKind est ajoutée à DatasetProperties.

Définition d’entité pour TextNormalizationKind : le type de normalisation de texte.

  • Par défaut : normalisation du texte par défaut (par exemple, « deux à trois » remplace « 2 à 3 » en en-US).
  • Aucun : aucune normalisation de texte n’est appliquée au texte d’entrée. Cette valeur est une option de remplacement qui ne doit être utilisée que lorsque le texte est normalisé avant le chargement.

Propriétés d’évaluation

Ajout du nombre de jetons et des propriétés d’erreur de jeton aux propriétés EvaluationProperties :

  • correctTokenCount1 : nombre de jetons correctement reconnus par model1.
  • tokenCount1 : nombre de jetons traités par model1.
  • tokenDeletionCount1 : nombre de jetons reconnus par model1 qui sont des suppressions.
  • tokenErrorRate1 : taux d’erreur de jeton de reconnaissance avec model1.
  • tokenInsertionCount1 : nombre de jetons reconnus par model1 qui sont des insertions.
  • tokenSubstitutionCount1 : nombre de mots reconnus par model1 qui sont des substitutions.
  • correctTokenCount2 : nombre de jetons correctement reconnus par model2.
  • tokenCount2 : nombre de jetons traités par model2.
  • tokenDeletionCount2 : nombre de jetons reconnus par model2 qui sont des suppressions.
  • tokenErrorRate2 : taux d’erreur de jeton de reconnaissance avec model2.
  • tokenInsertionCount2 : nombre de jetons reconnus par model2 qui sont des insertions.
  • tokenSubstitutionCount2 : nombre de mots reconnus par model2 qui sont des substitutions.

Copie de modèles

Les changements suivants s’appliquent au scénario dans lequel vous copiez un modèle.

  • Ajout de la nouvelle opération Models_Copy. Voici le schéma dans la nouvelle opération de copie : "$ref": "#/definitions/ModelCopyAuthorization"
  • Dépréciation de l’opération Models_CopyTo. Voici le schéma dans l’opération de copie déconseillée : "$ref": "#/definitions/ModelCopy"
  • Ajout de la nouvelle opération Models_AuthorizeCopy qui retourne "$ref": "#/definitions/ModelCopyAuthorization". Vous pouvez utiliser cette entité retournée dans la nouvelle opération Models_Copy.

Ajout d’une nouvelle définition d’entité pour ModelCopyAuthorization :

"ModelCopyAuthorization": {
    "title": "ModelCopyAuthorization",
    "required": [
        "expirationDateTime",
        "id",
        "sourceResourceId",
        "targetResourceEndpoint",
        "targetResourceId",
        "targetResourceRegion"
    ],
    "type": "object",
    "properties": {
        "targetResourceRegion": {
            "description": "The region (aka location) of the target speech resource (e.g., westus2).",
            "minLength": 1,
            "type": "string"
        },
        "targetResourceId": {
            "description": "The Azure Resource ID of the target speech resource.",
            "minLength": 1,
            "type": "string"
        },
        "targetResourceEndpoint": {
            "description": "The endpoint (base url) of the target resource (with custom domain name when it is used).",
            "minLength": 1,
            "type": "string"
        },
        "sourceResourceId": {
            "description": "The Azure Resource ID of the source speech resource.",
            "minLength": 1,
            "type": "string"
        },
        "expirationDateTime": {
            "format": "date-time",
            "description": "The expiration date of this copy authorization.",
            "type": "string"
        },
        "id": {
            "description": "The ID of this copy authorization.",
            "minLength": 1,
            "type": "string"
        }
    }
},

Ajout d’une nouvelle définition d’entité pour ModelCopyAuthorizationDefinition :

"ModelCopyAuthorizationDefinition": {
    "title": "ModelCopyAuthorizationDefinition",
    "required": [
        "sourceResourceId"
    ],
    "type": "object",
    "properties": {
        "sourceResourceId": {
            "description": "The Azure Resource ID of the source speech resource.",
            "minLength": 1,
            "type": "string"
        }
    }
},

Ajout d’une nouvelle propriété copy.

  • URI copyTo : emplacement de l’action de copie de modèle obsolète. Pour plus d’informations, consultez l’opération Models_CopyTo.
  • URI copy : emplacement de l’action de copie de modèle. Pour plus d’informations, consultez l’opération Models_Copy.
"CustomModelLinks": {
    "title": "CustomModelLinks",
    "type": "object",
    "properties": {
      "copyTo": {
        "format": "uri",
        "description": "The location to the obsolete model copy action. See operation \"Models_CopyTo\" for more details.",
        "type": "string",
        "readOnly": true
      },
      "copy": {
        "format": "uri",
        "description": "The location to the model copy action. See operation \"Models_Copy\" for more details.",
        "type": "string",
        "readOnly": true
      },
      "files": {
        "format": "uri",
        "description": "The location to get all files of this entity. See operation \"Models_ListFiles\" for more details.",
        "type": "string",
        "readOnly": true
      },
      "manifest": {
        "format": "uri",
        "description": "The location to get a manifest for this model to be used in the on-prem container. See operation \"Models_GetCustomModelManifest\" for more details.",
        "type": "string",
        "readOnly": true
      }
    },
    "readOnly": true
},

ID d'opération

Vous devez mettre à jour le chemin de base dans votre code en le modifiant de /speechtotext/v3.1 en /speechtotext/v3.2-preview.2. Par exemple, pour obtenir des modèles de base dans la région eastus, utilisez https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base plutôt que https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base.

Étapes suivantes