Treinar um modelo de fala personalizado

Neste artigo, você aprenderá a treinar um modelo personalizado para melhorar a precisão de reconhecimento do modelo base da Microsoft. A precisão e a qualidade do reconhecimento de fala de um modelo de fala personalizado permanecem consistentes, mesmo quando um novo modelo base é lançado.

Nota

Você paga pelo uso do modelo de fala personalizado e pela hospedagem de pontos finais. Você também será cobrado pelo treinamento de modelo de fala personalizado se o modelo base tiver sido criado em 1º de outubro de 2023 e posterior. Você não será cobrado pelo treinamento se o modelo base tiver sido criado antes de outubro de 2023. Para obter mais informações, consulte Preços do Azure AI Speech e a seção Cobrar pela adaptação no guia de migração de fala para texto 3.2.

O treinamento de um modelo é normalmente um processo iterativo. Primeiro, selecione um modelo base que seja o ponto de partida para um novo modelo. Você treina um modelo com conjuntos de dados que podem incluir texto e áudio e, em seguida, testa. Se a qualidade ou precisão do reconhecimento não atender aos seus requisitos, você poderá criar um novo modelo com mais dados de treinamento ou dados modificados e, em seguida, testar novamente.

Você pode usar um modelo personalizado por um tempo limitado depois que ele foi treinado. Você deve recriar e adaptar periodicamente seu modelo personalizado a partir do modelo base mais recente para aproveitar a precisão e a qualidade aprimoradas. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

Importante

Se você treinar um modelo personalizado com dados de áudio, escolha uma região de recurso de fala com hardware dedicado para treinar dados de áudio. Depois que um modelo é treinado, você pode copiá-lo para um recurso de Fala em outra região, conforme necessário.

Em regiões com hardware dedicado para treinamento de fala personalizado, o serviço de fala usará até 20 horas de seus dados de treinamento de áudio e pode processar cerca de 10 horas de dados por dia. Em outras regiões, o serviço de fala usa até 8 horas de seus dados de áudio e pode processar cerca de 1 hora de dados por dia. Consulte as notas de rodapé na tabela de regiões para obter mais informações.

Criar um modelo

Depois de carregar conjuntos de dados de treinamento, siga estas instruções para começar a treinar seu modelo:

  1. Inicie sessão no Speech Studio.

  2. Selecione Fala> personalizada Seu nome >de projeto Treinar modelos personalizados.

  3. Selecione Treinar um novo modelo.

  4. Na página Selecione um modelo de linha de base, selecione um modelo base e selecione Avançar. Se não tiver certeza, selecione o modelo mais recente no topo da lista. O nome do modelo base corresponde à data em que foi lançado no formato AAAAMMDD. Os recursos de personalização do modelo base são listados entre parênteses após o nome do modelo no Speech Studio.

    Importante

    Tome nota do Prazo de validade para a data de adaptação . Esta é a última data em que você pode usar o modelo base para treinamento. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

  5. Na página Escolher dados, selecione um ou mais conjuntos de dados que você deseja usar para treinamento. Se não houver conjuntos de dados disponíveis, cancele a configuração e vá para o menu Conjuntos de dados de fala para carregar conjuntos de dados.

  6. Introduza um nome e uma descrição para o seu modelo personalizado e, em seguida, selecione Seguinte.

  7. Opcionalmente, marque a caixa Adicionar teste na próxima etapa . Se você pular esta etapa, poderá executar os mesmos testes mais tarde. Para obter mais informações, consulte Qualidade de reconhecimento de teste e Modelo de teste quantitativamente.

  8. Selecione Salvar e fechar para iniciar a compilação do seu modelo personalizado.

  9. Regresse à página Treinar modelos personalizados .

    Importante

    Tome nota da data de validade . Esta é a última data em que você pode usar seu modelo personalizado para reconhecimento de fala. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

Para criar um modelo com conjuntos de dados para treinamento, use o spx csr model create comando. Construa os parâmetros de solicitação de acordo com as seguintes instruções:

  • Defina o project parâmetro como a ID de um projeto existente. Esse parâmetro é recomendado para que você também possa exibir e gerenciar o modelo no Speech Studio. Você pode executar o spx csr project list comando para obter projetos disponíveis.
  • Defina o parâmetro necessário dataset para a ID de um conjunto de dados que você deseja usar para treinamento. Para especificar vários conjuntos de dados, defina o datasets parâmetro (plural) e separe os IDs com um ponto-e-vírgula.
  • Defina o parâmetro necessário language . A localidade do conjunto de dados deve corresponder à localidade do projeto. A localidade não pode ser alterada posteriormente. O parâmetro Speech CLI language corresponde à locale propriedade na solicitação e resposta JSON.
  • Defina o parâmetro necessário name . Este parâmetro é o nome exibido no Speech Studio. O parâmetro Speech CLI name corresponde à displayName propriedade na solicitação e resposta JSON.
  • Opcionalmente, você pode definir a base propriedade. Por exemplo: --base 1aae1070-7972-47e9-a977-87e3b05c457d. Se você não especificar o base, o modelo base padrão para a localidade será usado. O parâmetro Speech CLI base corresponde à baseModel propriedade na solicitação e resposta JSON.

