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

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

Примечание

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

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

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

Важно!

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

В регионах с выделенным оборудованием для обучения функции "Пользовательское распознавание речи" служба "Речь" использует до 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 CLI службы "Речь" соответствует свойству locale в запросе и ответе JSON.
  • Задайте обязательный параметр name. Это имя, которое будет отображаться в Speech Studio. Параметр name CLI службы "Речь" соответствует свойству displayName в запросе и ответе JSON.
  • При необходимости можно задать свойство base. Например: --base 1aae1070-7972-47e9-a977-87e3b05c457d. Если не указать base, будет использоваться базовая модель по умолчанию для языкового стандарта. Параметр base CLI службы "Речь" соответствует свойству 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. На странице Копирование модели речи выберите целевой регион, в который требуется скопировать модель. Снимок экрана: список фраз, примененный в Speech Studio.
  5. Выберите ресурс службы "Речь" в целевом регионе или создайте новый ресурс службы "Речь".
  6. Выберите проект, в который нужно скопировать модель, или создайте новый проект.
  7. Нажмите Копировать.

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

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

Чтобы скопировать модель в другой ресурс службы "Речь", используйте операцию Models_CopyToREST 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 вы можете подключить модель, нажав кнопку Подключить.

Снимок экрана: страница

Чтобы подключить модель к проекту, используйте команду 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_UpdateREST 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"
  },
}

Дальнейшие действия