以易于使用和扩展方式结合并使用不同的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提供动力。