Задача перевода файлов MP3 в текст (как перевести аудио в текст), судя по статистике wordstat от Яндекса, является очень востребованной.
В файлах MP3 могут храниться записи на диктофон, звуковые дорожки из видео или музыкальных клипов.
В своё время я перепробовал множество способов решить такую задачу. При больших объёмах файла альтернативы использования для этого нейронных сетей я не вижу.
При транскрибации можно либо установить нужное программное обеспечение на свой компьютер, либо делать это онлайн.
Первый вариант ещё недавно требовал танцев с бубном даже при наличии хороших IT-знаний. К тому же, транскрибация требует достаточно больших вычислительных ресурсов, что есть далеко не у каждого.
Второй вариант страдает своей дороговизной, с немаленькой поминутной оплатой. Например, студенты для перевода своих записанных лекций воспользоваться этой альтернативой не смогут.
Выход из ситуации есть. Транскрибацию легко, быстро и абсолютно бесплатно делает
Нейросеть Whisper от OpenAI, создателя ChatGPT
Программа Google Colaboratory, работающая на удалённом сервере, даёт доступ к вычислительным ресурсам, предоставляемым бесплатно самим Гуглом. Это значительно сокращает время выполнения операций нейросетей.
Далее описано как установить и использовать бесплатные программы Google Сolab и нейронную сеть Wisper для быстрой транскрибации.
Приводится метод работы с ПК, не с мобильными устройствами.
Пошаговая инструкция
Шаг 1. Открываем Google Drive и устанавливаем Google Colab
Чтобы использовать Google Drive достаточно иметь бесплатный Google аккаунт
Заходим на сайт drive google.com.
Ниже логотипа диска нажимаем на кнопку «+ Создать» и выбираем те опции которые показаны ниже на рисунке.
Открывается новое окно, в поисковой строке которого начинаем печатать на латинской раскладке слово colab, Возможно, у вас появится список с подсказками. Тогда выбираем Colaboratory.
В новом окне кликаем на Colaboratory.
В открывшемся окне жмём на кнопку Установить. Выбираем свой Google-аккаунт. Делаем всё как обычно при установке с Google Play. Затем закрываем маркетплейc.
Возвращаемся в окно Google Drive. Снова нажимаем на «+ Создать» и выбираем опции, показанные ниже.
Шаг 2. Открываем блокнот Google Colaboratory и даём имя файлу
В открывшемся окне блокнота дважды кликаем на показанном ниже поле:
Меняем его имя и нажимаем Enter. В данном случае мы задаём имя файла как Primer.
Если вы не видите такую картинку, то значит она скрыта. Для её открытия нужно в строке, где написано сверху Подключиться, нажать на самую крайнюю правую галочку смотрящую вниз.
Тогда откроется нужная нам дополнительная панель.
Шаг 3. Выбираем тип процессора
Для получения максимальной производительности вычислительных операций нейронных сетей выбираем соответствующий тип процессора.
Шаг 4. Вставляем код на Питоне для загрузки необходимых модулей и выполняем его
По нажатии вверху слева на поле +Код открывается новая строка. В неё копируем показанные ниже строки.
!pip install git+https://github.com/openai/whisper.git
!sudo apt update && sudo apt install ffmpeg
Этот код должен загрузить в Colab сам Whisper и библиотеку ffmpeg.
Для загрузки кликаем на треугольничек, в левой части строки. После этого ниже ячейки побегут строки журнала выполнения кода.
Здесь следует обратить внимание на сообщения, выделенные красным. Обычно они говорят об ошибках при выполнении кода. В нашем случае красным показаны сообщения о нехватке каких-то модулей. Обычно, это приводит к ошибкам при выполнении дальнейших операций или, вообще, к невозможности их выполнения.
Однако, следующая строка (подчеркнута зелёным) говорит о том, что Whisper установился успешно. Поэтому о наличии красных сообщений пока забываем.
А нижняя строка с подчёркиванием сообщает о том, что новейшая версия ffmpeg УЖЕ была установлена.
Работа с Питоном в Collab может быть достаточно непредсказуемой, если не соблюдать взаимное соответствие версий многочисленных используемых библиотек и модулей. Но не всегда это приводит к фатальным последствиям. У вас может получиться по-другому.
Больше красных записей не было, поэтому идём дальше, нажав на иконке с папкой слева (обведено синим, см. предыдущую картинку).
Шаг 5. Загружаем транскрибируемый файл
Перетаскиваем из другого окна наш файл MP3 на свободное место, как показано на картинке:
Для эксперимента я выбрал файл с песней Beatles Мишель. При перетаскивании появляется сообщение о том что файл стоит сохранять не только в этой среде исполнения, так как после закрытия Colab наш файл MP3 и все прочие создаваемые файлы исчезнут.
Шаг 6. Вставляем код на Питоне для извлечения текста
Создаём новую ячейку, нажав вверху на кнопку +Код. В неё копируем следующую инструкцию:
!whisper "YOUR FILE NAME" --model medium
YOUR FILE NAME заменяем на наше имя файла полностью, с расширением. То есть, на Michelle.mp3.
Шаг 7. Извлекаем текст
Для запуска процедуры извлечения снова нажимаем на треугольник в левой части строки кода.
При выполнении кода система сначала определяет язык по первым тридцати секундам записи, а спустя минуту-другую в левом окошке появляются новые файлы.
Появившиеся файлы имеют то же имя, что и оригинал, но с разным расширением. Из них для нас интерес представляют два:
- Сам извлеченный текст (расширение TXT).
- Файл с субтитрами (SRT).
В журнале выполнения кода видно, что система определила язык как английский, то есть верно. Показано также время прогона самого кода (1 минута). Сами строки журнала представляют из себя содержимое файла субтитров с временными интервалами.
На SRT-файле после выгрузки можете кликнуть 2 раза. Он запустится как MP3 с субтитрами. Про TXT см. далее.
Шаг 8. Выгрузка файлов результата
Файлы скачивается по клику правой кнопкой на имени файла в стандартную директорию загрузки.
Шаг следующий.
Была повторена процедура транскрибирования MP3-файла с песней В. Высоцкого «Письмо пациентов Канатчиковой дачи».
Шаг 9. Анализ транскрибированного аудиофайла
Анализ качества транскрибации англоязычного файла
Открываем текстовым редактором TXT-файл.
Поначалу я сравнивал полученный текст с тем, что поют в песне. Долго не мог понять, почему пропущены фразы на французском.
Затем сравнил с оригиналом, найденным в интернете.
Стало ясно, что французские фразы тоже есть, но в переводе на английский!
Итак, оцениваем качество транскрибации. Все комментарии относятся к картинке выше.
Синим подчеркнуты фразы на французском в английском переводе. Вернее, это — одна и та же фраза. Но результат, почему-то разный. Первая из таких фраз практически повторяет первую строку, которая исполнялась чисто на английском.
Транскрибация здесь ужасная. Правда, это относится только к части фразы (подчёркнуто зелёным). В оригинале это — «These are words that» (Эти слова, которые). А в выходном файле — «trees are watered» (деревья политы — в смысле «полны водой»). Грамматически это имеет право на существование. А по смыслу… Откуда же нейросети знать, что смысла в этом мало и так обычно не говорят?
А вот во второй и третьей фразах результат более адекватный: «without words they». Здесь, хотя бы, «words» распозналось правильно. И немножко не угадали с «that».
Ещё ляп (?), баг или редко встречающаяся случайность (?) — последняя фраза в файле результата (отметка чёрным) в песне не исполняется!
Подчёркнутое красным отличается от оригинала. НО: в песне пропето именно так, как дано в транскрибации!
Я бы оценил результат работы с англоязычным аудио в 5-. Минус за лишнюю строку и «политые деревья». Но такие ляпы при вычитке обнаружились бы моментально.
Анализ качества транскрибации русскоязычного аудио
Сначала технический момент. Полученный в результате транскрибации файл в Microsoft wordpad открывается с «кракозябрами». Нормальную кириллическую кодировку дают: стандартный блокнот и Word, если открывать по умолчанию, как на картинке ниже.
Часть TXT-файла.
Текст от В. Высоцкого очень сложный: много идиом и сленга. Даже ручная транскрибация будет сильно зависеть от квалификации специалиста.
Красным подчёркнуты ляпы транскрибирования. Ниже дано summary ошибок.
Примеры неверного транскрибирования
Это только то, что получено от анализа единственной песни.
Приведены в формате: оригинал — после транскрибирования.
Имена собственные и аббревиатуры
Канатчиковой — канатчиковой
Капица — капится
краснобай и баламут — Краснобай и Баламут
сочинили ноту ТАСС — сочинили ноту таз
В то же время, правильно:
контр-ФРГ
главврач Маргулис
надомник Рудик
Формы глаголов
змей, в окне маячит — змей, в окне маячить
Треугольник будет выпит — Треугольник будет выпить
Отсутствующие тире
медикаментов груды — в туалет — медикаментов груды в туалет
и вдруг — Бермуды! — и вдруг Бермуд
Несогласование падежей, родов, форм и наклонений
подлые летают — подлое летают
спросят дети, навещая нас с утра — спросят дети, навещай нас с утра
Раздельное написание НЕ
многогранник — незакрытый пуп — многогранник не закрытый пуп
Непонятная транскрибация
трясся — дрязся
сообщением нас потряс — сообщением нас подряз
матершинник и крамольник — матершинник и кровольник
будь он параллелепипед — будь он параллели пипит
Капица ведет — капится везет
Применено похожее по звучанию слово (словоформа)
колоться — колодца
журнала «Очевидное — невероятное» — журнал очевидной и невероятной
злые происки врагов — злые провески врагов
Взволновал — Сволновал
уколоться и забыться — уколоться, не забыться
и вот те раз! — и вот террас
Вон дантист — надомник Рудик — Вон тантист-надомник Рудик
у него приемник Грюндиг — у его приемника Хрундик
каждый лез и приставал — каждый лес и приставал
ядрена вошь — ядрен вожь
Прямая речь не выделяется. Совсем?
Выводы
Вывод 1
Нейронная сеть Whisper от OpenAI, пожалуй, является самым быстрым и бесплатным способом перевести звук из MP3 файлов в текст. Например, тот же файл с пациентами был обработан примерно в 5 раз быстрее, чем продолжительность самой песни. Но самое главное — получается очень качественный (несмотря на множество несоответствий, что я привёл) транскрибированный текст на совсем непростом русском языке, В отличие от многих подобных нейронок, Whisper прилично разделяет звукоряд на предложения, начиная каждое из них с большой буквы. Распознает параграфы. Неплохо работает с грамматикой и синтаксисом, корректно расставляя запятые. Во многих случаях правильно отрабатывает имена собственные. Путается, в основном, с похожими по звучанию словами. Особенно там, где выбор зависит от человеческого понимания контекста.
Общая оценка, принимая во внимание сложность текста — твёрдая 4.
Вывод 2
Несмотря на упомянутые достоинства, любая автоматическая транскрибация при чистовой доработке требует тщательнейшей вычитки.
PS.
Если кликнуть по названию канала, то увидите другие статьи. Можно выбрать еще что-то интересное для себя. А для просмотра будущих статей и поддержки автора — лучше вообще подписаться.
Имеется также постоянно обновляемый гид-путеводитель по статьям канала.
#нейросеть #нейронныесети #ИИ #AI #neuralnetworks #искусственныйинтеллект #voicetotext #spechtotext #звуквтекст #речьвтекст #whisper #colab #colaboratory #googlecolab #транскрибация #питон #python