{"id":27953,"date":"2021-05-18T17:35:00","date_gmt":"2021-05-18T14:35:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27953"},"modified":"2021-10-17T16:59:20","modified_gmt":"2021-10-17T13:59:20","slug":"conversion-de-texto-a-voz-con-amazon-polly-en-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/conversion-de-texto-a-voz-con-amazon-polly-en-php\/","title":{"rendered":"Conversi\u00f3n de texto a voz con Amazon Polly en PHP"},"content":{"rendered":"<p>Amazon Polly es un servicio en la nube muy bien hecho que nos permite convertir texto en voz realista. Adem\u00e1s, Amazon Polly ofrece mejoras innovadoras en la calidad del habla a trav\u00e9s de un nuevo enfoque de aprendizaje autom\u00e1tico. Ofrecen a los clientes las voces de texto a voz m\u00e1s naturales y parecidas a las humanas.<\/p>\n<p>Los beneficios de usar Amazon Polly incluyen:<\/p>\n<ul>\n<li>Alta calidad<\/li>\n<li>Baja latencia<\/li>\n<li>Soporte para una gran cartera de idiomas y voces.<\/li>\n<li>Econ\u00f3mico<\/li>\n<li>Soluci\u00f3n basada en la nube<\/li>\n<\/ul>\n<p>Hay varias aplicaciones en las que Amazon Polly puede resultar \u00fatil. Algunos de ellos son: aplicaciones como lectores de noticias. juegos, plataformas de eLearning, aplicaciones para personas con discapacidad visual, etc. Puede leer m\u00e1s sobre este servicio en su <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/what-is.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentaci\u00f3n<\/a>.<\/p>\n<p>En este art\u00edculo, le muestro c\u00f3mo convertir texto a voz con Amazon Polly y PHP.<\/p>\n<h3>Consola de Amazon Polly<\/h3>\n<p>Si no desea crear una aplicaci\u00f3n PHP, puede usar la consola Polly directamente. Puede acceder a \u00e9l iniciando sesi\u00f3n en su cuenta de AWS. Despu\u00e9s de iniciar sesi\u00f3n, dir\u00edjase a la consola de Amazon Polly. En esta p\u00e1gina, obtendr\u00e1 las opciones para agregar voz en formato de texto sin formato o SSML. Puede elegir la regi\u00f3n, la identificaci\u00f3n de voz y escuchar un discurso o incluso descargarlo en formato MP3.<\/p>\n<p>Usar la consola es una opci\u00f3n si usted es el administrador y no desea compartir las credenciales de la cuenta con nadie. Pero, \u00bfqu\u00e9 sucede si desea crear una aplicaci\u00f3n que haga la tarea exacta de convertir texto a voz y le permita descargar MP3 de voz convertida?<\/p>\n<h3>Conversi\u00f3n de texto a voz con Amazon Polly y PHP<\/h3>\n<p>Para crear la aplicaci\u00f3n PHP para Amazon Polly, primero debe obtener sus credenciales de seguridad de AWS. Puede obtenerlo iniciando sesi\u00f3n en la cuenta de AWS y luego haciendo clic en &#8216;Mis credenciales de seguridad&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20574-6082073c5fe4a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20574-6082073c5fe4a.png\" alt=\"Conversi\u00f3n de texto a voz con Amazon Polly en PHP\" ><\/a><\/p>\n<p>Una vez que obtenga sus credenciales, instale <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS SDK para PHP<\/a> con Composer. Ejecute el siguiente comando para la instalaci\u00f3n de la biblioteca.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Tras la instalaci\u00f3n, cree un formulario que le permita al usuario cargar un archivo y enviarlo al servidor para procesarlo.<\/p>\n<pre><code>&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"file\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" name=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Como se mencion\u00f3 anteriormente, el usuario puede transmitir la voz en texto sin formato o en formato SSML. Prefiero usar SSML, que nos permite controlar la voz generada a partir del texto proporcionado. Al usar SSML, podemos incluir una pausa en el texto, cambiar la velocidad del habla, enfatizar palabras o frases espec\u00edficas, etc. Lea m\u00e1s sobre esto en <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/ssml.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Uso de SSML<\/a>. B\u00e1sicamente, debe utilizar etiquetas proporcionadas por SSML en su texto.<\/p>\n<p>Para este tutorial, estoy creando un archivo de texto sin formato con etiquetas SSML. Mi archivo de texto es el siguiente.<\/p>\n<p><strong>dummy.txt<\/strong><\/p>\n<pre><code>&lt;speak&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;prosody rate='medium'&gt;Hi, I am Sajid. I do blogging at Artisans Web.&lt;\/prosody&gt;\n&lt;\/speak&gt;<\/code><\/pre>\n<p>A continuaci\u00f3n, al enviar el formulario, el archivo de texto cargado se enviar\u00e1 al servicio en la nube de AWS y, a cambio, los archivos MP3 se descargar\u00e1n autom\u00e1ticamente. Escriba el c\u00f3digo de la siguiente manera.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse AwsPollyPollyClient;\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$config = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'version' =&gt; 'latest',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'region' =&gt; 'YOUR_AWS_REGION',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'credentials' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key' =&gt; 'ACCESS_KEY_ID',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; 'SECRET_ACCESS_KEY',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$client = new PollyClient($config);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$args = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'OutputFormat' =&gt; 'mp3',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Text' =&gt; file_get_contents($_FILES['file']['tmp_name']),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'TextType' =&gt; 'ssml',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'VoiceId' =&gt; 'Matthew', \/\/pass preferred voice id here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$result = $client-&gt;synthesizeSpeech($args);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$resultData = $result-&gt;get('AudioStream')-&gt;getContents();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0header('Content-length: '. strlen($resultData));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0header('Content-Disposition: attachment; filename=\"text-to-speech.mp3\"');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0header('X-Pad: avoid browser bug');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0header('Cache-Control: no-cache');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $resultData;\n\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Reemplace los marcadores de posici\u00f3n con los valores reales. En el c\u00f3digo anterior, he pasado el valor de &#8216;VoiceId&#8217; es &#8216;Matthew&#8217;. &#8216;Matthew&#8217; es una identificaci\u00f3n de voz que agrega un acento de voz en el idioma ingl\u00e9s (EE. UU.) (En-EE. UU.). Por supuesto, el usuario puede elegir cualquier identificaci\u00f3n de voz preferida. Obtendr\u00e1 la lista de voces disponibles en sus <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/voicelist.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Voces en la<\/a> p\u00e1gina de <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/voicelist.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Amazon Polly<\/a>.<\/p>\n<p>Adelante, pru\u00e9balo. Al cargar su archivo de texto, obtendr\u00e1 el archivo de audio MP3 de su texto.<\/p>\n<p>Se trata de convertir texto a voz usando Amazon Polly en PHP. Me gustar\u00eda escuchar sus pensamientos o sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/cargar-archivos-en-amazon-s3-mediante-aws-php-sdk\/\" title=\"Cargar archivos en Amazon S3 mediante AWS PHP SDK\">Cargar archivos en Amazon S3 mediante AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-cargar-un-archivo-a-s3-usando-el-sistema-de-archivos-laravel\/\" title=\"C\u00f3mo cargar un archivo a S3 usando el sistema de archivos Laravel\">C\u00f3mo cargar un archivo a S3 usando el sistema de archivos Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Amazon Polly nos permite convertir texto a voz. En este art\u00edculo, estudiamos c\u00f3mo convertir texto a voz en PHP. En los pasos finales, obtendr\u00e1 el archivo MP3<\/p>\n","protected":false},"author":1,"featured_media":20575,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[271],"tags":[849],"class_list":["post-27953","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27953"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27953\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20575"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}