以易於使用和擴展方式結合併使用不同的API,用於語言翻譯,字典查找,拼寫校正和語音合成(TTS)。
composer require gino-pane/phpolyglot
創建.env.example文件的副本,命名.env並將您自己的API憑據放入其中。文件包含指向可能需要的憑據相關的頁面的鏈接。
為了從示例目錄中運行示例,您必須指定自己的有效API憑據。
該軟件包在示例目錄中包含大量現成示例。所有端點要么返回有效的響應,要么引發相關異常。所有API均通過包含默認API類映射的config.php文件進行配置。 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個字符,每月最多可達1萬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而異。
請檢查支持語言的列表。 Yandex字典API可以隨限制(每天最多10000個參考)免費使用。為了使用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而異。
請檢查支持語言的列表(基本上只有英語,俄羅斯和烏克蘭人得到支持)。 Yandex Speller API可以隨限制(每天最多可通話/10 000個字符)免費使用。不需要鑰匙。
主要終點是PHPolyglot的speak方法:
public function speak(
string $ text ,
string $ languageFrom ,
string $ audioFormat = TtsAudioFormat:: AUDIO_MP3 ,
array $ additionalData = []
): TtsResponse僅需要兩個參數 - 綜合$text及其源語言$languageFrom 。
可以省略可選參數$audioFormat和$additionalData 。音頻格式允許明確指定返回音頻的所需音頻格式。其他數據允許設置API特定參數以獲得更精確的結果(語音,音調,速度等)。
當前已識別的音頻格式列表:
請注意,並非所有這些都可以得到您選擇的API的支持。
TTS方法返回TtsResponse ,該ttsresponse具有storeFile方法存儲的文件,並將其生成的文件存儲在指定的目錄中(或通過使用默認值):
function storeFile( string $ fileName = '' , string $ extension = '' , string $ directory = '' ): string默認情況下, $text名是用於TTS的簡單md5 Hash,它是根據content-type標頭(至少對於IBM Watson API)填充$extension , $directory基於配置設置。
( new PHPolyglot ())-> speak ( ' Hello world ' , ' en ' )-> storeFile (); // stores 3e25960a79dbc69b674cd4ec67a72c62.mp3請檢查支持的語言和聲音列表。 IBM Watson TTS需要授權的API憑據。在此處創建您的TTS項目並獲得特定於API的憑據。 API可以免費使用限制(每月最多1萬個字符)。
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。
也請參考貢獻。
請參考許可。
phpolyglot不擁有API可能返回的任何結果。另外,API可能有自己的數據使用規則,因此在使用它們時要注意它們。
由Composer-Package-Template和PHP Nano REST提供動力。