{"id":27507,"date":"2021-05-18T17:50:00","date_gmt":"2021-05-18T14:50:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27507"},"modified":"2021-10-18T04:11:18","modified_gmt":"2021-10-18T01:11:18","slug":"text-to-speech-usando-amazon-polly-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/text-to-speech-usando-amazon-polly-em-php\/","title":{"rendered":"Text-To-Speech usando Amazon Polly em PHP"},"content":{"rendered":"<p>Amazon Polly \u00e9 um servi\u00e7o de nuvem bem executado que nos permite converter texto em fala real. Al\u00e9m disso, o Amazon Polly oferece melhorias inovadoras na qualidade da fala por meio de uma nova abordagem de aprendizado de m\u00e1quina. Eles oferecem aos clientes as vozes text-to-speech mais naturais e humanas poss\u00edveis.<\/p>\n<p>Os benef\u00edcios de usar o Amazon Polly incluem:<\/p>\n<ul>\n<li>Alta qualidade<\/li>\n<li>Baixa lat\u00eancia<\/li>\n<li>Suporte para um grande portf\u00f3lio de idiomas e vozes<\/li>\n<li>Custo-beneficio<\/li>\n<li>Solu\u00e7\u00e3o baseada em nuvem<\/li>\n<\/ul>\n<p>Existem v\u00e1rios aplicativos em que o Amazon Polly pode ser \u00fatil. Alguns deles s\u00e3o &#8211; aplicativos como leitores de not\u00edcias. jogos, plataformas de eLearning, aplicativos para deficientes visuais, etc. Voc\u00ea pode ler mais sobre este servi\u00e7o em sua <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/what-is.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o<\/a>.<\/p>\n<p>Neste artigo, mostro como converter texto em fala com Amazon Polly e PHP.<\/p>\n<h3>Amazon Polly Console<\/h3>\n<p>Se voc\u00ea n\u00e3o quiser construir um aplicativo PHP, pode usar o console Polly diretamente. Voc\u00ea pode acess\u00e1-lo fazendo login em sua conta AWS. Ap\u00f3s o login, v\u00e1 para o console do Amazon Polly. Nesta p\u00e1gina, voc\u00ea ter\u00e1 as op\u00e7\u00f5es para adicionar voz em texto simples ou formato SSML. Voc\u00ea pode escolher a regi\u00e3o, a identifica\u00e7\u00e3o de voz e ouvir um discurso ou at\u00e9 mesmo fazer o download em formato MP3.<\/p>\n<p>Usar o console \u00e9 uma op\u00e7\u00e3o se voc\u00ea for o administrador e n\u00e3o quiser compartilhar as credenciais da conta com ningu\u00e9m. Mas e se voc\u00ea quiser construir um aplicativo que fa\u00e7a a tarefa exata de converter texto em fala e permitir que voc\u00ea baixe MP3 de fala convertida.<\/p>\n<h3>Text-To-Speech usando Amazon Polly e PHP<\/h3>\n<p>Para construir o aplicativo PHP para Amazon Polly, primeiro voc\u00ea precisa obter suas credenciais de seguran\u00e7a da AWS. Voc\u00ea pode obt\u00ea-lo fazendo login na conta da AWS e, em seguida, clicar em &#8216;Minhas credenciais de seguran\u00e7a&#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=\"Text-To-Speech usando Amazon Polly em PHP\" ><\/a><\/p>\n<p>Depois de obter suas credenciais, instale o <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS SDK para PHP<\/a> usando o Composer. Execute o comando abaixo para instala\u00e7\u00e3o da biblioteca.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, crie um formul\u00e1rio que permita ao usu\u00e1rio fazer upload de um arquivo e envi\u00e1-lo ao servidor para processamento.<\/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>Conforme mencionado anteriormente, o usu\u00e1rio pode transmitir a fala em texto simples ou no formato SSML. Prefiro usar SSML, que nos permite controlar a fala gerada a partir do texto fornecido. Usando SSML, podemos incluir uma pausa no texto, alterar a velocidade da fala, enfatizar palavras ou frases espec\u00edficas, etc. Leia mais sobre isso em <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/ssml.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Como usar SSML<\/a>. Basicamente, voc\u00ea precisa usar tags fornecidas por SSML em seu texto.<\/p>\n<p>Para este tutorial, estou construindo um arquivo de texto simples com tags SSML. Meu arquivo de texto \u00e9 o seguinte.<\/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>Em seguida, no envio do formul\u00e1rio, o arquivo de texto carregado seria enviado ao servi\u00e7o de nuvem AWS e, em troca, os arquivos MP3 seriam baixados automaticamente. Escreva o c\u00f3digo para ele da seguinte maneira.<\/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>Substitua os marcadores de posi\u00e7\u00e3o pelos valores reais. No c\u00f3digo acima, eu passei o valor para &#8216;VoiceId&#8217; \u00e9 &#8216;Matthew&#8217;. &#8216;Matthew&#8217; \u00e9 uma identifica\u00e7\u00e3o de voz que adiciona um sotaque de fala no idioma ingl\u00eas (EUA) (en-US). Obviamente, o usu\u00e1rio pode escolher qualquer id de voz de sua prefer\u00eancia. Voc\u00ea obter\u00e1 a lista de vozes dispon\u00edveis na p\u00e1gina <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/voicelist.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Vozes na Amazon Polly<\/a>.<\/p>\n<p>V\u00e1 em frente e teste. Ao fazer o upload do seu arquivo de texto, voc\u00ea obter\u00e1 o arquivo de \u00e1udio MP3 do seu texto.<\/p>\n<p>\u00c9 tudo sobre a convers\u00e3o de texto em fala usando Amazon Polly em PHP. Eu gostaria de ouvir suas opini\u00f5es ou sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-arquivos-para-o-amazon-s3-usando-aws-php-sdk\/\" title=\"Carregar arquivos para Amazon S3 usando AWS PHP SDK\">Carregar arquivos para Amazon S3 usando AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-upload-de-arquivo-para-s3-usando-o-sistema-de-arquivos-laravel\/\" title=\"Como fazer upload de arquivo para S3 usando o sistema de arquivos Laravel\">Como fazer upload de arquivo para S3 usando o sistema de arquivos Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <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 converter texto em fala. Neste artigo, estudamos como converter texto em fala em PHP. Nas etapas finais, voc\u00ea obter\u00e1 o arquivo 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":[278],"tags":[848],"class_list":["post-27507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27507"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/20575"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}