Entrenamiento de un modelo de habla personalizada

En este artículo, aprenderá a entrenar un modelo personalizado para mejorar la precisión del reconocimiento desde el modelo base de Microsoft. La precisión y calidad del reconocimiento de voz de un modelo de habla personalizada seguirán siendo coherentes, incluso cuando se publique un nuevo modelo base.

Nota:

Se paga por el uso del modelo de voz personalizada y el hospedaje del punto de conexión. También se le cargará por el entrenamiento del modelo de voz personalizado si el modelo base se creó el 1 de octubre de 2023 y versiones posteriores. No se le cobrará por el entrenamiento si el modelo base se creó antes de octubre de 2023. Para obtener más información, consulte Precios de Azure Speech en las herramientas Foundry y la Sección de cargos por adaptación en la guía de migración de voz a texto 3.2.

Entrenar un modelo suele ser un proceso iterativo. En primer lugar, se selecciona un modelo base que es el punto de partida de un nuevo modelo. Puede entrenar un modelo con conjuntos de datos que pueden incluir texto y audio para, luego, probarlo. Si la calidad o la precisión del reconocimiento no cumplen sus requisitos, puede crear un nuevo modelo con datos de entrenamiento adicionales o modificados y, luego, volver a probarlo.

Puede usar un modelo personalizado durante un tiempo limitado después de entrenarlo. Debe volver a crear y adaptar periódicamente el modelo personalizado a partir del modelo base más reciente para aprovechar las ventajas de la precisión y la calidad mejoradas. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

Importante

Si entrena un modelo personalizado con datos de audio, seleccione un recurso de servicio en una región con hardware dedicado para entrenar datos de audio. Una vez entrenado un modelo, puede copiarlo en un recurso Foundry para Speech en otra región cuando sea necesario.

En las regiones con hardware dedicado al entrenamiento de Habla personalizada, el servicio Voz usará hasta 100 horas de los datos de entrenamiento de audio y puede procesar, aproximadamente, 10 horas de datos al día. Consulte las notas al pie en la tabla de regiones para obtener más información.

Crear un modelo

Sugerencia

Incorpore los modelos de voz personalizados de Speech Studio al portal de Microsoft foundry. En el Portal de Microsoft Foundry, puede reanudar desde donde lo dejó mediante la conexión al recurso de Voz existente. Para obtener más información sobre cómo conectarse a un recurso de Voz existente, consulte Conexión a un recurso de Voz existente.

En el nuevo portal de Microsoft Foundry, envías el trabajo de ajuste fino desde el asistente Ajustar un modelo que abriste cuando iniciaste el ajuste fino de voz personalizado.

  1. En el panel Revisión, revise la configuración y acepte los cargos.
  2. Seleccione Enviar para iniciar el trabajo de ajuste preciso.
  3. Espere a que se complete el entrenamiento. Cuando finalice el entrenamiento, seleccione el modelo personalizado para abrir su página de detalles.

Después de cargar los conjuntos datos de entrenamiento, siga estas instrucciones para empezar a entrenar el modelo:

  1. Inicie sesión en Speech Studio.

  2. Seleccione voz personalizada> El nombre del proyecto >Entrenar modelos personalizados.

  3. Seleccione Entrenar un modelo nuevo.

  4. En la página Seleccionar un modelo de línea base, seleccione un modelo base y, a continuación, elija Siguiente. Si no está seguro, seleccione el modelo más reciente en la parte superior de la lista. El nombre del modelo base corresponde a la fecha en que se publicó en formato AAAAMMDD. Las funcionalidades de personalización del modelo base se muestran entre paréntesis después del nombre del modelo en Speech Studio.

    Importante

    Tome nota de la fecha Expiración para la adaptación. Esta es fecha más reciente en la que puede usar el modelo base para el entrenamiento. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

  5. En la página Elegir datos, seleccione uno o más conjuntos de datos que desee utilizar para el entrenamiento. Si no hay ningún conjunto de datos disponible, cancele la instalación y vaya al menú Conjuntos de datos de voz para cargar conjuntos de datos.

  6. Escriba un nombre y una descripción para el modelo personalizado y seleccione Siguiente.

  7. Opcionalmente, active la casilla Agregar prueba en el siguiente paso. Si omite este paso, puede ejecutar las mismas pruebas más adelante. Para más información, consulte Prueba de la calidad del reconocimiento y Prueba del modelo cuantitativamente.

  8. Seleccione Guardar y cerrar para iniciar la compilación del modelo personalizado.

  9. Vuelva a la página Entrenar modelos personalizados.

    Importante

    Tome nota de la fecha de expiración. Esta es la última fecha en la que puede usar el modelo personalizado para el reconocimiento de voz. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

