{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

Расшифровываем аудио в текст на 99 языках: как использовать Whisper от создателей ChatGPT прямо в браузере

Whisper — бесплатная система распознавания речи от OpenAI. Проблема в том, что у нее нет веб-версии как у ChatGPT. Придется устанавливать вручную, читать гайды, написанные разработчиками для разработчиков, писать какой-то код и так далее. На самом деле попробовать нейросеть можно прямо из браузера. Рассказываем, как это сделать.

изображение сгенерировано Midjourney

Кому пригодится

Редакторам, спикерам и вообще всем, кому нужно расшифровывать аудио. Причем способы применения могут быть совершенно разные:

  • Провели рабочий созвон в Zoom или Google Meet — получили текст, который поможет погрузиться в контекст, сделать фоллоу-ап и не упустить детали.
  • Провели интервью — сразу получили готовый текстовый драфт.
  • Выступили с докладом на конференции — оформили в виде статьи минимальными усилиями.
  • Записали лекцию или презентацию проекта — получили готовую текстовую версию.
  • Или сделали субтитры и так далее.

Система обучена на 680 000 часах речевых данных из сети и распознает 99 языков, включая русский.

Как использовать

Есть три основных способа:

1. Хардкорный, но лучший (локальная установка). Пойти на GitHub, покопаться в исходниках, прочитать гайды и поставить Whisper локально на компьютер (подойдут и Mac, и PC).

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

2. Простой, но медленный (в облаке). Прямо в браузере, а настройка займет буквально пять минут. Для этого понадобится Google Colab (что-то типа Google Docs, только для написания кода на Python) и несколько простых команд.

  • Плюсы: не надо париться с установкой, можно воспользоваться на любом устройстве. Хороший способ, чтобы познакомиться с Whisper.
  • Минусы: медленно, а при каждом перезапуске придется заново скачивать модель (до 3 ГБ). Кроме того, бесплатные вычислительные ресурсы сервиса ограничены, а все данные через 12 часов удаляются — ограничения можно снять, оформив платную подписку.

3. Удобный, но платный (приложение). Нативное приложение для Mac, но бесплатная версия MacWhisper поддерживает только самые простые модели распознавания.

  • Плюсы: установил и пользуешься.
  • Минусы: для хорошего результата придется выложить 10 евро. Но даже платная версия не поддерживает самую продвинутую модель распознавания large-v2.

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

Whisper в браузере

Способ должен работать на любом устройстве, даже на смартфонах, но это не точно. Точно — работает на десктопных браузерах.

1. Создаем новый файл Google Colab. Просто нажмите на ссылку.

2. Указываем, чтобы компьютер использовал GPU (работает и без этого, ну лучше указать).

Меню → Среда выполнения → Сменить среду выполнения

В появившемся окне в качестве аппаратного ускорителя выбираем GPU и нажимаем «Сохранить»:

3. Устанавливаем Whisper.

Для этого просто вставляем код ниже в пустое поле и запускаем его (кнопка Play рядом слева от ячейки или комбинация Ctrl + Enter). Начнется установка, займет пару минут.

!pip install git+https://github.com/openai/whisper.git !sudo apt update && sudo apt install ffmpeg

4. Загружаем файл, который нужно перевести в текст.

Точно поддерживаются видео .mp4 и аудио .mp3, .wav, .m4a. Проверено.

В левой колонке нажимаем папку и загружаем файл любым методом. Можно просто перетащить в окно браузера.

Мы пробовали и обычную запись, которая была сделана на диктофон. Никакой обработки, сырой исходник. При этом если запись совсем плохая, то можно попробовать использовать нейросеть от Adobe для улучшения качества звука. Работает тоже очень недурно.

5. Запускаем расшифровку.

Для примера я взял классику.

Вбиваем такую строку, где пишем название загруженного файла.

!whisper "What about money.mp3"

И нажимаем Play. Whisper начнет расшифровку, после чего выгрузит текстовые файлы туда же, куда вы загрузили исходник. Их можно потом скачать (таймингов как на скриншоте не будет) в форматах: .json, .srt, .tsv, .txt и .vtt.

Все, теперь можно скачивать исходники. Но если качество текста не устроило, его можно улучшить.

Модели и качество расшифровки

У Whisper есть несколько моделей распознавания, чем она больше, тем круче результат и дольше время выполнения.

Самая продвинутая на данный момент модель large-v2 обучена на том же датасете, что и large — но не один раз, а 2,5, что улучшает итоговый результат.

Пример 1. По умолчанию Google Colab будет использовать small. Пример выше был сделан именно на ней. Общий смысл будет понятен, но нюансы могут ускользнуть:

Например, отчество Михал Палыча сервис не распознал. Но как результат за 1 минуту очень даже неплохой.

Чтобы использовать более глубокую модель, нужно в конце команды дописать дополнительный параметр ---model и название модели через пробел. Выглядеть будет так:

!whisper "What about money.mp3" --model large-v2

Тот же файл на модели large-v2 был готов за 2,5 минуты. Результат уже заметно лучше, а мелкие недочеты ушли.

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

Я взял еще одну легенду, здесь английский вперемешку с русским. Результат small:

За минуту и почти идеально. Whisper правильно распознал большинство английских слов и разбил текст на много мелких предложений. А вот как за 3 минуты справилась модель large-v2:

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

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

Пример 3. И последний тест — видео с полиглотом, говорящим на 12 языках.

На модели small Whisper распознал английскую и испанскую речь и транскрибировал их в текст. Другие языки он тоже понял, но сразу перевел на английский (потому определил английский как основной язык исходника). Вот как это выглядит:

На large-v2 результаты еще лучше. Система транскрибировала не только английский и испанский, но и все остальные языки.

У Whisper есть еще некоторые параметры, о них можно узнать по команде:

!whisper -h

Пробуйте. Через браузер как минимум можно просто поиграться. Но на модели large-v2 долгие аудио расшифровывать лучше не стоит, вполне может крашнуться браузер.

Лучше все-таки установить на компьютер и сравнить скорости. Как скомпануем, все расскажем.

0
51 комментарий
Написать комментарий...
Alexander Zelenukhin

Если вы используете Windows, то Whisper можно найти в прекрасном редакторе для субтитров - Subtitle Edit, в меню Видео.

Ответить
Развернуть ветку
Di Dizo

Неясно только что использует редактор - CPU и GPU при расшифровке. в Google Colab есть возможность выбора.

Ответить
Развернуть ветку
2 комментария
Alexander Zelenukhin

Скачиваем MacWhisper. Нажимаем в Finder показать содержимое, в папке Resources 2 файла: ggml-model-whisper-base.bin и ggml-model-whisper-tiny.bin. base - это базовая модель, tiny - режим fast. Заменяем любую из них на модель ggml-large.bin, загуглив "huggingface ggerganov whisper.cpp", обязательно переименовав её в ggml-model-whisper-base.bin или ggml-model-whisper-tiny.bin. Запускаем MacWhisper. Если заменили модель tiny не забудьте переключиться на режим fast.

Ответить
Развернуть ветку
Alexander Zelenukhin

В новой версии библиотеки переехали сюда:
/Users/Имя пользователя/Library/Application Support/MacWhisper/models

Ответить
Развернуть ветку
8 комментариев
Егор Меняйло

Оп, спасибо! Попробуем)

