Переход прямо от аудио к ряду текстовых задач НЛП, таких как перевод, обобщение и анализ тональности

Добавление модели Wav2Vec2 в библиотеку трансформеров Hugging Face стало одним из самых захватывающих событий в НЛП за последние месяцы. До этого было непросто выполнять такие задачи, как машинный перевод или анализ тональности, если у вас был только длинный аудиоклип.

Но теперь вы можете объединить интересную комбинацию задач НЛП за один раз: расшифровать аудиоклип с помощью Wav2Vec2, а затем использовать различные модели преобразователей для обобщения или перевода транскрипции. Возможные перестановки и комбинации задач НЛП, которые вы можете связать, ошеломляют.

Конечно, результаты могут быть неоднозначными. Некоторые задачи НЛП, такие как обобщение, по своей природе очень трудно решить.

В этом посте, продолжающем мою более раннюю публикацию об испытаниях Wav2Vec2, будут описаны 2 испытания:

  • №1: преобразование речи в текст в перевод и анализ тональности
  • №2. Преобразование речи в текст в обобщение

РЕПО, ТРЕБОВАНИЯ И ССЫЛКИ

Ноутбуки и аудиофайлы, необходимые для испытаний, находятся в моем репо. Кроме того, для запуска записных книжек вам понадобятся:

Код в большинстве записных книжек был обновлен, чтобы использовать лучший подход для расшифровки длинных аудиофайлов, через сообщение на Github, написанное инженером по машинному обучению Hugging Face Лисандре Джик.

В своей предыдущей работе я использовал Audacity для ручного разделения длинных аудиоклипов на более мелкие, более управляемые части (аудиоклипы длиной более ~ 90 секунд обычно приводят к сбою локальных компьютеров и Colab). Код Lysandre исключает этот шаг, используя Librosa для потоковой передачи длинного аудиоклипа более короткими фиксированными фрагментами.

На хабе моделей Hugging Face есть несколько версий модели Wav2Vec2. В этой публикации я буду использовать модель wav2vec2-large-960h-lv60-self.

ПРОБЛЕМА №1: РАСШИФРОВАТЬ + ПЕРЕВОД + АНАЛИЗ СЕНТЯБРЯ

Для этого испытания я выбрал первую речь в прайм-тайм президента США Джо Байдена 11/12 марта 2021 года (в зависимости от того, в каком часовом поясе вы находитесь).

Его речь длилась около 24 минут, и я транслировал ее на Wav2Vec2 25-секундными фрагментами. Вы можете выбрать более длинные или короткие куски. Я обнаружил, что 25 секунд дают приличные результаты. Подробности есть в notebook3.0 в моем репо, повторяться здесь не буду.

Речь сложная, и Байден, как известно, борется с заиканием. Расшифровка стенограммы (скачать прямо здесь) в некоторых частях довольно грубая, особенно ближе к концу:

Честно говоря, на мой взгляд, Байден говорил довольно четко, и это пример того, как модель Wav2Vec2 вызвала трудности. Но на моем iMac конца 2015 года модели потребовалось всего 12 минут, чтобы создать расшифровку стенограммы, что намного быстрее, чем если бы я делал это вручную.

Затем я хотел передать расшифровку речи Байдена модели машинного перевода и посмотреть, каково качество перевода на китайский язык. Я использовал для этого реализацию MarianMT в Hugging Face, так как пробовал ее раньше на нескольких выступлениях.

К сожалению, результаты практически непригодны для использования. Скачать полный китайский перевод здесь:

Процесс «цепного связывания» хорошо работает с технической точки зрения, и вам понадобится всего около 10 дополнительных строк кода после процесса Wav2Vec2.

Но качество перевода явно страдает, когда проблемные части необработанной транскрипции были переданы в модель MarianMT без тщательной очистки отсутствующих или неправильных слов и правильной пунктуации. Я добавил точки («.») В конце каждой 25-секундной транскрипции текста из Wav2Vec2, но это явно не отражает правильное начало и конец каждого предложения в исходной речи.

Таким образом, хотя кажется, что «цепное связывание» задач НЛП сэкономит много времени, проблемы в одной области могут и будут усугубляться, что приведет к снижению качества результатов для задач, которые находятся дальше по течению.

Очевидно, что потребуется дополнительное время, чтобы очистить необработанную расшифровку стенограммы на английском языке. Но я считаю, что это значительно улучшит качество китайского перевода. Что касается точной пунктуации, сейчас нет быстрого способа сделать это в Wav2Vec2. Но я подозреваю, что в будущих версиях модели эта проблема будет решена, поскольку в ряде сервисов автоматического распознавания речи на рынке уже есть функция «добавить знаки препинания».

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

Исходный текст был преобразован в простой фрейм данных, и затем я использовал конвейер преобразователей Hugging Face и Plotly для создания диаграммы структура настроений, подобной приведенной ниже. Некоторое время я экспериментировал с этими диаграммами настроений. Мои предыдущие эксперименты можно найти здесь.

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

Технически нет причин, по которым можно было бы останавливаться всего на трех задачах. Вы можете легко написать еще несколько строк кода и включить резюмирование в качестве 4-й задачи НЛП подряд.

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

Испытание № 2: РАСШИФРОВАТЬ + ПОДРОБНЕЕ

Для этого я выбрал более короткий аудиоклип, 4-минутное видео Премьер-министр Сингапура Ли Сянь Лун отвечает на вопрос о популизме на бизнес-конференции в 2019 году. Клип фокусируется на одной единственной проблеме, но достаточно сложен для нее. быть сложной задачей для любой модели автосуммирования.

Подробнее см. Notebook3.1 в моем репо.

Вывод Wav2Vec2 отличный, как вы можете увидеть ниже (или скачать здесь). Тут и там бывают мелкие подъёмы, но ничего, что вы не можете очистить очень быстро.

Я прогнал необработанную расшифровку стенограммы на двух моделях трансформаторов, настроенных для обобщения: bart-large-cnn от FB и pegasus-large от Google.

Вот результат Барта:

Это резюме Пегаса:

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

Но модель FB-Bart не улавливает никаких деталей из второй части комментариев г-на Ли. Между тем, модель Пегаса слишком много уловила из первой части его комментариев и недостаточно - из второй. На мой взгляд, ни одна из версий не подошла бы для хорошего резюме, хотя, честно говоря, обе модели не были обучены на политических речах.

Итак, мы снова видим, что связывание задач НЛП через Wav2Vec2 и преобразователи технически жизнеспособно, но результаты не всегда удовлетворительны.

ЗАКЛЮЧЕНИЕ

Это захватывающие времена для людей, работающих в НЛП, и Wav2Vec2, похоже, открывает целый ряд новых возможностей. Когда Hugging Face инициирует спринт по расширению Wav2Vec2 на другие языки (помимо английского), возможности связывания задач НЛП могут только расти.

Но, учитывая существующие ограничения на Wav2Vec2 и трудности, присущие многим задачам НЛП, таким как реферирование, вероятно, будет разумнее добавить в процесс кнопку «пауза».

Под этим я подразумеваю, что результаты будут лучше, если необработанные транскрипты Wav2Vec2 будут очищены до того, как они будут переданы другим задачам НЛП. В противном случае проблемные области в расшифровке стенограммы усугубляются, что приводит к некачественным результатам в других местах.

Как всегда, если вы заметили ошибки в этой или любой из моих предыдущих публикаций, напишите мне по адресу:

Репо для этого поста, содержащее данные и блокноты для графиков, можно найти здесь.