Обучение пользовательской модели речи

Из этой статьи вы узнаете, как обучить пользовательскую модель для повышения точности распознавания из базовой модели Майкрософт. Точность распознавания речи и качество пользовательской модели речи остается согласованной даже при выпуске новой базовой модели.

Примечание.

Вы оплачиваете использование пользовательской модели речи и размещение конечных точек. Вы также будете взимать плату за обучение пользовательской модели речи, если базовая модель была создана 1 октября 2023 г. и более поздних версий. Плата за обучение не взимается, если базовая модель была создана до октября 2023 года. Дополнительные сведения см. в разделе о ценах на речь azure AI и в разделе "Плата за адаптацию" в руководстве по миграции с текстом 3.2.

Обучение модели обычно является итеративным процессом. Сначала вы выбираете базовую модель, которая является отправной точкой для новой модели. Вы обучаете модель с помощью наборов данных, которые могут включать текст и звук, а затем тестируете модель. Если качество или точность распознавания не соответствует вашим требованиям, можно создать новую модель с дополнительными или измененными данными обучения, а затем снова протестировать.

Пользовательская модель можно использовать в течение ограниченного времени после обучения. Вам придется периодически повторно создавать и адаптировать пользовательскую модель на основе последней версии базовой модели, чтобы пользоваться преимуществами более высокой точности и качества. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

Важно!

Если вы будете обучать пользовательскую модель с помощью звуковых данных, выберите регион ресурса "Речь" с выделенным оборудованием для обучения звуковых данных. После обучения модели ее можно скопировать в ресурс службы "Речь", который находится в другом регионе.

В регионах с выделенным оборудованием для обучения пользовательской речи служба "Речь" будет использовать до 20 часов данных обучения звука и может обрабатывать около 10 часов данных в день. В других регионах служба "Речь" использует до 8 часов звуковых данных и способна обрабатывать около 1 часа данных в сутки. Дополнительные сведения см. в сносках к таблице регионы.

Создание модели

После отправки наборов обучающих данных выполните следующие инструкции, чтобы начать обучение модели:

  1. Войдите в службу Speech Studio.

  2. Выберите "Настраиваемая речь> ", имя >проекта "Обучение пользовательских моделей".

  3. Щелкните Обучение новой модели.

  4. На странице Выбор базовой модели выберите базовую модель и щелкните Далее. Если сомневаетесь, выберите последнюю модель в верхней части списка. Имя базовой модели соответствует дате ее выпуска в формате ГГГГММДД. Возможности настройки базовой модели перечислены в скобках после имени модели в Speech Studio.

    Важно!

    Запишите дату срока действия для адаптации. Это последняя дата, когда вы можете использовать базовую модель для обучения. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

  5. На странице выбора данных выберите один или несколько наборов данных, которые будут использоваться для обучения. Если наборы данных недоступны, отмените настройку и перейдите в меню Наборы данных службы "Речь”, чтобы отправить наборы данных.

  6. Введите имя и описание пользовательской модели, а затем щелкните Далее.

  7. При необходимости установите флажок Добавить тест в следующем шаге. Этот шаг можно пропустить и выполнить тесты позднее. Дополнительные сведения см. в статьях Проверка качества распознавания речи и Количественная проверка модели.

  8. Щелкните Сохранить и закрыть, чтобы запустить сборку пользовательской модели.

  9. Вернитесь на страницу Обучение пользовательских моделей.

    Важно!

    Запишите Дату окончания срока действия модели. Это последняя дата, когда пользовательскую модель можно использовать для распознавания речи. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

