Объединение и различные API для перевода языка, поиск словаря, коррекция орфографии и синтез речи (TTS) простым в использовании и расширении.
composer require gino-pane/phpolyglot
Создайте копию файла .env.example , назовите его .env и поместите в него свои учетные данные API. Файл содержит ссылки на страницы, которые могут быть связаны с требуемыми учетными данными.
Чтобы запустить примеры из Directory, вы должны указать свои собственные действительные учетные данные API.
Пакет содержит множество готовых примеров в каталоге примеров. Все конечные точки либо возвращают действительный ответ, либо бросают соответствующее исключение. Все API настроены через файл config.php, который содержит отображение классов API по умолчанию. Поддержка динамических конфигураций была добавлена в обновлении 1.1.0:
$ phpolyglot = new PHPolyglot ( $ config , $ env );Это позволяет вам передавать свои собственные значения конфигурации, если вы не хотите полагаться на те, которые хранятся в файлах конфигурации.
Есть две конечные точки. Для одной строки:
function translate( string $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseи для нескольких струн:
function translateBulk( array $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseВ качестве минимального примера вы можете передать текст и язык для перевода (исходный язык будет обнаружен с помощью API):
$ response = ( new PHPolyglot ())-> translate ( ' Hello world ' , ' it ' )-> getTranslations (); // [ 0 => Ciao mondo ] TranslateResponse имеет метод getTranslations , который возвращает множество переводов.
Поддерживаемые языки могут варьироваться в зависимости от сторонних API.
Пожалуйста, проверьте список поддерживаемых языков. Yandex Translate API может бесплатно использовать с ограничениями (1000 000 символов в день, до 10 000 000 в месяц). Если вы хотите, конечно, вы можете получить платный план. API не позволит вам автоматически пройти платный план, он просто вернет ошибку, когда ограничен достигнут. Чтобы использовать API, вам нужно получить действительный ключ API.
Существует одна конечная точка, которая может быть использована в двух разных формах.
Для поиска на одном языке (получает формы слов):
function lookup( string $ text , string $ languageFrom ): DictionaryResponseи для перевода с похожими (получите несколько переводов и дополнительную информацию, включая формы слов, примеры, значения, синонимы, транскрипция и т. Д.):
function lookup( string $ text , string $ languageFrom , string $ languageTo ): DictionaryResponseВ качестве минимального примера вы можете передать текст и его исходный язык:
$ response = ( new PHPolyglot )->lookup( ' Hello ' , 'en)->getEntries();
$synonyms = implode(", ", $response[0]->getSynonyms());
$output = <<<TEXT
Initial word: {$response[0]->getTextFrom()}
Part of speech: {$response[0]->getPosFrom()}
Transcription: {$response[0]->getTranscription()}
Main alternative: {$response[0]->getTextTo()}
Synonyms: {$synonyms}
TEXT
echo $output
/**
Initial word: hello
Part of speech: noun
Transcription: ˈheˈləʊ
Main alternative: hi
Synonyms: hallo, salut
*/Поддерживаемые языки могут варьироваться в зависимости от сторонних API.
Пожалуйста, проверьте список поддерживаемых языков. API API Dictionary Yandex свободен с ограничениями (до 10 000 ссылок в день). Чтобы использовать API, вам нужно получить действительный ключ API.
Есть две конечные точки. Для одной строки:
function spellCheck( string $ text , string $ languageFrom = '' ): SpellCheckResponseи для нескольких струн:
function spellCheckBulk( array $ texts , string $ languageFrom = '' ): SpellCheckResponseВ качестве минимального примера вы можете передать только текст, чтобы проверить:
$ corrections = $ phpolyglot -> spellCheckText ( ' Helo werld ' , $ languageFrom )-> getCorrections ();
/**
array(1) {
[0] =>
array(2) {
'Helo' =>
array(1) {
[0] =>
string(5) "Hello"
}
'werld' =>
array(1) {
[0] =>
string(5) "world"
}
}
}
*/Поддерживаемые языки могут варьироваться в зависимости от сторонних API.
Пожалуйста, проверьте список поддерживаемых языков (в основном, на данный момент поддерживаются только английский, русский и украинский). Яндекс Speller API может бесплатно использовать с ограничениями (до 10 000 вызовов/10 000 000 символов в день). Ключи не требуется.
Основной конечной точкой является метод speak PHPolyglot :
public function speak(
string $ text ,
string $ languageFrom ,
string $ audioFormat = TtsAudioFormat:: AUDIO_MP3 ,
array $ additionalData = []
): TtsResponse Требуются только два параметра - текст для синтеза $text и его языка исходного языка $languageFrom .
Дополнительные параметры $audioFormat и $additionalData могут быть опущены. Аудио формат позволяет явно указать необходимый аудиоформат возвращаемого аудио. Дополнительные данные позволяют устанавливать специфические параметры API для более точных результатов (голос, высота, скорость и т. Д.).
Список аудио форматов, которые в настоящее время распознаются:
Обратите внимание, что не все из них могут быть поддержаны вашим API по выбору.
Метод TTS возвращает TtsResponse , который имеет метод storeFile для хранения сгенерированного файла с необходимым именем и расширением в указанный каталог (или с использованием значений по умолчанию):
function storeFile( string $ fileName = '' , string $ extension = '' , string $ directory = '' ): string По умолчанию имя файла-это простой хэш md5 $text , который использовался для TTS, $extension заполняется на основе заголовка content-type (по крайней мере, для IBM Watson API), $directory основан на настройке конфигурации.
( new PHPolyglot ())-> speak ( ' Hello world ' , ' en ' )-> storeFile (); // stores 3e25960a79dbc69b674cd4ec67a72c62.mp3Пожалуйста, проверьте список поддерживаемых языков и голосов. IBM Watson TTS требует учетных данных API для разрешения. Создайте свой проект TTS и получите свои учетные данные для API. API может бесплатно использовать с ограничениями (до 10 000 символов в месяц).
php vendor/bin/phpunit
или
composer test
php vendor/bin/phpcs --standard=PSR2 src/
или
composer psr2check
php vendor/bin/phpcbf --standard=PSR2 src/
или
composer psr2autofix
php vendor/bin/phpdoc -d "src" -t "docs"
или
composer docs
Чтобы отслеживать, пожалуйста, обратитесь к Changelog.md.
Также, пожалуйста, обратитесь к Appling.md.
Пожалуйста, обратитесь к лицензии.
Phpolyglot не имеет никаких результатов, которые API могут вернуться. Кроме того, API могут иметь свои правила использования данных, поэтому остерегайтесь их, когда вы их используете.
Приводятся в действие от композитора-пакета-таблица и PHP Nano Rest.