di-space/yandex-stt

PHP Yandex SpeechKit

1.0.2 2020-02-27 13:26 UTC

This package is auto-updated.

Last update: 2024-04-27 22:41:43 UTC


README

Пакет реализовывает распознание речи из коротких аудио-файлов через сервис Yandex SpeechKit для PHP.

Ограничения накладываемые Яндексом

  • Максимальный размер файла — 1 МБ
  • Максимальная длительность — 30 секунд
  • Максимальное количество аудиоканалов — 1

ВНИМАНИЕ! Сервис Yandex SpeechKit платный! Подробнее о тарифах можно ознакомиться на этой странице

Установка

Composer

Добавить зависимость через Сomposer

   composer require di-space/yandex-stt

Использование

Для начала вам нужно создать аккаунт в Яндекс Облаке и получить ваш IAM-TOKEN

Подробнее о вариантах получении тоукена можно узнать в документации SpeechKit

В случае, если вы будете передавать пользовательский, а не сервисный тоукен - вам так же потребуется Ваш Идентификатор Каталога(folderID)

Упрощённый вариант

Импортировать YandexSTT

   use DiSpace\YandexSTT\YandexSTT;

Для удобства ввода дополнительных параметров можно импортировать интерфейс SpeechParamsInterface

   use DiSpace\YandexSTT\Request\SpeechParamsInterface;

Создание запроса из пути к аудио-файлу. В результате вернётся строка с распознаным текстом. Внимание, если не задавать дополнительных параметров, то ожидаемый формат файла OggOpus

   YandexSTT::getTextByAudioFilePath('<путь к файлу>', '<IAM-TOKEN>');

Дополнительный параметры передаются в виде массива

    YandexSTT::getTextByAudioFilePath('<путь к файлу>', '<IAM-TOKEN>', [
        'format' => SpeechRequestInterface::FORMAT_OGG,
        'lang' => SpeechRequestInterface::LANG_RU
    ]);
Доступные параметры

format - Формат файла. Варианты SpeechRequestInterface::FORMAT_OGG или SpeechRequestInterface::FORMAT_LPCM

lang - Язык. Варианты SpeechRequestInterface::LANG_RU, SpeechRequestInterface::LANG_EN и SpeechRequestInterface::LANG_TR

Если ваш тоукен получен для пользовательского, а не сервисного аккаунта, то вам нужно передать четвёртым параметром ваш идентификатор каталога(folderID).

   YandexSTT::getTextByAudioFilePath('<путь к файлу>', '<IAM-TOKEN>', [], '<folderId>');

Так же можно передать содержимое аудио-файла напрямую с помощью метода getTextByAudioDirect. Параметры аналогичный getTextByAudioFilePath

   YandexSTT::getTextByAudioDirect('<бинарное содержимое аудио-файла>', '<IAM-TOKEN>', [<массив дополнительных параметров>], ['folderId']);

Продвинутый вариант использования

Документация будет добавлена позже...