Чтобы создать модель с наборами данных для обучения, используйте команду spx csr model create. Создайте параметры запроса в соответствии со следующими инструкциями:

  • В качестве значения параметра project укажите идентификатор существующего проекта. Этот параметр рекомендуется, чтобы вы также могли просматривать модель и управлять ими в Speech Studio. Для получения доступных проектов выполните команду spx csr project list.
  • В качестве значения обязательного параметра dataset задайте идентификатор набора данных, который должен использоваться для обучения. Чтобы указать несколько наборов данных, задайте параметр datasets (несколько идентификаторов) и разделите идентификаторы точкой с запятой.
  • Задайте обязательный параметр language. Языковой стандарт набора данных должен соответствовать языковому стандарту проекта. Языковой стандарт нельзя будет изменить позже. Параметр language интерфейса командной строки речевой службы соответствует свойству locale в запросе и ответе JSON.
  • Задайте обязательный параметр name. Этот параметр — это имя, отображаемое в Speech Studio. Параметр name интерфейса командной строки речевой службы соответствует свойству displayName в запросе и ответе JSON.
  • При необходимости можно задать свойство base. Например: --base 1aae1070-7972-47e9-a977-87e3b05c457d. Если не указать base, будет использоваться базовая модель по умолчанию для языкового стандарта. Параметр base интерфейса командной строки речевой службы соответствует свойству baseModel в запросе и ответе JSON.

Ниже приведен пример команды CLI службы "Речь", которая создает модель с наборами данных для обучения:

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

Примечание.

В этом примере параметр base не задан, поэтому используется базовая модель по умолчанию для языкового стандарта. В тексте ответа возвращается URI базовой модели.

Вы должны получить ответ в следующем формате:

{
  "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"
}

Важно!

Запишите дату, указанную в свойстве adaptationDateTime. Это последняя дата, когда вы можете использовать базовую модель для обучения. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

Запишите дату, указанную в свойстве transcriptionDateTime. Это последняя дата, когда пользовательскую модель можно использовать для распознавания речи. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

Свойство верхнего уровня self в тексте ответа представляет собой URI модели. Используйте этот URI для получения сведений о проекте, манифесте и датах окончания срока действия. Этот URI также используется для обновления или удаления модели.

Для получения справки по командам CLI службы "Речь" для работы с моделями выполните следующую команду:

spx help csr model

Чтобы создать модель с наборами данных для обучения, используйте Models_Create операцию преобразования речи в текстовый REST API. Создайте текст запроса в соответствии со следующими инструкциями:

  • Задайте для свойства project значение URI существующего проекта. Это свойство рекомендуется, чтобы вы также могли просматривать модель и управлять ими в Speech Studio. Вы можете сделать запрос Projects_List для получения доступных проектов.
  • В качестве значения обязательного свойства datasets укажите URI наборов данных, которые вы хотите использовать для обучения.
  • Задайте обязательное свойство locale. Языковой стандарт модели должен соответствовать языковому стандарту проекта и базовой модели. Языковой стандарт нельзя будет изменить позже.
  • Задайте обязательное свойство displayName. Это свойство — это имя, отображаемое в Speech Studio.
  • При необходимости можно задать свойство baseModel. Например: "baseModel": {"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"}. Если не указать baseModel, будет использоваться базовая модель по умолчанию для языкового стандарта.

Выполните HTTP-запрос POST, используя URI, как показано в следующем примере. Замените YourSubscriptionKey ключом ресурса службы "Речь" и YourServiceRegion регионом ресурса службы "Речь", а также задайте свойства текста запроса, как описано выше.

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"

Примечание.

В этом примере параметр baseModel не задан, поэтому используется базовая модель по умолчанию для языкового стандарта. В тексте ответа возвращается URI базовой модели.

Вы должны получить ответ в следующем формате:

{
  "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"
}

Важно!

Запишите дату, указанную в свойстве adaptationDateTime. Это последняя дата, когда вы можете использовать базовую модель для обучения. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

Запишите дату, указанную в свойстве transcriptionDateTime. Это последняя дата, когда пользовательскую модель можно использовать для распознавания речи. Дополнительные сведения см. в разделе Жизненный цикл модели и конечной точки.

Свойство верхнего уровня self в тексте ответа представляет собой URI модели. Используйте этот URI для получения сведений о проекте, манифесте и датах окончания срока действия. Этот URI также используется для обновления или удаления модели.

Копирование модели

