Видео контент в WordPress давно перестал быть просто развлечением — это мощный инструмент для взаимодействия с аудиторией. Однако, чтобы сделать видео доступным для всех пользователей, включая людей с нарушениями слуха, а также для улучшения SEO, необходимы субтитры и подписи. В этой статье мы разберём, как автоматически добавлять подписи к видео в WordPress, используя плагины и собственные скрипты.
Почему важны субтитры и подписи к видео в WordPress
Субтитры и подписи делают видео более доступным и удобным для восприятия в разных условиях: например, когда пользователь не может включить звук, либо у него есть проблемы со слухом. Кроме того, поисковые системы лучше индексируют видео с текстовыми субтитрами, что положительно влияет на ранжирование сайта.
Ручное создание субтитров — процесс трудоёмкий и дорогой. Поэтому автоматизация добавления подписей — важная задача для владельцев видеоконтента на WordPress.
Плагины для автоматического добавления субтитров и подписей
1. Использование плагина Video Subtitle
Плагин Video Subtitle позволяет загружать файлы субтитров (форматы .vtt, .srt) и автоматически добавлять их к видео, встроенным в WordPress через теги video или плееры.
Преимущества:
- Поддержка популярных форматов субтитров.
- Автоматическое связывание субтитров с видео на странице.
- Простая интеграция с Gutenberg и классическим редактором.
Недостаток — субтитры нужно создавать или получать отдельно. Для автоматизации можно использовать сервисы распознавания речи.
2. Плагин OmniVideo с поддержкой субтитров
OmniVideo — профессиональный плагин от WPSHOP, который позволяет интегрировать видео с YouTube, Vimeo и локальные файлы, а также добавлять субтитры. Он поддерживает загрузку файлов субтитров и автоматическое переключение между ними.
Плюс плагина — удобный интерфейс и совместимость с большинством популярных тем и билдерами страниц.
Автоматизация создания субтитров с помощью сервисов распознавания речи
Чтобы не создавать субтитры вручную, можно использовать сервисы автоматического распознавания речи, например, Google Speech-to-Text, IBM Watson или Яндекс.Речи.
Ниже пример, как интегрировать Google Speech-to-Text API для создания субтитров:
function wpvideo_google_speech_to_subtitles($audioFilePath) {
$apiKey = 'ВАШ_API_КЛЮЧ';
$url = 'https://speech.googleapis.com/v1/speech:recognize?key=' . $apiKey;
$audioData = base64_encode(file_get_contents($audioFilePath));
$postData = json_encode([
'config' => [
'encoding' => 'LINEAR16',
'languageCode' => 'ru-RU',
'enableWordTimeOffsets' => true
],
'audio' => [
'content' => $audioData
]
]);
$response = wp_remote_post($url, [
'headers' => ['Content-Type' => 'application/json'],
'body' => $postData
]);
if (is_wp_error($response)) {
return false;
}
$body = json_decode(wp_remote_retrieve_body($response), true);
// Обработка результата и генерация субтитров
return $body;
}Этот код отправляет аудиофайл на сервис Google и получает транскрибированный текст с временными метками. Его можно обработать для генерации файла .vtt с субтитрами.
Генерация файла .vtt с субтитрами из API
На основе данных распознавания речи можно создавать файл .vtt:
function wpvideo_generate_vtt($transcripts) {
$vtt = "WEBVTT\n\n";
$counter = 0;
foreach ($transcripts['results'] as $result) {
foreach ($result['alternatives'][0]['words'] as $word) {
// Для простоты пример с отдельными словами
$start = gmdate("H:i:s", floor($word['startTime']['seconds'])) . sprintf(".%03d", $word['startTime']['nanos']/1000000);
$end = gmdate("H:i:s", floor($word['endTime']['seconds'])) . sprintf(".%03d", $word['endTime']['nanos']/1000000);
$counter++;
$vtt .= "$counter\n$start --> $end\n" . $word['word'] . "\n\n";
}
}
return $vtt;
}Его можно сохранить и подключить к видео в WordPress через плагин или вручную.
Реализация автоматического подключения субтитров в видео WordPress
Чтобы автоматически подключать сгенерированные субтитры к видео, можно использовать фильтр вывода видео в WordPress. Например:
function wpvideo_add_subtitles_to_video($html, $post_id) {
$video_url = get_post_meta($post_id, 'wpvideo_video_url', true);
$subtitle_url = get_post_meta($post_id, 'wpvideo_subtitle_url', true);
if (!$subtitle_url) {
return $html;
}
// Вставляем тег track с субтитрами
$track_tag = '<track kind="subtitles" src="' . esc_url($subtitle_url) . '" srclang="ru" label="Русский" default>';
// Пример для видео HTML5
$html = preg_replace('/(<video[^>]*>)/', '$1' . $track_tag, $html);
return $html;
}
add_filter('the_content', 'wpvideo_add_subtitles_to_video', 20);Этот код автоматически вставляет тег субтитров в каждый видео-блок на странице.
Рекомендации по оптимизации и тестированию субтитров
После автоматического создания и подключения субтитров обязательно:
- Проверьте синхронизацию текста и видео — небольшой сдвиг заметен и раздражает пользователя.
- Используйте корректные кодировки и форматы файлов (.vtt предпочтительнее .srt для современных браузеров).
- Тестируйте разные устройства и браузеры — поведение плееров может отличаться.
Для расширенного управления субтитрами рекомендую обратить внимание на плагин OmniVideo, который поддерживает различные форматы и автоматическую смену языков.