Мегапроект: расшифровщик аудио в текст… через облако Яндекса!
hard

Мегапроект: расшифровщик аудио в текст… через облако Яндекса!

Сегодня мы будем эксплуатировать чужие облака.

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

Для чего это нужно

Смысл такой: если нужно перевести аудиозапись в текст, можно это сделать очень быстро с помощью нейросетей. Яндекс в этом всяко преуспел, и мы теперь можем этим воспользоваться в своё удовольствие.

Если вы редактор или автор, вам нужно часто общаться с экспертами, чтобы получить необходимую информацию для своей работы. Можно всё конспектировать на ходу, а можно записать на диктофон и потом перевести в текст за 10 минут.

Если коллега вам оставил длинное голосовое сообщение, текст которого нужно разместить на сайте, то можно набрать всё руками или отдать эту задачу компьютеру.

Если вы студент и не хотите конспектировать лекции по гуманитарным наукам, запишите их на телефон, и нейронка переведёт их в текст. У вас будут самые полные лекции, и вся группа будет бегать за вами перед экзаменом.

В некоторых вебинарах или видео на YouTube есть классная информация, но каждый раз приходится их смотреть и перематывать, чтобы найти нужное. Выход простой: берём видео, вырезаем оттуда звук, отправляем в сервис распознавания и получаем готовый текст, с которым работать гораздо проще.

Что будем использовать

Возьмём сервис Yandex SpeechKit — он позволяет распознать или озвучить любой текст на нескольких языках. Именно на этом движке работает голосовой помощник «Алиса»: она использует его, чтобы понимать, что вы говорите, и говорить что-то в ответ.

SpeechKit — часть «Яндекс.Облака», большого ресурса, который умеет решать много задач. Например, кроме работы с текстом и голосом «Облако» может предоставить виртуальную вычислительную машину и хранилище данных, работать с Docker-образами, защищать от хакерских атак, управлять базами данных и много чего ещё.

Так как всё это — серьёзные технологии для программистов и IT-спецов, многое нужно будет делать в командной строке. Для этого мы сейчас покажем каждый шаг и объясним, для чего именно мы это делаем. В результате научимся отправлять файлы в «Облако» и получать оттуда готовый текст.

Вся первая часть проекта у нас как раз и будет про настройку «Яндекс.Облака» и подготовку к работе.

Условия и ограничения

Распознавание речи — платная услуга, но Яндекс даёт 60 дней и 3000 ₽ для тестирования. За эти деньги можно распознать 83 часа аудио — больше трёх суток непрерывного разговора. Это очень много: за время подготовки этой статьи и тестирования технологии мы потратили 4 рубля за 3 дня.

Если отправлять файлы с записью больше минуты, то одна секунда аудио стоит одну копейку. Чтобы распознать запись длиной в час, нужно 36 рублей. Это примерно в 20 раз дешевле, чем берут транскрибаторы — люди, которые сами набирают текст на слух, прослушивая запись.

Нейросеть часто понимает, когда текст нужно разбить на абзацы, но делает это не всегда правильно.
Ещё она не ставит запятые, тире и двоеточия. Максимум, что она делает — ставит точку в конце предложения и начинает новое с большой буквы. Но при этом почти все слова распознаются правильно, и отредактировать такой текст намного проще, чем набирать его с нуля.

Последнее — из-за особенностей нашей речи и произношения SpeechKit может путать слова, которые звучат одинаково (код — кот) или ставить неправильное окончание («слава обрушилось на него неожиданно»). Решение простое: прогоняем такой текст через орфонейрокорректор и всё в порядке. Одна нейронка исправляет другую — реальность XXI века :-)

Всё, приступаем.

Иногда результат получается вот таким, но на понимание текста это не сильно влияет.

Регистрация в «Облаке»

Для этого нам понадобится Яндекс-аккаунт: заведите новый, если его у вас нет, или войдите в него под своим логином.

Если аккаунт уже есть — переходим на страницу сервиса cloud.yandex.ru и нажимаем «Подключиться»:

На следующем шаге подтверждаем согласие с условиями, и мы у цели:

Мегапроект: расшифровщик аудио в текст… через облако Яндекса!

На главной странице «Облака» активируем пробный период, чтобы бесплатно использовать все возможности сервиса, в том числе и SpeechKit:

Мегапроект: расшифровщик аудио в текст… через облако Яндекса!

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

