itpanda-llc / yandex-speechkit-php-sdk
This package is abandoned and no longer maintained.
No replacement package was suggested.
Library for integration with the Yandex SpeechKit speech technology service
dev-master
2021-05-16 05:49 UTC
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
This package is auto-updated.
Last update: 2021-05-16 05:49:50 UTC
README
Библиотека для интеграции с сервисом речевых технологий "Yandex SpeechKit"
Ссылки
- Разработка
- О проекте (Yandex Cloud)
- О проекте (Yandex Identity and Access Management)
- О проекте (Yandex SpeechKit)
- Документация (Yandex Cloud)
- Документация (Yandex Identity and Access Management)
- Документация (Yandex SpeechKit)
Возможности
- Аутентификация в API "Yandex Cloud"
- Распознавание коротких аудио
- Синтез речи
Требования
- PHP >= 7.2
- cURL
- JSON
- mbstring
Установка
composer require itpanda-llc/yandex-speechkit-sdk
Подключение
require_once 'vendor/autoload.php';
Использование
Создание сервиса / Аутентификация
- С аккаунтом на Яндексе (OAuth-токен)
use Panda\Yandex\SpeechKitSdk; try { /* * OAuth-токен * ID каталога */ $cloud = new SpeechKitSdk\Cloud('oAuthToken', 'folderId'); } catch (SpeechKitSdk\Exception\ClientException | TypeError $e) { echo $e->getMessage(); }
- С использованием сервисного аккаунта / федеративного пользователя (IAM-токен)
use Panda\Yandex\SpeechKitSdk; try { // IAM-токен $cloud = new SpeechKitSdk\Cloud('iamToken'); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- С использованием сервисного аккаунта (API-ключ)
use Panda\Yandex\SpeechKitSdk; try { // API-ключ $cloud = SpeechKitSdk\Cloud::createApi('apiKey'); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Распознавание коротких аудио
- Создание запроса
use Panda\Yandex\SpeechKitSdk; try { // Аудио-файл $recognize = new SpeechKitSdk\Recognize('greeting_developer.ogg'); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- Установка параметров
use Panda\Yandex\SpeechKitSdk; try { // Аудио-файл $recognize->setFile('greeting_developer.raw'); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); } // Язык $recognize->setLang(SpeechKitSdk\Lang::RU_RU) // Языковая модель распознавания ->setTopic(SpeechKitSdk\Topic\Ru::GENERAL_RC) // Фильтр ненормативной лексики ->setProfanityFilter(SpeechKitSdk\ProfanityFilter::FALSE) // Формат аудио ->setFormat(SpeechKitSdk\Format::LPCM) // Частота дискретизации аудио ->setSampleRate(SpeechKitSdk\SampleRate::KHZ_48);
- Выполнение запроса
use Panda\Yandex\SpeechKitSdk; try { print_r($cloud->request($recognize)); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Синтез речи
- Создание запроса
use Panda\Yandex\SpeechKitSdk; try { // Текст, который нужно озвучить $synthesize= new SpeechKitSdk\Synthesize('Привет, разработчик!'); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- Установка параметров
use Panda\Yandex\SpeechKitSdk; try { // Текст, который нужно озвучить $synthesize->setText('Привет, разработчик!'); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); } // Текст, который нужно озвучить, в формате SSML $synthesize->setSsml('<speak>Привет<break time="1s"/>разработчик!</speak>') // Язык ->setLang(SpeechKitSdk\Lang::RU_RU) // Желаемый голос ->setVoice(SpeechKitSdk\Voice\Ru::OKSANA); try { // Желаемый голос $synthesize->setVoice(SpeechKitSdk\Voice\Ru::random()); } catch (SpeechKitSdk\Exception\ClientException | ArgumentCountError $e) { echo $e->getMessage(); } // Эмоциональная окраска голоса $synthesize->setEmotion(SpeechKitSdk\Emotion::GOOD) // Скорость (темп) ->setSpeed(SpeechKitSdk\Speed::AVERAGE) // Формат аудио ->setFormat(SpeechKitSdk\Format::LPCM) // Частота дискретизации аудио ->setSampleRate(SpeechKitSdk\SampleRate::KHZ_48);
- Выполнение запроса
use Panda\Yandex\SpeechKitSdk; try { file_put_contents('greeting_developer.ogg', $cloud->request($synthesize)); } catch (SpeechKitSdk\Exception\ClientException $e) { echo $e->getMessage(); }