{"id":27942,"date":"2021-05-18T18:10:00","date_gmt":"2021-05-18T15:10:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27942"},"modified":"2021-10-18T03:44:00","modified_gmt":"2021-10-18T00:44:00","slug":"text-to-speech-przy-uzyciu-amazon-polly-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/text-to-speech-przy-uzyciu-amazon-polly-w-php\/","title":{"rendered":"Text-To-Speech przy u\u017cyciu Amazon Polly w PHP"},"content":{"rendered":"<p>Amazon Polly to \u0142adnie wykonana us\u0142uga w chmurze, kt\u00f3ra pozwala nam konwertowa\u0107 tekst na mow\u0119 realistyczn\u0105. Ponadto Amazon Polly zapewnia prze\u0142omow\u0105 popraw\u0119 jako\u015bci mowy dzi\u0119ki nowemu podej\u015bciu do uczenia maszynowego. Oferuj\u0105 klientom najbardziej naturalne i ludzkie g\u0142osy zamiany tekstu na mow\u0119.<\/p>\n<p>Korzy\u015bci z korzystania z Amazon Polly obejmuj\u0105:<\/p>\n<ul>\n<li>Wysoka jako\u015b\u0107<\/li>\n<li>Ma\u0142e op\u00f3\u017anienia<\/li>\n<li>Obs\u0142uga du\u017cego portfolio j\u0119zyk\u00f3w i g\u0142os\u00f3w<\/li>\n<li>Op\u0142acalne<\/li>\n<li>Rozwi\u0105zanie w chmurze<\/li>\n<\/ul>\n<p>Istnieje kilka aplikacji, w kt\u00f3rych przydaje si\u0119 Amazon Polly. Niekt\u00f3re z nich to \u2013 aplikacje takie jak czytniki grup dyskusyjnych. gry, platformy e-learningowe, aplikacje dla os\u00f3b niedowidz\u0105cych itp. Wi\u0119cej informacji o tej us\u0142udze mo\u017cna znale\u017a\u0107 w ich <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/what-is.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentacji<\/a>.<\/p>\n<p>W tym artykule poka\u017c\u0119, jak przekonwertowa\u0107 tekst na mow\u0119 za pomoc\u0105 Amazon Polly i PHP.<\/p>\n<h3>Konsola Amazon Polly<\/h3>\n<p>Je\u015bli nie chcesz budowa\u0107 aplikacji PHP, mo\u017cesz bezpo\u015brednio u\u017cy\u0107 konsoli Polly. Mo\u017cesz uzyska\u0107 do niego dost\u0119p, loguj\u0105c si\u0119 do swojego konta AWS. Po zalogowaniu przejd\u017a do konsoli Amazon Polly. Na tej stronie otrzymasz opcje dodawania mowy w formacie zwyk\u0142ego tekstu lub SSML. Mo\u017cesz wybra\u0107 region, identyfikator g\u0142osu i pos\u0142ucha\u0107 przem\u00f3wienia, a nawet pobra\u0107 je w formacie MP3.<\/p>\n<p>Korzystanie z konsoli jest jedn\u0105 z opcji, je\u015bli jeste\u015b administratorem i nie chcesz nikomu udost\u0119pnia\u0107 po\u015bwiadcze\u0144 konta. Ale co, je\u015bli chcesz zbudowa\u0107 aplikacj\u0119, kt\u00f3ra dok\u0142adnie wykonuje zadanie konwersji tekstu na mow\u0119 i pozwala pobiera\u0107 MP3 z przekonwertowanej mowy.<\/p>\n<h3>Text-To-Speech przy u\u017cyciu Amazon Polly i PHP<\/h3>\n<p>Aby zbudowa\u0107 aplikacj\u0119 PHP dla Amazon Polly, musisz najpierw uzyska\u0107 po\u015bwiadczenia bezpiecze\u0144stwa AWS. Mo\u017cesz go uzyska\u0107, loguj\u0105c si\u0119 na konto AWS, a nast\u0119pnie klikaj\u0105c \u201eMoje dane uwierzytelniaj\u0105ce&quot;.<\/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 przy u\u017cyciu Amazon Polly w PHP\" ><\/a><\/p>\n<p>Po uzyskaniu po\u015bwiadcze\u0144 zainstaluj <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pakiet AWS SDK dla PHP<\/a> za pomoc\u0105 Kompozytora. Uruchom poni\u017csze polecenie, aby zainstalowa\u0107 bibliotek\u0119.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Po instalacji zbuduj formularz, kt\u00f3ry pozwoli u\u017cytkownikowi przes\u0142a\u0107 plik i wys\u0142a\u0107 go na serwer w celu przetworzenia.<\/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>Jak wspomniano wcze\u015bniej, u\u017cytkownik mo\u017ce przekazywa\u0107 mow\u0119 w formacie zwyk\u0142ego tekstu lub SSML. Wol\u0119 u\u017cywa\u0107 SSML, kt\u00f3ry pozwala nam kontrolowa\u0107 generowan\u0105 mow\u0119 z dostarczonego tekstu. U\u017cywaj\u0105c SSML, mo\u017cemy wstawi\u0107 pauz\u0119 w tek\u015bcie, zmieni\u0107 tempo mowy, podkre\u015bli\u0107 okre\u015blone s\u0142owa lub frazy itp. Przeczytaj wi\u0119cej na ten temat w <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/ssml.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sekcji U\u017cywanie SSML<\/a>. Zasadniczo musisz u\u017cywa\u0107 w tek\u015bcie tag\u00f3w dostarczonych przez SSML.<\/p>\n<p>W tym samouczku buduj\u0119 zwyk\u0142y plik tekstowy z tagami SSML. M\u00f3j plik tekstowy wygl\u0105da nast\u0119puj\u0105co.<\/p>\n<p><strong>manekin.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>Nast\u0119pnie po przes\u0142aniu formularza wgrany plik tekstowy zostanie przes\u0142any do us\u0142ugi w chmurze AWS, aw zamian pliki MP3 zostan\u0105 automatycznie pobrane. Napisz do niego kod w nast\u0119puj\u0105cy spos\u00f3b.<\/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>Zast\u0105p symbole zast\u0119pcze rzeczywistymi warto\u015bciami. W powy\u017cszym kodzie przekaza\u0142em warto\u015b\u0107 'VoiceId&#8217; to 'Matthew&#8217;. \u201eMatthew&#8221; to identyfikator g\u0142osu, kt\u00f3ry dodaje akcent mowy w j\u0119zyku angielskim (US) (en-US). Oczywi\u015bcie u\u017cytkownik mo\u017ce wybra\u0107 dowolny preferowany identyfikator g\u0142osu. Otrzymasz list\u0119 dost\u0119pnych g\u0142os\u00f3w na ich stronie <a href=\"https:\/\/docs.aws.amazon.com\/polly\/latest\/dg\/voicelist.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">G\u0142osy w Amazon Polly<\/a>.<\/p>\n<p>\u015amia\u0142o i przetestuj to. Po przes\u0142aniu pliku tekstowego otrzymasz plik audio MP3 z tekstem.<\/p>\n<p>Wszystko sprowadza si\u0119 do konwersji tekstu na mow\u0119 za pomoc\u0105 Amazon Polly w PHP. Chcia\u0142bym us\u0142ysze\u0107 Twoje przemy\u015blenia lub sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przeslij-pliki-do-amazon-s3-za-pomoca-aws-php-sdk\/\" title=\"Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK\">Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przeslac-plik-do-s3-za-pomoca-systemu-plikow-laravel\/\" title=\"Jak przes\u0142a\u0107 plik do S3 za pomoc\u0105 systemu plik\u00f3w Laravel?\">Jak przes\u0142a\u0107 plik do S3 za pomoc\u0105 systemu plik\u00f3w Laravel?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <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 umo\u017cliwia nam konwersj\u0119 tekstu na mow\u0119. W tym artykule dowiemy si\u0119, jak konwertowa\u0107 tekst na mow\u0119 w PHP. Na ostatnich krokach otrzymasz plik 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":[277],"tags":[847],"class_list":["post-27942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=27942"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27942\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/20575"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}