Aqui está um exemplo de comando da CLI de Fala que cria um modelo com conjuntos de dados para treinamento:

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

Nota

Neste exemplo, o base não está definido, portanto, o modelo base padrão para a localidade é usado. O URI do modelo base é retornado na resposta.

Deverá receber um corpo de resposta no seguinte formato:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/69e46263-ab10-4ab4-abbe-62e370104d95"
    }
  ],
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7/manifest",
    "copyTo": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7:copyto"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/5d25e60a-7f4a-4816-afd9-783bb8daccfc"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2023-01-15T00:00:00Z",
      "transcriptionDateTime": "2024-07-15T00:00:00Z"
    }
  },
  "lastActionDateTime": "2022-05-21T13:21:01Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-21T13:21:01Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

Importante

Anote a data na adaptationDateTime propriedade. Esta é a última data em que você pode usar o modelo base para treinamento. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

Anote a data na transcriptionDateTime propriedade. Esta é a última data em que você pode usar seu modelo personalizado para reconhecimento de fala. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

A propriedade de nível self superior no corpo da resposta é o URI do modelo. Use este URI para obter detalhes sobre o projeto, o manifesto e as datas de substituição do modelo. Você também usa esse URI para atualizar ou excluir um modelo.

Para obter ajuda da CLI de fala com modelos, execute o seguinte comando:

spx help csr model

Para criar um modelo com conjuntos de dados para treinamento, use a operação Models_Create da API REST de fala para texto. Construa o corpo da solicitação de acordo com as seguintes instruções:

  • Defina a project propriedade como o URI de um projeto existente. Essa propriedade é recomendada para que você também possa exibir e gerenciar o modelo no Speech Studio. Você pode fazer uma solicitação de Projects_List para obter projetos disponíveis.
  • Defina a propriedade required datasets para o URI dos conjuntos de dados que você deseja usar para treinamento.
  • Defina a propriedade necessária locale . A localidade do modelo deve corresponder à localidade do projeto e do modelo base. A localidade não pode ser alterada posteriormente.
  • Defina a propriedade necessária displayName . Esta propriedade é o nome exibido no Speech Studio.
  • Opcionalmente, você pode definir a baseModel propriedade. Por exemplo: "baseModel": {"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"}. Se você não especificar o baseModel, o modelo base padrão para a localidade será usado.

Faça uma solicitação HTTP POST usando o URI, conforme mostrado no exemplo a seguir. Substitua YourSubscriptionKey pela chave de recurso Fala, substitua YourServiceRegion pela região de recurso Fala e defina as propriedades do corpo da solicitação conforme descrito anteriormente.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/5d25e60a-7f4a-4816-afd9-783bb8daccfc"
  },
  "displayName": "My Model",
  "description": "My Model Description",
  "baseModel": null,
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/69e46263-ab10-4ab4-abbe-62e370104d95"
    }
  ],
  "locale": "en-US"
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/models"

Nota

Neste exemplo, o baseModel não está definido, portanto, o modelo base padrão para a localidade é usado. O URI do modelo base é retornado na resposta.

Deverá receber um corpo de resposta no seguinte formato:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/69e46263-ab10-4ab4-abbe-62e370104d95"
    }
  ],
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7/manifest",
    "copyTo": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7:copyto"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/5d25e60a-7f4a-4816-afd9-783bb8daccfc"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2023-01-15T00:00:00Z",
      "transcriptionDateTime": "2024-07-15T00:00:00Z"
    }
  },
  "lastActionDateTime": "2022-05-21T13:21:01Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-21T13:21:01Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

Importante

Anote a data na adaptationDateTime propriedade. Esta é a última data em que você pode usar o modelo base para treinamento. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

Anote a data na transcriptionDateTime propriedade. Esta é a última data em que você pode usar seu modelo personalizado para reconhecimento de fala. Para obter mais informações, consulte Ciclo de vida do modelo e do ponto final.

A propriedade de nível self superior no corpo da resposta é o URI do modelo. Use este URI para obter detalhes sobre o projeto, o manifesto e as datas de substituição do modelo. Você também usa esse URI para atualizar ou excluir o modelo.

Copiar um modelo

Você pode copiar um modelo para outro projeto que usa a mesma localidade. Por exemplo, depois que um modelo é treinado com dados de áudio em uma região com hardware dedicado para treinamento, você pode copiá-lo para um recurso de fala em outra região, conforme necessário.