Модель можно скопировать в другой проект, использующий тот же языковой стандарт. Например, после обучения модели с использованием звуковых данных в регионе с выделенным оборудованием для обучения эту модель можно скопировать в ресурс службы "Речь" в другом регионе по мере необходимости.

Выполните следующие инструкции, чтобы скопировать модель в проект в другом регионе:

  1. Войдите в службу Speech Studio.
  2. Выберите "Настраиваемая речь> ", имя >проекта "Обучение пользовательских моделей".
  3. Выберите Копировать в.
  4. На странице Копирование модели речи выберите целевой регион, в который требуется скопировать модель. Screenshot of a phrase list applied in Speech Studio.
  5. Выберите ресурс службы "Речь" в целевом регионе или создайте новый ресурс службы "Речь".
  6. Выберите проект, в который нужно скопировать модель, или создайте новый проект.
  7. Выберите Копировать.

После успешного копирования модели вы получите уведомление и сможете просмотреть модель в целевом проекте.

Копирование модели непосредственно в проект в другом регионе не поддерживается с помощью интерфейса командной строки службы "Речь". Модель можно скопировать в проект в другом регионе с помощью Службы "Речь" или "Речь" в текстовый REST API.

Чтобы скопировать модель в другой ресурс службы "Речь", используйте операцию Models_CopyTo службы "Речь" в текстовый REST API. Создайте текст запроса в соответствии со следующими инструкциями:

  • В качестве значения обязательного свойства targetSubscriptionKey укажите ключ целевого ресурса службы "Речь".

Выполните HTTP-запрос POST, используя URI, как показано в следующем примере. Используйте регион и URI модели, параметры которой требуется скопировать. Замените YourModelId идентификатором модели, YourSubscriptionKey ключом ресурса службы "Речь" и YourServiceRegion регионом ресурса службы "Речь", а также задайте свойства текста запроса, как описано выше.

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"

Примечание.

Только свойство targetSubscriptionKey в тексте запроса содержит сведения о целевом ресурсе службы "Речь".

Вы должны получить ответ в следующем формате:

{
  "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"
  }
}

Подключение модели

Модели можно скопировать из одного проекта с помощью CLI службы "Речь" или REST API без подключения к другому проекту. Для подключения модели придется обновить модель со ссылкой на проект.

Если появится запрос в Speech Studio, вы можете подключить их, нажав кнопку Подключение.

Screenshot of the connect training page that shows models that can be connected to the current project.

Чтобы подключить модель к проекту, используйте команду spx csr model update. Создайте параметры запроса в соответствии со следующими инструкциями:

  • В качестве значения параметра project укажите URI существующего проекта. Этот параметр рекомендуется, чтобы вы также могли просматривать модель и управлять ими в Speech Studio. Для получения доступных проектов выполните команду spx csr project list.
  • В качестве значения обязательного параметра modelId укажите идентификатор модели, которую необходимо подключить к проекту.

Ниже приведен пример команды CLI службы "Речь", которая подключает модель к проекту:

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

Вы должны получить ответ в следующем формате:

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

Для получения справки по командам CLI службы "Речь" для работы с моделями выполните следующую команду:

spx help csr model

Чтобы подключить новую модель к проекту ресурса "Речь", в котором была скопирована модель, используйте Models_Update операцию преобразования речи в текстовый REST API. Создайте текст запроса в соответствии со следующими инструкциями:

  • В качестве значения обязательного свойства project укажите URI существующего проекта. Это свойство рекомендуется, чтобы вы также могли просматривать модель и управлять ими в Speech Studio. Вы можете сделать запрос Projects_List для получения доступных проектов.

Выполните HTTP-запрос PATCH с использованием URI, как показано в следующем примере. Используйте URI новой модели. Вы можете получить идентификатор новой модели из self свойства текста ответа Models_CopyTo . Замените YourSubscriptionKey ключом ресурса службы "Речь" и YourServiceRegion регионом ресурса службы "Речь", а также задайте свойства текста запроса, как описано выше.

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"

Вы должны получить ответ в следующем формате:

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

Следующие шаги