Antes de continuar, asegúrese de que tiene instalada y configurada la CLI de Voz .

Para crear un modelo con conjuntos de datos para el entrenamiento, use el comando spx csr model create. Construya los parámetros de solicitud según las instrucciones siguientes:

  • Establezca la project propiedad en el identificador de un proyecto existente. Se recomienda la propiedad project para que también pueda administrar el ajuste de la voz personalizada en el portal de Microsoft Foundry. Para obtener el identificador del proyecto, consulte Obtención del identificador del proyecto para la documentación de la API REST .
  • Establezca la propiedad necesaria dataset en el identificador de un conjunto de datos que quiera usar para el entrenamiento. Para especificar varios conjuntos de datos, establezca el parámetro datasets (plural) y separe los identificadores con punto y coma.
  • Establezca la propiedad language obligatoria. La configuración regional del conjunto de datos debe coincidir con la configuración regional del proyecto. Esta configuración regional no se podrá modificar más adelante. La propiedad language de la CLI de Voz corresponde a la propiedad locale en la solicitud y respuesta JSON.
  • Establezca la propiedad name obligatoria. Este parámetro es el nombre que se muestra en el portal Microsoft Foundry. La propiedad name de la CLI de Voz corresponde a la propiedad displayName en la solicitud y respuesta JSON.
  • También tiene la opción de definir la propiedad base. Por ejemplo: --base bbbbcccc-1111-dddd-2222-eeee3333ffff. Si no especifica base, se usa el modelo base predeterminado para la configuración regional. La propiedad base de la CLI de Voz corresponde a la propiedad baseModel en la solicitud y respuesta JSON.

Este es un ejemplo de comando de la CLI de Voz, que crea un modelo con conjuntos de datos para el entrenamiento:

spx csr model create --api-version v3.2 --project YourProjectId --name "My Model" --description "My Model Description" --dataset YourDatasetId --language "en-US"

Importante

Debe establecer --api-version v3.2. La CLI de Voz usa la API REST, pero aún no admite versiones posteriores a v3.2.

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/aaaabbbb-0000-cccc-1111-dddd2222eeee",
  "baseModel": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/base/bbbbcccc-1111-dddd-2222-eeee3333ffff"
  },
  "datasets": [
    {
      "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/datasets/ccccdddd-2222-eeee-3333-ffff4444aaaa"
    }
  ],
  "links": {
    "manifest": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/manifest",
    "copy": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd:copy",
    "files": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/files"
  },
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
  "properties": {
    "deprecationDates": {
      "transcriptionDateTime": "2026-07-15T00:00:00Z"
    },
    "customModelWeightPercent": 30,
    "features": {
      "supportsTranscriptions": true,
      "supportsEndpoints": true,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportedOutputFormats": [
        "Display",
        "Lexical"
      ]
    }
  },
  "lastActionDateTime": "2024-07-14T21:38:40Z",
  "status": "Running",
  "createdDateTime": "2024-07-14T21:38:40Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

Importante

Anote la fecha en la propiedad adaptationDateTime. Esta es fecha más reciente en la que puede usar el modelo base para el entrenamiento. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

Anote la fecha en la propiedad transcriptionDateTime. Esta es la última fecha en la que puede usar el modelo personalizado para el reconocimiento de voz. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

La propiedad self de nivel superior en el cuerpo de la respuesta es el URI del proyecto. Use este URI para obtener detalles sobre las fechas de proyecto, manifiesto y desuso del modelo. Use también este URI para actualizar o eliminar un modelo.

Para obtener ayuda de la CLI de Voz con modelos, ejecute el comando siguiente:

spx help csr model

A fin de crear un modelo con conjuntos de datos para el entrenamiento, use la operación Models_Create de la API REST de conversión de voz en texto. Construya el cuerpo de la solicitud según las instrucciones siguientes:

  • Establezca la propiedad project en el URI de un proyecto existente. Esta propiedad se recomienda para que también pueda ver y administrar el modelo en el portal de Microsoft Foundry. Para obtener el identificador del proyecto, consulte Obtención del identificador del proyecto para la documentación de la API REST .
  • Establezca la propiedad datasets necesaria en el URI de los conjuntos de datos que quiere usar para el entrenamiento.
  • Establezca la propiedad locale obligatoria. La configuración regional del modelo debe coincidir con la configuración regional del proyecto y el modelo base. Esta configuración regional no se podrá modificar más adelante.
  • Establezca la propiedad displayName obligatoria. Esta propiedad es el nombre que se muestra en el portal Microsoft Foundry.
  • También tiene la opción de definir la propiedad baseModel. Por ejemplo: "baseModel": {"self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/base/bbbbcccc-1111-dddd-2222-eeee3333ffff"}. Si no especifica baseModel, se usa el modelo base predeterminado para la configuración regional.