Ответить
Развернуть ветку
Alex Jian

Благодарю!

Ответить
Развернуть ветку
Oleg Karpov

А можно все это как-то к whatsapp прикрутить, чтобы голосовухи распознавать?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Denis

Хорошая статья, сейчас как раз тоже разрабатывает продукт оболочку над Whisper, только с удобным веб-интерфейсом (продукт тоже платный :D). Кому интересно, отпишите в ЛС (уведомим Вас о готовности продукта)

Ответить
Развернуть ветку
Peace Maker

Гайд, достойный самого Гейтса !) А если серьезно, то мне кажется этот хайп вокруг ИИ до добра не приведет.

Ответить
Развернуть ветку
badResistor

готовимся сменить работу)

Ответить
Развернуть ветку
Becka Beckon

Натренировать самому на другие языки реально?

Ответить
Развернуть ветку
GIMZ
Автор

Кажется, нет. Но Whisper уже поддерживет 99 языков, должно хватить по идее :)

Ответить
Развернуть ветку
badResistor

Необходимые объемы данных и производительных мощностей катастрофически огромны.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Костя Бык

Вот это охрененная штука, но конечно совсем не юзерфрендли. Слишком много заморочек(

Ответить
Развернуть ветку
Kaylo Ren

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

Ответить
Развернуть ветку
Александр Жадан

Только интересовался и офигел с инструкции на официальном сайте, а тут доступно и сразу с картинками. Кайф!)