Siga estas instruções para copiar um modelo para um projeto em outra região:

  1. Inicie sessão no Speech Studio.
  2. Selecione Fala> personalizada Seu nome >de projeto Treinar modelos personalizados.
  3. Selecione Copiar para.
  4. Na página Copiar modelo de fala, selecione uma região de destino onde deseja copiar o modelo. Captura de ecrã de uma lista de frases aplicada no Speech Studio.
  5. Selecione um recurso de Fala na região de destino ou crie um novo recurso de Fala.
  6. Selecione um projeto onde você deseja copiar o modelo ou crie um novo projeto.
  7. Selecione Copiar.

Depois que o modelo for copiado com êxito, você será notificado e poderá visualizá-lo no projeto de destino.

Não há suporte para copiar um modelo diretamente para um projeto em outra região com a CLI de fala. Você pode copiar um modelo para um projeto em outra região usando o Speech Studio ou a API REST de fala para texto.

Para copiar um modelo para outro recurso de fala, use a operação Models_CopyTo da API REST de fala para texto. Construa o corpo da solicitação de acordo com as seguintes instruções:

  • Defina a propriedade required targetSubscriptionKey como a chave do recurso Speech de destino.

Faça uma solicitação HTTP POST usando o URI, conforme mostrado no exemplo a seguir. Use a região e o URI do modelo do qual você deseja copiar. Substitua YourModelId pela ID do modelo, substitua YourSubscriptionKey pela chave de recurso Fala, substitua YourServiceRegion pela região do recurso Fala e defina as propriedades do corpo da solicitação conforme descrito anteriormente.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "targetSubscriptionKey": "ModelDestinationSpeechResourceKey"
} '  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/models/YourModelId:copyto"

Nota

Somente a targetSubscriptionKey propriedade no corpo da solicitação tem informações sobre o recurso de fala de destino.

Deverá receber um corpo de resposta no seguinte formato:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/eb5450a7-3ca2-461a-b2d7-ddbb3ad96540"
  },
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae/manifest",
    "copyTo": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae:copyto"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2023-01-15T00:00:00Z",
      "transcriptionDateTime": "2024-07-15T00:00:00Z"
    }
  },
  "lastActionDateTime": "2022-05-22T23:15:27Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-22T23:15:27Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description",
  "customProperties": {
    "PortalAPIVersion": "3",
    "Purpose": "",
    "VadKind": "None",
    "ModelClass": "None",
    "UsesHalide": "False",
    "IsDynamicGrammarSupported": "False"
  }
}

Conectar um modelo

Os modelos podem ter sido copiados de um projeto usando a CLI de fala ou a API REST, sem estarem conectados a outro projeto. Conectar um modelo é uma questão de atualizar o modelo com uma referência ao projeto.

Se você for solicitado no Speech Studio, poderá conectá-los selecionando o botão Conectar .

Captura de tela da página de treinamento de conexão que mostra modelos que podem ser conectados ao projeto atual.

Para conectar um modelo a um projeto, use o spx csr model update comando. Construa os parâmetros de solicitação de acordo com as seguintes instruções:

  • Defina o project parâmetro para o URI de um projeto existente. Esse parâmetro é recomendado para que você também possa exibir e gerenciar o modelo no Speech Studio. Você pode executar o spx csr project list comando para obter projetos disponíveis.
  • Defina o parâmetro necessário modelId para a ID do modelo que você deseja conectar ao projeto.

Aqui está um exemplo de comando da CLI de fala que conecta um modelo a um projeto:

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

Deverá receber um corpo de resposta no seguinte formato:

{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/e6ffdefd-9517-45a9-a89c-7b5028ed0e56"
  },
}

Para obter ajuda da CLI de fala com modelos, execute o seguinte comando:

spx help csr model

Para conectar um novo modelo a um projeto do recurso Fala onde o modelo foi copiado, use a operação Models_Update da API REST de fala para texto. Construa o corpo da solicitação de acordo com as seguintes instruções:

  • Defina a propriedade necessária project para o URI de um projeto existente. Essa propriedade é recomendada para que você também possa exibir e gerenciar o modelo no Speech Studio. Você pode fazer uma solicitação de Projects_List para obter projetos disponíveis.

Faça uma solicitação HTTP PATCH usando o URI, conforme mostrado no exemplo a seguir. Use o URI do novo modelo. Você pode obter a nova ID do modelo da self propriedade do corpo da resposta Models_CopyTo . Substitua YourSubscriptionKey pela chave de recurso Fala, substitua YourServiceRegion pela região de recurso Fala e defina as propriedades do corpo da solicitação conforme descrito anteriormente.

curl -v -X PATCH -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/e6ffdefd-9517-45a9-a89c-7b5028ed0e56"
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/models"

Deverá receber um corpo de resposta no seguinte formato:

{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/e6ffdefd-9517-45a9-a89c-7b5028ed0e56"
  },
}

Próximos passos