Treinar um modelo de fala personalizada

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

Observação

Você paga pelo uso personalizado do modelo de fala e pela hospedagem do ponto de extremidade. Você também será cobrado pelo treinamento do modelo de fala personalizada se o modelo base tiver sido criado em 1º de outubro de 2023 e posteriormente. 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 de Fala de IA do Azure e a seção Cobrança pela adaptação no guia de migração de conversão de fala em texto 3.2.

O treinamento de um modelo costumar ser 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 textos e áudios e, em seguida, você o testa. Se a qualidade ou a precisão do reconhecimento não atender aos seus requisitos, você poderá criar um novo modelo com mais dados de treinamento em maior quantidade ou mais modificados e 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 com o modelo base mais recente para aproveitar a precisão e a qualidade aprimoradas. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

Importante

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

Em regiões com hardware dedicado para treinamento de fala personalizada, o Serviço de Fala usará até 20 horas de seus dados de treinamento de áudio e poderá processar cerca de 10 horas de dados por dia. Em outras regiões, o serviço de Fala utiliza até 8 horas de seus dados de áudio e pode processar cerca de 1 hora de dados por dia. Confira as notas de rodapé na tabela regiões para 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. Entre no Speech Studio.

  2. Selecione Fala personalizada> Nome do projeto >Treinar modelos personalizados.

  3. Selecione Treinar um novo modelo.

  4. Na página Selecionar um modelo de linha de base, selecione um modelo base e selecione Avançar. Se você não tiver certeza, selecione o modelo mais recente na parte superior da lista. O nome do modelo base corresponde à data em que ele 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

    Anote a data da Expiração para adaptação. Esta é a última data em que você pode usar o modelo base para treinamento. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

  5. Na página Escolher dados, selecione um ou mais conjuntos de dados que deseja usar para treinamento. Se não houver conjuntos de dados disponíveis, cancele a instalação e acesse o menu Conjuntos de dados de Fala para carregar os conjuntos de dados.

  6. Insira um nome e uma descrição para seu modelo personalizado e selecione Avançar.

  7. Opcionalmente, marque a caixa Adicionar teste na próxima etapa. Se você ignorar esta etapa, poderá executar os mesmos testes posteriormente. Para obter mais informações, confira Testar qualidade do reconhecimento e Testar modelo quantitativamente.

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

  9. Retorne à página Treinar modelos personalizados.

    Importante

    Anote a data de Validade. Esta é a última data em que você pode usar seu modelo personalizado para reconhecimento de fala. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

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

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

Veja 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"

Observação

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

Você deve 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 propriedade adaptationDateTime. Esta é a última data em que você pode usar o modelo base para treinamento. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

Anote a data na propriedade transcriptionDateTime. Esta é a última data em que você pode usar seu modelo personalizado para reconhecimento de fala. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

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

Para obter a 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 reconhecimento de fala. Crie o corpo da solicitação de acordo com as seguintes instruções:

  • Defina a propriedade project como o URI de um projeto existente. Esta propriedade é recomendada para que você também possa exibir e gerenciar o modelo no Speech Studio. É possível fazer uma solicitação Projects_List para obter os projetos disponíveis.
  • Defina a propriedade datasets obrigatória como o URI dos conjuntos de dados que você deseja usar para o treinamento.
  • Defina a propriedade locale obrigatória. A localidade do modelo deve corresponder à localidade do projeto e do modelo base. Ela não poderá ser alterada posteriormente.
  • Defina a propriedade displayName obrigatória. Essa propriedade é o nome que é exibido no Speech Studio.
  • Opcionalmente, defina a propriedade baseModel. 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 baseModel, o modelo base padrão da 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 de Fala, YourServiceRegion pela região do recurso de 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"

Observação

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

Você deve 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 propriedade adaptationDateTime. Esta é a última data em que você pode usar o modelo base para treinamento. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

Anote a data na propriedade transcriptionDateTime. Esta é a última data em que você pode usar seu modelo personalizado para reconhecimento de fala. Para saber mais, confira Ciclo de vida do modelo e do ponto de extremidade.

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

Copiar um modelo

É possível 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, é possível 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. Entre no Speech Studio.
  2. Selecione Fala personalizada> Nome do projeto >Treinar modelos personalizados.
  3. Clique em Copiar para.
  4. Na página Copiar modelo de fala, selecione uma região de destino na qual copiar o modelo. Captura de tela de uma lista de frases aplicada no Speech Studio.
  5. Selecione um recurso de Fala na região de destino ou crie um novo.
  6. Selecione um projeto em que você deseja copiar o modelo ou crie um novo.
  7. Selecione Copiar.

Depois de copiar o modelo, você será notificado e poderá exibi-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. É possível copiar um modelo para um projeto em outra região usando o Speech Studio ou a API REST de reconhecimento de fala.

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

  • Defina a propriedade targetSubscriptionKey obrigatória como a chave do recurso de Fala 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, YourSubscriptionKey pela chave do recurso de Fala, YourServiceRegion pela região do recurso de 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"

Observação

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

Você deve 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 ser copiados de um projeto usando a CLI de Fala ou a API REST sem que sejam conectados a outro. Conectar um modelo é uma questão de atualizá-lo com uma referência ao projeto.

Se você for solicitado pelo Speech Studio, conecte-os 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 comando spx csr model update. Crie os parâmetros de solicitação de acordo com as seguintes instruções:

  • Defina o parâmetro project como o URI de um projeto existente. Este parâmetro é recomendado para que você também possa exibir e gerenciar o modelo no Speech Studio. É possível executar o comando spx csr project list para obter os projetos disponíveis.
  • Defina o parâmetro modelId obrigatório como a ID do modelo que você deseja conectar ao projeto.

Veja 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

Você deve 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 a 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 de Fala em que o modelo foi copiado, use a operação Models_Update da API REST de reconhecimento de fala. Crie o corpo da solicitação de acordo com as seguintes instruções:

  • Defina a propriedade project obrigatória como o URI de um projeto existente. Esta propriedade é recomendada para que você também possa exibir e gerenciar o modelo no Speech Studio. É possível fazer uma solicitação Projects_List para obter os 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. É possível obter a ID do novo modelo na propriedade self do corpo da resposta Models_CopyTo. Substitua YourSubscriptionKey pela chave de recurso de Fala, YourServiceRegion pela região do recurso de 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"

Você deve 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óximas etapas