Realice una solicitud HTTP POST con el URI, como se muestra en el ejemplo siguiente. Sustituya YourSpeechResoureKey por la clave del recurso de Voz, sustituya YourResourceName por el nombre del recurso de Voz y establezca las propiedades del cuerpo de la petición como se ha descrito anteriormente.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
  "displayName": "My Model",
  "description": "My Model Description",
  "baseModel": null,
  "datasets": [
    {
      "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/datasets/ccccdddd-2222-eeee-3333-ffff4444aaaa"
    }
  ],
  "locale": "en-US"
}'  "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models"

Nota:

En este ejemplo, no se establece baseModel, por lo que se usa el modelo base predeterminado para la configuración regional. El URI del modelo base se devuelve en la respuesta.

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/aaaabbbb-0000-cccc-1111-dddd2222eeee",
  "baseModel": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/base/bbbbcccc-1111-dddd-2222-eeee3333ffff"
  },
  "datasets": [
    {
      "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/datasets/ccccdddd-2222-eeee-3333-ffff4444aaaa"
    }
  ],
  "links": {
    "manifest": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/manifest",
    "copy": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd:copy",
    "files": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/files"
  },
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
  "properties": {
    "deprecationDates": {
      "transcriptionDateTime": "2026-07-15T00:00:00Z"
    },
    "customModelWeightPercent": 30,
    "features": {
      "supportsTranscriptions": true,
      "supportsEndpoints": true,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportedOutputFormats": [
        "Display",
        "Lexical"
      ]
    }
  },
  "lastActionDateTime": "2024-07-14T21:38:40Z",
  "status": "Running",
  "createdDateTime": "2024-07-14T21:38:40Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

Importante

Anote la fecha en la propiedad adaptationDateTime. Esta es fecha más reciente en la que puede usar el modelo base para el entrenamiento. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

Anote la fecha en la propiedad transcriptionDateTime. Esta es la última fecha en la que puede usar el modelo personalizado para el reconocimiento de voz. Para más información, consulte Ciclo de vida del modelo y el punto de conexión.

La propiedad self de nivel superior en el cuerpo de la respuesta es el URI del proyecto. Use este URI para obtener detalles sobre las fechas de proyecto, manifiesto y desuso del modelo. Use también este URI para actualizar o eliminar el modelo.

Copia de un modelo

Puede copiar un modelo en otro proyecto que use la misma configuración regional. Por ejemplo, después de entrenar un modelo con datos de audio en una región con hardware dedicado para el entrenamiento, puede copiarlo en un recurso Foundry para Voz en otra región según sea necesario.

Siga estas instrucciones para copiar un modelo en un proyecto de otra región:

  1. Inicie sesión en Speech Studio.
  2. Seleccione voz personalizada> El nombre del proyecto >Entrenar modelos personalizados.
  3. Seleccione Copiar en.
  4. En la página Copiar modelo de voz, seleccione una región de destino donde quiera copiar el modelo. Captura de pantalla de la página Copiar modelo de voz en Speech Studio.
  5. Seleccione un recurso Foundry para Voz en la región de destino o cree un nuevo recurso de Voz.
  6. Seleccione un proyecto en el que quiera copiar el modelo o cree un nuevo proyecto.
  7. Seleccione Copiar.

Una vez que el modelo se haya copiado correctamente, se le notificará y podrá verlo en el proyecto de destino.

Antes de continuar, asegúrese de que tiene instalada y configurada la CLI de Voz .

La CLI de Voz admite el spx csr model copy comando para copiar un modelo. Sin embargo, la CLI aún no incluye un comando de copia de autorización. Para realizar el flujo de copia completo, use la API REST de conversión del habla a texto o el portal de Microsoft Foundry.

Para obtener ayuda de la CLI de Voz con el copiado del modelo, ejecuta el siguiente comando:

spx help csr model copy

Copiar un modelo a otro recurso de voz con la API REST de voz a texto v3.2 requiere dos pasos:

  1. Autorice la copia en el recurso de voz de destino .
  2. Copie el modelo del recurso de voz de origen.

Paso 1: Autorización de la copia

Llame a la operación Models_AuthorizeCopy en el recurso de voz de destino . En el cuerpo de la solicitud, establezca la propiedad sourceResourceId en el identificador de recurso de Azure del source recurso de voz donde reside actualmente el modelo.

Reemplace por YourTargetSpeechResourceKey la clave de recurso de destino y YourTargetResourceName por el nombre del recurso de destino.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourTargetSpeechResourceKey" -H "Content-Type: application/json" -d '{
  "sourceResourceId": "/subscriptions/YourSourceSubscriptionId/resourceGroups/YourSourceResourceGroup/providers/Microsoft.CognitiveServices/accounts/YourSourceSpeechResourceName"
}'  "https://YourTargetResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models:authorizecopy"

