itpanda-llc / yandex-speechkit-sdk
与Yandex SpeechKit语音技术服务集成的库
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: 2024-09-16 13:19:36 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';
使用
创建服务 / 认证
- 使用Yandex账号(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(); }