mesilov / rarus-echo-php-sdk
PHP SDK for Rarus Echo Transcription Service
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 1
pkg:composer/mesilov/rarus-echo-php-sdk
Requires
- php: ^8.4||^8.5
- ext-curl: *
- ext-fileinfo: *
- ext-json: *
- ext-mbstring: *
- nesbot/carbon: ^2.72 || ^3.0
- php-http/discovery: ^1.19
- php-http/httplug: ^2.4
- php-http/message: ^1.16
- php-http/message-factory: ^1.1
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^3.0
- symfony/dotenv: ^6 || ^7||^8.0
- symfony/filesystem: ^6.4 || ^7.0||^8.0
- symfony/http-client: ^6.4 || ^7.0||^8.0
- symfony/mime: ^6.4 || ^7.0||^8.0
- symfony/property-access: ^6.4 || ^7.0||^8.0
- symfony/property-info: ^6.4 || ^7.0||^8.0
- symfony/serializer: ^6.4 || ^7.0||^8.0
- symfony/uid: ^7.0 ||^8.0
- symfony/validator: ^6.4 || ^7.0||^8.0
Requires (Dev)
- fakerphp/faker: ^1.23
- friendsofphp/php-cs-fixer: ^3.48
- monolog/monolog: ^3.5
- nyholm/psr7: ^1.8
- php-http/mock-client: ^1.6
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-symfony: ^1.3
- phpunit/phpunit: ^10.5 || ^11.0
- rector/rector: ^1.0
- symfony/var-dumper: ^6.4 || ^7.0|| ^8.0
This package is auto-updated.
Last update: 2026-02-17 05:33:32 UTC
README
PHP SDK для сервиса транскрибации RARUS Echo с использованием стандартов PSR и компонентов Symfony.
Статус проекта
beta - SDK покрывает текущую версию API.
Возможности
- Асинхронная транскрибация аудио и видео файлов
- Поддержка 13 языков (включая автоопределение)
- Различные типы транскрибации (обычная, с метками времени, с диаризацией)
- PSR-совместимость (PSR-3, PSR-7, PSR-17, PSR-18)
- Автоматическое обнаружение HTTP клиента (php-http/discovery)
Требования
- PHP 8.4 или 8.5
- Composer 2.x
- Расширения: json, curl, mbstring, fileinfo
Установка
composer require rarus/echo-php-sdk
Быстрый старт
Базовое использование
<?php declare(strict_types=1); use Rarus\Echo\Services\ServiceFactory; use Rarus\Echo\Core\Credentials; use Rarus\Echo\Enum\Language; use Rarus\Echo\Enum\TaskType; use Rarus\Echo\Services\Transcription\Request\TranscriptionOptions; use Symfony\Component\Uid\Uuid; // Создание credentials $credentials = Credentials::fromString( apiKey: 'your-api-key-uuid', userId: 'your-user-id-uuid' ); // Инициализация SDK $factory = new ServiceFactory($credentials); // Настройка опций транскрибации $options = TranscriptionOptions::create() ->withTaskType(TaskType::DIARIZATION) // С разбиением по говорящим ->withLanguage(Language::RU) // Русский язык ->withCensor(true) // С цензурой ->build(); // Отправка файла на транскрибацию $result = $factory->getTranscriptionService()->submit( files: ['/path/to/audio.mp3'], transcriptionOptions: $options ); $fileIds = $result->getFileIds(); $fileId = $fileIds[0]; // Uuid объект echo "Файл отправлен: {$fileId}\n"; // Проверка статуса $status = $factory->getStatusService()->getByFileId($fileId); echo "Статус: {$status->transcriptionStatus->value}\n"; // Получение результата после завершения if ($status->isSuccessful()) { $transcript = $factory->getTranscriptionService()->getByFileId($fileId); echo "Результат:\n{$transcript->result}\n"; }
С обработкой ошибок
use Rarus\Echo\Exception\FileException; use Rarus\Echo\Exception\ValidationException; use Rarus\Echo\Exception\AuthenticationException; use Rarus\Echo\Exception\ApiException; try { $result = $factory->getTranscriptionService()->submit($files, $options); } catch (FileException $e) { // Ошибка файла (не найден, не читается, неверный формат) echo "Ошибка файла: {$e->getMessage()}\n"; } catch (ValidationException $e) { // Ошибка валидации (422) echo "Ошибка валидации: {$e->getMessage()}\n"; } catch (AuthenticationException $e) { // Ошибка аутентификации (401) echo "Ошибка аутентификации: {$e->getMessage()}\n"; } catch (ApiException $e) { // Общая ошибка API echo "Ошибка API: {$e->getMessage()}\n"; }
Поддерживаемые возможности API
Типы транскрибации
transcription- обычная транскрипцияtimestamps- с метками времениdiarization- с разбиением по говорящимraw_transcription- сырой текст
Языки
ru, en, de, fr, es, pt, hy, ja, tr, ar, zh, he, vi, auto
Статусы
waiting- ожидает в очередиprocessing- обрабатываетсяsuccess- завершено успешноfailure- ошибка
Документация
- OpenAPI спецификация - официальная API документация
Разработка
Требования для разработки
- Docker & Docker Compose
- Make
Первоначальная настройка
make docker-init # Инициализация Docker окружения и установка зависимостей make docker-up # Запуск контейнеров make php-cli-bash # Войти в контейнер
Основные команды
make lint-all # Запуск всех линтеров make lint-cs-fixer-fix # Исправление стиля кода make lint-phpstan # Статический анализ make test-unit # Юнит-тесты make test-integration # Интеграционные тесты make test-all # Все тесты make ci # Полный CI pipeline локально
Полный список команд: make help
Вклад в проект
Мы приветствуем вклад в развитие проекта! Пожалуйста, ознакомьтесь с CONTRIBUTING.md.
Процесс разработки
- Fork репозитория
- Создайте feature branch
- Внесите изменения
- Запустите тесты и линтеры:
make ci - Создайте Pull Request
Лицензия
MIT License. См. LICENSE для деталей.
Поддержка
Если у вас возникли вопросы или проблемы, пожалуйста, создайте Issue.