itpanda-llc/yandex-speechkit-sdk

与Yandex SpeechKit语音技术服务集成的库

dev-master 2021-05-16 05:49 UTC

This package is auto-updated.

Last update: 2024-09-16 13:19:36 UTC


README

"Yandex SpeechKit"语音技术服务集成的库

Packagist Downloads Packagist License Packagist PHP Version Support

链接

功能

要求

  • 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();
}