Ответить
Развернуть ветку
Анюта Алехнович

Полезная штука, в работе пригодится

Ответить
Развернуть ветку
Роман Сопов

Спасибо!

Ответить
Развернуть ветку
Первопроходец

Не читал, но сохранил в закладки. А там разберемся, что делать дальше)

Ответить
Развернуть ветку
Громов Семён

"No such file or directory" Подскажите, пожалуйста, загружаю в общее хранилище, не в какую-то определенную папку, в чем может быть проблема. (имя перепроверял несколько раз)

Ответить
Развернуть ветку
Вадим Скворцов

получилось исправить ошибку? столкнулся с тем же самым

Ответить
Развернуть ветку
Oleg Dolgikh

это он ffmpeg не видит, надо путь к нему в "Path" добавить, и потом перезагрузить пк

Ответить
Развернуть ветку
badResistor

О, спасибо! Попробую запустить на серве на выходных(пустить шептуна) )

Ответить
Развернуть ветку
badResistor

Коряво копируется, все таки лучше в отдельные строки разнести обновление и установку

Ответить
Развернуть ветку
Di Dizo

Мне написали, что тут в 4 раза быстрее распознает.

Более быстрая транскрипция Whisper с помощью
CTranslate2 faster-whisper - это повторная реализация модели Whisper от OpenAI с использованием CTranslate2, которая представляет собой механизм быстрого вывода для моделей Transformer.

...При той же точности и меньшем использовании памяти. Эффективность может быть дополнительно повышена с помощью 8-битного квантования как на CPU, так и на GPU.

https://github.com/guillaumekln/faster-whisper

Ответить
Развернуть ветку
Rudes Forges

Эх знать бы как установить это добро, когда захожу на гитхаб половину вообще не вдупливаю xD Мб есть туторы для чайников или пошаговые установки касательно faster-whisper?

Ответить
Развернуть ветку
Кирилл Соснин

Возможно ли как-то сохранить тайминг?

Ответить
Развернуть ветку
Андрей Шепелев

а как оно по качеству в сравнении с ютуб-распознаванием? :)

Ответить
Развернуть ветку
Andrey S

Спасибо. Установка через GitHub заняла у меня пару минут, причем это был первый раз в жизни, когда я что-либо устанавливал с GitHub. Программа реально работает

Ответить
Развернуть ветку
Tim Vid

!Whisper вдруг начал русский текст переводить на английский и транскрибацию передавать на английском, подскажите, пожалуйста, в чем может быть причина и как вернуть русский язык?..

Ответить
Развернуть ветку
Anna Abramova

Та же проблема( Получилось вернуть русский?

Ответить
Развернуть ветку
1 комментарий
Alexey Lipnitsky

Видимо выпустили обновление. Теперь гайд не актуальный.
1. Среды выполнения теперь другие.
2. Код для установки Whisper-a другой.
Может уже есть обновлённый гайд?

Ответить
Развернуть ветку
Alexey Lipnitsky

Видимо был какой-то сбой или обновления, гайд работает :-)

Ответить
Развернуть ветку
Lizaveta Kazachonak

привет! А как убрать таймкоды и сохранить?

Ответить
Развернуть ветку
Руслан Калин

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

Ответить
Развернуть ветку
Руслан Калин

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

Ответить
Развернуть ветку
Nastia Azari

Спасибо большое за статью!!!!!!

Ответить
Развернуть ветку
Anastasiia Arakhova

Почему то перестало работать в браузере(((

Ответить
Развернуть ветку
Екатерина Блинова

/bin/bash: line 1: whisper: command not found - вот такое пишет после нажатия кнопки play, хотя команду ввожу вроде бы верно !whisper "Новая запись 27.m4a". что делаю не так?

Ответить
Развернуть ветку
48 комментариев
Раскрывать всегда