Редактор для автоматически распознанной речи

Kirill Ulitin
ResearchOps
Published in
4 min readDec 11, 2020

Для всех, кто хочет сократить время на обработку качественных исследований, сделал редактор Speech–to–Text транскриптов Яндекс Облака. Ниже расскажу, как выглядит процесс работы.

http://ya-transcript.ulitin.ru/

Ранее писал о том как расшифровка аудиозаписей может быть полезна для анализа интервью. Это продолжение о том, как использовать на практике.

В моей работе, периодически, возникают разные “велосипеды”, то sketch-плагин для сборки ui формат-тулбоксов, то парсер юзервойса для анализа открытого фидбека в офисным приложениям, в этот раз получился целый редактор транскриптов.

Зачем все это?

Расшифровка записи интервью вручную дает возможность познакомиться ближе с материалом, но занимает значительное время. Чтобы переслушать и сделать расшифровку нужно потратить в 2–3 раза больше времени, чем на само интервью. Приведу один полезный сервис для этого:

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

Автоматическое распознавание — быстрее и дешевле, но не идеально. Получившийся текст не связан с аудио — происходит потеря информации. Кроме того, расшифровка плохо структурирована и в целом разбираться с ней тяжело, но конечно лучше, чем ничего.

В сервисах для автоматического распознавания есть редакторы транскрипта, и они очень удобны. К сожалению, тот же сониксэйай относительно дорог, а бюджет на исследования не резиновый. Также в сониксе бывают проблемы с русским языком. Яндекс Облако в плане распознавания русской речи приятно удивляет. Да, там пока нет разделения по спикерам и пунктуации, но оно лучше работает с проблемными записями, в отличие от API Google и Амазона.

На гитхабе я пересмотрел все решения для редактирования транскриптов, которые смог найти:

И о чудо, нашел его:

Очень простой редактор, который был написан на простом js, как раз то, что я хорошо помню и могу разобраться без погружения в дебри реакта. В нем не было поддержки формата json’а от Яндекса, который я туда добавил, заодно переделав интерфейс и исправив горку багов.

Как это работает

Распознать аудио файлы через Яндекс Облако не так просто, так как в первую очередь это API. Нужно сделать следующее:

  1. Зарегистрироваться в Яндекс Облаке
  2. Создать хранилище (bucket), сервисный аккаунт и получить ключ доступа.
  3. Конвертировать аудио в формат opus (моно).
  4. Загрузить в хранилище на Яндекс Облаке.
  5. Запустить распознавание, с помощью curl команды, и забрать результат распознавания через несколько минут.

Часть этих действий я автоматизировал с помощью python.

Сервисы Яндекса не бесплатны, на данный момент 1 час распознавания стоит 36 рублей. Первые 2 месяца оплата не взимается.

Предустановки

Заведите аккаунт https://cloud.yandex.ru/

Создайте бакет

Имя должно быть уникально, настройки можно оставить по-умолчанию.

Создайте сервисный аккаунт и получите api-ключ

Для сервисного аккаунта выставите права доступа — editor. Ключ запишите в надежное место, он пригодится позже. Не передавайте ключ в открытый доступ.

Распознавание аудио в текст

Сконвертируйте аудио в формат opus моно

Можно использовать любой конвертер. Если умеете работать с консолью, — рекомендую FFMPEG.

ffmpeg -i demo.m4a -ac 1 demo.opus

Есть решение https://lottatools.com/convert-to-opus которое позволяет сконвертировать аудио в opus прямо в браузере, при этом отправки данных куда либо не происходит, но работает медленно.

Важно, чтобы аудио было моно, так будет в 2 раза дешевле.

Загрузите аудио в ваш бакет на Яндекс Облаке

Запустите распознавание и получите результат

Что бы удобнее делать эти операции я использую jupiter блокнот, его адаптированную версию я выложил на https://colab.research.google.com/drive/1ZZcawG7YoxdmEC6pRmX0eAGMr04hb3lG?usp=sharing

Нужно скопировать его к себе на гугл диск и отыскать api-ключ, который мы создали несколько шагов ранее.

Собственно все — теперь можно переходить к интерактивному редактору https://ya-transcript.ulitin.ru

Не забудьте удалить аудио из бакета, за хранение тоже списывают деньги.

Работа в Я.Транскрипте

Редактирование происходит в браузере и отправка данных куда-либо не происходит. Не забудьте включить автосохранение, тогда изменения текста и аннотации будут храниться в вашем браузере.

Итоги

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

https://ya-transcript.ulitin.ru

Репорты багов и предложения принимаются https://github.com/likeleto/ya-transcript/issues

или https://airtable.com/shr2UlR9MvZ97Uw9t

Мой телеграм канал https://t.me/ulitin_ru

Спасибо Артему Сексяеву и Роману Шишкину за помощь в тестировании редактора и Сергею Кривуле, за помощь в подготовке статьи.

--

--