Автоматическая расшифровка файлов Google Drive с помощью Pipedream

Pipedream — одно из моих новых открытий, и я быстро стал его поклонником. Это конструктор автоматизации с низким кодом и солидным предложением для разработчиков с возможностью установки пакетов npm и написания кода для среды исполнения Node.js (а также других языков). Для ваших рабочих процессов доступно ~2 ГБ эфемерного хранилища. Благодаря сотням доступных интеграций, большая часть времени, потраченного на выполнение операций CRUD, уходит. Вы можете сосредоточиться на «клею» для конкретных задач, который оживляет вашу автоматизацию.

В этом руководстве вы создадите рабочий процесс Pipedream, который будет прослушивать новые файлы, добавляемые в папку Google Drive, расшифровывать их с помощью Deepgram Node.js SDK и отправлять вам результат по электронной почте.

Прежде чем начать, вам понадобится учетная запись Pipedream, учетная запись Google и бесплатный API-ключ Deepgram.

Создайте новый, пустой рабочий процесс Pipedream для этого проекта.

Запускайте рабочий процесс, добавляя новые файлы

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

В новом пустом рабочем процессе выберите триггер «Новые файлы Google Drive (мгновенно)». Подключите свой аккаунт Google Drive, обеспечив доступ к просмотру, редактированию, удалению и загрузке файлов Google Drive.

По умолчанию этот триггер будет запускать рабочий процесс, когда файл будет добавлен в любое место вашего Диска. Это может быть немного агрессивным, поэтому на шаге триггера можно задать конкретные папки. Наконец, нажмите Создать источник.

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

Загрузка файла во временное хранилище Pipedream

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

Создайте новый шаг с действием Google Drive Download File и выберите учетную запись Google Drive. Для параметра Файл введите пользовательское выражение идентификатора файла из триггера: {{steps.trigger.event.id}}.

Чтобы загрузить файл в эфемерное хранилище Pipedream, установите Destination File Path в /tmp/{{steps.trigger.event.name}}. Если имя файла hello.mp3, то местом назначения будет /tmp/hello.mp3.

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

Транскрибирование файла с помощью Deepgram

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

const fs = require('fs')
const { Deepgram } = require('@deepgram/sdk')

module.exports = defineComponent({
  props: {
    deepgram: {
      type: "app",
      app: "deepgram",
    }
  },
  async run({ steps }) {

  }
})
Войти в полноэкранный режим Выйти из полноэкранного режима

Нет необходимости отдельно устанавливать пакет @deepgram/sdk — достаточно просто импортировать или потребовать его.

Добавив реквизит deepgram, мы сможем легко и безопасно получить доступ к API-ключу Deepgram, который мы предоставили при подключении нашего аккаунта. При выполнении этого шага срабатывает метод run, а объект steps будет содержать все экспортированные данные из триггера и предыдущих шагов.

Внутри run добавьте следующее:

const { name, mimeType } = steps.trigger.event
const buffer = await fs.promises.readFile(`/tmp/${name}`)
const source = { buffer, mimetype: mimeType }

const deepgram = new Deepgram(this.deepgram.$auth.api_key)
const { results } = await deepgram.transcription.preRecorded(source, { punctuate: true })
return results.channels[0].alternatives[0].transcript
Войти в полноэкранный режим Выйти из полноэкранного режима

Этот фрагмент кода использует Deepgram Node.js SDK и функцию пунктуации, и возвращает только строку транскрипта. Вы можете настроить его, изменив возвращаемое значение.

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

Отправить расшифровку

Теперь расшифровка создана, вы можете сохранить или отправить ее любым удобным для вас способом. Вы можете сохранить ее в базе данных Airtable, создать новый файл Google Docs с тем же именем или отправить текстовое сообщение с ее содержанием.

Создайте новый шаг с действием Send Yourself an Email. Для темы используйте Транскрипция для {{steps.trigger.event.name}} готова. Для текста письма используйте {{steps.deepgram.$return_value}}, чтобы включить транскрипцию Deepgram.

Протестируйте свой рабочий процесс, и вы должны получить письмо с только что созданной расшифровкой!

Очистка хранилища

Наконец, удалите файл из каталога tmp. Хотя это не является строго необходимым, это рекомендуется. Создайте новый шаг Node.js, удалите весь код и замените его следующим:

const fs = require('fs')

module.exports = defineComponent({
  async run({ steps }) {
    return await fs.promises.unlink(`/tmp/${steps.trigger.event.name}`)
  },
})
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь вы можете развернуть свой рабочий процесс и автоматически получать расшифровки Deepgram по электронной почте. Конечно, вы можете отредактировать любой из шагов, чтобы сделать его более полезным для вашего конкретного случая использования. Если у вас возникнут вопросы, пожалуйста, обращайтесь к нам — мы любим помогать!

Оцените статью
devanswers.ru
Добавить комментарий