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

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

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

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

В этой статье мы рассмотрим его.

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

🧑‍💻Ссылка на код:



🎉Развернутое приложение:



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

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

Звуковой сигнал — это, по сути, ярлык, который позволяет вам перейти в предопределенную позицию в аудио.

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

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

Обзор и статистика

Обзорная статистика дает общую сводку записи.

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

Интерактивная стенограмма

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

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

Форма звуковой волны позволяет пользователям визуально воспринимать динамику голоса и определять паузы. Для воспроизведения пользователь может переключаться между элементами управления звуком и вручную настраивать маркер выполнения на форме сигнала.

Анализ настроений

Анализ настроений проверяет слова с положительным и отрицательным значением.

После выбора тональности возвращается список слов тональности. В заголовке показано выбранное настроение и количество слов этого настроения в голосовой записи.

Каждый отдельный тег в списке отображает слово, временной код и его тональность по шкале от -4 для отрицательных слов до +4 для положительных слов.

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

Облако тегов

Облако тегов возвращает наиболее часто используемые слова в голосовой записи.

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

После выбора тега заголовок списка показывает, сколько раз этот тег встречался в записи. Для отдельных реплик показана последовательность появления вместе с временным кодом.

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

Именованные сущности

Анализ именованных сущностей позволяет находить подсказки на основе категоризации слов.

В настоящее время поддерживаются следующие именованные объекты: «Лицо», «Место», «Организация», «Деньги», «Единица» и «Дата».

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

Именованные объекты могут быть очень полезными. Например, компания может проверить сущность Person, чтобы быстро сгенерировать временные коды для упоминаний членов правления в записи. Или найдите объект «Деньги», чтобы быстро перейти к упоминанию бюджета компании.

Действия

Анализ действий возвращает глаголы, разделяя их на прошедшее, настоящее и будущее. В настоящее время поддерживаются следующие категории: PastTense, Infinitive, Copula, Modal и Gerund.

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

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

Пользовательский поиск

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

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

Ответная реакция

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

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

Список функций:

  1. Распознавание голоса — на основе Deepgram API
  2. Общая статистика — обзор записи голоса
  3. Анализ тональности — обнаружение положительных и отрицательных слов
  4. Генерация облака слов — наиболее часто используемая классификация слов
  5. Распознавание имени объекта — такие категории, как человек, место и т. д.
  6. Отслеживание активности — поиск действий в прошлом, настоящем или будущем
  7. Интерактивная стенограмма — смотрите прогресс или щелкайте, чтобы управлять им
  8. Обнаружение говорящего — общее количество говорящих в записи.
  9. Использование ключевого слова — образцы коротких текстов для лучшего контекста
  10. Пользовательский поиск — расширенная возможность запроса подсказок
  11. Предварительный просмотр формы сигнала — посмотрите динамику голоса, определите паузы
  12. Элементы управления звуком — воспроизведение, пауза, быстрая перемотка вперед и назад
  13. Поддержка перетаскивания — перетащите аудио в область выбора файла
  14. Загружайте файлы MP3 — наиболее часто используемый аудиоформат
  15. Загрузчики прогресса — улучшенный UX для загрузки расшифровок
  16. Полностью адаптивный — отлично работает на мобильных устройствах и планшетах
  17. Красочный пользовательский интерфейс — для более удобного взаимодействия и выделения слов

Стек технологий

Next.js — фреймворк приложения React

Deepgram — для распознавания речи на основе ИИ

компромисс, сентимент — для обработки текста

react-tagcloud — для создания облака слов

react-tabs — для навигационных панелей

react-drag-drop-files — для поддержки перетаскивания

wavesurfer.js — для генерации звуковой волны

GitHub — для размещения кода

Vercel — развернуть проект

ESLint, prettier — для линтинга и форматирования кода

Namecheap — для пользовательского поддомена

Заключение

Я хочу поблагодарить Forem за отличную платформу для обучения, обмена результатами и общения с замечательными людьми. Ежедневное посещение DEV стало моей привычкой на долгие годы, и я опубликовал уже более 300 постов.

Мне было приятно открыть для себя Deepgram, соорганизатора этого хакатона, предоставляющего свой API для создания потрясающих вещей. Отныне у меня в кармане будет ценный инструмент, который я уже буду знать, как использовать, когда мне придется иметь дело с проектами по распознаванию речи.

Голос – это инструмент коммуникации, с ним ежесекундно передается много ценной информации. Мощный API Deepgram — это большой шаг к тому, чтобы работать с умом, а не усердно, что станет еще более важным навыком для победы над конкурентами в будущем.

Строительные проекты всегда были моей страстью, и мне доставляет удовольствие помогать и вдохновлять людей. Если у вас есть какие-либо вопросы, не стесняйтесь обращаться!

Присоединяйтесь ко мне в Twitter, LinkedIn и GitHub!

Посетите мое портфолио, чтобы увидеть больше таких проектов:



Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.