Recibirá una ModelCopyAuthorization respuesta en el formato siguiente:

{
  "targetResourceRegion": "westus2",
  "targetResourceId": "/subscriptions/targetSubscriptionId/resourceGroups/targetResourceGroupName/providers/Microsoft.CognitiveServices/accounts/targetSpeechResourceName",
  "targetResourceEndpoint": "https://YourTargetResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models",
  "sourceResourceId": "/subscriptions/sourceSubscriptionId/resourceGroups/sourceResourceGroupName/providers/Microsoft.CognitiveServices/accounts/sourceSpeechResourceName",
  "expirationDateTime": "2025-01-07T11:34:12Z",
  "id": "d61573c6-788b-4eff-b3f5-38a1c7a9585b"
}

Guarde todo el cuerpo de la respuesta. Se pasa como el cuerpo de la solicitud en el paso siguiente.

Paso 2: Copiar el modelo

Llame a la operación Models_Copy en el recurso de voz de origen. Pase la respuesta completa ModelCopyAuthorization del paso 1 como cuerpo de la solicitud.

Reemplace por YourModelId el identificador del modelo, YourSourceSpeechResourceKey por la clave de recurso de origen y YourSourceResourceName por el nombre del recurso de origen.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSourceSpeechResourceKey" -H "Content-Type: application/json" -d '{
  "targetResourceRegion": "westus2",
  "targetResourceId": "/subscriptions/targetSubscriptionId/resourceGroups/targetResourceGroupName/providers/Microsoft.CognitiveServices/accounts/targetSpeechResourceName",
  "targetResourceEndpoint": "https://YourTargetResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models",
  "sourceResourceId": "/subscriptions/sourceSubscriptionId/resourceGroups/sourceResourceGroupName/providers/Microsoft.CognitiveServices/accounts/sourceSpeechResourceName",
  "expirationDateTime": "2025-01-07T11:34:12Z",
  "id": "d61573c6-788b-4eff-b3f5-38a1c7a9585b"
}'  "https://YourSourceResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/YourModelId:copy"

Recibirá una 202 Accepted respuesta con un Operation-Location encabezado que puede usar para realizar el seguimiento del estado de la copia. El cuerpo de la respuesta contiene los detalles de la operación:

{
  "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/operations/models/copy/e30f6a27-82be-4cca-9258-0399c70489ff",
  "createdDateTime": "2025-01-07T11:34:12Z",
  "lastActionDateTime": "2025-01-07T11:34:12Z",
  "status": "NotStarted",
  "id": "e30f6a27-82be-4cca-9258-0399c70489ff"
}

Nota:

La autorización de copia solo es válida hasta que se devuelve el expirationDateTime en el paso 1. Inicie la copia antes de que expire la autorización.

Conexión de un modelo

Es posible que los modelos se hayan copiado de un proyecto mediante la CLI de Voz o la API REST, sin estar conectados a otro proyecto. La conexión de un modelo es cuestión de actualizar el modelo con una referencia al proyecto.

Si se le pide en Speech Studio, puede conectarlos seleccionando el botón Conectar.

Recorte de pantalla de la página conectar entrenamiento que muestra los modelos que se pueden conectar al proyecto actual.

Antes de continuar, asegúrese de que tiene instalada y configurada la CLI de Voz .

Para conectar un modelo a un proyecto, use el comando spx csr model update. Construya los parámetros de solicitud según las instrucciones siguientes:

Este es un ejemplo de comando de la CLI de Voz, que conecta un modelo a un proyecto:

spx csr model update --api-version v3.2 --model YourModelId --project YourProjectId

Importante

Debe establecer --api-version v3.2. La CLI de Voz usa la API REST, pero aún no admite versiones posteriores a v3.2.

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}

Para obtener ayuda de la CLI de Voz con modelos, ejecute el comando siguiente:

spx help csr model

Para conectar un nuevo modelo a un proyecto del recurso de Voz donde se copió el modelo, use la operación Models_Update de la API REST de conversión de voz en texto. Construya el cuerpo de la solicitud según las instrucciones siguientes:

Realice una solicitud HTTP PATCH con el URI, como se muestra en el ejemplo siguiente. Use el URI del nuevo modelo. El nuevo identificador de modelo se puede obtener de la propiedad self del cuerpo de la respuesta Models_Copy. Sustituya YourSpeechResoureKey por la clave del recurso de Voz, sustituya YourResourceName por el nombre del recurso de Voz y establezca las propiedades del cuerpo de la petición como se ha descrito anteriormente.

curl -v -X PATCH -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}'  "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models"

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}

Pasos siguientes