

Этот проект является результатом комбинации и дальнейшего развития двух моих предыдущих проектов:
В 2023 году, в разгар ажиотажа CHATGPT, я вдохновился объединить два моих предыдущих проекта в один игрок подкаста и улучшить его, используя API Open AIS.
К вашему сведению: Spotify позже выпустил аналогичное решение как для подзаголов, так и глав, прочитайте больше здесь.
Технологии, используемые в этом проекте, можно найти в таблице ниже.
| Технология | Вариант использования |
|---|---|
| Реагировать | Frontend Framework |
| Попутный ветер | Библиотека стиля CSS |
| Питон | Бэкэнд для обработки логики транскрипции |
| Колба | Подключает бэкэнд Python с Frontend React |
| Spotify API | Чтобы получить информацию об эпизодах подкаста |
| API распознавания речи Google | Преобразует речь в текст, т.е. транскрибирует подкаст |
| Откройте API GPT 3.5 от AI. | Транскрипт сегмента в главы на основе стенограммы |
Я хотел научиться подключить фронт реагирования с бэкэнд Python, поэтому я использовал этот проект в качестве возможности обучения, чтобы сделать это. В результате я сделал некоторую перегрузку, создав свой собственный API для обработки транскрипций на бэкэнде Python вместо того, чтобы называть API подключаемого и игрового API на фронте.
Более конкретно, фронт вызовет API Spotify и получает URL -адрес запрошенного подкаста. URL -адрес отправляется в качестве запроса на бэкэнд, который загружает подкаст как MP3, чтобы обработать его.
Причина, по которой MP3 необходимо обработать, заключается в том, что мне нужно получить временные метки для каждого предложения, чтобы отобразить их в правильное время в субтитрах. Я определяю предложения в стенограмме, прислушиваясь к молчанию (<14 децибел) более 500 мс. Когда молчание идентифицируется, я разделил исходный аудиофайл, чтобы создать набор меньших аудиофайлов, по одному для каждого предложения. Делая это, я смог рассчитать время начала и окончания каждого предложения, посмотрев на длину каждого меньшего аудиофайла, см. Рисунок ниже.

Все аудиофайлы теперь отправляются в API распознавания речи Google и возвращает строку транскрибированного звука. Транскрипция теперь отправляется обратно на фронт, который делает запрос открыть API AI для сегментации транскрипта и определения потенциальных тем, чтобы разделить эпизод на разные главы.
API Spotify не позволяет загружать полные эпизоды подкастов, всего 30 секунд. Это делает приложение очень ограниченным для использования, и поэтому это только доказательство концепции.
Создайте файл .env в корневом каталоге и добавьте свои клавиши API:
REACT_APP_SPOTFY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID_GOES_HERE
REACT_APP_OPEN_AI_KEY=YOUR_OPEN_AI_KEY_GOES_HERE
Используйте следующие команды для запуска проекта. Запустите фронт в одном терминале и на бэкэнд в другом терминале.
export FLASK_APP=backend
export FLASK_DEBUG=1
flask run
cd frontend
npm start
Посмотрите 1 -минутную демонстрацию проекта здесь.

Домашняя страница с аутентификацией Spotify

Страница Discovery

Загрузка экрана

Эпизод экран

Эпизод экран

Субтитры в полноэкранном режиме

Обзор глаз в эпизоде

Аудиоплеер, разделенный на главы

Поиск стенограммы