Сводка по времени для аудиоконтента

Ранее я рассказывал о том, как транскрибировать аудиофайлы в текст с помощью внешнего Speech-to-Text API, предоставляемого AssemblyAI. В этом руководстве давайте подробно рассмотрим другую функцию под названием Auto Chapter, которая является частью API транскрипции:

https://api.assemblyai.com/v2/transcript

К вашему сведению, это работает следующим образом:

  • сегментировать аудиозапись на главы в зависимости от темы разговора
  • генерировать резюме для каждой главы

Будьте уверены, все, что вам нужно сделать, это вызвать API и передать необходимые параметры. Он выполнит все задачи за вас и вернет результат JSON, который можно использовать непосредственно в вашем проекте. Например, вы можете использовать эту функцию для создания сводки или описания для ваших видео на YouTube.

В этом уроке вы научитесь реализовывать следующие элементы:

  • конвертировать видео в аудио файл
  • загрузить аудиофайл на сервер
  • сделать POST-вызов API стенограммы
  • получить результат JSON через расшифровку вызова GET

Настраивать

Перед этим убедитесь, что вы создали новую виртуальную среду.

Пидуб

Активируйте его и выполните следующую команду для установки пакета pydub:

pip install pydub

Вы будете использовать этот пакет для экспорта видеофайла в аудиозаписи.

Запросы

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

pip install requests

Вы будете использовать этот пакет для выполнения вызовов HTTP API.

API-ключ

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

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

Видео в аудиофайл

Создайте новый вызов скрипта Python convert.py и добавьте следующий код:

from pydub import AudioSegment
audio = AudioSegment.from_file("test.mp4", "mp4")
audio.export("test.mp3", format="mp3")

Приведенный выше код будет читать видеофайл с именем test.mp4 и конвертировать его в mp3. Фактически, вы также можете загружать из разных форматов файлов:

# audio files
audio = AudioSegment.from_wav("test.wav")
audio = AudioSegment.from_mp3("test.mp3")
# ogg and flv
audio = AudioSegment.from_ogg("test.ogg")
audio = AudioSegment.from_flv("test.flv")
# other formats
audio = AudioSegment.from_file("test.mp4", "mp4")
audio = AudioSegment.from_file("test.wma", "wma")
audio = AudioSegment.from_file("test.aiff", "aac")

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

audio = AudioSegment.from_file("test.mp4", "mp4").set_channels(1).set_frame_rate(16000)

Сохраните файл и выполните следующую команду на своем терминале:

python convert.py

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

Загрузить файл на сервер

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

  • Загрузите локальный аудиофайл на сервер, чтобы получить доступный URL-адрес
  • Вызов API транскрипции (вызов POST) с параметрами audio_url и auto_chapters.
  • Вызовите API транскрипции (вызов GET), чтобы получить окончательный результат транскрипции.

В том же каталоге создайте новый файл с именем upload_file.py со следующим кодом:

Вы должны заменить переменные api_key и filename на основе ваших собственных вариантов использования.

Сохраните файл и запустите его следующим образом:

python upload_file.py

Вы должны получить следующий вывод, который представляет собой доступный URL-адрес для вашего аудиофайла:

{“upload_url”: “https://cdn.assemblyai.com/upload/ccbbbfaf-f319-4455-9556-272d48faaf7f"}

Сделать POST-вызов к Transcript API

Давайте создадим еще один файл с именем transcribe.py, который будет называться официальным API Transcript.

Не забудьте установить для переменной auto_chapters значение true, чтобы включить функцию суммирования.

Сохраните файл и выполните следующую команду:

python transcribe.py

Он вернет JSON, который содержит множество ключей. Наиболее важными ключами являются идентификатор и статус

{"id": "ccbbbfaf-f319–4455–9556–272d48faaf7f", ...
"status": "queued" ...}

Если вы получили статус error, это может быть по одной из следующих причин:

  • Неподдерживаемый формат аудиофайла
  • Аудиофайл не содержит аудиоданных
  • Аудиофайл был слишком коротким (‹200 миллисекунд)
  • URL-адрес аудиофайла недоступен
  • Ошибка на стороне API

Получить результат с помощью вызова Transcript GET

Последним шагом является выполнение HTTP-вызова GET для API стенограммы. В зависимости от длины вашего аудиофайла транскрипция может занять до 10 минут. Создайте новый файл Python с именем transcribe_file.py и добавьте в него следующий код:

Не забудьте заменить переменные api_key и id соответственно. Выполните следующую команду на своем терминале:

python transcribe_file.py

API вернет ответ JSON, содержащий большое количество пар ключ-значение. Ключ главы представляет собой список словарей со следующими элементами:

  • summary — краткое описание, представляющее собой конспект одной главы аудиозаписи.
  • headline — заголовок, соответствующий резюме. Вы можете думать об этом как о резюме резюме
  • start — начальная метка времени для конкретной главы
  • end — отметка времени окончания для конкретной главы

Взгляните на следующий пример вывода в качестве справки:

chapters: [
    {
        "start": 0,
        "end": 20000,
        "summary": "The American job plan is going to create millions of good paying jobs.  jobs created in an American jobs plan do not require a College degree. 75% don't require an associate's degree.",
        "headline": "The American job plan is going to create millions of good paying jobs.",
    }
    ...
]

Заключение

Давайте повторим, что вы узнали сегодня.

Эта статья началась с краткого введения в возможности автоматической главы API Speech-to-Text AssemblyAI. Далее следует установка необходимых пакетов Python через pip install.

Затем он рассмотрел преобразование видеофайла в аудиофайл. Впоследствии файл загружается на сервер перед вызовом API стенограммы. Он вернет результат JSON, который можно использовать в вашем проекте.

Спасибо за чтение этого произведения. Желаю отличного дня!

Рекомендации

  1. Введение в автоматические разделы — суммирование аудио- и видеофайлов
  2. Автоглавы — Документация