Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этого руководства вы узнаете, как создавать субтитры при преобразовании речи в текст. Создание субтитров — это процесс преобразования звукового содержимого телевизионной трансляции, веб-трансляции, фильма, видеофайла, прямой трансляции или другой презентации в текст и последующее отображение текста на экране, мониторе или в другой визуальной системе отображения.
Основные понятия включают синхронизацию субтитров с входящим звуком, применение фильтров ненормативной лексики, получение частичных результатов, применение настроек и определение языка речи в сценариях с использованием нескольких языков. В этом руководстве рассматриваются субтитры для речи, но не идентификатор говорящего или звуковые эффекты, такие как звон колокольчика.
Ниже приведены некоторые распространенные сценарии использования субтитров:
- Онлайн курсы и обучающие видео.
- Спортивные мероприятия.
- Голосовые и видеозвонки
Что следует учитывать при использовании субтитров:
- Сообщите аудитории, что субтитры создаются автоматизированной службой.
- Расположите заголовки горизонтально по центру экрана, используя крупный шрифт.
- Подумайте, следует ли использовать частичные результаты, когда начинать отображение субтитров и сколько слов следует показывать за раз.
- Узнайте о протоколах субтитров, таких как SMPTE-TT.
- Можно использовать такие форматы выходных данных, как SRT (SubRip Text) и WebVTT (Web Video Text Tracks). Их можно загрузить на большинство видеопроигрывателей, таких как VLC, автоматически добавляя субтитры в видео.
Совет
Попробуйте в Speech Studio и выберите пример видеоклипа, чтобы просмотреть результаты обработки подписей онлайн или в автономном режиме.
Попробуйте Индексатор видео ИИ Azure в качестве демонстрации того, как можно получить субтитры для отправленных видео.
Субтитры могут сопровождать речь в режиме реального времени или предварительной записи. Независимо от того, отображаются ли субтитры в режиме реального времени или записи, вы можете использовать пакет SDK для службы "Речь" или интерфейс командной строки службы "Речь" для распознавания речи и получения транскрибирования. Вы также можете использовать API пакетного транскрибирования для предварительно записанного видео.
Формат выходных данных субтитров
Служба "Речь" поддерживает такие форматы выходных данных, как SRT (SubRip Text) и WebVTT (Web Video Text Tracks). Их можно загрузить на большинство видеопроигрывателей, таких как VLC, автоматически добавляя субтитры в видео.
Совет
Служба "Речь" предоставляет параметры фильтра ненормативной лексики. Можно указать, следует ли маскировать, удалять или показывать ненормативность.
Выходной формат интервала времени SRT (SubRip Text) — это hh:mm:ss,fff.
1
00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.
Формат выходных данных интервала времени WebVTT (Web Video Text Tracks) — hh:mm:ss.fff.
WEBVTT
00:00:00.180 --> 00:00:03.230
Welcome to applied Mathematics course 201.
{
"ResultId": "8e89437b4b9349088a933f8db4ccc263",
"Duration": "00:00:03.0500000"
}
Отправка звука в службу "Речь"
Для подписей в режиме реального времени используйте микрофон или поток ввода звука вместо входных данных файла. Примеры распознавания речи с микрофона см. в кратком руководстве по преобразованию речи в текст и в документации по распознаванию речи. Дополнительные сведения о потоковой передаче см. в разделе Как использовать входной поток звука.
Чтобы создать субтитры для предварительно записанного файла, отправьте входной файл в службу "Речь". Дополнительные сведения см. в разделе Как использовать сжатые входные аудиофайлы.
Синхронизация субтитров и речи
Вы хотите синхронизировать субтитры с звуковой дорожкой, будь то в режиме реального времени или с предварительной записью.
Служба речи возвращает смещение и длительность распознанной речи.
-
Смещение: смещение в распознаваемом аудиопотоке, выражаемое в виде интервала времени. Смещение измеряется в тактах, начиная с
0(нулевого) такта, связанного с первым звуковым байтом, обработанным пакетом SDK. Например, смещение начинается при запуске распознавания, так как это происходит, когда пакет SDK начинает обработку звукового потока. Один такт представляет собой 100 наносекунд (или одну десятимиллионную долю секунды). - Длительность: длительность распознаваемого речевого фрагмента. Длительность в тактах не включает в себя конечный или начальный период тишины.
Дополнительные сведения см. в разделе Получение результатов распознавания речи.
Получение частичных результатов
Подумайте, когда начинать отображение субтитров и сколько слов следует показывать за раз. Результаты распознавания речи могут изменяться, пока речевой фрагмент по-прежнему распознается. Частичные результаты передаются с каждым событием Recognizing. При обработке каждого слова служба "Речь" повторно оценивает высказывание в новом контексте и снова возвращает наилучший результат. Новый результат не обязательно будет таким же, как предыдущий. Полная и окончательная транскрипция высказывания возвращается с помощью события Recognized.
Примечание.
Использование знаков препинания для частичных результатов недоступно.
Для создания субтитров к предварительно записанной речи или в случаях, когда задержка не имеет значения, следует дождаться полной транскрипции каждого высказывания перед отображением слов. Учитывая окончательное смещение и длительность каждого слова в высказывании, вы знаете, когда показывать последующие слова в унисон со звуковой дорожкой.
Субтитры в режиме реального времени представляют собой компромисс между задержками и точностью. Вы можете отображать текст из каждого события Recognizing как можно скорее. Однако если задержка допустима, можно повысить точность субтитров, отображая текст из события Recognized. Можно также выбрать нечто среднее, так называемые "стабильные частичные результаты".
Вы можете запросить, чтобы служба "Речь" возвращала меньше событий Recognizing для более высокой точности. Для этого необходимо задать для свойства SpeechServiceResponse_StablePartialResultThreshold значение между 0 и 2147483647. Заданное значение — это количество раз, когда слово должно быть распознано, прежде чем служба "Речь" вернет событие Recognizing. Например, если вы зададите значение SpeechServiceResponse_StablePartialResultThreshold для свойства 5, служба "Речь" подтвердит распознавание слова как минимум пять раз, прежде чем вернет вам частичные результаты с событием Recognizing.
speechConfig.SetProperty(PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig->SetProperty(PropertyId::SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig.SetProperty(common.SpeechServiceResponseStablePartialResultThreshold, 5)
speechConfig.setProperty(PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig.setProperty(sdk.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
[self.speechConfig setPropertyTo:5 byId:SPXSpeechServiceResponseStablePartialResultThreshold];
self.speechConfig!.setPropertyTo(5, by: SPXPropertyId.speechServiceResponseStablePartialResultThreshold)
speech_config.set_property(property_id = speechsdk.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, value = 5)
spx recognize --file caption.this.mp4 --format any --property SpeechServiceResponse_StablePartialResultThreshold=5 --output vtt file - --output srt file -
Запросы более стабильных частичных результатов сокращают "мерцание" или изменение текста, но это может увеличить задержку по мере ожидания более высоких результатов достоверности.
Пример устойчивого частичного порога
В следующей последовательности распознавания без установки устойчивого порога частичного результата "math" распознается как слово, но окончательный текст — "mathematics" (математика). В какой-то момент распознается "курс 2", но окончательный текст — "курс 201".
RECOGNIZING: Text=welcome to
RECOGNIZING: Text=welcome to applied math
RECOGNIZING: Text=welcome to applied mathematics
RECOGNIZING: Text=welcome to applied mathematics course 2
RECOGNIZING: Text=welcome to applied mathematics course 201
RECOGNIZED: Text=Welcome to applied Mathematics course 201.
В предыдущем примере транскрибирование было добавочным, то есть текст не менялся. Но иногда частичные результаты бывают неточными. В любом случае нестабильные частичные результаты могут восприниматься как "мерцание".
В этом примере, если задано пороговое значение стабильного частичного результата 5, слова не изменяются и не отслеживаются назад.
RECOGNIZING: Text=welcome to
RECOGNIZING: Text=welcome to applied
RECOGNIZING: Text=welcome to applied mathematics
RECOGNIZED: Text=Welcome to applied Mathematics course 201.
Идентификация языка
Если язык речи может измениться, используйте непрерывную идентификацию языка. Используется для определения языков, на которых говорят в аудиозаписях, при сравнении со списком поддерживаемых языков. Вы предоставляете до 10 языков-кандидатов, по крайней мере один из них ожидается в аудио. Служба "Речь" возвращает наиболее вероятный язык в аудио.
Настройки для повышения точности
Список фраз — это список слов или фраз, которые вы предоставляете прямо перед началом распознавания речи. Добавление фразы в список повышает ее значимость и вероятность распознавания.
К примерам фраз можно отнести:
- Имена
- Географические расположения
- Омонимы
- Слова или сокращения, характерные только для вашей отрасли или организации
Существуют ситуации, когда наилучшим способом повысить точность является обучение пользовательской модели. Например, если вы субтитрируете ортодонтические лекции, вам может понадобиться обучить пользовательскую модель с соответствующими данными из этой области.