Combinando y con diferentes API para la traducción del lenguaje, la búsqueda del diccionario, la corrección de ortografía y la síntesis del habla (TTS) de manera fácil de usar y extender.
composer require gino-pane/phpolyglot
Cree una copia del archivo .env.example , asígnele .env y coloque sus propias credenciales de API en él. El archivo contiene enlaces a páginas que pueden estar relacionadas con las credenciales requeridas.
Para ejecutar ejemplos desde el directorio de ejemplos, debe especificar sus propias credenciales de API válidas.
El paquete contiene muchos ejemplos listos para usar en el directorio de ejemplos. Todos los puntos finales devuelven una respuesta válida o lanza una excepción relevante. Todas las API se configuran a través del archivo config.php que contiene la asignación predeterminada de clases de API. El soporte de Dynamic Configs se agregó en la actualización de 1.1.0:
$ phpolyglot = new PHPolyglot ( $ config , $ env );Esto le permite pasar sus propios valores de configuración si no desea confiar en aquellos que se almacenan en los archivos de configuración.
Hay dos puntos finales. Para una sola cadena:
function translate( string $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponsey para múltiples cadenas:
function translateBulk( array $ text , string $ languageTo , string $ languageFrom = '' ): TranslateResponseComo ejemplo mínimo, puede aprobar texto y lenguaje para traducirse (API detectará el lenguaje de origen):
$ response = ( new PHPolyglot ())-> translate ( ' Hello world ' , ' it ' )-> getTranslations (); // [ 0 => Ciao mondo ] TranslateResponse tiene un método getTranslations que devuelve una matriz de traducciones.
Los idiomas compatibles pueden variar según la API de terceros.
Consulte la lista de idiomas compatibles. La API de traducción Yandex es gratuita con limitaciones (1000 000 caracteres por día, hasta 10 000 000 por mes). Si lo desea, puede obtener un plan pagado, por supuesto. La API no le permitirá ingresar al plan pagado automáticamente, simplemente devolverá un error cuando se alcance el límite. Para usar la API, necesita obtener la clave API válida.
Hay un solo punto final, que se puede usar en dos formas diferentes.
Para una búsqueda dentro del mismo idioma (obtener formularios de palabras):
function lookup( string $ text , string $ languageFrom ): DictionaryResponsey para la traducción con el espectáculo (obtenga múltiples traducciones e información adicional que incluya formularios de palabras, ejemplos, significados, sinónimos, transcripción, etc.):
function lookup( string $ text , string $ languageFrom , string $ languageTo ): DictionaryResponseComo ejemplo mínimo, puede pasar el texto y su lenguaje de origen:
$ 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
*/Los idiomas compatibles pueden variar según la API de terceros.
Consulte la lista de idiomas compatibles. La API del Diccionario Yandex es de uso gratuito con limitaciones (hasta 10 000 referencias por día). Para usar la API, necesita obtener la clave API válida.
Hay dos puntos finales. Para una sola cadena:
function spellCheck( string $ text , string $ languageFrom = '' ): SpellCheckResponsey para múltiples cadenas:
function spellCheckBulk( array $ texts , string $ languageFrom = '' ): SpellCheckResponseComo ejemplo mínimo, solo puede pasar un texto para verificar:
$ 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"
}
}
}
*/Los idiomas compatibles pueden variar según la API de terceros.
Consulte la lista de idiomas compatibles (básicamente, solo el inglés, el ruso y el ucraniano son apoyados en este momento). La API de Speller Yandex es gratuita con limitaciones (hasta 10 000 llamadas/10 000 000 caracteres por día). No se requieren claves.
El punto final principal es el método speak PHPolyglot :
public function speak(
string $ text ,
string $ languageFrom ,
string $ audioFormat = TtsAudioFormat:: AUDIO_MP3 ,
array $ additionalData = []
): TtsResponse Solo se requieren dos parámetros: texto para síntesis $text y su lenguaje de origen $languageFrom .
Se pueden omitir parámetros opcionales $audioFormat y $additionalData . El formato de audio permite especificar explícitamente el formato de audio requerido de audio devuelto. Los datos adicionales permiten establecer parámetros específicos de la API para obtener resultados más precisos (voz, tono, velocidad, etc.).
La lista de formatos de audio que se reconocen actualmente:
Tenga en cuenta que no todos pueden ser compatibles con su API de elección.
El método TTS devuelve TtsResponse que tiene el método storeFile para almacenar el archivo generado con el nombre y la extensión requeridos en el directorio especificado (o utilizando valores predeterminados):
function storeFile( string $ fileName = '' , string $ extension = '' , string $ directory = '' ): string Por defecto, el nombre del archivo es un simple hash md5 de $text que se usó para TTS, $extension se está llenando en función del encabezado content-type (al menos para IBM Watson API), $directory se basa en la configuración de configuración.
( new PHPolyglot ())-> speak ( ' Hello world ' , ' en ' )-> storeFile (); // stores 3e25960a79dbc69b674cd4ec67a72c62.mp3Consulte la lista de idiomas y voces compatibles. IBM Watson TTS requiere credenciales de API para la autorización. Cree su proyecto TTS allí y obtenga sus credenciales específicas de API. La API es gratuita de usar con limitaciones (hasta 10 000 caracteres por mes).
php vendor/bin/phpunit
o
composer test
php vendor/bin/phpcs --standard=PSR2 src/
o
composer psr2check
php vendor/bin/phpcbf --standard=PSR2 src/
o
composer psr2autofix
php vendor/bin/phpdoc -d "src" -t "docs"
o
composer docs
Para realizar un seguimiento, consulte ChangeLog.md.
También consulte la contribución. MD.
Consulte la licencia.
El phpolyglot no posee ninguno de los resultados que las API pueden regresar. Además, las API pueden tener sus propias reglas sobre el uso de datos, así que tenga cuidado con ellas cuando las use.
Impulsado por compositor-empaque-plantilla y nano reposo PHP.