Библиотека для интеграции с сервисом речевых технологий "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();
}