Транскрипты, поиск и распознавание ключевых слов с Twilio и VoiceBase

Автор: | 03.08.2026

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

*Ниже представлен гостевой пост от VoiceBase*

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

Мы поговорили с генеральным директором Greenrope Ларсом Хельгесоном, чтобы обсудить его собственный опыт интеграции VoiceBase с Twilio.

Мы сосредоточимся на том, как эффективно использовать API VoiceBase с Twilio для индексации записи. Посетите целевую страницу VoiceBase здесь для получения дополнительной информации о получении ключевых слов, тем и транскриптов, а также о создании пользовательских интерфейсов с помощью Voicebase и Twilio.

В части 1 мы укажем URL действия в TwiML, чтобы VoiceBase мог получать уведомления о завершении записи. Затем мы напишем код для получения события окончания звонка и выполнения вызова API к VoiceBase для загрузки и индексации записи. Мы просто передадим URL записи, полученный из события Twilio, в качестве параметра для API VoiceBase. Затем мы укажем другой обратный вызов в API VoiceBase, чтобы получать уведомления о завершении индексации.

Часто в вашем TwiML вы используете команду dial. Например, вот команда dial, используемая для подключения к конференц-залу. Twilio позволяет вам записывать звонок с помощью флага record и указывать действие, которое необходимо предпринять после завершения звонка, следующим образом:

Или вы можете сделать что-то вроде этого для записи конференц-звонка.

В обратном вызове у вас будет доступ к ссылке на запись. Обратный вызов — это место, где вы можете инициировать запрос на индексацию в VoiceBase, что мы покажем ниже. Альтернативно, вы можете найти ссылки на записи Twilio через API Twilio — https://www.twilio.com/docs/API/rest/recording

Давайте посмотрим на код в indexConferenceRecording.php, который инициирует запрос к VoiceBase, что в конечном итоге создает транскрипт вашей записи, индексирует ее для возможности поиска, а также извлекает ключевые слова из записи.

Сначала мы извлечем некоторые важные значения, которые Twilio предоставляет в формате POST.

Затем мы установим некоторые значения, которые мы хотим включить в вызов API к методу загрузки VoiceBase, который инициирует обработку на серверах VoiceBase.

Затем мы выполним HTTP GET (также поддерживается POST).

И, наконец, мы получим ответ JSON от вызова API.

Несколько слов о методе upload VoiceBase API выше. Каждый метод имеет 4 общих обязательных параметра.

— API-ключ и пароль

— Версия: Текущая версия — 1.1

— Action: В данном случае действие — uploadMedia

Для upload media мы передаем следующие параметры:

**mediaUrl**: Местоположение записи. Используется во время загрузки для создания транскрипта, извлечения ключевых слов и индексации. Используйте файл wav.

**sourceUrl**: Вы можете использовать эту настройку, если планируете хранить mp3 самостоятельно. VoiceBase будет использовать этот URL для потоковой передачи и не будет транскодировать аудио в mp4.

Если эта настройка не указана, VoiceBase будет транскодировать аудио в стандартный формат mp4 и сохранять его для последующей потоковой передачи. Если вы планируете использовать Twilio для хранения и потоковой передачи (используя mp3), мы рекомендуем установить эту настройку.

**transcriptType**: Транскрипт может быть машинным или человеческим. По умолчанию используется машинный.

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

**Externalid**: Этот идентификатор является внешним с точки зрения VoiceBase. Он позволяет использовать ваши собственные уникальные идентификаторы для ссылки на запись, ее транскрипт и другие метаданные. Ваша ответственность — обеспечить уникальность externalId.

**SearchHitUrl**: По умолчанию метод поиска возвращает ссылку на страницу плеера записи на сервере VoiceBase.

Вы можете использовать это поле для переопределения этого URL. Это полезно, если вы планируете использовать VoiceBase Web SDK, который включает компонент поиска и компонент плеера. Подробнее об этом в будущей статье или на VoiceBase.com

**machineReadyCallBack**: Это похоже на параметр action Twilio. Это способ получить уведомление о завершении машинного транскрибирования и связанной с ним обработки.

Ответ от VoiceBase включает mediaId, который вы можете сохранить и использовать для ссылки на записи, транскрипты и ключевые слова позже. externalId позволяет использовать ваш собственный уникальный идентификатор и может использоваться вместо mediaId в любом вызове VoiceBase. В этом примере мы устанавливаем VoiceBase externalId равным RecordingSid Twilio. Таким образом, нам не нужно хранить mediaId и поддерживать сопоставление между идентификаторами Twilio и VoiceBase. Вы можете сделать то же самое или использовать другой уникальный идентификатор. Ваша ответственность — обеспечить уникальность идентификаторов. Или вы можете просто использовать уникальные mediaIds VoiceBase, если хотите.