Когда подключите карту — нажмите «Активировать».

Когда всё будет готово, вы попадёте на главную страницу сервиса, где увидите что-то подобное:

Вместо статуса Active вы увидите статус «Пробный период» и баланс в 3000 ₽ без кредитного лимита.

Командная строка Яндекса

С её помощью мы сможем получать нужные ключи доступа, чтобы отправлять файлы с записями на сервер для обработки.

Весь процесс установки мы опишем для Windows. Если у вас Mac OS или Linux, то всё будет то же самое, но с поправкой на операционную систему. Поэтому если что — читайте инструкцию.

Для установки и дальнейшей работы нам понадобится PowerShell — это программа для работы с командной строкой, но с расширенными возможностями. Запускаем PowerShell и пишем там такую команду:

iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-yc/install.ps1')

Она скачает и запустит установщик командной строки Яндекса. В середине скрипт спросит нас, добавить ли путь в системную переменную PATH, — в ответ пишем Y и нажимаем Enter:

Мегапроект: расшифровщик аудио в текст… через облако Яндекса!

Командная строка Яндекса установлена в системе, закрываем PowerShell и запускаем его заново. Теперь нам нужно получить токен авторизации — это такая последовательность символов, которая покажет «Облаку», что мы — это мы, а не кто-то другой.

Переходим по специальной ссылке, которая даст нам нужный токен. Сервис спросит у нас, разрешаем ли мы доступ «Облака» к нашим данным на Яндексе — нажимаем «Разрешить». В итоге видим страницу с токеном:

Теперь нужно закончить настройку командной строки Яндекса, чтобы можно было с ней полноценно работать. Для этого в PowerShell пишем команду:

yc init

Когда скрипт попросит — вводим токен, который мы только что получили:

Сначала отвечаем «1», затем «Y» и «4».

Настраиваем доступ

Есть два способа работать с сервисом SpeechKit: через IAM-токен, который нужно запрашивать заново каждые 12 часов, или через API-ключ, который постоянный и менять его не нужно. Мы будем работать через ключ, потому что так удобнее.

Чтобы его получить, нам нужен сервисный аккаунт в «Облаке». Создадим его так.

1. Заходим в консоль управления и нажимаем на единственную папку в нашем облаке:

2. Выбираем «Сервисные аккаунты» → «Создать»:

3. Вводим имя (какое понравится), затем нажимаем «Добавить роль» и выбираем «editor»:

4. Заходим в сервисный аккаунт, который только что создали:

5. Нажимаем на кнопку «Создать новый ключ» и выбираем пункт «Создать API-ключ»:

Сервис спросит про описание — можно ничего не заполнять.

6. Сохраняем отдельно секретный ключ — он выдаётся только один раз и восстановить его нельзя. Выделяем, копируем и сохраняем в безопасное место:

Что дальше

Поздравляем — самое сложное позади. Дальше будет проще: мы напишем программу на Python, которая будет отправлять на сервер запрос на расшифровку и получать в ответ готовый текст. Ту би континьюд.

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
За что админы любят SSH
За что админы любят SSH

И почему вам тоже нужно его полюбить.

easy
Андрюха, у нас логика! Возможно, криминал
Андрюха, у нас логика! Возможно, криминал

Логическая задача о преступности.

easy
Делаем сами: адаптивный сайт
Делаем сами: адаптивный сайт

С котиками!

medium
Устанавливаем суверенный облачный офис
Устанавливаем суверенный облачный офис

Пошаговая установка OnlyOffice на ваш собственный или арендованный сервер

hard
Красивые ссылки на вашем сайте
Красивые ссылки на вашем сайте

Меняем стандартное подчёркивание на дизайнерское.

medium
Uncaught SyntaxError: Unexpected token — что это означает?
Uncaught SyntaxError: Unexpected token — что это означает?

Самая популярная ошибка у новичков.

medium
Правильные цитаты: добавляем первоисточник в ворованный с вашего сайта контент
Правильные цитаты: добавляем первоисточник в ворованный с вашего сайта контент

При вставке все будут видеть, откуда скопирован текст

medium
Рисуем абстрактные картины на чистом CSS
Рисуем абстрактные картины на чистом CSS

Импрессионизм, авангардизм и искусство

easy
Делаем свою доску задач с тегами и анимацией
Делаем свою доску задач с тегами и анимацией

Так делает большинство таск-трекеров

medium
hard